fixed facility occupation recognition

This commit is contained in:
Fate-JH 2024-11-14 00:44:22 -05:00
parent d03954d6a6
commit 9302c1beae
2 changed files with 24 additions and 4 deletions

View file

@ -999,10 +999,17 @@ class ChatOperations(
private def captureBaseCurrSoi(
session: Session
): Iterable[Building] = {
val charId = session.player.CharId
session.zone.Buildings.values.filter { building =>
building.PlayersInSOI.exists(_.CharId == charId)
}
val player = session.player
val positionxy = player.Position.xy
session
.zone
.blockMap
.sector(player)
.buildingList
.filter { building =>
val radius = building.Definition.SOIRadius
Vector3.DistanceSquared(building.Position.xy, positionxy) < radius * radius
}
}
private def captureBaseParamFaction(

View file

@ -17,6 +17,7 @@ import net.psforever.objects.serverobject.tube.SpawnTube
import net.psforever.objects.serverobject.turret.auto.AutomatedTurret
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry, VehicleSource}
import net.psforever.objects.vital.{InGameHistory, IncarnationActivity, ReconstructionActivity, SpawningActivity}
import net.psforever.objects.zones.blockmap.BlockMapEntity
import net.psforever.packet.game.{CampaignStatistic, ChangeFireStateMessage_Start, HackState7, MailMessage, ObjectDetectedMessage, SessionStatistic, TriggeredSound}
import net.psforever.services.chat.DefaultChannel
@ -159,6 +160,18 @@ object ZoningOperations {
}
}
def findBuildingsBySoiOccupancy(zone: Zone, obj: PlanetSideGameObject with BlockMapEntity): List[Building] = {
val positionxy = obj.Position.xy
zone
.blockMap
.sector(obj)
.buildingList
.filter { building =>
val radius = building.Definition.SOIRadius
Vector3.DistanceSquared(building.Position.xy, positionxy) < radius * radius
}
}
def findBuildingsBySoiOccupancy(zone: Zone, position: Vector3): List[Building] = {
val positionxy = position.xy
zone