bool MinePlacementRequest(IArea currentArea, Player player, int mineID, ref float xPos, ref float yPos, out string resultMessage) { if (currentArea.AreaType != AreaTypes.System && currentArea.AreaType != AreaTypes.Planet) { resultMessage = "Not in area where mines can be placed.";//Client shouldn't ever see this... return(false); } if (!currentArea.CanAddStructure(player, StructureTypes.Mine, xPos, yPos, out resultMessage)) { return(false); } else if (player.GetActiveShip().Cargo.IsCargoInHolds(mineID) != StatefulCargoTypes.DefensiveMine) { resultMessage = "Mine not found in ship cargo."; return(false); } else if (!currentArea.GetValidStructurePosition(StructureStatManager.GetStats(StructureTypes.Mine), ref xPos, ref yPos)) { resultMessage = "Invalid structure position."; return(false); } resultMessage = "Success"; return(true); }