|
|
|
@ -19,6 +19,7 @@ package engine.workthreads;
@@ -19,6 +19,7 @@ package engine.workthreads;
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
import engine.Enum; |
|
|
|
|
import engine.gameManager.BuildingManager; |
|
|
|
|
import engine.gameManager.DbManager; |
|
|
|
|
import engine.gameManager.GuildManager; |
|
|
|
|
import engine.gameManager.ZoneManager; |
|
|
|
@ -53,7 +54,6 @@ public class DestroyCityThread implements Runnable {
@@ -53,7 +54,6 @@ public class DestroyCityThread implements Runnable {
|
|
|
|
|
// Member variable assignment
|
|
|
|
|
|
|
|
|
|
cityZone = city.getParent(); |
|
|
|
|
newParent = cityZone.getParent(); |
|
|
|
|
formerGuild = city.getTOL().getGuild(); |
|
|
|
|
|
|
|
|
|
// Former guild loses it's tree!
|
|
|
|
@ -99,36 +99,15 @@ public class DestroyCityThread implements Runnable {
@@ -99,36 +99,15 @@ public class DestroyCityThread implements Runnable {
|
|
|
|
|
if (cityBuilding.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.BANESTONE)) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
// All buildings are moved to a location relative
|
|
|
|
|
// to their new parent zone
|
|
|
|
|
|
|
|
|
|
localCoords = ZoneManager.worldToLocal(cityBuilding.getLoc(), newParent); |
|
|
|
|
|
|
|
|
|
DbManager.BuildingQueries.MOVE_BUILDING(cityBuilding.getObjectUUID(), newParent.getObjectUUID(), localCoords.x, localCoords.y, localCoords.z); |
|
|
|
|
|
|
|
|
|
// All buildings are re-parented to a zone one node
|
|
|
|
|
// higher in the tree (continent) as we will be
|
|
|
|
|
// deleting the city zone very shortly.
|
|
|
|
|
|
|
|
|
|
if (cityBuilding.getParentZoneID() != newParent.getParentZoneID()) |
|
|
|
|
cityBuilding.setParentZone(newParent); |
|
|
|
|
|
|
|
|
|
// No longer a tree, no longer any protection contract!
|
|
|
|
|
|
|
|
|
|
cityBuilding.setProtectionState(Enum.ProtectionState.NONE); |
|
|
|
|
|
|
|
|
|
// Destroy all remaining city assets
|
|
|
|
|
|
|
|
|
|
if ((cityBuilding.getBlueprint().getBuildingGroup() == Enum.BuildingGroup.BARRACK) |
|
|
|
|
|| (cityBuilding.getBlueprint().isWallPiece()) |
|
|
|
|
|| (cityBuilding.getBlueprint().getBuildingGroup() == Enum.BuildingGroup.SHRINE) |
|
|
|
|
|| (cityBuilding.getBlueprint().getBuildingGroup() == Enum.BuildingGroup.TOL) |
|
|
|
|
|| (cityBuilding.getBlueprint().getBuildingGroup() == Enum.BuildingGroup.SPIRE) |
|
|
|
|
|| (cityBuilding.getBlueprint().getBuildingGroup() == Enum.BuildingGroup.WAREHOUSE)) { |
|
|
|
|
|
|
|
|
|
//destroy all buildings if we are destroying the city itself
|
|
|
|
|
if (cityBuilding.getRank() != -1) |
|
|
|
|
cityBuilding.setRank(-1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(BuildingManager.getBuildingFromCache(cityBuilding.getObjectUUID()) != null){ |
|
|
|
|
cityBuilding.removeFromCache(); |
|
|
|
|
DbManager.BuildingQueries.DELETE_FROM_DATABASE(cityBuilding); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (city.getRealm() != null) |
|
|
|
|