mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-07-14 16:04:43 +00:00
not necessarily a part of the event bus generalization progress, just have wanted to move these files into this subdirectory for a long time
This commit is contained in:
parent
f3fedaf55d
commit
1507b91f5e
9 changed files with 33 additions and 26 deletions
|
|
@ -5,7 +5,8 @@ import akka.actor.{ActorContext, typed}
|
||||||
import net.psforever.objects.serverobject.affinity.FactionAffinity
|
import net.psforever.objects.serverobject.affinity.FactionAffinity
|
||||||
import net.psforever.objects.serverobject.interior.Sidedness.OutsideOf
|
import net.psforever.objects.serverobject.interior.Sidedness.OutsideOf
|
||||||
import net.psforever.objects.{PlanetSideGameObject, Tool, Vehicle}
|
import net.psforever.objects.{PlanetSideGameObject, Tool, Vehicle}
|
||||||
import net.psforever.objects.vehicles.{CargoBehavior, MountableWeapons}
|
import net.psforever.objects.vehicles.MountableWeapons
|
||||||
|
import net.psforever.objects.vehicles.control.CargoBehavior
|
||||||
import net.psforever.objects.vital.InGameHistory
|
import net.psforever.objects.vital.InGameHistory
|
||||||
import net.psforever.packet.game.{DismountVehicleCargoMsg, GenericObjectActionMessage, InventoryStateMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectAttachMessage, ObjectDetachMessage, PlanetsideAttributeMessage}
|
import net.psforever.packet.game.{DismountVehicleCargoMsg, GenericObjectActionMessage, InventoryStateMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectAttachMessage, ObjectDetachMessage, PlanetsideAttributeMessage}
|
||||||
import net.psforever.services.base.CachedEnvelope
|
import net.psforever.services.base.CachedEnvelope
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,11 @@ import net.psforever.objects.serverobject.mount.Seat
|
||||||
import net.psforever.objects.serverobject.tube.SpawnTube
|
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.vehicles.control.{CargoBehavior, CarrierBehavior}
|
||||||
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.objects.zones.blockmap.BlockMapEntity
|
||||||
import net.psforever.packet.game.GenericAction.FirstPersonViewWithEffect
|
import net.psforever.packet.game.GenericAction.FirstPersonViewWithEffect
|
||||||
import net.psforever.packet.game.{CampaignStatistic, ChangeFireStateMessage_Start, CloudInfo, GenericActionMessage, GenericObjectActionEnum, HackState7, MailMessage, ObjectDetectedMessage, SessionStatistic, StormInfo, TriggeredSound, TrainingZoneMessage, WeatherMessage}
|
import net.psforever.packet.game.{CampaignStatistic, ChangeFireStateMessage_Start, CloudInfo, GenericActionMessage, GenericObjectActionEnum, HackState7, MailMessage, ObjectDetectedMessage, SessionStatistic, StormInfo, TrainingZoneMessage, TriggeredSound, WeatherMessage}
|
||||||
import net.psforever.services.avatar.support.{CorpseEnvelope, ReleaseEnvelope}
|
import net.psforever.services.avatar.support.{CorpseEnvelope, ReleaseEnvelope}
|
||||||
import net.psforever.services.base.envelope.MessageEnvelope
|
import net.psforever.services.base.envelope.MessageEnvelope
|
||||||
import net.psforever.services.base.message.{GenericObjectAction, ObjectDelete, PlanetsideAttribute, SendResponse}
|
import net.psforever.services.base.message.{GenericObjectAction, ObjectDelete, PlanetsideAttribute, SendResponse}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
||||||
import net.psforever.objects.serverobject.transfer.TransferContainer
|
import net.psforever.objects.serverobject.transfer.TransferContainer
|
||||||
import net.psforever.objects.serverobject.structures.WarpGate
|
import net.psforever.objects.serverobject.structures.WarpGate
|
||||||
import net.psforever.objects.vehicles._
|
import net.psforever.objects.vehicles._
|
||||||
|
import net.psforever.objects.vehicles.control.CargoBehavior
|
||||||
import net.psforever.objects.zones.Zone
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{ChatMsg, FrameVehicleStateMessage, GenericObjectActionEnum, HackMessage, HackState, HackState1, HackState7, TriggeredSound, VehicleStateMessage}
|
import net.psforever.packet.game.{ChatMsg, FrameVehicleStateMessage, GenericObjectActionEnum, HackMessage, HackState, HackState1, HackState7, TriggeredSound, VehicleStateMessage}
|
||||||
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
// Copyright (c) 2020 PSForever
|
package net.psforever.objects.vehicles.control
|
||||||
package net.psforever.objects.vehicles
|
|
||||||
|
|
||||||
import akka.actor.{ActorRef, Cancellable}
|
import akka.actor.{ActorRef, Cancellable}
|
||||||
|
import akka.actor.typed.scaladsl.adapter._
|
||||||
|
|
||||||
import net.psforever.actors.commands.NtuCommand
|
import net.psforever.actors.commands.NtuCommand
|
||||||
import net.psforever.actors.zone.BuildingActor
|
import net.psforever.actors.zone.BuildingActor
|
||||||
import net.psforever.objects.serverobject.deploy.Deployment
|
import net.psforever.objects.serverobject.deploy.Deployment
|
||||||
|
|
@ -10,7 +11,6 @@ import net.psforever.objects.serverobject.structures.WarpGate
|
||||||
import net.psforever.objects.serverobject.transfer.{TransferBehavior, TransferContainer}
|
import net.psforever.objects.serverobject.transfer.{TransferBehavior, TransferContainer}
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.types.DriveState
|
import net.psforever.types.DriveState
|
||||||
import akka.actor.typed.scaladsl.adapter._
|
|
||||||
import net.psforever.objects.serverobject.transfer.TransferContainer.TransferMaterial
|
import net.psforever.objects.serverobject.transfer.TransferContainer.TransferMaterial
|
||||||
import net.psforever.packet.game.PlanetsideAttributeMessage
|
import net.psforever.packet.game.PlanetsideAttributeMessage
|
||||||
import net.psforever.services.base.envelope.MessageEnvelope
|
import net.psforever.services.base.envelope.MessageEnvelope
|
||||||
|
|
@ -21,8 +21,8 @@ import scala.concurrent.duration._
|
||||||
|
|
||||||
trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior {
|
trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior {
|
||||||
var panelAnimationFunc: () => Unit = NoCharge
|
var panelAnimationFunc: () => Unit = NoCharge
|
||||||
var ntuChargingTick: Cancellable = Default.Cancellable
|
var ntuChargingTick: Cancellable = Default.Cancellable
|
||||||
findChargeTargetFunc = Vehicles.FindANTChargingSource
|
findChargeTargetFunc = Vehicles.FindANTChargingSource
|
||||||
findDischargeTargetFunc = Vehicles.FindANTDischargingTarget
|
findDischargeTargetFunc = Vehicles.FindANTDischargingTarget
|
||||||
|
|
||||||
def TransferMaterial: TransferMaterial = Ntu.Nanites
|
def TransferMaterial: TransferMaterial = Ntu.Nanites
|
||||||
|
|
@ -32,7 +32,7 @@ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior {
|
||||||
def antBehavior: Receive = storageBehavior.orElse(transferBehavior)
|
def antBehavior: Receive = storageBehavior.orElse(transferBehavior)
|
||||||
|
|
||||||
def ActivatePanelsForChargingEvent(vehicle: NtuContainer): Unit = {
|
def ActivatePanelsForChargingEvent(vehicle: NtuContainer): Unit = {
|
||||||
val obj = ChargeTransferObject
|
val obj = ChargeTransferObject
|
||||||
val zone = obj.Zone
|
val zone = obj.Zone
|
||||||
zone.VehicleEvents ! MessageEnvelope(
|
zone.VehicleEvents ! MessageEnvelope(
|
||||||
zone.id,
|
zone.id,
|
||||||
|
|
@ -42,7 +42,7 @@ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior {
|
||||||
|
|
||||||
/** Charging */
|
/** Charging */
|
||||||
def StartNtuChargingEvent(vehicle: NtuContainer): Unit = {
|
def StartNtuChargingEvent(vehicle: NtuContainer): Unit = {
|
||||||
val obj = ChargeTransferObject
|
val obj = ChargeTransferObject
|
||||||
val zone = obj.Zone
|
val zone = obj.Zone
|
||||||
zone.VehicleEvents ! MessageEnvelope(
|
zone.VehicleEvents ! MessageEnvelope(
|
||||||
zone.id,
|
zone.id,
|
||||||
|
|
@ -188,7 +188,8 @@ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior {
|
||||||
transferTarget match {
|
transferTarget match {
|
||||||
case Some(silo: ResourceSilo) =>
|
case Some(silo: ResourceSilo) =>
|
||||||
scala.math.min(
|
scala.math.min(
|
||||||
scala.math.min(silo.MaxNtuCapacitor / silo.Definition.ChargeTime.toSeconds.toFloat, chargeable.NtuCapacitor),
|
scala.math
|
||||||
|
.min(silo.MaxNtuCapacitor / silo.Definition.ChargeTime.toSeconds.toFloat, chargeable.NtuCapacitor),
|
||||||
max
|
max
|
||||||
)
|
)
|
||||||
case _ =>
|
case _ =>
|
||||||
|
|
@ -208,9 +209,11 @@ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior {
|
||||||
|
|
||||||
def HandleNtuGrant(sender: ActorRef, src: NtuContainer, amount: Float): Unit = {
|
def HandleNtuGrant(sender: ActorRef, src: NtuContainer, amount: Float): Unit = {
|
||||||
val obj = ChargeTransferObject
|
val obj = ChargeTransferObject
|
||||||
if (obj.DeploymentState == DriveState.Deployed &&
|
if (
|
||||||
transferEvent == TransferBehavior.Event.Charging &&
|
obj.DeploymentState == DriveState.Deployed &&
|
||||||
ReceiveAndDepositUntilFull(obj, amount)) {
|
transferEvent == TransferBehavior.Event.Charging &&
|
||||||
|
ReceiveAndDepositUntilFull(obj, amount)
|
||||||
|
) {
|
||||||
panelAnimationFunc()
|
panelAnimationFunc()
|
||||||
} else {
|
} else {
|
||||||
TryStopChargingEvent(obj)
|
TryStopChargingEvent(obj)
|
||||||
|
|
@ -1,19 +1,20 @@
|
||||||
// Copyright (c) 2021 PSForever
|
// Copyright (c) 2021 PSForever
|
||||||
package net.psforever.objects.vehicles
|
package net.psforever.objects.vehicles.control
|
||||||
|
|
||||||
import akka.actor.ActorRef
|
import akka.actor.ActorRef
|
||||||
import akka.actor.typed.scaladsl.adapter._
|
import akka.actor.typed.scaladsl.adapter._
|
||||||
import net.psforever.actors.commands.NtuCommand
|
import net.psforever.actors.commands.NtuCommand
|
||||||
import net.psforever.actors.zone.BuildingActor
|
import net.psforever.actors.zone.BuildingActor
|
||||||
import net.psforever.objects.{NtuContainer, NtuContainerDefinition, _}
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.definition.ObjectDefinition
|
import net.psforever.objects.definition.ObjectDefinition
|
||||||
import net.psforever.objects.equipment.EquipmentSlot
|
import net.psforever.objects.equipment.EquipmentSlot
|
||||||
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
||||||
import net.psforever.objects.serverobject.structures.WarpGate
|
import net.psforever.objects.serverobject.structures.WarpGate
|
||||||
import net.psforever.objects.serverobject.transfer.{TransferBehavior, TransferContainer}
|
import net.psforever.objects.serverobject.transfer.{TransferBehavior, TransferContainer}
|
||||||
|
import net.psforever.objects.vehicles.VehicleSubsystem
|
||||||
import net.psforever.services.base.envelope.MessageEnvelope
|
import net.psforever.services.base.envelope.MessageEnvelope
|
||||||
import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID, Vector3}
|
|
||||||
import net.psforever.services.vehicle.VehicleAction
|
import net.psforever.services.vehicle.VehicleAction
|
||||||
|
import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID, Vector3}
|
||||||
|
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright (c) 2020 PSForever
|
// Copyright (c) 2020 PSForever
|
||||||
package net.psforever.objects.vehicles
|
package net.psforever.objects.vehicles.control
|
||||||
|
|
||||||
import akka.actor.Actor
|
import akka.actor.Actor
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
|
|
@ -3,7 +3,7 @@ package net.psforever.objects.vehicles.control
|
||||||
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.serverobject.damage.{Damageable, DamageableVehicle}
|
import net.psforever.objects.serverobject.damage.{Damageable, DamageableVehicle}
|
||||||
import net.psforever.objects.vehicles.{Cargo, CarrierBehavior}
|
import net.psforever.objects.vehicles.Cargo
|
||||||
import net.psforever.objects.vital.interaction.DamageResult
|
import net.psforever.objects.vital.interaction.DamageResult
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
// Copyright (c) 2021 PSForever
|
// Copyright (c) 2021 PSForever
|
||||||
package net.psforever.objects.vehicles
|
package net.psforever.objects.vehicles.control
|
||||||
|
|
||||||
import akka.actor.{Actor, Cancellable}
|
import akka.actor.{Actor, Cancellable}
|
||||||
import net.psforever.actors.zone.ZoneActor
|
import net.psforever.actors.zone.ZoneActor
|
||||||
import net.psforever.objects.zones.Zone
|
|
||||||
import net.psforever.objects._
|
import net.psforever.objects._
|
||||||
import net.psforever.objects.sourcing.VehicleSource
|
import net.psforever.objects.sourcing.VehicleSource
|
||||||
|
import net.psforever.objects.vehicles.Cargo
|
||||||
import net.psforever.objects.vital.VehicleCargoMountActivity
|
import net.psforever.objects.vital.VehicleCargoMountActivity
|
||||||
|
import net.psforever.objects.zones.Zone
|
||||||
import net.psforever.packet.game.{CargoMountPointStatusMessage, ObjectAttachMessage, ObjectDetachMessage, PlanetsideAttributeMessage}
|
import net.psforever.packet.game.{CargoMountPointStatusMessage, ObjectAttachMessage, ObjectDetachMessage, PlanetsideAttributeMessage}
|
||||||
import net.psforever.types.{BailType, CargoStatus, PlanetSideGUID, Vector3}
|
|
||||||
import net.psforever.services.base.envelope.MessageEnvelope
|
import net.psforever.services.base.envelope.MessageEnvelope
|
||||||
import net.psforever.services.base.message.SendResponse
|
import net.psforever.services.base.message.SendResponse
|
||||||
import net.psforever.services.vehicle.VehicleAction
|
import net.psforever.services.vehicle.VehicleAction
|
||||||
|
import net.psforever.types.{BailType, CargoStatus, PlanetSideGUID, Vector3}
|
||||||
|
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
||||||
|
|
@ -71,12 +71,11 @@ object BundledEnvelope {
|
||||||
if (in.isEmpty) {
|
if (in.isEmpty) {
|
||||||
out
|
out
|
||||||
} else {
|
} else {
|
||||||
val first :: remainder = in
|
in.head match {
|
||||||
first match {
|
|
||||||
case bundle: BundledEnvelope =>
|
case bundle: BundledEnvelope =>
|
||||||
unwind(bundle.msgs ++ remainder, out)
|
unwind(bundle.msgs ++ in.tail, out)
|
||||||
case _ =>
|
case first =>
|
||||||
unwind(remainder, out :+ first)
|
unwind(in.tail, out :+ first)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue