More work on salivation controllers

This commit is contained in:
Aidan C. Brady 2014-01-14 00:17:15 -05:00
parent 83ee208fb7
commit 804d071643
5 changed files with 43 additions and 20 deletions

View file

@ -105,6 +105,7 @@ import mekanism.common.tile.TileEntityPrecisionSawmill;
import mekanism.common.tile.TileEntityPurificationChamber; import mekanism.common.tile.TileEntityPurificationChamber;
import mekanism.common.tile.TileEntityRotaryCondensentrator; import mekanism.common.tile.TileEntityRotaryCondensentrator;
import mekanism.common.tile.TileEntitySalinationController; import mekanism.common.tile.TileEntitySalinationController;
import mekanism.common.tile.TileEntitySalinationTank;
import mekanism.common.tile.TileEntitySalinationValve; import mekanism.common.tile.TileEntitySalinationValve;
import mekanism.common.tile.TileEntityTeleporter; import mekanism.common.tile.TileEntityTeleporter;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@ -294,6 +295,7 @@ public class ClientProxy extends CommonProxy
ClientRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator", new RenderElectrolyticSeparator()); ClientRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator", new RenderElectrolyticSeparator());
GameRegistry.registerTileEntity(TileEntitySalinationController.class, "SalinationController"); GameRegistry.registerTileEntity(TileEntitySalinationController.class, "SalinationController");
GameRegistry.registerTileEntity(TileEntitySalinationValve.class, "SalinationValve"); GameRegistry.registerTileEntity(TileEntitySalinationValve.class, "SalinationValve");
GameRegistry.registerTileEntity(TileEntitySalinationTank.class, "SalinationTank");
ClientRegistry.registerTileEntity(TileEntityPrecisionSawmill.class, "PrecisionSawmill", new RenderConfigurableMachine()); ClientRegistry.registerTileEntity(TileEntityPrecisionSawmill.class, "PrecisionSawmill", new RenderConfigurableMachine());
} }

View file

@ -61,6 +61,7 @@ import mekanism.common.tile.TileEntityPrecisionSawmill;
import mekanism.common.tile.TileEntityPurificationChamber; import mekanism.common.tile.TileEntityPurificationChamber;
import mekanism.common.tile.TileEntityRotaryCondensentrator; import mekanism.common.tile.TileEntityRotaryCondensentrator;
import mekanism.common.tile.TileEntitySalinationController; import mekanism.common.tile.TileEntitySalinationController;
import mekanism.common.tile.TileEntitySalinationTank;
import mekanism.common.tile.TileEntitySalinationValve; import mekanism.common.tile.TileEntitySalinationValve;
import mekanism.common.tile.TileEntityTeleporter; import mekanism.common.tile.TileEntityTeleporter;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -116,6 +117,7 @@ public class CommonProxy
GameRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator"); GameRegistry.registerTileEntity(TileEntityElectrolyticSeparator.class, "ElectrolyticSeparator");
GameRegistry.registerTileEntity(TileEntitySalinationController.class, "SalinationController"); GameRegistry.registerTileEntity(TileEntitySalinationController.class, "SalinationController");
GameRegistry.registerTileEntity(TileEntitySalinationValve.class, "SalinationValve"); GameRegistry.registerTileEntity(TileEntitySalinationValve.class, "SalinationValve");
GameRegistry.registerTileEntity(TileEntitySalinationTank.class, "SalinationTank");
GameRegistry.registerTileEntity(TileEntityPrecisionSawmill.class, "PrecisionSawmill"); GameRegistry.registerTileEntity(TileEntityPrecisionSawmill.class, "PrecisionSawmill");
} }

View file

@ -152,6 +152,10 @@ public class BlockBasic extends Block
return icons[6][0]; return icons[6][0];
} }
} }
else if(metadata == 10)
{
return glassRenderer.getIcon(world, x, y, z, side);
}
else if(metadata == 14) else if(metadata == 14)
{ {
TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getBlockTileEntity(x, y, z); TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getBlockTileEntity(x, y, z);
@ -161,13 +165,9 @@ public class BlockBasic extends Block
return icons[14][0]; return icons[14][0];
} }
else { else {
return icons[14][1]; return icons[12][0];
} }
} }
else if(metadata == 10)
{
return glassRenderer.getIcon(world, x, y, z, side);
}
else { else {
return getIcon(side, metadata); return getIcon(side, metadata);
} }
@ -177,11 +177,12 @@ public class BlockBasic extends Block
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public Icon getIcon(int side, int meta) public Icon getIcon(int side, int meta)
{ {
if(meta != 6) if(meta != 6 && meta != 14)
{ {
return icons[meta][0]; return icons[meta][0];
} }
else { else if(meta == 6)
{
if(side == 0 || side == 1) if(side == 0 || side == 1)
{ {
return icons[6][1]; return icons[6][1];
@ -194,6 +195,18 @@ public class BlockBasic extends Block
return icons[6][0]; return icons[6][0];
} }
} }
else if(meta == 14)
{
if(side == 3)
{
return icons[14][0];
}
else {
return icons[12][0];
}
}
return null;
} }
@Override @Override

View file

@ -373,6 +373,8 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
{ {
super.load(nbtTags); super.load(nbtTags);
redstoneReactive = nbtTags.getBoolean("redstoneReactive");
for(int i = 0; i < 6; i++) for(int i = 0; i < 6; i++)
{ {
connectionTypes[i] = ConnectionType.values()[nbtTags.getInteger("connection" + i)]; connectionTypes[i] = ConnectionType.values()[nbtTags.getInteger("connection" + i)];
@ -384,6 +386,8 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
{ {
super.save(nbtTags); super.save(nbtTags);
nbtTags.setBoolean("redstoneReactive", redstoneReactive);
for(int i = 0; i < 6; i++) for(int i = 0; i < 6; i++)
{ {
nbtTags.setInteger("connection" + i, connectionTypes[i].ordinal()); nbtTags.setInteger("connection" + i, connectionTypes[i].ordinal());
@ -600,7 +604,7 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
refreshConnections(); refreshConnections();
tile().notifyPartChange(this); 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; return true;
} }

View file

@ -48,6 +48,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
if(canOperate()) if(canOperate())
{ {
partialWater += temperature * (height + 7)/8; partialWater += temperature * (height + 7)/8;
if(partialWater >= 1) if(partialWater >= 1)
{ {
int waterInt = (int)Math.floor(partialWater); int waterInt = (int)Math.floor(partialWater);
@ -55,6 +56,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
partialWater %= 1; partialWater %= 1;
partialBrine += ((double)waterInt)/100D; partialBrine += ((double)waterInt)/100D;
} }
if(partialBrine >= 1) if(partialBrine >= 1)
{ {
int brineInt = (int)Math.floor(partialBrine); int brineInt = (int)Math.floor(partialBrine);
@ -102,21 +104,21 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
height = 0; height = 0;
if(!findBottomLayer()) if(!scanBottomLayer())
{ {
return false; return false;
} }
Coord4D startPoint = Coord4D.get(this).getFromSide(right); Coord4D startPoint = Coord4D.get(this).getFromSide(right);
startPoint = isLeftOnFace ? startPoint : startPoint.getFromSide(right); startPoint = isLeftOnFace ? startPoint : startPoint.getFromSide(right);
while(findMiddleLayer(startPoint)) while(scanMiddleLayer(startPoint))
{ {
startPoint = startPoint.getFromSide(ForgeDirection.UP); startPoint = startPoint.getFromSide(ForgeDirection.UP);
height++; height++;
} }
structured = findTopLayer(startPoint); structured = scanTopLayer(startPoint);
height = structured ? height + 1 : 0; height = structured ? height + 1 : 0;
return structured; return structured;
} }
@ -127,7 +129,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
ForgeDirection.getOrientation(facing), MekanismUtils.getRight(facing)}; ForgeDirection.getOrientation(facing), MekanismUtils.getRight(facing)};
} }
public boolean findTopLayer(Coord4D current) public boolean scanTopLayer(Coord4D current)
{ {
ForgeDirection[] matrix = getMatrix(); ForgeDirection[] matrix = getMatrix();
@ -156,7 +158,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
return true; return true;
} }
public boolean findMiddleLayer(Coord4D current) public boolean scanMiddleLayer(Coord4D current)
{ {
ForgeDirection[] matrix = getMatrix(); ForgeDirection[] matrix = getMatrix();
@ -177,7 +179,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
return true; return true;
} }
public boolean findBottomLayer() public boolean scanBottomLayer()
{ {
Coord4D baseBlock = Coord4D.get(this).getFromSide(ForgeDirection.DOWN); Coord4D baseBlock = Coord4D.get(this).getFromSide(ForgeDirection.DOWN);
@ -185,17 +187,17 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
ForgeDirection right = MekanismUtils.getRight(facing); ForgeDirection right = MekanismUtils.getRight(facing);
if(!findBottomRow(baseBlock)) if(!findBottomRow(baseBlock))
{ {
return false; return false;
}; };
if(!findBottomRow(baseBlock.getFromSide(left))) if(!findBottomRow(baseBlock.getFromSide(left)))
{ {
return false; return false;
}; };
if(!findBottomRow(baseBlock.getFromSide(right))) if(!findBottomRow(baseBlock.getFromSide(right)))
{ {
return false; return false;
}; };
@ -203,7 +205,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
boolean twoRight = findBottomRow(baseBlock.getFromSide(right).getFromSide(right)); boolean twoRight = findBottomRow(baseBlock.getFromSide(right).getFromSide(right));
if(twoLeft == twoRight) if(twoLeft == twoRight)
{ {
return false; return false;
} }
@ -222,7 +224,7 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp
TileEntity tile = current.getTileEntity(worldObj); TileEntity tile = current.getTileEntity(worldObj);
if(!addTankPart(tile)) if(!addTankPart(tile))
{ {
return false; return false;
} }