More work on salivation controllers
This commit is contained in:
parent
83ee208fb7
commit
804d071643
5 changed files with 43 additions and 20 deletions
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue