diff --git a/archaic/src/main/java/resonantinduction/archaic/fluid/grate/TileGrate.java b/archaic/src/main/java/resonantinduction/archaic/fluid/grate/TileGrate.java index da1670ff..5d803342 100644 --- a/archaic/src/main/java/resonantinduction/archaic/fluid/grate/TileGrate.java +++ b/archaic/src/main/java/resonantinduction/archaic/fluid/grate/TileGrate.java @@ -14,11 +14,10 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTankInfo; +import resonantinduction.archaic.fluid.gutter.FluidGravityNode; import resonantinduction.core.Reference; import resonantinduction.core.fluid.TilePressureNode; -import resonantinduction.core.grid.fluid.PressureNode; import universalelectricity.api.vector.Vector3; import calclavia.lib.prefab.tile.IRotatable; import calclavia.lib.utility.FluidUtility; @@ -38,7 +37,7 @@ public class TileGrate extends TilePressureNode implements IRotatable isOpaqueCube = false; normalRender = true; rotationMask = Byte.parseByte("111111", 2); - node = new PressureNode(this); + node = new FluidGravityNode(this); } @Override @@ -100,7 +99,8 @@ public class TileGrate extends TilePressureNode implements IRotatable @Override public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { - getPressureTank().fill(resource, doFill); + int filled = getPressureTank().fill(resource, doFill); + System.out.println("FILL"); if (getPressureTank().getFluidAmount() > 0) { diff --git a/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/FluidGravityNode.java b/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/FluidGravityNode.java new file mode 100644 index 00000000..96581c66 --- /dev/null +++ b/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/FluidGravityNode.java @@ -0,0 +1,35 @@ +package resonantinduction.archaic.fluid.gutter; + +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.IFluidHandler; +import resonantinduction.archaic.fluid.grate.TileGrate; +import resonantinduction.core.grid.fluid.IPressureNodeProvider; +import resonantinduction.core.grid.fluid.FluidPressureNode; +import calclavia.lib.utility.WorldUtility; + +public class FluidGravityNode extends FluidPressureNode +{ + public FluidGravityNode(IPressureNodeProvider parent) + { + super(parent); + } + + @Override + public int getPressure(ForgeDirection dir) + { + if (dir == ForgeDirection.UP) + return -1; + + if (dir == ForgeDirection.DOWN) + return 1; + + return 0; + } + + @Override + public int getMaxFlowRate() + { + return 20; + } +} diff --git a/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/TileGutter.java b/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/TileGutter.java index d674cc6b..e01c93fd 100644 --- a/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/TileGutter.java +++ b/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/TileGutter.java @@ -28,7 +28,7 @@ import resonantinduction.core.Reference; import resonantinduction.core.ResonantInduction; import resonantinduction.core.fluid.TilePressureNode; import resonantinduction.core.grid.fluid.IPressureNodeProvider; -import resonantinduction.core.grid.fluid.PressureNode; +import resonantinduction.core.grid.fluid.FluidPressureNode; import universalelectricity.api.vector.Vector3; import calclavia.lib.content.module.TileRender; import calclavia.lib.prefab.vector.Cuboid; @@ -55,7 +55,7 @@ public class TileGutter extends TilePressureNode normalRender = false; bounds = new Cuboid(0, 0, 0, 1, 0.99, 1); - node = new PressureNode(this) + node = new FluidGravityNode(this) { @Override public void recache() @@ -74,7 +74,7 @@ public class TileGutter extends TilePressureNode { if (tile instanceof IPressureNodeProvider) { - PressureNode check = ((IPressureNodeProvider) tile).getNode(PressureNode.class, dir.getOpposite()); + FluidPressureNode check = ((IPressureNodeProvider) tile).getNode(FluidPressureNode.class, dir.getOpposite()); if (check != null && canConnect(dir, check) && check.canConnect(dir.getOpposite(), this)) { @@ -102,24 +102,6 @@ public class TileGutter extends TilePressureNode } } } - - @Override - public int getPressure(ForgeDirection dir) - { - if (dir == ForgeDirection.UP) - return -1; - - if (dir == ForgeDirection.DOWN) - return 2; - - return 0; - } - - @Override - public int getMaxFlowRate() - { - return 20; - } }; } @@ -184,6 +166,10 @@ public class TileGutter extends TilePressureNode { entity.setFire(5); } + else + { + entity.extinguish(); + } } if (entity instanceof EntityItem) @@ -208,9 +194,9 @@ public class TileGutter extends TilePressureNode { for (Object check : node.getGrid().getNodes()) { - if (check instanceof PressureNode) + if (check instanceof FluidPressureNode) { - tanks.add(((PressureNode) check).parent.getPressureTank()); + tanks.add(((FluidPressureNode) check).parent.getPressureTank()); } } } @@ -220,9 +206,9 @@ public class TileGutter extends TilePressureNode { for (Object check : node.getGrid().getNodes()) { - if (check instanceof PressureNode) + if (check instanceof FluidPressureNode) { - ((PressureNode) check).parent.onFluidChanged(); + ((FluidPressureNode) check).parent.onFluidChanged(); } } } @@ -346,7 +332,7 @@ public class TileGutter extends TilePressureNode public void render(int meta, byte sides) { RenderUtility.bind(TEXTURE); - // RenderUtility.bind(TextureMap.locationBlocksTexture); + double thickness = 0.055; double height = 0.5; @@ -370,11 +356,14 @@ public class TileGutter extends TilePressureNode */ MODEL.renderOnly("left"); } - + + if (!WorldUtility.isEnabledSide(sides, dir) || !WorldUtility.isEnabledSide(sides, dir.getRotation(ForgeDirection.UP))) + { /** * Render strips */ MODEL.renderOnly("backCornerL"); + } GL11.glPopMatrix(); } } diff --git a/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java b/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java index 7aaec597..0f72e126 100644 --- a/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java +++ b/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java @@ -14,7 +14,7 @@ import net.minecraftforge.fluids.IFluidHandler; import resonantinduction.core.ResonantInduction; import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.fluid.IPressureNodeProvider; -import resonantinduction.core.grid.fluid.PressureNode; +import resonantinduction.core.grid.fluid.FluidPressureNode; import resonantinduction.core.prefab.part.PartFace; import resonantinduction.electrical.Electrical; import resonantinduction.mechanical.energy.grid.MechanicalNode; @@ -308,7 +308,7 @@ public class PartMultimeter extends PartFace implements IConnector implements IPressureNodeProvider, TSlottedPart, JNormalOcclusion, IHollowConnect +public class PartPipe extends PartFramedNode implements IPressureNodeProvider, TSlottedPart, JNormalOcclusion, IHollowConnect { protected FluidTank tank = new FluidTank(FluidContainerRegistry.BUCKET_VOLUME); private boolean markPacket = true; @@ -39,7 +39,7 @@ public class PartPipe extends PartFramedNode +public class FluidPressureNode extends Node { protected byte connectionMap = Byte.parseByte("111111", 2); private int pressure = 0; public int maxFlowRate = 10; public int maxPressure = 10; - public PressureNode(IPressureNodeProvider parent) + public FluidPressureNode(IPressureNodeProvider parent) { super(parent); } - public PressureNode setConnection(byte connectionMap) + public FluidPressureNode setConnection(byte connectionMap) { this.connectionMap = connectionMap; return this; @@ -57,9 +57,9 @@ public class PressureNode extends Node entry = it.next(); Object obj = entry.getKey(); - if (obj instanceof PressureNode) + if (obj instanceof FluidPressureNode) { - int pressure = ((PressureNode) obj).getPressure(entry.getValue().getOpposite()); + int pressure = ((FluidPressureNode) obj).getPressure(entry.getValue().getOpposite()); minPressure = Math.min(pressure, minPressure); maxPressure = Math.max(pressure, maxPressure); @@ -98,9 +98,9 @@ public class PressureNode extends Node(this, PressureNode.class); + return new TickingGrid(this, FluidPressureNode.class); } @Override