Search in sources :

Example 1 with IPartUpdateListener

use of uk.co.qmunity.lib.part.IPartUpdateListener in project BluePower by Qmunity.

the class GateIntegratedCircuit method setPart.

public void setPart(int x, int z, IIntegratedCircuitPart part) {
    loadWorld();
    FakeMultipartTileIC tmp = new FakeMultipartTileIC(this);
    tmp.setWorldObj(FakeWorldIC.getInstance());
    tmp.xCoord = x;
    tmp.yCoord = 64;
    tmp.zCoord = z;
    tiles[x][z] = tmp;
    parts[x][z] = part;
    if (part instanceof IPartFace)
        ((IPartFace) part).setFace(ForgeDirection.DOWN);
    tmp.addPart(part);
    for (int x_ = x - 1; x_ <= x + 1; x_++) {
        if (x_ == x)
            continue;
        IPart p = getPart(x_, z);
        if (p != null && p instanceof IPartUpdateListener)
            ((IPartUpdateListener) p).onNeighborBlockChange();
    }
    for (int z_ = z - 1; z_ <= z + 1; z_++) {
        if (z_ == z)
            continue;
        IPart p = getPart(x, z_);
        if (p != null && p instanceof IPartUpdateListener)
            ((IPartUpdateListener) p).onNeighborBlockChange();
    }
    unloadWorld();
}
Also used : IPartUpdateListener(uk.co.qmunity.lib.part.IPartUpdateListener) IPartFace(uk.co.qmunity.lib.part.IPartFace) IPart(uk.co.qmunity.lib.part.IPart)

Example 2 with IPartUpdateListener

use of uk.co.qmunity.lib.part.IPartUpdateListener in project BluePower by Qmunity.

the class GateIntegratedCircuit method doLogic.

// Logic and interaction
@Override
public void doLogic() {
    loadWorld();
    IPart part = getPart(0, (getSize() - 1) / 2);
    if (part instanceof IPartUpdateListener)
        ((IPartUpdateListener) part).onNeighborBlockChange();
    part = getPart(getSize() - 1, (getSize() - 1) / 2);
    if (part instanceof IPartUpdateListener)
        ((IPartUpdateListener) part).onNeighborBlockChange();
    part = getPart((getSize() - 1) / 2, 0);
    if (part instanceof IPartUpdateListener)
        ((IPartUpdateListener) part).onNeighborBlockChange();
    part = getPart((getSize() - 1) / 2, getSize() - 1);
    if (part instanceof IPartUpdateListener)
        ((IPartUpdateListener) part).onNeighborBlockChange();
    unloadWorld();
}
Also used : IPartUpdateListener(uk.co.qmunity.lib.part.IPartUpdateListener) IPart(uk.co.qmunity.lib.part.IPart)

Aggregations

IPart (uk.co.qmunity.lib.part.IPart)2 IPartUpdateListener (uk.co.qmunity.lib.part.IPartUpdateListener)2 IPartFace (uk.co.qmunity.lib.part.IPartFace)1