From ac207393fee0e832d8d039f7e7d776264f161a83 Mon Sep 17 00:00:00 2001 From: pahimar Date: Tue, 29 Apr 2014 21:46:59 -0400 Subject: [PATCH] Managed to get a few things done today --- .../ee3/block/BlockAlchemicalChest.java | 16 +- .../com/pahimar/ee3/block/BlockAludel.java | 4 +- .../pahimar/ee3/block/BlockCalcinator.java | 12 +- .../com/pahimar/ee3/block/BlockGlassBell.java | 135 +++++++++++- .../ee3/block/BlockResearchStation.java | 4 +- .../gui/inventory/GuiAlchemicalChest.java | 24 +-- .../client/gui/inventory/GuiGlassBell.java | 45 ++++ .../TileEntityAlchemicalChestRenderer.java | 18 +- .../tileentity/TileEntityAludelRenderer.java | 24 ++- .../TileEntityCalcinatorRenderer.java | 12 +- .../TileEntityGlassBellRenderer.java | 19 +- .../TileEntityResearchStationRenderer.java | 4 +- .../com/pahimar/ee3/handler/GuiHandler.java | 23 ++- .../inventory/ContainerAlchemicalChest.java | 42 ++-- .../ee3/inventory/ContainerGlassBell.java | 80 +++++++ .../pahimar/ee3/network/PacketHandler.java | 33 +-- .../message/MessageTileCalcinator.java | 96 ++++++++- .../network/message/MessageTileEntity.java | 45 ---- .../message/MessageTileEntityAludel.java | 126 +++++++++++ .../network/message/MessageTileEntityEE.java | 81 ++++++++ .../message/MessageTileEntityGlassBell.java | 126 +++++++++++ .../com/pahimar/ee3/proxy/ClientProxy.java | 10 +- .../com/pahimar/ee3/proxy/CommonProxy.java | 16 +- .../tileentity/TileAlchemicalChestLarge.java | 9 - .../tileentity/TileAlchemicalChestMedium.java | 9 - .../tileentity/TileAlchemicalChestSmall.java | 9 - ...st.java => TileEntityAlchemicalChest.java} | 5 +- .../TileEntityAlchemicalChestLarge.java | 9 + .../TileEntityAlchemicalChestMedium.java | 9 + .../TileEntityAlchemicalChestSmall.java | 9 + ...{TileAludel.java => TileEntityAludel.java} | 13 +- ...cinator.java => TileEntityCalcinator.java} | 13 +- .../pahimar/ee3/tileentity/TileEntityEE.java | 14 +- .../ee3/tileentity/TileEntityGlassBell.java | 195 ++++++++++++++++++ .../tileentity/TileEntityResearchStation.java | 5 + .../pahimar/ee3/tileentity/TileGlassBell.java | 97 --------- .../ee3/tileentity/TileResearchStation.java | 5 - 37 files changed, 1075 insertions(+), 321 deletions(-) create mode 100644 src/main/java/com/pahimar/ee3/client/gui/inventory/GuiGlassBell.java create mode 100644 src/main/java/com/pahimar/ee3/inventory/ContainerGlassBell.java delete mode 100644 src/main/java/com/pahimar/ee3/network/message/MessageTileEntity.java create mode 100644 src/main/java/com/pahimar/ee3/network/message/MessageTileEntityAludel.java create mode 100644 src/main/java/com/pahimar/ee3/network/message/MessageTileEntityEE.java create mode 100644 src/main/java/com/pahimar/ee3/network/message/MessageTileEntityGlassBell.java delete mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestLarge.java delete mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestMedium.java delete mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestSmall.java rename src/main/java/com/pahimar/ee3/tileentity/{TileAlchemicalChest.java => TileEntityAlchemicalChest.java} (98%) create mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestLarge.java create mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestMedium.java create mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestSmall.java rename src/main/java/com/pahimar/ee3/tileentity/{TileAludel.java => TileEntityAludel.java} (85%) rename src/main/java/com/pahimar/ee3/tileentity/{TileCalcinator.java => TileEntityCalcinator.java} (92%) create mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileEntityGlassBell.java create mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileEntityResearchStation.java delete mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileGlassBell.java delete mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileResearchStation.java diff --git a/src/main/java/com/pahimar/ee3/block/BlockAlchemicalChest.java b/src/main/java/com/pahimar/ee3/block/BlockAlchemicalChest.java index 2ccbce00..de2c49c3 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockAlchemicalChest.java +++ b/src/main/java/com/pahimar/ee3/block/BlockAlchemicalChest.java @@ -4,10 +4,10 @@ import com.pahimar.ee3.EquivalentExchange3; import com.pahimar.ee3.reference.GuiIds; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.RenderIds; -import com.pahimar.ee3.tileentity.TileAlchemicalChest; -import com.pahimar.ee3.tileentity.TileAlchemicalChestLarge; -import com.pahimar.ee3.tileentity.TileAlchemicalChestMedium; -import com.pahimar.ee3.tileentity.TileAlchemicalChestSmall; +import com.pahimar.ee3.tileentity.TileEntityAlchemicalChest; +import com.pahimar.ee3.tileentity.TileEntityAlchemicalChestLarge; +import com.pahimar.ee3.tileentity.TileEntityAlchemicalChestMedium; +import com.pahimar.ee3.tileentity.TileEntityAlchemicalChestSmall; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.ITileEntityProvider; @@ -37,15 +37,15 @@ public class BlockAlchemicalChest extends BlockEE implements ITileEntityProvider { if (metaData == 0) { - return new TileAlchemicalChestSmall(); + return new TileEntityAlchemicalChestSmall(); } else if (metaData == 1) { - return new TileAlchemicalChestMedium(); + return new TileEntityAlchemicalChestMedium(); } else if (metaData == 2) { - return new TileAlchemicalChestLarge(); + return new TileEntityAlchemicalChestLarge(); } return null; @@ -84,7 +84,7 @@ public class BlockAlchemicalChest extends BlockEE implements ITileEntityProvider } else { - if (!world.isRemote && world.getTileEntity(x, y, z) instanceof TileAlchemicalChest) + if (!world.isRemote && world.getTileEntity(x, y, z) instanceof TileEntityAlchemicalChest) { player.openGui(EquivalentExchange3.instance, GuiIds.ALCHEMICAL_CHEST, world, x, y, z); } diff --git a/src/main/java/com/pahimar/ee3/block/BlockAludel.java b/src/main/java/com/pahimar/ee3/block/BlockAludel.java index 2431d334..7bbe4b69 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockAludel.java +++ b/src/main/java/com/pahimar/ee3/block/BlockAludel.java @@ -2,7 +2,7 @@ package com.pahimar.ee3.block; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.RenderIds; -import com.pahimar.ee3.tileentity.TileAludel; +import com.pahimar.ee3.tileentity.TileEntityAludel; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; @@ -21,7 +21,7 @@ public class BlockAludel extends BlockEE implements ITileEntityProvider @Override public TileEntity createNewTileEntity(World world, int metaData) { - return new TileAludel(); + return new TileEntityAludel(); } @Override diff --git a/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java b/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java index 59420a3a..9a6a442e 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java +++ b/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java @@ -5,7 +5,7 @@ import com.pahimar.ee3.reference.GuiIds; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.Particles; import com.pahimar.ee3.reference.RenderIds; -import com.pahimar.ee3.tileentity.TileCalcinator; +import com.pahimar.ee3.tileentity.TileEntityCalcinator; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; @@ -28,7 +28,7 @@ public class BlockCalcinator extends BlockEE implements ITileEntityProvider @Override public TileEntity createNewTileEntity(World world, int metaData) { - return new TileCalcinator(); + return new TileEntityCalcinator(); } @Override @@ -52,7 +52,7 @@ public class BlockCalcinator extends BlockEE implements ITileEntityProvider @Override public int getLightValue(IBlockAccess world, int x, int y, int z) { - if ((world.getTileEntity(x, y, z) instanceof TileCalcinator) && (((TileCalcinator) world.getTileEntity(x, y, z)).getState() == 1)) + if ((world.getTileEntity(x, y, z) instanceof TileEntityCalcinator) && (((TileEntityCalcinator) world.getTileEntity(x, y, z)).getState() == 1)) { return 15; } @@ -79,7 +79,7 @@ public class BlockCalcinator extends BlockEE implements ITileEntityProvider { if (!world.isRemote) { - if (world.getTileEntity(x, y, z) instanceof TileCalcinator) + if (world.getTileEntity(x, y, z) instanceof TileEntityCalcinator) { player.openGui(EquivalentExchange3.instance, GuiIds.CALCINATOR, world, x, y, z); } @@ -92,9 +92,9 @@ public class BlockCalcinator extends BlockEE implements ITileEntityProvider @Override public void randomDisplayTick(World world, int x, int y, int z, Random random) { - if (world.getTileEntity(x, y, z) instanceof TileCalcinator) + if (world.getTileEntity(x, y, z) instanceof TileEntityCalcinator) { - if (((TileCalcinator) world.getTileEntity(x, y, z)).getState() == 1) + if (((TileEntityCalcinator) world.getTileEntity(x, y, z)).getState() == 1) { // Fire pot particles world.spawnParticle(Particles.NORMAL_SMOKE, (double) x + 0.5F, (double) y + 0.4F, (double) ((z + 0.5F) + (random.nextFloat() * 0.5F - 0.3F)), 0.0D, 0.0D, 0.0D); diff --git a/src/main/java/com/pahimar/ee3/block/BlockGlassBell.java b/src/main/java/com/pahimar/ee3/block/BlockGlassBell.java index f44d32a3..7a6a240f 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockGlassBell.java +++ b/src/main/java/com/pahimar/ee3/block/BlockGlassBell.java @@ -1,12 +1,23 @@ package com.pahimar.ee3.block; +import com.pahimar.ee3.EquivalentExchange3; +import com.pahimar.ee3.reference.GuiIds; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.RenderIds; -import com.pahimar.ee3.tileentity.TileGlassBell; +import com.pahimar.ee3.tileentity.TileEntityAludel; +import com.pahimar.ee3.tileentity.TileEntityEE; +import com.pahimar.ee3.tileentity.TileEntityGlassBell; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public class BlockGlassBell extends BlockEE implements ITileEntityProvider { @@ -20,7 +31,7 @@ public class BlockGlassBell extends BlockEE implements ITileEntityProvider @Override public TileEntity createNewTileEntity(World world, int metaData) { - return new TileGlassBell(); + return new TileEntityGlassBell(); } @Override @@ -40,4 +51,124 @@ public class BlockGlassBell extends BlockEE implements ITileEntityProvider { return RenderIds.glassBell; } + + @Override + public int getLightValue(IBlockAccess world, int x, int y, int z) + { + if (world.getTileEntity(x, y, z) instanceof TileEntityGlassBell) + { + TileEntityGlassBell tileEntityGlassBell = (TileEntityGlassBell) world.getTileEntity(x, y, z); + + return tileEntityGlassBell.getState(); + } + + return 0; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) + { + if (player.isSneaking()) + { + return false; + } + else + { + if (!world.isRemote) + { + if (world.getTileEntity(x, y, z) instanceof TileEntityGlassBell) + { + if (world.getTileEntity(x, y - 1, z) instanceof TileEntityAludel) + { + player.openGui(EquivalentExchange3.instance, GuiIds.ALUDEL, world, x, y - 1, z); + } + else + { + player.openGui(EquivalentExchange3.instance, GuiIds.GLASS_BELL, world, x, y, z); + } + } + } + + return true; + } + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityLiving, ItemStack itemStack) + { + if (itemStack.hasDisplayName()) + { + ((TileEntityEE) world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); + } + + if (world.getTileEntity(x, y - 1, z) != null && world.getTileEntity(x, y - 1, z) instanceof TileEntityAludel) + { + ((TileEntityEE) world.getTileEntity(x, y, z)).setOrientation(ForgeDirection.UP); + } + else + { + ((TileEntityEE) world.getTileEntity(x, y, z)).setOrientation(world.getBlockMetadata(x, y, z)); + } + + world.setBlockMetadataWithNotify(x, y, z, 0, 3); + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int sideHit, float hitX, float hitY, float hitZ, int metaData) + { + return sideHit; + } + + /** + * Ray traces through the blocks collision from start vector to end vector returning a ray trace hit. Args: world, + * x, y, z, startVec, endVec + */ + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) + { + if (world.getTileEntity(x, y, z) instanceof TileEntityGlassBell) + { + TileEntityGlassBell tileGlassBell = (TileEntityGlassBell) world.getTileEntity(x, y, z); + + switch (tileGlassBell.getOrientation()) + { + case DOWN: + { + this.setBlockBounds(0.125F, 0.33F, 0.125F, 0.875F, 1.0F, 0.875F); + break; + } + case UP: + { + this.setBlockBounds(0.125F, 0.0F, 0.125F, 0.875F, 0.66F, 0.875F); + break; + } + case NORTH: + { + this.setBlockBounds(0.125F, 0.125F, 0.33F, 0.875F, 0.875F, 1.0F); + break; + } + case SOUTH: + { + this.setBlockBounds(0.125F, 0.125F, 0.0F, 0.875F, 0.875F, 0.66F); + break; + } + case EAST: + { + this.setBlockBounds(0.0F, 0.125F, 0.125F, 0.66F, 0.875F, 0.875F); + break; + } + case WEST: + { + this.setBlockBounds(0.33F, 0.125F, 0.125F, 1.0F, 0.875F, 0.875F); + break; + } + case UNKNOWN: + { + break; + } + } + } + + return super.collisionRayTrace(world, x, y, z, startVec, endVec); + } } diff --git a/src/main/java/com/pahimar/ee3/block/BlockResearchStation.java b/src/main/java/com/pahimar/ee3/block/BlockResearchStation.java index 6b82c8bc..409f9b32 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockResearchStation.java +++ b/src/main/java/com/pahimar/ee3/block/BlockResearchStation.java @@ -2,7 +2,7 @@ package com.pahimar.ee3.block; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.RenderIds; -import com.pahimar.ee3.tileentity.TileResearchStation; +import com.pahimar.ee3.tileentity.TileEntityResearchStation; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; @@ -20,7 +20,7 @@ public class BlockResearchStation extends BlockEE implements ITileEntityProvider @Override public TileEntity createNewTileEntity(World world, int metaData) { - return new TileResearchStation(); + return new TileEntityResearchStation(); } @Override diff --git a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalChest.java b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalChest.java index 35ea6a30..af54ee50 100644 --- a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalChest.java +++ b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiAlchemicalChest.java @@ -3,7 +3,7 @@ package com.pahimar.ee3.client.gui.inventory; import com.pahimar.ee3.inventory.ContainerAlchemicalChest; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.Textures; -import com.pahimar.ee3.tileentity.TileAlchemicalChest; +import com.pahimar.ee3.tileentity.TileEntityAlchemicalChest; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.StatCollector; @@ -11,24 +11,24 @@ import org.lwjgl.opengl.GL11; public class GuiAlchemicalChest extends GuiContainer { - private TileAlchemicalChest tileAlchemicalChest; + private TileEntityAlchemicalChest tileEntityAlchemicalChest; - public GuiAlchemicalChest(InventoryPlayer inventoryPlayer, TileAlchemicalChest alchemicalChest) + public GuiAlchemicalChest(InventoryPlayer inventoryPlayer, TileEntityAlchemicalChest alchemicalChest) { super(new ContainerAlchemicalChest(inventoryPlayer, alchemicalChest)); - tileAlchemicalChest = alchemicalChest; + tileEntityAlchemicalChest = alchemicalChest; - if (this.tileAlchemicalChest.getState() == 0) + if (this.tileEntityAlchemicalChest.getState() == 0) { xSize = 230; ySize = 186; } - else if (this.tileAlchemicalChest.getState() == 1) + else if (this.tileEntityAlchemicalChest.getState() == 1) { xSize = 230; ySize = 240; } - else if (this.tileAlchemicalChest.getState() == 2) + else if (this.tileEntityAlchemicalChest.getState() == 2) { xSize = 248; ySize = 256; @@ -38,9 +38,9 @@ public class GuiAlchemicalChest extends GuiContainer @Override protected void drawGuiContainerForegroundLayer(int x, int y) { - if (tileAlchemicalChest.getState() == 0 || tileAlchemicalChest.getState() == 1) + if (tileEntityAlchemicalChest.getState() == 0 || tileEntityAlchemicalChest.getState() == 1) { - fontRendererObj.drawString(tileAlchemicalChest.hasCustomInventoryName() ? tileAlchemicalChest.getInventoryName() : StatCollector.translateToLocal(tileAlchemicalChest.getInventoryName()), 8, 6, 4210752); + fontRendererObj.drawString(StatCollector.translateToLocal(tileEntityAlchemicalChest.getInventoryName()), 8, 6, 4210752); fontRendererObj.drawString(StatCollector.translateToLocal(Names.Containers.VANILLA_INVENTORY), 35, ySize - 95 + 2, 4210752); } } @@ -50,15 +50,15 @@ public class GuiAlchemicalChest extends GuiContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - if (tileAlchemicalChest.getState() == 0) + if (tileEntityAlchemicalChest.getState() == 0) { this.mc.getTextureManager().bindTexture(Textures.GUI_ALCHEMICAL_CHEST_SMALL); } - else if (tileAlchemicalChest.getState() == 1) + else if (tileEntityAlchemicalChest.getState() == 1) { this.mc.getTextureManager().bindTexture(Textures.GUI_ALCHEMICAL_CHEST_MEDIUM); } - else if (tileAlchemicalChest.getState() == 2) + else if (tileEntityAlchemicalChest.getState() == 2) { this.mc.getTextureManager().bindTexture(Textures.GUI_ALCHEMICAL_CHEST_LARGE); } diff --git a/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiGlassBell.java b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiGlassBell.java new file mode 100644 index 00000000..9e117261 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/client/gui/inventory/GuiGlassBell.java @@ -0,0 +1,45 @@ +package com.pahimar.ee3.client.gui.inventory; + +import com.pahimar.ee3.inventory.ContainerGlassBell; +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; +import com.pahimar.ee3.tileentity.TileEntityGlassBell; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + +@SideOnly(Side.CLIENT) +public class GuiGlassBell extends GuiContainer +{ + private TileEntityGlassBell tileEntityGlassBell; + + public GuiGlassBell(InventoryPlayer inventoryPlayer, TileEntityGlassBell tileEntityGlassBell) + { + super(new ContainerGlassBell(inventoryPlayer, tileEntityGlassBell)); + this.tileEntityGlassBell = tileEntityGlassBell; + xSize = 176; + ySize = 140; + } + + @Override + protected void drawGuiContainerForegroundLayer(int x, int y) + { + String containerName = StatCollector.translateToLocal(tileEntityGlassBell.getInventoryName()); + fontRendererObj.drawString(containerName, xSize / 2 - fontRendererObj.getStringWidth(containerName) / 2, 6, 4210752); + fontRendererObj.drawString(StatCollector.translateToLocal(Names.Containers.VANILLA_INVENTORY), 8, ySize - 93, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) + { + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(Textures.GUI_GLASS_BELL); + int xStart = (width - xSize) / 2; + int yStart = (height - ySize) / 2; + this.drawTexturedModalRect(xStart, yStart, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityAlchemicalChestRenderer.java b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityAlchemicalChestRenderer.java index 7ec6d088..a3be5121 100644 --- a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityAlchemicalChestRenderer.java +++ b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityAlchemicalChestRenderer.java @@ -1,7 +1,7 @@ package com.pahimar.ee3.client.renderer.tileentity; import com.pahimar.ee3.reference.Textures; -import com.pahimar.ee3.tileentity.TileAlchemicalChest; +import com.pahimar.ee3.tileentity.TileEntityAlchemicalChest; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelChest; @@ -19,25 +19,25 @@ public class TileEntityAlchemicalChestRenderer extends TileEntitySpecialRenderer @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { - if (tileEntity instanceof TileAlchemicalChest) + if (tileEntity instanceof TileEntityAlchemicalChest) { - TileAlchemicalChest tileAlchemicalChest = (TileAlchemicalChest) tileEntity; + TileEntityAlchemicalChest tileEntityAlchemicalChest = (TileEntityAlchemicalChest) tileEntity; ForgeDirection direction = null; - if (tileAlchemicalChest.getWorldObj() != null) + if (tileEntityAlchemicalChest.getWorldObj() != null) { - direction = tileAlchemicalChest.getOrientation(); + direction = tileEntityAlchemicalChest.getOrientation(); } - if (tileAlchemicalChest.getState() == 0) + if (tileEntityAlchemicalChest.getState() == 0) { this.bindTexture(Textures.MODEL_ALCHEMICAL_CHEST_SMALL); } - else if (tileAlchemicalChest.getState() == 1) + else if (tileEntityAlchemicalChest.getState() == 1) { this.bindTexture(Textures.MODEL_ALCHEMICAL_CHEST_MEDIUM); } - else if (tileAlchemicalChest.getState() == 2) + else if (tileEntityAlchemicalChest.getState() == 2) { this.bindTexture(Textures.MODEL_ALCHEMICAL_CHEST_LARGE); } @@ -72,7 +72,7 @@ public class TileEntityAlchemicalChestRenderer extends TileEntitySpecialRenderer GL11.glRotatef(angle, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - float adjustedLidAngle = tileAlchemicalChest.prevLidAngle + (tileAlchemicalChest.lidAngle - tileAlchemicalChest.prevLidAngle) * tick; + float adjustedLidAngle = tileEntityAlchemicalChest.prevLidAngle + (tileEntityAlchemicalChest.lidAngle - tileEntityAlchemicalChest.prevLidAngle) * tick; adjustedLidAngle = 1.0F - adjustedLidAngle; adjustedLidAngle = 1.0F - adjustedLidAngle * adjustedLidAngle * adjustedLidAngle; modelChest.chestLid.rotateAngleX = -(adjustedLidAngle * (float) Math.PI / 2.0F); diff --git a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityAludelRenderer.java b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityAludelRenderer.java index ec3428f7..f14d7bb4 100644 --- a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityAludelRenderer.java +++ b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityAludelRenderer.java @@ -2,8 +2,9 @@ package com.pahimar.ee3.client.renderer.tileentity; import com.pahimar.ee3.client.renderer.model.ModelAludel; import com.pahimar.ee3.reference.Textures; -import com.pahimar.ee3.tileentity.TileAludel; -import com.pahimar.ee3.tileentity.TileGlassBell; +import com.pahimar.ee3.tileentity.TileEntityAludel; +import com.pahimar.ee3.tileentity.TileEntityGlassBell; +import com.pahimar.ee3.util.LogHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.entity.RenderItem; @@ -39,15 +40,15 @@ public class TileEntityAludelRenderer extends TileEntitySpecialRenderer @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { - if (tileEntity instanceof TileAludel) + if (tileEntity instanceof TileEntityAludel) { - TileAludel tileAludel = (TileAludel) tileEntity; + TileEntityAludel tileEntityAludel = (TileEntityAludel) tileEntity; GL11.glPushMatrix(); GL11.glDisable(GL11.GL_LIGHTING); // Scale, Translate, Rotate - scaleTranslateRotate(x, y, z, tileAludel.getOrientation()); + scaleTranslateRotate(x, y, z, tileEntityAludel.getOrientation()); // Bind texture this.bindTexture(Textures.MODEL_ALUDEL); @@ -62,18 +63,18 @@ public class TileEntityAludelRenderer extends TileEntitySpecialRenderer */ GL11.glPushMatrix(); - TileEntity tileGlassBell = tileAludel.getWorldObj().getTileEntity(tileAludel.xCoord, tileAludel.yCoord + 1, tileAludel.zCoord); + TileEntity tileGlassBell = tileEntityAludel.getWorldObj().getTileEntity(tileEntityAludel.xCoord, tileEntityAludel.yCoord + 1, tileEntityAludel.zCoord); - if (tileGlassBell instanceof TileGlassBell) + if (tileGlassBell instanceof TileEntityGlassBell) { - if (tileAludel.outputItemStack != null) + if (tileEntityAludel.outputItemStack != null) { - float scaleFactor = getGhostItemScaleFactor(tileAludel.outputItemStack); + float scaleFactor = getGhostItemScaleFactor(tileEntityAludel.outputItemStack); float rotationAngle = (float) (720.0 * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL); - EntityItem ghostEntityItem = new EntityItem(tileAludel.getWorldObj()); + EntityItem ghostEntityItem = new EntityItem(tileEntityAludel.getWorldObj()); ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileAludel.outputItemStack); + ghostEntityItem.setEntityItemStack(tileEntityAludel.outputItemStack); GL11.glTranslatef((float) x + 0.5F, (float) y + 1.25F, (float) z + 0.5F); GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); @@ -91,6 +92,7 @@ public class TileEntityAludelRenderer extends TileEntitySpecialRenderer private void scaleTranslateRotate(double x, double y, double z, ForgeDirection orientation) { + LogHelper.info(orientation); if (orientation == ForgeDirection.NORTH) { GL11.glTranslated(x + 1, y, z); diff --git a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityCalcinatorRenderer.java b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityCalcinatorRenderer.java index b4c7f6ea..c3de601d 100644 --- a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityCalcinatorRenderer.java +++ b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityCalcinatorRenderer.java @@ -4,7 +4,7 @@ import com.pahimar.ee3.client.renderer.model.ModelCalcinator; import com.pahimar.ee3.client.util.ColorUtils; import com.pahimar.ee3.reference.Colors; import com.pahimar.ee3.reference.Textures; -import com.pahimar.ee3.tileentity.TileCalcinator; +import com.pahimar.ee3.tileentity.TileEntityCalcinator; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -50,9 +50,9 @@ public class TileEntityCalcinatorRenderer extends TileEntitySpecialRenderer @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { - if (tileEntity instanceof TileCalcinator) + if (tileEntity instanceof TileEntityCalcinator) { - TileCalcinator tileCalcinator = (TileCalcinator) tileEntity; + TileEntityCalcinator tileEntityCalcinator = (TileEntityCalcinator) tileEntity; GL11.glPushMatrix(); GL11.glDisable(GL11.GL_LIGHTING); @@ -64,7 +64,7 @@ public class TileEntityCalcinatorRenderer extends TileEntitySpecialRenderer GL11.glRotatef(-90F, 1F, 0F, 0F); // Bind texture - if (tileCalcinator.getState() == 1) + if (tileEntityCalcinator.getState() == 1) { this.bindTexture(Textures.MODEL_CALCINATOR_ACTIVE); } @@ -76,7 +76,7 @@ public class TileEntityCalcinatorRenderer extends TileEntitySpecialRenderer // Render modelCalcinator.renderPart("Calcinator"); - int dustStackSize = tileCalcinator.leftStackSize + tileCalcinator.rightStackSize; + int dustStackSize = tileEntityCalcinator.leftStackSize + tileEntityCalcinator.rightStackSize; if (dustStackSize > 0) { @@ -86,7 +86,7 @@ public class TileEntityCalcinatorRenderer extends TileEntitySpecialRenderer GL11.glRotatef(90F, 1F, 0F, 0F); GL11.glRotatef(-45F, 0F, 1F, 0F); - float[] dustColour = getBlendedDustColour(tileCalcinator.leftStackSize, tileCalcinator.leftStackMeta, tileCalcinator.rightStackSize, tileCalcinator.rightStackMeta); + float[] dustColour = getBlendedDustColour(tileEntityCalcinator.leftStackSize, tileEntityCalcinator.leftStackMeta, tileEntityCalcinator.rightStackSize, tileEntityCalcinator.rightStackMeta); GL11.glColor4f(dustColour[0], dustColour[1], dustColour[2], 1F); diff --git a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityGlassBellRenderer.java b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityGlassBellRenderer.java index d746de79..9f03d53d 100644 --- a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityGlassBellRenderer.java +++ b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityGlassBellRenderer.java @@ -2,7 +2,7 @@ package com.pahimar.ee3.client.renderer.tileentity; import com.pahimar.ee3.client.renderer.model.ModelGlassBell; import com.pahimar.ee3.reference.Textures; -import com.pahimar.ee3.tileentity.TileGlassBell; +import com.pahimar.ee3.tileentity.TileEntityGlassBell; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.entity.RenderItem; @@ -39,9 +39,9 @@ public class TileEntityGlassBellRenderer extends TileEntitySpecialRenderer @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { - if (tileEntity instanceof TileGlassBell) + if (tileEntity instanceof TileEntityGlassBell) { - TileGlassBell tileGlassBell = (TileGlassBell) tileEntity; + TileEntityGlassBell tileEntityGlassBell = (TileEntityGlassBell) tileEntity; GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); @@ -52,7 +52,7 @@ public class TileEntityGlassBellRenderer extends TileEntitySpecialRenderer GL11.glPushMatrix(); // Scale, Translate, Rotate - renderGlassBellByOrientation(x, y, z, tileGlassBell.getOrientation()); + renderGlassBellByOrientation(x, y, z, tileEntityGlassBell.getOrientation()); // Bind texture this.bindTexture(Textures.MODEL_GLASS_BELL); @@ -66,16 +66,17 @@ public class TileEntityGlassBellRenderer extends TileEntitySpecialRenderer */ GL11.glPushMatrix(); - if (tileGlassBell.outputItemStack != null) + if (tileEntityGlassBell.outputItemStack != null) { - float scaleFactor = getGhostItemScaleFactor(tileGlassBell.outputItemStack); + // TODO Stop the ghost item rendering in the event that the client's game is paused + float scaleFactor = getGhostItemScaleFactor(tileEntityGlassBell.outputItemStack); float rotationAngle = (float) (720.0 * (System.currentTimeMillis() & 0x3FFFL) / 0x3FFFL); - EntityItem ghostEntityItem = new EntityItem(tileGlassBell.getWorldObj()); + EntityItem ghostEntityItem = new EntityItem(tileEntityGlassBell.getWorldObj()); ghostEntityItem.hoverStart = 0.0F; - ghostEntityItem.setEntityItemStack(tileGlassBell.outputItemStack); + ghostEntityItem.setEntityItemStack(tileEntityGlassBell.outputItemStack); - translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), x, y, z, tileGlassBell.getOrientation()); + translateGhostItemByOrientation(ghostEntityItem.getEntityItem(), x, y, z, tileEntityGlassBell.getOrientation()); GL11.glScalef(scaleFactor, scaleFactor, scaleFactor); GL11.glRotatef(rotationAngle, 0.0F, 1.0F, 0.0F); diff --git a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityResearchStationRenderer.java b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityResearchStationRenderer.java index 6098cb06..cde5e588 100644 --- a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityResearchStationRenderer.java +++ b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityResearchStationRenderer.java @@ -2,7 +2,7 @@ package com.pahimar.ee3.client.renderer.tileentity; import com.pahimar.ee3.client.renderer.model.ModelResearchStation; import com.pahimar.ee3.reference.Textures; -import com.pahimar.ee3.tileentity.TileResearchStation; +import com.pahimar.ee3.tileentity.TileEntityResearchStation; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -17,7 +17,7 @@ public class TileEntityResearchStationRenderer extends TileEntitySpecialRenderer @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) { - if (tileEntity instanceof TileResearchStation) + if (tileEntity instanceof TileEntityResearchStation) { GL11.glPushMatrix(); GL11.glDisable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/pahimar/ee3/handler/GuiHandler.java b/src/main/java/com/pahimar/ee3/handler/GuiHandler.java index 4cff6ea9..4ebefa77 100644 --- a/src/main/java/com/pahimar/ee3/handler/GuiHandler.java +++ b/src/main/java/com/pahimar/ee3/handler/GuiHandler.java @@ -1,9 +1,12 @@ package com.pahimar.ee3.handler; import com.pahimar.ee3.client.gui.inventory.GuiAlchemicalChest; +import com.pahimar.ee3.client.gui.inventory.GuiGlassBell; import com.pahimar.ee3.inventory.ContainerAlchemicalChest; +import com.pahimar.ee3.inventory.ContainerGlassBell; import com.pahimar.ee3.reference.GuiIds; -import com.pahimar.ee3.tileentity.TileAlchemicalChest; +import com.pahimar.ee3.tileentity.TileEntityAlchemicalChest; +import com.pahimar.ee3.tileentity.TileEntityGlassBell; import cpw.mods.fml.common.network.IGuiHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; @@ -15,8 +18,13 @@ public class GuiHandler implements IGuiHandler { if (id == GuiIds.ALCHEMICAL_CHEST) { - TileAlchemicalChest tileAlchemicalChest = (TileAlchemicalChest) world.getTileEntity(x, y, z); - return new ContainerAlchemicalChest(player.inventory, tileAlchemicalChest); + TileEntityAlchemicalChest tileEntityAlchemicalChest = (TileEntityAlchemicalChest) world.getTileEntity(x, y, z); + return new ContainerAlchemicalChest(player.inventory, tileEntityAlchemicalChest); + } + else if (id == GuiIds.GLASS_BELL) + { + TileEntityGlassBell tileEntityGlassBell = (TileEntityGlassBell) world.getTileEntity(x, y, z); + return new ContainerGlassBell(player.inventory, tileEntityGlassBell); } return null; @@ -27,8 +35,13 @@ public class GuiHandler implements IGuiHandler { if (id == GuiIds.ALCHEMICAL_CHEST) { - TileAlchemicalChest tileAlchemicalChest = (TileAlchemicalChest) world.getTileEntity(x, y, z); - return new GuiAlchemicalChest(player.inventory, tileAlchemicalChest); + TileEntityAlchemicalChest tileEntityAlchemicalChest = (TileEntityAlchemicalChest) world.getTileEntity(x, y, z); + return new GuiAlchemicalChest(player.inventory, tileEntityAlchemicalChest); + } + else if (id == GuiIds.GLASS_BELL) + { + TileEntityGlassBell tileEntityGlassBell = (TileEntityGlassBell) world.getTileEntity(x, y, z); + return new GuiGlassBell(player.inventory, tileEntityGlassBell); } return null; diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java index 36735088..4f64b2f1 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java @@ -1,6 +1,6 @@ package com.pahimar.ee3.inventory; -import com.pahimar.ee3.tileentity.TileAlchemicalChest; +import com.pahimar.ee3.tileentity.TileEntityAlchemicalChest; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -24,26 +24,26 @@ public class ContainerAlchemicalChest extends Container // Player Inventory private final int PLAYER_INVENTORY_ROWS = 3; private final int PLAYER_INVENTORY_COLUMNS = 9; - private TileAlchemicalChest tileAlchemicalChest; + private TileEntityAlchemicalChest tileEntityAlchemicalChest; private int chestInventoryRows; private int chestInventoryColumns; - public ContainerAlchemicalChest(InventoryPlayer inventoryPlayer, TileAlchemicalChest tileAlchemicalChest) + public ContainerAlchemicalChest(InventoryPlayer inventoryPlayer, TileEntityAlchemicalChest tileEntityAlchemicalChest) { - this.tileAlchemicalChest = tileAlchemicalChest; - tileAlchemicalChest.openInventory(); + this.tileEntityAlchemicalChest = tileEntityAlchemicalChest; + tileEntityAlchemicalChest.openInventory(); - if (this.tileAlchemicalChest.getState() == 0) + if (this.tileEntityAlchemicalChest.getState() == 0) { chestInventoryRows = SMALL_CHEST_INVENTORY_ROWS; chestInventoryColumns = SMALL_CHEST_INVENTORY_COLUMNS; } - else if (this.tileAlchemicalChest.getState() == 1) + else if (this.tileEntityAlchemicalChest.getState() == 1) { chestInventoryRows = MEDIUM_CHEST_INVENTORY_ROWS; chestInventoryColumns = MEDIUM_CHEST_INVENTORY_COLUMNS; } - else if (this.tileAlchemicalChest.getState() == 2) + else if (this.tileEntityAlchemicalChest.getState() == 2) { chestInventoryRows = LARGE_CHEST_INVENTORY_ROWS; chestInventoryColumns = LARGE_CHEST_INVENTORY_COLUMNS; @@ -54,17 +54,17 @@ public class ContainerAlchemicalChest extends Container { for (int chestColumnIndex = 0; chestColumnIndex < chestInventoryColumns; ++chestColumnIndex) { - if (this.tileAlchemicalChest.getState() == 0) + if (this.tileEntityAlchemicalChest.getState() == 0) { - this.addSlotToContainer(new Slot(tileAlchemicalChest, chestColumnIndex + chestRowIndex * chestInventoryColumns, 8 + chestColumnIndex * 18, 18 + chestRowIndex * 18)); + this.addSlotToContainer(new Slot(tileEntityAlchemicalChest, chestColumnIndex + chestRowIndex * chestInventoryColumns, 8 + chestColumnIndex * 18, 18 + chestRowIndex * 18)); } - else if (this.tileAlchemicalChest.getState() == 1) + else if (this.tileEntityAlchemicalChest.getState() == 1) { - this.addSlotToContainer(new Slot(tileAlchemicalChest, chestColumnIndex + chestRowIndex * chestInventoryColumns, 8 + chestColumnIndex * 18, 18 + chestRowIndex * 18)); + this.addSlotToContainer(new Slot(tileEntityAlchemicalChest, chestColumnIndex + chestRowIndex * chestInventoryColumns, 8 + chestColumnIndex * 18, 18 + chestRowIndex * 18)); } - else if (this.tileAlchemicalChest.getState() == 2) + else if (this.tileEntityAlchemicalChest.getState() == 2) { - this.addSlotToContainer(new Slot(tileAlchemicalChest, chestColumnIndex + chestRowIndex * chestInventoryColumns, 8 + chestColumnIndex * 18, 8 + chestRowIndex * 18)); + this.addSlotToContainer(new Slot(tileEntityAlchemicalChest, chestColumnIndex + chestRowIndex * chestInventoryColumns, 8 + chestColumnIndex * 18, 8 + chestRowIndex * 18)); } } } @@ -74,15 +74,15 @@ public class ContainerAlchemicalChest extends Container { for (int inventoryColumnIndex = 0; inventoryColumnIndex < PLAYER_INVENTORY_COLUMNS; ++inventoryColumnIndex) { - if (this.tileAlchemicalChest.getState() == 0) + if (this.tileEntityAlchemicalChest.getState() == 0) { this.addSlotToContainer(new Slot(inventoryPlayer, inventoryColumnIndex + inventoryRowIndex * 9 + 9, 35 + inventoryColumnIndex * 18, 104 + inventoryRowIndex * 18)); } - else if (this.tileAlchemicalChest.getState() == 1) + else if (this.tileEntityAlchemicalChest.getState() == 1) { this.addSlotToContainer(new Slot(inventoryPlayer, inventoryColumnIndex + inventoryRowIndex * 9 + 9, 35 + inventoryColumnIndex * 18, 158 + inventoryRowIndex * 18)); } - else if (this.tileAlchemicalChest.getState() == 2) + else if (this.tileEntityAlchemicalChest.getState() == 2) { this.addSlotToContainer(new Slot(inventoryPlayer, inventoryColumnIndex + inventoryRowIndex * 9 + 9, 44 + inventoryColumnIndex * 18, 174 + inventoryRowIndex * 18)); } @@ -92,15 +92,15 @@ public class ContainerAlchemicalChest extends Container // Add the player's action bar slots to the container for (int actionBarSlotIndex = 0; actionBarSlotIndex < PLAYER_INVENTORY_COLUMNS; ++actionBarSlotIndex) { - if (this.tileAlchemicalChest.getState() == 0) + if (this.tileEntityAlchemicalChest.getState() == 0) { this.addSlotToContainer(new Slot(inventoryPlayer, actionBarSlotIndex, 35 + actionBarSlotIndex * 18, 162)); } - else if (this.tileAlchemicalChest.getState() == 1) + else if (this.tileEntityAlchemicalChest.getState() == 1) { this.addSlotToContainer(new Slot(inventoryPlayer, actionBarSlotIndex, 35 + actionBarSlotIndex * 18, 216)); } - else if (this.tileAlchemicalChest.getState() == 2) + else if (this.tileEntityAlchemicalChest.getState() == 2) { this.addSlotToContainer(new Slot(inventoryPlayer, actionBarSlotIndex, 44 + actionBarSlotIndex * 18, 232)); } @@ -120,7 +120,7 @@ public class ContainerAlchemicalChest extends Container public void onContainerClosed(EntityPlayer entityPlayer) { super.onContainerClosed(entityPlayer); - tileAlchemicalChest.closeInventory(); + tileEntityAlchemicalChest.closeInventory(); } @Override diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerGlassBell.java b/src/main/java/com/pahimar/ee3/inventory/ContainerGlassBell.java new file mode 100644 index 00000000..c0445544 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerGlassBell.java @@ -0,0 +1,80 @@ +package com.pahimar.ee3.inventory; + +import com.pahimar.ee3.tileentity.TileEntityGlassBell; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerGlassBell extends Container +{ + private final int PLAYER_INVENTORY_ROWS = 3; + private final int PLAYER_INVENTORY_COLUMNS = 9; + + public ContainerGlassBell(InventoryPlayer inventoryPlayer, TileEntityGlassBell tileGlassBell) + { + this.addSlotToContainer(new Slot(tileGlassBell, TileEntityGlassBell.DISPLAY_SLOT_INVENTORY_INDEX, 80, 22)); + + // Add the player's inventory slots to the container + for (int inventoryRowIndex = 0; inventoryRowIndex < PLAYER_INVENTORY_ROWS; ++inventoryRowIndex) + { + for (int inventoryColumnIndex = 0; inventoryColumnIndex < PLAYER_INVENTORY_COLUMNS; ++inventoryColumnIndex) + { + this.addSlotToContainer(new Slot(inventoryPlayer, inventoryColumnIndex + inventoryRowIndex * 9 + 9, 8 + inventoryColumnIndex * 18, 58 + inventoryRowIndex * 18)); + } + } + + // Add the player's action bar slots to the container + for (int actionBarSlotIndex = 0; actionBarSlotIndex < PLAYER_INVENTORY_COLUMNS; ++actionBarSlotIndex) + { + this.addSlotToContainer(new Slot(inventoryPlayer, actionBarSlotIndex, 8 + actionBarSlotIndex * 18, 116)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return true; + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer entityPlayer, int slotIndex) + { + ItemStack itemStack = null; + Slot slot = (Slot) inventorySlots.get(slotIndex); + + if (slot != null && slot.getHasStack()) + { + ItemStack slotItemStack = slot.getStack(); + itemStack = slotItemStack.copy(); + + if (slotIndex < TileEntityGlassBell.INVENTORY_SIZE) + { + + if (!this.mergeItemStack(slotItemStack, 1, inventorySlots.size(), true)) + { + return null; + } + } + else + { + if (!this.mergeItemStack(slotItemStack, 0, TileEntityGlassBell.INVENTORY_SIZE, false)) + { + return null; + } + } + + if (slotItemStack.stackSize == 0) + { + slot.putStack(null); + } + else + { + slot.onSlotChanged(); + } + } + + return itemStack; + } +} diff --git a/src/main/java/com/pahimar/ee3/network/PacketHandler.java b/src/main/java/com/pahimar/ee3/network/PacketHandler.java index 6381366b..7d9f5746 100644 --- a/src/main/java/com/pahimar/ee3/network/PacketHandler.java +++ b/src/main/java/com/pahimar/ee3/network/PacketHandler.java @@ -1,16 +1,13 @@ package com.pahimar.ee3.network; -import com.pahimar.ee3.network.message.MessageTileEntity; +import com.pahimar.ee3.network.message.MessageTileCalcinator; +import com.pahimar.ee3.network.message.MessageTileEntityAludel; +import com.pahimar.ee3.network.message.MessageTileEntityEE; +import com.pahimar.ee3.network.message.MessageTileEntityGlassBell; import com.pahimar.ee3.reference.Reference; -import com.pahimar.ee3.tileentity.TileEntityEE; -import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; -import cpw.mods.fml.common.network.simpleimpl.MessageContext; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.relauncher.Side; -import net.minecraft.tileentity.TileEntity; public class PacketHandler { @@ -18,23 +15,9 @@ public class PacketHandler public static void init() { - INSTANCE.registerMessage(TileEntityUpdateHandler.class, MessageTileEntity.class, 0, Side.CLIENT); - } - - public class TileEntityUpdateHandler implements IMessageHandler - { - @Override - public IMessage onMessage(MessageTileEntity message, MessageContext ctx) - { - TileEntity tileEntity = FMLClientHandler.instance().getClient().theWorld.getTileEntity(message.x, message.y, message.z); - - if (tileEntity instanceof TileEntityEE) - { - ((TileEntityEE) tileEntity).setOrientation(message.orientation); - ((TileEntityEE) tileEntity).setState(message.state); - } - - return null; - } + INSTANCE.registerMessage(MessageTileEntityEE.class, MessageTileEntityEE.class, 0, Side.CLIENT); + INSTANCE.registerMessage(MessageTileCalcinator.class, MessageTileCalcinator.class, 1, Side.CLIENT); + INSTANCE.registerMessage(MessageTileEntityAludel.class, MessageTileEntityAludel.class, 2, Side.CLIENT); + INSTANCE.registerMessage(MessageTileEntityGlassBell.class, MessageTileEntityGlassBell.class, 3, Side.CLIENT); } } diff --git a/src/main/java/com/pahimar/ee3/network/message/MessageTileCalcinator.java b/src/main/java/com/pahimar/ee3/network/message/MessageTileCalcinator.java index 2d7da04d..a53c83a4 100644 --- a/src/main/java/com/pahimar/ee3/network/message/MessageTileCalcinator.java +++ b/src/main/java/com/pahimar/ee3/network/message/MessageTileCalcinator.java @@ -1,5 +1,99 @@ package com.pahimar.ee3.network.message; -public class MessageTileCalcinator +import com.pahimar.ee3.tileentity.TileEntityCalcinator; +import com.pahimar.ee3.tileentity.TileEntityEE; +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.tileentity.TileEntity; + +public class MessageTileCalcinator implements IMessage, IMessageHandler { + public int x, y, z; + public byte orientation, state; + public String customName, owner; + public byte leftStackSize, leftStackMeta, rightStackSize, rightStackMeta; + + public MessageTileCalcinator() + { + } + + public MessageTileCalcinator(TileEntityCalcinator tileEntityCalcinator) + { + this.x = tileEntityCalcinator.xCoord; + this.y = tileEntityCalcinator.yCoord; + this.z = tileEntityCalcinator.zCoord; + this.orientation = (byte) tileEntityCalcinator.getOrientation().ordinal(); + this.state = (byte) tileEntityCalcinator.getState(); + this.customName = tileEntityCalcinator.getCustomName(); + this.owner = tileEntityCalcinator.getOwner(); + this.leftStackSize = tileEntityCalcinator.leftStackSize; + this.leftStackMeta = tileEntityCalcinator.leftStackMeta; + this.rightStackSize = tileEntityCalcinator.rightStackSize; + this.rightStackMeta = tileEntityCalcinator.rightStackMeta; + } + + @Override + public void fromBytes(ByteBuf buf) + { + this.x = buf.readInt(); + this.y = buf.readInt(); + this.z = buf.readInt(); + this.orientation = buf.readByte(); + this.state = buf.readByte(); + int customNameLength = buf.readInt(); + this.customName = new String(buf.readBytes(customNameLength).array()); + int ownerLength = buf.readInt(); + this.owner = new String(buf.readBytes(ownerLength).array()); + this.leftStackSize = buf.readByte(); + this.leftStackMeta = buf.readByte(); + this.rightStackSize = buf.readByte(); + this.rightStackMeta = buf.readByte(); + } + + @Override + public void toBytes(ByteBuf buf) + { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeByte(orientation); + buf.writeByte(state); + buf.writeInt(customName.length()); + buf.writeBytes(customName.getBytes()); + buf.writeInt(owner.length()); + buf.writeBytes(owner.getBytes()); + buf.writeByte(leftStackSize); + buf.writeByte(leftStackMeta); + buf.writeByte(rightStackSize); + buf.writeByte(rightStackMeta); + } + + @Override + public IMessage onMessage(MessageTileCalcinator message, MessageContext ctx) + { + TileEntity tileEntity = FMLClientHandler.instance().getClient().theWorld.getTileEntity(message.x, message.y, message.z); + + if (tileEntity instanceof TileEntityCalcinator) + { + ((TileEntityEE) tileEntity).setOrientation(message.orientation); + ((TileEntityEE) tileEntity).setState(message.state); + ((TileEntityEE) tileEntity).setCustomName(message.customName); + ((TileEntityEE) tileEntity).setOwner(message.owner); + ((TileEntityCalcinator) tileEntity).leftStackSize = message.leftStackSize; + ((TileEntityCalcinator) tileEntity).leftStackMeta = message.leftStackMeta; + ((TileEntityCalcinator) tileEntity).rightStackSize = message.rightStackSize; + ((TileEntityCalcinator) tileEntity).rightStackMeta = message.rightStackMeta; + } + + return null; + } + + @Override + public String toString() + { + return String.format("MessageTileEntityCalcinator - x:%s, y:%s, z:%s, orientation:%s, state:%s, customName:%s, owner:%s, leftStackSize: %s, leftStackMeta: %s, rightStackSize: %s, rightStackMeta: %s", x, y, z, orientation, state, customName, owner, leftStackSize, leftStackMeta, rightStackSize, rightStackMeta); + } } diff --git a/src/main/java/com/pahimar/ee3/network/message/MessageTileEntity.java b/src/main/java/com/pahimar/ee3/network/message/MessageTileEntity.java deleted file mode 100644 index c9fc649a..00000000 --- a/src/main/java/com/pahimar/ee3/network/message/MessageTileEntity.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.pahimar.ee3.network.message; - -import com.pahimar.ee3.tileentity.TileEntityEE; -import cpw.mods.fml.common.network.simpleimpl.IMessage; -import io.netty.buffer.ByteBuf; - -public class MessageTileEntity implements IMessage -{ - public int x, y, z; - public byte orientation, state; - public String customName, owner; - - public MessageTileEntity() - { - } - - public MessageTileEntity(TileEntityEE tileEntityEE) - { - this.x = tileEntityEE.xCoord; - this.y = tileEntityEE.yCoord; - this.z = tileEntityEE.zCoord; - this.orientation = (byte) tileEntityEE.getOrientation().ordinal(); - this.state = (byte) tileEntityEE.getState(); - } - - @Override - public void fromBytes(ByteBuf buf) - { - this.x = buf.readInt(); - this.y = buf.readInt(); - this.z = buf.readInt(); - this.orientation = buf.readByte(); - this.state = buf.readByte(); - } - - @Override - public void toBytes(ByteBuf buf) - { - buf.writeInt(x); - buf.writeInt(y); - buf.writeInt(z); - buf.writeByte(orientation); - buf.writeByte(state); - } -} diff --git a/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityAludel.java b/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityAludel.java new file mode 100644 index 00000000..9722de09 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityAludel.java @@ -0,0 +1,126 @@ +package com.pahimar.ee3.network.message; + +import com.pahimar.ee3.reference.Colors; +import com.pahimar.ee3.tileentity.TileEntityAludel; +import com.pahimar.ee3.util.ColorHelper; +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class MessageTileEntityAludel implements IMessage, IMessageHandler +{ + public int x, y, z; + public byte orientation; + public byte state; + public String customName, owner; + public int itemId, metaData, stackSize, itemColor; + + public MessageTileEntityAludel() + { + } + + public MessageTileEntityAludel(TileEntityAludel tileEntityAludel, ItemStack outputItemStack) + { + this.x = tileEntityAludel.xCoord; + this.y = tileEntityAludel.yCoord; + this.z = tileEntityAludel.zCoord; + this.orientation = (byte) tileEntityAludel.getOrientation().ordinal(); + this.state = (byte) tileEntityAludel.getState(); + this.customName = tileEntityAludel.getCustomName(); + this.owner = tileEntityAludel.getOwner(); + + if (outputItemStack != null) + { + this.itemId = Item.getIdFromItem(outputItemStack.getItem()); + this.metaData = outputItemStack.getItemDamage(); + this.stackSize = outputItemStack.stackSize; + this.itemColor = ColorHelper.getColor(outputItemStack); + } + else + { + this.itemId = -1; + this.metaData = 0; + this.stackSize = 0; + this.itemColor = 0; + } + } + + @Override + public void fromBytes(ByteBuf buf) + { + this.x = buf.readInt(); + this.y = buf.readInt(); + this.z = buf.readInt(); + this.orientation = buf.readByte(); + this.state = buf.readByte(); + int customNameLength = buf.readInt(); + this.customName = new String(buf.readBytes(customNameLength).array()); + int ownerLength = buf.readInt(); + this.owner = new String(buf.readBytes(ownerLength).array()); + this.itemId = buf.readInt(); + this.metaData = buf.readInt(); + this.stackSize = buf.readInt(); + this.itemColor = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) + { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeByte(orientation); + buf.writeByte(state); + buf.writeInt(customName.length()); + buf.writeBytes(customName.getBytes()); + buf.writeInt(owner.length()); + buf.writeBytes(owner.getBytes()); + buf.writeInt(itemId); + buf.writeInt(metaData); + buf.writeInt(stackSize); + buf.writeInt(itemColor); + } + + @Override + public IMessage onMessage(MessageTileEntityAludel message, MessageContext ctx) + { + TileEntity tileEntity = FMLClientHandler.instance().getClient().theWorld.getTileEntity(message.x, message.y, message.z); + + if (tileEntity instanceof TileEntityAludel) + { + ((TileEntityAludel) tileEntity).setOrientation(message.orientation); + ((TileEntityAludel) tileEntity).setState(message.state); + ((TileEntityAludel) tileEntity).setCustomName(message.customName); + ((TileEntityAludel) tileEntity).setOwner(message.owner); + + ItemStack outputItemStack = null; + + if (message.itemId != -1) + { + outputItemStack = new ItemStack(Item.getItemById(message.itemId), message.stackSize, message.metaData); + if (message.itemColor != Integer.parseInt(Colors.PURE_WHITE, 16)) + { + ColorHelper.setColor(outputItemStack, itemColor); + } + } + + ((TileEntityAludel) tileEntity).outputItemStack = outputItemStack; + + //NAME UPDATE + FMLClientHandler.instance().getClient().theWorld.func_147451_t(message.x, message.y, message.z); + } + + return null; + } + + @Override + public String toString() + { + return String.format("MessageTileEntityAludel - x:%s, y:%s, z:%s, orientation:%s, state:%s, customName:%s, owner:%s, itemId: %s, metaData: %s, stackSize: %s, itemColor: %s", x, y, z, orientation, state, customName, owner, itemId, metaData, stackSize, itemColor); + } +} diff --git a/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityEE.java b/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityEE.java new file mode 100644 index 00000000..f982d40c --- /dev/null +++ b/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityEE.java @@ -0,0 +1,81 @@ +package com.pahimar.ee3.network.message; + +import com.pahimar.ee3.tileentity.TileEntityEE; +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.tileentity.TileEntity; + +public class MessageTileEntityEE implements IMessage, IMessageHandler +{ + public int x, y, z; + public byte orientation, state; + public String customName, owner; + + public MessageTileEntityEE() + { + } + + public MessageTileEntityEE(TileEntityEE tileEntityEE) + { + this.x = tileEntityEE.xCoord; + this.y = tileEntityEE.yCoord; + this.z = tileEntityEE.zCoord; + this.orientation = (byte) tileEntityEE.getOrientation().ordinal(); + this.state = (byte) tileEntityEE.getState(); + this.customName = tileEntityEE.getCustomName(); + this.owner = tileEntityEE.getOwner(); + } + + @Override + public void fromBytes(ByteBuf buf) + { + this.x = buf.readInt(); + this.y = buf.readInt(); + this.z = buf.readInt(); + this.orientation = buf.readByte(); + this.state = buf.readByte(); + int customNameLength = buf.readInt(); + this.customName = new String(buf.readBytes(customNameLength).array()); + int ownerLength = buf.readInt(); + this.owner = new String(buf.readBytes(ownerLength).array()); + } + + @Override + public void toBytes(ByteBuf buf) + { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeByte(orientation); + buf.writeByte(state); + buf.writeInt(customName.length()); + buf.writeBytes(customName.getBytes()); + buf.writeInt(owner.length()); + buf.writeBytes(owner.getBytes()); + } + + @Override + public IMessage onMessage(MessageTileEntityEE message, MessageContext ctx) + { + TileEntity tileEntity = FMLClientHandler.instance().getClient().theWorld.getTileEntity(message.x, message.y, message.z); + + if (tileEntity instanceof TileEntityEE) + { + ((TileEntityEE) tileEntity).setOrientation(message.orientation); + ((TileEntityEE) tileEntity).setState(message.state); + ((TileEntityEE) tileEntity).setCustomName(message.customName); + ((TileEntityEE) tileEntity).setOwner(message.owner); + } + + return null; + } + + @Override + public String toString() + { + return String.format("MessageTileEntityEE - x:%s, y:%s, z:%s, orientation:%s, state:%s, customName:%s, owner:%s", x, y, z, orientation, state, customName, owner); + } +} diff --git a/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityGlassBell.java b/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityGlassBell.java new file mode 100644 index 00000000..bb182680 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/network/message/MessageTileEntityGlassBell.java @@ -0,0 +1,126 @@ +package com.pahimar.ee3.network.message; + +import com.pahimar.ee3.reference.Colors; +import com.pahimar.ee3.tileentity.TileEntityGlassBell; +import com.pahimar.ee3.util.ColorHelper; +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class MessageTileEntityGlassBell implements IMessage, IMessageHandler +{ + public int x, y, z; + public byte orientation; + public byte state; + public String customName, owner; + public int itemId, metaData, stackSize, itemColor; + + public MessageTileEntityGlassBell() + { + } + + public MessageTileEntityGlassBell(TileEntityGlassBell tileEntityGlassBell, ItemStack outputItemStack) + { + this.x = tileEntityGlassBell.xCoord; + this.y = tileEntityGlassBell.yCoord; + this.z = tileEntityGlassBell.zCoord; + this.orientation = (byte) tileEntityGlassBell.getOrientation().ordinal(); + this.state = (byte) tileEntityGlassBell.getState(); + this.customName = tileEntityGlassBell.getCustomName(); + this.owner = tileEntityGlassBell.getOwner(); + + if (outputItemStack != null) + { + this.itemId = Item.getIdFromItem(outputItemStack.getItem()); + this.metaData = outputItemStack.getItemDamage(); + this.stackSize = outputItemStack.stackSize; + this.itemColor = ColorHelper.getColor(outputItemStack); + } + else + { + this.itemId = -1; + this.metaData = 0; + this.stackSize = 0; + this.itemColor = 0; + } + } + + @Override + public void fromBytes(ByteBuf buf) + { + this.x = buf.readInt(); + this.y = buf.readInt(); + this.z = buf.readInt(); + this.orientation = buf.readByte(); + this.state = buf.readByte(); + int customNameLength = buf.readInt(); + this.customName = new String(buf.readBytes(customNameLength).array()); + int ownerLength = buf.readInt(); + this.owner = new String(buf.readBytes(ownerLength).array()); + this.itemId = buf.readInt(); + this.metaData = buf.readInt(); + this.stackSize = buf.readInt(); + this.itemColor = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) + { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeByte(orientation); + buf.writeByte(state); + buf.writeInt(customName.length()); + buf.writeBytes(customName.getBytes()); + buf.writeInt(owner.length()); + buf.writeBytes(owner.getBytes()); + buf.writeInt(itemId); + buf.writeInt(metaData); + buf.writeInt(stackSize); + buf.writeInt(itemColor); + } + + @Override + public IMessage onMessage(MessageTileEntityGlassBell message, MessageContext ctx) + { + TileEntity tileEntity = FMLClientHandler.instance().getClient().theWorld.getTileEntity(message.x, message.y, message.z); + + if (tileEntity instanceof TileEntityGlassBell) + { + ((TileEntityGlassBell) tileEntity).setOrientation(message.orientation); + ((TileEntityGlassBell) tileEntity).setState(message.state); + ((TileEntityGlassBell) tileEntity).setCustomName(message.customName); + ((TileEntityGlassBell) tileEntity).setOwner(message.owner); + + ItemStack outputItemStack = null; + + if (message.itemId != -1) + { + outputItemStack = new ItemStack(Item.getItemById(message.itemId), message.stackSize, message.metaData); + if (message.itemColor != Integer.parseInt(Colors.PURE_WHITE, 16)) + { + ColorHelper.setColor(outputItemStack, itemColor); + } + } + + ((TileEntityGlassBell) tileEntity).outputItemStack = outputItemStack; + + //NAME UPDATE + FMLClientHandler.instance().getClient().theWorld.func_147451_t(message.x, message.y, message.z); + } + + return null; + } + + @Override + public String toString() + { + return String.format("MessageTileEntityGlassBell - x:%s, y:%s, z:%s, orientation:%s, state:%s, customName:%s, owner:%s, itemId: %s, metaData: %s, stackSize: %s, itemColor: %s", x, y, z, orientation, state, customName, owner, itemId, metaData, stackSize, itemColor); + } +} diff --git a/src/main/java/com/pahimar/ee3/proxy/ClientProxy.java b/src/main/java/com/pahimar/ee3/proxy/ClientProxy.java index 4be27fea..976e0ccd 100644 --- a/src/main/java/com/pahimar/ee3/proxy/ClientProxy.java +++ b/src/main/java/com/pahimar/ee3/proxy/ClientProxy.java @@ -27,10 +27,10 @@ public class ClientProxy extends CommonProxy MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.glassBell), new ItemGlassBellRenderer()); MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.researchStation), new ItemResearchStationRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileAlchemicalChest.class, new TileEntityAlchemicalChestRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileCalcinator.class, new TileEntityCalcinatorRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileAludel.class, new TileEntityAludelRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileGlassBell.class, new TileEntityGlassBellRenderer()); - ClientRegistry.bindTileEntitySpecialRenderer(TileResearchStation.class, new TileEntityResearchStationRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAlchemicalChest.class, new TileEntityAlchemicalChestRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCalcinator.class, new TileEntityCalcinatorRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAludel.class, new TileEntityAludelRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGlassBell.class, new TileEntityGlassBellRenderer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityResearchStation.class, new TileEntityResearchStationRenderer()); } } diff --git a/src/main/java/com/pahimar/ee3/proxy/CommonProxy.java b/src/main/java/com/pahimar/ee3/proxy/CommonProxy.java index 7384d0d7..abdcd04f 100644 --- a/src/main/java/com/pahimar/ee3/proxy/CommonProxy.java +++ b/src/main/java/com/pahimar/ee3/proxy/CommonProxy.java @@ -1,19 +1,19 @@ package com.pahimar.ee3.proxy; import com.pahimar.ee3.reference.Names; -import com.pahimar.ee3.tileentity.TileAlchemicalChest; -import com.pahimar.ee3.tileentity.TileAlchemicalChestLarge; -import com.pahimar.ee3.tileentity.TileAlchemicalChestMedium; -import com.pahimar.ee3.tileentity.TileAlchemicalChestSmall; +import com.pahimar.ee3.tileentity.*; import cpw.mods.fml.common.registry.GameRegistry; public abstract class CommonProxy implements IProxy { public void registerTileEntities() { - GameRegistry.registerTileEntity(TileAlchemicalChest.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST); - GameRegistry.registerTileEntity(TileAlchemicalChestSmall.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST + "Small"); - GameRegistry.registerTileEntity(TileAlchemicalChestMedium.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST + "Medium"); - GameRegistry.registerTileEntity(TileAlchemicalChestLarge.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST + "Large"); + GameRegistry.registerTileEntity(TileEntityAlchemicalChest.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST); + GameRegistry.registerTileEntity(TileEntityAlchemicalChestSmall.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST + "Small"); + GameRegistry.registerTileEntity(TileEntityAlchemicalChestMedium.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST + "Medium"); + GameRegistry.registerTileEntity(TileEntityAlchemicalChestLarge.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST + "Large"); + GameRegistry.registerTileEntity(TileEntityAludel.class, "tile." + Names.Blocks.ALUDEL); + GameRegistry.registerTileEntity(TileEntityCalcinator.class, "tile." + Names.Blocks.CALCINATOR); + GameRegistry.registerTileEntity(TileEntityGlassBell.class, "tile." + Names.Blocks.GLASS_BELL); } } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestLarge.java b/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestLarge.java deleted file mode 100644 index e31de027..00000000 --- a/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestLarge.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.pahimar.ee3.tileentity; - -public class TileAlchemicalChestLarge extends TileAlchemicalChest -{ - public TileAlchemicalChestLarge() - { - super(2); - } -} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestMedium.java b/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestMedium.java deleted file mode 100644 index 7851756f..00000000 --- a/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestMedium.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.pahimar.ee3.tileentity; - -public class TileAlchemicalChestMedium extends TileAlchemicalChest -{ - public TileAlchemicalChestMedium() - { - super(1); - } -} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestSmall.java b/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestSmall.java deleted file mode 100644 index 28f5ffc6..00000000 --- a/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChestSmall.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.pahimar.ee3.tileentity; - -public class TileAlchemicalChestSmall extends TileAlchemicalChest -{ - public TileAlchemicalChestSmall() - { - super(0); - } -} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChest.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChest.java similarity index 98% rename from src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChest.java rename to src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChest.java index c22dfe6a..1fe947a7 100644 --- a/src/main/java/com/pahimar/ee3/tileentity/TileAlchemicalChest.java +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChest.java @@ -10,7 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -public class TileAlchemicalChest extends TileEntityEE implements IInventory +public class TileEntityAlchemicalChest extends TileEntityEE implements IInventory { /** * The current angle of the chest lid (between 0 and 1) @@ -37,7 +37,7 @@ public class TileAlchemicalChest extends TileEntityEE implements IInventory */ private ItemStack[] inventory; - public TileAlchemicalChest(int metaData) + public TileEntityAlchemicalChest(int metaData) { super(); this.state = (byte) metaData; @@ -116,6 +116,7 @@ public class TileAlchemicalChest extends TileEntityEE implements IInventory itemStack.stackSize = this.getInventoryStackLimit(); } + this.markDirty(); } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestLarge.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestLarge.java new file mode 100644 index 00000000..2d7cb9c8 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestLarge.java @@ -0,0 +1,9 @@ +package com.pahimar.ee3.tileentity; + +public class TileEntityAlchemicalChestLarge extends TileEntityAlchemicalChest +{ + public TileEntityAlchemicalChestLarge() + { + super(2); + } +} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestMedium.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestMedium.java new file mode 100644 index 00000000..5f654d5b --- /dev/null +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestMedium.java @@ -0,0 +1,9 @@ +package com.pahimar.ee3.tileentity; + +public class TileEntityAlchemicalChestMedium extends TileEntityAlchemicalChest +{ + public TileEntityAlchemicalChestMedium() + { + super(1); + } +} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestSmall.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestSmall.java new file mode 100644 index 00000000..b28a0c06 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemicalChestSmall.java @@ -0,0 +1,9 @@ +package com.pahimar.ee3.tileentity; + +public class TileEntityAlchemicalChestSmall extends TileEntityAlchemicalChest +{ + public TileEntityAlchemicalChestSmall() + { + super(0); + } +} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileAludel.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAludel.java similarity index 85% rename from src/main/java/com/pahimar/ee3/tileentity/TileAludel.java rename to src/main/java/com/pahimar/ee3/tileentity/TileEntityAludel.java index 426a4b6e..33ceec78 100644 --- a/src/main/java/com/pahimar/ee3/tileentity/TileAludel.java +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAludel.java @@ -1,10 +1,13 @@ package com.pahimar.ee3.tileentity; +import com.pahimar.ee3.network.PacketHandler; +import com.pahimar.ee3.network.message.MessageTileEntityAludel; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.network.Packet; -public class TileAludel extends TileEntityEE implements ISidedInventory +public class TileEntityAludel extends TileEntityEE implements ISidedInventory { public static final int INVENTORY_SIZE = 4; public static final int FUEL_INVENTORY_INDEX = 0; @@ -21,7 +24,7 @@ public class TileAludel extends TileEntityEE implements ISidedInventory */ private ItemStack[] inventory; - public TileAludel() + public TileEntityAludel() { inventory = new ItemStack[INVENTORY_SIZE]; } @@ -115,4 +118,10 @@ public class TileAludel extends TileEntityEE implements ISidedInventory { return false; } + + @Override + public Packet getDescriptionPacket() + { + return PacketHandler.INSTANCE.getPacketFrom(new MessageTileEntityAludel(this, null)); + } } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileCalcinator.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityCalcinator.java similarity index 92% rename from src/main/java/com/pahimar/ee3/tileentity/TileCalcinator.java rename to src/main/java/com/pahimar/ee3/tileentity/TileEntityCalcinator.java index a65dc5ee..685d0053 100644 --- a/src/main/java/com/pahimar/ee3/tileentity/TileCalcinator.java +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityCalcinator.java @@ -1,12 +1,15 @@ package com.pahimar.ee3.tileentity; +import com.pahimar.ee3.network.PacketHandler; +import com.pahimar.ee3.network.message.MessageTileCalcinator; import com.pahimar.ee3.reference.Names; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.network.Packet; import net.minecraftforge.common.util.ForgeDirection; -public class TileCalcinator extends TileEntityEE implements ISidedInventory +public class TileEntityCalcinator extends TileEntityEE implements ISidedInventory { public static final int INVENTORY_SIZE = 4; public static final int FUEL_INVENTORY_INDEX = 0; @@ -26,7 +29,7 @@ public class TileCalcinator extends TileEntityEE implements ISidedInventory */ private ItemStack[] inventory; - public TileCalcinator() + public TileEntityCalcinator() { inventory = new ItemStack[INVENTORY_SIZE]; } @@ -184,4 +187,10 @@ public class TileCalcinator extends TileEntityEE implements ISidedInventory return super.receiveClientEvent(eventId, eventData); } } + + @Override + public Packet getDescriptionPacket() + { + return PacketHandler.INSTANCE.getPacketFrom(new MessageTileCalcinator(this)); + } } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityEE.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityEE.java index 551e8627..f41565e7 100644 --- a/src/main/java/com/pahimar/ee3/tileentity/TileEntityEE.java +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityEE.java @@ -1,7 +1,7 @@ package com.pahimar.ee3.tileentity; import com.pahimar.ee3.network.PacketHandler; -import com.pahimar.ee3.network.message.MessageTileEntity; +import com.pahimar.ee3.network.message.MessageTileEntityEE; import com.pahimar.ee3.reference.Names; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.Packet; @@ -28,16 +28,16 @@ public class TileEntityEE extends TileEntity return orientation; } - public void setOrientation(int orientation) - { - this.orientation = ForgeDirection.getOrientation(orientation); - } - public void setOrientation(ForgeDirection orientation) { this.orientation = orientation; } + public void setOrientation(int orientation) + { + this.orientation = ForgeDirection.getOrientation(orientation); + } + public short getState() { return state; @@ -126,6 +126,6 @@ public class TileEntityEE extends TileEntity @Override public Packet getDescriptionPacket() { - return PacketHandler.INSTANCE.getPacketFrom(new MessageTileEntity(this)); + return PacketHandler.INSTANCE.getPacketFrom(new MessageTileEntityEE(this)); } } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityGlassBell.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityGlassBell.java new file mode 100644 index 00000000..c0fc1d63 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityGlassBell.java @@ -0,0 +1,195 @@ +package com.pahimar.ee3.tileentity; + +import com.pahimar.ee3.network.PacketHandler; +import com.pahimar.ee3.network.message.MessageTileEntityGlassBell; +import com.pahimar.ee3.reference.Names; +import cpw.mods.fml.common.network.NetworkRegistry; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.Packet; + +public class TileEntityGlassBell extends TileEntityEE implements IInventory +{ + public static final int INVENTORY_SIZE = 1; + public static final int DISPLAY_SLOT_INVENTORY_INDEX = 0; + public ItemStack outputItemStack; + + /** + * The ItemStacks that hold the items currently being used in the Glass Bell + */ + private ItemStack[] inventory; + + public TileEntityGlassBell() + { + inventory = new ItemStack[INVENTORY_SIZE]; + } + + @Override + public int getSizeInventory() + { + return inventory.length; + } + + @Override + public ItemStack getStackInSlot(int slotIndex) + { + return inventory[slotIndex]; + } + + @Override + public ItemStack decrStackSize(int slotIndex, int decrementAmount) + { + ItemStack itemStack = getStackInSlot(slotIndex); + if (itemStack != null) + { + if (itemStack.stackSize <= decrementAmount) + { + setInventorySlotContents(slotIndex, null); + } + else + { + itemStack = itemStack.splitStack(decrementAmount); + if (itemStack.stackSize == 0) + { + setInventorySlotContents(slotIndex, null); + } + } + } + + return itemStack; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slotIndex) + { + ItemStack itemStack = getStackInSlot(slotIndex); + if (itemStack != null) + { + setInventorySlotContents(slotIndex, null); + } + return itemStack; + } + + @Override + public void setInventorySlotContents(int slotIndex, ItemStack itemStack) + { + inventory[slotIndex] = itemStack; + + if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) + { + itemStack.stackSize = getInventoryStackLimit(); + } + + if (!this.worldObj.isRemote) + { + ItemStack displayStack = this.inventory[DISPLAY_SLOT_INVENTORY_INDEX]; + + if (displayStack != null) + { + this.state = (byte) Block.getBlockFromItem(displayStack.getItem()).getLightValue(); + } + else + { + this.state = 0; + } + + PacketHandler.INSTANCE.sendToAllAround(new MessageTileEntityGlassBell(this, displayStack), new NetworkRegistry.TargetPoint(this.worldObj.provider.dimensionId, this.xCoord, this.yCoord, this.zCoord, 128d)); + } + + this.markDirty(); + } + + @Override + public String getInventoryName() + { + return this.hasCustomName() ? this.getCustomName() : Names.Containers.GLASS_BELL; + } + + @Override + public boolean hasCustomInventoryName() + { + return false; + } + + @Override + public int getInventoryStackLimit() + { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer entityPlayer) + { + return true; + } + + @Override + public void openInventory() + { + } + + @Override + public void closeInventory() + { + } + + @Override + public boolean isItemValidForSlot(int slotIndex, ItemStack itemStack) + { + return true; + } + + @Override + public void readFromNBT(NBTTagCompound nbtTagCompound) + { + super.readFromNBT(nbtTagCompound); + + // Read in the ItemStacks in the inventory from NBT + NBTTagList tagList = nbtTagCompound.getTagList("Items", 10); + inventory = new ItemStack[this.getSizeInventory()]; + for (int i = 0; i < tagList.tagCount(); ++i) + { + NBTTagCompound tagCompound = tagList.getCompoundTagAt(i); + byte slotIndex = tagCompound.getByte("Slot"); + if (slotIndex >= 0 && slotIndex < inventory.length) + { + inventory[slotIndex] = ItemStack.loadItemStackFromNBT(tagCompound); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbtTagCompound) + { + super.writeToNBT(nbtTagCompound); + + // Write the ItemStacks in the inventory to NBT + NBTTagList tagList = new NBTTagList(); + for (int currentIndex = 0; currentIndex < inventory.length; ++currentIndex) + { + if (inventory[currentIndex] != null) + { + NBTTagCompound tagCompound = new NBTTagCompound(); + tagCompound.setByte("Slot", (byte) currentIndex); + inventory[currentIndex].writeToNBT(tagCompound); + tagList.appendTag(tagCompound); + } + } + nbtTagCompound.setTag("Items", tagList); + } + + @Override + public Packet getDescriptionPacket() + { + if (getStackInSlot(DISPLAY_SLOT_INVENTORY_INDEX) != null && getStackInSlot(DISPLAY_SLOT_INVENTORY_INDEX).stackSize > 0) + { + return PacketHandler.INSTANCE.getPacketFrom(new MessageTileEntityGlassBell(this, getStackInSlot(DISPLAY_SLOT_INVENTORY_INDEX))); + } + + return PacketHandler.INSTANCE.getPacketFrom(new MessageTileEntityGlassBell(this, null)); + } +} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityResearchStation.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityResearchStation.java new file mode 100644 index 00000000..39e57181 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityResearchStation.java @@ -0,0 +1,5 @@ +package com.pahimar.ee3.tileentity; + +public class TileEntityResearchStation extends TileEntityEE +{ +} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileGlassBell.java b/src/main/java/com/pahimar/ee3/tileentity/TileGlassBell.java deleted file mode 100644 index b3a14616..00000000 --- a/src/main/java/com/pahimar/ee3/tileentity/TileGlassBell.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.pahimar.ee3.tileentity; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -public class TileGlassBell extends TileEntityEE implements IInventory -{ - public static final int INVENTORY_SIZE = 1; - public static final int DISPLAY_SLOT_INVENTORY_INDEX = 0; - public ItemStack outputItemStack; - /** - * Server sync counter (once per 20 ticks) - */ - private int ticksSinceSync; - /** - * The ItemStacks that hold the items currently being used in the Glass Bell - */ - private ItemStack[] inventory; - - public TileGlassBell() - { - inventory = new ItemStack[INVENTORY_SIZE]; - } - - @Override - public int getSizeInventory() - { - return 0; - } - - @Override - public ItemStack getStackInSlot(int var1) - { - return null; - } - - @Override - public ItemStack decrStackSize(int var1, int var2) - { - return null; - } - - @Override - public ItemStack getStackInSlotOnClosing(int var1) - { - return null; - } - - @Override - public void setInventorySlotContents(int var1, ItemStack var2) - { - - } - - @Override - public String getInventoryName() - { - return null; - } - - @Override - public boolean hasCustomInventoryName() - { - return false; - } - - @Override - public int getInventoryStackLimit() - { - return 0; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer var1) - { - return false; - } - - @Override - public void openInventory() - { - - } - - @Override - public void closeInventory() - { - - } - - @Override - public boolean isItemValidForSlot(int var1, ItemStack var2) - { - return false; - } -} diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileResearchStation.java b/src/main/java/com/pahimar/ee3/tileentity/TileResearchStation.java deleted file mode 100644 index 9611b700..00000000 --- a/src/main/java/com/pahimar/ee3/tileentity/TileResearchStation.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.pahimar.ee3.tileentity; - -public class TileResearchStation extends TileEntityEE -{ -}