diff --git a/src/main/java/cam72cam/immersiverailroading/tile/TileRailBase.java b/src/main/java/cam72cam/immersiverailroading/tile/TileRailBase.java index c3c7d81bc..b8b1e3a29 100644 --- a/src/main/java/cam72cam/immersiverailroading/tile/TileRailBase.java +++ b/src/main/java/cam72cam/immersiverailroading/tile/TileRailBase.java @@ -667,7 +667,12 @@ public void update() { break; } for (Facing side : Facing.values()) { - IInventory inventory = getWorld().getInventory(getPos().offset(side)); + Vec3i pos = getPos().offset(side); + if (BlockUtil.isIRRail(getWorld(), pos)) { + // Can't transfer to another rail augment directly + continue; + } + IInventory inventory = getWorld().getInventory(pos); if (inventory != null) { inventory.transferAllTo(freight.cargoItems); } @@ -681,7 +686,12 @@ public void update() { break; } for (Facing side : Facing.values()) { - IInventory inventory = getWorld().getInventory(getPos().offset(side)); + Vec3i pos = getPos().offset(side); + if (BlockUtil.isIRRail(getWorld(), pos)) { + // Can't transfer to another rail augment directly + continue; + } + IInventory inventory = getWorld().getInventory(pos); if (inventory != null) { inventory.transferAllFrom(freight.cargoItems); } @@ -695,7 +705,12 @@ public void update() { break; } for (Facing side : Facing.values()) { - List tanks = getWorld().getTank(getPos().offset(side)); + Vec3i pos = getPos().offset(side); + if (BlockUtil.isIRRail(getWorld(), pos)) { + // Can't transfer to another rail augment directly + continue; + } + List tanks = getWorld().getTank(pos); if (tanks != null) { tanks.forEach(tank -> stock.theTank.drain(tank, 100, false)); } @@ -709,7 +724,12 @@ public void update() { break; } for (Facing side : Facing.values()) { - List tanks = getWorld().getTank(getPos().offset(side)); + Vec3i pos = getPos().offset(side); + if (BlockUtil.isIRRail(getWorld(), pos)) { + // Can't transfer to another rail augment directly + continue; + } + List tanks = getWorld().getTank(pos); if (tanks != null) { tanks.forEach(tank -> stock.theTank.fill(tank, 100, false)); }