diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-05-30 03:20:09 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-05-30 03:20:09 +1000 |
commit | 9a1352dac23c09cb333edf7b2db7cce07c15ee91 (patch) | |
tree | 9936ab004f549bd7320f4f9e077da9e7c99b6c84 /src/Java/miscutil/core/tileentities | |
parent | 2859490274895866f864e66ba7ac18882b0dfb53 (diff) | |
download | GT5-Unofficial-9a1352dac23c09cb333edf7b2db7cce07c15ee91.tar.gz GT5-Unofficial-9a1352dac23c09cb333edf7b2db7cce07c15ee91.tar.bz2 GT5-Unofficial-9a1352dac23c09cb333edf7b2db7cce07c15ee91.zip |
+Helium Generator, Initial Commit
+Reformatted Item Generation
Diffstat (limited to 'src/Java/miscutil/core/tileentities')
-rw-r--r-- | src/Java/miscutil/core/tileentities/TILE_ENTITY_BASE.java | 39 | ||||
-rw-r--r-- | src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java | 134 |
2 files changed, 173 insertions, 0 deletions
diff --git a/src/Java/miscutil/core/tileentities/TILE_ENTITY_BASE.java b/src/Java/miscutil/core/tileentities/TILE_ENTITY_BASE.java new file mode 100644 index 0000000000..790312a182 --- /dev/null +++ b/src/Java/miscutil/core/tileentities/TILE_ENTITY_BASE.java @@ -0,0 +1,39 @@ +package miscutil.core.tileentities; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; + +public class TILE_ENTITY_BASE extends TileEntity { + + @Override + public void writeToNBT(NBTTagCompound tag) { + super.writeToNBT(tag); + writeCustomNBT(tag); + } + + @Override + public void readFromNBT(NBTTagCompound tag) { + super.readFromNBT(tag); + readCustomNBT(tag); + } + + public void writeCustomNBT(NBTTagCompound tag) {} + public void readCustomNBT(NBTTagCompound tag) {} + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + writeCustomNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -999, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) { + super.onDataPacket(net, packet); + readCustomNBT(packet.func_148857_g()); + } + +} diff --git a/src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java b/src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java new file mode 100644 index 0000000000..bc1d452495 --- /dev/null +++ b/src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java @@ -0,0 +1,134 @@ +package miscutil.core.tileentities; + +import miscutil.core.item.ModItems; +import miscutil.core.util.UtilsItems; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityHeliumGenerator extends TILE_ENTITY_BASE implements IInventory { + + private ItemStack heliumStack; + private int facing = 2; + private int progress; + + @Override + public void updateEntity(){ + if(++progress >= 40){ + //if(++progress >= 300){ + if(heliumStack == null) + heliumStack = UtilsItems.getSimpleStack(ModItems.itemHeliumBlob); + else if(heliumStack.getItem() == ModItems.itemHeliumBlob && heliumStack.stackSize < 64) + heliumStack.stackSize++; + progress = 0; + markDirty(); + } + } + + public int getFacing(){ + return facing; + } + + public void setFacing(int dir){ + facing = dir; + } + + @Override + public void readCustomNBT(NBTTagCompound tag) + { + this.heliumStack = ItemStack.loadItemStackFromNBT(tag.getCompoundTag("Helium")); + this.progress = tag.getInteger("Progress"); + this.facing = tag.getShort("Facing"); + } + + @Override + public void writeCustomNBT(NBTTagCompound tag) + { + tag.setInteger("Progress", this.progress); + tag.setShort("Facing", (short) this.facing); + if(heliumStack != null) { + NBTTagCompound produce = new NBTTagCompound(); + heliumStack.writeToNBT(produce); + tag.setTag("Helium", produce); + } + else + tag.removeTag("Helium"); + } + + @Override + public int getSizeInventory() + { + return 1; + } + + @Override + public ItemStack getStackInSlot(int slot){ + return heliumStack; + } + + @Override + public ItemStack decrStackSize(int slot, int decrement){ + if(heliumStack == null) + return null; + if(decrement < heliumStack.stackSize){ + ItemStack take = heliumStack.splitStack(decrement); + if(heliumStack.stackSize <= 0) + heliumStack = null; + return take; + } + ItemStack take = heliumStack; + heliumStack = null; + return take; + } + + @Override + public void openInventory() {} + @Override + public void closeInventory() {} + + @Override + public boolean isUseableByPlayer(EntityPlayer player) + { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) == this && player.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack){ + return false; + } + + @Override + public int getInventoryStackLimit(){ + return 64; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack){ + heliumStack = stack; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot){ + return null; + } + + /** + * Returns the name of the inventory + */ + @Override + public String getInventoryName() + { + return "container.helium_collector"; + } + + /** + * Returns if the inventory is named + */ + @Override + public boolean hasCustomInventoryName() + { + return false; + } + +} |