From 5211ad0e6bdaf7a3605aee5216a30d325ee89ff2 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Wed, 25 Mar 2026 14:06:12 +0100 Subject: [PATCH] Improve PathRegion.calculateGardenState --- .../meta.json | 5 ++++- .../region/dynamic/path/PathRegion.java | 21 +++++++------------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/00000000-0000-0000-0000-000000000000/meta.json b/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/00000000-0000-0000-0000-000000000000/meta.json index 04ea5b03..d825b000 100644 --- a/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/00000000-0000-0000-0000-000000000000/meta.json +++ b/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/00000000-0000-0000-0000-000000000000/meta.json @@ -1,6 +1,9 @@ { "region_identifier": "SpawnRegion", "tiles": [ - { "tile_x": 0, "tile_z": 0 } + { + "tile_x": 0, + "tile_z": 0 + } ] } \ No newline at end of file diff --git a/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/path/PathRegion.java b/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/path/PathRegion.java index 68756e3f..50e77956 100644 --- a/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/path/PathRegion.java +++ b/BauSystem/BauSystem_RegionDynamic/src/de/steamwar/bausystem/region/dynamic/path/PathRegion.java @@ -29,7 +29,9 @@ import lombok.NonNull; import org.bukkit.Material; import java.io.IOException; +import java.util.Set; import java.util.UUID; +import java.util.stream.Collectors; @RegionConstructorData( identifier = "path", @@ -81,19 +83,12 @@ public class PathRegion extends DynamicRegion { public void calculateGardenState() { garden = false; - for (int x = -1; x <= 1; x++) { - for (int z = -1; z <= 1; z++) { - if (x == 0 && z == 0) continue; - Tile t = tile.add(x, z).orElse(null); - if (t == null) { - return; - } - if (!DynamicRegionSystem.INSTANCE.get(t).getType().isPath()) { - return; - } - } - } - garden = true; + Set neighbours = tile.neighboursRing().collect(Collectors.toSet()); + if (neighbours.size() == 8) return; + garden = neighbours.stream() + .map(DynamicRegionSystem.INSTANCE::get) + .map(Region::getType) + .allMatch(RegionType::isPath); } @Override