Search in sources :

Example 11 with CoreRoutedPipe

use of logisticspipes.pipes.basic.CoreRoutedPipe in project LogisticsPipes by RS485.

the class RequestRoutingLasersPacket method processPacket.

@Override
public void processPacket(EntityPlayer player) {
    LogisticsTileGenericPipe tile = this.getPipe(player.worldObj);
    if (tile == null) {
        return;
    }
    if (tile.pipe instanceof CoreRoutedPipe) {
        IRouter router = ((CoreRoutedPipe) tile.pipe).getRouter();
        //this is here to allow players to manually trigger a network-wide LSA update
        router.forceLsaUpdate();
        List<List<ExitRoute>> exits = router.getRouteTable();
        HashMap<ForgeDirection, ArrayList<ExitRoute>> routers = new HashMap<>();
        for (List<ExitRoute> exit : exits) {
            if (exit == null) {
                continue;
            }
            for (ExitRoute e : exit) {
                if (!routers.containsKey(e.exitOrientation)) {
                    routers.put(e.exitOrientation, new ArrayList<>());
                }
                if (!routers.get(e.exitOrientation).contains(e)) {
                    routers.get(e.exitOrientation).add(e);
                }
            }
        }
        ArrayList<LaserData> lasers = new ArrayList<>();
        firstPipe = true;
        for (final ForgeDirection dir : routers.keySet()) {
            if (dir == ForgeDirection.UNKNOWN) {
                continue;
            }
            handleRouteInDirection(tile, dir, routers.get(dir), lasers, EnumSet.allOf(PipeRoutingConnectionType.class), new Log() {

                @Override
                void log(String log) {
                    if (LPConstants.DEBUG) {
                        System.out.println(dir.name() + ": " + log);
                    }
                }
            });
        }
        lasers = compressLasers(lasers);
        MainProxy.sendPacketToPlayer(PacketHandler.getPacket(RoutingLaserPacket.class).setLasers(lasers), player);
    }
}
Also used : PipeRoutingConnectionType(logisticspipes.routing.PipeRoutingConnectionType) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) CoreRoutedPipe(logisticspipes.pipes.basic.CoreRoutedPipe) IRouter(logisticspipes.routing.IRouter) LogisticsTileGenericPipe(logisticspipes.pipes.basic.LogisticsTileGenericPipe) ForgeDirection(net.minecraftforge.common.util.ForgeDirection) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) List(java.util.List) LaserData(logisticspipes.routing.LaserData) ExitRoute(logisticspipes.routing.ExitRoute)

Example 12 with CoreRoutedPipe

use of logisticspipes.pipes.basic.CoreRoutedPipe in project LogisticsPipes by RS485.

the class RequestSignPacket method processPacket.

@Override
public void processPacket(EntityPlayer player) {
    LogisticsTileGenericPipe pipe = this.getPipe(player.getEntityWorld());
    if (pipe == null) {
        return;
    }
    ((CoreRoutedPipe) pipe.pipe).sendSignData(player);
}
Also used : LogisticsTileGenericPipe(logisticspipes.pipes.basic.LogisticsTileGenericPipe) CoreRoutedPipe(logisticspipes.pipes.basic.CoreRoutedPipe)

Example 13 with CoreRoutedPipe

use of logisticspipes.pipes.basic.CoreRoutedPipe in project LogisticsPipes by RS485.

the class PipeManagerContentPacket method processPacket.

@Override
public void processPacket(EntityPlayer player) {
    LogisticsTileGenericPipe pipe = this.getPipe(player.getEntityWorld());
    if (pipe == null || !(pipe.pipe instanceof CoreRoutedPipe)) {
        return;
    }
    CoreRoutedPipe cPipe = (CoreRoutedPipe) pipe.pipe;
    cPipe.getClientSideOrderManager().clear();
    cPipe.getClientSideOrderManager().addAll(clientOrder);
}
Also used : LogisticsTileGenericPipe(logisticspipes.pipes.basic.LogisticsTileGenericPipe) CoreRoutedPipe(logisticspipes.pipes.basic.CoreRoutedPipe)

Example 14 with CoreRoutedPipe

use of logisticspipes.pipes.basic.CoreRoutedPipe in project LogisticsPipes by RS485.

the class OrdererRefreshRequestPacket method processPacket.

@Override
public void processPacket(EntityPlayer player) {
    int dimension = (getInteger() - (getInteger() % 10)) / 10;
    final LogisticsTileGenericPipe pipe = MainProxy.proxy.getPipeInDimensionAt(dimension, getPosX(), getPosY(), getPosZ(), player);
    if (pipe == null || !(pipe.pipe instanceof CoreRoutedPipe)) {
        return;
    }
    RequestHandler.DisplayOptions option;
    switch(getInteger() % 10) {
        case 0:
            option = RequestHandler.DisplayOptions.Both;
            break;
        case 1:
            option = RequestHandler.DisplayOptions.SupplyOnly;
            break;
        case 2:
            option = RequestHandler.DisplayOptions.CraftOnly;
            break;
        default:
            option = RequestHandler.DisplayOptions.Both;
            break;
    }
    RequestHandler.refresh(player, (CoreRoutedPipe) pipe.pipe, option);
}
Also used : RequestHandler(logisticspipes.request.RequestHandler) LogisticsTileGenericPipe(logisticspipes.pipes.basic.LogisticsTileGenericPipe) CoreRoutedPipe(logisticspipes.pipes.basic.CoreRoutedPipe)

Example 15 with CoreRoutedPipe

use of logisticspipes.pipes.basic.CoreRoutedPipe in project LogisticsPipes by RS485.

the class GuiOpenChassie method processPacket.

@Override
public void processPacket(EntityPlayer player) {
    LogisticsTileGenericPipe pipe = this.getPipe(player.getEntityWorld());
    if (!(pipe.pipe instanceof CoreRoutedPipe)) {
        return;
    }
    NewGuiHandler.getGui(ChassiGuiProvider.class).setFlag(((CoreRoutedPipe) pipe.pipe).getUpgradeManager().hasUpgradeModuleUpgrade()).setSlot(ModulePositionType.IN_PIPE).setPositionInt(0).setPosX(getPosX()).setPosY(getPosY()).setPosZ(getPosZ()).open(player);
}
Also used : LogisticsTileGenericPipe(logisticspipes.pipes.basic.LogisticsTileGenericPipe) CoreRoutedPipe(logisticspipes.pipes.basic.CoreRoutedPipe) ChassiGuiProvider(logisticspipes.network.guis.pipe.ChassiGuiProvider)

Aggregations

CoreRoutedPipe (logisticspipes.pipes.basic.CoreRoutedPipe)68 LogisticsTileGenericPipe (logisticspipes.pipes.basic.LogisticsTileGenericPipe)43 TileEntity (net.minecraft.tileentity.TileEntity)22 ForgeDirection (net.minecraftforge.common.util.ForgeDirection)16 ExitRoute (logisticspipes.routing.ExitRoute)15 ArrayList (java.util.ArrayList)14 LinkedList (java.util.LinkedList)13 IRouter (logisticspipes.routing.IRouter)11 Pair (logisticspipes.utils.tuples.Pair)10 DoubleCoordinates (network.rs485.logisticspipes.world.DoubleCoordinates)10 List (java.util.List)9 HashMap (java.util.HashMap)8 IFilter (logisticspipes.interfaces.routing.IFilter)8 SimpleServiceLocator (logisticspipes.proxy.SimpleServiceLocator)7 Map (java.util.Map)6 PipeRoutingConnectionType (logisticspipes.routing.PipeRoutingConnectionType)6 World (net.minecraft.world.World)6 BitSet (java.util.BitSet)5 Collections (java.util.Collections)5 EnumSet (java.util.EnumSet)5