mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-07-16 08:55:18 +00:00
fixed facility occupation recognition
This commit is contained in:
parent
d03954d6a6
commit
9302c1beae
2 changed files with 24 additions and 4 deletions
|
|
@ -999,10 +999,17 @@ class ChatOperations(
|
||||||
private def captureBaseCurrSoi(
|
private def captureBaseCurrSoi(
|
||||||
session: Session
|
session: Session
|
||||||
): Iterable[Building] = {
|
): Iterable[Building] = {
|
||||||
val charId = session.player.CharId
|
val player = session.player
|
||||||
session.zone.Buildings.values.filter { building =>
|
val positionxy = player.Position.xy
|
||||||
building.PlayersInSOI.exists(_.CharId == charId)
|
session
|
||||||
}
|
.zone
|
||||||
|
.blockMap
|
||||||
|
.sector(player)
|
||||||
|
.buildingList
|
||||||
|
.filter { building =>
|
||||||
|
val radius = building.Definition.SOIRadius
|
||||||
|
Vector3.DistanceSquared(building.Position.xy, positionxy) < radius * radius
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private def captureBaseParamFaction(
|
private def captureBaseParamFaction(
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import net.psforever.objects.serverobject.tube.SpawnTube
|
||||||
import net.psforever.objects.serverobject.turret.auto.AutomatedTurret
|
import net.psforever.objects.serverobject.turret.auto.AutomatedTurret
|
||||||
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry, VehicleSource}
|
import net.psforever.objects.sourcing.{PlayerSource, SourceEntry, VehicleSource}
|
||||||
import net.psforever.objects.vital.{InGameHistory, IncarnationActivity, ReconstructionActivity, SpawningActivity}
|
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.packet.game.{CampaignStatistic, ChangeFireStateMessage_Start, HackState7, MailMessage, ObjectDetectedMessage, SessionStatistic, TriggeredSound}
|
||||||
import net.psforever.services.chat.DefaultChannel
|
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] = {
|
def findBuildingsBySoiOccupancy(zone: Zone, position: Vector3): List[Building] = {
|
||||||
val positionxy = position.xy
|
val positionxy = position.xy
|
||||||
zone
|
zone
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue