Collision check extracted to method.
This commit is contained in:
@@ -380,6 +380,13 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
|||||||
if (validateSiegeLimits(player, origin, serverCity.getBane()) == false)
|
if (validateSiegeLimits(player, origin, serverCity.getBane()) == false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// Collision check (Removes rubble side effect)
|
||||||
|
|
||||||
|
if (placementCollisionCheck(serverZone, origin, buildingList)){
|
||||||
|
PlaceAssetMsg.sendPlaceAssetError(origin, 3, ""); // Conflict between proposed assets
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Create the siege Building
|
// Create the siege Building
|
||||||
|
|
||||||
siegeBuilding = createStructure(player, msg.getFirstPlacementInfo(), serverZone);
|
siegeBuilding = createStructure(player, msg.getFirstPlacementInfo(), serverZone);
|
||||||
@@ -1311,6 +1318,15 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (placementCollisionCheck(serverZone, origin, placementInfo)){
|
||||||
|
PlaceAssetMsg.sendPlaceAssetError(origin, 3, ""); // Conflict between proposed assets
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean placementCollisionCheck(Zone serverZone, ClientConnection origin, PlacementInfo placementInfo) {
|
||||||
// Overlap check
|
// Overlap check
|
||||||
|
|
||||||
for (Building building : serverZone.zoneBuildingSet) {
|
for (Building building : serverZone.zoneBuildingSet) {
|
||||||
@@ -1338,11 +1354,10 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
|
|||||||
|
|
||||||
|
|
||||||
PlaceAssetMsg.sendPlaceAssetError(origin, 3, ""); // Conflict between proposed assets
|
PlaceAssetMsg.sendPlaceAssetError(origin, 3, ""); // Conflict between proposed assets
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean validateCityBuildingPlacement(Zone serverZone, PlaceAssetMsg msg, ClientConnection origin, PlayerCharacter player, PlacementInfo buildingInfo) {
|
private static boolean validateCityBuildingPlacement(Zone serverZone, PlaceAssetMsg msg, ClientConnection origin, PlayerCharacter player, PlacementInfo buildingInfo) {
|
||||||
|
|||||||
Reference in New Issue
Block a user