@Override public void setRedstonePower(ForgeDirection side, byte power) { byte[] b = device.getBundledPower(side); if (b == null) b = new byte[16]; b[color.ordinal()] = power; device.setBundledPower(side, b); }
@Override public byte getRedstonePower(ForgeDirection side) { byte[] b = device.getBundledOutput(side); if (b == null) return 0; return b[color.ordinal()]; }
@Override public void propagate() { if ((device instanceof IPart && ((IPart) device).getParent() == null) || device.getWorld() == null) return; for (MinecraftColor c : MinecraftColor.VALID_COLORS) { IRedstoneDevice dev; if (device instanceof IInsulatedRedwire) { dev = (IRedstoneDevice) device; } else { dev = BundledDeviceWrapper.wrap(device, c); } if (dev == null) continue; RedstoneApi.getInstance().getRedstonePropagator(dev, side).propagate(); } }
@Override public int getZ() { return device.getZ(); }
@Override public World getWorld() { return device.getWorld(); }
@Override public boolean isNormalFace(ForgeDirection side) { return device.isNormalFace(side); }
@Override public void onRedstoneUpdate() { device.onBundledUpdate(); }