From 726036473252ec89d5a7421cbeb1fb571a1ccdda Mon Sep 17 00:00:00 2001 From: annguyen2k8 Date: Tue, 29 Jul 2025 23:14:07 +0700 Subject: [PATCH] Update for Mindustry v8 --- .vscode/settings.json | 3 +++ build.gradle | 4 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- mod.hjson | 2 +- src/autodrill/filler/BridgeDrill.java | 12 +++++------- src/autodrill/filler/Direction.java | 12 ++++-------- src/autodrill/filler/OptimizationDrill.java | 2 +- src/autodrill/filler/Util.java | 10 +++++++--- src/autodrill/filler/WallDrill.java | 16 ++++++---------- 9 files changed, 30 insertions(+), 33 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e0f15db --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic" +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index a948a3d..18a5e7c 100644 --- a/build.gradle +++ b/build.gradle @@ -15,8 +15,8 @@ repositories{ ext{ //the build number that this mod is made for - mindustryVersion = 'v146' - jabelVersion = "93fde537c7" + mindustryVersion = 'v150' + jabelVersion = "0.7.0" isWindows = System.getProperty("os.name").toLowerCase().contains("windows") sdkRoot = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT") } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661..070cb70 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/mod.hjson b/mod.hjson index 7a781e3..9a2943f 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: 149 java: true hidden: true diff --git a/src/autodrill/filler/BridgeDrill.java b/src/autodrill/filler/BridgeDrill.java index 5553743..92d62e0 100644 --- a/src/autodrill/filler/BridgeDrill.java +++ b/src/autodrill/filler/BridgeDrill.java @@ -13,8 +13,6 @@ import java.util.InputMismatchException; -import static arc.Core.bundle; - public class BridgeDrill { public static void fill(Tile tile, Drill drill, Direction direction) { if (drill.size != 2) throw new InputMismatchException("Drill must have a size of 2"); @@ -29,12 +27,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 = Util.filterTiles(tiles.copy(), BridgeDrill::isDrillTile); + Seq bridgeTiles = Util.filterTiles(tiles.copy(), 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 -> { + Util.filterTiles(drillTiles, t -> { ObjectIntMap.Entry itemAndCount = Util.countOre(t, drill); if (itemAndCount == null || itemAndCount.key != source.drop() || itemAndCount.value < minOresPerDrill) { @@ -42,13 +40,13 @@ private static void placeDrillsAndBridges(Tile source, Seq tiles, Drill dr } Seq neighbors = Util.getNearbyTiles(t.x, t.y, drill); - neighbors.filter(BridgeDrill::isBridgeTile); + Util.filterTiles(neighbors, BridgeDrill::isBridgeTile); for (Tile neighbor : neighbors) { if (bridgeTiles.contains(neighbor)) return true; } - neighbors.filter(n -> { + Util.filterTiles(neighbors, n -> { BuildPlan buildPlan = new BuildPlan(n.x, n.y, 0, Blocks.itemBridge); return buildPlan.placeable(Vars.player.team()); }); diff --git a/src/autodrill/filler/Direction.java b/src/autodrill/filler/Direction.java index deeb822..b635a8e 100644 --- a/src/autodrill/filler/Direction.java +++ b/src/autodrill/filler/Direction.java @@ -26,18 +26,14 @@ public int secondaryAxis(Point2 p) { public static Direction getOpposite(Direction direction) { switch (direction) { - case RIGHT -> { + case RIGHT: return LEFT; - } - case UP -> { + case UP: return DOWN; - } - case LEFT -> { + case LEFT: return RIGHT; - } - default -> { + default: return UP; - } } } } diff --git a/src/autodrill/filler/OptimizationDrill.java b/src/autodrill/filler/OptimizationDrill.java index 40048bd..8ccf96e 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 -> { + Util.filterTiles(tiles, 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/Util.java b/src/autodrill/filler/Util.java index 2d4e76e..30e2bac 100644 --- a/src/autodrill/filler/Util.java +++ b/src/autodrill/filler/Util.java @@ -1,6 +1,6 @@ package autodrill.filler; -import arc.Core; +import arc.func.Boolf; import arc.math.geom.Point2; import arc.math.geom.Rect; import arc.struct.ObjectIntMap; @@ -8,7 +8,6 @@ import arc.struct.Seq; import mindustry.Vars; import mindustry.content.Blocks; -import mindustry.gen.Call; import mindustry.type.Item; import mindustry.world.Block; import mindustry.world.Build; @@ -16,7 +15,6 @@ import mindustry.world.Tile; import mindustry.world.blocks.production.Drill; -import static arc.Core.bundle; import static mindustry.Vars.world; public class Util { @@ -151,4 +149,10 @@ protected static Rect getBlockRect(Tile tile, Block block) { protected static Point2 tileToPoint2(Tile tile) { return new Point2(tile.x, tile.y); } + + // Fixed: Deprecated methods removed by Anuke + // https://github.com/Anuken/Arc/commit/7d6e89dffda6b7560c5a81d825e676aa526c230d + protected static Seq filterTiles(Seq tiles, Boolf predicate){ + return tiles.removeAll(e -> !predicate.get(e)); + } } diff --git a/src/autodrill/filler/WallDrill.java b/src/autodrill/filler/WallDrill.java index 1383cb0..9942fc9 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 = Util.filterTiles(ductTiles.copy(), 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 -> { + Util.filterTiles(tiles, t1 -> { Point2 pT1 = Util.tileToPoint2(t1); int paT1 = direction.primaryAxis(pT1); int saT1 = direction.secondaryAxis(pT1); @@ -225,18 +225,14 @@ private static Point2 getDirectionOffset(Direction direction, Block block) { int offset2 = block.size / 2; switch (direction) { - case RIGHT -> { + case DOWN: return new Point2(-offset2, 0); - } - case UP -> { + case UP: return new Point2(0, -offset2); - } - case LEFT -> { + case LEFT: return new Point2(offset1, 0); - } - default -> { + default: return new Point2(0, offset1); - } } } }