2017-11-30 03:30:25 +00:00
|
|
|
// Copyright (c) 2017 PSForever
|
|
|
|
|
package objects
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
import akka.actor.ActorContext
|
|
|
|
|
import base.FreedContextActorTest
|
2019-04-04 18:44:57 +00:00
|
|
|
import net.psforever.objects.GlobalDefinitions
|
2017-11-30 03:30:25 +00:00
|
|
|
import net.psforever.objects.guid.NumberPoolHub
|
2017-12-24 02:08:28 +00:00
|
|
|
import net.psforever.objects.serverobject.ServerObjectBuilder
|
2018-03-24 04:28:02 +00:00
|
|
|
import net.psforever.objects.serverobject.structures.{Building, FoundationBuilder, StructureType, WarpGate}
|
2018-04-18 22:29:40 +00:00
|
|
|
import net.psforever.objects.serverobject.terminals.ProximityTerminal
|
2018-01-26 20:32:08 +00:00
|
|
|
import net.psforever.objects.zones.Zone
|
2020-01-06 13:45:55 +00:00
|
|
|
import net.psforever.types.{PlanetSideGUID, Vector3}
|
2017-11-30 03:30:25 +00:00
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class BuildingBuilderTest extends FreedContextActorTest {
|
2018-01-26 20:32:08 +00:00
|
|
|
"Building object" should {
|
|
|
|
|
"build" in {
|
2020-07-14 03:54:05 +00:00
|
|
|
val structure: (String, Int, Int, Zone, ActorContext) => Building = Building.Structure(StructureType.Building)
|
2020-09-15 23:46:56 +00:00
|
|
|
val building = FoundationBuilder(structure).Build("building", 10, 10, Zone.Nowhere)(context)
|
|
|
|
|
assert(building ne null)
|
|
|
|
|
assert(building.isInstanceOf[Building])
|
|
|
|
|
assert(building.MapId == 10)
|
|
|
|
|
assert(building.Zone == Zone.Nowhere)
|
2018-03-06 04:26:38 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class WarpGateBuilderTest extends FreedContextActorTest {
|
2018-03-06 04:26:38 +00:00
|
|
|
"WarpGate object" should {
|
|
|
|
|
"build" in {
|
2020-07-14 03:54:05 +00:00
|
|
|
val structure: (String, Int, Int, Zone, ActorContext) => Building = WarpGate.Structure
|
2020-09-15 23:46:56 +00:00
|
|
|
val building = FoundationBuilder(structure).Build("wgate", 10, 10, Zone.Nowhere)(context)
|
|
|
|
|
assert(building ne null)
|
|
|
|
|
assert(building.isInstanceOf[WarpGate])
|
|
|
|
|
assert(building.MapId == 10)
|
|
|
|
|
assert(building.Zone == Zone.Nowhere)
|
2018-01-26 20:32:08 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class DoorObjectBuilderTest1 extends FreedContextActorTest {
|
2017-11-30 03:30:25 +00:00
|
|
|
import net.psforever.objects.serverobject.doors.Door
|
2018-01-24 15:07:42 +00:00
|
|
|
"Door object" should {
|
2017-11-30 03:30:25 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, Door.Constructor).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[Door])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj == hub(1).get)
|
2017-11-30 03:30:25 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class DoorObjectBuilderTest2 extends FreedContextActorTest {
|
2018-01-24 15:07:42 +00:00
|
|
|
import net.psforever.objects.serverobject.doors.Door
|
|
|
|
|
"Door object" should {
|
|
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, Door.Constructor(Vector3(1, 2, 3))).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[Door])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj == hub(1).get)
|
|
|
|
|
assert(obj.Position == Vector3(1, 2, 3))
|
2018-01-24 15:07:42 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class IFFLockObjectBuilderTest extends FreedContextActorTest {
|
2017-11-30 03:30:25 +00:00
|
|
|
import net.psforever.objects.serverobject.locks.IFFLock
|
2018-01-24 15:07:42 +00:00
|
|
|
"IFFLock object" should {
|
2017-11-30 03:30:25 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, IFFLock.Constructor(Vector3(1f, 1f, 1f), Vector3(2f, 2f, 2f))).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[IFFLock])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj.Position == Vector3(1,1,1))
|
|
|
|
|
assert(obj.Outwards == Vector3(0.034899496f, 0.99939084f, 0.0f))
|
|
|
|
|
assert(obj == hub(1).get)
|
2017-11-30 03:30:25 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class ImplantTerminalMechObjectBuilderTest extends FreedContextActorTest {
|
2021-01-23 18:18:49 +00:00
|
|
|
|
|
|
|
|
import net.psforever.objects.serverobject.terminals.implant.ImplantTerminalMech
|
|
|
|
|
|
2018-01-24 15:07:42 +00:00
|
|
|
"Implant terminal mech object" should {
|
2017-11-30 03:30:25 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, ImplantTerminalMech.Constructor(Vector3.Zero)).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[ImplantTerminalMech])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj == hub(1).get)
|
2017-11-30 03:30:25 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class TerminalObjectBuilderTest extends FreedContextActorTest {
|
2018-01-23 01:45:05 +00:00
|
|
|
import net.psforever.objects.GlobalDefinitions.order_terminal
|
2017-11-30 03:30:25 +00:00
|
|
|
import net.psforever.objects.serverobject.terminals.Terminal
|
2018-01-24 15:07:42 +00:00
|
|
|
"Terminal object" should {
|
2017-11-30 03:30:25 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, Terminal.Constructor(Vector3(1.1f, 2.2f, 3.3f), order_terminal)).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[Terminal])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj.Position == Vector3(1.1f, 2.2f, 3.3f))
|
|
|
|
|
assert(obj == hub(1).get)
|
2017-11-30 03:30:25 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class ProximityTerminalObjectBuilderTest extends FreedContextActorTest {
|
2018-04-18 22:29:40 +00:00
|
|
|
import net.psforever.objects.GlobalDefinitions.medical_terminal
|
|
|
|
|
import net.psforever.objects.serverobject.terminals.Terminal
|
|
|
|
|
"Terminal object" should {
|
|
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, ProximityTerminal.Constructor(medical_terminal)).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[Terminal])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj == hub(1).get)
|
2018-04-18 22:29:40 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class VehicleSpawnPadObjectBuilderTest extends FreedContextActorTest {
|
2017-11-30 03:30:25 +00:00
|
|
|
import net.psforever.objects.serverobject.pad.VehicleSpawnPad
|
2018-01-24 15:07:42 +00:00
|
|
|
"Vehicle spawn pad object" should {
|
2017-11-30 03:30:25 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1,
|
|
|
|
|
VehicleSpawnPad.Constructor(
|
|
|
|
|
Vector3(1.1f, 2.2f, 3.3f), GlobalDefinitions.mb_pad_creation, Vector3(4.4f, 5.5f, 6.6f)
|
|
|
|
|
)
|
|
|
|
|
).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[VehicleSpawnPad])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj.Position == Vector3(1.1f, 2.2f, 3.3f))
|
|
|
|
|
assert(obj.Orientation == Vector3(4.4f, 5.5f, 6.6f))
|
|
|
|
|
assert(obj == hub(1).get)
|
2017-11-30 03:30:25 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class LocalProjectileBuilderTest extends FreedContextActorTest {
|
2018-06-16 04:34:29 +00:00
|
|
|
import net.psforever.objects.LocalProjectile
|
2018-07-15 01:25:44 +00:00
|
|
|
"Local projectile object" should {
|
2018-06-16 04:34:29 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, LocalProjectile.Constructor).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[LocalProjectile])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj == hub(1).get)
|
2018-06-16 04:34:29 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class LockerObjectBuilderTest extends FreedContextActorTest {
|
2018-01-23 01:45:05 +00:00
|
|
|
import net.psforever.objects.serverobject.mblocker.Locker
|
2018-07-15 01:25:44 +00:00
|
|
|
"Locker object" should {
|
2018-01-23 01:45:05 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, Locker.Constructor).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[Locker])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj == hub(1).get)
|
2018-01-23 01:45:05 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class ResourceSiloObjectBuilderTest extends FreedContextActorTest {
|
2018-07-15 01:25:44 +00:00
|
|
|
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
|
|
|
|
"Resource silo object" should {
|
|
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, ResourceSilo.Constructor(Vector3(1f, 1f, 1f))).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[ResourceSilo])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj.Position == Vector3(1,1,1))
|
|
|
|
|
assert(obj == hub(1).get)
|
2018-07-15 01:25:44 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class SpawnTubeObjectBuilderTest extends FreedContextActorTest {
|
2018-03-24 04:28:02 +00:00
|
|
|
import net.psforever.objects.serverobject.tube.SpawnTube
|
2018-07-15 01:25:44 +00:00
|
|
|
"Spawn tube object" should {
|
2018-03-24 04:28:02 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(
|
|
|
|
|
1,
|
|
|
|
|
SpawnTube.Constructor(Vector3(3980.4062f, 4267.3047f, 257.5625f), Vector3(0, 0, 90))
|
|
|
|
|
).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[SpawnTube])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj.Position == Vector3(3980.4062f, 4267.3047f, 257.5625f))
|
|
|
|
|
assert(obj.Orientation == Vector3(0, 0, 90))
|
|
|
|
|
assert(obj == hub(1).get)
|
2018-03-24 04:28:02 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-15 23:46:56 +00:00
|
|
|
class FacilityTurretObjectBuilderTest extends FreedContextActorTest {
|
2018-07-15 01:25:44 +00:00
|
|
|
import net.psforever.objects.GlobalDefinitions.manned_turret
|
2018-09-23 12:00:58 +00:00
|
|
|
import net.psforever.objects.serverobject.turret.FacilityTurret
|
|
|
|
|
"FacilityTurretObjectBuilder" should {
|
2018-07-15 01:25:44 +00:00
|
|
|
"build" in {
|
|
|
|
|
val hub = ServerObjectBuilderTest.NumberPoolHub
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = ServerObjectBuilder(1, FacilityTurret.Constructor(manned_turret)).Build(context, hub)
|
|
|
|
|
assert(obj.isInstanceOf[FacilityTurret])
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj.GUID == PlanetSideGUID(1))
|
|
|
|
|
assert(obj == hub(1).get)
|
2018-07-15 01:25:44 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-11-30 03:30:25 +00:00
|
|
|
object ServerObjectBuilderTest {
|
2020-09-15 23:46:56 +00:00
|
|
|
import net.psforever.objects.guid.source.MaxNumberSource
|
2020-07-14 03:54:05 +00:00
|
|
|
def NumberPoolHub: NumberPoolHub = {
|
2020-09-15 23:46:56 +00:00
|
|
|
val obj = new NumberPoolHub(new MaxNumberSource(2))
|
2017-11-30 03:30:25 +00:00
|
|
|
obj
|
|
|
|
|
}
|
|
|
|
|
}
|