mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-01-19 18:14:44 +00:00
Gating (#248)
* resolved merge of multi-PR-merge master branch supporting gating branch * making adjustments to the distinctions between building map id and building GUID, where necessary, to assist with the loading process * custom spawn tube definitions for the sanctuary VT_building's
This commit is contained in:
parent
7fcbf7bf41
commit
c38c619a23
|
|
@ -980,6 +980,8 @@ object GlobalDefinitions {
|
|||
|
||||
val respawn_tube = new SpawnTubeDefinition(732)
|
||||
|
||||
val respawn_tube_sanctuary = new SpawnTubeDefinition(732) //respawn_tube for sanctuary VT_building_* structures
|
||||
|
||||
val respawn_tube_tower = new SpawnTubeDefinition(733)
|
||||
|
||||
val teleportpad_terminal = new OrderTerminalDefinition(853)
|
||||
|
|
@ -1029,6 +1031,41 @@ object GlobalDefinitions {
|
|||
val manned_turret = new TurretDefinition(480)
|
||||
initMiscellaneous()
|
||||
|
||||
/*
|
||||
Buildings
|
||||
*/
|
||||
val building : ObjectDefinition = new ObjectDefinition(474) { Name = "building" } //borrows object id of entity mainbase1
|
||||
|
||||
val warpgate : ObjectDefinition with SpawnPointDefinition = new ObjectDefinition(993) with SpawnPointDefinition
|
||||
warpgate.Name = "warpgate"
|
||||
warpgate.UseRadius = 301.8713f
|
||||
warpgate.Delay = 10
|
||||
warpgate.VehicleAllowance = true
|
||||
warpgate.SpecificPointFunc = SpawnPoint.Gate
|
||||
|
||||
val hst : ObjectDefinition with SpawnPointDefinition = new ObjectDefinition(402) with SpawnPointDefinition
|
||||
hst.Name = "hst"
|
||||
hst.UseRadius = 20.4810f
|
||||
hst.Delay = 10
|
||||
hst.VehicleAllowance = true
|
||||
hst.NoWarp += dropship
|
||||
hst.NoWarp += galaxy_gunship
|
||||
hst.NoWarp += lodestar
|
||||
//hst.NoWarp += aphelion_gunner
|
||||
//hst.NoWarp += aphelion_flight
|
||||
//hst.NoWarp += colossus_gunner
|
||||
//hst.NoWarp += colossus_flight
|
||||
//hst.NoWarp += peregrine_gunner
|
||||
//hst.NoWarp += peregrine_flight
|
||||
hst.SpecificPointFunc = SpawnPoint.Gate
|
||||
|
||||
val warpgate_cavern : ObjectDefinition with SpawnPointDefinition = new ObjectDefinition(994) with SpawnPointDefinition
|
||||
warpgate_cavern.Name = "warpgate_cavern"
|
||||
warpgate_cavern.UseRadius = 55.0522f
|
||||
warpgate_cavern.Delay = 10
|
||||
warpgate_cavern.VehicleAllowance = true
|
||||
warpgate_cavern.SpecificPointFunc = SpawnPoint.Gate
|
||||
|
||||
/**
|
||||
* Given a faction, provide the standard assault melee weapon.
|
||||
* @param faction the faction
|
||||
|
|
@ -5352,6 +5389,7 @@ object GlobalDefinitions {
|
|||
mosquito.Name = "mosquito"
|
||||
mosquito.MaxHealth = 665
|
||||
mosquito.MaxShields = 133 + 1
|
||||
mosquito.CanFly = true
|
||||
mosquito.Seats += 0 -> new SeatDefinition()
|
||||
mosquito.Seats(0).Bailable = true
|
||||
mosquito.Seats(0).ControlledWeapon = 1
|
||||
|
|
@ -5367,6 +5405,7 @@ object GlobalDefinitions {
|
|||
lightgunship.Name = "lightgunship"
|
||||
lightgunship.MaxHealth = 1000
|
||||
lightgunship.MaxShields = 200 + 1
|
||||
lightgunship.CanFly = true
|
||||
lightgunship.Seats += 0 -> new SeatDefinition()
|
||||
lightgunship.Seats(0).Bailable = true
|
||||
lightgunship.Seats(0).ControlledWeapon = 1
|
||||
|
|
@ -5383,6 +5422,7 @@ object GlobalDefinitions {
|
|||
wasp.Name = "wasp"
|
||||
wasp.MaxHealth = 515
|
||||
wasp.MaxShields = 103 + 1
|
||||
wasp.CanFly = true
|
||||
wasp.Seats += 0 -> new SeatDefinition()
|
||||
wasp.Seats(0).Bailable = true
|
||||
wasp.Seats(0).ControlledWeapon = 1
|
||||
|
|
@ -5398,6 +5438,7 @@ object GlobalDefinitions {
|
|||
liberator.Name = "liberator"
|
||||
liberator.MaxHealth = 2500
|
||||
liberator.MaxShields = 500 + 1
|
||||
liberator.CanFly = true
|
||||
liberator.Seats += 0 -> new SeatDefinition()
|
||||
liberator.Seats(0).ControlledWeapon = 3
|
||||
liberator.Seats += 1 -> new SeatDefinition()
|
||||
|
|
@ -5421,6 +5462,7 @@ object GlobalDefinitions {
|
|||
vulture.Name = "vulture"
|
||||
vulture.MaxHealth = 2500
|
||||
vulture.MaxShields = 500 + 1
|
||||
vulture.CanFly = true
|
||||
vulture.Seats += 0 -> new SeatDefinition()
|
||||
vulture.Seats(0).ControlledWeapon = 3
|
||||
vulture.Seats += 1 -> new SeatDefinition()
|
||||
|
|
@ -5444,6 +5486,7 @@ object GlobalDefinitions {
|
|||
dropship.Name = "dropship"
|
||||
dropship.MaxHealth = 5000
|
||||
dropship.MaxShields = 1000 + 1
|
||||
dropship.CanFly = true
|
||||
dropship.Seats += 0 -> new SeatDefinition()
|
||||
dropship.Seats += 1 -> new SeatDefinition()
|
||||
dropship.Seats(1).Bailable = true
|
||||
|
|
@ -5499,6 +5542,7 @@ object GlobalDefinitions {
|
|||
galaxy_gunship.Name = "galaxy_gunship"
|
||||
galaxy_gunship.MaxHealth = 6000
|
||||
galaxy_gunship.MaxShields = 1200 + 1
|
||||
galaxy_gunship.CanFly = true
|
||||
galaxy_gunship.Seats += 0 -> new SeatDefinition()
|
||||
galaxy_gunship.Seats += 1 -> new SeatDefinition()
|
||||
galaxy_gunship.Seats(1).ControlledWeapon = 6
|
||||
|
|
@ -5531,6 +5575,7 @@ object GlobalDefinitions {
|
|||
lodestar.Name = "lodestar"
|
||||
lodestar.MaxHealth = 5000
|
||||
lodestar.MaxShields = 1000 + 1
|
||||
lodestar.CanFly = true
|
||||
lodestar.Seats += 0 -> new SeatDefinition()
|
||||
lodestar.MountPoints += 1 -> 0
|
||||
lodestar.MountPoints += 2 -> 1
|
||||
|
|
@ -5554,6 +5599,7 @@ object GlobalDefinitions {
|
|||
phantasm.MaxHealth = 2500
|
||||
phantasm.MaxShields = 500 + 1
|
||||
phantasm.CanCloak = true
|
||||
phantasm.CanFly = true
|
||||
phantasm.Seats += 0 -> new SeatDefinition()
|
||||
phantasm.Seats += 1 -> new SeatDefinition()
|
||||
phantasm.Seats(1).Bailable = true
|
||||
|
|
@ -5731,6 +5777,10 @@ object GlobalDefinitions {
|
|||
* Initialize `Miscellaneous` globals.
|
||||
*/
|
||||
private def initMiscellaneous() : Unit = {
|
||||
ams_respawn_tube.Name = "ams_respawn_tube"
|
||||
ams_respawn_tube.Delay = 5
|
||||
ams_respawn_tube.SpecificPointFunc = SpawnPoint.AMS
|
||||
|
||||
matrix_terminala.Name = "matrix_terminala"
|
||||
|
||||
matrix_terminalb.Name = "matrix_terminalb"
|
||||
|
|
@ -5789,6 +5839,18 @@ object GlobalDefinitions {
|
|||
bfr_terminal.Tab += 46769 -> OrderTerminalDefinition.VehiclePage(VehicleTerminalDefinition.bfrVehicles, VehicleTerminalDefinition.trunk)
|
||||
bfr_terminal.Tab += 4 -> OrderTerminalDefinition.VehicleLoadoutPage()
|
||||
|
||||
respawn_tube.Name = "respawn_tube"
|
||||
respawn_tube.Delay = 10
|
||||
respawn_tube.SpecificPointFunc = SpawnPoint.Tube
|
||||
|
||||
respawn_tube_sanctuary.Name = "respawn_tube"
|
||||
respawn_tube_sanctuary.Delay = 10
|
||||
respawn_tube_sanctuary.SpecificPointFunc = SpawnPoint.Default
|
||||
|
||||
respawn_tube_tower.Name = "respawn_tube_tower"
|
||||
respawn_tube_tower.Delay = 10
|
||||
respawn_tube_tower.SpecificPointFunc = SpawnPoint.Tube
|
||||
|
||||
teleportpad_terminal.Name = "teleportpad_terminal"
|
||||
teleportpad_terminal.Tab += 0 -> OrderTerminalDefinition.EquipmentPage(EquipmentTerminalDefinition.routerTerminal)
|
||||
|
||||
|
|
|
|||
162
common/src/main/scala/net/psforever/objects/SpawnPoint.scala
Normal file
162
common/src/main/scala/net/psforever/objects/SpawnPoint.scala
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
// Copyright (c) 2019 PSForever
|
||||
package net.psforever.objects
|
||||
|
||||
import net.psforever.objects.definition.{ObjectDefinition, VehicleDefinition}
|
||||
import net.psforever.objects.serverobject.PlanetSideServerObject
|
||||
import net.psforever.packet.game.PlanetSideGUID
|
||||
import net.psforever.types.Vector3
|
||||
|
||||
import scala.collection.mutable
|
||||
|
||||
trait SpawnPoint {
|
||||
psso : PlanetSideServerObject =>
|
||||
/**
|
||||
* An element of the contract of `PlanetSideServerObject`;
|
||||
* but, this makes it visible to a `SpawnPoint` object without casting.
|
||||
* @see `Identifiable.GUID`
|
||||
*/
|
||||
def GUID : PlanetSideGUID
|
||||
/**
|
||||
* An element of the contract of `PlanetSideServerObject`;
|
||||
* but, this makes it visible to a `SpawnPoint` object without casting.
|
||||
* @see `WorldEntity.GUID`
|
||||
* @see `SpecificPoint`
|
||||
*/
|
||||
def Position : Vector3
|
||||
/**
|
||||
* An element of the contract of `PlanetSideServerObject`;
|
||||
* but, this makes it visible to a `SpawnPoint` object without casting.
|
||||
* @see `WorldEntity.GUID`
|
||||
* @see `SpecificPoint`
|
||||
*/
|
||||
def Orientation : Vector3
|
||||
/**
|
||||
* An element of an unspoken contract with `Amenity`.
|
||||
* While not all `SpawnPoint` objects will be `Amenity` objects, a subclass of the `PlanetSideServerObject` class,
|
||||
* they will all promote having an object owner, or "parent."
|
||||
* This should generally be themselves.
|
||||
* @see `Amenity.Owner`
|
||||
*/
|
||||
def Owner : PlanetSideServerObject
|
||||
/**
|
||||
* An element of the contract of `PlanetSideServerObject`;
|
||||
* but, this makes it visible to a `SpawnPoint` object without casting.
|
||||
* @see `PlanetSideGameObject.Definition`
|
||||
* @see `SpecificPoint`
|
||||
*/
|
||||
def Definition : ObjectDefinition with SpawnPointDefinition
|
||||
|
||||
/**
|
||||
* Determine a specific position and orientation in which to spawn the target.
|
||||
* @return a `Tuple` of `Vector3` objects;
|
||||
* the first represents the game world position of spawning;
|
||||
* the second represents the game world direction of spawning
|
||||
*/
|
||||
def SpecificPoint(target : PlanetSideGameObject) : (Vector3, Vector3) = {
|
||||
psso.Definition match {
|
||||
case d : SpawnPointDefinition =>
|
||||
d.SpecificPoint(this, target)
|
||||
case _ =>
|
||||
SpawnPoint.Default(this, target)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object SpawnPoint {
|
||||
def Default(obj : SpawnPoint, target : PlanetSideGameObject) : (Vector3, Vector3) = (obj.Position, obj.Orientation)
|
||||
|
||||
def Tube(obj : SpawnPoint, target : PlanetSideGameObject) : (Vector3, Vector3) = (
|
||||
obj.Position + Vector3.z(1.5f),
|
||||
obj.Orientation.xy + Vector3.z(obj.Orientation.z + 90 % 360)
|
||||
)
|
||||
|
||||
def AMS(obj : SpawnPoint, target : PlanetSideGameObject) : (Vector3, Vector3) = {
|
||||
//position the player alongside either of the AMS's terminals, facing away from it
|
||||
val ori = obj.Orientation
|
||||
val side = if(System.currentTimeMillis() % 2 == 0) 1 else -1 //right | left
|
||||
val x = ori.x
|
||||
val xsin = 3 * side * math.abs(math.sin(math.toRadians(x))).toFloat + 0.5f //sin because 0-degrees is up
|
||||
val z = ori.z
|
||||
val zrot = (z + 90) % 360
|
||||
val zrad = math.toRadians(zrot)
|
||||
val shift = Vector3(math.sin(zrad).toFloat, math.cos(zrad).toFloat, 0) * (3 * side) //x=sin, y=cos because compass-0 is East, not North
|
||||
(
|
||||
obj.Position + shift + (if(x >= 330) { //ams leaning to the left
|
||||
Vector3.z(xsin)
|
||||
}
|
||||
else { //ams leaning to the right
|
||||
Vector3.z(-xsin)
|
||||
}),
|
||||
if(side == 1) {
|
||||
Vector3.z(zrot)
|
||||
}
|
||||
else {
|
||||
Vector3.z((z - 90) % 360)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
def Gate(obj : SpawnPoint, target : PlanetSideGameObject) : (Vector3, Vector3) = {
|
||||
obj.Definition match {
|
||||
case d : SpawnPointDefinition =>
|
||||
val ori = target.Orientation
|
||||
val zrad = math.toRadians(ori.z)
|
||||
val radius = scala.math.random.toFloat * d.UseRadius/2 + 20f //20 is definitely outside of the gating energy field
|
||||
val shift = Vector3(math.sin(zrad).toFloat, math.cos(zrad).toFloat, 0) * radius
|
||||
val altitudeShift = target.Definition match {
|
||||
case vdef : VehicleDefinition if GlobalDefinitions.isFlightVehicle(vdef) =>
|
||||
Vector3.z(scala.math.random.toFloat * d.UseRadius/4 + 20f)
|
||||
case _ =>
|
||||
Vector3.Zero
|
||||
}
|
||||
(obj.Position + shift + altitudeShift, ori)
|
||||
case _ =>
|
||||
Default(obj, target)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
trait SpawnPointDefinition {
|
||||
private var radius : Float = 0f //m
|
||||
private var delay : Long = 0 //s
|
||||
private var noWarp : Option[mutable.Set[VehicleDefinition]] = None
|
||||
private var spawningFunc : (SpawnPoint, PlanetSideGameObject) => (Vector3, Vector3) = SpawnPoint.Default
|
||||
|
||||
def UseRadius : Float = radius
|
||||
|
||||
def UseRadius_=(rad : Float) : Float = {
|
||||
radius = rad
|
||||
UseRadius
|
||||
}
|
||||
|
||||
def Delay : Long = delay
|
||||
|
||||
def Delay_=(toDelay : Long) : Long = {
|
||||
delay = toDelay
|
||||
Delay
|
||||
}
|
||||
|
||||
def VehicleAllowance : Boolean = noWarp.isDefined
|
||||
|
||||
def VehicleAllowance_=(allow : Boolean) : Boolean = {
|
||||
if(allow && noWarp.isEmpty) {
|
||||
noWarp = Some(mutable.Set.empty[VehicleDefinition])
|
||||
}
|
||||
else if(!allow && noWarp.isDefined) {
|
||||
noWarp = None
|
||||
}
|
||||
VehicleAllowance
|
||||
}
|
||||
|
||||
def NoWarp : mutable.Set[VehicleDefinition] = {
|
||||
noWarp.getOrElse(mutable.Set.empty[VehicleDefinition])
|
||||
}
|
||||
|
||||
def SpecificPointFunc : (SpawnPoint, PlanetSideGameObject) => (Vector3, Vector3) = spawningFunc
|
||||
|
||||
def SpecificPointFunc_=(func : (SpawnPoint, PlanetSideGameObject) => (Vector3, Vector3)) : Unit = {
|
||||
spawningFunc = func
|
||||
}
|
||||
|
||||
def SpecificPoint(obj : SpawnPoint, target : PlanetSideGameObject) : (Vector3, Vector3) = spawningFunc(obj, target)
|
||||
}
|
||||
|
|
@ -82,6 +82,7 @@ class Vehicle(private val vehicleDef : VehicleDefinition) extends PlanetSideServ
|
|||
private var trunkAccess : Option[PlanetSideGUID] = None
|
||||
private var jammered : Boolean = false
|
||||
private var cloaked : Boolean = false
|
||||
private var flying : Boolean = false
|
||||
private var capacitor : Int = 0
|
||||
private var continent : String = "home2" //the zone id
|
||||
|
||||
|
|
@ -207,6 +208,13 @@ class Vehicle(private val vehicleDef : VehicleDefinition) extends PlanetSideServ
|
|||
Cloaked
|
||||
}
|
||||
|
||||
def Flying : Boolean = flying
|
||||
|
||||
def Flying_=(isFlying : Boolean) : Boolean = {
|
||||
flying = isFlying
|
||||
Flying
|
||||
}
|
||||
|
||||
def Capacitor : Int = capacitor
|
||||
|
||||
def Capacitor_=(value: Int) : Int = {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ class VehicleDefinition(objectId : Int) extends ObjectDefinition(objectId)
|
|||
private var trunkSize : InventoryTile = InventoryTile.None
|
||||
private var trunkOffset : Int = 0
|
||||
private var canCloak : Boolean = false
|
||||
private var canFly : Boolean = false
|
||||
private var canBeOwned : Boolean = true
|
||||
private var serverVehicleOverrideSpeeds : (Int, Int) = (0, 0)
|
||||
private var deconTime : Option[FiniteDuration] = None
|
||||
|
|
@ -81,6 +82,13 @@ class VehicleDefinition(objectId : Int) extends ObjectDefinition(objectId)
|
|||
CanCloak
|
||||
}
|
||||
|
||||
def CanFly : Boolean = canFly
|
||||
|
||||
def CanFly_=(flying : Boolean) : Boolean = {
|
||||
canFly = flying
|
||||
CanFly
|
||||
}
|
||||
|
||||
def Weapons : mutable.HashMap[Int, ToolDefinition] = weapons
|
||||
|
||||
def Deployment : Boolean = deployment
|
||||
|
|
|
|||
|
|
@ -7,5 +7,13 @@ import net.psforever.packet.game.objectcreate.{VariantVehicleData, VehicleFormat
|
|||
class VariantVehicleConverter extends VehicleConverter {
|
||||
override protected def SpecificFormatModifier : VehicleFormat.Value = VehicleFormat.Variant
|
||||
|
||||
override protected def SpecificFormatData(obj : Vehicle) = Some(VariantVehicleData(0))
|
||||
override protected def SpecificFormatData(obj : Vehicle) = {
|
||||
/*
|
||||
landed is 0
|
||||
flying is 7
|
||||
*/
|
||||
Some(VariantVehicleData(
|
||||
if(obj.Definition.CanFly && obj.Flying) 7 else 0
|
||||
))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,40 +3,46 @@ package net.psforever.objects.serverobject.hackable
|
|||
import net.psforever.objects.Player
|
||||
import net.psforever.objects.serverobject.affinity.FactionAffinity
|
||||
import net.psforever.packet.game.{PlanetSideGUID, TriggeredSound}
|
||||
import net.psforever.types.Vector3
|
||||
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
||||
|
||||
trait Hackable extends FactionAffinity {
|
||||
/** An entry that maintains a reference to the `Player`, and the player's GUID and location when the message was received. */
|
||||
private var hackedBy : Option[(Player, PlanetSideGUID, Vector3)] = None
|
||||
def HackedBy : Option[(Player, PlanetSideGUID, Vector3)] = hackedBy
|
||||
def HackedBy_=(agent : Player) : Option[(Player, PlanetSideGUID, Vector3)] = HackedBy_=(Some(agent))
|
||||
import Hackable._
|
||||
/** inportant information regarding the hack and how it was started */
|
||||
private var hackedBy : Option[HackInfo] = None
|
||||
def HackedBy : Option[HackInfo] = hackedBy
|
||||
def HackedBy_=(agent : Player) : Option[HackInfo] = HackedBy_=(Some(agent))
|
||||
|
||||
/**
|
||||
* Set the hack state of this object by recording important information about the player that caused it.
|
||||
* Set the hack state of this object by recording important information about the player who caused it.
|
||||
* Set the hack state if there is no current hack state.
|
||||
* Override the hack state with a new hack state if the new user has different faction affiliation.
|
||||
* @param agent a `Player`, or no player
|
||||
* @return the player hack entry
|
||||
*/
|
||||
def HackedBy_=(agent : Option[Player]) : Option[(Player, PlanetSideGUID, Vector3)] = {
|
||||
hackedBy match {
|
||||
case None =>
|
||||
//set the hack state if there is no current hack state
|
||||
if(agent.isDefined) {
|
||||
hackedBy = Some(agent.get, agent.get.GUID, agent.get.Position)
|
||||
}
|
||||
case Some(_) =>
|
||||
//clear the hack state if no agent is provided or the agent's faction matches the object faction
|
||||
if(agent.isEmpty || agent.get.Faction == this.Faction) {
|
||||
def HackedBy_=(agent : Option[Player]) : Option[HackInfo] = {
|
||||
(hackedBy, agent) match {
|
||||
case (None, Some(actor)) =>
|
||||
hackedBy = Some(HackInfo(actor.Name, actor.GUID, actor.Faction, actor.Position, System.nanoTime, 0L))
|
||||
case (Some(info), Some(actor)) =>
|
||||
if(actor.Faction == this.Faction) {
|
||||
//hack cleared
|
||||
hackedBy = None
|
||||
}
|
||||
//override the hack state with a new hack state if the new user has different faction affiliation
|
||||
else if(agent.get.Faction != hackedBy.get._1.Faction) {
|
||||
hackedBy = Some(agent.get, agent.get.GUID, agent.get.Position)
|
||||
else if(actor.Faction != info.hackerFaction) {
|
||||
//override the hack state with a new hack state if the new user has different faction affiliation
|
||||
hackedBy = Some(HackInfo(actor.Name, actor.GUID, actor.Faction, actor.Position, System.nanoTime, 0L))
|
||||
}
|
||||
case (_, None) =>
|
||||
hackedBy = None
|
||||
}
|
||||
HackedBy
|
||||
}
|
||||
|
||||
def HackedBy_=(hackInfo : HackInfo) : Option[HackInfo] = {
|
||||
hackedBy = Some(hackInfo)
|
||||
HackedBy
|
||||
}
|
||||
|
||||
/** The sound made when the object is hacked */
|
||||
private var hackSound : TriggeredSound.Value = TriggeredSound.HackDoor
|
||||
def HackSound : TriggeredSound.Value = hackSound
|
||||
|
|
@ -61,3 +67,15 @@ trait Hackable extends FactionAffinity {
|
|||
arr
|
||||
}
|
||||
}
|
||||
|
||||
object Hackable {
|
||||
final case class HackInfo(hackerName : String,
|
||||
hackerGUID : PlanetSideGUID,
|
||||
hackerFaction : PlanetSideEmpire.Value,
|
||||
hackerPos : Vector3,
|
||||
hackStartTime : Long,
|
||||
hackDuration : Long) {
|
||||
def Duration(time : Long) : HackInfo =
|
||||
HackInfo(hackerName, hackerGUID, hackerFaction, hackerPos, hackStartTime, time)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,13 +2,18 @@
|
|||
package net.psforever.objects.serverobject.structures
|
||||
|
||||
import akka.actor.ActorContext
|
||||
import net.psforever.objects.GlobalDefinitions
|
||||
import net.psforever.objects.definition.ObjectDefinition
|
||||
import net.psforever.objects.serverobject.PlanetSideServerObject
|
||||
import net.psforever.objects.serverobject.hackable.Hackable
|
||||
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
||||
import net.psforever.objects.serverobject.terminals.CaptureTerminal
|
||||
import net.psforever.objects.serverobject.tube.SpawnTube
|
||||
import net.psforever.objects.zones.Zone
|
||||
import net.psforever.packet.game.PlanetSideGUID
|
||||
import net.psforever.packet.game._
|
||||
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
||||
|
||||
class Building(private val building_guid : Int, private val map_id : Int, private val zone : Zone, private val buildingType : StructureType.Value) extends PlanetSideServerObject {
|
||||
class Building(private val building_guid : Int, private val map_id : Int, private val zone : Zone, private val buildingType : StructureType.Value, private val buildingDefinition : ObjectDefinition) extends PlanetSideServerObject {
|
||||
/**
|
||||
* The map_id is the identifier number used in BuildingInfoUpdateMessage. This is the index that the building appears in the MPO file starting from index 1
|
||||
* The GUID is the identifier number used in SetEmpireMessage / Facility hacking / PlanetSideAttributeMessage.
|
||||
|
|
@ -36,30 +41,93 @@ class Building(private val building_guid : Int, private val map_id : Int, privat
|
|||
|
||||
def Zone : Zone = zone
|
||||
|
||||
def Info : (
|
||||
Int,
|
||||
Boolean, PlanetSideEmpire.Value, Long, PlanetSideEmpire.Value,
|
||||
Long, Option[Additional1],
|
||||
PlanetSideGeneratorState.Value, Boolean, Boolean,
|
||||
Int, Int,
|
||||
List[Additional2], Long, Boolean,
|
||||
Int, Option[Additional3],
|
||||
Boolean, Boolean
|
||||
) = {
|
||||
//if we have a silo, get the NTU level
|
||||
val ntuLevel : Int = amenities.find(_.Definition == GlobalDefinitions.resource_silo) match {
|
||||
case Some(obj: ResourceSilo) =>
|
||||
obj.CapacitorDisplay.toInt
|
||||
case _ => //we have no silo; we have unlimited power
|
||||
10
|
||||
}
|
||||
//if we have a capture terminal, get the hack status & time from control console if it exists
|
||||
val (hacking, hackingFaction, hackTime) : (Boolean, PlanetSideEmpire.Value, Long) = amenities.find(_.Definition == GlobalDefinitions.capture_terminal) match {
|
||||
case Some(obj: CaptureTerminal with Hackable) =>
|
||||
obj.HackedBy match {
|
||||
case Some(Hackable.HackInfo(_, _, hfaction, _, start, length)) =>
|
||||
(true, hfaction, math.max(0, start + length - System.nanoTime))
|
||||
case _ =>
|
||||
(false, PlanetSideEmpire.NEUTRAL, 0L)
|
||||
}
|
||||
case _ =>
|
||||
(false, PlanetSideEmpire.NEUTRAL, 0L)
|
||||
}
|
||||
//TODO if we have a generator, get the current repair state
|
||||
val (generatorState, bootGeneratorPain) = (PlanetSideGeneratorState.Normal, false)
|
||||
//if we have spawn tubes, determine if any of them are active
|
||||
val (spawnTubesNormal, boostSpawnPain) : (Boolean, Boolean) = {
|
||||
val o = amenities.collect({ case _ : SpawnTube => true }) ///TODO obj.Health > 0
|
||||
if(o.nonEmpty) {
|
||||
(o.foldLeft(false)(_ || _), false) //TODO poll pain field strength
|
||||
}
|
||||
else {
|
||||
(true, false)
|
||||
}
|
||||
}
|
||||
//out
|
||||
(
|
||||
ntuLevel,
|
||||
hacking,
|
||||
hackingFaction,
|
||||
hackTime,
|
||||
if(ntuLevel > 0) Faction else PlanetSideEmpire.NEUTRAL,
|
||||
0, //!! Field != 0 will cause malformed packet. See class def.
|
||||
None,
|
||||
generatorState,
|
||||
spawnTubesNormal,
|
||||
false, //force_dome_active
|
||||
0, //lattice_benefit
|
||||
0, //cavern_benefit; !! Field > 0 will cause malformed packet. See class def.
|
||||
Nil,
|
||||
0,
|
||||
false,
|
||||
8, //!! Field != 8 will cause malformed packet. See class def.
|
||||
None,
|
||||
boostSpawnPain, //boost_spawn_pain
|
||||
bootGeneratorPain //boost_generator_pain
|
||||
)
|
||||
}
|
||||
|
||||
def BuildingType : StructureType.Value = buildingType
|
||||
|
||||
override def Continent : String = zone.Id
|
||||
|
||||
override def Continent_=(zone : String) : String = Continent
|
||||
|
||||
def Definition: ObjectDefinition = Building.BuildingDefinition
|
||||
def Definition: ObjectDefinition = buildingDefinition
|
||||
}
|
||||
|
||||
object Building {
|
||||
final val NoBuilding : Building = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Platform) {
|
||||
final val NoBuilding : Building = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Platform, GlobalDefinitions.building) {
|
||||
override def Faction_=(faction : PlanetSideEmpire.Value) : PlanetSideEmpire.Value = PlanetSideEmpire.NEUTRAL
|
||||
override def Amenities_=(obj : Amenity) : List[Amenity] = Nil
|
||||
}
|
||||
|
||||
final val BuildingDefinition : ObjectDefinition = new ObjectDefinition(0) { Name = "building" }
|
||||
|
||||
def apply(guid : Int, map_id : Int, zone : Zone, buildingType : StructureType.Value) : Building = {
|
||||
new Building(guid, map_id, zone, buildingType)
|
||||
new Building(guid, map_id, zone, buildingType, GlobalDefinitions.building)
|
||||
}
|
||||
|
||||
def Structure(buildingType : StructureType.Value, location : Vector3)(guid : Int, map_id : Int, zone : Zone, context : ActorContext) : Building = {
|
||||
import akka.actor.Props
|
||||
val obj = new Building(guid, map_id, zone, buildingType)
|
||||
val obj = new Building(guid, map_id, zone, buildingType, GlobalDefinitions.building)
|
||||
obj.Position = location
|
||||
obj.Actor = context.actorOf(Props(classOf[BuildingControl], obj), s"$map_id-$buildingType-building")
|
||||
obj
|
||||
|
|
@ -67,10 +135,18 @@ object Building {
|
|||
|
||||
def Structure(buildingType : StructureType.Value)(guid: Int, map_id : Int, zone : Zone, context : ActorContext) : Building = {
|
||||
import akka.actor.Props
|
||||
val obj = new Building(guid, map_id, zone, buildingType)
|
||||
val obj = new Building(guid, map_id, zone, buildingType, GlobalDefinitions.building)
|
||||
obj.Actor = context.actorOf(Props(classOf[BuildingControl], obj), s"$map_id-$buildingType-building")
|
||||
obj
|
||||
}
|
||||
|
||||
def Structure(buildingType : StructureType.Value, buildingDefinition : ObjectDefinition, location : Vector3)(guid: Int, id : Int, zone : Zone, context : ActorContext) : Building = {
|
||||
import akka.actor.Props
|
||||
val obj = new Building(guid, id, zone, buildingType, buildingDefinition)
|
||||
obj.Position = location
|
||||
obj.Actor = context.actorOf(Props(classOf[BuildingControl], obj), s"$id-$buildingType-building")
|
||||
obj
|
||||
}
|
||||
|
||||
final case class SendMapUpdate(all_clients: Boolean)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,26 +1,12 @@
|
|||
// Copyright (c) 2017 PSForever
|
||||
package net.psforever.objects.serverobject.structures
|
||||
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
import akka.actor.{Actor, ActorRef, Props}
|
||||
import net.psforever.objects.GlobalDefinitions
|
||||
import akka.actor.{Actor, ActorRef}
|
||||
import net.psforever.objects.serverobject.affinity.{FactionAffinity, FactionAffinityBehavior}
|
||||
import net.psforever.objects.serverobject.hackable.Hackable
|
||||
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
||||
import net.psforever.objects.serverobject.terminals.CaptureTerminal
|
||||
import net.psforever.packet.game.{BuildingInfoUpdateMessage, PlanetSideGeneratorState}
|
||||
import net.psforever.types.PlanetSideEmpire
|
||||
import net.psforever.packet.game.BuildingInfoUpdateMessage
|
||||
import services.ServiceManager
|
||||
import services.ServiceManager.Lookup
|
||||
import services.galaxy.{GalaxyAction, GalaxyResponse, GalaxyServiceMessage, GalaxyServiceResponse}
|
||||
import services.local.support.HackCaptureActor
|
||||
|
||||
import scala.util.Success
|
||||
import scala.concurrent.duration._
|
||||
import akka.pattern.ask
|
||||
|
||||
import scala.concurrent.{Await, Future}
|
||||
|
||||
class BuildingControl(building : Building) extends Actor with FactionAffinityBehavior.Check {
|
||||
def FactionObject : FactionAffinity = building
|
||||
|
|
@ -47,59 +33,32 @@ class BuildingControl(building : Building) extends Actor with FactionAffinityBeh
|
|||
building.Amenities.foreach(_.Actor forward FactionAffinity.ConfirmFactionAffinity())
|
||||
}
|
||||
sender ! FactionAffinity.AssertFactionAffinity(building, faction)
|
||||
|
||||
case Building.SendMapUpdate(all_clients: Boolean) =>
|
||||
log.info(s"Sending BuildingInfoUpdateMessage update. Zone: ${building.Zone.Number} - Building: ${building.GUID} / MapId: ${building.MapId}")
|
||||
var ntuLevel = 0
|
||||
var is_hacked = false
|
||||
var hack_time_remaining_ms = 0L;
|
||||
var hacked_by_faction = PlanetSideEmpire.NEUTRAL
|
||||
|
||||
// Get Ntu level from silo if it exists
|
||||
building.Amenities.filter(x => (x.Definition == GlobalDefinitions.resource_silo)).headOption.asInstanceOf[Option[ResourceSilo]] match {
|
||||
case Some(obj: ResourceSilo) =>
|
||||
ntuLevel = obj.CapacitorDisplay.toInt
|
||||
case _ => ;
|
||||
}
|
||||
|
||||
// Get hack status & time from control console if it exists
|
||||
building.Amenities.filter(x => x.Definition == GlobalDefinitions.capture_terminal).headOption.asInstanceOf[Option[CaptureTerminal with Hackable]] match {
|
||||
case Some(obj: CaptureTerminal with Hackable) =>
|
||||
if(!obj.HackedBy.isEmpty) {
|
||||
is_hacked = true
|
||||
hacked_by_faction = obj.HackedBy.get._1.Faction
|
||||
}
|
||||
|
||||
import scala.concurrent.ExecutionContext.Implicits.global
|
||||
val future = ask(localService, HackCaptureActor.GetHackTimeRemainingNanos(obj.GUID))(1 second)
|
||||
|
||||
//todo: this is blocking. Not so bad when we're only retrieving one piece of data but as more functionality is added we'll need to change this to be async but wait for all replies before sending BIUM to clients
|
||||
val time = Await.result(future, 1 second).asInstanceOf[Long]
|
||||
hack_time_remaining_ms = TimeUnit.MILLISECONDS.convert(time, TimeUnit.NANOSECONDS)
|
||||
case _ => ;
|
||||
}
|
||||
|
||||
val zoneNumber = building.Zone.Number
|
||||
val buildingNumber = building.MapId
|
||||
log.info(s"sending BuildingInfoUpdateMessage update - zone=$zoneNumber, building=$buildingNumber")
|
||||
val (
|
||||
ntuLevel,
|
||||
isHacked, empireHack, hackTimeRemaining, controllingEmpire,
|
||||
unk1, unk1x,
|
||||
generatorState, spawnTubesNormal, forceDomeActive,
|
||||
latticeBenefit, cavernBenefit,
|
||||
unk4, unk5, unk6,
|
||||
unk7, unk7x,
|
||||
boostSpawnPain, boostGeneratorPain
|
||||
) = building.Info
|
||||
val msg = BuildingInfoUpdateMessage(
|
||||
continent_id = building.Zone.Number, //Zone
|
||||
building_map_id = building.MapId, //Facility
|
||||
ntu_level = ntuLevel,
|
||||
is_hacked,
|
||||
hacked_by_faction,
|
||||
hack_time_remaining_ms,
|
||||
empire_own = building.Faction,
|
||||
unk1 = 0, //!! Field != 0 will cause malformed packet. See class def.
|
||||
unk1x = None,
|
||||
generator_state = PlanetSideGeneratorState.Normal,
|
||||
spawn_tubes_normal = true,
|
||||
force_dome_active = false,
|
||||
lattice_benefit = 0,
|
||||
cavern_benefit = 0, //!! Field > 0 will cause malformed packet. See class def.
|
||||
unk4 = Nil,
|
||||
unk5 = 0,
|
||||
unk6 = false,
|
||||
unk7 = 8, //!! Field != 8 will cause malformed packet. See class def.
|
||||
unk7x = None,
|
||||
boost_spawn_pain = false,
|
||||
boost_generator_pain = false
|
||||
zoneNumber,
|
||||
buildingNumber,
|
||||
ntuLevel,
|
||||
isHacked, empireHack, hackTimeRemaining, controllingEmpire,
|
||||
unk1, unk1x,
|
||||
generatorState, spawnTubesNormal, forceDomeActive,
|
||||
latticeBenefit, cavernBenefit,
|
||||
unk4, unk5, unk6,
|
||||
unk7, unk7x,
|
||||
boostSpawnPain, boostGeneratorPain
|
||||
)
|
||||
|
||||
if(all_clients) {
|
||||
|
|
@ -110,6 +69,6 @@ class BuildingControl(building : Building) extends Actor with FactionAffinityBeh
|
|||
}
|
||||
|
||||
case default =>
|
||||
log.warn(s"BuildingControl: Unknown message ${default} received from ${sender().path}")
|
||||
log.warn(s"BuildingControl: Unknown message $default received from ${sender().path}")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,12 +9,12 @@ object StructureType extends Enumeration {
|
|||
type Type = Value
|
||||
|
||||
val
|
||||
Bridge,
|
||||
Bridge, //technically, a "bridge section"
|
||||
Building, //generic
|
||||
Bunker,
|
||||
Facility,
|
||||
Platform, //outdoor amenities like the spawn pads in sanctuary
|
||||
Tower,
|
||||
WarpGate
|
||||
Bunker, //low accessible ground cover
|
||||
Facility, //large base
|
||||
Platform, //outdoor amenities disconnected froma proper base like the vehicle spawn pads in sanctuary
|
||||
Tower, //also called field towers: watchtower, air tower, gun tower
|
||||
WarpGate //transport point between zones
|
||||
= Value
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,20 +2,96 @@
|
|||
package net.psforever.objects.serverobject.structures
|
||||
|
||||
import akka.actor.ActorContext
|
||||
import net.psforever.objects.definition.ObjectDefinition
|
||||
import net.psforever.objects.serverobject.PlanetSideServerObject
|
||||
import net.psforever.objects.{GlobalDefinitions, SpawnPoint, SpawnPointDefinition}
|
||||
import net.psforever.objects.zones.Zone
|
||||
import net.psforever.packet.game.{Additional1, Additional2, Additional3, PlanetSideGeneratorState}
|
||||
import net.psforever.types.{PlanetSideEmpire, Vector3}
|
||||
|
||||
class WarpGate(building_guid : Int, map_id : Int, zone : Zone) extends Building(building_guid, map_id, zone, StructureType.WarpGate) {
|
||||
class WarpGate(building_guid : Int, map_id : Int, zone : Zone, buildingDefinition : ObjectDefinition with SpawnPointDefinition)
|
||||
extends Building(building_guid, map_id, zone, StructureType.WarpGate, buildingDefinition)
|
||||
with SpawnPoint {
|
||||
private var active : Boolean = true
|
||||
private var broadcast : Boolean = false
|
||||
|
||||
override def Info : (
|
||||
Int,
|
||||
Boolean, PlanetSideEmpire.Value, Long, PlanetSideEmpire.Value,
|
||||
Long, Option[Additional1],
|
||||
PlanetSideGeneratorState.Value, Boolean, Boolean,
|
||||
Int, Int,
|
||||
List[Additional2], Long, Boolean,
|
||||
Int, Option[Additional3],
|
||||
Boolean, Boolean
|
||||
) = {
|
||||
(
|
||||
0,
|
||||
false,
|
||||
PlanetSideEmpire.NEUTRAL,
|
||||
0L,
|
||||
Faction,
|
||||
0, //!! Field != 0 will cause malformed packet. See class def.
|
||||
None,
|
||||
PlanetSideGeneratorState.Normal,
|
||||
true, //TODO?
|
||||
false, //force_dome_active
|
||||
0, //lattice_benefit
|
||||
0, //cavern_benefit; !! Field > 0 will cause malformed packet. See class def.
|
||||
Nil,
|
||||
0,
|
||||
false,
|
||||
8, //!! Field != 8 will cause malformed packet. See class def.
|
||||
None,
|
||||
false, //boost_spawn_pain
|
||||
false //boost_generator_pain
|
||||
)
|
||||
}
|
||||
|
||||
def Active : Boolean = active
|
||||
|
||||
def Active_=(state : Boolean) : Boolean = {
|
||||
active = state
|
||||
Active
|
||||
}
|
||||
|
||||
def Broadcast : Boolean = Active && broadcast
|
||||
|
||||
def Broadcast_=(cast : Boolean) : Boolean = {
|
||||
broadcast = cast
|
||||
Broadcast
|
||||
}
|
||||
|
||||
def Owner : PlanetSideServerObject = this
|
||||
|
||||
override def Definition : ObjectDefinition with SpawnPointDefinition = buildingDefinition
|
||||
//TODO stuff later
|
||||
}
|
||||
|
||||
object WarpGate {
|
||||
def apply(guid : Int, map_id : Int, zone : Zone) : WarpGate = {
|
||||
new WarpGate(guid, map_id, zone)
|
||||
def apply(guid : Int, map_id : Int, zone : Zone, buildingDefinition : ObjectDefinition with SpawnPointDefinition) : WarpGate = {
|
||||
new WarpGate(guid, map_id, zone, buildingDefinition)
|
||||
}
|
||||
|
||||
def Structure(guid : Int, map_id : Int, zone : Zone, context : ActorContext) : WarpGate = {
|
||||
import akka.actor.Props
|
||||
val obj = new WarpGate(guid, map_id, zone)
|
||||
val obj = new WarpGate(guid, map_id, zone, GlobalDefinitions.warpgate)
|
||||
obj.Actor = context.actorOf(Props(classOf[BuildingControl], obj), s"$map_id-gate")
|
||||
obj
|
||||
}
|
||||
|
||||
def Structure(location : Vector3)(guid : Int, map_id : Int, zone : Zone, context : ActorContext) : WarpGate = {
|
||||
import akka.actor.Props
|
||||
val obj = new WarpGate(guid, map_id, zone, GlobalDefinitions.warpgate)
|
||||
obj.Position = location
|
||||
obj.Actor = context.actorOf(Props(classOf[BuildingControl], obj), s"$map_id-gate")
|
||||
obj
|
||||
}
|
||||
|
||||
def Structure(location : Vector3, buildingDefinition : ObjectDefinition with SpawnPointDefinition)(guid : Int, map_id : Int, zone : Zone, context : ActorContext) : WarpGate = {
|
||||
import akka.actor.Props
|
||||
val obj = new WarpGate(guid, map_id, zone, buildingDefinition)
|
||||
obj.Position = location
|
||||
obj.Actor = context.actorOf(Props(classOf[BuildingControl], obj), s"$map_id-gate")
|
||||
obj
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (c) 2017 PSForever
|
||||
package net.psforever.objects.serverobject.tube
|
||||
|
||||
import net.psforever.objects.GlobalDefinitions
|
||||
import net.psforever.objects.{GlobalDefinitions, SpawnPoint}
|
||||
import net.psforever.objects.serverobject.structures.Amenity
|
||||
|
||||
/**
|
||||
|
|
@ -9,7 +9,8 @@ import net.psforever.objects.serverobject.structures.Amenity
|
|||
* that infantry will be arranged upon spawning into the game world.
|
||||
* @param tDef the `ObjectDefinition` that constructs this object and maintains some of its immutable fields
|
||||
*/
|
||||
class SpawnTube(tDef : SpawnTubeDefinition) extends Amenity {
|
||||
class SpawnTube(tDef : SpawnTubeDefinition) extends Amenity
|
||||
with SpawnPoint {
|
||||
def Definition : SpawnTubeDefinition = tDef
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,28 +2,16 @@
|
|||
package net.psforever.objects.serverobject.tube
|
||||
|
||||
import akka.actor.ActorContext
|
||||
import net.psforever.objects.SpawnPointDefinition
|
||||
import net.psforever.objects.definition.ObjectDefinition
|
||||
import net.psforever.objects.definition.converter.SpawnTubeConverter
|
||||
import net.psforever.objects.serverobject.structures.Amenity
|
||||
|
||||
/**
|
||||
* The definition for any `VehicleSpawnPad`.
|
||||
* Currently, all tubes identify as object id 49 - `ams_respawn_tube` - configured manually.
|
||||
* @see `GlobalDefinitions.ams_respawn_tube`
|
||||
* The definition for any spawn point in the game world.
|
||||
*/
|
||||
class SpawnTubeDefinition(object_id : Int) extends ObjectDefinition(object_id) {
|
||||
Name = if(object_id == 49) {
|
||||
"ams_respawn_tube"
|
||||
}
|
||||
else if(object_id == 732) {
|
||||
"respawn_tube"
|
||||
}
|
||||
else if(object_id == 733) {
|
||||
"respawn_tube_tower"
|
||||
}
|
||||
else {
|
||||
throw new IllegalArgumentException("terminal must be object id 49, 732, or 733")
|
||||
}
|
||||
class SpawnTubeDefinition(object_id : Int) extends ObjectDefinition(object_id)
|
||||
with SpawnPointDefinition {
|
||||
Packet = new SpawnTubeConverter
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,6 +61,15 @@ class InterstellarCluster(zones : List[Zone]) extends Actor {
|
|||
sender ! Zone.Lattice.NoValidSpawnPoint(zone_number, None)
|
||||
}
|
||||
|
||||
case msg @ Zone.Lattice.RequestSpecificSpawnPoint(zone_number, _, _) =>
|
||||
recursiveFindWorldInCluster(zones.iterator, _.Number == zone_number) match {
|
||||
case Some(zone) =>
|
||||
zone.Actor forward msg
|
||||
|
||||
case None => //zone_number does not exist
|
||||
sender ! Zone.Lattice.NoValidSpawnPoint(zone_number, None)
|
||||
}
|
||||
|
||||
case _ =>
|
||||
log.warn(s"InterstellarCluster received unknown message");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,9 +15,8 @@ import net.psforever.objects.guid.source.LimitedNumberSource
|
|||
import net.psforever.objects.inventory.Container
|
||||
import net.psforever.objects.serverobject.PlanetSideServerObject
|
||||
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
||||
import net.psforever.objects.serverobject.structures.{Amenity, Building}
|
||||
import net.psforever.objects.serverobject.structures.{Amenity, Building, WarpGate}
|
||||
import net.psforever.objects.serverobject.terminals.ProximityUnit
|
||||
import net.psforever.objects.serverobject.tube.SpawnTube
|
||||
import net.psforever.objects.serverobject.turret.FacilityTurret
|
||||
import net.psforever.packet.game.PlanetSideGUID
|
||||
import net.psforever.types.Vector3
|
||||
|
|
@ -75,7 +74,7 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
|||
|
||||
private var buildings : PairMap[Int, Building] = PairMap.empty[Int, Building]
|
||||
/** key - spawn zone id, value - buildings belonging to spawn zone */
|
||||
private var spawnGroups : Map[Building, List[SpawnTube]] = PairMap[Building, List[SpawnTube]]()
|
||||
private var spawnGroups : Map[Building, List[SpawnPoint]] = PairMap[Building, List[SpawnPoint]]()
|
||||
/** */
|
||||
private var vehicleEvents : ActorRef = ActorRef.noSender
|
||||
|
||||
|
|
@ -92,7 +91,7 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
|||
* <br>
|
||||
* Execution of this operation should be fail-safe.
|
||||
* The chances of failure should be mitigated or skipped.
|
||||
* An testing routine should be run after the fact on the results of the process.
|
||||
* A testing routine should be run after the fact on the results of the process.
|
||||
* @see `ZoneActor.ZoneSetupCheck`
|
||||
* @param context a reference to an `ActorContext` necessary for `Props`
|
||||
*/
|
||||
|
|
@ -188,7 +187,7 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
|||
* @return synchronized reference to the globally unique identifier system
|
||||
*/
|
||||
def GUID(hub : NumberPoolHub) : Boolean = {
|
||||
if(actor == ActorRef.noSender && guid.Pools.map({case ((_, pool)) => pool.Count}).sum == 0) {
|
||||
if(actor == ActorRef.noSender && guid.Pools.map({case (_, pool) => pool.Count}).sum == 0) {
|
||||
import org.fusesource.jansi.Ansi.Color.RED
|
||||
import org.fusesource.jansi.Ansi.ansi
|
||||
println(ansi().fgBright(RED).a(s"""Caution: replacement of the number pool system for zone $Id; function is for testing purposes only""").reset())
|
||||
|
|
@ -312,8 +311,8 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
|||
buildings.get(id)
|
||||
}
|
||||
|
||||
def BuildingByMapId(map_id : Int) : Building = {
|
||||
buildings.filter(x => x._2.MapId == map_id).head._2
|
||||
def BuildingByMapId(map_id : Int) : Option[Building] = {
|
||||
buildings.values.find(_.MapId == map_id)
|
||||
}
|
||||
|
||||
private def BuildLocalObjects(implicit context : ActorContext, guid : NumberPoolHub) : Unit = {
|
||||
|
|
@ -324,7 +323,7 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
|||
//guard against errors here, but don't worry about specifics; let ZoneActor.ZoneSetupCheck complain about problems
|
||||
val other : ListBuffer[IdentifiableEntity] = new ListBuffer[IdentifiableEntity]()
|
||||
//turret to weapon
|
||||
Map.TurretToWeapon.foreach({ case ((turret_guid, weapon_guid)) =>
|
||||
Map.TurretToWeapon.foreach({ case (turret_guid, weapon_guid) =>
|
||||
((GUID(turret_guid) match {
|
||||
case Some(obj : FacilityTurret) =>
|
||||
Some(obj)
|
||||
|
|
@ -385,27 +384,32 @@ class Zone(private val zoneId : String, zoneMap : ZoneMap, zoneNumber : Int) {
|
|||
private def CreateSpawnGroups() : Unit = {
|
||||
buildings.values
|
||||
.filterNot { _.Position == Vector3.Zero }
|
||||
.map(building => { building -> building.Amenities.collect { case(obj : SpawnTube) => obj } })
|
||||
.filter( { case((_, spawns)) => spawns.nonEmpty })
|
||||
.map(building => { building -> building.Amenities.collect { case obj : SpawnPoint => obj } })
|
||||
.filter( { case(_, spawns) => spawns.nonEmpty })
|
||||
.foreach { SpawnGroups }
|
||||
|
||||
buildings.values
|
||||
.filterNot { _.Position == Vector3.Zero }
|
||||
.collect { case building : WarpGate => building -> List(building.asInstanceOf[SpawnPoint]) }
|
||||
.foreach { SpawnGroups }
|
||||
}
|
||||
|
||||
def SpawnGroups() : Map[Building, List[SpawnTube]] = spawnGroups
|
||||
def SpawnGroups() : Map[Building, List[SpawnPoint]] = spawnGroups
|
||||
|
||||
def SpawnGroups(building : Building) : List[SpawnTube] = SpawnGroups(building.MapId)
|
||||
def SpawnGroups(building : Building) : List[SpawnPoint] = SpawnGroups(building.MapId)
|
||||
|
||||
def SpawnGroups(buildingId : Int) : List[SpawnTube] = {
|
||||
spawnGroups.find({ case((building, _)) => building.MapId == buildingId }) match {
|
||||
def SpawnGroups(buildingId : Int) : List[SpawnPoint] = {
|
||||
spawnGroups.find({ case(building, _) => building.MapId == buildingId }) match {
|
||||
case Some((_, list)) =>
|
||||
list
|
||||
case None =>
|
||||
List.empty[SpawnTube]
|
||||
List.empty[SpawnPoint]
|
||||
}
|
||||
}
|
||||
|
||||
def SpawnGroups(spawns : (Building, List[SpawnTube])) : Map[Building, List[SpawnTube]] = {
|
||||
val (building, tubes) = spawns
|
||||
val entry : Map[Building, List[SpawnTube]] = PairMap(building -> tubes)
|
||||
def SpawnGroups(spawns : (Building, List[SpawnPoint])) : Map[Building, List[SpawnPoint]] = {
|
||||
val (building, points) = spawns
|
||||
val entry : Map[Building, List[SpawnPoint]] = PairMap(building -> points)
|
||||
spawnGroups = spawnGroups ++ entry
|
||||
entry
|
||||
}
|
||||
|
|
@ -533,12 +537,14 @@ object Zone {
|
|||
* @param spawn_group the category of spawn points the request wants searched
|
||||
*/
|
||||
final case class RequestSpawnPoint(zone_number : Int, player : Player, spawn_group : Int)
|
||||
|
||||
final case class RequestSpecificSpawnPoint(zone_number : Int, player : Player, target : PlanetSideGUID)
|
||||
/**
|
||||
* Message that returns a discovered spawn point to a request source.
|
||||
* @param zone_id the zone's text identifier
|
||||
* @param spawn_tube the spawn point holding object
|
||||
* @param spawn_point the spawn point holding object
|
||||
*/
|
||||
final case class SpawnPoint(zone_id : String, spawn_tube : SpawnTube)
|
||||
final case class SpawnPoint(zone_id : String, spawn_point : net.psforever.objects.SpawnPoint)
|
||||
/**
|
||||
* Message that informs a request source that a spawn point could not be discovered with the previous criteria.
|
||||
* @param zone_number this zone's numeric identifier
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ package net.psforever.objects.zones
|
|||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
||||
import akka.actor.Actor
|
||||
import net.psforever.objects.{GlobalDefinitions, PlanetSideGameObject, Tool}
|
||||
import net.psforever.objects.serverobject.structures.StructureType
|
||||
import net.psforever.objects.{GlobalDefinitions, PlanetSideGameObject, SpawnPoint, Tool}
|
||||
import net.psforever.objects.serverobject.structures.{StructureType, WarpGate}
|
||||
import net.psforever.objects.serverobject.tube.SpawnTube
|
||||
import net.psforever.objects.vehicles.UtilityType
|
||||
import net.psforever.types.{DriveState, Vector3}
|
||||
import net.psforever.types.{DriveState, PlanetSideEmpire, Vector3}
|
||||
import org.log4s.Logger
|
||||
|
||||
/**
|
||||
|
|
@ -79,8 +79,8 @@ class ZoneActor(zone : Zone) extends Actor {
|
|||
//ams
|
||||
zone.Vehicles
|
||||
.filter(veh =>
|
||||
veh.DeploymentState == DriveState.Deployed &&
|
||||
veh.Definition == GlobalDefinitions.ams &&
|
||||
veh.DeploymentState == DriveState.Deployed &&
|
||||
veh.Faction == player.Faction
|
||||
)
|
||||
.sortBy(veh => Vector3.DistanceSquared(playerPosition, veh.Position.xy))
|
||||
|
|
@ -103,16 +103,23 @@ class ZoneActor(zone : Zone) extends Actor {
|
|||
else if(spawn_group == 7) {
|
||||
Set(StructureType.Facility, StructureType.Building)
|
||||
}
|
||||
else if(spawn_group == 12) {
|
||||
Set(StructureType.WarpGate)
|
||||
}
|
||||
else {
|
||||
Set.empty[StructureType.Value]
|
||||
}
|
||||
zone.SpawnGroups()
|
||||
.filter({ case ((building, _)) =>
|
||||
building.Faction == player.Faction &&
|
||||
buildingTypeSet.contains(building.BuildingType)
|
||||
.filter({ case (building, _) =>
|
||||
buildingTypeSet.contains(building.BuildingType) && (building match {
|
||||
case wg : WarpGate =>
|
||||
building.Faction == player.Faction || building.Faction == PlanetSideEmpire.NEUTRAL || wg.Broadcast
|
||||
case _ =>
|
||||
building.Faction == player.Faction
|
||||
})
|
||||
})
|
||||
.toSeq
|
||||
.sortBy({ case ((building, _)) =>
|
||||
.sortBy({ case (building, _) =>
|
||||
Vector3.DistanceSquared(playerPosition, building.Position.xy)
|
||||
})
|
||||
.headOption match {
|
||||
|
|
@ -137,6 +144,53 @@ class ZoneActor(zone : Zone) extends Actor {
|
|||
sender ! Zone.Lattice.NoValidSpawnPoint(zone_number, None)
|
||||
}
|
||||
|
||||
case Zone.Lattice.RequestSpecificSpawnPoint(zone_number, player, target) =>
|
||||
if(zone_number == zone.Number) {
|
||||
//is our spawn point some other privileged vehicle?
|
||||
zone.Vehicles.collectFirst({
|
||||
case vehicle : SpawnPoint if vehicle.Faction == player.Faction && vehicle.GUID == target =>
|
||||
Some(vehicle) //the vehicle itself is the spawn point
|
||||
case vehicle if vehicle.Faction == player.Faction && vehicle.GUID == target =>
|
||||
vehicle.Utilities.values.find {
|
||||
util =>
|
||||
util().isInstanceOf[SpawnPoint]
|
||||
} match {
|
||||
case None =>
|
||||
None
|
||||
case Some(util) =>
|
||||
Some(util().asInstanceOf[SpawnTube]) //the vehicle's utility is the spawn point
|
||||
}
|
||||
}).orElse( {
|
||||
//is our spawn point a building itself (like a warp gate)?
|
||||
val friendlySpawnGroups = zone.SpawnGroups().filter {
|
||||
case(building, _) =>
|
||||
building match {
|
||||
case wg : WarpGate =>
|
||||
building.Faction == player.Faction || building.Faction == PlanetSideEmpire.NEUTRAL || wg.Broadcast
|
||||
case _ =>
|
||||
building.Faction == player.Faction
|
||||
}
|
||||
}
|
||||
friendlySpawnGroups.collectFirst({
|
||||
case (building, points) if building.MapId == target.guid && points.nonEmpty =>
|
||||
scala.util.Random.shuffle(points).head
|
||||
})
|
||||
.orElse {
|
||||
//is our spawn a conventional amenity?
|
||||
friendlySpawnGroups.values.flatten.find { point => point.GUID == target}
|
||||
}
|
||||
}) match {
|
||||
case Some(point : SpawnPoint) =>
|
||||
sender ! Zone.Lattice.SpawnPoint(zone.Id, point)
|
||||
|
||||
case _ =>
|
||||
sender ! Zone.Lattice.NoValidSpawnPoint(zone_number, Some(target.guid))
|
||||
}
|
||||
}
|
||||
else { //wrong zone_number
|
||||
sender ! Zone.Lattice.NoValidSpawnPoint(zone_number, None)
|
||||
}
|
||||
|
||||
case msg =>
|
||||
log.warn(s"Received unexpected message - $msg")
|
||||
}
|
||||
|
|
@ -147,7 +201,7 @@ class ZoneActor(zone : Zone) extends Actor {
|
|||
def guid(id : Int) = zone.GUID(id)
|
||||
val slog = org.log4s.getLogger(s"zone/${zone.Id}/sanity")
|
||||
val errors = new AtomicInteger(0)
|
||||
val validateObject : (Int, (PlanetSideGameObject)=>Boolean, String) => Boolean = ValidateObject(guid, slog, errors)
|
||||
val validateObject : (Int, PlanetSideGameObject=>Boolean, String) => Boolean = ValidateObject(guid, slog, errors)
|
||||
|
||||
//check bases
|
||||
map.ObjectToBuilding.values.toSet[Int].foreach(building_id =>
|
||||
|
|
@ -166,25 +220,25 @@ class ZoneActor(zone : Zone) extends Actor {
|
|||
)
|
||||
|
||||
//check door to lock association
|
||||
map.DoorToLock.foreach({ case((door_guid, lock_guid)) =>
|
||||
map.DoorToLock.foreach({ case(door_guid, lock_guid) =>
|
||||
validateObject(door_guid, DoorCheck, "door")
|
||||
validateObject(lock_guid, LockCheck, "IFF lock")
|
||||
})
|
||||
|
||||
//check vehicle terminal to spawn pad association
|
||||
map.TerminalToSpawnPad.foreach({ case ((term_guid, pad_guid)) =>
|
||||
map.TerminalToSpawnPad.foreach({ case (term_guid, pad_guid) =>
|
||||
validateObject(term_guid, TerminalCheck, "vehicle terminal")
|
||||
validateObject(pad_guid, VehicleSpawnPadCheck, "vehicle spawn pad")
|
||||
})
|
||||
|
||||
//check implant terminal mech to implant terminal interface association
|
||||
map.TerminalToInterface.foreach({case ((mech_guid, interface_guid)) =>
|
||||
map.TerminalToInterface.foreach({case (mech_guid, interface_guid) =>
|
||||
validateObject(mech_guid, ImplantMechCheck, "implant terminal mech")
|
||||
validateObject(interface_guid, TerminalCheck, "implant terminal interface")
|
||||
})
|
||||
|
||||
//check manned turret to weapon association
|
||||
map.TurretToWeapon.foreach({ case ((turret_guid, weapon_guid)) =>
|
||||
map.TurretToWeapon.foreach({ case (turret_guid, weapon_guid) =>
|
||||
validateObject(turret_guid, FacilityTurretCheck, "facility turret mount")
|
||||
if(validateObject(weapon_guid, WeaponCheck, "facility turret weapon")) {
|
||||
if(guid(weapon_guid).get.asInstanceOf[Tool].AmmoSlots.count(!_.Box.HasGUID) > 0) {
|
||||
|
|
@ -213,8 +267,8 @@ object ZoneActor {
|
|||
* @return `true` if the object was discovered and validates correctly;
|
||||
* `false` if the object failed any tests
|
||||
*/
|
||||
def ValidateObject(guid : (Int)=>Option[PlanetSideGameObject], elog : Logger, errorCounter : AtomicInteger)
|
||||
(object_guid : Int, test : (PlanetSideGameObject)=>Boolean, description : String) : Boolean = {
|
||||
def ValidateObject(guid : Int=>Option[PlanetSideGameObject], elog : Logger, errorCounter : AtomicInteger)
|
||||
(object_guid : Int, test : PlanetSideGameObject=>Boolean, description : String) : Boolean = {
|
||||
try {
|
||||
if(!test(guid(object_guid).get)) {
|
||||
elog.error(s"expected id $object_guid to be a $description, but it was not")
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ class ZoneVehicleActor(zone : Zone, vehicleList : ListBuffer[Vehicle]) extends A
|
|||
}
|
||||
else {
|
||||
vehicleList += vehicle
|
||||
vehicle.Continent = zone.Id
|
||||
vehicle.Actor = context.actorOf(Props(classOf[VehicleControl], vehicle), s"${vehicle.Definition.Name}_${vehicle.GUID.guid}")
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,10 +54,9 @@ object BindStatus extends Enumeration(1) {
|
|||
* Find other bind descriptors.
|
||||
* @param action the purpose of the packet
|
||||
* @param bind_desc a text description of the respawn binding point
|
||||
* @param unk1 na;
|
||||
* usually set `true` if there is more data in the packet ...
|
||||
* @param display_icon show the selection icon on the redeployment map
|
||||
* @param logging true, to report on bind point change visible in the events window;
|
||||
* false, to render spawn change silent;
|
||||
* false, to render spawn change silently;
|
||||
* some first time notifications will always display regardless of this flag
|
||||
* @param spawn_group the kind of spawn request that will be made;
|
||||
* affects the type of icon displayed;
|
||||
|
|
@ -71,7 +70,7 @@ object BindStatus extends Enumeration(1) {
|
|||
*/
|
||||
final case class BindPlayerMessage(action : BindStatus.Value,
|
||||
bind_desc : String,
|
||||
unk1 : Boolean,
|
||||
display_icon : Boolean,
|
||||
logging : Boolean,
|
||||
spawn_group : SpawnGroup.Value,
|
||||
zone_number : Long,
|
||||
|
|
@ -94,7 +93,7 @@ object BindPlayerMessage extends Marshallable[BindPlayerMessage] {
|
|||
implicit val codec : Codec[BindPlayerMessage] = (
|
||||
("action" | BindStatus.codec) ::
|
||||
("bind_desc" | PacketHelpers.encodedString) ::
|
||||
("unk1" | bool) ::
|
||||
("display_icon" | bool) ::
|
||||
("logging" | bool) ::
|
||||
("spawn_group" | spawnGroupCodec) ::
|
||||
("zone_number" | uint32L) ::
|
||||
|
|
|
|||
|
|
@ -7,14 +7,23 @@ import scodec.Codec
|
|||
import scodec.codecs._
|
||||
|
||||
/**
|
||||
*
|
||||
* @param cargo_vehicle_guid Cargo vehicle GUID (galaxy / lodestar)
|
||||
* @param requesting_vehicle Seems to be vehicle that requested mounting (0 after mount)
|
||||
* @param mounted_vehicle Seems to be vehicle that requested mounting after mount (0 before mount)
|
||||
* @param dismounted_vehicle Seems to be vehicle that was mounted after disembarking (0 before embark or reset to 0 when MountVehicleCargoMsg received)
|
||||
* @param slot Mount point for cargo bay 1 = lodestar, 15 = galaxy
|
||||
* @param mount_status Mount status? 0 = None, 1 = Mount/Dismount in progress, 3 = Mounted
|
||||
* @param orientation 0 = normal, 1 = sideways (e.g. router in lodestar)
|
||||
* na
|
||||
* @see `CargoStatus`
|
||||
* @see `MountVehicleCargoMsg`
|
||||
* @param cargo_vehicle_guid always the carrier vehicle
|
||||
* @param requesting_vehicle cargo vehicle that requested mounting during the mounting process;
|
||||
* blank when the process is complete
|
||||
* @param mounted_vehicle cargo vehicle that requested mounting after the mounting process is complete;
|
||||
* blank before the process is complete
|
||||
* @param dismounted_vehicle cargo vehicle that was mounted after disembarking;
|
||||
* blank before disembark
|
||||
* blank before mounting request, when packet `MountVehicleCargoMsg` is received
|
||||
* @param slot cargo hold mount position;
|
||||
* common values are 1 for the `lodestar` and 15 for the `dropship`
|
||||
* @param mount_status cargo mount status
|
||||
* @param orientation direction the cargo vehicle faces when stowed in the carrier cargo bay;
|
||||
* 0 is "normal," front facing forward;
|
||||
* 1 is "sideways," front facing the side of the carrier vehicle, e.g. `router`
|
||||
*/
|
||||
final case class CargoMountPointStatusMessage(cargo_vehicle_guid : PlanetSideGUID,
|
||||
requesting_vehicle: PlanetSideGUID,
|
||||
|
|
|
|||
|
|
@ -14,13 +14,17 @@ import scodec.codecs._
|
|||
* @param pos the xyz-coordinate location in the world
|
||||
* @param ang the orientation of the vehicle
|
||||
* @param vel optional movement data
|
||||
* @param unk2 na
|
||||
* @param flying flight information, valid only for a vehicle that can fly when in flight;
|
||||
* `Some(7)`, when in a flying state (vertical thrust unnecessary to unlock movement)
|
||||
* `None`, when landed and for all vehicles that do not fly
|
||||
* @param unk3 na
|
||||
* @param unk4 na
|
||||
* @param wheel_direction for ground vehicles, whether the wheels are being turned;
|
||||
* @param wheel_direction for ground vehicles, whether and how much the wheels are being turned;
|
||||
* 15 for straight;
|
||||
* 0 for hard right;
|
||||
* 30 for hard left
|
||||
* 30 for hard left;
|
||||
* values in between are possible;
|
||||
* vehicles that hover also influence this field as expected
|
||||
* @param unk5 na - Possibly a flag to indicate the vehicle is attached to something else e.g. is in a galaxy/lodestar cargo bay
|
||||
* @param unk6 na
|
||||
* @see `PlacementData`
|
||||
|
|
@ -30,7 +34,7 @@ final case class VehicleStateMessage(vehicle_guid : PlanetSideGUID,
|
|||
pos : Vector3,
|
||||
ang : Vector3,
|
||||
vel : Option[Vector3],
|
||||
unk2 : Option[Int],
|
||||
flying : Option[Int],
|
||||
unk3 : Int,
|
||||
unk4 : Int,
|
||||
wheel_direction : Int,
|
||||
|
|
@ -61,7 +65,7 @@ object VehicleStateMessage extends Marshallable[VehicleStateMessage] {
|
|||
("pos" | Vector3.codec_pos) ::
|
||||
("ang" | codec_orient) ::
|
||||
optional(bool, "vel" | Vector3.codec_vel) ::
|
||||
optional(bool, "unk2" | uintL(5)) ::
|
||||
optional(bool, "flying" | uintL(5)) ::
|
||||
("unk3" | uintL(7)) ::
|
||||
("unk4" | uint4L) ::
|
||||
("wheel_direction" | uintL(5)) ::
|
||||
|
|
|
|||
|
|
@ -15,21 +15,18 @@ import scodec.codecs._
|
|||
* The process of gate transportation should not start until the server responds to this packet.<br>
|
||||
* <br>
|
||||
* Exploration 1:<br>
|
||||
* Does this packet apply to geowarp transport as well?<br>
|
||||
* <br>
|
||||
* Exploration 2:<br>
|
||||
* Those last two fields that are usually blanked do something?
|
||||
* @param continent_guid the continent (zone)
|
||||
* @param building_guid the warp gate
|
||||
* @param dest_building_guid the destination warp gate
|
||||
* @param dest_continent_guid the destination continent (zone)
|
||||
* Does this packet apply to geowarp transport as well?
|
||||
* @param from_zone the continent (zone)
|
||||
* @param from_gate_guid the warp gate
|
||||
* @param to_gate_mapid the destination warp gate
|
||||
* @param to_zone the destination continent (zone)
|
||||
* @param unk1 na; always zero?
|
||||
* @param unk2 na; always zero?
|
||||
*/
|
||||
final case class WarpgateRequest(continent_guid : PlanetSideGUID,
|
||||
building_guid : PlanetSideGUID,
|
||||
dest_building_guid : PlanetSideGUID,
|
||||
dest_continent_guid : PlanetSideGUID,
|
||||
final case class WarpgateRequest(from_zone : PlanetSideGUID,
|
||||
from_gate_guid : PlanetSideGUID,
|
||||
to_gate_mapid : PlanetSideGUID,
|
||||
to_zone : PlanetSideGUID,
|
||||
unk1 : Int,
|
||||
unk2 : Int)
|
||||
extends PlanetSideGamePacket {
|
||||
|
|
@ -40,10 +37,10 @@ final case class WarpgateRequest(continent_guid : PlanetSideGUID,
|
|||
|
||||
object WarpgateRequest extends Marshallable[WarpgateRequest] {
|
||||
implicit val codec : Codec[WarpgateRequest] = (
|
||||
("continent_guid" | PlanetSideGUID.codec) ::
|
||||
("building_guid" | PlanetSideGUID.codec) ::
|
||||
("dest_building_guid" | PlanetSideGUID.codec) ::
|
||||
("dest_continent_guid" | PlanetSideGUID.codec) ::
|
||||
("from_zone" | PlanetSideGUID.codec) ::
|
||||
("from_gate_guid" | PlanetSideGUID.codec) ::
|
||||
("to_gate_mapid" | PlanetSideGUID.codec) ::
|
||||
("to_zone" | PlanetSideGUID.codec) ::
|
||||
("unk1" | uint8L) ::
|
||||
("unk2" | uint8L)
|
||||
).as[WarpgateRequest]
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ package net.psforever.types
|
|||
* The icons produced by the normal and the bound tower and facility groups are not detailed.
|
||||
* The ones that are not designated as "bound" also do not display icons when manually set.
|
||||
* The AMS spawn group icons have an overhead AMS glyph and are smaller in radius, identical otherwise.
|
||||
* @see `BindPlayerMessage`
|
||||
*/
|
||||
object SpawnGroup extends Enumeration {
|
||||
type Type = Value
|
||||
|
|
|
|||
|
|
@ -108,11 +108,13 @@ object Vector3 {
|
|||
).as[Vector3]
|
||||
|
||||
/**
|
||||
* A common vector object that only concerns itself with rotation around the world-up axis.
|
||||
* @param yaw the angle of rotation
|
||||
* A common vector object that only concerns itself
|
||||
* with rotation around the world-up axis
|
||||
* or the "world up" coordinate direction.
|
||||
* @param value the third coordinate
|
||||
* @return a `Vector3` object
|
||||
*/
|
||||
def z(yaw : Float) : Vector3 = Vector3(0, 0, yaw)
|
||||
def z(value : Float) : Vector3 = Vector3(0, 0, value)
|
||||
|
||||
/**
|
||||
* Calculate the actual distance between two points.
|
||||
|
|
|
|||
|
|
@ -23,9 +23,15 @@ class HackCaptureActor extends Actor {
|
|||
def receive : Receive = {
|
||||
case HackCaptureActor.ObjectIsHacked(target, zone, unk1, unk2, duration, time) =>
|
||||
log.trace(s"${target.GUID} is hacked.")
|
||||
target.HackedBy match {
|
||||
case Some(hackInfo) =>
|
||||
target.HackedBy = hackInfo.Duration(duration.toNanos)
|
||||
case None =>
|
||||
log.error(s"Initial $target hack information is missing")
|
||||
}
|
||||
|
||||
hackedObjects.filter(x => x.target == target).headOption match {
|
||||
case Some(x) =>
|
||||
hackedObjects.find(_.target == target) match {
|
||||
case Some(_) =>
|
||||
log.trace(s"${target.GUID} was already hacked - removing it from the hacked objects list before re-adding it.")
|
||||
hackedObjects = hackedObjects.filterNot(x => x.target == target)
|
||||
log.warn(s"len: ${hackedObjects.length}")
|
||||
|
|
@ -49,7 +55,7 @@ class HackCaptureActor extends Actor {
|
|||
unhackObjects.foreach(entry => {
|
||||
log.trace(s"Capture terminal hack timeout reached for terminal ${entry.target.GUID}")
|
||||
|
||||
val hackedByFaction = entry.target.HackedBy.get._1.Faction
|
||||
val hackedByFaction = entry.target.HackedBy.get.hackerFaction
|
||||
entry.target.Actor ! CommonMessages.ClearHack()
|
||||
|
||||
context.parent ! HackCaptureActor.HackTimeoutReached(entry.target.GUID, entry.zone.Id, entry.unk1, entry.unk2, hackedByFaction) //call up to the main event system
|
||||
|
|
@ -58,7 +64,7 @@ class HackCaptureActor extends Actor {
|
|||
// If there's hacked objects left in the list restart the timer with the shortest hack time left
|
||||
RestartTimer()
|
||||
|
||||
case HackCaptureActor.ClearHack(target, zone) =>
|
||||
case HackCaptureActor.ClearHack(target, _) =>
|
||||
hackedObjects = hackedObjects.filterNot(x => x.target == target)
|
||||
target.Owner.Actor ! Building.SendMapUpdate(all_clients = true)
|
||||
|
||||
|
|
@ -66,19 +72,19 @@ class HackCaptureActor extends Actor {
|
|||
RestartTimer()
|
||||
|
||||
case HackCaptureActor.GetHackTimeRemainingNanos(capture_console_guid) =>
|
||||
hackedObjects.filter(x => x.target.GUID == capture_console_guid).headOption match {
|
||||
hackedObjects.find(_.target.GUID == capture_console_guid) match {
|
||||
case Some(obj: HackCaptureActor.HackEntry) =>
|
||||
val time_left: Long = obj.duration.toNanos - (System.nanoTime - obj.hack_timestamp)
|
||||
sender ! time_left
|
||||
case _ =>
|
||||
log.warn(s"Couldn't find capture terminal guid ${capture_console_guid} in hackedObjects list")
|
||||
log.warn(s"Couldn't find capture terminal guid $capture_console_guid in hackedObjects list")
|
||||
sender ! 0L
|
||||
}
|
||||
case _ => ;
|
||||
}
|
||||
|
||||
private def RestartTimer(): Unit = {
|
||||
if(hackedObjects.length != 0) {
|
||||
if(hackedObjects.nonEmpty) {
|
||||
val now = System.nanoTime()
|
||||
def minTimeLeft(entry1: HackCaptureActor.HackEntry, entry2: HackCaptureActor.HackEntry): HackCaptureActor.HackEntry = {
|
||||
val entry1TimeLeft = entry1.duration.toNanos - (now - entry1.hack_timestamp)
|
||||
|
|
@ -32,4 +32,9 @@ object VehicleAction {
|
|||
final case class VehicleState(player_guid : PlanetSideGUID, vehicle_guid : PlanetSideGUID, unk1 : Int, pos : Vector3, ang : Vector3, vel : Option[Vector3], unk2 : Option[Int], unk3 : Int, unk4 : Int, wheel_direction : Int, unk5 : Boolean, unk6 : Boolean) extends Action
|
||||
final case class SendResponse(player_guid: PlanetSideGUID, msg : PlanetSideGamePacket) extends Action
|
||||
final case class UpdateAmsSpawnPoint(zone : Zone) extends Action
|
||||
|
||||
final case class TransferPassengerChannel(player_guid : PlanetSideGUID, temp_channel : String, new_channel : String, vehicle : Vehicle) extends Action
|
||||
final case class TransferPassenger(player_guid : PlanetSideGUID, temp_channel : String, vehicle : Vehicle, vehicle_to_delete : PlanetSideGUID) extends Action
|
||||
|
||||
final case class KickCargo(player_guid : PlanetSideGUID, cargo : Vehicle, speed : Int) extends Action
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,4 +36,9 @@ object VehicleResponse {
|
|||
final case class VehicleState(vehicle_guid : PlanetSideGUID, unk1 : Int, pos : Vector3, ang : Vector3, vel : Option[Vector3], unk2 : Option[Int], unk3 : Int, unk4 : Int, wheel_direction : Int, unk5 : Boolean, unk6 : Boolean) extends Response
|
||||
final case class SendResponse(msg: PlanetSideGamePacket) extends Response
|
||||
final case class UpdateAmsSpawnPoint(list : List[SpawnTube]) extends Response
|
||||
|
||||
final case class TransferPassengerChannel(old_channel : String, temp_channel : String, vehicle : Vehicle) extends Response
|
||||
final case class TransferPassenger(temp_channel : String, vehicle : Vehicle, vehicle_to_delete : PlanetSideGUID) extends Response
|
||||
|
||||
final case class KickCargo(cargo : Vehicle, speed : Int) extends Response
|
||||
}
|
||||
|
|
|
|||
|
|
@ -130,6 +130,20 @@ class VehicleService extends Actor {
|
|||
//unlike other messages, just return to sender, don't publish
|
||||
case VehicleAction.UpdateAmsSpawnPoint(zone : Zone) =>
|
||||
sender ! VehicleServiceResponse(s"/$forChannel/Vehicle", Service.defaultPlayerGUID, VehicleResponse.UpdateAmsSpawnPoint(AmsSpawnPoints(zone)))
|
||||
|
||||
case VehicleAction.TransferPassengerChannel(player_guid, old_channel, temp_channel, vehicle) =>
|
||||
VehicleEvents.publish(
|
||||
VehicleServiceResponse(s"/$forChannel/Vehicle", player_guid, VehicleResponse.TransferPassengerChannel(old_channel, temp_channel, vehicle))
|
||||
)
|
||||
case VehicleAction.TransferPassenger(player_guid, temp_channel, vehicle, vehicle_to_delete) =>
|
||||
VehicleEvents.publish(
|
||||
VehicleServiceResponse(s"/$forChannel/Vehicle", player_guid, VehicleResponse.TransferPassenger(temp_channel, vehicle, vehicle_to_delete))
|
||||
)
|
||||
|
||||
case VehicleAction.KickCargo(player_guid, cargo, speed) =>
|
||||
VehicleEvents.publish(
|
||||
VehicleServiceResponse(s"/$forChannel/Vehicle", player_guid, VehicleResponse.KickCargo(cargo, speed))
|
||||
)
|
||||
case _ => ;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ class BuildingTest extends Specification {
|
|||
class WarpGateTest extends Specification {
|
||||
"WarpGate" should {
|
||||
"construct" in {
|
||||
val bldg = WarpGate(0, 10, Zone.Nowhere)
|
||||
val bldg = WarpGate(0, 10, Zone.Nowhere, GlobalDefinitions.warpgate)
|
||||
bldg.MapId mustEqual 10
|
||||
bldg.Actor mustEqual ActorRef.noSender
|
||||
bldg.Amenities mustEqual Nil
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ object DoorControlTest {
|
|||
def SetUpAgents(faction : PlanetSideEmpire.Value)(implicit system : ActorSystem) : (Player, Door) = {
|
||||
val door = Door(GlobalDefinitions.door)
|
||||
door.Actor = system.actorOf(Props(classOf[DoorControl], door), "door")
|
||||
door.Owner = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building)
|
||||
door.Owner = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
door.Owner.Faction = faction
|
||||
(Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), door)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ class FactionAffinityTest extends Specification {
|
|||
|
||||
"inherits affinity from owner 2" in {
|
||||
val obj = new Door(GlobalDefinitions.door)
|
||||
val bldg = new Building(building_guid = 0, map_id = 1, Zone.Nowhere, StructureType.Building)
|
||||
val bldg = new Building(building_guid = 0, map_id = 1, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
obj.Owner = bldg
|
||||
obj.Faction mustEqual PlanetSideEmpire.NEUTRAL
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ object IFFLockControlTest {
|
|||
def SetUpAgents(faction : PlanetSideEmpire.Value)(implicit system : ActorSystem) : (Player, IFFLock) = {
|
||||
val lock = IFFLock(GlobalDefinitions.lock_external)
|
||||
lock.Actor = system.actorOf(Props(classOf[IFFLockControl], lock), "lock-control")
|
||||
lock.Owner = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building)
|
||||
lock.Owner = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
lock.Owner.Faction = faction
|
||||
(Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), lock)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import net.psforever.packet.game.{PlanetSideGUID, UseItemMessage}
|
|||
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire, Vector3}
|
||||
import org.specs2.mutable.Specification
|
||||
import services.ServiceManager
|
||||
import services.avatar.{AvatarAction, AvatarService, AvatarServiceMessage}
|
||||
import services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||
|
||||
import scala.concurrent.duration._
|
||||
|
||||
|
|
@ -111,7 +111,7 @@ class ResourceSiloControlNtuWarningTest extends ActorTest {
|
|||
obj.GUID = PlanetSideGUID(1)
|
||||
obj.Actor = system.actorOf(Props(classOf[ResourceSiloControl], obj), "test-silo")
|
||||
obj.Actor ! "startup"
|
||||
obj.Owner = new Building(building_guid = 6, map_id = 0, Zone.Nowhere, StructureType.Building)
|
||||
obj.Owner = new Building(building_guid = 6, map_id = 0, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
|
||||
"Resource silo" should {
|
||||
"announce high ntu" in {
|
||||
|
|
@ -144,7 +144,7 @@ class ResourceSiloControlUpdate1Test extends ActorTest {
|
|||
obj.GUID = PlanetSideGUID(1)
|
||||
obj.Actor = system.actorOf(Props(classOf[ResourceSiloControl], obj), "test-silo")
|
||||
obj.Actor ! "startup"
|
||||
val bldg = new Building(building_guid = 6, map_id = 0, Zone.Nowhere, StructureType.Building)
|
||||
val bldg = new Building(building_guid = 6, map_id = 0, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
val probe2 = TestProbe()
|
||||
bldg.Actor = system.actorOf(Props(classOf[ResourceSiloTest.ProbedBuildingControl], probe2), "test-bldg")
|
||||
obj.Owner = bldg
|
||||
|
|
@ -211,7 +211,7 @@ class ResourceSiloControlUpdate2Test extends ActorTest {
|
|||
obj.GUID = PlanetSideGUID(1)
|
||||
obj.Actor = system.actorOf(Props(classOf[ResourceSiloControl], obj), "test-silo")
|
||||
obj.Actor ! "startup"
|
||||
val bldg = new Building(building_guid = 6, map_id = 0, Zone.Nowhere, StructureType.Building)
|
||||
val bldg = new Building(building_guid = 6, map_id = 0, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
val probe2 = TestProbe()
|
||||
bldg.Actor = system.actorOf(Props(classOf[ResourceSiloTest.ProbedBuildingControl], probe2), "test-bldg")
|
||||
obj.Owner = bldg
|
||||
|
|
@ -270,7 +270,7 @@ class ResourceSiloControlNoUpdateTest extends ActorTest {
|
|||
obj.GUID = PlanetSideGUID(1)
|
||||
obj.Actor = system.actorOf(Props(classOf[ResourceSiloControl], obj), "test-silo")
|
||||
obj.Actor ! "startup"
|
||||
val bldg = new Building(building_guid = 6, map_id = 6, Zone.Nowhere, StructureType.Building)
|
||||
val bldg = new Building(building_guid = 6, map_id = 6, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
val probe2 = TestProbe()
|
||||
bldg.Actor = system.actorOf(Props(classOf[ResourceSiloTest.ProbedBuildingControl], probe2), "test-bldg")
|
||||
obj.Owner = bldg
|
||||
|
|
|
|||
|
|
@ -9,34 +9,9 @@ import org.specs2.mutable.Specification
|
|||
|
||||
class SpawnTubeTest extends Specification {
|
||||
"SpawnTubeDefinition" should {
|
||||
"define (ams_respawn_tube)" in {
|
||||
"define" in {
|
||||
val obj = new SpawnTubeDefinition(49)
|
||||
obj.ObjectId mustEqual 49
|
||||
obj.Name mustEqual "ams_respawn_tube"
|
||||
}
|
||||
|
||||
"define (respawn_tube)" in {
|
||||
val obj = new SpawnTubeDefinition(732)
|
||||
obj.ObjectId mustEqual 732
|
||||
obj.Name mustEqual "respawn_tube"
|
||||
}
|
||||
|
||||
"define (respawn_tube_tower)" in {
|
||||
val obj = new SpawnTubeDefinition(733)
|
||||
obj.ObjectId mustEqual 733
|
||||
obj.Name mustEqual "respawn_tube_tower"
|
||||
}
|
||||
|
||||
"define (invalid)" in {
|
||||
var id : Int = (math.random * Int.MaxValue).toInt
|
||||
if(id == 49 || id == 733) {
|
||||
id += 1
|
||||
}
|
||||
else if(id == 732) {
|
||||
id += 2
|
||||
}
|
||||
|
||||
new SpawnTubeDefinition(id) must throwA[IllegalArgumentException]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ object VehicleSpawnPadControlTest {
|
|||
|
||||
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 = new Building(building_guid = 0, map_id = 0, zone, StructureType.Building, GlobalDefinitions.building)
|
||||
pad.Owner.Faction = faction
|
||||
val player = Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute))
|
||||
player.GUID = PlanetSideGUID(10)
|
||||
|
|
|
|||
|
|
@ -243,14 +243,14 @@ class ZoneActorTest extends ActorTest {
|
|||
val reply1 = receiveOne(Duration.create(200, "ms"))
|
||||
assert(reply1.isInstanceOf[Zone.Lattice.SpawnPoint])
|
||||
assert(reply1.asInstanceOf[Zone.Lattice.SpawnPoint].zone_id == "test")
|
||||
assert(reply1.asInstanceOf[Zone.Lattice.SpawnPoint].spawn_tube.Owner == bldg1)
|
||||
assert(reply1.asInstanceOf[Zone.Lattice.SpawnPoint].spawn_point.Owner == bldg1)
|
||||
|
||||
player.Position = Vector3(3,3,3) //closer to bldg3
|
||||
zone.Actor ! Zone.Lattice.RequestSpawnPoint(1, player, 7)
|
||||
val reply3 = receiveOne(Duration.create(200, "ms"))
|
||||
assert(reply3.isInstanceOf[Zone.Lattice.SpawnPoint])
|
||||
assert(reply3.asInstanceOf[Zone.Lattice.SpawnPoint].zone_id == "test")
|
||||
assert(reply3.asInstanceOf[Zone.Lattice.SpawnPoint].spawn_tube.Owner == bldg3)
|
||||
assert(reply3.asInstanceOf[Zone.Lattice.SpawnPoint].spawn_point.Owner == bldg3)
|
||||
}
|
||||
|
||||
"will report if no spawn points have been found in a zone" in {
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ object ImplantTerminalMechTest {
|
|||
|
||||
val terminal = ImplantTerminalMech(GlobalDefinitions.implant_terminal_mech)
|
||||
terminal.Actor = system.actorOf(Props(classOf[ImplantTerminalMechControl], terminal), "mech")
|
||||
terminal.Owner = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building)
|
||||
terminal.Owner = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
terminal.Owner.Faction = faction
|
||||
terminal.GUID = PlanetSideGUID(1)
|
||||
(Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ class OrderTerminalTest extends Specification {
|
|||
val avatar = Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute)
|
||||
val player = Player(avatar)
|
||||
|
||||
val building = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building)
|
||||
val building = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
building.Faction = PlanetSideEmpire.TR
|
||||
val infantryTerminal = Terminal(GlobalDefinitions.order_terminal)
|
||||
infantryTerminal.Owner = building
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ class ProximityTerminalControlStartTest extends ActorTest {
|
|||
AddPool("dynamic", 1 to 10)
|
||||
}
|
||||
}
|
||||
new Building(building_guid = 0, map_id = 0, zone, StructureType.Facility) {
|
||||
new Building(building_guid = 0, map_id = 0, zone, StructureType.Facility, GlobalDefinitions.building) {
|
||||
Amenities = terminal
|
||||
Faction = PlanetSideEmpire.VS
|
||||
}
|
||||
|
|
@ -153,7 +153,7 @@ class ProximityTerminalControlTwoUsersTest extends ActorTest {
|
|||
AddPool("dynamic", 1 to 10)
|
||||
}
|
||||
}
|
||||
new Building(building_guid = 0, map_id = 0, zone, StructureType.Facility) {
|
||||
new Building(building_guid = 0, map_id = 0, zone, StructureType.Facility, GlobalDefinitions.building) {
|
||||
Amenities = terminal
|
||||
Faction = PlanetSideEmpire.VS
|
||||
}
|
||||
|
|
@ -205,7 +205,7 @@ class ProximityTerminalControlStopTest extends ActorTest {
|
|||
AddPool("dynamic", 1 to 10)
|
||||
}
|
||||
}
|
||||
new Building(building_guid = 0, map_id = 0, zone, StructureType.Facility) {
|
||||
new Building(building_guid = 0, map_id = 0, zone, StructureType.Facility, GlobalDefinitions.building) {
|
||||
Amenities = terminal
|
||||
Faction = PlanetSideEmpire.VS
|
||||
}
|
||||
|
|
@ -256,7 +256,7 @@ class ProximityTerminalControlNotStopTest extends ActorTest {
|
|||
AddPool("dynamic", 1 to 10)
|
||||
}
|
||||
}
|
||||
new Building(building_guid = 0, map_id = 0, zone, StructureType.Facility) {
|
||||
new Building(building_guid = 0, map_id = 0, zone, StructureType.Facility, GlobalDefinitions.building) {
|
||||
Amenities = terminal
|
||||
Faction = PlanetSideEmpire.VS
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ object TerminalControlTest {
|
|||
def SetUpAgents(tdef : TerminalDefinition, faction : PlanetSideEmpire.Value)(implicit system : ActorSystem) : (Player, Terminal) = {
|
||||
val terminal = Terminal(tdef)
|
||||
terminal.Actor = system.actorOf(Props(classOf[TerminalControl], terminal), "test-term")
|
||||
terminal.Owner = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building)
|
||||
terminal.Owner = new Building(building_guid = 0, map_id = 0, Zone.Nowhere, StructureType.Building, GlobalDefinitions.building)
|
||||
terminal.Owner.Faction = faction
|
||||
(Player(Avatar("test", faction, CharacterGender.Male, 0, CharacterVoice.Mute)), terminal)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -253,6 +253,33 @@ class VehicleStateTest extends ActorTest {
|
|||
}
|
||||
}
|
||||
|
||||
class TransferPassengerChannelTest extends ActorTest {
|
||||
ServiceManager.boot(system)
|
||||
|
||||
"VehicleService" should {
|
||||
"pass TransferPassengerChannel" in {
|
||||
val service = system.actorOf(Props[VehicleService], "v-service")
|
||||
val fury = Vehicle(GlobalDefinitions.fury)
|
||||
service ! Service.Join("test")
|
||||
service ! VehicleServiceMessage("test", VehicleAction.TransferPassengerChannel(PlanetSideGUID(10), "old_channel", "new_channel", fury))
|
||||
expectMsg(VehicleServiceResponse("/test/Vehicle", PlanetSideGUID(10), VehicleResponse.TransferPassengerChannel("old_channel", "new_channel", fury)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class TransferPassengerTest extends ActorTest {
|
||||
ServiceManager.boot(system)
|
||||
"VehicleService" should {
|
||||
"pass TransferPassenger" in {
|
||||
val fury = Vehicle(GlobalDefinitions.fury)
|
||||
val service = system.actorOf(Props[VehicleService], "v-service")
|
||||
service ! Service.Join("test")
|
||||
service ! VehicleServiceMessage("test", VehicleAction.TransferPassenger(PlanetSideGUID(10), "temp_channel", fury, PlanetSideGUID(11)))
|
||||
expectMsg(VehicleServiceResponse("/test/Vehicle", PlanetSideGUID(10), VehicleResponse.TransferPassenger("temp_channel", fury, PlanetSideGUID(11))))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object VehicleServiceTest {
|
||||
//decoy
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +1,8 @@
|
|||
// Copyright (c) 2017 PSForever
|
||||
import akka.actor.ActorContext
|
||||
import net.psforever.objects.serverobject.pad.VehicleSpawnPad
|
||||
import net.psforever.objects.serverobject.pad.process._
|
||||
import net.psforever.objects.GlobalDefinitions
|
||||
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
||||
import net.psforever.objects.serverobject.structures.WarpGate
|
||||
import net.psforever.objects.zones.Zone
|
||||
import net.psforever.types.PlanetSideEmpire
|
||||
|
||||
|
|
@ -16,67 +17,74 @@ object Zones {
|
|||
override def Init(implicit context : ActorContext) : Unit = {
|
||||
super.Init(context)
|
||||
|
||||
BuildingByMapId(5).Faction = PlanetSideEmpire.TR //Akkan
|
||||
BuildingByMapId(6).Faction = PlanetSideEmpire.TR //Baal
|
||||
BuildingByMapId(7).Faction = PlanetSideEmpire.TR //Dagon
|
||||
BuildingByMapId(8).Faction = PlanetSideEmpire.NC //Enkidu
|
||||
BuildingByMapId(9).Faction = PlanetSideEmpire.VS //Girru
|
||||
BuildingByMapId(10).Faction = PlanetSideEmpire.VS //Hanish
|
||||
BuildingByMapId(11).Faction = PlanetSideEmpire.VS //Irkalla
|
||||
BuildingByMapId(12).Faction = PlanetSideEmpire.VS //Kusag
|
||||
BuildingByMapId(13).Faction = PlanetSideEmpire.VS //Lahar
|
||||
BuildingByMapId(14).Faction = PlanetSideEmpire.NC //Marduk
|
||||
BuildingByMapId(15).Faction = PlanetSideEmpire.NC //Neti
|
||||
BuildingByMapId(16).Faction = PlanetSideEmpire.NC //Zaqar
|
||||
BuildingByMapId(17).Faction = PlanetSideEmpire.NC //S_Marduk_Tower
|
||||
BuildingByMapId(18).Faction = PlanetSideEmpire.NC //W_Neti_Tower
|
||||
BuildingByMapId(19).Faction = PlanetSideEmpire.NC //W_Zaqar_Tower
|
||||
BuildingByMapId(20).Faction = PlanetSideEmpire.NC //E_Zaqar_Tower
|
||||
BuildingByMapId(21).Faction = PlanetSideEmpire.NC //NE_Neti_Tower
|
||||
BuildingByMapId(22).Faction = PlanetSideEmpire.NC //SE_Ceryshen_Warpgate_Tower
|
||||
BuildingByMapId(23).Faction = PlanetSideEmpire.VS //S_Kusag_Tower
|
||||
BuildingByMapId(24).Faction = PlanetSideEmpire.VS //NW_Kusag_Tower
|
||||
BuildingByMapId(25).Faction = PlanetSideEmpire.VS //N_Ceryshen_Warpgate_Tower
|
||||
BuildingByMapId(26).Faction = PlanetSideEmpire.VS //SE_Irkalla_Tower
|
||||
BuildingByMapId(27).Faction = PlanetSideEmpire.VS //S_Irkalla_Tower
|
||||
BuildingByMapId(28).Faction = PlanetSideEmpire.TR //NE_Enkidu_Tower
|
||||
BuildingByMapId(29).Faction = PlanetSideEmpire.NC //SE_Akkan_Tower
|
||||
BuildingByMapId(30).Faction = PlanetSideEmpire.NC //SW_Enkidu_Tower
|
||||
BuildingByMapId(31).Faction = PlanetSideEmpire.TR //E_Searhus_Warpgate_Tower
|
||||
BuildingByMapId(32).Faction = PlanetSideEmpire.TR //N_Searhus_Warpgate_Tower
|
||||
BuildingByMapId(33).Faction = PlanetSideEmpire.VS //E_Girru_Tower
|
||||
BuildingByMapId(34).Faction = PlanetSideEmpire.VS //SE_Hanish_Tower
|
||||
BuildingByMapId(35).Faction = PlanetSideEmpire.TR //SW_Hanish_Tower
|
||||
BuildingByMapId(36).Faction = PlanetSideEmpire.VS //W_Girru_Tower
|
||||
BuildingByMapId(37).Faction = PlanetSideEmpire.TR //E_Dagon_Tower
|
||||
BuildingByMapId(38).Faction = PlanetSideEmpire.TR //NE_Baal_Tower
|
||||
BuildingByMapId(39).Faction = PlanetSideEmpire.TR //SE_Baal_Tower
|
||||
BuildingByMapId(40).Faction = PlanetSideEmpire.TR //S_Dagon_Tower
|
||||
BuildingByMapId(41).Faction = PlanetSideEmpire.NC //W_Ceryshen_Warpgate_Tower
|
||||
BuildingByMapId(42).Faction = PlanetSideEmpire.NEUTRAL //dagon bunker
|
||||
BuildingByMapId(43).Faction = PlanetSideEmpire.NEUTRAL //Akkan North Bunker
|
||||
BuildingByMapId(44).Faction = PlanetSideEmpire.NEUTRAL //Enkidu East Bunker
|
||||
BuildingByMapId(45).Faction = PlanetSideEmpire.NEUTRAL //Neti bunker
|
||||
BuildingByMapId(46).Faction = PlanetSideEmpire.NEUTRAL //Hanish West Bunker
|
||||
BuildingByMapId(47).Faction = PlanetSideEmpire.NEUTRAL //Irkalla East Bunker
|
||||
BuildingByMapId(48).Faction = PlanetSideEmpire.NEUTRAL //Zaqar bunker
|
||||
BuildingByMapId(49).Faction = PlanetSideEmpire.NEUTRAL //Kusag West Bunker
|
||||
BuildingByMapId(50).Faction = PlanetSideEmpire.NEUTRAL //marduk bunker
|
||||
BuildingByMapId(51).Faction = PlanetSideEmpire.TR //baal bunker
|
||||
BuildingByMapId(52).Faction = PlanetSideEmpire.NEUTRAL //girru bunker
|
||||
BuildingByMapId(53).Faction = PlanetSideEmpire.NEUTRAL //lahar bunker
|
||||
BuildingByMapId(54).Faction = PlanetSideEmpire.NEUTRAL //akkan bunker
|
||||
BuildingByMapId(55).Faction = PlanetSideEmpire.VS //Irkalla_Tower
|
||||
BuildingByMapId(56).Faction = PlanetSideEmpire.VS //Hanish_Tower
|
||||
BuildingByMapId(57).Faction = PlanetSideEmpire.VS //E_Ceryshen_Warpgate_Tower
|
||||
BuildingByMapId(58).Faction = PlanetSideEmpire.VS //Lahar_Tower
|
||||
BuildingByMapId(59).Faction = PlanetSideEmpire.VS //VSSanc_Warpgate_Tower
|
||||
BuildingByMapId(60).Faction = PlanetSideEmpire.TR //Akkan_Tower
|
||||
BuildingByMapId(61).Faction = PlanetSideEmpire.NC //TRSanc_Warpgate_Tower
|
||||
BuildingByMapId(62).Faction = PlanetSideEmpire.NC //Marduk_Tower
|
||||
BuildingByMapId(63).Faction = PlanetSideEmpire.TR //NW_Dagon_Tower
|
||||
BuildingByMapId(64).Faction = PlanetSideEmpire.NEUTRAL //E7 East Bunker (at north from bridge)
|
||||
BuildingByMapId(65).Faction = PlanetSideEmpire.VS //W_Hanish_Tower
|
||||
Buildings.values.flatMap {
|
||||
_.Amenities.collect {
|
||||
case amenity if amenity.Definition == GlobalDefinitions.resource_silo =>
|
||||
val silo = amenity.asInstanceOf[ResourceSilo]
|
||||
silo.ChargeLevel = silo.MaximumCharge
|
||||
}
|
||||
}
|
||||
BuildingByMapId(5).get.Faction = PlanetSideEmpire.TR //Akkan
|
||||
BuildingByMapId(6).get.Faction = PlanetSideEmpire.TR //Baal
|
||||
BuildingByMapId(7).get.Faction = PlanetSideEmpire.TR //Dagon
|
||||
BuildingByMapId(8).get.Faction = PlanetSideEmpire.NC //Enkidu
|
||||
BuildingByMapId(9).get.Faction = PlanetSideEmpire.VS //Girru
|
||||
BuildingByMapId(10).get.Faction = PlanetSideEmpire.VS //Hanish
|
||||
BuildingByMapId(11).get.Faction = PlanetSideEmpire.VS //Irkalla
|
||||
BuildingByMapId(12).get.Faction = PlanetSideEmpire.VS //Kusag
|
||||
BuildingByMapId(13).get.Faction = PlanetSideEmpire.VS //Lahar
|
||||
BuildingByMapId(14).get.Faction = PlanetSideEmpire.NC //Marduk
|
||||
BuildingByMapId(15).get.Faction = PlanetSideEmpire.NC //Neti
|
||||
BuildingByMapId(16).get.Faction = PlanetSideEmpire.NC //Zaqar
|
||||
BuildingByMapId(17).get.Faction = PlanetSideEmpire.NC //S_Marduk_Tower
|
||||
BuildingByMapId(18).get.Faction = PlanetSideEmpire.NC //W_Neti_Tower
|
||||
BuildingByMapId(19).get.Faction = PlanetSideEmpire.NC //W_Zaqar_Tower
|
||||
BuildingByMapId(20).get.Faction = PlanetSideEmpire.NC //E_Zaqar_Tower
|
||||
BuildingByMapId(21).get.Faction = PlanetSideEmpire.NC //NE_Neti_Tower
|
||||
BuildingByMapId(22).get.Faction = PlanetSideEmpire.NC //SE_Ceryshen_Warpgate_Tower
|
||||
BuildingByMapId(23).get.Faction = PlanetSideEmpire.VS //S_Kusag_Tower
|
||||
BuildingByMapId(24).get.Faction = PlanetSideEmpire.VS //NW_Kusag_Tower
|
||||
BuildingByMapId(25).get.Faction = PlanetSideEmpire.VS //N_Ceryshen_Warpgate_Tower
|
||||
BuildingByMapId(26).get.Faction = PlanetSideEmpire.VS //SE_Irkalla_Tower
|
||||
BuildingByMapId(27).get.Faction = PlanetSideEmpire.VS //S_Irkalla_Tower
|
||||
BuildingByMapId(28).get.Faction = PlanetSideEmpire.TR //NE_Enkidu_Tower
|
||||
BuildingByMapId(29).get.Faction = PlanetSideEmpire.NC //SE_Akkan_Tower
|
||||
BuildingByMapId(30).get.Faction = PlanetSideEmpire.NC //SW_Enkidu_Tower
|
||||
BuildingByMapId(31).get.Faction = PlanetSideEmpire.TR //E_Searhus_Warpgate_Tower
|
||||
BuildingByMapId(32).get.Faction = PlanetSideEmpire.TR //N_Searhus_Warpgate_Tower
|
||||
BuildingByMapId(33).get.Faction = PlanetSideEmpire.VS //E_Girru_Tower
|
||||
BuildingByMapId(34).get.Faction = PlanetSideEmpire.VS //SE_Hanish_Tower
|
||||
BuildingByMapId(35).get.Faction = PlanetSideEmpire.TR //SW_Hanish_Tower
|
||||
BuildingByMapId(36).get.Faction = PlanetSideEmpire.VS //W_Girru_Tower
|
||||
BuildingByMapId(37).get.Faction = PlanetSideEmpire.TR //E_Dagon_Tower
|
||||
BuildingByMapId(38).get.Faction = PlanetSideEmpire.TR //NE_Baal_Tower
|
||||
BuildingByMapId(39).get.Faction = PlanetSideEmpire.TR //SE_Baal_Tower
|
||||
BuildingByMapId(40).get.Faction = PlanetSideEmpire.TR //S_Dagon_Tower
|
||||
BuildingByMapId(41).get.Faction = PlanetSideEmpire.NC //W_Ceryshen_Warpgate_Tower
|
||||
BuildingByMapId(42).get.Faction = PlanetSideEmpire.NEUTRAL //dagon bunker
|
||||
BuildingByMapId(43).get.Faction = PlanetSideEmpire.NEUTRAL //Akkan North Bunker
|
||||
BuildingByMapId(44).get.Faction = PlanetSideEmpire.NEUTRAL //Enkidu East Bunker
|
||||
BuildingByMapId(45).get.Faction = PlanetSideEmpire.NEUTRAL //Neti bunker
|
||||
BuildingByMapId(46).get.Faction = PlanetSideEmpire.NEUTRAL //Hanish West Bunker
|
||||
BuildingByMapId(47).get.Faction = PlanetSideEmpire.NEUTRAL //Irkalla East Bunker
|
||||
BuildingByMapId(48).get.Faction = PlanetSideEmpire.NEUTRAL //Zaqar bunker
|
||||
BuildingByMapId(49).get.Faction = PlanetSideEmpire.NEUTRAL //Kusag West Bunker
|
||||
BuildingByMapId(50).get.Faction = PlanetSideEmpire.NEUTRAL //marduk bunker
|
||||
BuildingByMapId(51).get.Faction = PlanetSideEmpire.TR //baal bunker
|
||||
BuildingByMapId(52).get.Faction = PlanetSideEmpire.NEUTRAL //girru bunker
|
||||
BuildingByMapId(53).get.Faction = PlanetSideEmpire.NEUTRAL //lahar bunker
|
||||
BuildingByMapId(54).get.Faction = PlanetSideEmpire.NEUTRAL //akkan bunker
|
||||
BuildingByMapId(55).get.Faction = PlanetSideEmpire.VS //Irkalla_Tower
|
||||
BuildingByMapId(56).get.Faction = PlanetSideEmpire.VS //Hanish_Tower
|
||||
BuildingByMapId(57).get.Faction = PlanetSideEmpire.VS //E_Ceryshen_Warpgate_Tower
|
||||
BuildingByMapId(58).get.Faction = PlanetSideEmpire.VS //Lahar_Tower
|
||||
BuildingByMapId(59).get.Faction = PlanetSideEmpire.VS //VSSanc_Warpgate_Tower
|
||||
BuildingByMapId(60).get.Faction = PlanetSideEmpire.TR //Akkan_Tower
|
||||
BuildingByMapId(61).get.Faction = PlanetSideEmpire.NC //TRSanc_Warpgate_Tower
|
||||
BuildingByMapId(62).get.Faction = PlanetSideEmpire.NC //Marduk_Tower
|
||||
BuildingByMapId(63).get.Faction = PlanetSideEmpire.TR //NW_Dagon_Tower
|
||||
BuildingByMapId(64).get.Faction = PlanetSideEmpire.NEUTRAL //E7 East Bunker (at north from bridge)
|
||||
BuildingByMapId(65).get.Faction = PlanetSideEmpire.VS //W_Hanish_Tower
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -86,15 +94,21 @@ object Zones {
|
|||
override def Init(implicit context : ActorContext) : Unit = {
|
||||
super.Init(context)
|
||||
|
||||
GUID(2094) match {
|
||||
case Some(silo : ResourceSilo) =>
|
||||
silo.ChargeLevel = silo.MaximumCharge
|
||||
case _ => ;
|
||||
}
|
||||
import net.psforever.types.PlanetSideEmpire
|
||||
// Building(2).get.Faction = PlanetSideEmpire.VS
|
||||
// Building(2).get.ModelId = 20
|
||||
// Building(38).get.ModelId = 0
|
||||
// Building(42).get.ModelId = 0
|
||||
// Building(48).get.Faction = PlanetSideEmpire.VS
|
||||
// Building(48).get.ModelId = 59
|
||||
// Building(49).get.Faction = PlanetSideEmpire.VS
|
||||
// Building(49).get.ModelId = 69
|
||||
BuildingByMapId(2).get.Faction = PlanetSideEmpire.VS
|
||||
BuildingByMapId(10).get.asInstanceOf[WarpGate].Broadcast = true
|
||||
BuildingByMapId(11).get.asInstanceOf[WarpGate].Broadcast = true
|
||||
BuildingByMapId(12).get.asInstanceOf[WarpGate].Broadcast = true
|
||||
BuildingByMapId(13).get.asInstanceOf[WarpGate].Broadcast = true
|
||||
BuildingByMapId(48).get.Faction = PlanetSideEmpire.VS
|
||||
BuildingByMapId(49).get.Faction = PlanetSideEmpire.VS
|
||||
BuildingByMapId(18657).get.asInstanceOf[WarpGate].Active = false
|
||||
BuildingByMapId(18658).get.asInstanceOf[WarpGate].Active = false
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -130,11 +144,9 @@ object Zones {
|
|||
|
||||
import net.psforever.types.PlanetSideEmpire
|
||||
Buildings.values.foreach { _.Faction = PlanetSideEmpire.VS }
|
||||
// Building(29).get.Faction = PlanetSideEmpire.NC //South Villa Gun Tower
|
||||
// GUID(293).get.asInstanceOf[VehicleSpawnPad].Railed = false //building 52
|
||||
// GUID(706).get.asInstanceOf[VehicleSpawnPad].Guide = List(AutoDriveControls.DistanceFromHere(50f)) //building 77
|
||||
// GUID(710).get.asInstanceOf[VehicleSpawnPad].Railed = false //building 79
|
||||
// GUID(712).get.asInstanceOf[VehicleSpawnPad].Railed = false //building 81
|
||||
BuildingByMapId(60).get.Faction = PlanetSideEmpire.NC //South Villa Gun Tower
|
||||
BuildingByMapId(1).get.asInstanceOf[WarpGate].Broadcast = true
|
||||
BuildingByMapId(3).get.asInstanceOf[WarpGate].Broadcast = true
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -203,4 +215,32 @@ object Zones {
|
|||
case PlanetSideEmpire.NEUTRAL => 0 //invalid, not black ops
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a zone identification string, provide that zone's ordinal number.
|
||||
* As zone identification naming is extremely formulaic,
|
||||
* just being able to poll the zone's identifier by its first few letters will produce its ordinal position.
|
||||
* @param id a zone id string
|
||||
* @return a zone number
|
||||
*/
|
||||
def NumberFromId(id : String) : Int = {
|
||||
if(id.startsWith("z")) { //z2 -> 2
|
||||
id.substring(1).toInt
|
||||
}
|
||||
else if(id.startsWith("home")) { //home2 -> 2 + 10 = 12
|
||||
id.substring(4).toInt + 10
|
||||
}
|
||||
else if(id.startsWith("tz")) { //tzconc -> (14 + (3 * 1) + 2) -> 19
|
||||
(List("tr", "nc", "vs").indexOf(id.substring(4)) * 3) + List("sh", "dr", "co").indexOf(id.substring(2, 4)) + 14
|
||||
}
|
||||
else if(id.startsWith("c")) { //c2 -> 2 + 21 = 23
|
||||
id.substring(1).toInt + 21
|
||||
}
|
||||
else if(id.startsWith("i")) { //i2 -> 2 + 28 = 30
|
||||
id.substring(1).toInt + 28
|
||||
}
|
||||
else {
|
||||
0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import net.psforever.objects.serverobject.locks.IFFLock
|
|||
import net.psforever.objects.serverobject.mblocker.Locker
|
||||
import net.psforever.objects.serverobject.pad.VehicleSpawnPad
|
||||
import net.psforever.objects.serverobject.resourcesilo.ResourceSilo
|
||||
import net.psforever.objects.serverobject.structures.{Building, FoundationBuilder, StructureType}
|
||||
import net.psforever.objects.serverobject.structures.{Building, FoundationBuilder, StructureType, WarpGate}
|
||||
import net.psforever.objects.serverobject.terminals.{CaptureTerminal, ProximityTerminal, Terminal}
|
||||
import net.psforever.objects.serverobject.tube.SpawnTube
|
||||
import net.psforever.objects.serverobject.turret.FacilityTurret
|
||||
|
|
@ -2280,5 +2280,41 @@ object Map06 {
|
|||
LocalObject(1469, FacilityTurret.Constructor(manned_turret, Vector3(6343.497f, 4006.957f, 56.5199f)), owning_building_guid = 73)
|
||||
TurretToWeapon(1469, 5098)
|
||||
}
|
||||
|
||||
Building10()
|
||||
|
||||
def Building10() : Unit = { // Name: ??? Type: ??? GUID: 76, MapID: 10
|
||||
LocalBuilding(76, 10, FoundationBuilder(WarpGate.Structure(Vector3(4970.0703f, 2082.1719f, 24.421875f)))) //searhus warp gate
|
||||
}
|
||||
|
||||
Building11()
|
||||
|
||||
def Building11() : Unit = { // Name: ??? Type: ??? GUID: 75, MapID: 11
|
||||
LocalBuilding(75, 11, FoundationBuilder(WarpGate.Structure(Vector3(2587.7969f, 2997.1562f, 195.34375f)))) //cyssor warp gate
|
||||
}
|
||||
|
||||
Building12()
|
||||
|
||||
def Building12() : Unit = { // Name: ??? Type: ??? GUID: 74, MapID: 12
|
||||
LocalBuilding(74, 12, FoundationBuilder(WarpGate.Structure(Vector3(2189.5703f, 5508.164f, 38.765625f)))) //solar warp gate
|
||||
}
|
||||
|
||||
Building13()
|
||||
|
||||
def Building13() : Unit = { // Name: ??? Type: ??? GUID: 77, MapID: 13
|
||||
LocalBuilding(77, 13, FoundationBuilder(WarpGate.Structure(Vector3(5028.1094f, 4499.7188f, 50.09375f)))) //vs sanctuary warp gate
|
||||
}
|
||||
|
||||
Building18657()
|
||||
|
||||
def Building18657() : Unit = { // Name: ??? Type: ??? GUID: 33, MapID: 18657
|
||||
LocalBuilding(33, 18657, FoundationBuilder(WarpGate.Structure(Vector3.Zero, hst))) //geowarp near Tarqaq
|
||||
}
|
||||
|
||||
Building18658()
|
||||
|
||||
def Building18658() : Unit = { // Name: ??? Type: ??? GUID: 34, MapID: 18658
|
||||
LocalBuilding(34, 18658, FoundationBuilder(WarpGate.Structure(Vector3.Zero, hst))) //geowarp near Igaluk
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -817,12 +817,12 @@ object Map11 {
|
|||
LocalObject(852, Terminal.Constructor(order_terminal), owning_building_guid = 41)
|
||||
LocalObject(853, Terminal.Constructor(order_terminal), owning_building_guid = 41)
|
||||
LocalObject(854, Terminal.Constructor(order_terminal), owning_building_guid = 41)
|
||||
LocalObject(774, SpawnTube.Constructor(Vector3(2162.234f, 5444.899f, 67.2449f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(775, SpawnTube.Constructor(Vector3(2162.317f, 5449.653f, 67.2449f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(776, SpawnTube.Constructor(Vector3(2168.941f, 5444.781f, 67.2449f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(777, SpawnTube.Constructor(Vector3(2169.023f, 5449.536f, 67.2449f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(778, SpawnTube.Constructor(Vector3(2175.648f, 5444.665f, 67.2449f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(779, SpawnTube.Constructor(Vector3(2175.731f, 5449.419f, 67.2449f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(774, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2162.234f, 5444.899f, 67.2449f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(775, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2162.317f, 5449.653f, 67.2449f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(776, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2168.941f, 5444.781f, 67.2449f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(777, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2169.023f, 5449.536f, 67.2449f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(778, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2175.648f, 5444.665f, 67.2449f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(779, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2175.731f, 5449.419f, 67.2449f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
}
|
||||
|
||||
Building35()
|
||||
|
|
@ -849,12 +849,12 @@ object Map11 {
|
|||
LocalObject(878, Terminal.Constructor(order_terminal), owning_building_guid = 42)
|
||||
LocalObject(879, Terminal.Constructor(order_terminal), owning_building_guid = 42)
|
||||
LocalObject(880, Terminal.Constructor(order_terminal), owning_building_guid = 42)
|
||||
LocalObject(780, SpawnTube.Constructor(Vector3(2355.215f, 5438.748f, 66.71281f), Vector3(0, 0, 316)), owning_building_guid = 42)
|
||||
LocalObject(781, SpawnTube.Constructor(Vector3(2358.517f, 5435.328f, 66.71281f), Vector3(0, 0, 136)), owning_building_guid = 42)
|
||||
LocalObject(782, SpawnTube.Constructor(Vector3(2360.04f, 5443.408f, 66.71281f), Vector3(0, 0, 316)), owning_building_guid = 42)
|
||||
LocalObject(783, SpawnTube.Constructor(Vector3(2363.344f, 5439.987f, 66.71281f), Vector3(0, 0, 136)), owning_building_guid = 42)
|
||||
LocalObject(784, SpawnTube.Constructor(Vector3(2364.866f, 5448.068f, 66.71281f), Vector3(0, 0, 316)), owning_building_guid = 42)
|
||||
LocalObject(785, SpawnTube.Constructor(Vector3(2368.168f, 5444.648f, 66.71281f), Vector3(0, 0, 136)), owning_building_guid = 42)
|
||||
LocalObject(780, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2355.215f, 5438.748f, 66.71281f), Vector3(0, 0, 316)), owning_building_guid = 42)
|
||||
LocalObject(781, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2358.517f, 5435.328f, 66.71281f), Vector3(0, 0, 136)), owning_building_guid = 42)
|
||||
LocalObject(782, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2360.04f, 5443.408f, 66.71281f), Vector3(0, 0, 316)), owning_building_guid = 42)
|
||||
LocalObject(783, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2363.344f, 5439.987f, 66.71281f), Vector3(0, 0, 136)), owning_building_guid = 42)
|
||||
LocalObject(784, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2364.866f, 5448.068f, 66.71281f), Vector3(0, 0, 316)), owning_building_guid = 42)
|
||||
LocalObject(785, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2368.168f, 5444.648f, 66.71281f), Vector3(0, 0, 136)), owning_building_guid = 42)
|
||||
}
|
||||
|
||||
Building36()
|
||||
|
|
@ -881,12 +881,12 @@ object Map11 {
|
|||
LocalObject(884, Terminal.Constructor(order_terminal), owning_building_guid = 43)
|
||||
LocalObject(885, Terminal.Constructor(order_terminal), owning_building_guid = 43)
|
||||
LocalObject(886, Terminal.Constructor(order_terminal), owning_building_guid = 43)
|
||||
LocalObject(786, SpawnTube.Constructor(Vector3(2394.346f, 5547.723f, 67.23998f), Vector3(0, 0, 269)), owning_building_guid = 43)
|
||||
LocalObject(787, SpawnTube.Constructor(Vector3(2394.463f, 5541.015f, 67.23998f), Vector3(0, 0, 269)), owning_building_guid = 43)
|
||||
LocalObject(788, SpawnTube.Constructor(Vector3(2394.58f, 5534.308f, 67.23998f), Vector3(0, 0, 269)), owning_building_guid = 43)
|
||||
LocalObject(789, SpawnTube.Constructor(Vector3(2399.1f, 5547.806f, 67.23998f), Vector3(0, 0, 89)), owning_building_guid = 43)
|
||||
LocalObject(790, SpawnTube.Constructor(Vector3(2399.218f, 5541.099f, 67.23998f), Vector3(0, 0, 89)), owning_building_guid = 43)
|
||||
LocalObject(791, SpawnTube.Constructor(Vector3(2399.334f, 5534.391f, 67.23998f), Vector3(0, 0, 89)), owning_building_guid = 43)
|
||||
LocalObject(786, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2394.346f, 5547.723f, 67.23998f), Vector3(0, 0, 269)), owning_building_guid = 43)
|
||||
LocalObject(787, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2394.463f, 5541.015f, 67.23998f), Vector3(0, 0, 269)), owning_building_guid = 43)
|
||||
LocalObject(788, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2394.58f, 5534.308f, 67.23998f), Vector3(0, 0, 269)), owning_building_guid = 43)
|
||||
LocalObject(789, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2399.1f, 5547.806f, 67.23998f), Vector3(0, 0, 89)), owning_building_guid = 43)
|
||||
LocalObject(790, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2399.218f, 5541.099f, 67.23998f), Vector3(0, 0, 89)), owning_building_guid = 43)
|
||||
LocalObject(791, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2399.334f, 5534.391f, 67.23998f), Vector3(0, 0, 89)), owning_building_guid = 43)
|
||||
}
|
||||
|
||||
Building53()
|
||||
|
|
@ -913,12 +913,12 @@ object Map11 {
|
|||
LocalObject(902, Terminal.Constructor(order_terminal), owning_building_guid = 44)
|
||||
LocalObject(903, Terminal.Constructor(order_terminal), owning_building_guid = 44)
|
||||
LocalObject(904, Terminal.Constructor(order_terminal), owning_building_guid = 44)
|
||||
LocalObject(792, SpawnTube.Constructor(Vector3(3990.234f, 5976.899f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 44)
|
||||
LocalObject(793, SpawnTube.Constructor(Vector3(3990.317f, 5981.653f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 44)
|
||||
LocalObject(794, SpawnTube.Constructor(Vector3(3996.941f, 5976.781f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 44)
|
||||
LocalObject(795, SpawnTube.Constructor(Vector3(3997.023f, 5981.536f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 44)
|
||||
LocalObject(796, SpawnTube.Constructor(Vector3(4003.648f, 5976.665f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 44)
|
||||
LocalObject(797, SpawnTube.Constructor(Vector3(4003.731f, 5981.419f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 44)
|
||||
LocalObject(792, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3990.234f, 5976.899f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 44)
|
||||
LocalObject(793, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3990.317f, 5981.653f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 44)
|
||||
LocalObject(794, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3996.941f, 5976.781f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 44)
|
||||
LocalObject(795, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3997.023f, 5981.536f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 44)
|
||||
LocalObject(796, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4003.648f, 5976.665f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 44)
|
||||
LocalObject(797, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4003.731f, 5981.419f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 44)
|
||||
}
|
||||
|
||||
Building18()
|
||||
|
|
@ -945,12 +945,12 @@ object Map11 {
|
|||
LocalObject(918, Terminal.Constructor(order_terminal), owning_building_guid = 45)
|
||||
LocalObject(919, Terminal.Constructor(order_terminal), owning_building_guid = 45)
|
||||
LocalObject(920, Terminal.Constructor(order_terminal), owning_building_guid = 45)
|
||||
LocalObject(798, SpawnTube.Constructor(Vector3(4142.234f, 5944.899f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 45)
|
||||
LocalObject(799, SpawnTube.Constructor(Vector3(4142.317f, 5949.653f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 45)
|
||||
LocalObject(800, SpawnTube.Constructor(Vector3(4148.941f, 5944.781f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 45)
|
||||
LocalObject(801, SpawnTube.Constructor(Vector3(4149.023f, 5949.536f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 45)
|
||||
LocalObject(802, SpawnTube.Constructor(Vector3(4155.648f, 5944.665f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 45)
|
||||
LocalObject(803, SpawnTube.Constructor(Vector3(4155.731f, 5949.419f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 45)
|
||||
LocalObject(798, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4142.234f, 5944.899f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 45)
|
||||
LocalObject(799, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4142.317f, 5949.653f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 45)
|
||||
LocalObject(800, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4148.941f, 5944.781f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 45)
|
||||
LocalObject(801, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4149.023f, 5949.536f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 45)
|
||||
LocalObject(802, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4155.648f, 5944.665f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 45)
|
||||
LocalObject(803, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4155.731f, 5949.419f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 45)
|
||||
}
|
||||
|
||||
Building52()
|
||||
|
|
@ -977,12 +977,12 @@ object Map11 {
|
|||
LocalObject(943, Terminal.Constructor(order_terminal), owning_building_guid = 46)
|
||||
LocalObject(944, Terminal.Constructor(order_terminal), owning_building_guid = 46)
|
||||
LocalObject(945, Terminal.Constructor(order_terminal), owning_building_guid = 46)
|
||||
LocalObject(804, SpawnTube.Constructor(Vector3(4296.234f, 5970.899f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 46)
|
||||
LocalObject(805, SpawnTube.Constructor(Vector3(4296.317f, 5975.653f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 46)
|
||||
LocalObject(806, SpawnTube.Constructor(Vector3(4302.941f, 5970.781f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 46)
|
||||
LocalObject(807, SpawnTube.Constructor(Vector3(4303.023f, 5975.536f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 46)
|
||||
LocalObject(808, SpawnTube.Constructor(Vector3(4309.648f, 5970.665f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 46)
|
||||
LocalObject(809, SpawnTube.Constructor(Vector3(4309.731f, 5975.419f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 46)
|
||||
LocalObject(804, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4296.234f, 5970.899f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 46)
|
||||
LocalObject(805, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4296.317f, 5975.653f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 46)
|
||||
LocalObject(806, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4302.941f, 5970.781f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 46)
|
||||
LocalObject(807, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4303.023f, 5975.536f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 46)
|
||||
LocalObject(808, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4309.648f, 5970.665f, 45.90862f), Vector3(0, 0, 181)), owning_building_guid = 46)
|
||||
LocalObject(809, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4309.731f, 5975.419f, 45.90862f), Vector3(0, 0, 1)), owning_building_guid = 46)
|
||||
}
|
||||
|
||||
Building5()
|
||||
|
|
@ -1009,12 +1009,12 @@ object Map11 {
|
|||
LocalObject(952, Terminal.Constructor(order_terminal), owning_building_guid = 47)
|
||||
LocalObject(953, Terminal.Constructor(order_terminal), owning_building_guid = 47)
|
||||
LocalObject(954, Terminal.Constructor(order_terminal), owning_building_guid = 47)
|
||||
LocalObject(810, SpawnTube.Constructor(Vector3(4696.047f, 3402.895f, 70.77006f), Vector3(0, 0, 227)), owning_building_guid = 47)
|
||||
LocalObject(811, SpawnTube.Constructor(Vector3(4699.524f, 3406.137f, 70.77006f), Vector3(0, 0, 47)), owning_building_guid = 47)
|
||||
LocalObject(812, SpawnTube.Constructor(Vector3(4700.622f, 3397.988f, 70.77006f), Vector3(0, 0, 227)), owning_building_guid = 47)
|
||||
LocalObject(813, SpawnTube.Constructor(Vector3(4704.099f, 3401.232f, 70.77006f), Vector3(0, 0, 47)), owning_building_guid = 47)
|
||||
LocalObject(814, SpawnTube.Constructor(Vector3(4705.197f, 3393.082f, 70.77006f), Vector3(0, 0, 227)), owning_building_guid = 47)
|
||||
LocalObject(815, SpawnTube.Constructor(Vector3(4708.674f, 3396.325f, 70.77006f), Vector3(0, 0, 47)), owning_building_guid = 47)
|
||||
LocalObject(810, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4696.047f, 3402.895f, 70.77006f), Vector3(0, 0, 227)), owning_building_guid = 47)
|
||||
LocalObject(811, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4699.524f, 3406.137f, 70.77006f), Vector3(0, 0, 47)), owning_building_guid = 47)
|
||||
LocalObject(812, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4700.622f, 3397.988f, 70.77006f), Vector3(0, 0, 227)), owning_building_guid = 47)
|
||||
LocalObject(813, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4704.099f, 3401.232f, 70.77006f), Vector3(0, 0, 47)), owning_building_guid = 47)
|
||||
LocalObject(814, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4705.197f, 3393.082f, 70.77006f), Vector3(0, 0, 227)), owning_building_guid = 47)
|
||||
LocalObject(815, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4708.674f, 3396.325f, 70.77006f), Vector3(0, 0, 47)), owning_building_guid = 47)
|
||||
}
|
||||
|
||||
Building7()
|
||||
|
|
@ -1041,12 +1041,12 @@ object Map11 {
|
|||
LocalObject(958, Terminal.Constructor(order_terminal), owning_building_guid = 48)
|
||||
LocalObject(959, Terminal.Constructor(order_terminal), owning_building_guid = 48)
|
||||
LocalObject(960, Terminal.Constructor(order_terminal), owning_building_guid = 48)
|
||||
LocalObject(816, SpawnTube.Constructor(Vector3(4724.571f, 3593.914f, 70.77006f), Vector3(0, 0, 315)), owning_building_guid = 48)
|
||||
LocalObject(817, SpawnTube.Constructor(Vector3(4727.933f, 3590.552f, 70.77006f), Vector3(0, 0, 135)), owning_building_guid = 48)
|
||||
LocalObject(818, SpawnTube.Constructor(Vector3(4729.314f, 3598.658f, 70.77006f), Vector3(0, 0, 315)), owning_building_guid = 48)
|
||||
LocalObject(819, SpawnTube.Constructor(Vector3(4732.677f, 3595.296f, 70.77006f), Vector3(0, 0, 135)), owning_building_guid = 48)
|
||||
LocalObject(820, SpawnTube.Constructor(Vector3(4734.058f, 3603.401f, 70.77006f), Vector3(0, 0, 315)), owning_building_guid = 48)
|
||||
LocalObject(821, SpawnTube.Constructor(Vector3(4737.42f, 3600.039f, 70.77006f), Vector3(0, 0, 135)), owning_building_guid = 48)
|
||||
LocalObject(816, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4724.571f, 3593.914f, 70.77006f), Vector3(0, 0, 315)), owning_building_guid = 48)
|
||||
LocalObject(817, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4727.933f, 3590.552f, 70.77006f), Vector3(0, 0, 135)), owning_building_guid = 48)
|
||||
LocalObject(818, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4729.314f, 3598.658f, 70.77006f), Vector3(0, 0, 315)), owning_building_guid = 48)
|
||||
LocalObject(819, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4732.677f, 3595.296f, 70.77006f), Vector3(0, 0, 135)), owning_building_guid = 48)
|
||||
LocalObject(820, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4734.058f, 3603.401f, 70.77006f), Vector3(0, 0, 315)), owning_building_guid = 48)
|
||||
LocalObject(821, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4737.42f, 3600.039f, 70.77006f), Vector3(0, 0, 135)), owning_building_guid = 48)
|
||||
}
|
||||
|
||||
Building6()
|
||||
|
|
@ -1073,12 +1073,12 @@ object Map11 {
|
|||
LocalObject(987, Terminal.Constructor(order_terminal), owning_building_guid = 49)
|
||||
LocalObject(988, Terminal.Constructor(order_terminal), owning_building_guid = 49)
|
||||
LocalObject(989, Terminal.Constructor(order_terminal), owning_building_guid = 49)
|
||||
LocalObject(822, SpawnTube.Constructor(Vector3(4919.932f, 3622.866f, 70.77006f), Vector3(0, 0, 226)), owning_building_guid = 49)
|
||||
LocalObject(823, SpawnTube.Constructor(Vector3(4923.352f, 3626.168f, 70.77006f), Vector3(0, 0, 46)), owning_building_guid = 49)
|
||||
LocalObject(824, SpawnTube.Constructor(Vector3(4924.592f, 3618.04f, 70.77006f), Vector3(0, 0, 226)), owning_building_guid = 49)
|
||||
LocalObject(825, SpawnTube.Constructor(Vector3(4928.013f, 3621.344f, 70.77006f), Vector3(0, 0, 46)), owning_building_guid = 49)
|
||||
LocalObject(826, SpawnTube.Constructor(Vector3(4929.252f, 3613.215f, 70.77006f), Vector3(0, 0, 226)), owning_building_guid = 49)
|
||||
LocalObject(827, SpawnTube.Constructor(Vector3(4932.672f, 3616.517f, 70.77006f), Vector3(0, 0, 46)), owning_building_guid = 49)
|
||||
LocalObject(822, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4919.932f, 3622.866f, 70.77006f), Vector3(0, 0, 226)), owning_building_guid = 49)
|
||||
LocalObject(823, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4923.352f, 3626.168f, 70.77006f), Vector3(0, 0, 46)), owning_building_guid = 49)
|
||||
LocalObject(824, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4924.592f, 3618.04f, 70.77006f), Vector3(0, 0, 226)), owning_building_guid = 49)
|
||||
LocalObject(825, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4928.013f, 3621.344f, 70.77006f), Vector3(0, 0, 46)), owning_building_guid = 49)
|
||||
LocalObject(826, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4929.252f, 3613.215f, 70.77006f), Vector3(0, 0, 226)), owning_building_guid = 49)
|
||||
LocalObject(827, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(4932.672f, 3616.517f, 70.77006f), Vector3(0, 0, 46)), owning_building_guid = 49)
|
||||
}
|
||||
|
||||
Building34()
|
||||
|
|
|
|||
|
|
@ -715,12 +715,12 @@ object Map12 {
|
|||
LocalObject(817, Terminal.Constructor(order_terminal), owning_building_guid = 62)
|
||||
LocalObject(818, Terminal.Constructor(order_terminal), owning_building_guid = 62)
|
||||
LocalObject(819, Terminal.Constructor(order_terminal), owning_building_guid = 62)
|
||||
LocalObject(742, SpawnTube.Constructor(Vector3(2760.571f, 5245.914f, 38.03099f), Vector3(0, 0, 315)), owning_building_guid = 62)
|
||||
LocalObject(743, SpawnTube.Constructor(Vector3(2763.933f, 5242.552f, 38.03099f), Vector3(0, 0, 135)), owning_building_guid = 62)
|
||||
LocalObject(744, SpawnTube.Constructor(Vector3(2765.314f, 5250.658f, 38.03099f), Vector3(0, 0, 315)), owning_building_guid = 62)
|
||||
LocalObject(745, SpawnTube.Constructor(Vector3(2768.677f, 5247.296f, 38.03099f), Vector3(0, 0, 135)), owning_building_guid = 62)
|
||||
LocalObject(746, SpawnTube.Constructor(Vector3(2770.058f, 5255.401f, 38.03099f), Vector3(0, 0, 315)), owning_building_guid = 62)
|
||||
LocalObject(747, SpawnTube.Constructor(Vector3(2773.42f, 5252.039f, 38.03099f), Vector3(0, 0, 135)), owning_building_guid = 62)
|
||||
LocalObject(742, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2760.571f, 5245.914f, 38.03099f), Vector3(0, 0, 315)), owning_building_guid = 62)
|
||||
LocalObject(743, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2763.933f, 5242.552f, 38.03099f), Vector3(0, 0, 135)), owning_building_guid = 62)
|
||||
LocalObject(744, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2765.314f, 5250.658f, 38.03099f), Vector3(0, 0, 315)), owning_building_guid = 62)
|
||||
LocalObject(745, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2768.677f, 5247.296f, 38.03099f), Vector3(0, 0, 135)), owning_building_guid = 62)
|
||||
LocalObject(746, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2770.058f, 5255.401f, 38.03099f), Vector3(0, 0, 315)), owning_building_guid = 62)
|
||||
LocalObject(747, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2773.42f, 5252.039f, 38.03099f), Vector3(0, 0, 135)), owning_building_guid = 62)
|
||||
}
|
||||
|
||||
Building43()
|
||||
|
|
@ -747,12 +747,12 @@ object Map12 {
|
|||
LocalObject(833, Terminal.Constructor(order_terminal), owning_building_guid = 63)
|
||||
LocalObject(834, Terminal.Constructor(order_terminal), owning_building_guid = 63)
|
||||
LocalObject(835, Terminal.Constructor(order_terminal), owning_building_guid = 63)
|
||||
LocalObject(748, SpawnTube.Constructor(Vector3(2850.79f, 3037.98f, 36.95669f), Vector3(0, 0, 270)), owning_building_guid = 63)
|
||||
LocalObject(749, SpawnTube.Constructor(Vector3(2850.791f, 3031.272f, 36.95669f), Vector3(0, 0, 270)), owning_building_guid = 63)
|
||||
LocalObject(750, SpawnTube.Constructor(Vector3(2850.791f, 3044.688f, 36.95669f), Vector3(0, 0, 270)), owning_building_guid = 63)
|
||||
LocalObject(751, SpawnTube.Constructor(Vector3(2855.545f, 3031.272f, 36.95669f), Vector3(0, 0, 90)), owning_building_guid = 63)
|
||||
LocalObject(752, SpawnTube.Constructor(Vector3(2855.545f, 3037.981f, 36.95669f), Vector3(0, 0, 90)), owning_building_guid = 63)
|
||||
LocalObject(753, SpawnTube.Constructor(Vector3(2855.545f, 3044.688f, 36.95669f), Vector3(0, 0, 90)), owning_building_guid = 63)
|
||||
LocalObject(748, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2850.79f, 3037.98f, 36.95669f), Vector3(0, 0, 270)), owning_building_guid = 63)
|
||||
LocalObject(749, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2850.791f, 3031.272f, 36.95669f), Vector3(0, 0, 270)), owning_building_guid = 63)
|
||||
LocalObject(750, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2850.791f, 3044.688f, 36.95669f), Vector3(0, 0, 270)), owning_building_guid = 63)
|
||||
LocalObject(751, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2855.545f, 3031.272f, 36.95669f), Vector3(0, 0, 90)), owning_building_guid = 63)
|
||||
LocalObject(752, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2855.545f, 3037.981f, 36.95669f), Vector3(0, 0, 90)), owning_building_guid = 63)
|
||||
LocalObject(753, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2855.545f, 3044.688f, 36.95669f), Vector3(0, 0, 90)), owning_building_guid = 63)
|
||||
}
|
||||
|
||||
Building13()
|
||||
|
|
@ -779,12 +779,12 @@ object Map12 {
|
|||
LocalObject(845, Terminal.Constructor(order_terminal), owning_building_guid = 64)
|
||||
LocalObject(846, Terminal.Constructor(order_terminal), owning_building_guid = 64)
|
||||
LocalObject(847, Terminal.Constructor(order_terminal), owning_building_guid = 64)
|
||||
LocalObject(754, SpawnTube.Constructor(Vector3(2913.312f, 5104.791f, 38.03099f), Vector3(0, 0, 180)), owning_building_guid = 64)
|
||||
LocalObject(755, SpawnTube.Constructor(Vector3(2913.312f, 5109.545f, 38.03099f), Vector3(0, 0, 0)), owning_building_guid = 64)
|
||||
LocalObject(756, SpawnTube.Constructor(Vector3(2920.019f, 5109.545f, 38.03099f), Vector3(0, 0, 0)), owning_building_guid = 64)
|
||||
LocalObject(757, SpawnTube.Constructor(Vector3(2920.02f, 5104.79f, 38.03099f), Vector3(0, 0, 180)), owning_building_guid = 64)
|
||||
LocalObject(758, SpawnTube.Constructor(Vector3(2926.728f, 5104.791f, 38.03099f), Vector3(0, 0, 180)), owning_building_guid = 64)
|
||||
LocalObject(759, SpawnTube.Constructor(Vector3(2926.728f, 5109.545f, 38.03099f), Vector3(0, 0, 0)), owning_building_guid = 64)
|
||||
LocalObject(754, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2913.312f, 5104.791f, 38.03099f), Vector3(0, 0, 180)), owning_building_guid = 64)
|
||||
LocalObject(755, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2913.312f, 5109.545f, 38.03099f), Vector3(0, 0, 0)), owning_building_guid = 64)
|
||||
LocalObject(756, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2920.019f, 5109.545f, 38.03099f), Vector3(0, 0, 0)), owning_building_guid = 64)
|
||||
LocalObject(757, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2920.02f, 5104.79f, 38.03099f), Vector3(0, 0, 180)), owning_building_guid = 64)
|
||||
LocalObject(758, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2926.728f, 5104.791f, 38.03099f), Vector3(0, 0, 180)), owning_building_guid = 64)
|
||||
LocalObject(759, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2926.728f, 5109.545f, 38.03099f), Vector3(0, 0, 0)), owning_building_guid = 64)
|
||||
}
|
||||
|
||||
Building15()
|
||||
|
|
@ -811,12 +811,12 @@ object Map12 {
|
|||
LocalObject(877, Terminal.Constructor(order_terminal), owning_building_guid = 65)
|
||||
LocalObject(880, Terminal.Constructor(order_terminal), owning_building_guid = 65)
|
||||
LocalObject(881, Terminal.Constructor(order_terminal), owning_building_guid = 65)
|
||||
LocalObject(760, SpawnTube.Constructor(Vector3(3066.552f, 5250.067f, 38.03099f), Vector3(0, 0, 225)), owning_building_guid = 65)
|
||||
LocalObject(761, SpawnTube.Constructor(Vector3(3069.914f, 5253.429f, 38.03099f), Vector3(0, 0, 45)), owning_building_guid = 65)
|
||||
LocalObject(762, SpawnTube.Constructor(Vector3(3071.296f, 5245.323f, 38.03099f), Vector3(0, 0, 225)), owning_building_guid = 65)
|
||||
LocalObject(763, SpawnTube.Constructor(Vector3(3074.658f, 5248.686f, 38.03099f), Vector3(0, 0, 45)), owning_building_guid = 65)
|
||||
LocalObject(764, SpawnTube.Constructor(Vector3(3076.039f, 5240.58f, 38.03099f), Vector3(0, 0, 225)), owning_building_guid = 65)
|
||||
LocalObject(765, SpawnTube.Constructor(Vector3(3079.401f, 5243.942f, 38.03099f), Vector3(0, 0, 45)), owning_building_guid = 65)
|
||||
LocalObject(760, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3066.552f, 5250.067f, 38.03099f), Vector3(0, 0, 225)), owning_building_guid = 65)
|
||||
LocalObject(761, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3069.914f, 5253.429f, 38.03099f), Vector3(0, 0, 45)), owning_building_guid = 65)
|
||||
LocalObject(762, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3071.296f, 5245.323f, 38.03099f), Vector3(0, 0, 225)), owning_building_guid = 65)
|
||||
LocalObject(763, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3074.658f, 5248.686f, 38.03099f), Vector3(0, 0, 45)), owning_building_guid = 65)
|
||||
LocalObject(764, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3076.039f, 5240.58f, 38.03099f), Vector3(0, 0, 225)), owning_building_guid = 65)
|
||||
LocalObject(765, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3079.401f, 5243.942f, 38.03099f), Vector3(0, 0, 45)), owning_building_guid = 65)
|
||||
}
|
||||
|
||||
Building42()
|
||||
|
|
@ -843,12 +843,12 @@ object Map12 {
|
|||
LocalObject(893, Terminal.Constructor(order_terminal), owning_building_guid = 66)
|
||||
LocalObject(894, Terminal.Constructor(order_terminal), owning_building_guid = 66)
|
||||
LocalObject(895, Terminal.Constructor(order_terminal), owning_building_guid = 66)
|
||||
LocalObject(772, SpawnTube.Constructor(Vector3(3157.272f, 3044.455f, 36.9544f), Vector3(0, 0, 180)), owning_building_guid = 66)
|
||||
LocalObject(773, SpawnTube.Constructor(Vector3(3157.272f, 3049.209f, 36.9544f), Vector3(0, 0, 0)), owning_building_guid = 66)
|
||||
LocalObject(774, SpawnTube.Constructor(Vector3(3163.98f, 3049.21f, 36.9544f), Vector3(0, 0, 0)), owning_building_guid = 66)
|
||||
LocalObject(775, SpawnTube.Constructor(Vector3(3163.981f, 3044.455f, 36.9544f), Vector3(0, 0, 180)), owning_building_guid = 66)
|
||||
LocalObject(776, SpawnTube.Constructor(Vector3(3170.688f, 3044.455f, 36.9544f), Vector3(0, 0, 180)), owning_building_guid = 66)
|
||||
LocalObject(777, SpawnTube.Constructor(Vector3(3170.688f, 3049.209f, 36.9544f), Vector3(0, 0, 0)), owning_building_guid = 66)
|
||||
LocalObject(772, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3157.272f, 3044.455f, 36.9544f), Vector3(0, 0, 180)), owning_building_guid = 66)
|
||||
LocalObject(773, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3157.272f, 3049.209f, 36.9544f), Vector3(0, 0, 0)), owning_building_guid = 66)
|
||||
LocalObject(774, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3163.98f, 3049.21f, 36.9544f), Vector3(0, 0, 0)), owning_building_guid = 66)
|
||||
LocalObject(775, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3163.981f, 3044.455f, 36.9544f), Vector3(0, 0, 180)), owning_building_guid = 66)
|
||||
LocalObject(776, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3170.688f, 3044.455f, 36.9544f), Vector3(0, 0, 180)), owning_building_guid = 66)
|
||||
LocalObject(777, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3170.688f, 3049.209f, 36.9544f), Vector3(0, 0, 0)), owning_building_guid = 66)
|
||||
}
|
||||
|
||||
Building41()
|
||||
|
|
@ -875,12 +875,12 @@ object Map12 {
|
|||
LocalObject(887, Terminal.Constructor(order_terminal), owning_building_guid = 67)
|
||||
LocalObject(888, Terminal.Constructor(order_terminal), owning_building_guid = 67)
|
||||
LocalObject(889, Terminal.Constructor(order_terminal), owning_building_guid = 67)
|
||||
LocalObject(766, SpawnTube.Constructor(Vector3(3138.455f, 2875.312f, 36.95451f), Vector3(0, 0, 270)), owning_building_guid = 67)
|
||||
LocalObject(767, SpawnTube.Constructor(Vector3(3138.455f, 2882.019f, 36.95451f), Vector3(0, 0, 270)), owning_building_guid = 67)
|
||||
LocalObject(768, SpawnTube.Constructor(Vector3(3138.455f, 2888.728f, 36.95451f), Vector3(0, 0, 270)), owning_building_guid = 67)
|
||||
LocalObject(769, SpawnTube.Constructor(Vector3(3143.209f, 2875.312f, 36.95451f), Vector3(0, 0, 90)), owning_building_guid = 67)
|
||||
LocalObject(770, SpawnTube.Constructor(Vector3(3143.209f, 2888.728f, 36.95451f), Vector3(0, 0, 90)), owning_building_guid = 67)
|
||||
LocalObject(771, SpawnTube.Constructor(Vector3(3143.21f, 2882.02f, 36.95451f), Vector3(0, 0, 90)), owning_building_guid = 67)
|
||||
LocalObject(766, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3138.455f, 2875.312f, 36.95451f), Vector3(0, 0, 270)), owning_building_guid = 67)
|
||||
LocalObject(767, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3138.455f, 2882.019f, 36.95451f), Vector3(0, 0, 270)), owning_building_guid = 67)
|
||||
LocalObject(768, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3138.455f, 2888.728f, 36.95451f), Vector3(0, 0, 270)), owning_building_guid = 67)
|
||||
LocalObject(769, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3143.209f, 2875.312f, 36.95451f), Vector3(0, 0, 90)), owning_building_guid = 67)
|
||||
LocalObject(770, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3143.209f, 2888.728f, 36.95451f), Vector3(0, 0, 90)), owning_building_guid = 67)
|
||||
LocalObject(771, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3143.21f, 2882.02f, 36.95451f), Vector3(0, 0, 90)), owning_building_guid = 67)
|
||||
}
|
||||
|
||||
Building25()
|
||||
|
|
@ -907,12 +907,12 @@ object Map12 {
|
|||
LocalObject(917, Terminal.Constructor(order_terminal), owning_building_guid = 68)
|
||||
LocalObject(918, Terminal.Constructor(order_terminal), owning_building_guid = 68)
|
||||
LocalObject(919, Terminal.Constructor(order_terminal), owning_building_guid = 68)
|
||||
LocalObject(778, SpawnTube.Constructor(Vector3(5078.79f, 3907.98f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 68)
|
||||
LocalObject(779, SpawnTube.Constructor(Vector3(5078.791f, 3901.272f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 68)
|
||||
LocalObject(780, SpawnTube.Constructor(Vector3(5078.791f, 3914.688f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 68)
|
||||
LocalObject(781, SpawnTube.Constructor(Vector3(5083.545f, 3901.272f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 68)
|
||||
LocalObject(782, SpawnTube.Constructor(Vector3(5083.545f, 3907.981f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 68)
|
||||
LocalObject(783, SpawnTube.Constructor(Vector3(5083.545f, 3914.688f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 68)
|
||||
LocalObject(778, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5078.79f, 3907.98f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 68)
|
||||
LocalObject(779, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5078.791f, 3901.272f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 68)
|
||||
LocalObject(780, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5078.791f, 3914.688f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 68)
|
||||
LocalObject(781, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5083.545f, 3901.272f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 68)
|
||||
LocalObject(782, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5083.545f, 3907.981f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 68)
|
||||
LocalObject(783, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5083.545f, 3914.688f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 68)
|
||||
}
|
||||
|
||||
Building23()
|
||||
|
|
@ -939,12 +939,12 @@ object Map12 {
|
|||
LocalObject(933, Terminal.Constructor(order_terminal), owning_building_guid = 69)
|
||||
LocalObject(934, Terminal.Constructor(order_terminal), owning_building_guid = 69)
|
||||
LocalObject(935, Terminal.Constructor(order_terminal), owning_building_guid = 69)
|
||||
LocalObject(784, SpawnTube.Constructor(Vector3(5223.312f, 3784.791f, 37.96111f), Vector3(0, 0, 180)), owning_building_guid = 69)
|
||||
LocalObject(785, SpawnTube.Constructor(Vector3(5223.312f, 3789.545f, 37.96111f), Vector3(0, 0, 0)), owning_building_guid = 69)
|
||||
LocalObject(786, SpawnTube.Constructor(Vector3(5230.019f, 3789.545f, 37.96111f), Vector3(0, 0, 0)), owning_building_guid = 69)
|
||||
LocalObject(787, SpawnTube.Constructor(Vector3(5230.02f, 3784.79f, 37.96111f), Vector3(0, 0, 180)), owning_building_guid = 69)
|
||||
LocalObject(788, SpawnTube.Constructor(Vector3(5236.728f, 3784.791f, 37.96111f), Vector3(0, 0, 180)), owning_building_guid = 69)
|
||||
LocalObject(789, SpawnTube.Constructor(Vector3(5236.728f, 3789.545f, 37.96111f), Vector3(0, 0, 0)), owning_building_guid = 69)
|
||||
LocalObject(784, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5223.312f, 3784.791f, 37.96111f), Vector3(0, 0, 180)), owning_building_guid = 69)
|
||||
LocalObject(785, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5223.312f, 3789.545f, 37.96111f), Vector3(0, 0, 0)), owning_building_guid = 69)
|
||||
LocalObject(786, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5230.019f, 3789.545f, 37.96111f), Vector3(0, 0, 0)), owning_building_guid = 69)
|
||||
LocalObject(787, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5230.02f, 3784.79f, 37.96111f), Vector3(0, 0, 180)), owning_building_guid = 69)
|
||||
LocalObject(788, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5236.728f, 3784.791f, 37.96111f), Vector3(0, 0, 180)), owning_building_guid = 69)
|
||||
LocalObject(789, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5236.728f, 3789.545f, 37.96111f), Vector3(0, 0, 0)), owning_building_guid = 69)
|
||||
}
|
||||
|
||||
Building24()
|
||||
|
|
@ -971,12 +971,12 @@ object Map12 {
|
|||
LocalObject(949, Terminal.Constructor(order_terminal), owning_building_guid = 70)
|
||||
LocalObject(950, Terminal.Constructor(order_terminal), owning_building_guid = 70)
|
||||
LocalObject(951, Terminal.Constructor(order_terminal), owning_building_guid = 70)
|
||||
LocalObject(790, SpawnTube.Constructor(Vector3(5382.455f, 3899.312f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 70)
|
||||
LocalObject(791, SpawnTube.Constructor(Vector3(5382.455f, 3906.019f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 70)
|
||||
LocalObject(792, SpawnTube.Constructor(Vector3(5382.455f, 3912.728f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 70)
|
||||
LocalObject(793, SpawnTube.Constructor(Vector3(5387.209f, 3899.312f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 70)
|
||||
LocalObject(794, SpawnTube.Constructor(Vector3(5387.209f, 3912.728f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 70)
|
||||
LocalObject(795, SpawnTube.Constructor(Vector3(5387.21f, 3906.02f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 70)
|
||||
LocalObject(790, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5382.455f, 3899.312f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 70)
|
||||
LocalObject(791, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5382.455f, 3906.019f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 70)
|
||||
LocalObject(792, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5382.455f, 3912.728f, 37.96111f), Vector3(0, 0, 270)), owning_building_guid = 70)
|
||||
LocalObject(793, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5387.209f, 3899.312f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 70)
|
||||
LocalObject(794, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5387.209f, 3912.728f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 70)
|
||||
LocalObject(795, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5387.21f, 3906.02f, 37.96111f), Vector3(0, 0, 90)), owning_building_guid = 70)
|
||||
}
|
||||
|
||||
Building8()
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import net.psforever.objects.serverobject.implantmech.ImplantTerminalMech
|
|||
import net.psforever.objects.serverobject.locks.IFFLock
|
||||
import net.psforever.objects.serverobject.mblocker.Locker
|
||||
import net.psforever.objects.serverobject.pad.VehicleSpawnPad
|
||||
import net.psforever.objects.serverobject.structures.{Building, FoundationBuilder, StructureType}
|
||||
import net.psforever.objects.serverobject.structures.{Building, FoundationBuilder, StructureType, WarpGate}
|
||||
import net.psforever.objects.serverobject.terminals.{CaptureTerminal, ProximityTerminal, Terminal}
|
||||
import net.psforever.objects.serverobject.tube.SpawnTube
|
||||
import net.psforever.objects.serverobject.turret.FacilityTurret
|
||||
|
|
@ -16,10 +16,9 @@ import net.psforever.types.Vector3
|
|||
object Map13 {
|
||||
// HOME3 (VANU SOVREIGNTY SANCTUARY)
|
||||
val ZoneMap = new ZoneMap("map13") {
|
||||
|
||||
Building22()
|
||||
|
||||
def Building22(): Unit = { // Name: Hart_Ishundar Type: orbital_building_vs GUID: 1, MapID: 22
|
||||
def Building22() : Unit = { // Name: Hart_Ishundar Type: orbital_building_vs GUID: 1, MapID: 22
|
||||
LocalBuilding(1, 22, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2978f, 4834f, 56.08539f))))
|
||||
LocalObject(360, Door.Constructor(Vector3(2898f, 4821.99f, 60.19139f)), owning_building_guid = 1)
|
||||
LocalObject(361, Door.Constructor(Vector3(2898f, 4845.99f, 60.19139f)), owning_building_guid = 1)
|
||||
|
|
@ -125,7 +124,7 @@ object Map13 {
|
|||
|
||||
Building4()
|
||||
|
||||
def Building4(): Unit = { // Name: Hart_Esamir Type: orbital_building_vs GUID: 2, MapID: 4
|
||||
def Building4() : Unit = { // Name: Hart_Esamir Type: orbital_building_vs GUID: 2, MapID: 4
|
||||
LocalBuilding(2, 4, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3688f, 2808f, 90.85312f))))
|
||||
LocalObject(370, Door.Constructor(Vector3(3608f, 2795.99f, 94.95912f)), owning_building_guid = 2)
|
||||
LocalObject(371, Door.Constructor(Vector3(3608f, 2819.99f, 94.95912f)), owning_building_guid = 2)
|
||||
|
|
@ -231,7 +230,7 @@ object Map13 {
|
|||
|
||||
Building40()
|
||||
|
||||
def Building40(): Unit = { // Name: Hart_Hossin Type: orbital_building_vs GUID: 3, MapID: 40
|
||||
def Building40() : Unit = { // Name: Hart_Hossin Type: orbital_building_vs GUID: 3, MapID: 40
|
||||
LocalBuilding(3, 40, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5610f, 4238f, 103.2289f))))
|
||||
LocalObject(382, Door.Constructor(Vector3(5530f, 4225.99f, 107.3349f)), owning_building_guid = 3)
|
||||
LocalObject(383, Door.Constructor(Vector3(5530f, 4249.99f, 107.3349f)), owning_building_guid = 3)
|
||||
|
|
@ -337,7 +336,7 @@ object Map13 {
|
|||
|
||||
Building58()
|
||||
|
||||
def Building58(): Unit = { // Name: S_Ishundar_WG_tower Type: tower_a GUID: 28, MapID: 58
|
||||
def Building58() : Unit = { // Name: S_Ishundar_WG_tower Type: tower_a GUID: 28, MapID: 58
|
||||
LocalBuilding(28, 58, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(2708f, 5084f, 56.14882f))))
|
||||
LocalObject(1015, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 28)
|
||||
LocalObject(312, Door.Constructor(Vector3(2720f, 5076f, 57.66982f)), owning_building_guid = 28)
|
||||
|
|
@ -371,7 +370,7 @@ object Map13 {
|
|||
|
||||
Building63()
|
||||
|
||||
def Building63(): Unit = { // Name: Esamir_WG_tower Type: tower_a GUID: 29, MapID: 63
|
||||
def Building63() : Unit = { // Name: Esamir_WG_tower Type: tower_a GUID: 29, MapID: 63
|
||||
LocalBuilding(29, 63, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(3968f, 2600f, 90.86123f))))
|
||||
LocalObject(1019, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 29)
|
||||
LocalObject(330, Door.Constructor(Vector3(3980f, 2592f, 92.38223f)), owning_building_guid = 29)
|
||||
|
|
@ -405,7 +404,7 @@ object Map13 {
|
|||
|
||||
Building66()
|
||||
|
||||
def Building66(): Unit = { // Name: SE_Hossin_WG_tower Type: tower_a GUID: 30, MapID: 66
|
||||
def Building66() : Unit = { // Name: SE_Hossin_WG_tower Type: tower_a GUID: 30, MapID: 66
|
||||
LocalBuilding(30, 66, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(6006f, 4414f, 97.87095f))))
|
||||
LocalObject(1024, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 30)
|
||||
LocalObject(354, Door.Constructor(Vector3(6018f, 4406f, 99.39195f)), owning_building_guid = 30)
|
||||
|
|
@ -439,7 +438,7 @@ object Map13 {
|
|||
|
||||
Building60()
|
||||
|
||||
def Building60(): Unit = { // Name: NW_Esamir_WG_tower Type: tower_b GUID: 31, MapID: 60
|
||||
def Building60() : Unit = { // Name: NW_Esamir_WG_tower Type: tower_b GUID: 31, MapID: 60
|
||||
LocalBuilding(31, 60, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(3208f, 3524f, 92.25745f))))
|
||||
LocalObject(1016, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 31)
|
||||
LocalObject(316, Door.Constructor(Vector3(3220f, 3516f, 93.77745f)), owning_building_guid = 31)
|
||||
|
|
@ -473,7 +472,7 @@ object Map13 {
|
|||
|
||||
Building64()
|
||||
|
||||
def Building64(): Unit = { // Name: W_Hossin_WG_tower Type: tower_b GUID: 32, MapID: 64
|
||||
def Building64() : Unit = { // Name: W_Hossin_WG_tower Type: tower_b GUID: 32, MapID: 64
|
||||
LocalBuilding(32, 64, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(3988f, 4380f, 87.9162f))))
|
||||
LocalObject(1020, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 32)
|
||||
LocalObject(334, Door.Constructor(Vector3(4000f, 4372f, 89.4362f)), owning_building_guid = 32)
|
||||
|
|
@ -507,7 +506,7 @@ object Map13 {
|
|||
|
||||
Building67()
|
||||
|
||||
def Building67(): Unit = { // Name: NE_Esamir_WG_tower Type: tower_b GUID: 33, MapID: 67
|
||||
def Building67() : Unit = { // Name: NE_Esamir_WG_tower Type: tower_b GUID: 33, MapID: 67
|
||||
LocalBuilding(33, 67, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(5098f, 2978f, 97.9873f))))
|
||||
LocalObject(1022, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 33)
|
||||
LocalObject(344, Door.Constructor(Vector3(5110f, 2970f, 99.5073f)), owning_building_guid = 33)
|
||||
|
|
@ -541,7 +540,7 @@ object Map13 {
|
|||
|
||||
Building59()
|
||||
|
||||
def Building59(): Unit = { // Name: SE_Ishundar_WG_tower Type: tower_c GUID: 34, MapID: 59
|
||||
def Building59() : Unit = { // Name: SE_Ishundar_WG_tower Type: tower_c GUID: 34, MapID: 59
|
||||
LocalBuilding(34, 59, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(3224f, 4594f, 56.08539f))))
|
||||
LocalObject(1017, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 34)
|
||||
LocalObject(322, Door.Constructor(Vector3(3236f, 4586f, 57.60639f)), owning_building_guid = 34)
|
||||
|
|
@ -579,7 +578,7 @@ object Map13 {
|
|||
|
||||
Building62()
|
||||
|
||||
def Building62(): Unit = { // Name: N_Esamir_WG_tower Type: tower_c GUID: 35, MapID: 62
|
||||
def Building62() : Unit = { // Name: N_Esamir_WG_tower Type: tower_c GUID: 35, MapID: 62
|
||||
LocalBuilding(35, 62, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(3670f, 3180f, 89.51079f))))
|
||||
LocalObject(1018, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 35)
|
||||
LocalObject(326, Door.Constructor(Vector3(3682f, 3172f, 91.03179f)), owning_building_guid = 35)
|
||||
|
|
@ -617,7 +616,7 @@ object Map13 {
|
|||
|
||||
Building61()
|
||||
|
||||
def Building61(): Unit = { // Name: Continent_Central_tower Type: tower_c GUID: 36, MapID: 61
|
||||
def Building61() : Unit = { // Name: Continent_Central_tower Type: tower_c GUID: 36, MapID: 61
|
||||
LocalBuilding(36, 61, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(4410f, 3728f, 83.92174f))))
|
||||
LocalObject(1021, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 36)
|
||||
LocalObject(340, Door.Constructor(Vector3(4422f, 3720f, 85.44274f)), owning_building_guid = 36)
|
||||
|
|
@ -655,7 +654,7 @@ object Map13 {
|
|||
|
||||
Building65()
|
||||
|
||||
def Building65(): Unit = { // Name: SW_Hossin_WG_tower Type: tower_c GUID: 37, MapID: 65
|
||||
def Building65() : Unit = { // Name: SW_Hossin_WG_tower Type: tower_c GUID: 37, MapID: 65
|
||||
LocalBuilding(37, 65, FoundationBuilder(Building.Structure(StructureType.Tower, Vector3(5160f, 4266f, 93.25694f))))
|
||||
LocalObject(1023, CaptureTerminal.Constructor(secondary_capture), owning_building_guid = 37)
|
||||
LocalObject(350, Door.Constructor(Vector3(5172f, 4258f, 94.77794f)), owning_building_guid = 37)
|
||||
|
|
@ -693,7 +692,7 @@ object Map13 {
|
|||
|
||||
Building33()
|
||||
|
||||
def Building33(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 38, MapID: 33
|
||||
def Building33() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 38, MapID: 33
|
||||
LocalBuilding(38, 33, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2848f, 4948f, 56.08539f))))
|
||||
LocalObject(234, Door.Constructor(Vector3(2801.93f, 4911.454f, 58.16139f)), owning_building_guid = 38)
|
||||
LocalObject(235, Door.Constructor(Vector3(2806.54f, 4916.042f, 58.16139f)), owning_building_guid = 38)
|
||||
|
|
@ -715,17 +714,17 @@ object Map13 {
|
|||
LocalObject(795, Terminal.Constructor(order_terminal), owning_building_guid = 38)
|
||||
LocalObject(796, Terminal.Constructor(order_terminal), owning_building_guid = 38)
|
||||
LocalObject(797, Terminal.Constructor(order_terminal), owning_building_guid = 38)
|
||||
LocalObject(720, SpawnTube.Constructor(Vector3(2802.552f, 4912.067f, 58.11739f), Vector3(0, 0, 225)), owning_building_guid = 38)
|
||||
LocalObject(721, SpawnTube.Constructor(Vector3(2805.914f, 4915.429f, 58.11739f), Vector3(0, 0, 45)), owning_building_guid = 38)
|
||||
LocalObject(722, SpawnTube.Constructor(Vector3(2807.296f, 4907.323f, 58.11739f), Vector3(0, 0, 225)), owning_building_guid = 38)
|
||||
LocalObject(723, SpawnTube.Constructor(Vector3(2810.658f, 4910.686f, 58.11739f), Vector3(0, 0, 45)), owning_building_guid = 38)
|
||||
LocalObject(724, SpawnTube.Constructor(Vector3(2812.039f, 4902.58f, 58.11739f), Vector3(0, 0, 225)), owning_building_guid = 38)
|
||||
LocalObject(725, SpawnTube.Constructor(Vector3(2815.401f, 4905.942f, 58.11739f), Vector3(0, 0, 45)), owning_building_guid = 38)
|
||||
LocalObject(720, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2802.552f, 4912.067f, 58.11739f), Vector3(0, 0, 225)), owning_building_guid = 38)
|
||||
LocalObject(721, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2805.914f, 4915.429f, 58.11739f), Vector3(0, 0, 45)), owning_building_guid = 38)
|
||||
LocalObject(722, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2807.296f, 4907.323f, 58.11739f), Vector3(0, 0, 225)), owning_building_guid = 38)
|
||||
LocalObject(723, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2810.658f, 4910.686f, 58.11739f), Vector3(0, 0, 45)), owning_building_guid = 38)
|
||||
LocalObject(724, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2812.039f, 4902.58f, 58.11739f), Vector3(0, 0, 225)), owning_building_guid = 38)
|
||||
LocalObject(725, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(2815.401f, 4905.942f, 58.11739f), Vector3(0, 0, 45)), owning_building_guid = 38)
|
||||
}
|
||||
|
||||
Building35()
|
||||
|
||||
def Building35(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 39, MapID: 35
|
||||
def Building35() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 39, MapID: 35
|
||||
LocalBuilding(39, 35, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3122f, 4690f, 56.08539f))))
|
||||
LocalObject(240, Door.Constructor(Vector3(3075.97f, 4726.587f, 58.16139f)), owning_building_guid = 39)
|
||||
LocalObject(241, Door.Constructor(Vector3(3080.558f, 4721.976f, 58.16139f)), owning_building_guid = 39)
|
||||
|
|
@ -747,17 +746,17 @@ object Map13 {
|
|||
LocalObject(821, Terminal.Constructor(order_terminal), owning_building_guid = 39)
|
||||
LocalObject(822, Terminal.Constructor(order_terminal), owning_building_guid = 39)
|
||||
LocalObject(823, Terminal.Constructor(order_terminal), owning_building_guid = 39)
|
||||
LocalObject(726, SpawnTube.Constructor(Vector3(3076.58f, 4725.961f, 58.11739f), Vector3(0, 0, 315)), owning_building_guid = 39)
|
||||
LocalObject(727, SpawnTube.Constructor(Vector3(3079.942f, 4722.599f, 58.11739f), Vector3(0, 0, 135)), owning_building_guid = 39)
|
||||
LocalObject(728, SpawnTube.Constructor(Vector3(3081.323f, 4730.704f, 58.11739f), Vector3(0, 0, 315)), owning_building_guid = 39)
|
||||
LocalObject(729, SpawnTube.Constructor(Vector3(3084.686f, 4727.342f, 58.11739f), Vector3(0, 0, 135)), owning_building_guid = 39)
|
||||
LocalObject(730, SpawnTube.Constructor(Vector3(3086.067f, 4735.448f, 58.11739f), Vector3(0, 0, 315)), owning_building_guid = 39)
|
||||
LocalObject(731, SpawnTube.Constructor(Vector3(3089.429f, 4732.086f, 58.11739f), Vector3(0, 0, 135)), owning_building_guid = 39)
|
||||
LocalObject(726, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3076.58f, 4725.961f, 58.11739f), Vector3(0, 0, 315)), owning_building_guid = 39)
|
||||
LocalObject(727, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3079.942f, 4722.599f, 58.11739f), Vector3(0, 0, 135)), owning_building_guid = 39)
|
||||
LocalObject(728, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3081.323f, 4730.704f, 58.11739f), Vector3(0, 0, 315)), owning_building_guid = 39)
|
||||
LocalObject(729, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3084.686f, 4727.342f, 58.11739f), Vector3(0, 0, 135)), owning_building_guid = 39)
|
||||
LocalObject(730, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3086.067f, 4735.448f, 58.11739f), Vector3(0, 0, 315)), owning_building_guid = 39)
|
||||
LocalObject(731, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3089.429f, 4732.086f, 58.11739f), Vector3(0, 0, 135)), owning_building_guid = 39)
|
||||
}
|
||||
|
||||
Building34()
|
||||
|
||||
def Building34(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 40, MapID: 34
|
||||
def Building34() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 40, MapID: 34
|
||||
LocalBuilding(40, 34, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3144f, 4930f, 56.08539f))))
|
||||
LocalObject(246, Door.Constructor(Vector3(3137.266f, 4871.582f, 58.16139f)), owning_building_guid = 40)
|
||||
LocalObject(247, Door.Constructor(Vector3(3137.281f, 4878.085f, 58.16139f)), owning_building_guid = 40)
|
||||
|
|
@ -779,17 +778,17 @@ object Map13 {
|
|||
LocalObject(827, Terminal.Constructor(order_terminal), owning_building_guid = 40)
|
||||
LocalObject(828, Terminal.Constructor(order_terminal), owning_building_guid = 40)
|
||||
LocalObject(829, Terminal.Constructor(order_terminal), owning_building_guid = 40)
|
||||
LocalObject(732, SpawnTube.Constructor(Vector3(3137.272f, 4872.455f, 58.11739f), Vector3(0, 0, 180)), owning_building_guid = 40)
|
||||
LocalObject(733, SpawnTube.Constructor(Vector3(3137.272f, 4877.209f, 58.11739f), Vector3(0, 0, 0)), owning_building_guid = 40)
|
||||
LocalObject(734, SpawnTube.Constructor(Vector3(3143.98f, 4877.21f, 58.11739f), Vector3(0, 0, 0)), owning_building_guid = 40)
|
||||
LocalObject(735, SpawnTube.Constructor(Vector3(3143.981f, 4872.455f, 58.11739f), Vector3(0, 0, 180)), owning_building_guid = 40)
|
||||
LocalObject(736, SpawnTube.Constructor(Vector3(3150.688f, 4872.455f, 58.11739f), Vector3(0, 0, 180)), owning_building_guid = 40)
|
||||
LocalObject(737, SpawnTube.Constructor(Vector3(3150.688f, 4877.209f, 58.11739f), Vector3(0, 0, 0)), owning_building_guid = 40)
|
||||
LocalObject(732, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3137.272f, 4872.455f, 58.11739f), Vector3(0, 0, 180)), owning_building_guid = 40)
|
||||
LocalObject(733, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3137.272f, 4877.209f, 58.11739f), Vector3(0, 0, 0)), owning_building_guid = 40)
|
||||
LocalObject(734, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3143.98f, 4877.21f, 58.11739f), Vector3(0, 0, 0)), owning_building_guid = 40)
|
||||
LocalObject(735, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3143.981f, 4872.455f, 58.11739f), Vector3(0, 0, 180)), owning_building_guid = 40)
|
||||
LocalObject(736, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3150.688f, 4872.455f, 58.11739f), Vector3(0, 0, 180)), owning_building_guid = 40)
|
||||
LocalObject(737, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3150.688f, 4877.209f, 58.11739f), Vector3(0, 0, 0)), owning_building_guid = 40)
|
||||
}
|
||||
|
||||
Building7()
|
||||
|
||||
def Building7(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 41, MapID: 7
|
||||
def Building7() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 41, MapID: 7
|
||||
LocalBuilding(41, 7, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3592f, 2966f, 90.8536f))))
|
||||
LocalObject(252, Door.Constructor(Vector3(3584.247f, 2907.708f, 92.9296f)), owning_building_guid = 41)
|
||||
LocalObject(253, Door.Constructor(Vector3(3584.376f, 2914.211f, 92.9296f)), owning_building_guid = 41)
|
||||
|
|
@ -811,17 +810,17 @@ object Map13 {
|
|||
LocalObject(839, Terminal.Constructor(order_terminal), owning_building_guid = 41)
|
||||
LocalObject(840, Terminal.Constructor(order_terminal), owning_building_guid = 41)
|
||||
LocalObject(841, Terminal.Constructor(order_terminal), owning_building_guid = 41)
|
||||
LocalObject(738, SpawnTube.Constructor(Vector3(3584.269f, 2908.581f, 92.8856f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(739, SpawnTube.Constructor(Vector3(3584.352f, 2913.335f, 92.8856f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(740, SpawnTube.Constructor(Vector3(3590.977f, 2908.464f, 92.8856f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(741, SpawnTube.Constructor(Vector3(3591.059f, 2913.219f, 92.8856f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(742, SpawnTube.Constructor(Vector3(3597.683f, 2908.347f, 92.8856f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(743, SpawnTube.Constructor(Vector3(3597.766f, 2913.101f, 92.8856f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(738, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3584.269f, 2908.581f, 92.8856f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(739, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3584.352f, 2913.335f, 92.8856f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(740, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3590.977f, 2908.464f, 92.8856f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(741, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3591.059f, 2913.219f, 92.8856f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
LocalObject(742, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3597.683f, 2908.347f, 92.8856f), Vector3(0, 0, 181)), owning_building_guid = 41)
|
||||
LocalObject(743, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3597.766f, 2913.101f, 92.8856f), Vector3(0, 0, 1)), owning_building_guid = 41)
|
||||
}
|
||||
|
||||
Building12()
|
||||
|
||||
def Building12(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 42, MapID: 12
|
||||
def Building12() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 42, MapID: 12
|
||||
LocalBuilding(42, 12, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3690f, 2656f, 90.84919f))))
|
||||
LocalObject(258, Door.Constructor(Vector3(3684.214f, 2708.023f, 92.92519f)), owning_building_guid = 42)
|
||||
LocalObject(259, Door.Constructor(Vector3(3684.343f, 2714.527f, 92.92519f)), owning_building_guid = 42)
|
||||
|
|
@ -843,17 +842,17 @@ object Map13 {
|
|||
LocalObject(855, Terminal.Constructor(order_terminal), owning_building_guid = 42)
|
||||
LocalObject(859, Terminal.Constructor(order_terminal), owning_building_guid = 42)
|
||||
LocalObject(860, Terminal.Constructor(order_terminal), owning_building_guid = 42)
|
||||
LocalObject(744, SpawnTube.Constructor(Vector3(3684.234f, 2708.899f, 92.88119f), Vector3(0, 0, 181)), owning_building_guid = 42)
|
||||
LocalObject(745, SpawnTube.Constructor(Vector3(3684.317f, 2713.653f, 92.88119f), Vector3(0, 0, 1)), owning_building_guid = 42)
|
||||
LocalObject(746, SpawnTube.Constructor(Vector3(3690.941f, 2708.781f, 92.88119f), Vector3(0, 0, 181)), owning_building_guid = 42)
|
||||
LocalObject(747, SpawnTube.Constructor(Vector3(3691.023f, 2713.536f, 92.88119f), Vector3(0, 0, 1)), owning_building_guid = 42)
|
||||
LocalObject(748, SpawnTube.Constructor(Vector3(3697.648f, 2708.665f, 92.88119f), Vector3(0, 0, 181)), owning_building_guid = 42)
|
||||
LocalObject(749, SpawnTube.Constructor(Vector3(3697.731f, 2713.419f, 92.88119f), Vector3(0, 0, 1)), owning_building_guid = 42)
|
||||
LocalObject(744, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3684.234f, 2708.899f, 92.88119f), Vector3(0, 0, 181)), owning_building_guid = 42)
|
||||
LocalObject(745, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3684.317f, 2713.653f, 92.88119f), Vector3(0, 0, 1)), owning_building_guid = 42)
|
||||
LocalObject(746, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3690.941f, 2708.781f, 92.88119f), Vector3(0, 0, 181)), owning_building_guid = 42)
|
||||
LocalObject(747, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3691.023f, 2713.536f, 92.88119f), Vector3(0, 0, 1)), owning_building_guid = 42)
|
||||
LocalObject(748, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3697.648f, 2708.665f, 92.88119f), Vector3(0, 0, 181)), owning_building_guid = 42)
|
||||
LocalObject(749, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3697.731f, 2713.419f, 92.88119f), Vector3(0, 0, 1)), owning_building_guid = 42)
|
||||
}
|
||||
|
||||
Building13()
|
||||
|
||||
def Building13(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 43, MapID: 13
|
||||
def Building13() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 43, MapID: 13
|
||||
LocalBuilding(43, 13, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3788f, 2968f, 90.8505f))))
|
||||
LocalObject(264, Door.Constructor(Vector3(3780.247f, 2909.708f, 92.9265f)), owning_building_guid = 43)
|
||||
LocalObject(265, Door.Constructor(Vector3(3780.376f, 2916.211f, 92.9265f)), owning_building_guid = 43)
|
||||
|
|
@ -875,17 +874,17 @@ object Map13 {
|
|||
LocalObject(874, Terminal.Constructor(order_terminal), owning_building_guid = 43)
|
||||
LocalObject(875, Terminal.Constructor(order_terminal), owning_building_guid = 43)
|
||||
LocalObject(876, Terminal.Constructor(order_terminal), owning_building_guid = 43)
|
||||
LocalObject(750, SpawnTube.Constructor(Vector3(3780.269f, 2910.581f, 92.8825f), Vector3(0, 0, 181)), owning_building_guid = 43)
|
||||
LocalObject(751, SpawnTube.Constructor(Vector3(3780.352f, 2915.335f, 92.8825f), Vector3(0, 0, 1)), owning_building_guid = 43)
|
||||
LocalObject(752, SpawnTube.Constructor(Vector3(3786.977f, 2910.464f, 92.8825f), Vector3(0, 0, 181)), owning_building_guid = 43)
|
||||
LocalObject(753, SpawnTube.Constructor(Vector3(3787.059f, 2915.219f, 92.8825f), Vector3(0, 0, 1)), owning_building_guid = 43)
|
||||
LocalObject(754, SpawnTube.Constructor(Vector3(3793.683f, 2910.347f, 92.8825f), Vector3(0, 0, 181)), owning_building_guid = 43)
|
||||
LocalObject(755, SpawnTube.Constructor(Vector3(3793.766f, 2915.101f, 92.8825f), Vector3(0, 0, 1)), owning_building_guid = 43)
|
||||
LocalObject(750, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3780.269f, 2910.581f, 92.8825f), Vector3(0, 0, 181)), owning_building_guid = 43)
|
||||
LocalObject(751, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3780.352f, 2915.335f, 92.8825f), Vector3(0, 0, 1)), owning_building_guid = 43)
|
||||
LocalObject(752, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3786.977f, 2910.464f, 92.8825f), Vector3(0, 0, 181)), owning_building_guid = 43)
|
||||
LocalObject(753, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3787.059f, 2915.219f, 92.8825f), Vector3(0, 0, 1)), owning_building_guid = 43)
|
||||
LocalObject(754, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3793.683f, 2910.347f, 92.8825f), Vector3(0, 0, 181)), owning_building_guid = 43)
|
||||
LocalObject(755, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(3793.766f, 2915.101f, 92.8825f), Vector3(0, 0, 1)), owning_building_guid = 43)
|
||||
}
|
||||
|
||||
Building50()
|
||||
|
||||
def Building50(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 44, MapID: 50
|
||||
def Building50() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 44, MapID: 50
|
||||
LocalBuilding(44, 50, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5470f, 4094f, 103.2367f))))
|
||||
LocalObject(276, Door.Constructor(Vector3(5501.976f, 4135.442f, 105.3127f)), owning_building_guid = 44)
|
||||
LocalObject(277, Door.Constructor(Vector3(5506.587f, 4140.03f, 105.3127f)), owning_building_guid = 44)
|
||||
|
|
@ -907,17 +906,17 @@ object Map13 {
|
|||
LocalObject(901, Terminal.Constructor(order_terminal), owning_building_guid = 44)
|
||||
LocalObject(902, Terminal.Constructor(order_terminal), owning_building_guid = 44)
|
||||
LocalObject(903, Terminal.Constructor(order_terminal), owning_building_guid = 44)
|
||||
LocalObject(762, SpawnTube.Constructor(Vector3(5502.599f, 4136.058f, 105.2687f), Vector3(0, 0, 225)), owning_building_guid = 44)
|
||||
LocalObject(763, SpawnTube.Constructor(Vector3(5505.961f, 4139.42f, 105.2687f), Vector3(0, 0, 45)), owning_building_guid = 44)
|
||||
LocalObject(764, SpawnTube.Constructor(Vector3(5507.342f, 4131.314f, 105.2687f), Vector3(0, 0, 225)), owning_building_guid = 44)
|
||||
LocalObject(765, SpawnTube.Constructor(Vector3(5510.704f, 4134.677f, 105.2687f), Vector3(0, 0, 45)), owning_building_guid = 44)
|
||||
LocalObject(766, SpawnTube.Constructor(Vector3(5512.086f, 4126.571f, 105.2687f), Vector3(0, 0, 225)), owning_building_guid = 44)
|
||||
LocalObject(767, SpawnTube.Constructor(Vector3(5515.448f, 4129.933f, 105.2687f), Vector3(0, 0, 45)), owning_building_guid = 44)
|
||||
LocalObject(762, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5502.599f, 4136.058f, 105.2687f), Vector3(0, 0, 225)), owning_building_guid = 44)
|
||||
LocalObject(763, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5505.961f, 4139.42f, 105.2687f), Vector3(0, 0, 45)), owning_building_guid = 44)
|
||||
LocalObject(764, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5507.342f, 4131.314f, 105.2687f), Vector3(0, 0, 225)), owning_building_guid = 44)
|
||||
LocalObject(765, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5510.704f, 4134.677f, 105.2687f), Vector3(0, 0, 45)), owning_building_guid = 44)
|
||||
LocalObject(766, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5512.086f, 4126.571f, 105.2687f), Vector3(0, 0, 225)), owning_building_guid = 44)
|
||||
LocalObject(767, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5515.448f, 4129.933f, 105.2687f), Vector3(0, 0, 45)), owning_building_guid = 44)
|
||||
}
|
||||
|
||||
Building49()
|
||||
|
||||
def Building49(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 45, MapID: 49
|
||||
def Building49() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 45, MapID: 49
|
||||
LocalBuilding(45, 49, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5494f, 4394f, 103.232f))))
|
||||
LocalObject(270, Door.Constructor(Vector3(5487.266f, 4335.582f, 105.308f)), owning_building_guid = 45)
|
||||
LocalObject(271, Door.Constructor(Vector3(5487.281f, 4342.085f, 105.308f)), owning_building_guid = 45)
|
||||
|
|
@ -939,17 +938,17 @@ object Map13 {
|
|||
LocalObject(895, Terminal.Constructor(order_terminal), owning_building_guid = 45)
|
||||
LocalObject(896, Terminal.Constructor(order_terminal), owning_building_guid = 45)
|
||||
LocalObject(897, Terminal.Constructor(order_terminal), owning_building_guid = 45)
|
||||
LocalObject(756, SpawnTube.Constructor(Vector3(5487.272f, 4336.455f, 105.264f), Vector3(0, 0, 180)), owning_building_guid = 45)
|
||||
LocalObject(757, SpawnTube.Constructor(Vector3(5487.272f, 4341.209f, 105.264f), Vector3(0, 0, 0)), owning_building_guid = 45)
|
||||
LocalObject(758, SpawnTube.Constructor(Vector3(5493.98f, 4341.21f, 105.264f), Vector3(0, 0, 0)), owning_building_guid = 45)
|
||||
LocalObject(759, SpawnTube.Constructor(Vector3(5493.981f, 4336.455f, 105.264f), Vector3(0, 0, 180)), owning_building_guid = 45)
|
||||
LocalObject(760, SpawnTube.Constructor(Vector3(5500.688f, 4336.455f, 105.264f), Vector3(0, 0, 180)), owning_building_guid = 45)
|
||||
LocalObject(761, SpawnTube.Constructor(Vector3(5500.688f, 4341.209f, 105.264f), Vector3(0, 0, 0)), owning_building_guid = 45)
|
||||
LocalObject(756, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5487.272f, 4336.455f, 105.264f), Vector3(0, 0, 180)), owning_building_guid = 45)
|
||||
LocalObject(757, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5487.272f, 4341.209f, 105.264f), Vector3(0, 0, 0)), owning_building_guid = 45)
|
||||
LocalObject(758, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5493.98f, 4341.21f, 105.264f), Vector3(0, 0, 0)), owning_building_guid = 45)
|
||||
LocalObject(759, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5493.981f, 4336.455f, 105.264f), Vector3(0, 0, 180)), owning_building_guid = 45)
|
||||
LocalObject(760, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5500.688f, 4336.455f, 105.264f), Vector3(0, 0, 180)), owning_building_guid = 45)
|
||||
LocalObject(761, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5500.688f, 4341.209f, 105.264f), Vector3(0, 0, 0)), owning_building_guid = 45)
|
||||
}
|
||||
|
||||
Building48()
|
||||
|
||||
def Building48(): Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 46, MapID: 48
|
||||
def Building48() : Unit = { // Name: VT_building_vs Type: VT_building_vs GUID: 46, MapID: 48
|
||||
LocalBuilding(46, 48, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5796f, 4330f, 103.2358f))))
|
||||
LocalObject(282, Door.Constructor(Vector3(5749.93f, 4293.454f, 105.3118f)), owning_building_guid = 46)
|
||||
LocalObject(283, Door.Constructor(Vector3(5754.54f, 4298.042f, 105.3118f)), owning_building_guid = 46)
|
||||
|
|
@ -971,17 +970,17 @@ object Map13 {
|
|||
LocalObject(927, Terminal.Constructor(order_terminal), owning_building_guid = 46)
|
||||
LocalObject(928, Terminal.Constructor(order_terminal), owning_building_guid = 46)
|
||||
LocalObject(929, Terminal.Constructor(order_terminal), owning_building_guid = 46)
|
||||
LocalObject(768, SpawnTube.Constructor(Vector3(5750.552f, 4294.067f, 105.2678f), Vector3(0, 0, 225)), owning_building_guid = 46)
|
||||
LocalObject(769, SpawnTube.Constructor(Vector3(5753.914f, 4297.429f, 105.2678f), Vector3(0, 0, 45)), owning_building_guid = 46)
|
||||
LocalObject(770, SpawnTube.Constructor(Vector3(5755.296f, 4289.323f, 105.2678f), Vector3(0, 0, 225)), owning_building_guid = 46)
|
||||
LocalObject(771, SpawnTube.Constructor(Vector3(5758.658f, 4292.686f, 105.2678f), Vector3(0, 0, 45)), owning_building_guid = 46)
|
||||
LocalObject(772, SpawnTube.Constructor(Vector3(5760.039f, 4284.58f, 105.2678f), Vector3(0, 0, 225)), owning_building_guid = 46)
|
||||
LocalObject(773, SpawnTube.Constructor(Vector3(5763.401f, 4287.942f, 105.2678f), Vector3(0, 0, 45)), owning_building_guid = 46)
|
||||
LocalObject(768, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5750.552f, 4294.067f, 105.2678f), Vector3(0, 0, 225)), owning_building_guid = 46)
|
||||
LocalObject(769, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5753.914f, 4297.429f, 105.2678f), Vector3(0, 0, 45)), owning_building_guid = 46)
|
||||
LocalObject(770, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5755.296f, 4289.323f, 105.2678f), Vector3(0, 0, 225)), owning_building_guid = 46)
|
||||
LocalObject(771, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5758.658f, 4292.686f, 105.2678f), Vector3(0, 0, 45)), owning_building_guid = 46)
|
||||
LocalObject(772, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5760.039f, 4284.58f, 105.2678f), Vector3(0, 0, 225)), owning_building_guid = 46)
|
||||
LocalObject(773, SpawnTube.Constructor(respawn_tube_sanctuary, Vector3(5763.401f, 4287.942f, 105.2678f), Vector3(0, 0, 45)), owning_building_guid = 46)
|
||||
}
|
||||
|
||||
Building37()
|
||||
|
||||
def Building37(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 47, MapID: 37
|
||||
def Building37() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 47, MapID: 37
|
||||
LocalBuilding(47, 37, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2764f, 4842f, 56.08539f))))
|
||||
LocalObject(300, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 47)
|
||||
LocalObject(288, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(2767.589f, 4841.958f, 52.10039f), Vector3(0, 0, 181)), owning_building_guid = 47, terminal_guid = 300)
|
||||
|
|
@ -989,7 +988,7 @@ object Map13 {
|
|||
|
||||
Building24()
|
||||
|
||||
def Building24(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 48, MapID: 24
|
||||
def Building24() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 48, MapID: 24
|
||||
LocalBuilding(48, 24, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2928f, 5050f, 56.08539f))))
|
||||
LocalObject(301, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 48)
|
||||
LocalObject(289, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(2927.957f, 5046.411f, 52.10039f), Vector3(0, 0, -89)), owning_building_guid = 48, terminal_guid = 301)
|
||||
|
|
@ -997,7 +996,7 @@ object Map13 {
|
|||
|
||||
Building36()
|
||||
|
||||
def Building36(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 49, MapID: 36
|
||||
def Building36() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 49, MapID: 36
|
||||
LocalBuilding(49, 36, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3018f, 4618f, 56.08539f))))
|
||||
LocalObject(302, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 49)
|
||||
LocalObject(290, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(3018.043f, 4621.589f, 52.10039f), Vector3(0, 0, 91)), owning_building_guid = 49, terminal_guid = 302)
|
||||
|
|
@ -1005,7 +1004,7 @@ object Map13 {
|
|||
|
||||
Building23()
|
||||
|
||||
def Building23(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 50, MapID: 23
|
||||
def Building23() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 50, MapID: 23
|
||||
LocalBuilding(50, 23, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3212f, 4768f, 56.08539f))))
|
||||
LocalObject(303, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 50)
|
||||
LocalObject(291, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(3208.411f, 4768.042f, 52.10039f), Vector3(0, 0, 1)), owning_building_guid = 50, terminal_guid = 303)
|
||||
|
|
@ -1013,7 +1012,7 @@ object Map13 {
|
|||
|
||||
Building6()
|
||||
|
||||
def Building6(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 51, MapID: 6
|
||||
def Building6() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 51, MapID: 6
|
||||
LocalBuilding(51, 6, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3506f, 2896f, 90.85538f))))
|
||||
LocalObject(304, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 51)
|
||||
LocalObject(292, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(3509.589f, 2895.957f, 86.87038f), Vector3(0, 0, 181)), owning_building_guid = 51, terminal_guid = 304)
|
||||
|
|
@ -1021,7 +1020,7 @@ object Map13 {
|
|||
|
||||
Building15()
|
||||
|
||||
def Building15(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 52, MapID: 15
|
||||
def Building15() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 52, MapID: 15
|
||||
LocalBuilding(52, 15, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3572f, 2652f, 90.85646f))))
|
||||
LocalObject(305, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 52)
|
||||
LocalObject(293, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(3574.568f, 2654.508f, 86.87146f), Vector3(0, 0, 136)), owning_building_guid = 52, terminal_guid = 305)
|
||||
|
|
@ -1029,7 +1028,7 @@ object Map13 {
|
|||
|
||||
Building14()
|
||||
|
||||
def Building14(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 53, MapID: 14
|
||||
def Building14() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 53, MapID: 14
|
||||
LocalBuilding(53, 14, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3808f, 2654f, 90.85372f))))
|
||||
LocalObject(306, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 53)
|
||||
LocalObject(294, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(3805.492f, 2656.568f, 86.86872f), Vector3(0, 0, 46)), owning_building_guid = 53, terminal_guid = 306)
|
||||
|
|
@ -1037,7 +1036,7 @@ object Map13 {
|
|||
|
||||
Building5()
|
||||
|
||||
def Building5(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 54, MapID: 5
|
||||
def Building5() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 54, MapID: 5
|
||||
LocalBuilding(54, 5, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3876f, 2896f, 90.85098f))))
|
||||
LocalObject(307, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 54)
|
||||
LocalObject(295, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(3872.411f, 2896.043f, 86.86597f), Vector3(0, 0, 1)), owning_building_guid = 54, terminal_guid = 307)
|
||||
|
|
@ -1045,7 +1044,7 @@ object Map13 {
|
|||
|
||||
Building52()
|
||||
|
||||
def Building52(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 55, MapID: 52
|
||||
def Building52() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 55, MapID: 52
|
||||
LocalBuilding(55, 52, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5394f, 4238f, 103.2297f))))
|
||||
LocalObject(308, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 55)
|
||||
LocalObject(296, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(5397.589f, 4237.958f, 99.24469f), Vector3(0, 0, 181)), owning_building_guid = 55, terminal_guid = 308)
|
||||
|
|
@ -1053,7 +1052,7 @@ object Map13 {
|
|||
|
||||
Building51()
|
||||
|
||||
def Building51(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 56, MapID: 51
|
||||
def Building51() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 56, MapID: 51
|
||||
LocalBuilding(56, 51, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5600f, 4034f, 103.2345f))))
|
||||
LocalObject(309, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 56)
|
||||
LocalObject(297, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(5600.042f, 4037.589f, 99.24946f), Vector3(0, 0, 91)), owning_building_guid = 56, terminal_guid = 309)
|
||||
|
|
@ -1061,7 +1060,7 @@ object Map13 {
|
|||
|
||||
Building42()
|
||||
|
||||
def Building42(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 57, MapID: 42
|
||||
def Building42() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 57, MapID: 42
|
||||
LocalBuilding(57, 42, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5622f, 4456f, 103.2351f))))
|
||||
LocalObject(310, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 57)
|
||||
LocalObject(298, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(5621.958f, 4452.411f, 99.25006f), Vector3(0, 0, -89)), owning_building_guid = 57, terminal_guid = 310)
|
||||
|
|
@ -1069,7 +1068,7 @@ object Map13 {
|
|||
|
||||
Building41()
|
||||
|
||||
def Building41(): Unit = { // Name: vt_dropship Type: vt_dropship GUID: 58, MapID: 41
|
||||
def Building41() : Unit = { // Name: vt_dropship Type: vt_dropship GUID: 58, MapID: 41
|
||||
LocalBuilding(58, 41, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5834f, 4218f, 103.2365f))))
|
||||
LocalObject(311, Terminal.Constructor(dropship_vehicle_terminal), owning_building_guid = 58)
|
||||
LocalObject(299, VehicleSpawnPad.Constructor(dropship_pad_doors, Vector3(5830.411f, 4218.042f, 99.25149f), Vector3(0, 0, 1)), owning_building_guid = 58, terminal_guid = 311)
|
||||
|
|
@ -1077,79 +1076,79 @@ object Map13 {
|
|||
|
||||
Building30()
|
||||
|
||||
def Building30(): Unit = { // Name: VS_NW_Tport_01 Type: vt_spawn GUID: 59, MapID: 30
|
||||
def Building30() : Unit = { // Name: VS_NW_Tport_01 Type: vt_spawn GUID: 59, MapID: 30
|
||||
LocalBuilding(59, 30, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2900f, 4758f, 56.08539f))))
|
||||
}
|
||||
|
||||
Building29()
|
||||
|
||||
def Building29(): Unit = { // Name: VS_NW_Tport_02 Type: vt_spawn GUID: 60, MapID: 29
|
||||
def Building29() : Unit = { // Name: VS_NW_Tport_02 Type: vt_spawn GUID: 60, MapID: 29
|
||||
LocalBuilding(60, 29, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2940f, 4932f, 56.08539f))))
|
||||
}
|
||||
|
||||
Building32()
|
||||
|
||||
def Building32(): Unit = { // Name: VS_NW_Tport_03 Type: vt_spawn GUID: 61, MapID: 32
|
||||
def Building32() : Unit = { // Name: VS_NW_Tport_03 Type: vt_spawn GUID: 61, MapID: 32
|
||||
LocalBuilding(61, 32, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3060f, 4908f, 56.08539f))))
|
||||
}
|
||||
|
||||
Building31()
|
||||
|
||||
def Building31(): Unit = { // Name: VS_NW_Tport_04 Type: vt_spawn GUID: 62, MapID: 31
|
||||
def Building31() : Unit = { // Name: VS_NW_Tport_04 Type: vt_spawn GUID: 62, MapID: 31
|
||||
LocalBuilding(62, 31, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3124f, 4776f, 56.08539f))))
|
||||
}
|
||||
|
||||
Building19()
|
||||
|
||||
def Building19(): Unit = { // Name: VS_S_Tport_03 Type: vt_spawn GUID: 63, MapID: 19
|
||||
def Building19() : Unit = { // Name: VS_S_Tport_03 Type: vt_spawn GUID: 63, MapID: 19
|
||||
LocalBuilding(63, 19, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3610f, 2732f, 90.85205f))))
|
||||
}
|
||||
|
||||
Building18()
|
||||
|
||||
def Building18(): Unit = { // Name: VS_S_Tport_01 Type: vt_spawn GUID: 64, MapID: 18
|
||||
def Building18() : Unit = { // Name: VS_S_Tport_01 Type: vt_spawn GUID: 64, MapID: 18
|
||||
LocalBuilding(64, 18, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3652f, 2908f, 90.8536f))))
|
||||
}
|
||||
|
||||
Building21()
|
||||
|
||||
def Building21(): Unit = { // Name: VS_S_Tport_02 Type: vt_spawn GUID: 65, MapID: 21
|
||||
def Building21() : Unit = { // Name: VS_S_Tport_02 Type: vt_spawn GUID: 65, MapID: 21
|
||||
LocalBuilding(65, 21, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3730f, 2908f, 90.8536f))))
|
||||
}
|
||||
|
||||
Building20()
|
||||
|
||||
def Building20(): Unit = { // Name: VS_S_Tport_04 Type: vt_spawn GUID: 66, MapID: 20
|
||||
def Building20() : Unit = { // Name: VS_S_Tport_04 Type: vt_spawn GUID: 66, MapID: 20
|
||||
LocalBuilding(66, 20, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3766f, 2732f, 90.84919f))))
|
||||
}
|
||||
|
||||
Building45()
|
||||
|
||||
def Building45(): Unit = { // Name: VS_NE_Tport_04 Type: vt_spawn GUID: 67, MapID: 45
|
||||
def Building45() : Unit = { // Name: VS_NE_Tport_04 Type: vt_spawn GUID: 67, MapID: 45
|
||||
LocalBuilding(67, 45, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5484f, 4208f, 103.2298f))))
|
||||
}
|
||||
|
||||
Building44()
|
||||
|
||||
def Building44(): Unit = { // Name: VS_NE_Tport_01 Type: vt_spawn GUID: 68, MapID: 44
|
||||
def Building44() : Unit = { // Name: VS_NE_Tport_01 Type: vt_spawn GUID: 68, MapID: 44
|
||||
LocalBuilding(68, 44, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5552f, 4344f, 103.2289f))))
|
||||
}
|
||||
|
||||
Building46()
|
||||
|
||||
def Building46(): Unit = { // Name: VS_NE_Tport_03 Type: vt_spawn GUID: 69, MapID: 46
|
||||
def Building46() : Unit = { // Name: VS_NE_Tport_03 Type: vt_spawn GUID: 69, MapID: 46
|
||||
LocalBuilding(69, 46, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5690f, 4164f, 103.2289f))))
|
||||
}
|
||||
|
||||
Building47()
|
||||
|
||||
def Building47(): Unit = { // Name: VS_NE_Tport_02 Type: vt_spawn GUID: 70, MapID: 47
|
||||
def Building47() : Unit = { // Name: VS_NE_Tport_02 Type: vt_spawn GUID: 70, MapID: 47
|
||||
LocalBuilding(70, 47, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5692f, 4312f, 103.2289f))))
|
||||
}
|
||||
|
||||
Building26()
|
||||
|
||||
def Building26(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 71, MapID: 26
|
||||
def Building26() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 71, MapID: 26
|
||||
LocalBuilding(71, 26, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2768f, 4768f, 56.08539f))))
|
||||
LocalObject(1057, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 71)
|
||||
LocalObject(702, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(2767.853f, 4767.976f, 54.61439f), Vector3(0, 0, -89)), owning_building_guid = 71, terminal_guid = 1057)
|
||||
|
|
@ -1157,7 +1156,7 @@ object Map13 {
|
|||
|
||||
Building38()
|
||||
|
||||
def Building38(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 72, MapID: 38
|
||||
def Building38() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 72, MapID: 38
|
||||
LocalBuilding(72, 38, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2816f, 4700f, 56.08539f))))
|
||||
LocalObject(1058, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 72)
|
||||
LocalObject(703, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(2815.915f, 4699.877f, 54.61439f), Vector3(0, 0, 225)), owning_building_guid = 72, terminal_guid = 1058)
|
||||
|
|
@ -1165,7 +1164,7 @@ object Map13 {
|
|||
|
||||
Building28()
|
||||
|
||||
def Building28(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 73, MapID: 28
|
||||
def Building28() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 73, MapID: 28
|
||||
LocalBuilding(73, 28, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(2946f, 4622f, 56.08539f))))
|
||||
LocalObject(1059, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 73)
|
||||
LocalObject(704, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(2946.024f, 4621.853f, 54.61439f), Vector3(0, 0, 181)), owning_building_guid = 73, terminal_guid = 1059)
|
||||
|
|
@ -1173,7 +1172,7 @@ object Map13 {
|
|||
|
||||
Building25()
|
||||
|
||||
def Building25(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 74, MapID: 25
|
||||
def Building25() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 74, MapID: 25
|
||||
LocalBuilding(74, 25, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3000f, 5048f, 56.08539f))))
|
||||
LocalObject(1060, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 74)
|
||||
LocalObject(705, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(2999.976f, 5048.147f, 54.61439f), Vector3(0, 0, 1)), owning_building_guid = 74, terminal_guid = 1060)
|
||||
|
|
@ -1181,7 +1180,7 @@ object Map13 {
|
|||
|
||||
Building39()
|
||||
|
||||
def Building39(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 75, MapID: 39
|
||||
def Building39() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 75, MapID: 39
|
||||
LocalBuilding(75, 39, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3094f, 5010f, 56.08539f))))
|
||||
LocalObject(1061, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 75)
|
||||
LocalObject(706, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(3094.085f, 5010.123f, 54.61439f), Vector3(0, 0, 45)), owning_building_guid = 75, terminal_guid = 1061)
|
||||
|
|
@ -1189,7 +1188,7 @@ object Map13 {
|
|||
|
||||
Building27()
|
||||
|
||||
def Building27(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 76, MapID: 27
|
||||
def Building27() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 76, MapID: 27
|
||||
LocalBuilding(76, 27, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3212f, 4842f, 56.08539f))))
|
||||
LocalObject(1062, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 76)
|
||||
LocalObject(707, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(3212.147f, 4842.024f, 54.61439f), Vector3(0, 0, 91)), owning_building_guid = 76, terminal_guid = 1062)
|
||||
|
|
@ -1197,7 +1196,7 @@ object Map13 {
|
|||
|
||||
Building17()
|
||||
|
||||
def Building17(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 77, MapID: 17
|
||||
def Building17() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 77, MapID: 17
|
||||
LocalBuilding(77, 17, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3506f, 2820f, 90.8536f))))
|
||||
LocalObject(1063, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 77)
|
||||
LocalObject(708, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(3505.853f, 2819.976f, 89.3826f), Vector3(0, 0, -89)), owning_building_guid = 77, terminal_guid = 1063)
|
||||
|
|
@ -1205,7 +1204,7 @@ object Map13 {
|
|||
|
||||
Building8()
|
||||
|
||||
def Building8(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 78, MapID: 8
|
||||
def Building8() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 78, MapID: 8
|
||||
LocalBuilding(78, 8, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3658f, 3020f, 90.8536f))))
|
||||
LocalObject(1064, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 78)
|
||||
LocalObject(709, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(3657.976f, 3020.147f, 89.3826f), Vector3(0, 0, 1)), owning_building_guid = 78, terminal_guid = 1064)
|
||||
|
|
@ -1213,7 +1212,7 @@ object Map13 {
|
|||
|
||||
Building11()
|
||||
|
||||
def Building11(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 79, MapID: 11
|
||||
def Building11() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 79, MapID: 11
|
||||
LocalBuilding(79, 11, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3660f, 2590f, 90.8536f))))
|
||||
LocalObject(1065, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 79)
|
||||
LocalObject(710, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(3660.024f, 2589.853f, 89.3826f), Vector3(0, 0, 181)), owning_building_guid = 79, terminal_guid = 1065)
|
||||
|
|
@ -1221,7 +1220,7 @@ object Map13 {
|
|||
|
||||
Building9()
|
||||
|
||||
def Building9(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 80, MapID: 9
|
||||
def Building9() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 80, MapID: 9
|
||||
LocalBuilding(80, 9, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3722f, 3020f, 90.8536f))))
|
||||
LocalObject(1066, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 80)
|
||||
LocalObject(711, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(3721.976f, 3020.147f, 89.3826f), Vector3(0, 0, 1)), owning_building_guid = 80, terminal_guid = 1066)
|
||||
|
|
@ -1229,7 +1228,7 @@ object Map13 {
|
|||
|
||||
Building10()
|
||||
|
||||
def Building10(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 81, MapID: 10
|
||||
def Building10() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 81, MapID: 10
|
||||
LocalBuilding(81, 10, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3724f, 2588f, 90.85265f))))
|
||||
LocalObject(1067, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 81)
|
||||
LocalObject(712, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(3724.024f, 2587.853f, 89.38165f), Vector3(0, 0, 181)), owning_building_guid = 81, terminal_guid = 1067)
|
||||
|
|
@ -1237,7 +1236,7 @@ object Map13 {
|
|||
|
||||
Building16()
|
||||
|
||||
def Building16(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 82, MapID: 16
|
||||
def Building16() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 82, MapID: 16
|
||||
LocalBuilding(82, 16, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(3878f, 2824f, 90.8536f))))
|
||||
LocalObject(1068, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 82)
|
||||
LocalObject(713, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(3878.147f, 2824.024f, 89.3826f), Vector3(0, 0, 91)), owning_building_guid = 82, terminal_guid = 1068)
|
||||
|
|
@ -1245,7 +1244,7 @@ object Map13 {
|
|||
|
||||
Building55()
|
||||
|
||||
def Building55(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 83, MapID: 55
|
||||
def Building55() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 83, MapID: 55
|
||||
LocalBuilding(83, 55, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5420f, 4174f, 103.2318f))))
|
||||
LocalObject(1069, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 83)
|
||||
LocalObject(714, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(5419.853f, 4173.976f, 101.7608f), Vector3(0, 0, -89)), owning_building_guid = 83, terminal_guid = 1069)
|
||||
|
|
@ -1253,7 +1252,7 @@ object Map13 {
|
|||
|
||||
Building43()
|
||||
|
||||
def Building43(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 84, MapID: 43
|
||||
def Building43() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 84, MapID: 43
|
||||
LocalBuilding(84, 43, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5420f, 4298f, 103.2333f))))
|
||||
LocalObject(1070, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 84)
|
||||
LocalObject(715, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(5419.853f, 4297.976f, 101.7623f), Vector3(0, 0, -89)), owning_building_guid = 84, terminal_guid = 1070)
|
||||
|
|
@ -1261,7 +1260,7 @@ object Map13 {
|
|||
|
||||
Building54()
|
||||
|
||||
def Building54(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 85, MapID: 54
|
||||
def Building54() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 85, MapID: 54
|
||||
LocalBuilding(85, 54, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5686f, 4420f, 103.2329f))))
|
||||
LocalObject(1071, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 85)
|
||||
LocalObject(716, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(5686.085f, 4420.123f, 101.7619f), Vector3(0, 0, 45)), owning_building_guid = 85, terminal_guid = 1071)
|
||||
|
|
@ -1269,7 +1268,7 @@ object Map13 {
|
|||
|
||||
Building57()
|
||||
|
||||
def Building57(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 86, MapID: 57
|
||||
def Building57() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 86, MapID: 57
|
||||
LocalBuilding(86, 57, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5710f, 4046f, 103.2289f))))
|
||||
LocalObject(1072, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 86)
|
||||
LocalObject(717, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(5710.123f, 4045.915f, 101.7579f), Vector3(0, 0, 135)), owning_building_guid = 86, terminal_guid = 1072)
|
||||
|
|
@ -1277,7 +1276,7 @@ object Map13 {
|
|||
|
||||
Building53()
|
||||
|
||||
def Building53(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 87, MapID: 53
|
||||
def Building53() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 87, MapID: 53
|
||||
LocalBuilding(87, 53, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5752f, 4088f, 103.2289f))))
|
||||
LocalObject(1073, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 87)
|
||||
LocalObject(718, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(5752.123f, 4087.915f, 101.7579f), Vector3(0, 0, 135)), owning_building_guid = 87, terminal_guid = 1073)
|
||||
|
|
@ -1285,10 +1284,22 @@ object Map13 {
|
|||
|
||||
Building56()
|
||||
|
||||
def Building56(): Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 88, MapID: 56
|
||||
def Building56() : Unit = { // Name: vt_vehicle Type: vt_vehicle GUID: 88, MapID: 56
|
||||
LocalBuilding(88, 56, FoundationBuilder(Building.Structure(StructureType.Building, Vector3(5794f, 4132f, 103.2289f))))
|
||||
LocalObject(1074, Terminal.Constructor(ground_vehicle_terminal), owning_building_guid = 88)
|
||||
LocalObject(719, VehicleSpawnPad.Constructor(mb_pad_creation, Vector3(5794.123f, 4131.915f, 101.7579f), Vector3(0, 0, 135)), owning_building_guid = 88, terminal_guid = 1074)
|
||||
}
|
||||
|
||||
Building1()
|
||||
|
||||
def Building1() : Unit = { // Name: ??? Type: ??? GUID: 90, MapID: 1
|
||||
LocalBuilding(90, 1, FoundationBuilder(WarpGate.Structure(Vector3(2514.6094f, 5311.7656f, 65.984375f))))
|
||||
}
|
||||
|
||||
Building3()
|
||||
|
||||
def Building3() : Unit = { // Name: ??? Type: ??? GUID: 89, MapID: 3
|
||||
LocalBuilding(89, 3, FoundationBuilder(WarpGate.Structure(Vector3(4175.6484f, 2402.8125f, 163.9375f))))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue