From 804d0716436d5215fa09361f84092b0db39e43ac Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Tue, 14 Jan 2014 00:17:15 -0500 Subject: [PATCH] More work on salivation controllers --- common/mekanism/client/ClientProxy.java | 2 ++ common/mekanism/common/CommonProxy.java | 2 ++ common/mekanism/common/block/BlockBasic.java | 27 ++++++++++++++----- .../common/multipart/PartSidedPipe.java | 6 ++++- .../tile/TileEntitySalinationController.java | 26 +++++++++--------- 5 files changed, 43 insertions(+), 20 deletions(-) diff --git a/common/mekanism/client/ClientProxy.java b/common/mekanism/client/ClientProxy.java index 7d6d01352..a8248898c 100644 --- a/common/mekanism/client/ClientProxy.java +++ b/common/mekanism/client/ClientProxy.java @@ -105,6 +105,7 @@ import mekanism.common.tile.TileEntityPrecisionSawmill; import mekanism.common.tile.TileEntityPurificationChamber; import mekanism.common.tile.TileEntityRotaryCondensentrator; import mekanism.common.tile.TileEntitySalinationController; +import mekanism.common.tile.TileEntitySalinationTank; import mekanism.common.tile.TileEntitySalinationValve; import mekanism.common.tile.TileEntityTeleporter; import net.minecraft.client.Minecraft; @@ -294,6 +295,7 @@ public class ClientProxy extends CommonProxy ClientRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator", new RenderElectrolyticSeparator()); GameRegistry.registerTileEntity(TileEntitySalinationController.class, "SalinationController"); GameRegistry.registerTileEntity(TileEntitySalinationValve.class, "SalinationValve"); + GameRegistry.registerTileEntity(TileEntitySalinationTank.class, "SalinationTank"); ClientRegistry.registerTileEntity(TileEntityPrecisionSawmill.class, "PrecisionSawmill", new RenderConfigurableMachine()); } diff --git a/common/mekanism/common/CommonProxy.java b/common/mekanism/common/CommonProxy.java index a93a791cf..d1827f8d9 100644 --- a/common/mekanism/common/CommonProxy.java +++ b/common/mekanism/common/CommonProxy.java @@ -61,6 +61,7 @@ import mekanism.common.tile.TileEntityPrecisionSawmill; import mekanism.common.tile.TileEntityPurificationChamber; import mekanism.common.tile.TileEntityRotaryCondensentrator; import mekanism.common.tile.TileEntitySalinationController; +import mekanism.common.tile.TileEntitySalinationTank; import mekanism.common.tile.TileEntitySalinationValve; import mekanism.common.tile.TileEntityTeleporter; import net.minecraft.block.Block; @@ -116,6 +117,7 @@ public class CommonProxy GameRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator"); GameRegistry.registerTileEntity(TileEntitySalinationController.class, "SalinationController"); GameRegistry.registerTileEntity(TileEntitySalinationValve.class, "SalinationValve"); + GameRegistry.registerTileEntity(TileEntitySalinationTank.class, "SalinationTank"); GameRegistry.registerTileEntity(TileEntityPrecisionSawmill.class, "PrecisionSawmill"); } diff --git a/common/mekanism/common/block/BlockBasic.java b/common/mekanism/common/block/BlockBasic.java index 9fb10eea4..4fa1b95e4 100644 --- a/common/mekanism/common/block/BlockBasic.java +++ b/common/mekanism/common/block/BlockBasic.java @@ -152,6 +152,10 @@ public class BlockBasic extends Block return icons[6][0]; } } + else if(metadata == 10) + { + return glassRenderer.getIcon(world, x, y, z, side); + } else if(metadata == 14) { TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getBlockTileEntity(x, y, z); @@ -161,13 +165,9 @@ public class BlockBasic extends Block return icons[14][0]; } else { - return icons[14][1]; + return icons[12][0]; } } - else if(metadata == 10) - { - return glassRenderer.getIcon(world, x, y, z, side); - } else { return getIcon(side, metadata); } @@ -177,11 +177,12 @@ public class BlockBasic extends Block @SideOnly(Side.CLIENT) public Icon getIcon(int side, int meta) { - if(meta != 6) + if(meta != 6 && meta != 14) { return icons[meta][0]; } - else { + else if(meta == 6) + { if(side == 0 || side == 1) { return icons[6][1]; @@ -194,6 +195,18 @@ public class BlockBasic extends Block return icons[6][0]; } } + else if(meta == 14) + { + if(side == 3) + { + return icons[14][0]; + } + else { + return icons[12][0]; + } + } + + return null; } @Override diff --git a/common/mekanism/common/multipart/PartSidedPipe.java b/common/mekanism/common/multipart/PartSidedPipe.java index f40bed8ee..dae441cdc 100644 --- a/common/mekanism/common/multipart/PartSidedPipe.java +++ b/common/mekanism/common/multipart/PartSidedPipe.java @@ -373,6 +373,8 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart, { super.load(nbtTags); + redstoneReactive = nbtTags.getBoolean("redstoneReactive"); + for(int i = 0; i < 6; i++) { connectionTypes[i] = ConnectionType.values()[nbtTags.getInteger("connection" + i)]; @@ -384,6 +386,8 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart, { super.save(nbtTags); + nbtTags.setBoolean("redstoneReactive", redstoneReactive); + for(int i = 0; i < 6; i++) { nbtTags.setInteger("connection" + i, connectionTypes[i].ordinal()); @@ -600,7 +604,7 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart, refreshConnections(); tile().notifyPartChange(this); - player.sendChatToPlayer(ChatMessageComponent.createFromText("Redstone sensitivity turned " + (redstoneReactive ? "on." : "off."))); + player.sendChatToPlayer(ChatMessageComponent.createFromText(EnumColor.DARK_BLUE + "[Mekanism]" + EnumColor.GREY + " Redstone sensitivity turned " + EnumColor.INDIGO + (redstoneReactive ? "on." : "off."))); return true; } diff --git a/common/mekanism/common/tile/TileEntitySalinationController.java b/common/mekanism/common/tile/TileEntitySalinationController.java index 9c26296e6..d962569b8 100644 --- a/common/mekanism/common/tile/TileEntitySalinationController.java +++ b/common/mekanism/common/tile/TileEntitySalinationController.java @@ -48,6 +48,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp if(canOperate()) { partialWater += temperature * (height + 7)/8; + if(partialWater >= 1) { int waterInt = (int)Math.floor(partialWater); @@ -55,6 +56,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp partialWater %= 1; partialBrine += ((double)waterInt)/100D; } + if(partialBrine >= 1) { int brineInt = (int)Math.floor(partialBrine); @@ -102,21 +104,21 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp height = 0; - if(!findBottomLayer()) - { + if(!scanBottomLayer()) + { return false; } Coord4D startPoint = Coord4D.get(this).getFromSide(right); startPoint = isLeftOnFace ? startPoint : startPoint.getFromSide(right); - while(findMiddleLayer(startPoint)) + while(scanMiddleLayer(startPoint)) { startPoint = startPoint.getFromSide(ForgeDirection.UP); height++; } - structured = findTopLayer(startPoint); + structured = scanTopLayer(startPoint); height = structured ? height + 1 : 0; return structured; } @@ -127,7 +129,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp ForgeDirection.getOrientation(facing), MekanismUtils.getRight(facing)}; } - public boolean findTopLayer(Coord4D current) + public boolean scanTopLayer(Coord4D current) { ForgeDirection[] matrix = getMatrix(); @@ -156,7 +158,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp return true; } - public boolean findMiddleLayer(Coord4D current) + public boolean scanMiddleLayer(Coord4D current) { ForgeDirection[] matrix = getMatrix(); @@ -177,7 +179,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp return true; } - public boolean findBottomLayer() + public boolean scanBottomLayer() { Coord4D baseBlock = Coord4D.get(this).getFromSide(ForgeDirection.DOWN); @@ -185,17 +187,17 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp ForgeDirection right = MekanismUtils.getRight(facing); if(!findBottomRow(baseBlock)) - { + { return false; }; if(!findBottomRow(baseBlock.getFromSide(left))) - { + { return false; }; if(!findBottomRow(baseBlock.getFromSide(right))) - { + { return false; }; @@ -203,7 +205,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp boolean twoRight = findBottomRow(baseBlock.getFromSide(right).getFromSide(right)); if(twoLeft == twoRight) - { + { return false; } @@ -222,7 +224,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp TileEntity tile = current.getTileEntity(worldObj); if(!addTankPart(tile)) - { + { return false; }