Full map configs for all above ground continents including battle islands and oshur prime (#245)

* Move door orientation logic from the door itself to the IFF lock, as the lock has the correct orientation in the UBR files, whereas the door does not.

* Remove ModelID from buildings (is now GUID) and change "ID" to be "MapId". A building can also be constructed with both a GUID and MapID.

* Update Maps.scala and Zones.scala to (for the moment) only have Ishundar configured with Sounours V3 playtest base ownership. Default starting zone is also moved to Ishundar for now.

* Fix oopsie with West Zaqar Tower

* Add proximity terminal positions to constructors

* Offset vehicle spawning by the correct amount from game_objects.adb.lst

* Orient players correctly when spawning at a respawn tube

* Apply a 90 degree offset to tech plant garage locks, as these are the only locks where the orientation does not match the orientation of the door

* Add missing spawn terminals, repair/rearm terminals for both ground and air.

* Additional documentation for GOAM / PAM packets

* Add extra arguments to building LocalObjects to make it a bit more DRY and reduce line count for map files

* Split maps configuration into separate files and add every above ground map (including battle islands and oshur prime)

* Fix ZoneTest typo

* Update vehicle spawn pads to use the correct object types, Z offsets and Z orient offsets

* Update ZoneMaps with the new vehicle spawn pad definitions and fix a few issues with sanctuary GUIDs (special thanks to the one person that used capitals in the .lst files when no other object uses them)

* Comment out duplicate instance of ObjectDetachMessage being sent

* Apparently TR sanc has an extra 6 repair silos, now accounted for.
This commit is contained in:
Mazo 2019-04-04 19:44:57 +01:00 committed by Fate-JH
parent 3738feec12
commit 7fcbf7bf41
28 changed files with 31296 additions and 6249 deletions

View file

@ -394,7 +394,7 @@ class GuidedControlTest1 extends ActorTest {
driver.VehicleSeated = vehicle.GUID
val sendTo = TestProbe()
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
val pad = VehicleSpawnPad(GlobalDefinitions.spawn_pad)
val pad = VehicleSpawnPad(GlobalDefinitions.mb_pad_creation)
pad.GUID = PlanetSideGUID(1)
pad.Railed = false //suppress certain events
val guided = system.actorOf(Props(classOf[VehicleSpawnControlGuided], pad), "pad")
@ -416,7 +416,7 @@ class GuidedControlTest2 extends ActorTest {
driver.VehicleSeated = vehicle.GUID
val sendTo = TestProbe()
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
val pad = VehicleSpawnPad(GlobalDefinitions.spawn_pad)
val pad = VehicleSpawnPad(GlobalDefinitions.mb_pad_creation)
pad.Railed = false //suppress certain events
val guided = system.actorOf(Props(classOf[VehicleSpawnControlGuided], pad), "pad")
@ -441,7 +441,7 @@ class GuidedControlTest3 extends ActorTest {
driver.VehicleSeated = vehicle.GUID
val sendTo = TestProbe()
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
val pad = VehicleSpawnPad(GlobalDefinitions.spawn_pad)
val pad = VehicleSpawnPad(GlobalDefinitions.mb_pad_creation)
pad.Railed = false //suppress certain events
val guided = system.actorOf(Props(classOf[VehicleSpawnControlGuided], pad), "pad")
@ -479,7 +479,7 @@ class GuidedControlTest4 extends ActorTest {
driver.VehicleSeated = vehicle.GUID
val sendTo = TestProbe()
val order = VehicleSpawnControl.Order(driver, vehicle, sendTo.ref)
val pad = VehicleSpawnPad(GlobalDefinitions.spawn_pad)
val pad = VehicleSpawnPad(GlobalDefinitions.mb_pad_creation)
pad.Railed = false //suppress certain events
val guided = system.actorOf(Props(classOf[VehicleSpawnControlGuided], pad), "pad")

View file

@ -3,6 +3,7 @@ package objects
import akka.actor.{Actor, ActorContext, Props}
import base.ActorTest
import net.psforever.objects.GlobalDefinitions
import net.psforever.objects.guid.NumberPoolHub
import net.psforever.packet.game.PlanetSideGUID
import net.psforever.objects.serverobject.ServerObjectBuilder
@ -155,7 +156,7 @@ class VehicleSpawnPadObjectBuilderTest extends ActorTest {
"build" in {
val hub = ServerObjectBuilderTest.NumberPoolHub
val actor = system.actorOf(Props(classOf[ServerObjectBuilderTest.BuilderTestActor], ServerObjectBuilder(1,
VehicleSpawnPad.Constructor(Vector3(1.1f, 2.2f, 3.3f), Vector3(4.4f, 5.5f, 6.6f))
VehicleSpawnPad.Constructor(GlobalDefinitions.mb_pad_creation, Vector3(1.1f, 2.2f, 3.3f), Vector3(4.4f, 5.5f, 6.6f))
), hub), "pad")
actor ! "!"

View file

@ -18,20 +18,20 @@ import scala.concurrent.duration._
class VehicleSpawnPadTest extends Specification {
"VehicleSpawnPadDefinition" should {
"define" in {
GlobalDefinitions.spawn_pad.ObjectId mustEqual 800
GlobalDefinitions.mb_pad_creation.ObjectId mustEqual 525
}
}
"VehicleSpawnPad" should {
"construct" in {
val obj = VehicleSpawnPad(GlobalDefinitions.spawn_pad)
val obj = VehicleSpawnPad(GlobalDefinitions.mb_pad_creation)
obj.Actor mustEqual ActorRef.noSender
obj.Definition mustEqual GlobalDefinitions.spawn_pad
obj.Definition mustEqual GlobalDefinitions.mb_pad_creation
obj.Railed mustEqual true
}
"un-railed" in {
val obj = VehicleSpawnPad(GlobalDefinitions.spawn_pad)
val obj = VehicleSpawnPad(GlobalDefinitions.mb_pad_creation)
obj.Railed mustEqual true
obj.Railed = false
obj.Railed mustEqual false
@ -42,8 +42,8 @@ class VehicleSpawnPadTest extends Specification {
class VehicleSpawnControl1Test extends ActorTest {
"VehicleSpawnControl" should {
"construct" in {
val obj = VehicleSpawnPad(GlobalDefinitions.spawn_pad)
obj.Actor = system.actorOf(Props(classOf[VehicleSpawnControl], obj), "door")
val obj = VehicleSpawnPad(GlobalDefinitions.mb_pad_creation)
obj.Actor = system.actorOf(Props(classOf[VehicleSpawnControl], obj), "mb_pad_creation")
assert(obj.Actor != ActorRef.noSender)
}
}
@ -337,7 +337,7 @@ object VehicleSpawnPadControlTest {
zone.Actor ! Zone.Init()
vehicle.Actor = system.actorOf(Props(classOf[VehicleControl], vehicle), s"vehicle-control-${System.nanoTime()}")
val pad = VehicleSpawnPad(GlobalDefinitions.spawn_pad)
val pad = VehicleSpawnPad(GlobalDefinitions.mb_pad_creation)
pad.Actor = system.actorOf(Props(classOf[VehicleSpawnControl], pad), s"test-pad-${System.nanoTime()}")
pad.Owner = new Building(building_guid = 0, map_id = 0, zone, StructureType.Building)
pad.Owner.Faction = faction

View file

@ -36,7 +36,7 @@ class ZoneTest extends Specification {
map.LocalBuilding(building_guid = 10, map_id = 0, FoundationBuilder(test))
map.LocalBuildings.keySet.contains((10, 0)) mustEqual true
map.LocalBuilding(building_guid = -1, map_id = 0, FoundationBuilder(test))
map.LocalBuildings.keySet.contains((0, 0)) mustEqual true
map.LocalBuildings.keySet.contains((10, 0)) mustEqual true
map.LocalBuildings.keySet.contains((-1, 0)) mustEqual false
}