From c63c5e68962a0e9b928b685c88223ec1e7df5641 Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Fri, 27 Oct 2023 20:38:55 -0500 Subject: [PATCH] work --- src/engine/objects/Building.java | 5 +++-- src/engine/objects/MeshBounds.java | 6 +++--- src/engine/objects/Zone.java | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/engine/objects/Building.java b/src/engine/objects/Building.java index 9fed0913..f5ad448b 100644 --- a/src/engine/objects/Building.java +++ b/src/engine/objects/Building.java @@ -892,7 +892,6 @@ public class Building extends AbstractWorldObject { this.parentZone = ZoneManager.getZoneByUUID(this.parentZoneUUID); this.parentZone.zoneBuildingSet.add(this); - this.updateNavMesh(); // update the navmesh of the parent zone // Lookup building blueprint @@ -1003,6 +1002,8 @@ public class Building extends AbstractWorldObject { if (this.upgradeDateTime != null) BuildingManager.submitUpgradeJob(this); + + this.updateNavMesh(); // update the navmesh of the parent zone } public synchronized boolean setOwner(AbstractCharacter newOwner) { @@ -1537,6 +1538,6 @@ public class Building extends AbstractWorldObject { MeshBounds meshBounds = Bounds.meshBoundsCache.get(this.getMeshUUID()); if(meshBounds != null) - this.parentZone.navMesh.subtract(meshBounds.getArea()); + this.parentZone.navMesh.subtract(meshBounds.getArea(this.loc.x,this.loc.z)); } } diff --git a/src/engine/objects/MeshBounds.java b/src/engine/objects/MeshBounds.java index e6eff752..91603f38 100644 --- a/src/engine/objects/MeshBounds.java +++ b/src/engine/objects/MeshBounds.java @@ -47,10 +47,10 @@ public class MeshBounds { Bounds.meshBoundsCache = DbManager.BuildingQueries.LOAD_MESH_BOUNDS(); } - public Area getArea(){ + public Area getArea(float x, float z){ Polygon area = new Polygon(); - area.addPoint((int) this.minX, (int) this.minZ); - area.addPoint((int) this.maxX, (int) this.maxZ); + area.addPoint((int)(x + this.minX), (int) (z + this.minZ)); + area.addPoint((int)(x + this.maxX), (int)(z + this.maxZ)); return new Area(area); } } diff --git a/src/engine/objects/Zone.java b/src/engine/objects/Zone.java index 1e0f3ff4..ffe0c0e0 100644 --- a/src/engine/objects/Zone.java +++ b/src/engine/objects/Zone.java @@ -190,8 +190,8 @@ public class Zone extends AbstractWorldObject { public void createNavMesh(){ Vector3fImmutable location = this.loc; - int xPoint = (int)(location.x - this.bounds.getHalfExtents().x); - int zPoint = (int) (location.z - this.bounds.getHalfExtents().y); + int xPoint = (int)(this.absX - this.bounds.getHalfExtents().x); + int zPoint = (int) (this.absZ - this.bounds.getHalfExtents().y); int extentsX = (int) (this.bounds.getHalfExtents().x * 2); int extentsZ = (int) (this.bounds.getHalfExtents().y * 2);