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.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());
}

View file

@ -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");
}

View file

@ -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

View file

@ -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;
}

View file

@ -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;
}