diff --git a/src/main/scala/net/psforever/actors/session/support/SessionMountHandlers.scala b/src/main/scala/net/psforever/actors/session/support/SessionMountHandlers.scala index e8896a491..fe5a674b3 100644 --- a/src/main/scala/net/psforever/actors/session/support/SessionMountHandlers.scala +++ b/src/main/scala/net/psforever/actors/session/support/SessionMountHandlers.scala @@ -5,7 +5,8 @@ import akka.actor.{ActorContext, typed} import net.psforever.objects.serverobject.affinity.FactionAffinity import net.psforever.objects.serverobject.interior.Sidedness.OutsideOf 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.packet.game.{DismountVehicleCargoMsg, GenericObjectActionMessage, InventoryStateMessage, MountVehicleCargoMsg, MountVehicleMsg, ObjectAttachMessage, ObjectDetachMessage, PlanetsideAttributeMessage} import net.psforever.services.base.CachedEnvelope diff --git a/src/main/scala/net/psforever/actors/session/support/ZoningOperations.scala b/src/main/scala/net/psforever/actors/session/support/ZoningOperations.scala index 9755017f0..f99843679 100644 --- a/src/main/scala/net/psforever/actors/session/support/ZoningOperations.scala +++ b/src/main/scala/net/psforever/actors/session/support/ZoningOperations.scala @@ -18,10 +18,11 @@ import net.psforever.objects.serverobject.mount.Seat 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.vehicles.control.{CargoBehavior, CarrierBehavior} import net.psforever.objects.vital.{InGameHistory, IncarnationActivity, ReconstructionActivity, SpawningActivity} import net.psforever.objects.zones.blockmap.BlockMapEntity 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.base.envelope.MessageEnvelope import net.psforever.services.base.message.{GenericObjectAction, ObjectDelete, PlanetsideAttribute, SendResponse} diff --git a/src/main/scala/net/psforever/objects/Vehicles.scala b/src/main/scala/net/psforever/objects/Vehicles.scala index 2ef24b137..fbee9477c 100644 --- a/src/main/scala/net/psforever/objects/Vehicles.scala +++ b/src/main/scala/net/psforever/objects/Vehicles.scala @@ -9,6 +9,7 @@ import net.psforever.objects.serverobject.resourcesilo.ResourceSilo import net.psforever.objects.serverobject.transfer.TransferContainer import net.psforever.objects.serverobject.structures.WarpGate import net.psforever.objects.vehicles._ +import net.psforever.objects.vehicles.control.CargoBehavior import net.psforever.objects.zones.Zone import net.psforever.packet.game.{ChatMsg, FrameVehicleStateMessage, GenericObjectActionEnum, HackMessage, HackState, HackState1, HackState7, TriggeredSound, VehicleStateMessage} import net.psforever.types.{ChatMessageType, DriveState, PlanetSideEmpire, PlanetSideGUID, Vector3} diff --git a/src/main/scala/net/psforever/objects/vehicles/AntTransferBehavior.scala b/src/main/scala/net/psforever/objects/vehicles/control/AntTransferBehavior.scala similarity index 93% rename from src/main/scala/net/psforever/objects/vehicles/AntTransferBehavior.scala rename to src/main/scala/net/psforever/objects/vehicles/control/AntTransferBehavior.scala index 353f7f062..cb5f5fb02 100644 --- a/src/main/scala/net/psforever/objects/vehicles/AntTransferBehavior.scala +++ b/src/main/scala/net/psforever/objects/vehicles/control/AntTransferBehavior.scala @@ -1,7 +1,8 @@ -// Copyright (c) 2020 PSForever -package net.psforever.objects.vehicles +package net.psforever.objects.vehicles.control import akka.actor.{ActorRef, Cancellable} +import akka.actor.typed.scaladsl.adapter._ + import net.psforever.actors.commands.NtuCommand import net.psforever.actors.zone.BuildingActor 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._ import net.psforever.types.DriveState -import akka.actor.typed.scaladsl.adapter._ import net.psforever.objects.serverobject.transfer.TransferContainer.TransferMaterial import net.psforever.packet.game.PlanetsideAttributeMessage import net.psforever.services.base.envelope.MessageEnvelope @@ -21,8 +21,8 @@ import scala.concurrent.duration._ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior { var panelAnimationFunc: () => Unit = NoCharge - var ntuChargingTick: Cancellable = Default.Cancellable - findChargeTargetFunc = Vehicles.FindANTChargingSource + var ntuChargingTick: Cancellable = Default.Cancellable + findChargeTargetFunc = Vehicles.FindANTChargingSource findDischargeTargetFunc = Vehicles.FindANTDischargingTarget def TransferMaterial: TransferMaterial = Ntu.Nanites @@ -32,7 +32,7 @@ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior { def antBehavior: Receive = storageBehavior.orElse(transferBehavior) def ActivatePanelsForChargingEvent(vehicle: NtuContainer): Unit = { - val obj = ChargeTransferObject + val obj = ChargeTransferObject val zone = obj.Zone zone.VehicleEvents ! MessageEnvelope( zone.id, @@ -42,7 +42,7 @@ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior { /** Charging */ def StartNtuChargingEvent(vehicle: NtuContainer): Unit = { - val obj = ChargeTransferObject + val obj = ChargeTransferObject val zone = obj.Zone zone.VehicleEvents ! MessageEnvelope( zone.id, @@ -188,7 +188,8 @@ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior { transferTarget match { case Some(silo: ResourceSilo) => 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 ) case _ => @@ -208,9 +209,11 @@ trait AntTransferBehavior extends TransferBehavior with NtuStorageBehavior { def HandleNtuGrant(sender: ActorRef, src: NtuContainer, amount: Float): Unit = { val obj = ChargeTransferObject - if (obj.DeploymentState == DriveState.Deployed && - transferEvent == TransferBehavior.Event.Charging && - ReceiveAndDepositUntilFull(obj, amount)) { + if ( + obj.DeploymentState == DriveState.Deployed && + transferEvent == TransferBehavior.Event.Charging && + ReceiveAndDepositUntilFull(obj, amount) + ) { panelAnimationFunc() } else { TryStopChargingEvent(obj) diff --git a/src/main/scala/net/psforever/objects/vehicles/BfrTransferBehavior.scala b/src/main/scala/net/psforever/objects/vehicles/control/BfrTransferBehavior.scala similarity index 98% rename from src/main/scala/net/psforever/objects/vehicles/BfrTransferBehavior.scala rename to src/main/scala/net/psforever/objects/vehicles/control/BfrTransferBehavior.scala index 3a4ef01dd..db80c1c9a 100644 --- a/src/main/scala/net/psforever/objects/vehicles/BfrTransferBehavior.scala +++ b/src/main/scala/net/psforever/objects/vehicles/control/BfrTransferBehavior.scala @@ -1,19 +1,20 @@ // Copyright (c) 2021 PSForever -package net.psforever.objects.vehicles +package net.psforever.objects.vehicles.control import akka.actor.ActorRef import akka.actor.typed.scaladsl.adapter._ import net.psforever.actors.commands.NtuCommand 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.equipment.EquipmentSlot import net.psforever.objects.serverobject.resourcesilo.ResourceSilo import net.psforever.objects.serverobject.structures.WarpGate import net.psforever.objects.serverobject.transfer.{TransferBehavior, TransferContainer} +import net.psforever.objects.vehicles.VehicleSubsystem import net.psforever.services.base.envelope.MessageEnvelope -import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID, Vector3} import net.psforever.services.vehicle.VehicleAction +import net.psforever.types.{PlanetSideEmpire, PlanetSideGUID, Vector3} import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.duration._ diff --git a/src/main/scala/net/psforever/objects/vehicles/CargoBehavior.scala b/src/main/scala/net/psforever/objects/vehicles/control/CargoBehavior.scala similarity index 98% rename from src/main/scala/net/psforever/objects/vehicles/CargoBehavior.scala rename to src/main/scala/net/psforever/objects/vehicles/control/CargoBehavior.scala index 2a9e9cd97..854adc71b 100644 --- a/src/main/scala/net/psforever/objects/vehicles/CargoBehavior.scala +++ b/src/main/scala/net/psforever/objects/vehicles/control/CargoBehavior.scala @@ -1,5 +1,5 @@ // Copyright (c) 2020 PSForever -package net.psforever.objects.vehicles +package net.psforever.objects.vehicles.control import akka.actor.Actor import net.psforever.objects._ diff --git a/src/main/scala/net/psforever/objects/vehicles/control/CargoCarrierControl.scala b/src/main/scala/net/psforever/objects/vehicles/control/CargoCarrierControl.scala index 5892d974f..3609f2775 100644 --- a/src/main/scala/net/psforever/objects/vehicles/control/CargoCarrierControl.scala +++ b/src/main/scala/net/psforever/objects/vehicles/control/CargoCarrierControl.scala @@ -3,7 +3,7 @@ package net.psforever.objects.vehicles.control import net.psforever.objects._ 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 /** diff --git a/src/main/scala/net/psforever/objects/vehicles/CarrierBehavior.scala b/src/main/scala/net/psforever/objects/vehicles/control/CarrierBehavior.scala similarity index 99% rename from src/main/scala/net/psforever/objects/vehicles/CarrierBehavior.scala rename to src/main/scala/net/psforever/objects/vehicles/control/CarrierBehavior.scala index 36e254636..bf3417ce9 100644 --- a/src/main/scala/net/psforever/objects/vehicles/CarrierBehavior.scala +++ b/src/main/scala/net/psforever/objects/vehicles/control/CarrierBehavior.scala @@ -1,17 +1,18 @@ // Copyright (c) 2021 PSForever -package net.psforever.objects.vehicles +package net.psforever.objects.vehicles.control import akka.actor.{Actor, Cancellable} import net.psforever.actors.zone.ZoneActor -import net.psforever.objects.zones.Zone import net.psforever.objects._ import net.psforever.objects.sourcing.VehicleSource +import net.psforever.objects.vehicles.Cargo import net.psforever.objects.vital.VehicleCargoMountActivity +import net.psforever.objects.zones.Zone 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.message.SendResponse import net.psforever.services.vehicle.VehicleAction +import net.psforever.types.{BailType, CargoStatus, PlanetSideGUID, Vector3} import scala.concurrent.duration._ diff --git a/src/main/scala/net/psforever/services/base/envelope/BundledEnvelope.scala b/src/main/scala/net/psforever/services/base/envelope/BundledEnvelope.scala index 3c90c8fb8..9c831b014 100644 --- a/src/main/scala/net/psforever/services/base/envelope/BundledEnvelope.scala +++ b/src/main/scala/net/psforever/services/base/envelope/BundledEnvelope.scala @@ -71,12 +71,11 @@ object BundledEnvelope { if (in.isEmpty) { out } else { - val first :: remainder = in - first match { + in.head match { case bundle: BundledEnvelope => - unwind(bundle.msgs ++ remainder, out) - case _ => - unwind(remainder, out :+ first) + unwind(bundle.msgs ++ in.tail, out) + case first => + unwind(in.tail, out :+ first) } } }