private void addConduitCores(List<CollidableComponent> result, IConduit con) { CollidableCache cc = CollidableCache.instance; Class<? extends IConduit> type = con.getCollidableType(); if (con.hasConnections()) { for (ForgeDirection dir : con.getExternalConnections()) { result.addAll( cc.getCollidables( cc.createKey( type, getOffset(con.getBaseConduitType(), dir), ForgeDirection.UNKNOWN, false), con)); } for (ForgeDirection dir : con.getConduitConnections()) { result.addAll( cc.getCollidables( cc.createKey( type, getOffset(con.getBaseConduitType(), dir), ForgeDirection.UNKNOWN, false), con)); } } else { result.addAll( cc.getCollidables( cc.createKey( type, getOffset(con.getBaseConduitType(), ForgeDirection.UNKNOWN), ForgeDirection.UNKNOWN, false), con)); } }
@Override public Set<ForgeDirection> getAllConnections() { EnumSet<ForgeDirection> result = EnumSet.noneOf(ForgeDirection.class); for (IConduit con : conduits) { result.addAll(con.getConduitConnections()); } return result; }
@Method(modid = "ImmibisMicroblocks") private void addConnection(ForgeDirection dir, IConduit c, IConduit connectingTo) { if (connectingTo != null) { if (!c.getConduitConnections().contains(dir) && connectingTo.canConnectToConduit(dir, c)) { c.conduitConnectionAdded(dir); } } }
@Override public Set<ForgeDirection> getConnections(Class<? extends IConduit> type) { IConduit con = getConduit(type); if (con != null) { return con.getConduitConnections(); } return null; }
@Method(modid = "ImmibisMicroblocks") private void removeConnection(ForgeDirection dir, IConduit c) { if (c.getConduitConnections().contains(dir)) { c.conduitConnectionRemoved(dir); } }