Zum Inhalt

map_gen_util_serialized

Quelle: base/tealdef/climates/gen/map_gen_util_serialized.d.tl

Hinweise

Typen der Fluss- und Bergrücken-Helfer des Kartengenerators, /climates/gen/mapgenutil.tl (MapGenUtil) und /climates/gen/rivermapgenutil.tl (RiverMapGenUtil). Der Knoten-Editor des Karten-Editors (gui/node_editor/layer_nodes.script.tl) setzt damit Flüsse, Seen und Bergrücken. Koordinaten sind in Metern.

Globale Namen

Typen

Name Definition Beschreibung
RiverId integer Nummer eines generierten Flusses.

MapBounds

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:5

global record MapBounds

Hinweise

Rechteck der Kartenfläche in Metern.

Felder

Name Typ Beschreibung
min Vec2Serialized.Vec2 Ecke unten links.
max Vec2Serialized.Vec2 Ecke oben rechts.

RiverStartConfig

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:10

global record RiverStartConfig

Hinweise

Einstellungen für MapGenUtil.findGoodRiverStarts.

Funktionen

getStartWeight(Vec2Serialized.Vec2) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:11

Hinweise

Gewicht einer Position. Positionen mit negativem Gewicht sind Flussquellen.

Rückgabe number

RiverStartResult

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:15

global record RiverStartResult

Hinweise

Ein Startpunkt eines Flusses.

Felder

Name Typ Beschreibung
pos Vec2Serialized.Vec2 Startposition.
angle number Startrichtung im Bogenmaß.
weight number Startgewicht an der Position.

RiverData

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:21

global record RiverData

Hinweise

Eine abgetastete Flussposition im Kollisionsraster.

Felder

Name Typ Beschreibung
riverId integer Fluss, zu dem der Messpunkt gehört.
position Vec2Serialized.Vec2 Position des Messpunkts.

RiverMap

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:26

global record RiverMap

Hinweise

Kollisionsraster der Fluss-Messpunkte, das Flüsse auseinanderhält.

Felder

Name Typ Beschreibung
riverMap {{RiverData}} Messpunkte pro Rasterblock (Blöcke von 800 m).

RiverBuilderConfig

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:30

global record RiverBuilderConfig

Hinweise

Einstellungen für MapGenUtil.makeRivers.

Felder

Name Typ Beschreibung
curvature number Zufällige Richtungsänderung pro Segment (Standard 0,2).
map RiverMap Kollisionsraster, wird bei nil angelegt.
depthScale number Faktor auf die Flusstiefe.
segmentLength number Länge eines Flusssegments in Metern. Bei nil aus der verbleibenden Länge abgeleitet.
minLength number Flüsse, die kürzer sind (in Metern), werden verworfen.
bounds MapBounds Kartengrenzen. Flüsse enden 5 km außerhalb davon.
maxOrder integer Höchste Verzweigungsordnung der Nebenflüsse.
baseProbability number Faktor auf die Wahrscheinlichkeit von Nebenflüssen pro Segment.
minDist number Mindestzahl an Segmenten zwischen zwei Nebenflüssen.
currentRiverId RiverId Id des Flusses, der gerade gebaut wird. Steigt mit jedem Fluss um eins.

Funktionen

getRiverWeight(Vec2Serialized.Vec2) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:33

Hinweise

Gewicht einer Position. Jeder Schritt wählt die Richtung mit dem höchsten Gewicht unter 1,2.

Rückgabe number

RiverResult

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:44

global record RiverResult

Hinweise

Ein generierter Fluss mit Werten pro Punkt.

Felder

Name Typ Beschreibung
points {Vec2Serialized.Vec2} Positionen der Punkte.
widths {Vec2Serialized.Vec2} Uferbreiten pro Punkt (x links, y rechts).
depths {number} Tiefe pro Punkt.
tangents {Vec2Serialized.Vec2} Kurventangente pro Punkt.
widthTangents {Vec2Serialized.Vec2} Breitentangente pro Punkt.
depthTangents {number} Tiefentangente pro Punkt.
features {Feature} Flags pro Punkt.
feeders {integer} Index des Nebenflusses, der an einem Punkt mündet (-1 oder nil, wenn keiner).

RiverResult.Feature

record base/tealdef/climates/gen/map_gen_util_serialized.d.tl:45

record Feature

Hinweise

Flags eines Flusspunkts.

Felder

Name Typ Beschreibung
curve boolean Der Punkt wurde als Mäander hinzugefügt.
lake boolean Der Punkt gehört zu einem See.
lakeDist number Abstand in Punkten zum nächsten See oder Nebenfluss.

RidgeResult

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:60

global record RidgeResult

Hinweise

Ein generierter Bergrücken.

Felder

Name Typ Beschreibung
points {Vec2Serialized.Vec2} Punkte des Bergrückens.
heights {number} Höhe pro Punkt.
directions {number} Richtung pro Punkt im Bogenmaß.

RidgesBuilderConfig

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:66

global record RidgesBuilderConfig

Hinweise

Einstellungen für MapGenUtil.makeRidges.

Felder

Name Typ Beschreibung
bounds MapBounds Kartengrenzen.
density number Bergrücken pro Kachel von 2048 m. Bei nil werden 0 bis 2 mit probabilityLow und probabilityHigh gewählt.
minHeight number Niedrigste Gipfelhöhe.
maxHeight number Größte Höhe eines Bergrückens.
probabilityLow number Liegt eine Zufallszahl darüber, bekommt die Kachel keinen Bergrücken.
probabilityHigh number Liegt eine Zufallszahl darüber (und nicht über probabilityLow), gibt es einen Bergrücken, sonst zwei.

Funktionen

ridgeMask(Vec2f) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:73

Hinweise

Maskenwert einer Position. Bergrücken enden, wo er unter 0,5 liegt.

Rückgabe number

RidgesResult

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:76

global record RidgesResult

Hinweise

Ein generierter Bergrücken mit Punkten als Paare {x, y}.

Felder

Name Typ Beschreibung
points {{number, number}} Punkte des Bergrückens.
heights {number} Höhe pro Punkt.
directions {number} Richtung pro Punkt im Bogenmaß.

SubdivideConfig

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:82

global record SubdivideConfig

Hinweise

Einstellungen für RiverMapGenUtil.subdivide.

Felder

Name Typ Beschreibung
nSegments integer Anzahl der Teile, in die jedes Flusssegment zerlegt wird.

LakeConfig

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:86

global record LakeConfig

Hinweise

Einstellungen für RiverMapGenUtil.makeLakes.

Funktionen

probability(Vec2Serialized.Vec2) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:87

Hinweise

See-Wahrscheinlichkeit an einer Position.

Rückgabe number

startProbability(Vec2Serialized.Vec2) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:88

Hinweise

Ein See beginnt, wo probability diesen Wert übersteigt.

Rückgabe number

endProbability(number, Vec2Serialized.Vec2) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:89

Hinweise

Ein See endet, wo 1 - probability diesen Wert übersteigt. Bekommt die aktuelle Seegröße in Punkten.

Rückgabe number

makeProfile(number) : Vec2Serialized.Vec2, number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:90

Hinweise

Breite und Tiefe eines Seepunkts. Das Argument läuft von -1 am Seeanfang bis 1 am Seeende.

Rückgabe Vec2Serialized.Vec2, number

RidgesConfig

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:93

global record RidgesConfig

Hinweise

Einstellungen von MapGenUtil.makeRidges (siehe RidgesBuilderConfig).

Felder

Name Typ Beschreibung
bounds MapBounds Kartengrenzen.
probabilityLow number Liegt eine Zufallszahl darüber, bekommt die Kachel keinen Bergrücken.
probabilityHigh number Liegt eine Zufallszahl darüber (und nicht über probabilityLow), gibt es einen Bergrücken, sonst zwei.
minHeight number Niedrigste Gipfelhöhe.
maxHeight number Größte Höhe eines Bergrückens.

Funktionen

ridgeMask(pos : Vec2f) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:99

Hinweise

Maskenwert einer Position. Bergrücken enden, wo er unter 0,5 liegt.

Rückgabe number

RiverResult2

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:102

global record RiverResult2

Hinweise

Ein Fluss im Format, das der Geländegenerator erwartet, mit Paaren {x, y} statt Vektoren.

Felder

Name Typ Beschreibung
points {{number, number}} Positionen der Punkte.
tangents {{number, number}} Kurventangente pro Punkt.
widthTangents {{number, number}} Breitentangente pro Punkt.
widths {{number, number}} Uferbreiten pro Punkt.
depths {number} Tiefe pro Punkt.
depthTangents {number} Tiefentangente pro Punkt.

MapGenUtil

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:111

global record MapGenUtil

Hinweise

Erzeugung von Flüssen und Bergrücken, Rückgabe von ug_require "/climates/gen/mapgenutil.tl".

Funktionen

findGoodRiverStartBounds(bounds : MapBounds) : RiverStartResult base/tealdef/climates/gen/map_gen_util_serialized.d.tl:112

Hinweise

Zufälliger Startpunkt 100 m außerhalb einer zufälligen Kante der Grenzen, mit Richtung zur Mitte.

Rückgabe RiverStartResult

findGoodRiverStarts(bounds : MapBounds, startConfig : RiverStartConfig, attempts : integer) : {RiverStartResult} base/tealdef/climates/gen/map_gen_util_serialized.d.tl:113

Hinweise

Tastet zufällige Positionen ab und behält die mit negativem Startgewicht. Die Richtung zeigt zum höchsten Gewicht in 200 m Entfernung (8 Richtungen werden geprüft).

Parameter Typ Beschreibung
bounds MapBounds
startConfig RiverStartConfig
attempts integer Anzahl der abgetasteten Positionen.

Rückgabe {RiverStartResult}: Die gefundenen Startpunkte.

makeRivers(valleys : {RiverResult}, config : RiverBuilderConfig, startLength : number, startPosition : Vec2Serialized.Vec2, startDirection : number, order? : integer, feederId? : integer, feederDir? : number, effluentIndex? : integer, i? : integer) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:114

Hinweise

Baut von einem Startpunkt aus einen Fluss und rekursiv seine Nebenflüsse und hängt sie an valleys an.

Parameter Typ Beschreibung
valleys {RiverResult} Liste, an die die Flüsse angehängt werden.
config RiverBuilderConfig Flusseinstellungen. Enthält auch das Kollisionsraster und die aktuelle Fluss-Id.
startLength number Längenbudget in Metern. Der Knoten-Editor nutzt 120000.
startPosition Vec2Serialized.Vec2
startDirection number
order? integer
feederId? integer
feederDir? number
effluentIndex? integer
i? integer

Rückgabe number: Gesamtvolumen des Flusses, oder nil, wenn der Fluss verworfen wurde (von einem anderen Fluss blockiert oder zu kurz).

Beispiel

-- aus base/content/gui/gui/node_editor/layer_nodes.script.tl
local river = map_gen_util.makeRivers(rivers, riverConfig, 120000, start.pos, start.angle)

makeRidges(RidgesConfig) : {RidgeResult} base/tealdef/climates/gen/map_gen_util_serialized.d.tl:116

Hinweise

Setzt zufällige Bergrücken in Kacheln von 2048 m über die Kartenfläche.

Rückgabe {RidgeResult}

convertRiver(valleys : {RiverResult}) : {RiverResult2} base/tealdef/climates/gen/map_gen_util_serialized.d.tl:117

Hinweise

Wandelt Flüsse in RiverResult2 um, mit Paaren {x, y} statt Vektoren.

Rückgabe {RiverResult2}

RiverMapGenUtil

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:120

global record RiverMapGenUtil

Hinweise

Nachbearbeitung von Flüssen, Rückgabe von ug_require "/climates/gen/rivermapgenutil.tl".

Funktionen

makeSubdivision(river : RiverResult, subdivideConfig : SubdivideConfig) : RiverResult base/tealdef/climates/gen/map_gen_util_serialized.d.tl:121

Hinweise

Gibt eine Kopie des Flusses zurück, in der jedes Segment entlang der Hermite-Kurve in nSegments Teile zerlegt ist.

Rückgabe RiverResult

makeLake(river : RiverResult, lakeConfig : LakeConfig, prepare? : boolean) base/tealdef/climates/gen/map_gen_util_serialized.d.tl:122

Hinweise

Markiert Abschnitte des Flusses mit den Wahrscheinlichkeiten aus lakeConfig als Seen und setzt ihre Breite und Tiefe über makeProfile.

Parameter Typ Beschreibung
river RiverResult
lakeConfig LakeConfig
prepare? boolean Bei true werden nur die Punkte markiert, Breite und Tiefe bleiben gleich.

makeCurve(river : RiverResult, curveConfig : CurveConfig) base/tealdef/climates/gen/map_gen_util_serialized.d.tl:123

Hinweise

Biegt die Tangenten von Punkten abseits von Seen und Nebenflüssen zu Mäandern und skaliert die Breiten mit getWidthMultiplier.

adjustFeeder(river : RiverResult, rivers : {RiverId : RiverResult}, _adjustConfig : AdjustFeederConfig) base/tealdef/climates/gen/map_gen_util_serialized.d.tl:124

Hinweise

Setzt die Tiefe jedes Nebenflusses an seiner Mündung auf die Tiefe des aufnehmenden Flusses.

subdivide(rivers : {RiverResult}, subdivideConfig : SubdivideConfig) base/tealdef/climates/gen/map_gen_util_serialized.d.tl:125

Hinweise

Wendet makeSubdivision auf jeden Fluss an.

makeLakes(rivers : {RiverResult}, lakeConfig : LakeConfig) base/tealdef/climates/gen/map_gen_util_serialized.d.tl:126

Hinweise

Wendet makeLake auf jeden Fluss an.

makeCurves(rivers : {RiverResult}, curveConfig : CurveConfig) base/tealdef/climates/gen/map_gen_util_serialized.d.tl:127

Hinweise

Wendet makeCurve auf jeden Fluss an.

adjustFeeders(rivers : {RiverResult}, adjustConfig : AdjustFeederConfig) base/tealdef/climates/gen/map_gen_util_serialized.d.tl:128

Hinweise

Wendet adjustFeeder auf jeden Fluss an.

CurveConfig

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:131

global record CurveConfig

Hinweise

Einstellungen für RiverMapGenUtil.makeCurves.

Felder

Name Typ Beschreibung
baseStrength number Grundstärke der Mäander.
newRiver boolean Nutzt die neuere Mäandermethode, die Tangenten dreht.

Funktionen

getCurviness(Vec2Serialized.Vec2) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:133

Hinweise

Faktor für die Mäanderstärke an einer Position.

Rückgabe number

getWidthMultiplier(Vec2Serialized.Vec2) : number base/tealdef/climates/gen/map_gen_util_serialized.d.tl:135

Hinweise

Faktor auf die Flussbreite an einer Position.

Rückgabe number

AdjustFeederConfig

record global base/tealdef/climates/gen/map_gen_util_serialized.d.tl:138

global record AdjustFeederConfig

Hinweise

Einstellungen für RiverMapGenUtil.adjustFeeders (keine Felder werden genutzt).