diff --git a/src/engine/InterestManagement/HeightMap.java b/src/engine/InterestManagement/HeightMap.java index 63f629d6..64400671 100644 --- a/src/engine/InterestManagement/HeightMap.java +++ b/src/engine/InterestManagement/HeightMap.java @@ -208,7 +208,7 @@ public class HeightMap { Zone heightMapZone; Zone parentZone; - float worldHeight; + float interpolatedParentTerrainHeight; // Seafloor is rather flat. diff --git a/src/engine/objects/Zone.java b/src/engine/objects/Zone.java index d53087a9..3ff7891e 100644 --- a/src/engine/objects/Zone.java +++ b/src/engine/objects/Zone.java @@ -84,9 +84,11 @@ public class Zone extends AbstractGameObject { this.minLvl = rs.getInt("minLvl"); this.maxLvl = rs.getInt("maxLvl"); + this.setBounds(); + //this needs to be here specifically for new zones created after server boot (e.g. player city zones) - Zone parentZone = ZoneManager.getZoneByUUID(parentZoneID); + Zone parentZone = ZoneManager.getZoneByUUID(parentZoneID); this.setParent(parentZone); if (this.minLvl == 0 && parentZone != null) { @@ -238,8 +240,6 @@ public class Zone extends AbstractGameObject { this.parent = value; this.parentZoneID = (this.parent != null) ? this.parent.getObjectUUID() : 0; - // Zone AABB is set here as it's coordinate space is world requiring a parent. - // Seafloor if (this.parent == null) { @@ -247,7 +247,6 @@ public class Zone extends AbstractGameObject { this.absY = MBServerStatics.SEA_FLOOR_ALTITUDE; this.absZ = this.zCoord; this.seaLevel = 0; - this.setBounds(); return; } @@ -262,8 +261,6 @@ public class Zone extends AbstractGameObject { this.worldAltitude = ZoneManager.caclulateWorldAltitude(this); - this.setBounds(); - if (this.getParent() == null) { this.seaLevel = MBServerStatics.SEA_FLOOR_ALTITUDE; return;