aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core/tileentities
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-06-16 03:59:47 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-06-16 03:59:47 +1000
commit51d5db94cfafac652a05f6f121ec2521d62aaf5c (patch)
tree8e622e427fa6416b5ca508ed4deb8e10e783f9d1 /src/Java/miscutil/core/tileentities
parentd3f4786befad33f4ec77723bf4470d05f9f862ec (diff)
downloadGT5-Unofficial-51d5db94cfafac652a05f6f121ec2521d62aaf5c.tar.gz
GT5-Unofficial-51d5db94cfafac652a05f6f121ec2521d62aaf5c.tar.bz2
GT5-Unofficial-51d5db94cfafac652a05f6f121ec2521d62aaf5c.zip
Done a lot of work on the NFHG.
Also did some more refactoring beforehand.
Diffstat (limited to 'src/Java/miscutil/core/tileentities')
-rw-r--r--src/Java/miscutil/core/tileentities/ModTileEntities.java3
-rw-r--r--src/Java/miscutil/core/tileentities/TileEntityNHG.java187
2 files changed, 190 insertions, 0 deletions
diff --git a/src/Java/miscutil/core/tileentities/ModTileEntities.java b/src/Java/miscutil/core/tileentities/ModTileEntities.java
index 4eead783c5..a27e7be6ad 100644
--- a/src/Java/miscutil/core/tileentities/ModTileEntities.java
+++ b/src/Java/miscutil/core/tileentities/ModTileEntities.java
@@ -1,5 +1,6 @@
package miscutil.core.tileentities;
+import miscutil.core.block.heliumgen.tileentity.TileEntityHeliumGenerator;
import miscutil.core.util.Utils;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -10,6 +11,8 @@ public class ModTileEntities {
Utils.LOG_INFO("Registering Tile Entities.");
//GameRegistry.registerTileEntity(TileEntityReverter.class, "TE_blockGriefSaver");
GameRegistry.registerTileEntity(TileEntityReverter.class, "Tower Reverter");
+ GameRegistry.registerTileEntity(TileEntityNHG.class, "NuclearFueledHeliumGenerator");
+ GameRegistry.registerTileEntity(TileEntityHeliumGenerator.class, "Helium");
}
}
diff --git a/src/Java/miscutil/core/tileentities/TileEntityNHG.java b/src/Java/miscutil/core/tileentities/TileEntityNHG.java
new file mode 100644
index 0000000000..8813987a7b
--- /dev/null
+++ b/src/Java/miscutil/core/tileentities/TileEntityNHG.java
@@ -0,0 +1,187 @@
+package miscutil.core.tileentities;
+
+import miscutil.core.item.ModItems;
+import miscutil.core.item.general.fuelrods.FuelRod_Base;
+import miscutil.core.util.UtilsItems;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraftforge.common.util.Constants;
+
+public class TileEntityNHG extends TileEntity implements IInventory
+{
+ private ItemStack[] items = new ItemStack[19]; //18
+ private int internalClock = 0;
+
+ @Override
+ public int getSizeInventory()
+ {
+ return items.length;
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int slot)
+ {
+
+ return items[slot];
+
+ }
+
+ @Override
+ public ItemStack decrStackSize(int slot, int amount)
+ {
+ if (items[slot] != null)
+ {
+ ItemStack itemstack;
+
+ if (items[slot].stackSize == amount)
+ {
+ itemstack = items[slot];
+ items[slot] = null;
+ markDirty();
+ return itemstack;
+ }
+ itemstack = items[slot].splitStack(amount);
+ if (items[slot].stackSize == 0) items[slot] = null;
+ markDirty();
+ return itemstack;
+ }
+ return null;
+ }
+
+ @Override
+ public ItemStack getStackInSlotOnClosing(int slot)
+ {
+ if (items[slot] != null)
+ {
+ ItemStack itemstack = items[slot];
+ items[slot] = null;
+ return itemstack;
+ }
+ return null;
+ }
+
+ @Override
+ public void setInventorySlotContents(int slot, ItemStack stack)
+ {
+ if (stack != null){
+ items[slot] = stack;
+ if (stack != null && stack.stackSize > getInventoryStackLimit())
+ {
+ stack.stackSize = getInventoryStackLimit();
+ }
+
+
+ markDirty();
+ }
+ }
+
+ @Override
+ public String getInventoryName()
+ {
+ return "container.NHG";
+ }
+
+ @Override
+ public boolean hasCustomInventoryName()
+ {
+ return false;
+ }
+
+ @Override
+ public void readFromNBT(NBTTagCompound nbt)
+ {
+ super.readFromNBT(nbt);
+ NBTTagList list = nbt.getTagList("Items", Constants.NBT.TAG_COMPOUND);
+ items = new ItemStack[getSizeInventory()];
+
+ for (int i = 0; i < list.tagCount(); ++i) { NBTTagCompound comp = list.getCompoundTagAt(i); int j = comp.getByte("Slot") & 255; if (j >= 0 && j < items.length)
+ {
+ items[j] = ItemStack.loadItemStackFromNBT(comp);
+ }
+ }
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound nbt)
+ {
+ super.writeToNBT(nbt);
+ NBTTagList list = new NBTTagList();
+
+ for (int i = 0; i < items.length; ++i)
+ {
+ if (items[i] != null)
+ {
+ NBTTagCompound comp = new NBTTagCompound();
+ comp.setByte("Slot", (byte)i);
+ items[i].writeToNBT(comp);
+ list.appendTag(comp);
+ }
+ }
+
+ nbt.setTag("Items", list);
+ }
+
+ @Override
+ public int getInventoryStackLimit()
+ {
+ return 64;
+ }
+
+ @Override
+ public boolean isUseableByPlayer(EntityPlayer player)
+ {
+ return worldObj.getTileEntity(xCoord, yCoord, zCoord) != this ? false : player.getDistanceSq((double)xCoord + 0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64.0D;
+ }
+
+ @Override
+ public void openInventory() {}
+
+ @Override
+ public void closeInventory() {}
+
+ @Override
+ public boolean isItemValidForSlot(int slot, ItemStack stack)
+ {
+ return true;
+ }
+
+ //Machine Code - TODO
+
+ @Override
+ public void updateEntity() {
+ if (internalClock <= 20){
+ internalClock++;
+ }
+ else {
+ ItemStack validFuelRod_Type_A = UtilsItems.getSimpleStack(ModItems.FuelRod_Thorium);
+ ItemStack validFuelRod_Type_B = UtilsItems.getSimpleStack(ModItems.FuelRod_Uranium);
+ ItemStack validFuelRod_Type_C = UtilsItems.getSimpleStack(ModItems.FuelRod_Plutonium);
+ for (int i = 0; i < getSizeInventory(); i++){
+ ItemStack tempCurrent = items[i];
+ if (tempCurrent == validFuelRod_Type_A ||tempCurrent == validFuelRod_Type_B || tempCurrent == validFuelRod_Type_C){
+ Item tempItem = tempCurrent.getItem();
+ FuelRod_Base tempItem2 = (FuelRod_Base) tempItem;
+ if (tempItem2.getHeat() <= 5000){
+ tempItem2.addHeat(5);
+ }
+ if (tempItem2.getFuelRemaining() >= 1){
+ tempItem2.addFuel(-1);
+ }
+ ItemStack validFuelRod = UtilsItems.getSimpleStack(tempItem2);
+ setInventorySlotContents(i, validFuelRod);
+ }
+ }
+
+ internalClock=0;
+ }
+ super.updateEntity();
+ }
+
+
+
+} \ No newline at end of file