From d7566428d5316cb477291fc8878ccd2f336649f4 Mon Sep 17 00:00:00 2001 From: Aidan Brady Date: Thu, 23 May 2013 13:30:12 -0400 Subject: [PATCH] v5.5.6 Beta #6 *Configurable machines now render colored overlays when being hovered over with a configurator. *Fixed render NPE. *Fixed config being loaded after blocks/items. *Byte[] packet management. *Machine side config is now synced to the client. --- .../mekanism/textures/blocks/OverlayAqua.png | Bin 0 -> 1165 bytes .../mekanism/textures/blocks/OverlayBlack.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayBrightGreen.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayDarkAqua.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayDarkBlue.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayDarkGreen.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayDarkGrey.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayDarkRed.png | Bin 0 -> 1165 bytes .../mekanism/textures/blocks/OverlayGrey.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayIndigo.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayOrange.png | Bin 0 -> 1165 bytes .../mekanism/textures/blocks/OverlayPink.png | Bin 0 -> 1165 bytes .../textures/blocks/OverlayPurple.png | Bin 0 -> 1165 bytes .../mekanism/textures/blocks/OverlayRed.png | Bin 0 -> 1165 bytes .../mekanism/textures/blocks/OverlayWhite.png | Bin 0 -> 1163 bytes .../textures/blocks/OverlayYellow.png | Bin 0 -> 1165 bytes src/minecraft/mekanism/api/Object3D.java | 5 + .../mekanism/client/ClientProxy.java | 18 ++ .../mekanism/client/ClientTickHandler.java | 1 + .../client/MachineRenderingHandler.java | 5 + .../mekanism/client/MekanismRenderer.java | 66 +++++ .../client/RenderConfigurableMachine.java | 225 ++++++++++++++++++ .../mekanism/client/RenderDynamicTank.java | 30 +-- .../mekanism/client/RenderTickHandler.java | 30 ++- .../mekanism/client/ThreadTankSparkle.java | 12 +- src/minecraft/mekanism/common/BlockBasic.java | 2 +- .../mekanism/common/BlockBounding.java | 8 + .../mekanism/common/BlockTransmitter.java | 5 + .../mekanism/common/CommonProxy.java | 9 + .../mekanism/common/ItemConfigurator.java | 6 + src/minecraft/mekanism/common/Mekanism.java | 13 +- .../mekanism/common/PacketHandler.java | 14 ++ .../mekanism/common/RobitAIFollow.java | 2 +- .../common/TileEntityBasicMachine.java | 7 + .../mekanism/common/TileEntityFactory.java | 6 + .../common/TileEntityMetallurgicInfuser.java | 7 + 36 files changed, 415 insertions(+), 56 deletions(-) create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayAqua.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayBlack.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayBrightGreen.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayDarkAqua.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayDarkBlue.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayDarkGreen.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayDarkGrey.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayDarkRed.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayGrey.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayIndigo.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayOrange.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayPink.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayPurple.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayRed.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayWhite.png create mode 100644 bin/minecraft/mods/mekanism/textures/blocks/OverlayYellow.png create mode 100644 src/minecraft/mekanism/client/RenderConfigurableMachine.java diff --git a/bin/minecraft/mods/mekanism/textures/blocks/OverlayAqua.png b/bin/minecraft/mods/mekanism/textures/blocks/OverlayAqua.png new file mode 100644 index 0000000000000000000000000000000000000000..7e9aac3d6c5f76bfd2804f04c3d5bdb2bb08871e GIT binary patch literal 1165 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 literal 0 HcmV?d00001 diff --git a/bin/minecraft/mods/mekanism/textures/blocks/OverlayDarkBlue.png b/bin/minecraft/mods/mekanism/textures/blocks/OverlayDarkBlue.png new file mode 100644 index 0000000000000000000000000000000000000000..8cce9d4b9ccfcc5613a0cf25f200183b95ba9075 GIT binary patch literal 1165 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 literal 0 HcmV?d00001 diff --git a/bin/minecraft/mods/mekanism/textures/blocks/OverlayPink.png b/bin/minecraft/mods/mekanism/textures/blocks/OverlayPink.png new file mode 100644 index 0000000000000000000000000000000000000000..306ae09e8c607d262791a1030efc89da3ff85bf2 GIT binary patch literal 1165 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 cachedOverlays = new HashMap>(); + + public RenderConfigurableMachine() + { + if(coloredOverlays == null) + { + coloredOverlays = new Icon[16]; + + TextureMap registrar = mc.renderEngine.textureMapBlocks; + + coloredOverlays[0] = registrar.registerIcon("mekanism:OverlayBlack"); + coloredOverlays[1] = registrar.registerIcon("mekanism:OverlayDarkBlue"); + coloredOverlays[2] = registrar.registerIcon("mekanism:OverlayDarkGreen"); + coloredOverlays[3] = registrar.registerIcon("mekanism:OverlayDarkAqua"); + coloredOverlays[4] = registrar.registerIcon("mekanism:OverlayDarkRed"); + coloredOverlays[5] = registrar.registerIcon("mekanism:OverlayPurple"); + coloredOverlays[6] = registrar.registerIcon("mekanism:OverlayOrange"); + coloredOverlays[7] = registrar.registerIcon("mekanism:OverlayGrey"); + coloredOverlays[8] = registrar.registerIcon("mekanism:OverlayDarkGrey"); + coloredOverlays[9] = registrar.registerIcon("mekanism:OverlayIndigo"); + coloredOverlays[10] = registrar.registerIcon("mekanism:OverlayBrightGreen"); + coloredOverlays[11] = registrar.registerIcon("mekanism:OverlayAqua"); + coloredOverlays[12] = registrar.registerIcon("mekanism:OverlayRed"); + coloredOverlays[13] = registrar.registerIcon("mekanism:OverlayPink"); + coloredOverlays[14] = registrar.registerIcon("mekanism:OverlayYellow"); + coloredOverlays[15] = registrar.registerIcon("mekanism:OverlayWhite"); + } + } + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTick) + { + renderAModelAt((IConfigurable)tileEntity, x, y, z, partialTick); + } + + public void renderAModelAt(IConfigurable configurable, double x, double y, double z, float partialTick) + { + TileEntity tileEntity = (TileEntity)configurable; + EntityPlayer player = mc.thePlayer; + World world = mc.thePlayer.worldObj; + MovingObjectPosition pos = player.rayTrace(8.0D, 1.0F); + + if(pos != null && player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemConfigurator) + { + int xPos = MathHelper.floor_double(pos.blockX); + int yPos = MathHelper.floor_double(pos.blockY); + int zPos = MathHelper.floor_double(pos.blockZ); + + Object3D obj = new Object3D(xPos, yPos, zPos); + + if(xPos == tileEntity.xCoord && yPos == tileEntity.yCoord && zPos == tileEntity.zCoord) + { + EnumColor color = configurable.getSideData().get(configurable.getConfiguration()[MekanismUtils.getBaseOrientation(pos.sideHit, configurable.getOrientation())]).color; + + push(); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.4F); + + bindTextureByName("/mods/mekanism/textures/blocks/Overlay" + color.friendlyName.replace(" ", "") + ".png"); + GL11.glTranslatef((float)x, (float)y, (float)z); + + int display = getOverlayDisplay(world, ForgeDirection.getOrientation(pos.sideHit), color).display; + GL11.glCallList(display); + + pop(); + } + } + } + + private void pop() + { + GL11.glPopAttrib(); + GL11.glPopMatrix(); + } + + private void push() + { + GL11.glPushMatrix(); + GL11.glPushAttrib(GL11.GL_ENABLE_BIT); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + } + + private DisplayInteger getOverlayDisplay(World world, ForgeDirection side, EnumColor color) + { + if(cachedOverlays.containsKey(side) && cachedOverlays.get(side).containsKey(color)) + { + return cachedOverlays.get(side).get(color); + } + + Model3D toReturn = new Model3D(); + toReturn.baseBlock = Block.stone; + toReturn.texture = coloredOverlays[color.ordinal()]; + + DisplayInteger display = new DisplayInteger(); + + if(cachedOverlays.containsKey(side)) + { + cachedOverlays.get(side).put(color, display); + } + else { + HashMap map = new HashMap(); + map.put(color, display); + cachedOverlays.put(side, map); + } + + display.display = GLAllocation.generateDisplayLists(1); + GL11.glNewList(display.display, 4864); + + switch(side) + { + case DOWN: + { + toReturn.minY = -.01; + toReturn.maxY = 0; + + toReturn.minX = 0; + toReturn.minZ = 0; + toReturn.maxX = 1; + toReturn.maxZ = 1; + break; + } + case UP: + { + toReturn.minY = 1; + toReturn.maxY = 1.01; + + toReturn.minX = 0; + toReturn.minZ = 0; + toReturn.maxX = 1; + toReturn.maxZ = 1; + break; + } + case NORTH: + { + toReturn.minZ = -.01; + toReturn.maxZ = 0; + + toReturn.minX = 0; + toReturn.minY = 0; + toReturn.maxX = 1; + toReturn.maxY = 1; + break; + } + case SOUTH: + { + toReturn.minZ = 1; + toReturn.maxZ = 1.01; + + toReturn.minX = 0; + toReturn.minY = 0; + toReturn.maxX = 1; + toReturn.maxY = 1; + break; + } + case WEST: + { + toReturn.minX = -.01; + toReturn.maxX = 0; + + toReturn.minY = 0; + toReturn.minZ = 0; + toReturn.maxY = 1; + toReturn.maxZ = 1; + break; + } + case EAST: + { + toReturn.minX = 1; + toReturn.maxX = 1.01; + + toReturn.minY = 0; + toReturn.minZ = 0; + toReturn.maxY = 1; + toReturn.maxZ = 1; + break; + } + default: + { + break; + } + } + + MekanismRenderer.renderObject(toReturn, world, 0, 0, 0, false, true); + GL11.glEndList(); + + return display; + } +} \ No newline at end of file diff --git a/src/minecraft/mekanism/client/RenderDynamicTank.java b/src/minecraft/mekanism/client/RenderDynamicTank.java index b885f4055..52608b981 100644 --- a/src/minecraft/mekanism/client/RenderDynamicTank.java +++ b/src/minecraft/mekanism/client/RenderDynamicTank.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.Map; import mekanism.api.Object3D; +import mekanism.client.MekanismRenderer.DisplayInteger; import mekanism.client.MekanismRenderer.Model3D; import mekanism.common.SynchronizedTankData.ValveData; import mekanism.common.TileEntityDynamicTank; @@ -21,10 +22,8 @@ import org.lwjgl.opengl.GL11; public class RenderDynamicTank extends TileEntitySpecialRenderer { - private static RenderBlocks renderBlocks = new RenderBlocks(); - private static Map> cachedCenterLiquids = new HashMap>(); - private static Map> cachedValveLiquids = new HashMap>(); + private static Map> cachedValveLiquids = new HashMap>(); @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTick) @@ -137,7 +136,7 @@ public class RenderDynamicTank extends TileEntitySpecialRenderer return displays; } - private ValveDisplayInteger getValveDisplay(ValveRenderData data, LiquidStack stack, World world) + private DisplayInteger getValveDisplay(ValveRenderData data, LiquidStack stack, World world) { if(cachedValveLiquids.containsKey(data) && cachedValveLiquids.get(data).containsKey(stack)) { @@ -153,14 +152,14 @@ public class RenderDynamicTank extends TileEntitySpecialRenderer toReturn.baseBlock = Block.blocksList[stack.itemID]; } - ValveDisplayInteger display = new ValveDisplayInteger(); + DisplayInteger display = new DisplayInteger(); if(cachedValveLiquids.containsKey(data)) { cachedValveLiquids.get(data).put(stack, display); } else { - HashMap map = new HashMap(); + HashMap map = new HashMap(); map.put(stack, display); cachedValveLiquids.put(data, map); } @@ -335,23 +334,4 @@ public class RenderDynamicTank extends TileEntitySpecialRenderer return code; } } - - public static class ValveDisplayInteger - { - public int display; - - @Override - public int hashCode() - { - int code = 1; - code = 31 * code + display; - return code; - } - - @Override - public boolean equals(Object obj) - { - return obj instanceof ValveDisplayInteger && ((ValveDisplayInteger)obj).display == display; - } - } } diff --git a/src/minecraft/mekanism/client/RenderTickHandler.java b/src/minecraft/mekanism/client/RenderTickHandler.java index c0a850cc0..62e5f02a1 100644 --- a/src/minecraft/mekanism/client/RenderTickHandler.java +++ b/src/minecraft/mekanism/client/RenderTickHandler.java @@ -7,7 +7,6 @@ import mekanism.common.MekanismUtils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -26,12 +25,13 @@ public class RenderTickHandler implements ITickHandler @Override public void tickEnd(EnumSet type, Object... tickData) { + float partialTick = (Float)tickData[0]; Minecraft mc = FMLClientHandler.instance().getClient(); - if(mc.currentScreen == null && mc.thePlayer != null && mc.theWorld != null && !MekanismUtils.isObfuscated() && !mc.gameSettings.showDebugInfo) + if(mc.thePlayer != null && mc.theWorld != null) { EntityPlayer player = mc.thePlayer; - World world = mc.theWorld; + World world = mc.thePlayer.worldObj; FontRenderer font = mc.fontRenderer; @@ -45,19 +45,23 @@ public class RenderTickHandler implements ITickHandler Object3D obj = new Object3D(x, y, z); - String tileDisplay = "no"; - - if(obj.getTileEntity(world) != null) + if(!MekanismUtils.isObfuscated() && mc.currentScreen == null && !mc.gameSettings.showDebugInfo) { - if(obj.getTileEntity(world).getClass() != null) + String tileDisplay = ""; + + if(obj.getTileEntity(world) != null) { - tileDisplay = obj.getTileEntity(world).getClass().getSimpleName(); + if(obj.getTileEntity(world).getClass() != null) + { + tileDisplay = obj.getTileEntity(world).getClass().getSimpleName(); + } } - } - font.drawStringWithShadow("Block ID: " + obj.getBlockId(world), 1, 1, 0x404040); - font.drawStringWithShadow("Metadata: " + obj.getMetadata(world), 1, 10, 0x404040); - font.drawStringWithShadow("TileEntity: " + tileDisplay, 1, 19, 0x404040); + font.drawStringWithShadow("Block ID: " + obj.getBlockId(world), 1, 1, 0x404040); + font.drawStringWithShadow("Metadata: " + obj.getMetadata(world), 1, 10, 0x404040); + font.drawStringWithShadow("TileEntity: " + tileDisplay, 1, 19, 0x404040); + font.drawStringWithShadow("Side: " + pos.sideHit, 1, 28, 0x404040); + } } } } @@ -73,4 +77,4 @@ public class RenderTickHandler implements ITickHandler { return "MekanismRender"; } -} +} \ No newline at end of file diff --git a/src/minecraft/mekanism/client/ThreadTankSparkle.java b/src/minecraft/mekanism/client/ThreadTankSparkle.java index e308075cf..58d91563b 100644 --- a/src/minecraft/mekanism/client/ThreadTankSparkle.java +++ b/src/minecraft/mekanism/client/ThreadTankSparkle.java @@ -43,32 +43,32 @@ public class ThreadTankSparkle extends Thread for(int i = 0; i < 6; i++) { - if(world.getBlockId(tileEntity.xCoord, tileEntity.yCoord-1, tileEntity.zCoord) == 0) + if(Object3D.get(tileEntity).sideVisible(ForgeDirection.DOWN, world)) { world.spawnParticle("reddust", tileEntity.xCoord + random.nextDouble(), tileEntity.yCoord + -.01, tileEntity.zCoord + random.nextDouble(), 0, 0, 0); } - if(world.getBlockId(tileEntity.xCoord, tileEntity.yCoord+1, tileEntity.zCoord) == 0) + if(Object3D.get(tileEntity).sideVisible(ForgeDirection.UP, world)) { world.spawnParticle("reddust", tileEntity.xCoord + random.nextDouble(), tileEntity.yCoord + 1.01, tileEntity.zCoord + random.nextDouble(), 0, 0, 0); } - if(world.getBlockId(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord-1) == 0) + if(Object3D.get(tileEntity).sideVisible(ForgeDirection.NORTH, world)) { world.spawnParticle("reddust", tileEntity.xCoord + random.nextDouble(), tileEntity.yCoord + random.nextDouble(), tileEntity.zCoord + -.01, 0, 0, 0); } - if(world.getBlockId(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord+1) == 0) + if(Object3D.get(tileEntity).sideVisible(ForgeDirection.SOUTH, world)) { world.spawnParticle("reddust", tileEntity.xCoord + random.nextDouble(), tileEntity.yCoord + random.nextDouble(), tileEntity.zCoord + 1.01, 0, 0, 0); } - if(world.getBlockId(tileEntity.xCoord-1, tileEntity.yCoord, tileEntity.zCoord) == 0) + if(Object3D.get(tileEntity).sideVisible(ForgeDirection.WEST, world)) { world.spawnParticle("reddust", tileEntity.xCoord + -.01, tileEntity.yCoord + random.nextDouble(), tileEntity.zCoord + random.nextDouble(), 0, 0, 0); } - if(world.getBlockId(tileEntity.xCoord+1, tileEntity.yCoord, tileEntity.zCoord) == 0) + if(Object3D.get(tileEntity).sideVisible(ForgeDirection.EAST, world)) { world.spawnParticle("reddust", tileEntity.xCoord + 1.01, tileEntity.yCoord + random.nextDouble(), tileEntity.zCoord + random.nextDouble(), 0, 0, 0); } diff --git a/src/minecraft/mekanism/common/BlockBasic.java b/src/minecraft/mekanism/common/BlockBasic.java index 5106af728..858ce0b47 100644 --- a/src/minecraft/mekanism/common/BlockBasic.java +++ b/src/minecraft/mekanism/common/BlockBasic.java @@ -75,7 +75,7 @@ public class BlockBasic extends Block icons[3] = register.registerIcon("mekanism:CoalBlock"); icons[4] = register.registerIcon("mekanism:RefinedGlowstone"); icons[5] = register.registerIcon("mekanism:SteelBlock"); - icons[6] = register.registerIcon("mekanism:ControlPanel"); + //icons[6] = register.registerIcon("mekanism:ControlPanel"); icons[7] = register.registerIcon("mekanism:TeleporterFrame"); icons[8] = register.registerIcon("mekanism:SteelCasing"); icons[9] = register.registerIcon("mekanism:DynamicTank"); diff --git a/src/minecraft/mekanism/common/BlockBounding.java b/src/minecraft/mekanism/common/BlockBounding.java index d323218aa..683e1877d 100644 --- a/src/minecraft/mekanism/common/BlockBounding.java +++ b/src/minecraft/mekanism/common/BlockBounding.java @@ -2,8 +2,12 @@ package mekanism.common; import java.util.Random; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -18,6 +22,10 @@ public class BlockBounding extends Block setHardness(3.5F); setResistance(8F); } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IconRegister register) {} @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int facing, float playerX, float playerY, float playerZ) diff --git a/src/minecraft/mekanism/common/BlockTransmitter.java b/src/minecraft/mekanism/common/BlockTransmitter.java index f5b603379..87ccd0601 100644 --- a/src/minecraft/mekanism/common/BlockTransmitter.java +++ b/src/minecraft/mekanism/common/BlockTransmitter.java @@ -11,6 +11,7 @@ import mekanism.api.ITubeConnection; import mekanism.client.ClientProxy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -32,6 +33,10 @@ public class BlockTransmitter extends Block setCreativeTab(Mekanism.tabMekanism); } + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IconRegister register) {} + @Override @SideOnly(Side.CLIENT) public void getSubBlocks(int i, CreativeTabs creativetabs, List list) diff --git a/src/minecraft/mekanism/common/CommonProxy.java b/src/minecraft/mekanism/common/CommonProxy.java index 1797b122b..ae9e302fd 100644 --- a/src/minecraft/mekanism/common/CommonProxy.java +++ b/src/minecraft/mekanism/common/CommonProxy.java @@ -21,6 +21,15 @@ public class CommonProxy */ public void registerSpecialTileEntities() { + GameRegistry.registerTileEntity(TileEntityEnrichmentChamber.class, "EnrichmentChamber"); + GameRegistry.registerTileEntity(TileEntityOsmiumCompressor.class, "OsmiumCompressor"); + GameRegistry.registerTileEntity(TileEntityCombiner.class, "Combiner"); + GameRegistry.registerTileEntity(TileEntityCrusher.class, "Crusher"); + GameRegistry.registerTileEntity(TileEntityFactory.class, "SmeltingFactory"); + GameRegistry.registerTileEntity(TileEntityAdvancedFactory.class, "AdvancedSmeltingFactory"); + GameRegistry.registerTileEntity(TileEntityEliteFactory.class, "UltimateSmeltingFactory"); + GameRegistry.registerTileEntity(TileEntityPurificationChamber.class, "PurificationChamber"); + GameRegistry.registerTileEntity(TileEntityEnergizedSmelter.class, "EnergizedSmelter"); GameRegistry.registerTileEntity(TileEntityTheoreticalElementizer.class, "TheoreticalElementizer"); GameRegistry.registerTileEntity(TileEntityMetallurgicInfuser.class, "MetallurgicInfuser"); GameRegistry.registerTileEntity(TileEntityPressurizedTube.class, "PressurizedTube"); diff --git a/src/minecraft/mekanism/common/ItemConfigurator.java b/src/minecraft/mekanism/common/ItemConfigurator.java index da5a8d511..609aff5ee 100644 --- a/src/minecraft/mekanism/common/ItemConfigurator.java +++ b/src/minecraft/mekanism/common/ItemConfigurator.java @@ -74,6 +74,12 @@ public class ItemConfigurator extends ItemEnergized setEnergy(stack, getEnergy(stack) - ENERGY_PER_CONFIGURE); MekanismUtils.incrementOutput(config, MekanismUtils.getBaseOrientation(side, config.getOrientation())); player.sendChatToPlayer(EnumColor.DARK_BLUE + "[Mekanism]" + EnumColor.GREY + " Color bumped to: " + config.getSideData().get(config.getConfiguration()[MekanismUtils.getBaseOrientation(side, config.getOrientation())]).color.getName()); + + if(config instanceof TileEntityBasicBlock) + { + TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)config; + PacketHandler.sendTileEntityPacketToClients(tileEntity, 50, tileEntity.getNetworkedData(new ArrayList())); + } return true; } } diff --git a/src/minecraft/mekanism/common/Mekanism.java b/src/minecraft/mekanism/common/Mekanism.java index f922d9ee2..14072ca17 100644 --- a/src/minecraft/mekanism/common/Mekanism.java +++ b/src/minecraft/mekanism/common/Mekanism.java @@ -991,20 +991,11 @@ public class Mekanism EntityRegistry.registerModEntity(EntityRobit.class, "Robit", 1, this, 40, 5, true); //Tile entities - GameRegistry.registerTileEntity(TileEntityEnrichmentChamber.class, "EnrichmentChamber"); - GameRegistry.registerTileEntity(TileEntityOsmiumCompressor.class, "OsmiumCompressor"); - GameRegistry.registerTileEntity(TileEntityCombiner.class, "Combiner"); - GameRegistry.registerTileEntity(TileEntityCrusher.class, "Crusher"); GameRegistry.registerTileEntity(TileEntityEnergyCube.class, "EnergyCube"); GameRegistry.registerTileEntity(TileEntityBoundingBlock.class, "BoundingBlock"); GameRegistry.registerTileEntity(TileEntityControlPanel.class, "ControlPanel"); GameRegistry.registerTileEntity(TileEntityGasTank.class, "GasTank"); - GameRegistry.registerTileEntity(TileEntityFactory.class, "SmeltingFactory"); - GameRegistry.registerTileEntity(TileEntityAdvancedFactory.class, "AdvancedSmeltingFactory"); - GameRegistry.registerTileEntity(TileEntityEliteFactory.class, "UltimateSmeltingFactory"); GameRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter"); - GameRegistry.registerTileEntity(TileEntityPurificationChamber.class, "PurificationChamber"); - GameRegistry.registerTileEntity(TileEntityEnergizedSmelter.class, "EnergizedSmelter"); //Load tile entities that have special renderers. proxy.registerSpecialTileEntities(); @@ -1073,6 +1064,9 @@ public class Mekanism //Register to receive subscribed events MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(new IC2EnergyHandler()); + + //Load configuration + proxy.loadConfiguration(); //Load this module addItems(); @@ -1083,7 +1077,6 @@ public class Mekanism //Load proxy proxy.registerRenderInformation(); - proxy.loadConfiguration(); proxy.loadUtilities(); //Completion notification diff --git a/src/minecraft/mekanism/common/PacketHandler.java b/src/minecraft/mekanism/common/PacketHandler.java index 568b43c22..14a6c9ae9 100644 --- a/src/minecraft/mekanism/common/PacketHandler.java +++ b/src/minecraft/mekanism/common/PacketHandler.java @@ -575,6 +575,13 @@ public class PacketHandler implements IPacketHandler output.writeInt(i); } } + else if(data instanceof byte[]) + { + for(byte b : (byte[])data) + { + output.writeByte(b); + } + } } Packet250CustomPayload packet = new Packet250CustomPayload(); @@ -641,6 +648,13 @@ public class PacketHandler implements IPacketHandler output.writeInt(i); } } + else if(data instanceof byte[]) + { + for(byte b : (byte[])data) + { + output.writeByte(b); + } + } } Packet250CustomPayload packet = new Packet250CustomPayload(); diff --git a/src/minecraft/mekanism/common/RobitAIFollow.java b/src/minecraft/mekanism/common/RobitAIFollow.java index cbc6ad972..d28e930a2 100644 --- a/src/minecraft/mekanism/common/RobitAIFollow.java +++ b/src/minecraft/mekanism/common/RobitAIFollow.java @@ -98,7 +98,7 @@ public class RobitAIFollow extends EntityAIBase @Override public void updateTask() { - theRobit.getLookHelper().setLookPositionWithEntity(theOwner, 10.0F, theRobit.getVerticalFaceSpeed()); + theRobit.getLookHelper().setLookPositionWithEntity(theOwner, 12.0F, theRobit.getVerticalFaceSpeed()); if(theRobit.getFollowing()) { diff --git a/src/minecraft/mekanism/common/TileEntityBasicMachine.java b/src/minecraft/mekanism/common/TileEntityBasicMachine.java index 3eba4c87a..d91e46aff 100644 --- a/src/minecraft/mekanism/common/TileEntityBasicMachine.java +++ b/src/minecraft/mekanism/common/TileEntityBasicMachine.java @@ -138,6 +138,12 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp speedMultiplier = dataStream.readInt(); energyMultiplier = dataStream.readInt(); upgradeTicks = dataStream.readInt(); + + for(int i = 0; i < 6; i++) + { + sideConfig[i] = dataStream.readByte(); + } + MekanismUtils.updateBlock(worldObj, xCoord, yCoord, zCoord); } @@ -150,6 +156,7 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp data.add(speedMultiplier); data.add(energyMultiplier); data.add(upgradeTicks); + data.add(sideConfig); return data; } diff --git a/src/minecraft/mekanism/common/TileEntityFactory.java b/src/minecraft/mekanism/common/TileEntityFactory.java index ad19b1d75..3eb7e7b8d 100644 --- a/src/minecraft/mekanism/common/TileEntityFactory.java +++ b/src/minecraft/mekanism/common/TileEntityFactory.java @@ -470,6 +470,11 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg progress[i] = dataStream.readInt(); } + for(int i = 0; i < 6; i++) + { + sideConfig[i] = dataStream.readByte(); + } + MekanismUtils.updateBlock(worldObj, xCoord, yCoord, zCoord); } @@ -535,6 +540,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg data.add(upgradeTicks); data.add(recipeTicks); data.add(progress); + data.add(sideConfig); return data; } diff --git a/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java b/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java index 699414551..c104897e4 100644 --- a/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java +++ b/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java @@ -456,6 +456,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem operatingTicks = dataStream.readInt(); infuseStored = dataStream.readInt(); type = InfusionType.getFromName(dataStream.readUTF()); + + for(int i = 0; i < 6; i++) + { + sideConfig[i] = dataStream.readByte(); + } + MekanismUtils.updateBlock(worldObj, xCoord, yCoord, zCoord); } @@ -469,6 +475,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem data.add(operatingTicks); data.add(infuseStored); data.add(type.name); + data.add(sideConfig); return data; }