Zum Inhalt

headquarter_util_serialized

Quelle: base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl

Hinweise

Typen der Konstruktion des Unternehmens-Hauptquartiers (/landmarks/hq/hq/headquarter.script.tl): eine modulare Konstruktion auf einem 8-m-Raster, deren Module weitere Slots um sich herum anlegen.

HeadquarterUtilSerialized

record global base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:3

global record HeadquarterUtilSerialized

Hinweise

Typen der Konstruktion des Unternehmens-Hauptquartiers.

HeadquarterUtilSerialized.SlotData

record base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:4

record SlotData

Hinweise

Größe und Id eines Slot-Typs des Hauptquartiers.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/landmarks/hq/hq/headquarter.script.tl:61

local SlotType2Id : {string : HeadquarterUtilSerialized.SlotData} = {

Felder

Name Typ Beschreibung
id integer Nummer des Slot-Typs, wird in die Slot-Ids codiert.
height number Höhe des Slots für die Kollision.
size Vec2Serialized.Vec2 Größe des Slots in Metern.

HeadquarterUtilSerialized.SlotSetup

record base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:10

record SlotSetup

Hinweise

Ein Slot, den ein platziertes Modul hinzufügt (Eintrag in metadata.slots des Moduls).

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/landmarks/hq/hq/headquarter.script.tl:226

result.makeSlots = function(slots : {HeadquarterUtilSerialized.SlotSetup}, cellSize : {Vec2Serialized.Vec2}, coord : Vec2Serialized.Vec2, orientation : integer)

Felder

Name Typ Beschreibung
slotType string Typ des hinzugefügten Slots, z. B. "hq_medium_building".
offset Vec2Serialized.Vec2 Position in Rasterzellen relativ zum Modul, dreht sich mit dem Modul.
orientation integer Drehung in Vierteldrehungen, wird zur Ausrichtung des Moduls addiert.
skipOrientation boolean
heightOffset number Höhe des Slots über dem Modul in Metern (Dachflaggen nutzen 15).
perimeter boolean Legt eine Reihe Slots rund um die Zellfläche des Moduls an statt eines Slots bei offset.
cellSize {Vec2Serialized.Vec2} Zellfläche des Slot-Typs für perimeter-Slots, {xRange, yRange}.
shift Vec2Serialized.Vec2 Versatz in Metern innerhalb der Zelle.
variant integer Variante, die in die Slot-Id codiert wird.

HeadquarterUtilSerialized.HeadquarterConnector

record base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:22

record HeadquarterConnector

Hinweise

Zusätzliche Modelle, die ein Modul hinzufügt, wenn eine Nachbarzelle einen passenden Slot-Typ hat.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/landmarks/hq/hq/headquarter_addon.script.tl:66

local addConnector = function(connectorGroup : {HeadquarterUtilSerialized.HeadquarterConnector})

Felder

Name Typ Beschreibung
slotTypes {string} Slot-Typen des Nachbarn, die den Connector auslösen. "*any" passt auf jede belegte Zelle, "*empty" auf eine leere. Innerhalb einer Gruppe gewinnt der erste passende Connector.
group string Name der Gruppe in den generierten Daten, die hinzugefügt wird.
offset Vec2iSerialized.Vec2i Nachbarzelle relativ zum Modul, dreht sich mit dem Modul.

HeadquarterUtilSerialized.HeadquarterModuleMetadata

record base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:28

record HeadquarterModuleMetadata

Hinweise

Metadaten eines Hauptquartier-Moduls.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/landmarks/hq/hq/headquarter_addon.script.tl:12

local metadata = params.modules[slotId].metadata as HeadquarterUtilSerialized.HeadquarterModuleMetadata

Felder

Name Typ Beschreibung
cellSize {Vec2Serialized.Vec2} Zellen, die das Modul belegt, als {{x = minX, y = maxX}, {x = minY, y = maxY}} relativ zur eigenen Zelle.
fenceCellSize {Vec2Serialized.Vec2} Zellen innerhalb des Zauns um das Modul, in derselben Form. Standard ist cellSize, um eine Zelle vergrößert.
fenceEntrance boolean Lässt die Vorderseite des Zauns offen.
slots {SlotSetup} Slots, die das Modul um sich herum anlegt.
size Vec2iSerialized.Vec2i Größe des eigenen Slots des Moduls in Metern.
connectors {string : {HeadquarterConnector}} Connector-Gruppen (z. B. left, right, top, bottom). Jede Gruppe fügt höchstens einen Connector hinzu.
canRotate boolean Dreht die Modelle des Moduls um seine Variante in Vierteldrehungen.

HeadquarterUtilSerialized.HeadquarterConstructionResult

record base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:38

record HeadquarterConstructionResult is ConstructionUtilSerialized.IConstructionResult

Hinweise

Konstruktionsergebnis des Hauptquartiers mit den Raster-Helfern, die seine Modulskripte aufrufen.

Im Basisspiel verwendet: 3-mal in 3 Dateien

base/content/landmarks/hq/hq/headquarter.script.tl:135

local result : HeadquarterUtilSerialized.HeadquarterConstructionResult = {}
base/content/landmarks/hq/hq/headquarter_addon.script.tl:7
function data.updateFn(captureParams : table, result : HeadquarterUtilSerialized.HeadquarterConstructionResult, _transform : Mat4Serialized.Mat4, tag : string, 
base/content/stations/air/air/heliport/modules.script.tl:7
function data.updateFn(captureParams : table, result : HeadquarterUtilSerialized.HeadquarterConstructionResult, transform : Mat4Serialized.Mat4, tag : string, s

Felder

Name Typ Beschreibung
slotIds {integer : integer} Index in slots nach Slot-Id.
cells {number : {number : integer}} Belegte Rasterzellen, cells[x][y] = Slot-Id, oder -1 bei Zaunzellen.
runLaterFns {function()} Funktionen, die mit runLater registriert wurden.

Funktionen

encodeSlotId(coord : Vec2Serialized.Vec2, slotType : string, orientation : integer) : integer base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:43

Hinweise

Packt Rasterkoordinate, Slot-Typ, Ausrichtung und Variante in eine Slot-Id.

Rückgabe integer

decodeSlotId(slotId : integer) : Vec2Serialized.Vec2, string, integer, integer base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:44

Hinweise

Entpackt eine Slot-Id.

Rückgabe Vec2Serialized.Vec2, string, integer, integer: Rasterkoordinate, Slot-Typ, Ausrichtung (0–3) und Variante.

isOccupied(coord : Vec2Serialized.Vec2) : integer base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:45

Hinweise

Slot-Id, die die Rasterzelle belegt, -1 bei Zaunzellen oder nil, wenn die Zelle frei ist.

Rückgabe integer

markOccupied(coord : Vec2Serialized.Vec2, slotId : integer) base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:46

Hinweise

Markiert eine Rasterzelle als von der Slot-Id belegt.

addSlot(coord : Vec2Serialized.Vec2, type : string, sizex : integer, sizey : integer, slotHeight : number, orientation : integer, heightOffset? : Vec3Serialized.Vec3, variant? : integer) base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:47

Hinweise

Fügt einen Slot in einer Rasterzelle hinzu (8-m-Raster), außer es gibt schon einen Slot mit derselben Id oder die Zelle liegt mehr als 20 Zellen vom Ursprung entfernt.

occupySlot(cellSize : {Vec2Serialized.Vec2}, fenceCellSize : {Vec2Serialized.Vec2}, coord : Vec2Serialized.Vec2, orientation : integer, slotId : integer) base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:49

Hinweise

Markiert die Zellen eines Moduls und seines Zauns als belegt.

makeSlots(cellSize : {SlotSetup}, cellSize : {Vec2Serialized.Vec2}, coord : Vec2Serialized.Vec2, orientation : integer, variant? : integer) base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:50

Hinweise

Legt die Slots aus metadata.slots eines Moduls um das Modul herum an.

addAlignmentColliderAndGroundTexture(cellSize : {Vec2Serialized.Vec2}, fenceCellSize : {Vec2Serialized.Vec2}, transf2 : Mat4Serialized.Mat4) base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:52

Hinweise

Fügt über der Zaunfläche des Moduls eine flache Geländeangleichung und einen Quader-Collider (30 m hoch) hinzu.

addFence(cellSize : {Vec2Serialized.Vec2}, fenceCellSize : {Vec2Serialized.Vec2}, coord : Vec2Serialized.Vec2, tag : string, transf2 : Mat4Serialized.Mat4, orientation : integer, skipFront : boolean) base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:53

Hinweise

Fügt rund um die Zaunfläche des Moduls Modelle für Zaun und Zaunpfosten hinzu.

rotate(coord : Vec2Serialized.Vec2, orientation : integer) : Vec2Serialized.Vec2 base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:55

Hinweise

Dreht einen Rasterversatz um orientation Vierteldrehungen gegen den Uhrzeigersinn.

Rückgabe Vec2Serialized.Vec2

runLater(function()) base/tealdef/landmarks/hq/headquarter_util_serialized.d.tl:57

Hinweise

Registriert eine Funktion, die nach allen Modulskripten läuft, wenn das Konstruktionsskript terminateConstructionHook aufruft.

Details

Modulskripte fügen damit Modelle erst hinzu, wenn jedes Modul seine Slots angelegt und seine Zellen belegt hat.