use of com.bluepowermod.api.connect.IConnectionCache 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.connect.IConnectionCache in project BluePower by Qmunity.
the class RedstoneConnectionCache method recalculateConnections.
@SuppressWarnings("unchecked")
@Override
public void recalculateConnections() {
if (dev.getWorld().isRemote)
return;
IRedstoneDevice self = getSelf();
for (ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) {
boolean wasConnected = connections[d.ordinal()] != null;
RedstoneConnection con = RedConnectionHelper.getNeighbor(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<IRedstoneDevice>) con.getB().getRedstoneConnectionCache()).onConnect(con.getSideB(), con.getA(), con.getSideA(), con.getType());
IConnection<IRedstoneDevice> con2 = (IConnection<IRedstoneDevice>) con.getB().getRedstoneConnectionCache().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().getRedstoneConnectionCache().onDisconnect(con.getSideB());
}
}
}
}
Aggregations