From 398f9c1ca89984489f80364b94b77bf60c2bc63c Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Tue, 27 Sep 2016 18:39:10 +0200 Subject: [PATCH] Constructor / Destructor have a connected state --- .../java/refinedstorage/block/BlockCable.java | 17 ++++++++++++++++- .../refinedstorage/block/BlockConstructor.java | 5 +++++ .../refinedstorage/block/BlockDestructor.java | 5 +++++ .../refinedstorage/tile/TileConstructor.java | 6 ++++++ .../refinedstorage/tile/TileDestructor.java | 5 +++++ .../refinedstorage/blockstates/constructor.json | 6 ++++++ .../refinedstorage/blockstates/destructor.json | 6 ++++++ 7 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/main/java/refinedstorage/block/BlockCable.java b/src/main/java/refinedstorage/block/BlockCable.java index 01aa0e5d8..c3397d844 100755 --- a/src/main/java/refinedstorage/block/BlockCable.java +++ b/src/main/java/refinedstorage/block/BlockCable.java @@ -56,6 +56,7 @@ public class BlockCable extends BlockCoverable { protected static final PropertyBool WEST = PropertyBool.create("west"); protected static final PropertyBool UP = PropertyBool.create("up"); protected static final PropertyBool DOWN = PropertyBool.create("down"); + protected static final PropertyBool CONNECTED = PropertyBool.create("connected"); private String name; @@ -97,6 +98,10 @@ public class BlockCable extends BlockCoverable { return new TileCable(); } + public boolean hasConnectivityState() { + return false; + } + @Override protected BlockStateContainer createBlockState() { BlockStateContainer.Builder builder = new BlockStateContainer.Builder(this); @@ -113,6 +118,10 @@ public class BlockCable extends BlockCoverable { builder.add(DIRECTION); } + if (hasConnectivityState()) { + builder.add(CONNECTED); + } + return builder.build(); } @@ -127,8 +136,14 @@ public class BlockCable extends BlockCoverable { .withProperty(UP, hasConnectionWith(world, pos, EnumFacing.UP)) .withProperty(DOWN, hasConnectionWith(world, pos, EnumFacing.DOWN)); + TileNode tile = (TileNode) world.getTileEntity(pos); + if (getPlacementType() != null) { - state = state.withProperty(DIRECTION, ((TileNode) world.getTileEntity(pos)).getDirection()); + state = state.withProperty(DIRECTION, tile.getDirection()); + } + + if (hasConnectivityState()) { + state = state.withProperty(CONNECTED, tile.isConnected()); } return state; diff --git a/src/main/java/refinedstorage/block/BlockConstructor.java b/src/main/java/refinedstorage/block/BlockConstructor.java index 35e6476d7..07787737a 100755 --- a/src/main/java/refinedstorage/block/BlockConstructor.java +++ b/src/main/java/refinedstorage/block/BlockConstructor.java @@ -91,6 +91,11 @@ public class BlockConstructor extends BlockCable { return true; } + @Override + public boolean hasConnectivityState() { + return true; + } + @Override public EnumPlacementType getPlacementType() { return EnumPlacementType.ANY; diff --git a/src/main/java/refinedstorage/block/BlockDestructor.java b/src/main/java/refinedstorage/block/BlockDestructor.java index 306b31418..9a90b2df0 100755 --- a/src/main/java/refinedstorage/block/BlockDestructor.java +++ b/src/main/java/refinedstorage/block/BlockDestructor.java @@ -48,6 +48,11 @@ public class BlockDestructor extends BlockCable { return true; } + @Override + public boolean hasConnectivityState() { + return true; + } + @Override public EnumPlacementType getPlacementType() { return EnumPlacementType.ANY; diff --git a/src/main/java/refinedstorage/tile/TileConstructor.java b/src/main/java/refinedstorage/tile/TileConstructor.java index a2ac33d6e..67562b11d 100755 --- a/src/main/java/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/refinedstorage/tile/TileConstructor.java @@ -44,6 +44,7 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I block = SlotSpecimen.getBlockState(worldObj, pos.offset(getDirection()), getStackInSlot(0)); } }; + private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(1, this); private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_CRAFTING); @@ -172,6 +173,11 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I return upgrades; } + @Override + public boolean hasConnectivityState() { + return true; + } + @Override public int getType() { return worldObj.isRemote ? TYPE.getValue() : type; diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index c2f57cfc8..1148f3ba1 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -194,6 +194,11 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF return itemFilters; } + @Override + public boolean hasConnectivityState() { + return true; + } + @Override public IItemHandler getDrops() { return upgrades; diff --git a/src/main/resources/assets/refinedstorage/blockstates/constructor.json b/src/main/resources/assets/refinedstorage/blockstates/constructor.json index 5af28062c..8df2b5d8e 100755 --- a/src/main/resources/assets/refinedstorage/blockstates/constructor.json +++ b/src/main/resources/assets/refinedstorage/blockstates/constructor.json @@ -17,6 +17,12 @@ "transform": "forge:default-block" } ], + "connected": { + "true": { + }, + "false": { + } + }, "direction": { "north": { "submodel": "refinedstorage:constructor_destructor_north" diff --git a/src/main/resources/assets/refinedstorage/blockstates/destructor.json b/src/main/resources/assets/refinedstorage/blockstates/destructor.json index e625d0e07..969789778 100755 --- a/src/main/resources/assets/refinedstorage/blockstates/destructor.json +++ b/src/main/resources/assets/refinedstorage/blockstates/destructor.json @@ -17,6 +17,12 @@ "transform": "forge:default-block" } ], + "connected": { + "true": { + }, + "false": { + } + }, "direction": { "north": { "submodel": "refinedstorage:constructor_destructor_north"