package crazypants.enderio.conduit.redstone;
import java.util.Set;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import crazypants.enderio.conduit.IConduitBundle;
import dan200.computercraft.api.ComputerCraftAPI;
import dan200.computercraft.api.redstone.IBundledRedstoneProvider;
public class ConduitBundledRedstoneProvider implements IBundledRedstoneProvider {
@Override
public int getBundledRedstoneOutput(World world, int x, int y, int z, int side) {
TileEntity inputTE = world.getTileEntity(x, y, z);
if (inputTE != null && inputTE instanceof IConduitBundle) {
IConduitBundle bundle = ((IConduitBundle) inputTE);
if (bundle.hasType(IInsulatedRedstoneConduit.class)) {
IInsulatedRedstoneConduit conduit = bundle.getConduit(IInsulatedRedstoneConduit.class);
Set<Signal> networkOutputs = conduit.getNetworkOutputs(ForgeDirection.UNKNOWN);
int out = 0;
for (Signal signal : networkOutputs) {
int index = signal.color.ordinal();
if (signal.strength != 0) {
out |= (1 << 15 - index);
}
}
return out;
}
return 0;
}
return -1;
}
public static void register() {
ComputerCraftAPI.registerBundledRedstoneProvider(new ConduitBundledRedstoneProvider());
}
}