use of com.bluepowermod.api.wire.redstone.IBundledDevice in project BluePower by Qmunity.
the class BundledConnectionCache method recalculateConnections.
@SuppressWarnings("unchecked")
@Override
public void recalculateConnections() {
if (dev.getWorld().isRemote)
return;
IBundledDevice self = getSelf();
for (ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) {
boolean wasConnected = connections[d.ordinal()] != null;
BundledConnection con = RedConnectionHelper.getBundledNeighbor(self, d);
if (con != null) {
if (!wasConnected || connections[d.ordinal()].getB() != con.getB() || connections[d.ordinal()].getSideB() != con.getSideB() || connections[d.ordinal()].getType() != con.getType()) {
onConnect(con.getSideA(), con.getB(), con.getSideB(), con.getType());
((IConnectionCache<IBundledDevice>) con.getB().getBundledConnectionCache()).onConnect(con.getSideB(), con.getA(), con.getSideA(), con.getType());
IConnection<IBundledDevice> con2 = (IConnection<IBundledDevice>) con.getB().getBundledConnectionCache().getConnectionOnSide(con.getSideB());
con = connections[d.ordinal()];
if (con == null)
return;
con.setComplementaryConnection(con2);
con2.setComplementaryConnection(con);
}
} else if (wasConnected) {
con = connections[d.ordinal()];
if (con != null) {
onDisconnect(con.getSideA());
con.getB().getBundledConnectionCache().onDisconnect(con.getSideB());
}
}
}
}
use of com.bluepowermod.api.wire.redstone.IBundledDevice in project BluePower by Qmunity.
the class GateIntegratedCircuit method getBundledDeviceOnSide.
@Override
public IBundledDevice getBundledDeviceOnSide(ForgeDirection side) {
side = new Vec3d(0, 0, 0).add(side).rotate(0, 90 * -getRotation(), 0).toForgeDirection();
IPart p = getCircuitPartOnSide(side);
if (p == null)
return null;
if (p instanceof IBundledDevice)
return (IBundledDevice) p;
return null;
}
Aggregations