aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core/tileentities
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-05-30 03:20:09 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-05-30 03:20:09 +1000
commit9a1352dac23c09cb333edf7b2db7cce07c15ee91 (patch)
tree9936ab004f549bd7320f4f9e077da9e7c99b6c84 /src/Java/miscutil/core/tileentities
parent2859490274895866f864e66ba7ac18882b0dfb53 (diff)
downloadGT5-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.java39
-rw-r--r--src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java134
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;
+ }
+
+}