diff --git a/build.gradle b/build.gradle index a948a3d..48156aa 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ repositories{ ext{ //the build number that this mod is made for - mindustryVersion = 'v146' + mindustryVersion = 'v147' jabelVersion = "93fde537c7" isWindows = System.getProperty("os.name").toLowerCase().contains("windows") sdkRoot = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT") diff --git a/mod.hjson b/mod.hjson index 7a781e3..e481f6e 100644 --- a/mod.hjson +++ b/mod.hjson @@ -4,6 +4,6 @@ author: "Pointifix" main: "autodrill.AutoDrill" description: "Adds tools for automatically filling resource patches with drills" version: 1.0 -minGameVersion: 136 +minGameVersion: 147 java: true hidden: true diff --git a/src/autodrill/filler/BridgeDrill.java b/src/autodrill/filler/BridgeDrill.java index 5553743..fff7844 100644 --- a/src/autodrill/filler/BridgeDrill.java +++ b/src/autodrill/filler/BridgeDrill.java @@ -29,12 +29,12 @@ public static void fill(Tile tile, Drill drill, Direction direction) { private static void placeDrillsAndBridges(Tile source, Seq tiles, Drill drill, Direction direction) { Point2 directionConfig = new Point2(direction.p.x * 3, direction.p.y * 3); - Seq drillTiles = tiles.copy().filter(BridgeDrill::isDrillTile); - Seq bridgeTiles = tiles.copy().filter(BridgeDrill::isBridgeTile); + Seq drillTiles = tiles.select(BridgeDrill::isDrillTile); + Seq bridgeTiles = tiles.select(BridgeDrill::isBridgeTile); int minOresPerDrill = Core.settings.getInt((drill == Blocks.blastDrill ? "airblast" : (drill == Blocks.laserDrill ? "laser" : (drill == Blocks.pneumaticDrill ? "pneumatic" : "mechanical"))) + "-drill-min-ores"); - drillTiles.filter(t -> { + drillTiles.retainAll(t -> { ObjectIntMap.Entry itemAndCount = Util.countOre(t, drill); if (itemAndCount == null || itemAndCount.key != source.drop() || itemAndCount.value < minOresPerDrill) { @@ -42,13 +42,13 @@ private static void placeDrillsAndBridges(Tile source, Seq tiles, Drill dr } Seq neighbors = Util.getNearbyTiles(t.x, t.y, drill); - neighbors.filter(BridgeDrill::isBridgeTile); + neighbors.retainAll(BridgeDrill::isBridgeTile); for (Tile neighbor : neighbors) { if (bridgeTiles.contains(neighbor)) return true; } - neighbors.filter(n -> { + neighbors.retainAll(n -> { BuildPlan buildPlan = new BuildPlan(n.x, n.y, 0, Blocks.itemBridge); return buildPlan.placeable(Vars.player.team()); }); diff --git a/src/autodrill/filler/OptimizationDrill.java b/src/autodrill/filler/OptimizationDrill.java index 40048bd..d93676b 100644 --- a/src/autodrill/filler/OptimizationDrill.java +++ b/src/autodrill/filler/OptimizationDrill.java @@ -37,7 +37,7 @@ public static void fill(Tile tile, Drill drill, boolean waterExtractorsAndPowerN tilesItemAndCount.put(t, Util.countOre(t, drill)); } - tiles.filter(t -> { + tiles.retainAll(t -> { ObjectIntMap.Entry itemAndCount = tilesItemAndCount.get(t); return itemAndCount != null && itemAndCount.key == floor.itemDrop && itemAndCount.value >= minOresPerDrill; }).sort(t -> { diff --git a/src/autodrill/filler/WallDrill.java b/src/autodrill/filler/WallDrill.java index 1383cb0..8a423c8 100644 --- a/src/autodrill/filler/WallDrill.java +++ b/src/autodrill/filler/WallDrill.java @@ -69,7 +69,7 @@ public static void fill(Tile tile, BeamDrill drill, Direction direction) { } if (ductTiles.isEmpty()) return; - Tile outerMostDuctTile = ductTiles.copy().filter(t -> boreTiles.find(bt -> direction.secondaryAxis(new Point2(bt.x, bt.y)) == direction.secondaryAxis(new Point2(t.x, t.y))) == null).max(t -> -direction.primaryAxis(new Point2(t.x, t.y))); + Tile outerMostDuctTile = ductTiles.select(t -> boreTiles.find(bt -> direction.secondaryAxis(new Point2(bt.x, bt.y)) == direction.secondaryAxis(new Point2(t.x, t.y))) == null).max(t -> -direction.primaryAxis(new Point2(t.x, t.y))); if (outerMostDuctTile == null) return; ductTiles.sort(t -> t.dst2(outerMostDuctTile)); Seq connectingTiles = new Seq<>(); @@ -203,7 +203,7 @@ private static Seq getConnectedWallTiles(Tile tile, Direction direction) { } Seq tilesCopy = tiles.copy(); - tiles.filter(t1 -> { + tiles.retainAll(t1 -> { Point2 pT1 = Util.tileToPoint2(t1); int paT1 = direction.primaryAxis(pT1); int saT1 = direction.secondaryAxis(pT1);