Zum Inhalt

construction_util_serialized

Quelle: base/tealdef/scripts/construction/construction_util_serialized.d.tl

Plain lua table type definitions for construction resource scripts. These types describe the format of lua tables produced by construction scripts and read by C++ via converters. They must NOT reference C++ userdata types.

Beispiel

-- ein Update-Skript eines Moduls (base/content/landmarks/hq/hq/headquarter_addon.script.tl, gekürzt)
local constructionutil = ug_require "::/scripts/construction/constructionutil.lua" as ConstructionUtilSerialized

function data.updateFn(captureParams : table, result : HeadquarterUtilSerialized.HeadquarterConstructionResult, _transform : Mat4Serialized.Mat4,
        tag : string, slotId : integer, _addModelFnInvalid : function(), params : ConstructionUtilSerialized.ModuleUpdateFnParams)
    local transf2 = result.slots[result.slotIds[slotId]].transf
    local generatedData = captureParams.generatedData as ConstructionUtilSerialized.GeneratedData
    constructionutil.addModelsAndGroups(params, generatedData as ConstructionUtilSerialized.GeneratedDataGroup, result.subconstructions[1], tag, transf2)
end

ConstructionUtilSerialized

record global base/tealdef/scripts/construction/construction_util_serialized.d.tl:3

global record ConstructionUtilSerialized

Hinweise

Typen der einfachen Tabellen, die Konstruktionsskripte (updateFn, Modul-updateFn, getModelsFn, createTemplateFn) zurückgeben; die Engine wandelt diese Tabellen um. Der ältere Helfer /scripts/construction/constructionutil.lua wird mit diesem Typ geladen, damit addModelsAndGroups verfügbar ist.

Typen

Name Definition Beschreibung
GeneratedData {string : GeneratedDataGroup} Generierte Daten nach Gruppenname (z. B. "static", "base", "variant_0").
ConstructionTemplateResult {integer : string} Ergebnis einer createTemplateFn: Moduldatei pro Slot-ID, also die Module, mit denen eine neue Konstruktion startet. Das Hauptquartier verwendet { [rootSlotId] = "::/landmarks/hq/modules/hq_main.module" }.
ModelsFnData {TransformedModel} Rückgabewert der getModelsFn eines Moduls, die Modelle des Moduls mit ihren Transformationen.

Funktionen

addModelsAndGroups(params : any, group : GeneratedDataGroup, subconstruction : SubConstruction, tag? : string, transf2? : Mat4Serialized.Mat4) base/tealdef/scripts/construction/construction_util_serialized.d.tl:265

Hinweise

Fügt einer Unterkonstruktion alles hinzu, was eine Gruppe generierter Daten beschreibt: ihre Modelle, zufällige Modelle aus Asset-Gruppen, Bodenflächen, Geländeanpassung und Collider.

Parameter Typ Beschreibung
params any Die Konstruktionsparameter. params.seed ist Pflicht (er steuert die zufällige Auswahl aus den Gruppen).
group GeneratedDataGroup Die Gruppe generierter Daten.
subconstruction SubConstruction Hier werden Modelle, Bodenflächen, Anpassungslisten und Collider angehängt.
tag? string Optionales Tag für die hinzugefügten Modelle.
transf2? Mat4Serialized.Mat4 Optionale Transformation, die auf alles Hinzugefügte angewendet wird.

Details

Implementiert in /scripts/construction/constructionutil.lua. Lade diese Datei mit ug_require "::/scripts/construction/constructionutil.lua" as ConstructionUtilSerialized. Asset-Gruppen werden zuerst in params.state.groups gesucht, dann in AssetUtil.assets. Fehlt eine Gruppe, schreibt die Funktion eine Warnung ins Log und verwendet ein Platzhaltermodell.

Beispiel

-- aus base/content/landmarks/landmark_util_serialized.tl
if generatedData[dataLevel] ~= nil then
    constructionutil.addModelsAndGroups(params, generatedData[dataLevel], subconstruction, nil, transform)
end

ConstructionUtilSerialized.ScriptRef

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:8

record ScriptRef

Hinweise

Verweis auf eine Skriptfunktion als "file.script@function" und die Parameter, die sie bekommt.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/scripts/scripts/construction/construction.script.tl:16

constrScript : ConstructionUtilSerialized.ScriptRef

Felder

Name Typ Beschreibung
fileName string Verweis auf die Skriptfunktion, z. B. "small_stops.script@updateFn".
params table Tabelle, die die Funktion als erstes Argument bekommt (captureParams).

ConstructionUtilSerialized.TransportMode

enum base/tealdef/scripts/construction/construction_util_serialized.d.tl:13

enum TransportMode

Hinweise

Namen der Transportmodi in Spurlisten, Depots, Snap-Punkten und Terminals; dieselbe Menge wie api.type.TransportMode.

Wert Beschreibung
"PERSON" Fußgänger.
"CARGO" Güter, die sich auf den Fußwegen von Stationen und Industrien bewegen.
"CAR" Private Autos.
"BUS" Busse.
"TRUCK" Lkw.
"TRAM" Trams.
"ELECTRIC_TRAM" Elektrische Trams.
"TRAIN" Züge.
"ELECTRIC_TRAIN" Elektrische Züge.
"AIRCRAFT" Große Flugzeuge.
"SHIP" Große Schiffe.
"SMALL_AIRCRAFT" Kleine Flugzeuge.
"SMALL_SHIP" Kleine Schiffe.
"HELICOPTER" Hubschrauber.
"TRAM_TRACK" Tramgleis.
"ELECTRIC_TRAM_TRACK" Elektrifiziertes Tramgleis.

ConstructionUtilSerialized.BaseEdgeType

enum base/tealdef/scripts/construction/construction_util_serialized.d.tl:32

enum BaseEdgeType

Hinweise

Art der Kanten einer Kantenliste.

Wert Beschreibung
"NORMAL" Gewöhnliche Kante auf dem Boden.
"BRIDGE" Brücke; der Brückentyp kommt in edgeTypeName.
"TUNNEL" Tunnel; der Tunneltyp kommt in edgeTypeName.

ConstructionUtilSerialized.CatchmentArea

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:38

record CatchmentArea

Hinweise

Zylinder mit einem Radius um eine Position. Er ist das Einzugsgebiet einer Station, Haltestelle oder eines Depots.

Felder

Name Typ Beschreibung
position Vec3Serialized.Vec3 Mittelpunkt in lokalen Koordinaten der Konstruktion (das Basisspiel schreibt {0, 0, 0}).
radius number Radius in Metern.

ConstructionUtilSerialized.CargoTypeSet

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:43

record CargoTypeSet

Hinweise

Wählt Güterarten nach Klasse und Art aus, mit Listen zum Ein- und Ausschließen.

Felder

Name Typ Beschreibung
cargoClassesIncluded {string} Eingeschlossene Güterklassen, z. B. "PASSENGERS", "UNIVERSAL".
cargoClassesExcluded {string} Ausgeschlossene Güterklassen.
cargoTypesIncluded {string} Einzelne eingeschlossene Güterarten.
cargoTypesExcluded {string} Einzelne ausgeschlossene Güterarten.

ConstructionUtilSerialized.SlotConfig

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:50

record SlotConfig

Hinweise

Zusätzliche Einstellungen für alle Slots eines Slot-Typs (Schlüssel von slotConfig).

Felder

Name Typ Beschreibung
maxModules integer Höchstzahl der Module dieses Typs in der ganzen Konstruktion. -1 heißt unbegrenzt. Mit -2 ist der Modul-Button aktiv, solange message leer ist, und deaktiviert, sobald eine Nachricht gesetzt ist (so nutzt es airport.script.lua für Terminal B).
message string Meldung, wenn das Limit erreicht ist.
skipCollisionCheck boolean Slots dieses Typs kollidieren nicht mit anderen Objekten. Das gilt nur für den Slot selbst; die fertige Konstruktion muss die normalen Kollisionsprüfungen trotzdem bestehen.

ConstructionUtilSerialized.StreetTerminal

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:56

record StreetTerminal

Hinweise

Terminal einer Haltestelle am Straßenrand (ein Kantenobjekt wie die kleinen Bus- und Lkw-Haltestellen).

Felder

Name Typ Beschreibung
capacity integer Wie viele Passagiere oder Gütereinheiten warten können.
cargo boolean Ob die Haltestelle Güter abfertigt.
passengers boolean Ob die Haltestelle Passagiere abfertigt.
cargoLoad boolean Ob Güter geladen werden können.
passengersLoad boolean Ob Passagiere einsteigen können.
cargoUnload boolean Ob Güter entladen werden können.
passengersUnload boolean Ob Passagiere aussteigen können.
comfortFactor number Wie schnell die Zufriedenheit wartender Passagiere sinkt.
wantSymmetric boolean Bei Haltestellen auf beiden Straßenseiten true (die kleinen Haltestellen setzen es aus ihrem Parameter twoSided).
catchmentArea CatchmentArea Einzugsgebiet der Haltestelle.
cargoTransferSpeeds {TerminalDef.CargoTransferSpeed} Einstellungen der Ladegeschwindigkeit pro Gruppe von Güterarten.

ConstructionUtilSerialized.GeneratedDataGroup

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:70

record GeneratedDataGroup

Hinweise

Eine Gruppe von Daten, die der Model Editor exportiert (die Tabellen generatedData in Konstruktionsskripten): benannte Kurven und Modellplatzierungen.

Im Basisspiel verwendet: 6-mal in 3 Dateien

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

constructionutil.addModelsAndGroups(params, generatedData as ConstructionUtilSerialized.GeneratedDataGroup, result.subconstructions[1], tag, transf2)
base/content/landmarks/landmark_util_serialized.tl:10
local function addTerminals(params, generatedData : ConstructionUtilSerialized.GeneratedDataGroup, terminals, mainSubconstruction : ConstructionUtilSerialized.S
base/content/stations/air/air/heliport/modules.script.tl:59
local generatedData = (captureParams.generatedData as ConstructionUtilSerialized.GeneratedData)["static"] as ConstructionUtilSerialized.GeneratedDataGroup

Typen

Name Definition Beschreibung
GeneratedCurve {string : {{{number}}}} Benannte Kurven: Jeder Schlüssel verweist auf eine Liste von Kurven, jede Kurve ist eine Liste von {x, y, z}-Punkten. Bestimmte Namen wertet addModelsAndGroups besonders aus, z. B. collider, Schlüssel mit .gtex (Bodenflächen) und equal_faces|low|high (Geländeanpassung).

Felder

Name Typ Beschreibung
curves GeneratedCurve Benannte Kurven der Gruppe.
models {string : {Mat4Serialized.Mat4}} Modellplatzierungen. Jeder Schlüssel ist eine Modelldatei und verweist auf die Liste ihrer Transformationen.

ConstructionUtilSerialized.ModuleUpdateFnParams

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:78

record ModuleUpdateFnParams

Hinweise

Parameter, die das Update-Skript einer modularen Konstruktion und das Update-Skript jedes Moduls bekommen.

Im Basisspiel verwendet: 5-mal in 3 Dateien

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

_addModelFnInvalid : function(), params : ConstructionUtilSerialized.ModuleUpdateFnParams)
base/content/scripts/scripts/construction/construction.script.tl:17
constrParams : ConstructionUtilSerialized.ModuleUpdateFnParams
base/content/stations/air/air/heliport/modules.script.tl:8
_addModelFnInvalid : function(), params : ConstructionUtilSerialized.ModuleUpdateFnParams)

Felder

Name Typ Beschreibung
seed integer Zufallsstartwert. Während ein Modulskript läuft, ist er der Startwert der Konstruktion plus die Slot-ID.
modules {integer : Module} Platzierte Module nach Slot-ID. Die Module werden in aufsteigender Reihenfolge der Slot-IDs verarbeitet.

ConstructionUtilSerialized.ModuleUpdateFnParams.Module

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:79

record Module

Hinweise

Ein Modul, das in einem Slot steht.

Felder

Name Typ Beschreibung
updateScript ScriptRef Das Update-Skript des Moduls. Es wird mit den params des Moduls, dem Konstruktionsergebnis, der Slot-Transformation, einem Tag, der Slot-ID, einer Funktion zum Hinzufügen von Modellen und diesen Parametern aufgerufen.
metadata any Die Metadaten des Moduls, z. B. price, maintenanceCost, bulldozePrice.
name string Der Ressourcenname des Moduls.
variant integer Wird beim Platzieren des Moduls mit M/N geändert. Kann negativ sein, Standard ist 0. Das Hauptquartier nutzt den Wert als Drehung in Vierteldrehungen.

ConstructionUtilSerialized.ModuleGetModelsFnParams

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:89

record ModuleGetModelsFnParams

Hinweise

Parameter der getModelsFn eines Moduls (es sind keine Felder definiert).

Im Basisspiel verwendet: 2-mal in 2 Dateien

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

function data.getModelsFn(captureParams : table, _params : ConstructionUtilSerialized.ModuleGetModelsFnParams) : ConstructionUtilSerialized.ModelsFnData
base/content/stations/air/air/heliport/modules.script.tl:58
function data.getModelsFn(captureParams : table, _params : ConstructionUtilSerialized.ModuleGetModelsFnParams) : ConstructionUtilSerialized.ModelsFnData

ConstructionUtilSerialized.TransformedModel

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:92

record TransformedModel

Hinweise

Ein Modell, das eine Konstruktion platziert.

Im Basisspiel verwendet: 4-mal in 1 Datei

base/content/scripts/scripts/construction/construction.script.tl:85

local function addModel(name : string, mtransf : Mat4Serialized.Mat4, tag2 : string, models : {ConstructionUtilSerialized.TransformedModel}) : integer

Felder

Name Typ Beschreibung
id string Modelldatei, z. B. "station/rail/platform.mdl".
transf Mat4Serialized.Mat4 Platzierungstransformation (16 Zahlen, spaltenweise) relativ zur Konstruktion.
tag string Tag des Modells. Modelle, die ein Modul hinzufügt, bekommen "__module_<slotId>" und gehören damit zu diesem Modul.

ConstructionUtilSerialized.GroundFace

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:98

record GroundFace

Hinweise

Eine Bodentexturfläche (Punkte in face und Textur-modes); die Definition deklariert keine Felder.

ConstructionUtilSerialized.TerrainAlignmentList

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:101

record TerrainAlignmentList

Hinweise

Eine Menge von Flächen, an die das Gelände angepasst wird.

Im Basisspiel verwendet: 1-mal in 1 Datei

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

local terrainAlignmentLists : {ConstructionUtilSerialized.TerrainAlignmentList} = {

Felder

Name Typ Beschreibung
type AlignmentType Art der Anpassung.
faces {{{number, number, number}}} Polygone, jedes eine Liste von {x, y, z}-Punkten.
slopeLow number Böschungsneigung am Rand der Fläche (das Basisspiel verwendet z. B. 0,275).
slopeHigh number Größte Böschungsneigung (das Basisspiel verwendet z. B. 0,6).

ConstructionUtilSerialized.TerrainAlignmentList.AlignmentType

enum base/tealdef/scripts/construction/construction_util_serialized.d.tl:102

enum AlignmentType

Hinweise

Wie das Gelände an die Flächen angepasst wird.

Wert Beschreibung
"EQUAL" Das Gelände wird auf die Höhe der Flächen gesetzt.
"LESS" Das Gelände wird abgesenkt, wo es höher als die Flächen liegt.
"GREATER" Das Gelände wird angehoben, wo es tiefer als die Flächen liegt.

ConstructionUtilSerialized.Slot

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:113

record Slot

Hinweise

Ein Slot einer modularen Konstruktion, in den Module desselben type passen.

Felder

Name Typ Beschreibung
id integer Eindeutige Slot-ID; params.modules verwendet sie als Schlüssel für die Module. Sie kann die Koordinaten des Slots enthalten.
transf Mat4Serialized.Mat4 Transformation relativ zum Ursprung der Konstruktion; die Modelle der Module werden relativ dazu platziert.
type string Slot-Typ; nur Module desselben Typs können hier gebaut werden.
spacing {number, number, number, number} Ausdehnung des Slots um seinen Ursprung, {left, right, south, north}: Abstände entlang -X, +X, -Y und +Y in Slot-Koordinaten.
height number Höhe des Slots für die Kollision.
shape integer 0 = Quadrat, 1 = Dreieck, 2 = Rechteck quer, 3 = Rechteck längs.
autoFill boolean Füllt den Slot automatisch, wenn die Konstruktion entsteht (Felder fügen so ihre Satelliten hinzu).
alignToTerrain boolean Verschiebt den Slot senkrecht auf die Geländehöhe (z. B. für Felder).
replaceable boolean Module in diesem Slot lassen sich durch andere Module desselben Typs ersetzen, ohne sie vorher abzureißen.

ConstructionUtilSerialized.Depot

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:127

record Depot

Hinweise

Depot-Teil einer Unterkonstruktion.

Felder

Name Typ Beschreibung
catchmentArea CatchmentArea Bereich um das Depot, in dem Fahrzeuge gewartet werden.
transportModes {TransportMode} Transportmodi der Fahrzeuge, die das Depot abfertigt.
maintenancePool integer Wie viele Fahrzeuge gleichzeitig gewartet werden können.

ConstructionUtilSerialized.Industry

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:133

record Industry

Hinweise

Industrie-Teil einer Unterkonstruktion.

Felder

Name Typ Beschreibung
productionLevel integer Aktuelle Produktionsstufe.
maxLevel integer Höchste Produktionsstufe.

ConstructionUtilSerialized.EdgeListType

enum base/tealdef/scripts/construction/construction_util_serialized.d.tl:138

enum EdgeListType

Hinweise

Netztyp einer Kantenliste.

Wert Beschreibung
"STREET" Straßenkanten.
"TRACK" Gleiskanten.

ConstructionUtilSerialized.EdgeList

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:143

record EdgeList

Hinweise

Straßen- oder Gleiskanten, die eine Konstruktion im Verkehrsnetz anlegt.

Felder

Name Typ Beschreibung
edgeType BaseEdgeType Normal, Brücke oder Tunnel.
edgeTypeName string Brücken- oder Tunneltyp, wenn edgeType den Wert BRIDGE oder TUNNEL hat.
type EdgeListType Straße oder Gleis.
edges {{Vec3Serialized.Vec3, Vec3Serialized.Vec3}} Knoten als Paare {position, tangent}; je zwei aufeinanderfolgende Einträge bilden eine Kante. Du baust sie mit StreetUtilSerialized.addStraightEdge, addEdge und den verwandten Funktionen.
snapNodes {integer} Indizes (ab 0) der Knoten in edges, die an vorhandenen Straßen oder Gleisen einrasten.
freeNodes {integer} Indizes (ab 0) der Knoten in edges, die nicht fest zur Konstruktion gehören (siehe StreetUtilSerialized.freeAllNodes).
trafficLightYes {integer}
trafficLightNo {integer}
tag2nodes {string : {integer}} Benannte Gruppen von Knotenindizes (ab 0), auf die man später verweisen kann.
alignTerrain boolean

ConstructionUtilSerialized.LaneList

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:156

record LaneList

Hinweise

Spuren innerhalb einer Konstruktion (Wege für Personen, Güter und Fahrzeuge, die keine Straßen oder Gleise sind).

Felder

Name Typ Beschreibung
transf Mat4Serialized.Mat4 Transformation, die auf die Spurknoten angewendet wird.
transportModes {TransportMode} Transportmodi, die auf den Spuren erlaubt sind.
speedLimit number Geschwindigkeitsbegrenzung der Spuren in m/s (laut offiziellem Wiki).
nodes {{Vec3Serialized.Vec3, Vec3Serialized.Vec3, number}} Knoten als {position, tangent, width}; je zwei aufeinanderfolgende Einträge bilden eine Spurkante (siehe LaneUtilSerialized.createLane).
linkable boolean Ob sich die automatisch erzeugten kurzen Fußwegverbindungen an diese Spuren anschließen können.
pedestrianWalkPenalty number Strafwert für Fußgänger, die auf diesen Spuren gehen.
forwardOnly boolean Die Spuren dürfen nur in Vorwärtsrichtung befahren werden.
needsReservation boolean Fahrzeuge müssen die Spuren reservieren, bevor sie einfahren dürfen.

ConstructionUtilSerialized.RunwayDef

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:167

record RunwayDef

Hinweise

Ein Lande- oder Startweg für Flugzeuge und Schiffe, definiert auf Spurknoten.

Felder

Name Typ Beschreibung
type string "LANDING" oder "TAKEOFF".
node {number, number} Knoten der Landebahn als {laneListIndex, nodeIndex} (beide ab 0).
edges {{number, number}} Kanten der Landebahn als Paare {laneListIndex, edgeIndex} (ab 0).

ConstructionUtilSerialized.TerminalDef

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:173

record TerminalDef

Hinweise

Ein Stationsterminal, definiert auf den Spuren seiner Unterkonstruktion.

Felder

Name Typ Beschreibung
comfortFactor number Wie schnell die Zufriedenheit wartender Passagiere sinkt.
personEdges {{integer, integer}} Kanten des Wartebereichs als Paare {laneListIndex, edgeIndex} (ab 0).
capacity integer Wie viele Passagiere oder Gütereinheiten in das Terminal passen.
cargoTransferSpeeds {CargoTransferSpeed} Einstellungen der Ladegeschwindigkeit.

ConstructionUtilSerialized.TerminalDef.CargoTransferSpeed

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:174

record CargoTransferSpeed

Hinweise

Einstellung der Ladegeschwindigkeit für eine Gruppe von Güterarten.

Felder

Name Typ Beschreibung
cargoTypeSet CargoTypeSet Güterarten, für die die Einstellung gilt.
loadSpeedModifier number Faktor auf die Ladegeschwindigkeit.
length number Länge des Terminalabschnitts.

ConstructionUtilSerialized.StationDef

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:186

record StationDef

Hinweise

Die Station einer Unterkonstruktion.

Felder

Name Typ Beschreibung
pool Pool Gemeinsamer Wartebereich.
terminals {TerminalDef} Die Terminals der Station.

ConstructionUtilSerialized.StationDef.Pool

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:187

record Pool

Hinweise

Gemeinsamer Wartebereich, der überzählige Terminalkapazität aufnimmt.

Felder

Name Typ Beschreibung
capacity integer Größe des gemeinsamen Bereichs.
edges {{integer, integer}} Kanten des gemeinsamen Wartebereichs als Paare {laneListIndex, edgeIndex}.

ConstructionUtilSerialized.StockRules

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:196

record StockRules

Hinweise

Eine Produktionsregel einer industrieähnlichen Unterkonstruktion.

Felder

Name Typ Beschreibung
input {{integer}} orRule to stock to amount
output {string : integer} Produzierte Mengen nach Ausgangsbestand.
capacity integer Produktionskapazität der Regel.

ConstructionUtilSerialized.Stocks

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:202

record Stocks

Hinweise

Ein Güterbestand einer Unterkonstruktion.

Felder

Name Typ Beschreibung
type StockType Rolle des Bestands.
cargoType string Ressource der gelagerten Güterart.
capacity integer Kapazität des Bestands.

ConstructionUtilSerialized.Stocks.StockType

enum base/tealdef/scripts/construction/construction_util_serialized.d.tl:203

enum StockType

Hinweise

Rolle des Bestands.

Wert Beschreibung
"INPUT_STOCK" Nimmt gelieferte Güter auf.
"OUTPUT_STOCK" Hält produzierte Güter zur Abholung bereit.
"STORAGE_STOCK" Lagert Güter.

ConstructionUtilSerialized.SubConstruction

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:213

record SubConstruction

Hinweise

Ein Teil eines Konstruktionsergebnisses: seine Modelle, Bodenflächen, Collider, Geländeanpassung, Spuren und optional eine Station, ein Depot oder eine Industrie. Die meisten Konstruktionen haben nur eine Unterkonstruktion (result.subconstructions[1]).

Im Basisspiel verwendet: 3-mal in 2 Dateien

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

local subconstruction : ConstructionUtilSerialized.SubConstruction = {
base/content/landmarks/landmark_util_serialized.tl:10
local function addTerminals(params, generatedData : ConstructionUtilSerialized.GeneratedDataGroup, terminals, mainSubconstruction : ConstructionUtilSerialized.S

Felder

Name Typ Beschreibung
models {TransformedModel} Platzierte Modelle.
groundFaces {GroundFace} Bodentexturflächen.
colliders {ColliderUtilSerialized.Collider} Kollisionsformen.
depot Depot Depotdaten, wenn die Unterkonstruktion ein Depot ist.
terrainAlignmentLists {TerrainAlignmentList} Geländeanpassung.
laneLists {LaneList} Spuren; Terminals und Landebahnen verweisen über einen Index (ab 0) auf sie.
runways {RunwayDef} Lande- und Startwege.
station StationDef Stationsdaten, wenn die Unterkonstruktion eine Station ist.
industry Industry Industriedaten, wenn die Unterkonstruktion eine Industrie ist.
rules {StockRules} Produktionsregeln.
stocks {Stocks} Güterbestände.
tag integer Tag, das die Unterkonstruktion kennzeichnet (z. B. über Ausbauten hinweg).
metadata table Metadaten, die mit der Instanz der Unterkonstruktion gespeichert werden.

ConstructionUtilSerialized.SnapPoint

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:229

record SnapPoint

Hinweise

Wo und woran die Konstruktion beim Platzieren einrastet.

Felder

Name Typ Beschreibung
snapToBaseEdgeTypes {EdgeListType} Netztypen, an denen sie einrastet, z. B. {"STREET"}.
allowSnapToBaseEdgeEnds boolean Erlaubt auch das Einrasten am Ende einer Straße oder eines Gleises.
alignWithCoast boolean Richtet die Konstruktion an der Küstenlinie aus (Häfen, Schiffsdepots).
placeAtTerrainHeight boolean
transf Mat4Serialized.Mat4 Transformation des Snap-Punkts relativ zur Konstruktion.
transportModes {TransportMode} Transportmodi, für die der Snap-Punkt gilt.

ConstructionUtilSerialized.IConstructionResult

interface base/tealdef/scripts/construction/construction_util_serialized.d.tl:238

interface IConstructionResult

Hinweise

Was die updateFn einer Konstruktion zurückgibt.

Details

Kosten sind in Spielwährung angegeben. Ist maintenanceCost nil oder 0, setzt das Konstruktionsskript den Wert auf cost / 6. cost und bulldozeCost werden mit dem Infrastrukturkosten-Faktor des Spiels skaliert.

Beispiel

-- aus base/content/stations/street/street/underground_station/underground_station.script.lua
result.snapPoint = {
    transf = transf.transl(vec3.new(0, 8.0, 0)),
    snapToBaseEdgeTypes = {"STREET"},
    allowSnapToBaseEdgeEnds = true,
}
Im Basisspiel verwendet: 1-mal in 1 Datei

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

function hq.updateFn(captureParams : table, _params : table) : ConstructionUtilSerialized.IConstructionResult

Felder

Name Typ Beschreibung
subconstructions {SubConstruction} Die Teile der Konstruktion.
metadata table Metadaten, die mit der gebauten Konstruktion gespeichert werden (ihre persistenten Metadaten).
snapPoint SnapPoint Snap-Punkt beim Platzieren der Konstruktion.
slots {Slot} Modul-Slots einer modularen Konstruktion.
slotConfig {string : SlotConfig} Zusätzliche Einstellungen pro Slot-Typ.
cost number Baukosten in Spielwährung; die Modulpreise kommen hinzu.
maintenanceCost number Unterhaltskosten pro Jahr in Spielwährung; Standard ist cost / 6.
streetTerminal StreetTerminal Terminaldaten für Haltestellen am Straßenrand.
bulldozeCost number Kosten für das Abreißen der Konstruktion in Spielwährung.
noCostAtAll boolean disable all cost for the entire proposal
callInvalidModules boolean Führt auch die Update-Skripte von Modulen aus, deren Slot-ID nicht in slots steht.

Funktionen

Only used within constructWithModules

terminateConstructionHook() base/tealdef/scripts/construction/construction_util_serialized.d.tl:256

Die Spieldateien enthalten hierzu noch keine Beschreibung.

ConstructionUtilSerialized.ConstructionResult

record base/tealdef/scripts/construction/construction_util_serialized.d.tl:260

record ConstructionResult is IConstructionResult

Hinweise

Konkreter Typ des Konstruktionsergebnisses (siehe IConstructionResult).

Im Basisspiel verwendet: 8-mal in 2 Dateien

base/content/landmarks/landmark_util_serialized.tl:102

landmark_util_serialized.makeLandmarksUpdateFn = function(generatedData : ConstructionUtilSerialized.GeneratedDataGroup) : function(captureParams : table, param
base/content/scripts/scripts/construction/construction.script.tl:23
local applyConstructionCostScale = function(result : ConstructionUtilSerialized.ConstructionResult, scriptParams : ConstructionScriptParam) : ConstructionUtilSe