Search in sources :

Example 1 with IConnectionCache

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());
            }
        }
    }
}
Also used : ForgeDirection(net.minecraftforge.common.util.ForgeDirection) IConnection(com.bluepowermod.api.connect.IConnection) IConnectionCache(com.bluepowermod.api.connect.IConnectionCache) IBundledDevice(com.bluepowermod.api.wire.redstone.IBundledDevice)

Example 2 with IConnectionCache

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());
            }
        }
    }
}
Also used : ForgeDirection(net.minecraftforge.common.util.ForgeDirection) IConnection(com.bluepowermod.api.connect.IConnection) IRedstoneDevice(com.bluepowermod.api.wire.redstone.IRedstoneDevice) IConnectionCache(com.bluepowermod.api.connect.IConnectionCache)

Aggregations

IConnection (com.bluepowermod.api.connect.IConnection)2 IConnectionCache (com.bluepowermod.api.connect.IConnectionCache)2 ForgeDirection (net.minecraftforge.common.util.ForgeDirection)2 IBundledDevice (com.bluepowermod.api.wire.redstone.IBundledDevice)1 IRedstoneDevice (com.bluepowermod.api.wire.redstone.IRedstoneDevice)1