diff --git a/core/src/io/anuke/mindustry/ai/Pathfinder.java b/core/src/io/anuke/mindustry/ai/Pathfinder.java index 104669fd58..d34ddee1a0 100644 --- a/core/src/io/anuke/mindustry/ai/Pathfinder.java +++ b/core/src/io/anuke/mindustry/ai/Pathfinder.java @@ -92,7 +92,11 @@ public class Pathfinder implements Runnable{ int x = tile.x, y = tile.y; - tile.getLinkedTiles(t -> tiles[t.x][t.y] = packTile(t)); + tile.getLinkedTiles(t -> { + if(Structs.inBounds(t.x, t.y, tiles)){ + tiles[t.x][t.y] = packTile(t); + } + }); //can't iterate through array so use the map, which should not lead to problems for(PathData[] arr : pathMap){ diff --git a/core/src/io/anuke/mindustry/entities/effect/ItemTransfer.java b/core/src/io/anuke/mindustry/entities/effect/ItemTransfer.java index 69bf90833a..0d8ab641ff 100644 --- a/core/src/io/anuke/mindustry/entities/effect/ItemTransfer.java +++ b/core/src/io/anuke/mindustry/entities/effect/ItemTransfer.java @@ -47,10 +47,8 @@ public class ItemTransfer extends TimedEntity implements DrawTrait{ @Remote(called = Loc.server) public static void transferItemTo(Item item, int amount, float x, float y, Tile tile){ if(tile == null || tile.entity == null || tile.entity.items == null) return; - if(!Units.canInteract(player, tile)) return; for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){ - Time.run(i * 3, () -> create(item, x, y, tile, () -> { - })); + Time.run(i * 3, () -> create(item, x, y, tile, () -> {})); } tile.entity.items.add(item, amount); }