Added continent stubs to InterstellarCluster init list.  All Maps and Zones are defined in temporary objects that may be subdivided further as they grow.

Builder:

Replaced trait ServerObjectBuilder[A] with class ServerObjectBuilder[A] that allows for much greater power.  In ZoneMap.Init override, LocalObject invocations that were previously 'LocalBuilder(FooObjectBuilder(ObjectDefintion, Int))` have been transformed into `LocalObject(ServerObjectBuilder(Int, (Int=>Foo))` where `Foo` is the type of object to be created by the curried function `(Int)=>Foo`.  The examples with Terminals and the VehicleSpawnPad should demonstrate what kind of power this syntax possesses in isolating constant (or at least initial) configuration settings.  At least five files, and some files not yet written, have been rendered obsolete and have been eliminated from the sim pertaining to these created objects.
This commit is contained in:
FateJH 2017-12-23 21:08:28 -05:00
parent 01c5d37aef
commit 17a8b8bf38
18 changed files with 417 additions and 337 deletions

View file

@ -0,0 +1,150 @@
// Copyright (c) 2017 PSForever
import net.psforever.objects.zones.ZoneMap
import net.psforever.objects.GlobalDefinitions._
import net.psforever.objects.serverobject.ServerObjectBuilder
import net.psforever.objects.serverobject.doors.Door
import net.psforever.objects.serverobject.implantmech.ImplantTerminalMech
import net.psforever.objects.serverobject.locks.IFFLock
import net.psforever.objects.serverobject.pad.VehicleSpawnPad
import net.psforever.objects.serverobject.terminals.Terminal
import net.psforever.types.Vector3
object Maps {
val map1 = new ZoneMap("map01")
val map2 = new ZoneMap("map02")
val map3 = new ZoneMap("map03")
val map4 = new ZoneMap("map04")
val map5 = new ZoneMap("map05")
val map6 = new ZoneMap("map06")
val map7 = new ZoneMap("map07")
val map8 = new ZoneMap("map08")
val map9 = new ZoneMap("map09")
val map10 = new ZoneMap("map10")
val map11 = new ZoneMap("map11")
val map12 = new ZoneMap("map12")
val map13 = new ZoneMap("map13") {
LocalObject(ServerObjectBuilder(330, Door.Constructor))
LocalObject(ServerObjectBuilder(332, Door.Constructor))
LocalObject(ServerObjectBuilder(362, Door.Constructor))
LocalObject(ServerObjectBuilder(370, Door.Constructor))
LocalObject(ServerObjectBuilder(371, Door.Constructor))
LocalObject(ServerObjectBuilder(372, Door.Constructor))
LocalObject(ServerObjectBuilder(373, Door.Constructor))
LocalObject(ServerObjectBuilder(374, Door.Constructor))
LocalObject(ServerObjectBuilder(375, Door.Constructor))
LocalObject(ServerObjectBuilder(394, Door.Constructor))
LocalObject(ServerObjectBuilder(395, Door.Constructor))
LocalObject(ServerObjectBuilder(396, Door.Constructor))
LocalObject(ServerObjectBuilder(397, Door.Constructor))
LocalObject(ServerObjectBuilder(398, Door.Constructor))
LocalObject(ServerObjectBuilder(462, Door.Constructor))
LocalObject(ServerObjectBuilder(463, Door.Constructor))
LocalObject(ServerObjectBuilder(520, ImplantTerminalMech.Constructor)) //Hart B
LocalObject(ServerObjectBuilder(522, ImplantTerminalMech.Constructor)) //Hart C
LocalObject(ServerObjectBuilder(523, ImplantTerminalMech.Constructor)) //Hart C
LocalObject(ServerObjectBuilder(524, ImplantTerminalMech.Constructor)) //Hart C
LocalObject(ServerObjectBuilder(525, ImplantTerminalMech.Constructor)) //Hart C
LocalObject(ServerObjectBuilder(526, ImplantTerminalMech.Constructor)) //Hart C
LocalObject(ServerObjectBuilder(527, ImplantTerminalMech.Constructor)) //Hart C
LocalObject(ServerObjectBuilder(528, ImplantTerminalMech.Constructor)) //Hart C
LocalObject(ServerObjectBuilder(529, ImplantTerminalMech.Constructor)) //Hart C
LocalObject(ServerObjectBuilder(556, IFFLock.Constructor))
LocalObject(ServerObjectBuilder(558, IFFLock.Constructor))
LocalObject(ServerObjectBuilder(186, Terminal.Constructor(cert_terminal)))
LocalObject(ServerObjectBuilder(187, Terminal.Constructor(cert_terminal)))
LocalObject(ServerObjectBuilder(188, Terminal.Constructor(cert_terminal)))
LocalObject(ServerObjectBuilder(853, Terminal.Constructor(order_terminal)))
LocalObject(ServerObjectBuilder(855, Terminal.Constructor(order_terminal)))
LocalObject(ServerObjectBuilder(860, Terminal.Constructor(order_terminal)))
LocalObject(ServerObjectBuilder(1081, Terminal.Constructor(implant_terminal_interface))) //tube 520
LocalObject(ServerObjectBuilder(1082, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
LocalObject(ServerObjectBuilder(1083, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
LocalObject(ServerObjectBuilder(1084, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
LocalObject(ServerObjectBuilder(1085, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
LocalObject(ServerObjectBuilder(1086, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
LocalObject(ServerObjectBuilder(1087, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
LocalObject(ServerObjectBuilder(1088, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
LocalObject(ServerObjectBuilder(1089, Terminal.Constructor(implant_terminal_interface))) //TODO guid not correct
LocalObject(ServerObjectBuilder(1063, Terminal.Constructor(ground_vehicle_terminal)))
LocalObject(ServerObjectBuilder(500,
VehicleSpawnPad.Constructor(Vector3(3506.0f, 2820.0f, 92.0f), Vector3(0f, 0f, 270.0f))
)) //TODO guid not correct
LocalObject(ServerObjectBuilder(304, Terminal.Constructor(dropship_vehicle_terminal)))
LocalObject(ServerObjectBuilder(501,
VehicleSpawnPad.Constructor(Vector3(3508.9844f, 2895.961f, 92.296875f), Vector3(0f, 0f, 270.0f))
)) //TODO guid not correct
LocalBases = 30
ObjectToBase(330, 29)
ObjectToBase(332, 29)
//ObjectToBase(520, 29)
ObjectToBase(522, 29)
ObjectToBase(523, 29)
ObjectToBase(524, 29)
ObjectToBase(525, 29)
ObjectToBase(526, 29)
ObjectToBase(527, 29)
ObjectToBase(528, 29)
ObjectToBase(529, 29)
ObjectToBase(556, 29)
ObjectToBase(558, 29)
ObjectToBase(1081, 29)
ObjectToBase(1063, 2) //TODO unowned courtyard terminal?
ObjectToBase(500, 2) //TODO unowned courtyard spawnpad?
ObjectToBase(304, 2) //TODO unowned courtyard terminal?
ObjectToBase(501, 2) //TODO unowned courtyard spawnpad?
DoorToLock(330, 558)
DoorToLock(332, 556)
TerminalToSpawnPad(1063, 500)
TerminalToSpawnPad(304, 501)
TerminalToInterface(520, 1081)
TerminalToInterface(522, 1082)
TerminalToInterface(523, 1083)
TerminalToInterface(524, 1084)
TerminalToInterface(525, 1085)
TerminalToInterface(526, 1086)
TerminalToInterface(527, 1087)
TerminalToInterface(528, 1088)
TerminalToInterface(529, 1089)
}
val map14 = new ZoneMap("map13")
val map15 = new ZoneMap("map13")
val map16 = new ZoneMap("map13")
val ugd01 = new ZoneMap("ugd01")
val ugd02 = new ZoneMap("ugd02")
val ugd03 = new ZoneMap("ugd03")
val ugd04 = new ZoneMap("ugd04")
val ugd05 = new ZoneMap("ugd05")
val ugd06 = new ZoneMap("ugd06")
val map96 = new ZoneMap("ugd06")
val map97 = new ZoneMap("map97")
val map98 = new ZoneMap("map98")
val map99 = new ZoneMap("map99")
}

View file

@ -3,7 +3,7 @@ import java.net.InetAddress
import java.io.File
import java.util.Locale
import akka.actor.{ActorContext, ActorRef, ActorSystem, Props}
import akka.actor.{ActorRef, ActorSystem, Props}
import akka.routing.RandomPool
import ch.qos.logback.classic.LoggerContext
import ch.qos.logback.classic.joran.JoranConfigurator
@ -14,8 +14,6 @@ import com.typesafe.config.ConfigFactory
import net.psforever.crypto.CryptoInterface
import net.psforever.objects.zones._
import net.psforever.objects.guid.TaskResolver
import net.psforever.objects.serverobject.builders._
import net.psforever.types.Vector3
import org.slf4j
import org.fusesource.jansi.Ansi._
import org.fusesource.jansi.Ansi.Color._
@ -228,116 +226,15 @@ object PsLogin {
}
def createContinents() : List[Zone] = {
val map13 = new ZoneMap("map13") {
import net.psforever.objects.GlobalDefinitions._
LocalObject(DoorObjectBuilder(door, 330))
LocalObject(DoorObjectBuilder(door, 332))
LocalObject(DoorObjectBuilder(door, 362))
LocalObject(DoorObjectBuilder(door, 370))
LocalObject(DoorObjectBuilder(door, 371))
LocalObject(DoorObjectBuilder(door, 372))
LocalObject(DoorObjectBuilder(door, 373))
LocalObject(DoorObjectBuilder(door, 374))
LocalObject(DoorObjectBuilder(door, 375))
LocalObject(DoorObjectBuilder(door, 394))
LocalObject(DoorObjectBuilder(door, 395))
LocalObject(DoorObjectBuilder(door, 396))
LocalObject(DoorObjectBuilder(door, 397))
LocalObject(DoorObjectBuilder(door, 398))
LocalObject(DoorObjectBuilder(door, 462))
LocalObject(DoorObjectBuilder(door, 463))
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 520)) //Hart B
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 522)) //Hart C
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 523)) //Hart C
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 524)) //Hart C
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 525)) //Hart C
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 526)) //Hart C
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 527)) //Hart C
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 528)) //Hart C
LocalObject(ImplantTerminalMechObjectBuilder(implant_terminal_mech, 529)) //Hart C
LocalObject(IFFLockObjectBuilder(lock_external, 556))
LocalObject(IFFLockObjectBuilder(lock_external, 558))
LocalObject(TerminalObjectBuilder(cert_terminal, 186))
LocalObject(TerminalObjectBuilder(cert_terminal, 187))
LocalObject(TerminalObjectBuilder(cert_terminal, 188))
LocalObject(TerminalObjectBuilder(order_terminal, 853))
LocalObject(TerminalObjectBuilder(order_terminal, 855))
LocalObject(TerminalObjectBuilder(order_terminal, 860))
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1081)) //tube 520
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1082)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1083)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1084)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1085)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1086)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1087)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1088)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(implant_terminal_interface, 1089)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(ground_vehicle_terminal, 1063))
LocalObject(VehicleSpawnPadObjectBuilder(spawn_pad, 500)) //TODO guid not correct
LocalObject(TerminalObjectBuilder(dropship_vehicle_terminal, 304))
LocalObject(VehicleSpawnPadObjectBuilder(spawn_pad, 501)) //TODO guid not correct
LocalBases = 30
ObjectToBase(330, 29)
ObjectToBase(332, 29)
//ObjectToBase(520, 29)
ObjectToBase(522, 29)
ObjectToBase(523, 29)
ObjectToBase(524, 29)
ObjectToBase(525, 29)
ObjectToBase(526, 29)
ObjectToBase(527, 29)
ObjectToBase(528, 29)
ObjectToBase(529, 29)
ObjectToBase(556, 29)
ObjectToBase(558, 29)
ObjectToBase(1081, 29)
ObjectToBase(1063, 2) //TODO unowned courtyard terminal?
ObjectToBase(500, 2) //TODO unowned courtyard spawnpad?
ObjectToBase(304, 2) //TODO unowned courtyard terminal?
ObjectToBase(501, 2) //TODO unowned courtyard spawnpad?
DoorToLock(330, 558)
DoorToLock(332, 556)
TerminalToSpawnPad(1063, 500)
TerminalToSpawnPad(304, 501)
TerminalToInterface(520, 1081)
TerminalToInterface(522, 1082)
TerminalToInterface(523, 1083)
TerminalToInterface(524, 1084)
TerminalToInterface(525, 1085)
TerminalToInterface(526, 1086)
TerminalToInterface(527, 1087)
TerminalToInterface(528, 1088)
TerminalToInterface(529, 1089)
}
val home3 = new Zone("home3", map13, 13) {
override def Init(implicit context : ActorContext) : Unit = {
super.Init(context)
import net.psforever.types.PlanetSideEmpire
Base(2).get.Faction = PlanetSideEmpire.VS //HART building C
Base(29).get.Faction = PlanetSideEmpire.NC //South Villa Gun Tower
GUID(500) match {
case Some(pad) =>
pad.Position = Vector3(3506.0f, 2820.0f, 92.0f)
pad.Orientation = Vector3(0f, 0f, 270.0f)
case None => ;
}
GUID(501) match {
case Some(pad) =>
pad.Position = Vector3(3508.9844f, 2895.961f, 92.296875f)
pad.Orientation = Vector3(0f, 0f, 270.0f)
case None => ;
}
}
}
home3 ::
Nil
import Zones._
List(
z1, z2, z3, z4, z5, z6, z7, z8, z9, z10,
home1, tzshtr, tzdrtr, tzcotr,
home2, tzshnc, tzdrnc, tzconc,
home3, tzshvs, tzdrvs, tzcovs,
c1, c2, c3, c4, c5, c6,
i1, i2, i3, i4
)
}
def main(args : Array[String]) : Unit = {

View file

@ -0,0 +1,77 @@
// Copyright (c) 2017 PSForever
import akka.actor.ActorContext
import net.psforever.objects.zones.Zone
object Zones {
val z1 = new Zone("z1", Maps.map1, 1)
val z2 = new Zone("z2", Maps.map2, 2)
val z3 = new Zone("z3", Maps.map3, 3)
val z4 = new Zone("z4", Maps.map4, 4)
val z5 = new Zone("z5", Maps.map5, 5)
val z6 = new Zone("z6", Maps.map6, 6)
val z7 = new Zone("z7", Maps.map7, 7)
val z8 = new Zone("z8", Maps.map8, 8)
val z9 = new Zone("z9", Maps.map9, 9)
val z10 = new Zone("z10", Maps.map10, 10)
val home1 = new Zone("home1", Maps.map11, 11)
val home2 = new Zone("home2", Maps.map12, 12)
val home3 = new Zone("home3", Maps.map13, 13) {
override def Init(implicit context : ActorContext) : Unit = {
super.Init(context)
import net.psforever.types.PlanetSideEmpire
Base(2).get.Faction = PlanetSideEmpire.VS //HART building C
Base(29).get.Faction = PlanetSideEmpire.NC //South Villa Gun Tower
}
}
val tzshtr = new Zone("tzshtr", Maps.map14, 14)
val tzdrtr = new Zone("tzsdrtr", Maps.map15, 15)
val tzcotr = new Zone("tzcotr", Maps.map16, 16)
val tzshnc = new Zone("tzshnc", Maps.map14, 17)
val tzdrnc = new Zone("tzdrnc", Maps.map15, 18)
val tzconc = new Zone("tzconc", Maps.map16, 19)
val tzshvs = new Zone("tzshvs", Maps.map14, 20)
val tzdrvs = new Zone("tzdrvs", Maps.map15, 21)
val tzcovs = new Zone("tzcovs", Maps.map16, 22)
val c1 = new Zone("c1", Maps.ugd01, 23)
val c2 = new Zone("c2", Maps.ugd02, 24)
val c3 = new Zone("c3", Maps.ugd03, 25)
val c4 = new Zone("c4", Maps.ugd04, 26)
val c5 = new Zone("c5", Maps.ugd05, 27)
val c6 = new Zone("c6", Maps.ugd06, 28)
val i1 = new Zone("i1", Maps.map96, 29)
val i2 = new Zone("i2", Maps.map97, 30)
val i3 = new Zone("i3", Maps.map98, 31)
val i4 = new Zone("i4", Maps.map99, 32)
}