Zum Inhalt

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

local transf = custom_entity_util.convertMatrixToTable(
mods/release/urbangames_campaign_mission_08/content/mission/mission/mission_story.tl:50
return custom_entity_util.convertMatrixToTable(transf)
mods/release/urbangames_campaign_mission_08/content/mission/mission/mission_story_cutscenes_only.tl:53
return custom_entity_util.convertMatrixToTable(transf)

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.

Im Basisspiel verwendet: 2-mal in 1 Datei

base/content/game_mechanics/game_mechanics/fun_elements/rocket_util.tl:29

local mat = custom_entity_util.convertTableToMatrix(transf)

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

custom_entity_util.spawn(model, mat, function(rocketEntity:Engine.Entity)
base/content/mission/mission/tasks/click_and_collect_custom_entity/spawn_entity.tl:30
custom_entity_util.spawn(params.models[i], newTransf, function(runtimeEntity : Engine.Entity)
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
custom_entity_util.spawn(model, newTransf, function(newEntity : Engine.Entity)
mods/release/urbangames_campaign_mission_05/content/mission/mission/tasks/drilling/drilling.tl:99
custom_entity_util.spawn("urbangames_campaign_mission_05::assets/sound_hack/sound_hack.mdl", newTransf, function(runtimeEntity : Engine.Entity)

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.
Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/game_mechanics/game_mechanics/fun_elements/rocket_util.tl:106

custom_entity_util.setTransf(rocketData.rocketEntity.entity, newTransf)

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

custom_entity_util.destroy(rocketData.rocketEntity.entity)
base/content/mission/mission/tasks/click_and_collect_custom_entity/collect_entity.tl:41
custom_entity_util.destroy(entity)
mods/release/urbangames_campaign_mission_05/content/mission/mission/tasks/drilling/drilling.tl:76
custom_entity_util.destroy(activeDrilling.soundHackEntity)

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

local pos = custom_entity_util.findSpawnPoint(vec, 0.5, params.alignTerrain and 0 or position[3])
mods/release/urbangames_campaign_mission_03/content/mission/mission/tasks/fatal_maintenance/fatal_maintenance.tl:73
local pos = custom_entity_util.findSpawnPoint(vec, 0.1, 0)

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

Rückgabe Vec3f, Vec3f: a position and direction

Im Basisspiel verwendet: 2-mal in 1 Datei

base/content/game_mechanics/game_mechanics/company/explorations/exploration_plane.script.tl:87

local startPos, startDir = custom_entity_util.findSpawnPointClosestOffMap(nextTarget3D, offmap, altitude)

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

local angle = custom_entity_util.vec2fToYaw(api.type.Vec2f.new(-normal.x, -normal.y))
mods/release/urbangames_campaign_mission_03/content/mission/mission/tasks/fatal_maintenance/fatal_maintenance.tl:74
local angle = custom_entity_util.vec2fToYaw(api.type.Vec2f.new(dir.x, dir.y))

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.

Im Basisspiel verwendet: 2-mal in 2 Dateien

base/content/gui/gui/entity_window/make_entity_window.tl:708

local mil = custom_entity_util.getModelInstanceList(entity)
base/content/gui/gui/main/game_tooltips.tl:83
local mil = custom_entity_util.getModelInstanceList(entity)

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

local movementData : CustomEntityUtil.MovementData = custom_entity_util.calcAirshipMovement(
base/content/game_mechanics/game_mechanics/fun_elements/custom_entity_util.tl:185
) : CustomEntityUtil.MovementData
base/content/game_mechanics/game_mechanics/fun_elements/ufo_util.tl:178
local movementData : CustomEntityUtil.MovementData = custom_entity_util.calcAirshipMovement(

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.