destroy and remove form cache and DB all buildinsg within city when its being destroyed
This commit is contained in:
@@ -19,6 +19,7 @@ package engine.workthreads;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import engine.Enum;
|
import engine.Enum;
|
||||||
|
import engine.gameManager.BuildingManager;
|
||||||
import engine.gameManager.DbManager;
|
import engine.gameManager.DbManager;
|
||||||
import engine.gameManager.GuildManager;
|
import engine.gameManager.GuildManager;
|
||||||
import engine.gameManager.ZoneManager;
|
import engine.gameManager.ZoneManager;
|
||||||
@@ -53,7 +54,6 @@ public class DestroyCityThread implements Runnable {
|
|||||||
// Member variable assignment
|
// Member variable assignment
|
||||||
|
|
||||||
cityZone = city.getParent();
|
cityZone = city.getParent();
|
||||||
newParent = cityZone.getParent();
|
|
||||||
formerGuild = city.getTOL().getGuild();
|
formerGuild = city.getTOL().getGuild();
|
||||||
|
|
||||||
// Former guild loses it's tree!
|
// Former guild loses it's tree!
|
||||||
@@ -99,36 +99,15 @@ public class DestroyCityThread implements Runnable {
|
|||||||
if (cityBuilding.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.BANESTONE))
|
if (cityBuilding.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.BANESTONE))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// All buildings are moved to a location relative
|
//destroy all buildings if we are destroying the city itself
|
||||||
// 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)) {
|
|
||||||
|
|
||||||
if (cityBuilding.getRank() != -1)
|
if (cityBuilding.getRank() != -1)
|
||||||
cityBuilding.setRank(-1);
|
cityBuilding.setRank(-1);
|
||||||
|
|
||||||
|
if(BuildingManager.getBuildingFromCache(cityBuilding.getObjectUUID()) != null){
|
||||||
|
cityBuilding.removeFromCache();
|
||||||
|
DbManager.BuildingQueries.DELETE_FROM_DATABASE(cityBuilding);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (city.getRealm() != null)
|
if (city.getRealm() != null)
|
||||||
|
|||||||
Reference in New Issue
Block a user