@Override public void updateEntity() { if (parts.size() == 0 && !worldObj.isRemote) { worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.air); worldObj.setTileEntity(xCoord, yCoord, zCoord, null); return; } List<BPPart> removed = new ArrayList<BPPart>(); for (BPPart p : parts) { p.setWorld(worldObj); p.setX(xCoord); p.setY(yCoord); p.setZ(zCoord); if (p instanceof BPPartFace) if (!((BPPartFace) p).canStay()) removed.add(p); } for (BPPart p : removed) removePart(p); removed.clear(); for (BPPart p : parts) p.update(); if (ticks == 5 || ticks % 200 == 0) { shouldReRender = true; } ticks++; }
public void onEntityCollision(Entity entity) { for (BPPart p : parts) { p.setWorld(worldObj); p.setX(xCoord); p.setY(yCoord); p.setZ(zCoord); p.onEntityCollision(entity); // FIXME BLUEPOWER Check if entity is actually colliding } }
public void onNeighborUpdate() { for (BPPart p : parts) { p.setWorld(worldObj); p.setX(xCoord); p.setY(yCoord); p.setZ(zCoord); p.onNeighborUpdate(); } shouldReRender = true; }
public boolean canConnectRedstone(ForgeDirection side) { for (BPPart p : parts) { p.setWorld(worldObj); p.setX(xCoord); p.setY(yCoord); p.setZ(zCoord); if (p instanceof IBPRedstonePart) { ForgeDirection s = side; if (p instanceof IBPFacePart) s = s.getRotation(ForgeDirection.getOrientation(((IBPFacePart) p).getFace())); if (((IBPRedstonePart) p).canConnect(s)) return true; } } return false; }