Search in sources :

Example 1 with ItemInsertionAIRobot

use of logisticspipes.proxy.buildcraft.robots.ai.ItemInsertionAIRobot in project LogisticsPipes by RS485.

the class LogisticsRoutingBoardRobot method insertIntoPipe.

private void insertIntoPipe() {
    TileEntity tile = targetStationPos.getTileEntity(robot.worldObj);
    if (tile instanceof LogisticsTileGenericPipe) {
        startDelegateAI(new ItemInsertionAIRobot(robot, (LogisticsTileGenericPipe) tile, this, targetStationSide.getOpposite()));
    } else {
        dropAndClear();
        startDelegateAI(new AIRobotGotoStation(robot, robot.getLinkedStation()));
        targetStationPos = null;
    }
}
Also used : LogisticsPowerJunctionTileEntity(logisticspipes.blocks.powertile.LogisticsPowerJunctionTileEntity) TileEntity(net.minecraft.tileentity.TileEntity) ItemInsertionAIRobot(logisticspipes.proxy.buildcraft.robots.ai.ItemInsertionAIRobot) AIRobotGotoStation(buildcraft.robotics.ai.AIRobotGotoStation) LogisticsTileGenericPipe(logisticspipes.pipes.basic.LogisticsTileGenericPipe)

Example 2 with ItemInsertionAIRobot

use of logisticspipes.proxy.buildcraft.robots.ai.ItemInsertionAIRobot in project LogisticsPipes by RS485.

the class LogisticsRoutingBoardRobot method delegateAIEnded.

@Override
public void delegateAIEnded(AIRobot ai) {
    super.delegateAIEnded(ai);
    if (ai instanceof AIRobotGotoBlock) {
        if (!ai.success()) {
            dropAndClear();
            startDelegateAI(new AIRobotGotoStation(robot, robot.getLinkedStation()));
        } else {
            startDelegateAI(new AIRobotStraightMoveTo(robot, (float) targetStationPos.getXCoord() + 0.5F + targetStationSide.offsetX * 0.5F, (float) targetStationPos.getYCoord() + 0.5F + targetStationSide.offsetY * 0.5F, (float) targetStationPos.getZCoord() + 0.5F + targetStationSide.offsetZ * 0.5F));
        }
    } else if (ai instanceof AIRobotStraightMoveTo) {
        if (!ai.success()) {
            dropAndClear();
            startDelegateAI(new AIRobotGotoStation(robot, robot.getLinkedStation()));
        } else {
            insertIntoPipe();
        }
    } else if (ai instanceof ItemInsertionAIRobot) {
        for (int i = 0; i < robot.getSizeInventory(); i++) {
            robot.setInventorySlotContents(i, null);
        }
        if (!ai.success()) {
            dropAndClear();
        } else {
            items.clear();
        }
        startDelegateAI(new AIRobotGotoStation(robot, robot.getLinkedStation()));
        targetStationPos = null;
    }
}
Also used : ItemInsertionAIRobot(logisticspipes.proxy.buildcraft.robots.ai.ItemInsertionAIRobot) AIRobotStraightMoveTo(buildcraft.robotics.ai.AIRobotStraightMoveTo) AIRobotGotoStation(buildcraft.robotics.ai.AIRobotGotoStation) AIRobotGotoBlock(buildcraft.robotics.ai.AIRobotGotoBlock)

Aggregations

AIRobotGotoStation (buildcraft.robotics.ai.AIRobotGotoStation)2 ItemInsertionAIRobot (logisticspipes.proxy.buildcraft.robots.ai.ItemInsertionAIRobot)2 AIRobotGotoBlock (buildcraft.robotics.ai.AIRobotGotoBlock)1 AIRobotStraightMoveTo (buildcraft.robotics.ai.AIRobotStraightMoveTo)1 LogisticsPowerJunctionTileEntity (logisticspipes.blocks.powertile.LogisticsPowerJunctionTileEntity)1 LogisticsTileGenericPipe (logisticspipes.pipes.basic.LogisticsTileGenericPipe)1 TileEntity (net.minecraft.tileentity.TileEntity)1