Browse Source

Bounds must be set before setting parent.

magicbox-1.5.2
MagicBot 1 year ago
parent
commit
80f2db794f
  1. 2
      src/engine/InterestManagement/HeightMap.java
  2. 9
      src/engine/objects/Zone.java

2
src/engine/InterestManagement/HeightMap.java

@ -208,7 +208,7 @@ public class HeightMap { @@ -208,7 +208,7 @@ public class HeightMap {
Zone heightMapZone;
Zone parentZone;
float worldHeight;
float interpolatedParentTerrainHeight;
// Seafloor is rather flat.

9
src/engine/objects/Zone.java

@ -84,9 +84,11 @@ public class Zone extends AbstractGameObject { @@ -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 { @@ -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 { @@ -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 { @@ -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;

Loading…
Cancel
Save