use of buildcraft.robotics.ai.AIRobotGotoBlock 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;
}
}
use of buildcraft.robotics.ai.AIRobotGotoBlock in project LogisticsPipes by RS485.
the class LogisticsRoutingBoardRobot method startTransport.
private void startTransport(LogisticsRoutingBoardRobot target, DockingStation station) {
acceptsItems = false;
targetStationPos = new DoubleCoordinates(station.x(), station.y(), station.z());
targetStationSide = station.side();
startDelegateAI(new AIRobotGotoBlock(robot, station.x() + station.side().offsetX, station.y() + station.side().offsetY, station.z() + station.side().offsetZ));
}
Aggregations