diff --git a/src/main/java/mekanism/client/ClientProxy.java b/src/main/java/mekanism/client/ClientProxy.java index 482cb167e..0cc0e382f 100644 --- a/src/main/java/mekanism/client/ClientProxy.java +++ b/src/main/java/mekanism/client/ClientProxy.java @@ -31,6 +31,7 @@ import mekanism.client.gui.GuiEnrichmentChamber; import mekanism.client.gui.GuiFactory; import mekanism.client.gui.GuiFluidTank; import mekanism.client.gui.GuiFluidicPlenisher; +import mekanism.client.gui.GuiFormulaicAssemblicator; import mekanism.client.gui.GuiGasTank; import mekanism.client.gui.GuiInductionMatrix; import mekanism.client.gui.GuiLaserAmplifier; @@ -151,6 +152,7 @@ import mekanism.common.tile.TileEntityEnrichmentChamber; import mekanism.common.tile.TileEntityFactory; import mekanism.common.tile.TileEntityFluidTank; import mekanism.common.tile.TileEntityFluidicPlenisher; +import mekanism.common.tile.TileEntityFormulaicAssemblicator; import mekanism.common.tile.TileEntityGasTank; import mekanism.common.tile.TileEntityInductionCasing; import mekanism.common.tile.TileEntityInductionCell; @@ -529,6 +531,8 @@ public class ClientProxy extends CommonProxy return new GuiThermoelectricBoiler(player.inventory, (TileEntityBoilerCasing)tileEntity); case 55: return new GuiBoilerStats(player.inventory, (TileEntityBoilerCasing)tileEntity); + case 56: + return new GuiFormulaicAssemblicator(player.inventory, (TileEntityFormulaicAssemblicator)tileEntity); } return null; diff --git a/src/main/java/mekanism/client/gui/GuiFormulaicAssemblicator.java b/src/main/java/mekanism/client/gui/GuiFormulaicAssemblicator.java index bafd57b1a..c4fa8aedc 100644 --- a/src/main/java/mekanism/client/gui/GuiFormulaicAssemblicator.java +++ b/src/main/java/mekanism/client/gui/GuiFormulaicAssemblicator.java @@ -1,9 +1,73 @@ package mekanism.client.gui; +import java.util.List; + +import mekanism.api.util.ListUtils; +import mekanism.client.gui.element.GuiElement.IInfoHandler; +import mekanism.client.gui.element.GuiEnergyInfo; +import mekanism.client.gui.element.GuiPowerBar; +import mekanism.client.gui.element.GuiRedstoneControl; +import mekanism.client.gui.element.GuiSideConfigurationTab; +import mekanism.client.gui.element.GuiSlot; +import mekanism.client.gui.element.GuiSlot.SlotOverlay; +import mekanism.client.gui.element.GuiSlot.SlotType; +import mekanism.client.gui.element.GuiTransporterConfigTab; +import mekanism.common.inventory.container.ContainerFormulaicAssemblicator; +import mekanism.common.tile.TileEntityFormulaicAssemblicator; +import mekanism.common.util.LangUtils; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import net.minecraft.entity.player.InventoryPlayer; + +import org.lwjgl.opengl.GL11; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class GuiFormulaicAssemblicator { +public class GuiFormulaicAssemblicator extends GuiMekanism +{ + public TileEntityFormulaicAssemblicator tileEntity; + public GuiFormulaicAssemblicator(InventoryPlayer inventory, TileEntityFormulaicAssemblicator tentity) + { + super(tentity, new ContainerFormulaicAssemblicator(inventory, tentity)); + tileEntity = tentity; + guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiFormulaicAssemblicator.png"))); + guiElements.add(new GuiSideConfigurationTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiFormulaicAssemblicator.png"))); + guiElements.add(new GuiTransporterConfigTab(this, 34, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiFormulaicAssemblicator.png"))); + guiElements.add(new GuiPowerBar(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiFormulaicAssemblicator.png"), 159, 16)); + guiElements.add(new GuiEnergyInfo(new IInfoHandler() { + @Override + public List getInfo() + { + String multiplier = MekanismUtils.getEnergyDisplay(tileEntity.energyPerTick); + return ListUtils.asList(LangUtils.localize("gui.using") + ": " + multiplier + "/t", LangUtils.localize("gui.needed") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxEnergy()-tileEntity.getEnergy())); + } + }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiFormulaicAssemblicator.png"))); + guiElements.add(new GuiSlot(SlotType.POWER, this, MekanismUtils.getResource(ResourceType.GUI, "GuiFormulaicAssemblicator.png"), 154, 75).with(SlotOverlay.POWER)); + + ySize+=64; + } + + @Override + protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) + { + fontRendererObj.drawString(tileEntity.getInventoryName(), (xSize/2)-(fontRendererObj.getStringWidth(tileEntity.getInventoryName())/2), 6, 0x404040); + fontRendererObj.drawString(LangUtils.localize("container.inventory"), 8, (ySize - 96) + 2, 0x404040); + + super.drawGuiContainerForegroundLayer(mouseX, mouseY); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY) + { + mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiFormulaicAssemblicator.png")); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + int guiWidth = (width - xSize) / 2; + int guiHeight = (height - ySize) / 2; + drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize); + + super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY); + } } diff --git a/src/main/java/mekanism/client/model/ModelDigitalMiner.java b/src/main/java/mekanism/client/model/ModelDigitalMiner.java index b54698b10..7218fef36 100644 --- a/src/main/java/mekanism/client/model/ModelDigitalMiner.java +++ b/src/main/java/mekanism/client/model/ModelDigitalMiner.java @@ -7,329 +7,485 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class ModelDigitalMiner extends ModelBase +public class ModelDigitalMiner extends ModelBase { - ModelRenderer Base; - ModelRenderer Back; - ModelRenderer Panel; - ModelRenderer PanelStem; - ModelRenderer KeyboardStem; - ModelRenderer Keyboard; - ModelRenderer LaserBase; - ModelRenderer LegRight; - ModelRenderer UpperLegRight; - ModelRenderer ToeTopRight1; - ModelRenderer ToeTopRight2; - ModelRenderer ToeRight1; - ModelRenderer LegHoldRight1; - ModelRenderer LegHoldRight2; - ModelRenderer FootBaseRight; - ModelRenderer ToeRight2; - ModelRenderer FootBaseLeft; - ModelRenderer UpperLegLeft; - ModelRenderer LegHoldLeft1; - ModelRenderer ToeTopLeft2; - ModelRenderer ToeTopLeft1; - ModelRenderer LegHoldLeft2; - ModelRenderer ToeLeft1; - ModelRenderer ToeLeft2; - ModelRenderer LegLeft; - ModelRenderer RightAxil; - ModelRenderer RightBackUpperLeg; - ModelRenderer RightBackLowerLeg; - ModelRenderer RightBackFoot; - ModelRenderer LeftAxil; - ModelRenderer LeftBackUpperLeg; - ModelRenderer LeftBackLowerLeg; - ModelRenderer LeftBackFoot; - ModelRenderer Laser1; - ModelRenderer Laser2; - ModelRenderer Laser3; - ModelRenderer Laser4; + ModelRenderer keyboard; + ModelRenderer keyboardBottom; + ModelRenderer keyboardSupportExt1; + ModelRenderer keyboardSupportExt2; + ModelRenderer keyboardSupport1; + ModelRenderer keyboardSupport2; + ModelRenderer monitor1back; + ModelRenderer monitor2back; + ModelRenderer monitor3back; + ModelRenderer monitorBar1; + ModelRenderer monitorBar2; + ModelRenderer led1; + ModelRenderer led2; + ModelRenderer led3; + ModelRenderer monitorMount1; + ModelRenderer monitorMount2; + ModelRenderer frame1; + ModelRenderer frame3; + ModelRenderer plate5; + ModelRenderer bracket1; + ModelRenderer bracket2; + ModelRenderer bracket3; + ModelRenderer bracket4; + ModelRenderer bracket5; + ModelRenderer bracket6; + ModelRenderer bracket7; + ModelRenderer bracket8; + ModelRenderer bracketPlate1; + ModelRenderer bracketPlate2; + ModelRenderer bracketPlate3; + ModelRenderer bracketPlate4; + ModelRenderer supportBeam1; + ModelRenderer supportBeam2; + ModelRenderer supportBeam3; + ModelRenderer supportBeam4; + ModelRenderer foot1; + ModelRenderer foot2; + ModelRenderer foot3; + ModelRenderer foot4; + ModelRenderer core; + ModelRenderer powerCable1a; + ModelRenderer powerCable1b; + ModelRenderer powerCable2; + ModelRenderer powerCable3; + ModelRenderer powerConnector1; + ModelRenderer powerConnector2a; + ModelRenderer powerConnector2b; + ModelRenderer powerCpnnector3a; + ModelRenderer powerConnector3b; + ModelRenderer frame2a; + ModelRenderer frame2b; + ModelRenderer frame2c; + ModelRenderer frame2d; + ModelRenderer monitor1; + ModelRenderer monitor2; + ModelRenderer monitor3; - public ModelDigitalMiner() + public ModelDigitalMiner() { textureWidth = 256; - textureHeight = 256; + textureHeight = 128; - Base = new ModelRenderer(this, 0, 0); - Base.addBox(0F, 0F, 0F, 18, 22, 20); - Base.setRotationPoint(-8F, -8F, -10F); - Base.setTextureSize(256, 256); - Base.mirror = true; - setRotation(Base, 0F, 0F, 0F); - Back = new ModelRenderer(this, 77, 0); - Back.addBox(0F, 0F, 0F, 17, 20, 18); - Back.setRotationPoint(7F, -7F, -9F); - Back.setTextureSize(256, 256); - Back.mirror = true; - setRotation(Back, 0F, 0F, 0F); - Panel = new ModelRenderer(this, 0, 43); - Panel.addBox(-2F, -8F, -7.5F, 2, 12, 15); - Panel.setRotationPoint(-13F, 2F, 0F); - Panel.setTextureSize(256, 256); - Panel.mirror = true; - setRotation(Panel, 0F, 0F, -0.2478574F); - PanelStem = new ModelRenderer(this, 0, 71); - PanelStem.addBox(-7F, 0F, 0F, 7, 4, 4); - PanelStem.setRotationPoint(-7F, -2F, -2F); - PanelStem.setTextureSize(256, 256); - PanelStem.mirror = true; - setRotation(PanelStem, 0F, 0F, -0.2230717F); - KeyboardStem = new ModelRenderer(this, 0, 80); - KeyboardStem.addBox(-7F, 0F, -2F, 7, 1, 4); - KeyboardStem.setRotationPoint(-7F, 8F, 0F); - KeyboardStem.setTextureSize(256, 256); - KeyboardStem.mirror = true; - setRotation(KeyboardStem, 0F, 0F, -0.3965719F); - Keyboard = new ModelRenderer(this, 0, 86); - Keyboard.addBox(-5F, 0F, -5F, 5, 1, 10); - Keyboard.setRotationPoint(-12F, 10.5F, 0F); - Keyboard.setTextureSize(256, 256); - Keyboard.mirror = true; - setRotation(Keyboard, 0F, 0F, -0.2230717F); - LaserBase = new ModelRenderer(this, 0, 98); - LaserBase.addBox(0F, 0F, 0F, 10, 5, 10); - LaserBase.setRotationPoint(-5F, 12F, -5F); - LaserBase.setTextureSize(256, 256); - LaserBase.mirror = true; - setRotation(LaserBase, 0F, 0F, 0F); - LegRight = new ModelRenderer(this, 0, 114); - LegRight.addBox(0F, 0F, 0F, 6, 26, 4); - LegRight.setRotationPoint(-3F, -4F, -23F); - LegRight.setTextureSize(256, 256); - LegRight.mirror = true; - setRotation(LegRight, 0F, 0F, 0F); - UpperLegRight = new ModelRenderer(this, 21, 114); - UpperLegRight.addBox(0F, 0F, 0F, 4, 5, 13); - UpperLegRight.setRotationPoint(-2F, 0F, -22F); - UpperLegRight.setTextureSize(256, 256); - UpperLegRight.mirror = true; - setRotation(UpperLegRight, 0F, 0F, 0F); - ToeTopRight1 = new ModelRenderer(this, 21, 134); - ToeTopRight1.addBox(0F, 0F, 0F, 3, 1, 3); - ToeTopRight1.setRotationPoint(-4F, 19F, -20.5F); - ToeTopRight1.setTextureSize(256, 256); - ToeTopRight1.mirror = true; - setRotation(ToeTopRight1, 0F, 0F, 0F); - ToeTopRight2 = new ModelRenderer(this, 21, 134); - ToeTopRight2.addBox(0F, 0F, 0F, 3, 1, 3); - ToeTopRight2.setRotationPoint(1.5F, 19F, -20.5F); - ToeTopRight2.setTextureSize(256, 256); - ToeTopRight2.mirror = true; - setRotation(ToeTopRight2, 0F, 0F, 0F); - ToeRight1 = new ModelRenderer(this, 35, 134); - ToeRight1.addBox(0F, 0F, 0F, 3, 6, 3); - ToeRight1.setRotationPoint(1.5F, 22F, -20.5F); - ToeRight1.setTextureSize(256, 256); - ToeRight1.mirror = true; - setRotation(ToeRight1, 1.047198F, 0.3490659F, 0F); - LegHoldRight1 = new ModelRenderer(this, 0, 146); - LegHoldRight1.addBox(0F, 0F, 0F, 2, 3, 12); - LegHoldRight1.setRotationPoint(2F, 2F, -18F); - LegHoldRight1.setTextureSize(256, 256); - LegHoldRight1.mirror = true; - setRotation(LegHoldRight1, 0.6543436F, 0F, 0F); - LegHoldRight2 = new ModelRenderer(this, 0, 146); - LegHoldRight2.addBox(0F, 0F, 0F, 2, 3, 12); - LegHoldRight2.setRotationPoint(-4F, 2F, -18F); - LegHoldRight2.setTextureSize(256, 256); - LegHoldRight2.mirror = true; - setRotation(LegHoldRight2, 0.6543436F, 0F, 0F); - FootBaseRight = new ModelRenderer(this, 0, 162); - FootBaseRight.addBox(0F, 0F, 0F, 8, 2, 7); - FootBaseRight.setRotationPoint(-4F, 22F, -24F); - FootBaseRight.setTextureSize(256, 256); - FootBaseRight.mirror = true; - setRotation(FootBaseRight, 0F, 0F, 0F); - ToeRight2 = new ModelRenderer(this, 35, 134); - ToeRight2.addBox(0F, 0F, 0F, 3, 6, 3); - ToeRight2.setRotationPoint(-4.5F, 22F, -20.5F); - ToeRight2.setTextureSize(256, 256); - ToeRight2.mirror = true; - setRotation(ToeRight2, 1.047198F, -0.3490659F, 0F); - FootBaseLeft = new ModelRenderer(this, 0, 178); - FootBaseLeft.addBox(0F, 0F, 0F, 8, 2, 7); - FootBaseLeft.setRotationPoint(-4F, 22F, 17F); - FootBaseLeft.setTextureSize(256, 256); - FootBaseLeft.mirror = true; - setRotation(FootBaseLeft, 0F, 0F, 0F); - UpperLegLeft = new ModelRenderer(this, 0, 189); - UpperLegLeft.addBox(0F, 0F, 0F, 4, 5, 13); - UpperLegLeft.setRotationPoint(-2F, 0F, 9F); - UpperLegLeft.setTextureSize(256, 256); - UpperLegLeft.mirror = true; - setRotation(UpperLegLeft, 0F, 0F, 0F); - LegHoldLeft1 = new ModelRenderer(this, 0, 208); - LegHoldLeft1.addBox(0F, 0F, -12F, 2, 3, 12); - LegHoldLeft1.setRotationPoint(2F, 2F, 18F); - LegHoldLeft1.setTextureSize(256, 256); - LegHoldLeft1.mirror = true; - setRotation(LegHoldLeft1, -0.6543414F, 0F, 0F); - ToeTopLeft2 = new ModelRenderer(this, 31, 178); - ToeTopLeft2.addBox(0F, 0F, 0F, 3, 1, 3); - ToeTopLeft2.setRotationPoint(1.5F, 19F, 17.5F); - ToeTopLeft2.setTextureSize(256, 256); - ToeTopLeft2.mirror = true; - setRotation(ToeTopLeft2, 0F, 0F, 0F); - ToeTopLeft1 = new ModelRenderer(this, 31, 178); - ToeTopLeft1.addBox(0F, 0F, 0F, 3, 1, 3); - ToeTopLeft1.setRotationPoint(-4F, 19F, 17.5F); - ToeTopLeft1.setTextureSize(256, 256); - ToeTopLeft1.mirror = true; - setRotation(ToeTopLeft1, 0F, 0F, 0F); - LegHoldLeft2 = new ModelRenderer(this, 0, 208); - LegHoldLeft2.addBox(0F, 0F, -12F, 2, 3, 12); - LegHoldLeft2.setRotationPoint(-4F, 2F, 18F); - LegHoldLeft2.setTextureSize(256, 256); - LegHoldLeft2.mirror = true; - setRotation(LegHoldLeft2, -0.6543414F, 0F, 0F); - ToeLeft1 = new ModelRenderer(this, 44, 178); - ToeLeft1.addBox(0F, 0F, -3F, 3, 6, 3); - ToeLeft1.setRotationPoint(1.5F, 22F, 20.5F); - ToeLeft1.setTextureSize(256, 256); - ToeLeft1.mirror = true; - setRotation(ToeLeft1, -1.047198F, -0.3490659F, 0F); - ToeLeft2 = new ModelRenderer(this, 44, 178); - ToeLeft2.addBox(0F, 0F, -3F, 3, 6, 3); - ToeLeft2.setRotationPoint(-4.5F, 22F, 20.5F); - ToeLeft2.setTextureSize(256, 256); - ToeLeft2.mirror = true; - setRotation(ToeLeft2, -1.047198F, 0.3490659F, 0F); - LegLeft = new ModelRenderer(this, 35, 189); - LegLeft.addBox(0F, 0F, 0F, 6, 26, 4); - LegLeft.setRotationPoint(-3F, -4F, 19F); - LegLeft.setTextureSize(256, 256); - LegLeft.mirror = true; - setRotation(LegLeft, 0F, 0F, 0F); - RightAxil = new ModelRenderer(this, 78, 43); - RightAxil.addBox(0F, 0F, 0F, 4, 4, 6); - RightAxil.setRotationPoint(17F, 7F, -15F); - RightAxil.setTextureSize(256, 256); - RightAxil.mirror = true; - setRotation(RightAxil, 0F, 0F, 0F); - RightBackUpperLeg = new ModelRenderer(this, 78, 54); - RightBackUpperLeg.addBox(-2.5F, -3F, 0F, 5, 12, 1); - RightBackUpperLeg.setRotationPoint(19F, 9F, -15.95556F); - RightBackUpperLeg.setTextureSize(256, 256); - RightBackUpperLeg.mirror = true; - setRotation(RightBackUpperLeg, 0F, 0F, 0F); - RightBackLowerLeg = new ModelRenderer(this, 78, 68); - RightBackLowerLeg.addBox(-2F, 7F, -0.5F, 4, 6, 2); - RightBackLowerLeg.setRotationPoint(19F, 9F, -16F); - RightBackLowerLeg.setTextureSize(256, 256); - RightBackLowerLeg.mirror = true; - setRotation(RightBackLowerLeg, 0F, 0F, 0F); - RightBackFoot = new ModelRenderer(this, 99, 43); - RightBackFoot.addBox(-3F, 0F, -2.5F, 8, 2, 5); - RightBackFoot.setRotationPoint(19F, 22F, -15.5F); - RightBackFoot.setTextureSize(256, 256); - RightBackFoot.mirror = true; - setRotation(RightBackFoot, 0F, 0F, 0F); - LeftAxil = new ModelRenderer(this, 78, 80); - LeftAxil.addBox(0F, 0F, 0F, 4, 4, 6); - LeftAxil.setRotationPoint(17F, 7F, 9F); - LeftAxil.setTextureSize(256, 256); - LeftAxil.mirror = true; - setRotation(LeftAxil, 0F, 0F, 0F); - LeftBackUpperLeg = new ModelRenderer(this, 78, 91); - LeftBackUpperLeg.addBox(-2.5F, -3F, 0F, 5, 12, 1); - LeftBackUpperLeg.setRotationPoint(19F, 9F, 15.04444F); - LeftBackUpperLeg.setTextureSize(256, 256); - LeftBackUpperLeg.mirror = true; - setRotation(LeftBackUpperLeg, 0F, 0F, 0F); - LeftBackLowerLeg = new ModelRenderer(this, 78, 105); - LeftBackLowerLeg.addBox(-2F, 7F, -0.5F, 4, 6, 2); - LeftBackLowerLeg.setRotationPoint(19F, 9F, 15F); - LeftBackLowerLeg.setTextureSize(256, 256); - LeftBackLowerLeg.mirror = true; - setRotation(LeftBackLowerLeg, 0F, 0F, 0F); - LeftBackFoot = new ModelRenderer(this, 99, 80); - LeftBackFoot.addBox(-3F, 0F, -2.5F, 8, 2, 5); - LeftBackFoot.setRotationPoint(19F, 22F, 15.5F); - LeftBackFoot.setTextureSize(256, 256); - LeftBackFoot.mirror = true; - setRotation(LeftBackFoot, 0F, 0F, 0F); - Laser1 = new ModelRenderer(this, 35, 43); - Laser1.addBox(0F, 0F, 0F, 2, 4, 2); - Laser1.setRotationPoint(2.5F, 17F, 2.5F); - Laser1.setTextureSize(256, 256); - Laser1.mirror = true; - setRotation(Laser1, 0F, 0F, 0F); - Laser2 = new ModelRenderer(this, 35, 43); - Laser2.addBox(0F, 0F, 0F, 2, 4, 2); - Laser2.setRotationPoint(2.5F, 17F, -4.5F); - Laser2.setTextureSize(256, 256); - Laser2.mirror = true; - setRotation(Laser2, 0F, 0F, 0F); - Laser3 = new ModelRenderer(this, 35, 43); - Laser3.addBox(0F, 0F, 0F, 2, 4, 2); - Laser3.setRotationPoint(-4.5F, 17F, 2.5F); - Laser3.setTextureSize(256, 256); - Laser3.mirror = true; - setRotation(Laser3, 0F, 0F, 0F); - Laser4 = new ModelRenderer(this, 35, 43); - Laser4.addBox(0F, 0F, 0F, 2, 4, 2); - Laser4.setRotationPoint(-4.5F, 17F, -4.5F); - Laser4.setTextureSize(256, 256); - Laser4.mirror = true; - setRotation(Laser4, 0F, 0F, 0F); + keyboard = new ModelRenderer(this, 120, 20); + keyboard.addBox(0F, -3F, -1F, 10, 5, 1); + keyboard.setRotationPoint(-5F, 14F, -5F); + keyboard.setTextureSize(256, 128); + keyboard.mirror = true; + setRotation(keyboard, -1.082104F, 0.0174533F, 0F); + keyboardBottom = new ModelRenderer(this, 120, 26); + keyboardBottom.addBox(0F, -2.5F, -0.5F, 8, 4, 1); + keyboardBottom.setRotationPoint(-4F, 14F, -5F); + keyboardBottom.setTextureSize(256, 128); + keyboardBottom.mirror = true; + setRotation(keyboardBottom, -0.9075712F, 0F, 0F); + keyboardSupportExt1 = new ModelRenderer(this, 138, 26); + keyboardSupportExt1.addBox(0F, 0F, -1F, 1, 1, 1); + keyboardSupportExt1.setRotationPoint(2F, 14F, -5F); + keyboardSupportExt1.setTextureSize(256, 128); + keyboardSupportExt1.mirror = true; + setRotation(keyboardSupportExt1, 0F, 0F, 0F); + keyboardSupportExt2 = new ModelRenderer(this, 138, 26); + keyboardSupportExt2.addBox(0F, 0F, -1F, 1, 1, 1); + keyboardSupportExt2.setRotationPoint(-3F, 14F, -5F); + keyboardSupportExt2.setTextureSize(256, 128); + keyboardSupportExt2.mirror = true; + setRotation(keyboardSupportExt2, 0F, 0F, 0F); + keyboardSupport1 = new ModelRenderer(this, 142, 20); + keyboardSupport1.addBox(0F, -1F, 0F, 1, 2, 4); + keyboardSupport1.setRotationPoint(-3F, 14F, -5F); + keyboardSupport1.setTextureSize(256, 128); + keyboardSupport1.mirror = true; + setRotation(keyboardSupport1, 0F, 0F, 0F); + keyboardSupport2 = new ModelRenderer(this, 142, 20); + keyboardSupport2.addBox(0F, -1F, 0F, 1, 2, 4); + keyboardSupport2.setRotationPoint(2F, 14F, -5F); + keyboardSupport2.setTextureSize(256, 128); + keyboardSupport2.mirror = true; + setRotation(keyboardSupport2, 0F, 0F, 0F); + monitor1back = new ModelRenderer(this, 88, 32); + monitor1back.addBox(-13F, -3F, 0F, 12, 6, 1); + monitor1back.setRotationPoint(-8F, 3F, -3F); + monitor1back.setTextureSize(256, 128); + monitor1back.mirror = true; + setRotation(monitor1back, 0.0872665F, -0.2094395F, 0F); + monitor2back = new ModelRenderer(this, 88, 32); + monitor2back.addBox(0F, -4F, 0F, 12, 6, 1); + monitor2back.setRotationPoint(-6F, 4F, -3F); + monitor2back.setTextureSize(256, 128); + monitor2back.mirror = true; + setRotation(monitor2back, 0.0872665F, 0F, 0F); + monitor3back = new ModelRenderer(this, 88, 32); + monitor3back.addBox(1F, -3F, 0F, 12, 6, 1); + monitor3back.setRotationPoint(8F, 3F, -3F); + monitor3back.setTextureSize(256, 128); + monitor3back.mirror = true; + setRotation(monitor3back, 0.0872665F, 0.2094395F, 0F); + monitorBar1 = new ModelRenderer(this, 114, 36); + monitorBar1.addBox(-3.5F, -2F, -0.2F, 4, 2, 1); + monitorBar1.setRotationPoint(-6F, 4F, -3F); + monitorBar1.setTextureSize(256, 128); + monitorBar1.mirror = true; + setRotation(monitorBar1, 0.0872665F, -0.0523599F, 0F); + monitorBar2 = new ModelRenderer(this, 114, 36); + monitorBar2.addBox(0.5F, -2F, -0.2F, 4, 2, 1); + monitorBar2.setRotationPoint(5F, 4F, -3F); + monitorBar2.setTextureSize(256, 128); + monitorBar2.mirror = true; + setRotation(monitorBar2, 0.0872665F, 0.0523599F, 0F); + led1 = new ModelRenderer(this, 0, 0); + led1.addBox(-2F, 4.5F, -1.9F, 1, 1, 1); + led1.setRotationPoint(-8F, 3F, -3F); + led1.setTextureSize(256, 128); + led1.mirror = true; + setRotation(led1, 0.0872665F, -0.2094395F, 0F); + led2 = new ModelRenderer(this, 0, 0); + led2.addBox(12F, 4.466667F, -1.9F, 1, 1, 1); + led2.setRotationPoint(-7F, 3F, -3F); + led2.setTextureSize(256, 128); + led2.mirror = true; + setRotation(led2, 0.0872665F, 0F, 0F); + led3 = new ModelRenderer(this, 0, 0); + led3.addBox(12F, 4.5F, -1.9F, 1, 1, 1); + led3.setRotationPoint(8F, 3F, -3F); + led3.setTextureSize(256, 128); + led3.mirror = true; + setRotation(led3, 0.0872665F, 0.2094395F, 0F); + monitorMount1 = new ModelRenderer(this, 114, 32); + monitorMount1.addBox(0F, -1F, 0F, 2, 2, 2); + monitorMount1.setRotationPoint(-4F, 3F, -3F); + monitorMount1.setTextureSize(256, 128); + monitorMount1.mirror = true; + setRotation(monitorMount1, 0F, 0F, 0F); + monitorMount2 = new ModelRenderer(this, 114, 32); + monitorMount2.addBox(0F, -1F, 0F, 2, 2, 2); + monitorMount2.setRotationPoint(2F, 3F, -3F); + monitorMount2.setTextureSize(256, 128); + monitorMount2.mirror = true; + setRotation(monitorMount2, 0F, 0F, 0F); + frame1 = new ModelRenderer(this, 0, 0); + frame1.addBox(0F, 0F, 0F, 32, 29, 12); + frame1.setRotationPoint(-16F, -8F, -1F); + frame1.setTextureSize(256, 128); + frame1.mirror = true; + setRotation(frame1, 0F, 0F, 0F); + frame3 = new ModelRenderer(this, 0, 0); + frame3.addBox(0F, 0F, 0F, 32, 29, 12); + frame3.setRotationPoint(-16F, -8F, 28F); + frame3.setTextureSize(256, 128); + frame3.mirror = true; + setRotation(frame3, 0F, 0F, 0F); + plate5 = new ModelRenderer(this, 88, 90); + plate5.addBox(0F, 0F, 0F, 32, 5, 15); + plate5.setRotationPoint(-16F, 16F, 12F); + plate5.setTextureSize(256, 128); + plate5.mirror = true; + setRotation(plate5, 0F, 0F, 0F); + bracket1 = new ModelRenderer(this, 16, 85); + bracket1.addBox(0F, 0F, 0F, 5, 5, 2); + bracket1.setRotationPoint(-21F, -5F, 0F); + bracket1.setTextureSize(256, 128); + bracket1.mirror = true; + setRotation(bracket1, 0F, 0F, 0F); + bracket2 = new ModelRenderer(this, 16, 85); + bracket2.addBox(0F, 0F, 0F, 5, 5, 2); + bracket2.setRotationPoint(-21F, -5F, 8F); + bracket2.setTextureSize(256, 128); + bracket2.mirror = true; + setRotation(bracket2, 0F, 0F, 0F); + bracket3 = new ModelRenderer(this, 16, 85); + bracket3.addBox(0F, 0F, 0F, 5, 5, 2); + bracket3.setRotationPoint(-21F, -5F, 29F); + bracket3.setTextureSize(256, 128); + bracket3.mirror = true; + setRotation(bracket3, 0F, 0F, 0F); + bracket4 = new ModelRenderer(this, 16, 85); + bracket4.addBox(0F, 0F, 0F, 5, 5, 2); + bracket4.setRotationPoint(-21F, -5F, 37F); + bracket4.setTextureSize(256, 128); + bracket4.mirror = true; + setRotation(bracket4, 0F, 0F, 0F); + bracket5 = new ModelRenderer(this, 16, 85); + bracket5.addBox(0F, 0F, 0F, 5, 5, 2); + bracket5.setRotationPoint(16F, -5F, 0F); + bracket5.setTextureSize(256, 128); + bracket5.mirror = true; + setRotation(bracket5, 0F, 0F, 0F); + bracket5.mirror = false; + bracket6 = new ModelRenderer(this, 16, 85); + bracket6.addBox(0F, 0F, 0F, 5, 5, 2); + bracket6.setRotationPoint(16F, -5F, 8F); + bracket6.setTextureSize(256, 128); + bracket6.mirror = true; + setRotation(bracket6, 0F, 0F, 0F); + bracket7 = new ModelRenderer(this, 16, 85); + bracket7.addBox(0F, 0F, 0F, 5, 5, 2); + bracket7.setRotationPoint(16F, -5F, 29F); + bracket7.setTextureSize(256, 128); + bracket7.mirror = true; + setRotation(bracket7, 0F, 0F, 0F); + bracket8 = new ModelRenderer(this, 16, 85); + bracket8.addBox(0F, 0F, 0F, 5, 5, 2); + bracket8.setRotationPoint(16F, -5F, 37F); + bracket8.setTextureSize(256, 128); + bracket8.mirror = true; + setRotation(bracket8, 0F, 0F, 0F); + bracket8.mirror = false; + bracketPlate1 = new ModelRenderer(this, 30, 85); + bracketPlate1.addBox(0F, 0F, 0F, 1, 5, 6); + bracketPlate1.setRotationPoint(-17F, -5F, 2F); + bracketPlate1.setTextureSize(256, 128); + bracketPlate1.mirror = true; + setRotation(bracketPlate1, 0F, 0F, 0F); + bracketPlate2 = new ModelRenderer(this, 30, 85); + bracketPlate2.addBox(0F, 0F, 0F, 1, 5, 6); + bracketPlate2.setRotationPoint(-17F, -5F, 31F); + bracketPlate2.setTextureSize(256, 128); + bracketPlate2.mirror = true; + setRotation(bracketPlate2, 0F, 0F, 0F); + bracketPlate3 = new ModelRenderer(this, 30, 85); + bracketPlate3.addBox(0F, 0F, 0F, 1, 5, 6); + bracketPlate3.setRotationPoint(16F, -5F, 2F); + bracketPlate3.setTextureSize(256, 128); + bracketPlate3.mirror = true; + setRotation(bracketPlate3, 0F, 0F, 0F); + bracketPlate4 = new ModelRenderer(this, 30, 85); + bracketPlate4.addBox(0F, 0F, 0F, 1, 5, 6); + bracketPlate4.setRotationPoint(16F, -5F, 31F); + bracketPlate4.setTextureSize(256, 128); + bracketPlate4.mirror = true; + setRotation(bracketPlate4, 0F, 0F, 0F); + supportBeam1 = new ModelRenderer(this, 0, 85); + supportBeam1.addBox(0F, 0F, 0F, 4, 28, 8); + supportBeam1.setRotationPoint(-22F, -6F, 1F); + supportBeam1.setTextureSize(256, 128); + supportBeam1.mirror = true; + setRotation(supportBeam1, 0F, 0F, 0F); + supportBeam2 = new ModelRenderer(this, 0, 85); + supportBeam2.addBox(0F, 0F, 0F, 4, 28, 8); + supportBeam2.setRotationPoint(-22F, -6F, 30F); + supportBeam2.setTextureSize(256, 128); + supportBeam2.mirror = true; + setRotation(supportBeam2, 0F, 0F, 0F); + supportBeam3 = new ModelRenderer(this, 0, 85); + supportBeam3.addBox(0F, 0F, 0F, 4, 28, 8); + supportBeam3.setRotationPoint(18F, -6F, 1F); + supportBeam3.setTextureSize(256, 128); + supportBeam3.mirror = true; + setRotation(supportBeam3, 0F, 0F, 0F); + supportBeam4 = new ModelRenderer(this, 0, 85); + supportBeam4.addBox(0F, 0F, 0F, 4, 28, 8); + supportBeam4.setRotationPoint(18F, -6F, 30F); + supportBeam4.setTextureSize(256, 128); + supportBeam4.mirror = true; + setRotation(supportBeam4, 0F, 0F, 0F); + supportBeam4.mirror = false; + foot1 = new ModelRenderer(this, 44, 85); + foot1.addBox(0F, 0F, 0F, 7, 2, 10); + foot1.setRotationPoint(-23F, 22F, 0F); + foot1.setTextureSize(256, 128); + foot1.mirror = true; + setRotation(foot1, 0F, 0F, 0F); + foot2 = new ModelRenderer(this, 44, 85); + foot2.addBox(0F, 0F, 0F, 7, 2, 10); + foot2.setRotationPoint(-23F, 22F, 29F); + foot2.setTextureSize(256, 128); + foot2.mirror = true; + setRotation(foot2, 0F, 0F, 0F); + foot3 = new ModelRenderer(this, 44, 85); + foot3.addBox(0F, 0F, 0F, 7, 2, 10); + foot3.setRotationPoint(16F, 22F, 29F); + foot3.setTextureSize(256, 128); + foot3.mirror = true; + setRotation(foot3, 0F, 0F, 0F); + foot4 = new ModelRenderer(this, 44, 85); + foot4.addBox(0F, 0F, 0F, 7, 2, 10); + foot4.setRotationPoint(16F, 22F, 0F); + foot4.setTextureSize(256, 128); + foot4.mirror = true; + setRotation(foot4, 0F, 0F, 0F); + core = new ModelRenderer(this, 0, 41); + core.addBox(0F, 0F, 0F, 30, 27, 17); + core.setRotationPoint(-15F, -7F, 11F); + core.setTextureSize(256, 128); + core.mirror = true; + setRotation(core, 0F, 0F, 0F); + powerCable1a = new ModelRenderer(this, 88, 39); + powerCable1a.addBox(0F, 0F, 0F, 6, 2, 11); + powerCable1a.setRotationPoint(-3F, 20F, 2F); + powerCable1a.setTextureSize(256, 128); + powerCable1a.mirror = true; + setRotation(powerCable1a, 0F, 0F, 0F); + powerCable1b = new ModelRenderer(this, 94, 52); + powerCable1b.addBox(0F, 0F, 0F, 6, 3, 6); + powerCable1b.setRotationPoint(-3F, 20F, 13F); + powerCable1b.setTextureSize(256, 128); + powerCable1b.mirror = true; + setRotation(powerCable1b, 0F, 0F, 0F); + powerCable2 = new ModelRenderer(this, 42, 109); + powerCable2.addBox(0F, 0F, 0F, 9, 6, 6); + powerCable2.setRotationPoint(14F, 13F, 13F); + powerCable2.setTextureSize(256, 128); + powerCable2.mirror = true; + setRotation(powerCable2, 0F, 0F, 0F); + powerCable3 = new ModelRenderer(this, 42, 109); + powerCable3.addBox(0F, 0F, 0F, 9, 6, 6); + powerCable3.setRotationPoint(-23F, 13F, 13F); + powerCable3.setTextureSize(256, 128); + powerCable3.mirror = true; + setRotation(powerCable3, 0F, 0F, 0F); + powerConnector1 = new ModelRenderer(this, 94, 61); + powerConnector1.addBox(0F, 0F, 0F, 8, 1, 8); + powerConnector1.setRotationPoint(-4F, 23F, 12F); + powerConnector1.setTextureSize(256, 128); + powerConnector1.mirror = true; + setRotation(powerConnector1, 0F, 0F, 0F); + powerConnector2a = new ModelRenderer(this, 24, 105); + powerConnector2a.addBox(0F, 0F, 0F, 1, 8, 8); + powerConnector2a.setRotationPoint(23F, 12F, 12F); + powerConnector2a.setTextureSize(256, 128); + powerConnector2a.mirror = true; + setRotation(powerConnector2a, 0F, 0F, 0F); + powerConnector2b = new ModelRenderer(this, 24, 105); + powerConnector2b.addBox(0F, 0F, 0F, 1, 8, 8); + powerConnector2b.setRotationPoint(16F, 12F, 12F); + powerConnector2b.setTextureSize(256, 128); + powerConnector2b.mirror = true; + setRotation(powerConnector2b, 0F, 0F, 0F); + powerCpnnector3a = new ModelRenderer(this, 24, 105); + powerCpnnector3a.addBox(0F, 0F, 0F, 1, 8, 8); + powerCpnnector3a.setRotationPoint(-24F, 12F, 12F); + powerCpnnector3a.setTextureSize(256, 128); + powerCpnnector3a.mirror = true; + setRotation(powerCpnnector3a, 0F, 0F, 0F); + powerConnector3b = new ModelRenderer(this, 24, 105); + powerConnector3b.addBox(0F, 0F, 0F, 1, 8, 8); + powerConnector3b.setRotationPoint(-17F, 12F, 12F); + powerConnector3b.setTextureSize(256, 128); + powerConnector3b.mirror = true; + setRotation(powerConnector3b, 0F, 0F, 0F); + frame2a = new ModelRenderer(this, 88, 0); + frame2a.addBox(0F, 0F, 0F, 32, 5, 15); + frame2a.setRotationPoint(-16F, -8F, 12F); + frame2a.setTextureSize(256, 128); + frame2a.mirror = true; + setRotation(frame2a, 0F, 0F, 0F); + frame2b = new ModelRenderer(this, 126, 50); + frame2b.addBox(0F, 0F, 0F, 32, 5, 15); + frame2b.setRotationPoint(-16F, -2F, 12F); + frame2b.setTextureSize(256, 128); + frame2b.mirror = true; + setRotation(frame2b, 0F, 0F, 0F); + frame2c = new ModelRenderer(this, 126, 50); + frame2c.addBox(0F, 0F, 0F, 32, 5, 15); + frame2c.setRotationPoint(-16F, 4F, 12F); + frame2c.setTextureSize(256, 128); + frame2c.mirror = true; + setRotation(frame2c, 0F, 0F, 0F); + frame2d = new ModelRenderer(this, 88, 70); + frame2d.addBox(0F, 0F, 0F, 32, 5, 15); + frame2d.setRotationPoint(-16F, 10F, 12F); + frame2d.setTextureSize(256, 128); + frame2d.mirror = true; + setRotation(frame2d, 0F, 0F, 0F); + monitor1 = new ModelRenderer(this, 88, 20); + monitor1.addBox(-14F, -5F, -2F, 14, 10, 2); + monitor1.setRotationPoint(-8F, 3F, -3F); + monitor1.setTextureSize(256, 128); + monitor1.mirror = true; + setRotation(monitor1, 0.0872665F, -0.2094395F, 0F); + monitor2 = new ModelRenderer(this, 88, 20); + monitor2.addBox(0F, -5F, -2F, 14, 10, 2); + monitor2.setRotationPoint(-7F, 3F, -3F); + monitor2.setTextureSize(256, 128); + monitor2.mirror = true; + setRotation(monitor2, 0.0872665F, 0F, 0F); + monitor3 = new ModelRenderer(this, 88, 20); + monitor3.addBox(0F, -5F, -2F, 14, 10, 2); + monitor3.setRotationPoint(8F, 3F, -3F); + monitor3.setTextureSize(256, 128); + monitor3.mirror = true; + setRotation(monitor3, 0.0872665F, 0.2094395F, 0F); } - public void render(float size, boolean on) + public void render(float size, boolean on) { - Base.render(size); - Back.render(size); - + keyboard.render(size); + keyboardBottom.render(size); + keyboardSupportExt1.render(size); + keyboardSupportExt2.render(size); + keyboardSupport1.render(size); + keyboardSupport2.render(size); + monitor1back.render(size); + monitor2back.render(size); + monitor3back.render(size); + monitorBar1.render(size); + monitorBar2.render(size); + if(on) { MekanismRenderer.glowOn(); } - - Panel.render(size); - + + led1.render(size); + led2.render(size); + led3.render(size); + + monitor1.render(size); + monitor2.render(size); + monitor3.render(size); + if(on) { MekanismRenderer.glowOff(); } - - PanelStem.render(size); - KeyboardStem.render(size); - Keyboard.render(size); - LaserBase.render(size); - LegRight.render(size); - UpperLegRight.render(size); - ToeTopRight1.render(size); - ToeTopRight2.render(size); - ToeRight1.render(size); - LegHoldRight1.render(size); - LegHoldRight2.render(size); - FootBaseRight.render(size); - ToeRight2.render(size); - FootBaseLeft.render(size); - UpperLegLeft.render(size); - LegHoldLeft1.render(size); - ToeTopLeft2.render(size); - ToeTopLeft1.render(size); - LegHoldLeft2.render(size); - ToeLeft1.render(size); - ToeLeft2.render(size); - LegLeft.render(size); - RightAxil.render(size); - RightBackUpperLeg.render(size); - RightBackLowerLeg.render(size); - RightBackFoot.render(size); - LeftAxil.render(size); - LeftBackUpperLeg.render(size); - LeftBackLowerLeg.render(size); - LeftBackFoot.render(size); - Laser1.render(size); - Laser2.render(size); - Laser3.render(size); - Laser4.render(size); + + monitorMount1.render(size); + monitorMount2.render(size); + frame1.render(size); + frame3.render(size); + plate5.render(size); + bracket1.render(size); + bracket2.render(size); + bracket3.render(size); + bracket4.render(size); + bracket5.render(size); + bracket6.render(size); + bracket7.render(size); + bracket8.render(size); + bracketPlate1.render(size); + bracketPlate2.render(size); + bracketPlate3.render(size); + bracketPlate4.render(size); + supportBeam1.render(size); + supportBeam2.render(size); + supportBeam3.render(size); + supportBeam4.render(size); + foot1.render(size); + foot2.render(size); + foot3.render(size); + foot4.render(size); + core.render(size); + powerCable1a.render(size); + powerCable1b.render(size); + powerCable2.render(size); + powerCable3.render(size); + powerConnector1.render(size); + powerConnector2a.render(size); + powerConnector2b.render(size); + powerCpnnector3a.render(size); + powerConnector3b.render(size); + frame2a.render(size); + frame2b.render(size); + frame2c.render(size); + frame2d.render(size); } - private void setRotation(ModelRenderer model, float x, float y, float z) + private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; diff --git a/src/main/java/mekanism/client/render/block/MachineRenderingHandler.java b/src/main/java/mekanism/client/render/block/MachineRenderingHandler.java index f9f79e2b9..05aef6522 100644 --- a/src/main/java/mekanism/client/render/block/MachineRenderingHandler.java +++ b/src/main/java/mekanism/client/render/block/MachineRenderingHandler.java @@ -106,10 +106,10 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler else if(type == MachineType.DIGITAL_MINER) { GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.2F, -0.3F, 0.0F); + GL11.glRotatef(-180F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.35F, 0.1F, 0.0F); Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner.png")); - digitalMiner.render(0.03125F, false); + digitalMiner.render(0.022F, false); } else if(type == MachineType.ROTARY_CONDENSENTRATOR) { diff --git a/src/main/java/mekanism/client/render/tileentity/RenderDigitalMiner.java b/src/main/java/mekanism/client/render/tileentity/RenderDigitalMiner.java index 0d1375db4..a4eec471c 100644 --- a/src/main/java/mekanism/client/render/tileentity/RenderDigitalMiner.java +++ b/src/main/java/mekanism/client/render/tileentity/RenderDigitalMiner.java @@ -33,10 +33,22 @@ public class RenderDigitalMiner extends TileEntitySpecialRenderer switch(tileEntity.facing) { - case 2: GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); break; - case 3: GL11.glRotatef(270, 0.0F, 1.0F, 0.0F); break; - case 4: GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); break; - case 5: GL11.glRotatef(0, 0.0F, 1.0F, 0.0F); break; + case 2: + GL11.glRotatef(0, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.0F, 0.0F, -1.0F); + break; + case 3: + GL11.glRotatef(180, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.0F, 0.0F, -1.0F); + break; + case 4: + GL11.glRotatef(90, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.0F, 0.0F, -1.0F); + break; + case 5: + GL11.glRotatef(270, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.0F, 0.0F, -1.0F); + break; } GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); diff --git a/src/main/java/mekanism/common/CommonProxy.java b/src/main/java/mekanism/common/CommonProxy.java index c6ebe7984..1715ab418 100644 --- a/src/main/java/mekanism/common/CommonProxy.java +++ b/src/main/java/mekanism/common/CommonProxy.java @@ -34,6 +34,7 @@ import mekanism.common.inventory.container.ContainerFactory; import mekanism.common.inventory.container.ContainerFilter; import mekanism.common.inventory.container.ContainerFluidTank; import mekanism.common.inventory.container.ContainerFluidicPlenisher; +import mekanism.common.inventory.container.ContainerFormulaicAssemblicator; import mekanism.common.inventory.container.ContainerGasTank; import mekanism.common.inventory.container.ContainerInductionMatrix; import mekanism.common.inventory.container.ContainerLaserAmplifier; @@ -88,6 +89,7 @@ import mekanism.common.tile.TileEntityEnrichmentChamber; import mekanism.common.tile.TileEntityFactory; import mekanism.common.tile.TileEntityFluidTank; import mekanism.common.tile.TileEntityFluidicPlenisher; +import mekanism.common.tile.TileEntityFormulaicAssemblicator; import mekanism.common.tile.TileEntityGasTank; import mekanism.common.tile.TileEntityInductionCasing; import mekanism.common.tile.TileEntityInductionCell; @@ -372,6 +374,7 @@ public class CommonProxy implements IGuiProvider usage.laserUsage = Mekanism.configuration.get("usage", "LaserUsage", 5000D).getDouble(); usage.gasCentrifugeUsage = Mekanism.configuration.get("usage", "GasCentrifugeUsage", 100D).getDouble(); usage.heavyWaterElectrolysisUsage = Mekanism.configuration.get("usage", "HeavyWaterElectrolysisUsage", 800D).getDouble(); + usage.formulaicAssemblicatorUsage = Mekanism.configuration.get("usage", "FormulaicAssemblicatorUsage", 100D).getDouble(); Tier.loadConfig(); @@ -549,6 +552,8 @@ public class CommonProxy implements IGuiProvider return new ContainerFilter(player.inventory, (TileEntityContainerBlock)tileEntity); case 55: return new ContainerNull(player, (TileEntityContainerBlock)tileEntity); + case 56: + return new ContainerFormulaicAssemblicator(player.inventory, (TileEntityFormulaicAssemblicator)tileEntity); } return null; diff --git a/src/main/java/mekanism/common/content/assemblicator/RecipeFormula.java b/src/main/java/mekanism/common/content/assemblicator/RecipeFormula.java index 84ea25418..79b4a5278 100644 --- a/src/main/java/mekanism/common/content/assemblicator/RecipeFormula.java +++ b/src/main/java/mekanism/common/content/assemblicator/RecipeFormula.java @@ -10,7 +10,7 @@ import net.minecraft.world.World; public class RecipeFormula { - public InventoryCrafting dummy = MekanismUtils.getDummyCraftingInv(); + private InventoryCrafting dummy = MekanismUtils.getDummyCraftingInv(); public ItemStack[] input = new ItemStack[9]; diff --git a/src/main/java/mekanism/common/inventory/container/ContainerFormulaicAssemblicator.java b/src/main/java/mekanism/common/inventory/container/ContainerFormulaicAssemblicator.java index 2f3d337d2..0961058bd 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerFormulaicAssemblicator.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerFormulaicAssemblicator.java @@ -1,6 +1,7 @@ package mekanism.common.inventory.container; import mekanism.common.inventory.slot.SlotEnergy.SlotDischarge; +import mekanism.common.inventory.slot.SlotOutput; import mekanism.common.inventory.slot.SlotSpecific; import mekanism.common.item.ItemCraftingFormula; import mekanism.common.tile.TileEntityFormulaicAssemblicator; @@ -10,7 +11,12 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraft.util.IIcon; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class ContainerFormulaicAssemblicator extends Container { @@ -36,7 +42,34 @@ public class ContainerFormulaicAssemblicator extends Container { for(int slotX = 0; slotX < 3; slotX++) { - addSlotToContainer(new Slot(tentity, slotX + slotY * 9 + 27, 26 + slotX * 18, 17 + slotY * 18)); + addSlotToContainer(new Slot(tentity, slotX + slotY * 9 + 27, 26 + slotX * 18, 17 + slotY * 18) { + @Override + public boolean isItemValid(ItemStack stack) + { + return !tileEntity.autoMode; + } + + @SideOnly(Side.CLIENT) + public boolean func_111238_b() + { + return !tileEntity.autoMode; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getBackgroundIconIndex() + { + if(tileEntity.formula != null) + { + ItemStack stack = tileEntity.formula.input[getSlotIndex()-27]; + GL11.glColor4f(1, 1, 1, 0.4F); + + return stack != null ? stack.getIconIndex() : null; + } + + return null; + } + }); } } @@ -44,7 +77,7 @@ public class ContainerFormulaicAssemblicator extends Container { for(int slotX = 0; slotX < 2; slotX++) { - addSlotToContainer(new Slot(tentity, slotX + slotY * 9 + 21, 116 + slotX * 18, 17 + slotY * 18)); + addSlotToContainer(new SlotOutput(tentity, slotX + slotY * 9 + 21, 116 + slotX * 18, 17 + slotY * 18)); } } @@ -92,22 +125,6 @@ public class ContainerFormulaicAssemblicator extends Container stack = slotStack.copy(); if(ChargeUtils.canBeDischarged(slotStack)) - { - if(slotID != 2) - { - if(!mergeItemStack(slotStack, 2, 3, false)) - { - return null; - } - } - else { - if(!mergeItemStack(slotStack, 3, inventorySlots.size(), true)) - { - return null; - } - } - } - else if(FluidContainerRegistry.isEmptyContainer(slotStack)) { if(slotID != 0) { @@ -116,38 +133,60 @@ public class ContainerFormulaicAssemblicator extends Container return null; } } - else if(slotID == 0) - { - if(!mergeItemStack(slotStack, 3, inventorySlots.size(), true)) + else { + if(!mergeItemStack(slotStack, 34, inventorySlots.size(), true)) { return null; } } } - else if(slotID == 1) + else if(slotStack.getItem() instanceof ItemCraftingFormula) { - if(!mergeItemStack(slotStack, 3, inventorySlots.size(), true)) + if(slotID != 1) { - return null; - } - } - else { - if(slotID >= 3 && slotID <= 29) - { - if(!mergeItemStack(slotStack, 30, inventorySlots.size(), false)) - { - return null; - } - } - else if(slotID > 29) - { - if(!mergeItemStack(slotStack, 3, 29, false)) + if(!mergeItemStack(slotStack, 1, 2, false)) { return null; } } else { - if(!mergeItemStack(slotStack, 3, inventorySlots.size(), true)) + if(!mergeItemStack(slotStack, 34, inventorySlots.size(), true)) + { + return null; + } + } + } + else if(slotID >= 2 && slotID <= 19) + { + if(!mergeItemStack(slotStack, 34, inventorySlots.size(), true)) + { + return null; + } + } + else if(tileEntity.formula == null || tileEntity.formula.isIngredient(tileEntity.getWorldObj(), slotStack)) + { + if(!mergeItemStack(slotStack, 2, 20, false)) + { + return null; + } + } + else { + if(slotID >= 34 && slotID <= 60) + { + if(!mergeItemStack(slotStack, 61, inventorySlots.size(), false)) + { + return null; + } + } + else if(slotID > 60) + { + if(!mergeItemStack(slotStack, 34, 60, false)) + { + return null; + } + } + else { + if(!mergeItemStack(slotStack, 34, inventorySlots.size(), true)) { return null; } diff --git a/src/main/java/mekanism/common/network/PacketConfigSync.java b/src/main/java/mekanism/common/network/PacketConfigSync.java index a24cfc57d..d1ac7fc69 100644 --- a/src/main/java/mekanism/common/network/PacketConfigSync.java +++ b/src/main/java/mekanism/common/network/PacketConfigSync.java @@ -99,6 +99,7 @@ public class PacketConfigSync implements IMessageHandler