From 1f3dbbb1ec3f39ceab7eccc4d405c5a78d263788 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Sun, 18 Apr 2021 17:42:46 +0200 Subject: [PATCH] Add Region.hasType Add Region.inRegion --- .../de/steamwar/bausystem/region/Region.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java b/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java index 78b24ebc..ff0f20da 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/region/Region.java @@ -95,8 +95,37 @@ public class Region { } public boolean inRegion(Location location, RegionType regionType, RegionExtensionType regionExtensionType) { - // TODO: implement inRegion - return false; + switch (regionType) { + case BUILD: + Point minBPoint = regionExtensionType == RegionExtensionType.EXTENSION ? minPointBuildExtension : minPointBuild; + Point maxBPoint = regionExtensionType == RegionExtensionType.EXTENSION ? maxPointBuildExtension : maxPointBuild; + return inRegion(location, minBPoint, maxBPoint); + case TESTBLOCK: + Point minTBPoint = regionExtensionType == RegionExtensionType.EXTENSION ? minPointTestblockExtension : minPointTestblock; + Point maxTBPoint = regionExtensionType == RegionExtensionType.EXTENSION ? maxPointTestblockExtension : maxPointTestblock; + return inRegion(location, minTBPoint, maxTBPoint); + default: + case NORMAL: + return inRegion(location, minPoint, maxPoint); + } + } + + private boolean inRegion(Location location, Point minPoint, Point maxPoint) { + return location.getBlockX() >= minPoint.getX() && location.getBlockX() < maxPoint.getX() && + location.getBlockY() >= minPoint.getY() && location.getBlockY() < maxPoint.getY() && + location.getBlockZ() >= minPoint.getZ() && location.getBlockZ() < maxPoint.getZ(); + } + + public boolean hasType(RegionType regionType) { + switch (regionType) { + case BUILD: + return prototype != null && prototype.getBuild() != null; + case TESTBLOCK: + return prototype != null && prototype.getTestblock() != null; + default: + case NORMAL: + return true; + } } }