custom_entity_util¶
Quelle: base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl
Hinweise
Helfer zum Erzeugen, Bewegen und Entfernen von Custom-Entitäten (vom Script gesteuerte Modelle) und Bewegungsmathematik für fliegende Entitäten.
CustomEntityUtil¶
record global base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:3
global record CustomEntityUtil
Laden: local custom_entity_util = ug_require "::/game_mechanics/fun_elements/custom_entity_util.tl" as CustomEntityUtil
Hinweise
Helfer für Custom-Entitäten (Modelle, die ein Script platziert und bewegt) und Bewegungsmathematik für fliegende Entitäten.
Funktionen
convertMatrixToTable(Mat4f) : {{number, number, number, number}, {number, number, number, number}, {number, number, number, number}, {number, number, number, number}} base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:12
Aufruf: custom_entity_util.convertMatrixToTable(…)
Hinweise
Wandelt eine Matrix in eine einfache Tabelle um, die sich im Game-Script-Zustand speichern oder als Ereignisparameter senden lässt.
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
Mat4f |
Matrix. |
Rückgabe {{number, number, number, number}, {number, number, number, number}, {number, number, number, number}, {number, number, number, number}}: Tabelle aus Zeilen; siehe MatCols.
Im Basisspiel verwendet: 3-mal in 3 Dateien
base/content/game_mechanics/game_mechanics/fun_elements/fireworks.script.tl:126
mods/release/urbangames_campaign_mission_08/content/mission/mission/mission_story.tl:50
mods/release/urbangames_campaign_mission_08/content/mission/mission/mission_story_cutscenes_only.tl:53
convertTableToMatrix({{number, number, number, number}, {number, number, number, number}, {number, number, number, number}, {number, number, number, number}}) : Mat4f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:13
Aufruf: custom_entity_util.convertTableToMatrix(…)
Hinweise
Wandelt eine Tabelle aus convertMatrixToTable zurück in eine Matrix.
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
{{number, number, number, number}, {number, number, number, number}, {number, number, number, number}, {number, number, number, number}} |
Tabelle aus Zeilen. |
Rückgabe Mat4f: Die Matrix.
spawn(string, transf : Mat4f, callback : function(Engine.Entity)) base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:15
Aufruf: custom_entity_util.spawn(…)
Hinweise
Erzeugt eine Custom-Entität aus einem Modell und setzt ihre Transformation. Existiert das Modell nicht, wird ein Fehler protokolliert und nichts passiert.
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
string |
Res-Name des Modells. |
transf |
Mat4f |
Transformation. |
callback |
function(Engine.Entity) |
Bekommt die neue Entität, sobald sie platziert ist. |
Im Basisspiel verwendet: 5-mal in 5 Dateien
base/content/game_mechanics/game_mechanics/fun_elements/rocket_util.tl:33
base/content/mission/mission/tasks/click_and_collect_custom_entity/spawn_entity.tl:30
base/content/mission/mission/tasks/spawn_sims/spawn_sims.tl:92
custom_entity_util.spawn(params.models[math.random(#params.models)], newTransf, function(runtimeEntity : Engine.Entity)
mods/release/urbangames_campaign_mission_03/content/mission/mission/tasks/fatal_maintenance/fatal_maintenance.tl:77
mods/release/urbangames_campaign_mission_05/content/mission/mission/tasks/drilling/drilling.tl:99
getTransf(entity : Engine.Entity) : Mat4f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:16
Aufruf: custom_entity_util.getTransf(…)
Hinweise
Transformation der ersten Modellinstanz der Entität.
| Parameter | Typ | Beschreibung |
|---|---|---|
entity |
Engine.Entity |
Custom-Entität. |
Rückgabe Mat4f: Die Transformation.
setTransf(entity : Engine.Entity, transf : Mat4f) base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:17
Aufruf: custom_entity_util.setTransf(…)
Hinweise
Setzt die Transformation einer Custom-Entität.
| Parameter | Typ | Beschreibung |
|---|---|---|
entity |
Engine.Entity |
Custom-Entität. |
transf |
Mat4f |
Neue Transformation. |
destroy(entity : Engine.Entity) base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:18
Aufruf: custom_entity_util.destroy(…)
Hinweise
Entfernt eine Custom-Entität.
| Parameter | Typ | Beschreibung |
|---|---|---|
entity |
Engine.Entity |
Custom-Entität. |
Im Basisspiel verwendet: 5-mal in 3 Dateien
base/content/game_mechanics/game_mechanics/fun_elements/rocket_util.tl:62
base/content/mission/mission/tasks/click_and_collect_custom_entity/collect_entity.tl:41
mods/release/urbangames_campaign_mission_05/content/mission/mission/tasks/drilling/drilling.tl:76
getPos(entity : Engine.Entity) : Vec3f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:20
Aufruf: custom_entity_util.getPos(…)
Hinweise
Position einer Custom-Entität.
| Parameter | Typ | Beschreibung |
|---|---|---|
entity |
Engine.Entity |
Custom-Entität. |
Rückgabe Vec3f: Weltposition.
setPos(entity : Engine.Entity, pos : Vec3f) base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:21
Aufruf: custom_entity_util.setPos(…)
Hinweise
Verschiebt eine Custom-Entität und behält ihre Drehung bei.
| Parameter | Typ | Beschreibung |
|---|---|---|
entity |
Engine.Entity |
Custom-Entität. |
pos |
Vec3f |
Neue Weltposition. |
findSpawnPoint(pos : Vec3f, xyOffset : number, zOffset : number) : Vec3f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:23
Aufruf: custom_entity_util.findSpawnPoint(…)
Hinweise
Zufälliger Punkt in einem Quadrat um eine Position, in einer bestimmten Höhe über dem Gelände.
| Parameter | Typ | Beschreibung |
|---|---|---|
pos |
Vec3f |
Mittelpunkt des Quadrats. |
xyOffset |
number |
Halbe Seitenlänge des Quadrats (Meter). |
zOffset |
number |
Höhe über dem Gelände (Meter). |
Rückgabe Vec3f: Der Punkt.
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/mission/mission/tasks/click_and_collect_custom_entity/spawn_entity.tl:24
mods/release/urbangames_campaign_mission_03/content/mission/mission/tasks/fatal_maintenance/fatal_maintenance.tl:73
findSpawnPointClosestOffMap(pos : Vec3f, xyOffset : number, zOffset : number) : Vec3f, Vec3f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:30
Aufruf: custom_entity_util.findSpawnPointClosestOffMap(…)
Returns a position and direction (pointing inside the map) at the edge of the map that is closest to pos
| Parameter | Typ | Beschreibung |
|---|---|---|
pos |
Vec3f |
the world position for which to find a closest edge position |
xyOffset |
number |
the offset from the border of the map for the point (in meters) |
zOffset |
number |
the altitude of the point |
approach(current : number, target : number, shift : number) : number base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:32
Aufruf: custom_entity_util.approach(…)
Hinweise
Bewegt eine Zahl um höchstens shift auf einen Zielwert zu, ohne darüber hinauszugehen.
| Parameter | Typ | Beschreibung |
|---|---|---|
current |
number |
Startwert. |
target |
number |
Zielwert. |
shift |
number |
Maximale Änderung; das Vorzeichen wird ignoriert. |
Rückgabe number: Der neue Wert.
approachVec3f(current : Vec3f, target : Vec3f, shift : number) : Vec3f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:33
Aufruf: custom_entity_util.approachVec3f(…)
Hinweise
Bewegt einen Punkt auf der geraden Linie um etwa shift auf ein Ziel zu, ohne darüber hinauszugehen.
| Parameter | Typ | Beschreibung |
|---|---|---|
current |
Vec3f |
Startpunkt. |
target |
Vec3f |
Zielpunkt. |
shift |
number |
Schrittlänge. |
Rückgabe Vec3f: Der neue Punkt.
approachAngularVec2f(current : Vec2f, target : Vec2f, shift : number) : Vec2f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:34
Aufruf: custom_entity_util.approachAngularVec2f(…)
Hinweise
Dreht eine 2D-Richtung auf dem kürzeren Weg zu einer Zielrichtung.
| Parameter | Typ | Beschreibung |
|---|---|---|
current |
Vec2f |
Aktuelle Richtung. |
target |
Vec2f |
Zielrichtung. |
shift |
number |
Anteil der Winkeldifferenz, um den gedreht wird. |
Rückgabe Vec2f: Die neue Richtung als Einheitsvektor.
approachAngularVec3f(current : Vec3f, target : Vec3f, shift : number) : Vec3f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:35
Aufruf: custom_entity_util.approachAngularVec3f(…)
Hinweise
Dreht eine 3D-Richtung zu einer Zielrichtung. Die Kursrichtung ändert sich wie bei approachAngularVec2f, der z-Anteil wie bei approach.
| Parameter | Typ | Beschreibung |
|---|---|---|
current |
Vec3f |
Aktuelle Richtung. |
target |
Vec3f |
Zielrichtung. |
shift |
number |
Drehbetrag. |
Rückgabe Vec3f: Die neue Richtung als Einheitsvektor.
vec2fToYaw(v : Vec2f) : number base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:37
Aufruf: custom_entity_util.vec2fToYaw(…)
Hinweise
Kursrichtung eines 2D-Vektors.
| Parameter | Typ | Beschreibung |
|---|---|---|
v |
Vec2f |
Vektor. |
Rückgabe number: Winkel im Bogenmaß (atan2(y, x)).
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/mission/mission/tasks/spawn_sims/spawn_sims.tl:90
mods/release/urbangames_campaign_mission_03/content/mission/mission/tasks/fatal_maintenance/fatal_maintenance.tl:74
yawToVec2f(angle : number) : Vec2f base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:38
Aufruf: custom_entity_util.yawToVec2f(…)
Hinweise
Einheitsvektor zu einer Kursrichtung.
| Parameter | Typ | Beschreibung |
|---|---|---|
angle |
number |
Winkel im Bogenmaß. |
Rückgabe Vec2f: Der Einheitsvektor.
calcAirshipMovement(position : Vec3f, velocity : Vec3f, targetPos : Vec3f, minGroundOffset : number, minSpeed : number, maxSpeed : number, acceleration : number, steering : number, speedLerpMult : number, dt : number) : MovementData base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:40
Aufruf: custom_entity_util.calcAirshipMovement(…)
Hinweise
Berechnet einen Bewegungsschritt einer fliegenden Entität, die auf ein Ziel zusteuert und in dessen Nähe langsamer wird.
| Parameter | Typ | Beschreibung |
|---|---|---|
position |
Vec3f |
Aktuelle Position. |
velocity |
Vec3f |
Aktuelle Geschwindigkeit. |
targetPos |
Vec3f |
Zielposition. |
minGroundOffset |
number |
Minimale Höhe über dem Gelände (Meter). |
minSpeed |
number |
Geschwindigkeit im Umkreis von 50 Metern um das Ziel. |
maxSpeed |
number |
Geschwindigkeit weiter draußen. |
acceleration |
number |
Maximale Geschwindigkeitsänderung pro Sekunde. |
steering |
number |
Drehrate. Sie legt auch fest, ab welcher Entfernung das Ziel als erreicht gilt (2 / steering Meter). |
speedLerpMult |
number |
Glättung der Geschwindigkeitsänderung. Bei 0 gilt sofort die Zielgeschwindigkeit. |
dt |
number |
Zeitschritt in Sekunden. |
Rückgabe MovementData: Der neue Bewegungszustand. Wende ihn mit applyAirshipMovement an.
applyAirshipMovement(entity : Engine.Entity, data : MovementData) base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:52
Aufruf: custom_entity_util.applyAirshipMovement(…)
Hinweise
Setzt die Entität auf die neue Position und dreht sie in die Kursrichtung der neuen Richtung.
| Parameter | Typ | Beschreibung |
|---|---|---|
entity |
Engine.Entity |
Custom-Entität. |
data |
MovementData |
Ergebnis von calcAirshipMovement. |
getModelInstanceList(entity : Engine.Entity) : Engine.Component.ModelInstanceList base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:54
Aufruf: custom_entity_util.getModelInstanceList(…)
Hinweise
Liste der Modellinstanzen einer Entität oder, wenn ein Fahrzeug selbst keine hat, die seines ersten Wagens.
| Parameter | Typ | Beschreibung |
|---|---|---|
entity |
Engine.Entity |
Entität. |
Rückgabe Engine.Component.ModelInstanceList: Die Liste der Modellinstanzen.
CustomEntityUtil.MovementData¶
record base/tealdef/game_mechanics/fun_elements/custom_entity_util.d.tl:4
record MovementData
Hinweise
Ergebnis eines Bewegungsschritts aus calcAirshipMovement.
Im Basisspiel verwendet: 5-mal in 3 Dateien
base/content/game_mechanics/game_mechanics/fun_elements/blimp_util.tl:194
base/content/game_mechanics/game_mechanics/fun_elements/custom_entity_util.tl:185
base/content/game_mechanics/game_mechanics/fun_elements/ufo_util.tl:178
Felder
| Name | Typ | Beschreibung |
|---|---|---|
velocity |
Vec3f |
Neue Geschwindigkeit. |
position |
Vec3f |
Neue Position, mindestens um den minimalen Bodenabstand über dem Gelände. |
direction |
Vec3f |
Neue Richtung als Einheitsvektor. |
distanceToTarget |
number |
Entfernung von der neuen Position zum Ziel. |
targetReached |
boolean |
Wahr, wenn das Ziel als erreicht gilt. |