From 587e94d1978c684e87d4d8eec41f3f8948135d69 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Sun, 26 Jun 2016 12:51:25 -0400 Subject: [PATCH] Item Nodes can now be disabled by a (weak) redstone signal --- changelog.txt | 1 + .../bloodmagic/block/BlockRoutingNode.java | 6 +++ .../tile/routing/TileMasterRoutingNode.java | 12 +++++- .../tile/routing/TileRoutingNode.java | 39 ++++++++++++------- 4 files changed, 44 insertions(+), 14 deletions(-) diff --git a/changelog.txt b/changelog.txt index 2c615911..b73f6ab5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,7 @@ Version 2.0.2-47 ------------------------------------------------------ - Fixed horrible memory leak in the Living Armour. +- Item Nodes can now be disabled by a (weak) redstone signal. ------------------------------------------------------ Version 2.0.2-46 diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockRoutingNode.java b/src/main/java/WayofTime/bloodmagic/block/BlockRoutingNode.java index 71ff933e..ef4ac201 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockRoutingNode.java @@ -41,6 +41,12 @@ public abstract class BlockRoutingNode extends BlockContainer this.setDefaultState(this.blockState.getBaseState().withProperty(DOWN, false).withProperty(UP, false).withProperty(NORTH, false).withProperty(EAST, false).withProperty(SOUTH, false).withProperty(WEST, false)); } + @Override + public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) + { + return true; + } + @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { diff --git a/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java index 81df48ec..9726ff78 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/routing/TileMasterRoutingNode.java @@ -27,6 +27,8 @@ import WayofTime.bloodmagic.tile.TileInventory; public class TileMasterRoutingNode extends TileInventory implements IMasterRoutingNode, ITickable { + private int currentInput; + public TileMasterRoutingNode() { super(0, "masterRoutingNode"); @@ -43,6 +45,14 @@ public class TileMasterRoutingNode extends TileInventory implements IMasterRouti @Override public void update() { + if (!worldObj.isRemote) + { +// currentInput = worldObj.isBlockIndirectlyGettingPowered(pos); + currentInput = worldObj.getStrongPower(pos); + +// System.out.println(currentInput); + } + if (worldObj.isRemote || worldObj.getTotalWorldTime() % tickRate != 0) //Temporary tick rate solver { return; @@ -262,7 +272,7 @@ public class TileMasterRoutingNode extends TileInventory implements IMasterRouti @Override public boolean isConnectionEnabled(BlockPos testPos) { - return true; + return currentInput <= 0; } @Override diff --git a/src/main/java/WayofTime/bloodmagic/tile/routing/TileRoutingNode.java b/src/main/java/WayofTime/bloodmagic/tile/routing/TileRoutingNode.java index 8101ffa9..3dc3d24d 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/routing/TileRoutingNode.java +++ b/src/main/java/WayofTime/bloodmagic/tile/routing/TileRoutingNode.java @@ -1,29 +1,42 @@ package WayofTime.bloodmagic.tile.routing; +import java.util.LinkedList; +import java.util.List; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.ITickable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.routing.IItemRoutingNode; import WayofTime.bloodmagic.routing.IMasterRoutingNode; import WayofTime.bloodmagic.routing.IRoutingNode; import WayofTime.bloodmagic.tile.TileInventory; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import java.util.LinkedList; -import java.util.List; - -public class TileRoutingNode extends TileInventory implements IRoutingNode, IItemRoutingNode +public class TileRoutingNode extends TileInventory implements IRoutingNode, IItemRoutingNode, ITickable { + private int currentInput; + public TileRoutingNode(int size, String name) { super(size, name); } + @Override + public void update() + { + if (!worldObj.isRemote) + { + currentInput = worldObj.isBlockIndirectlyGettingPowered(pos); +// currentInput = worldObj.getStrongPower(pos); + } + } + private BlockPos masterPos = BlockPos.ORIGIN; private List connectionList = new LinkedList(); @@ -144,7 +157,7 @@ public class TileRoutingNode extends TileInventory implements IRoutingNode, IIte @Override public boolean isConnectionEnabled(BlockPos testPos) { - return true; + return currentInput <= 0; } @Override