Mine serialized loc is the tower loc. No need to store offsets in a table to reconstruct this loc.

This commit is contained in:
2023-02-28 10:43:49 -05:00
parent f0f91325ba
commit 7d655bc44b
+6 -27
View File
@@ -54,11 +54,6 @@ public class Mine extends AbstractGameObject {
public GuildTag nationTag;
private final String zoneName;
private Resource production;
private final float latitude;
private final float longitude;
//flags 1: never been claimed (make active).
private final float altitude;
private Guild owningGuild;
private int flags;
private int buildingID;
@@ -80,21 +75,7 @@ public class Mine extends AbstractGameObject {
this.flags = rs.getInt("flags");
int parent = rs.getInt("parent");
this.parentZone = ZoneManager.getZoneByUUID(parent);
if (parentZone != null) {
this.latitude = parentZone.getLoc().x + offsetX;
this.longitude = parentZone.getLoc().z + offsetZ;
this.altitude = parentZone.getLoc().y;
if (this.parentZone.getParent() != null)
this.zoneName = this.parentZone.getParent().getName();
else
this.zoneName = this.parentZone.getName();
} else {
Logger.error("Missing parentZone of ID " + parent);
this.latitude = -1000;
this.longitude = 1000;
this.altitude = 0;
this.zoneName = "Unknown Mine";
}
this.zoneName = this.parentZone.getParent().getName();
this.owningGuild = Guild.getGuild(ownerUID);
Guild nation = null;
@@ -230,9 +211,11 @@ public class Mine extends AbstractGameObject {
writer.putLocalDateTime(mineOpenTime.plusHours(1));
writer.put(mine.isActive ? (byte) 0x01 : (byte) 0x00);
writer.putFloat(mine.latitude);
writer.putFloat(mine.altitude);
writer.putFloat(mine.longitude);
Building mineTower = BuildingManager.getBuilding(mine.buildingID);
writer.putFloat(mineTower.getLoc().x);
writer.putFloat(mineTower.getParentZone().getLoc().y);
writer.putFloat(mineTower.getLoc().z);
writer.putInt(mine.isExpansion() ? mine.mineType.xpacHash : mine.mineType.hash);
writer.putString(mine.guildName);
@@ -369,10 +352,6 @@ public class Mine extends AbstractGameObject {
return this.isActive;
}
public float getAltitude() {
return this.altitude;
}
public Guild getOwningGuild() {
if (this.owningGuild == null)
return Guild.getErrantGuild();