Zum Inhalt

rocket_util

Quelle: base/tealdef/game_mechanics/fun_elements/rocket_util.d.tl

Hinweise

Raketen für das Feuerwerk und für den Raketenstart in Kampagnenmission 8.

Globale Namen

Typen

Name Definition Beschreibung
VecCol {number, number, number, number} Vier Zahlen einer Matrixzeile in einer MatCols-Tabelle.
MatCols {VecCol, VecCol, VecCol, VecCol} 4x4-Matrix als einfache Lua-Tabelle, wie CustomEntityUtil.convertMatrixToTable sie erzeugt.

RocketParams

record global base/tealdef/game_mechanics/fun_elements/rocket_util.d.tl:6

global record RocketParams

Hinweise

Flugparameter einer Rakete.

Beispiel

-- fireworks.script.tl
local rocketParams : RocketParams = {
    thrust = 1607,
    mass = 5,
    gravity = api.type.Vec3f.new(0, 0, -9.81),
    timeOnGround = 0.0,
    animationStartDelay = 0.0,
    totalFlightTime = 5,
    finalPitchAngle = math.pi / 4,
    verticalPhaseTime = 0.0,
    maxAltitude = 200.0,
}

Felder

Name Typ Beschreibung
thrust number Schubkraft. Geteilt durch mass ergibt sie die Beschleunigung entlang der Raketenachse.
mass number Masse der Rakete.
gravity Vec3f Erdbeschleunigung, etwa (0, 0, -9.81).
timeOnGround number Sekunden nach dem Erzeugen, bevor sich die Rakete bewegt.
animationStartDelay number Sekunden nach dem Erzeugen, nach denen die Startanimation beginnt (geht als launchAnimationGameTime an das Modell).
totalFlightTime number Sekunden nach dem Erzeugen, nach denen die Rakete entfernt wird.
finalPitchAngle number Neigung (Bogenmaß) am Ende des Flugs. Nach der senkrechten Phase neigt sich die Rakete linear.
verticalPhaseTime number Sekunden senkrechten Flugs nach timeOnGround.
maxAltitude number Höhe über dem Startpunkt (Meter), in der die Rakete stoppt und explodiert. Optional; das Feuerwerk verwendet 200 plus bis zu 100.
rotZ number Kursrichtung (Bogenmaß), in die sich die Rakete neigt.

RocketUtil

record global base/tealdef/game_mechanics/fun_elements/rocket_util.d.tl:19

global record RocketUtil

Laden: local rocket_util = ug_require "::/game_mechanics/fun_elements/rocket_util.tl" as RocketUtil

Hinweise

Erzeugen und Fliegen von Raketen.

Funktionen

spawnNew(model : string, transf : MatCols, rocketParams : RocketParams, callback : function(RocketData)) base/tealdef/game_mechanics/fun_elements/rocket_util.d.tl:33

Aufruf: rocket_util.spawnNew(…)

Hinweise

Erzeugt ein Raketenmodell und schickt Startzeit, Farbe und Größe als Custom State an die Entität.

Parameter Typ Beschreibung
model string Res-Name des Modells, etwa ::/game_mechanics/fun_elements/firework/firework1.mdl.
transf MatCols Transformation beim Start.
rocketParams RocketParams Flugparameter.
callback function(RocketData) Bekommt die Daten der neuen Rakete, sobald die Entität existiert.
Im Basisspiel verwendet: 2-mal in 2 Dateien

base/content/game_mechanics/game_mechanics/fun_elements/fireworks.script.tl:74

rocket_util.spawnNew(models[math.random(1, #models)], transf, copy, function(rocketData : RocketUtil.RocketData)
mods/release/urbangames_campaign_mission_08/content/mission/mission/rocket/rocket.script.tl:48
rocket_util.spawnNew(model, transf, rocketParams, function(rocketData : RocketUtil.RocketData)

update(rocketData : RocketData, dt : number, rocketParams : RocketParams) : boolean base/tealdef/game_mechanics/fun_elements/rocket_util.d.tl:34

Aufruf: rocket_util.update(…)

Hinweise

Führt den Flug der Rakete einen Schritt weiter.

Parameter Typ Beschreibung
rocketData RocketData Zu aktualisierende Rakete; wird direkt geändert.
dt number Zeitschritt in Sekunden.
rocketParams RocketParams Flugparameter. Übergib dieselben wie an spawnNew.

Rückgabe boolean: Wahr, wenn die Flugzeit vorbei ist und die Rakete entfernt wurde.

Im Basisspiel verwendet: 2-mal in 2 Dateien

base/content/game_mechanics/game_mechanics/fun_elements/fireworks.script.tl:137

updateHelper(rocketState.rockets, dt, rocket_util.update)
mods/release/urbangames_campaign_mission_08/content/mission/mission/rocket/rocket.script.tl:77
updateHelper(rocketState.rockets , dt, rocket_util.update)

RocketUtil.RocketData

record base/tealdef/game_mechanics/fun_elements/rocket_util.d.tl:20

record RocketData

Hinweise

Gespeicherter Zustand einer Rakete.

Im Basisspiel verwendet: 12-mal in 3 Dateien

base/content/game_mechanics/game_mechanics/fun_elements/fireworks.script.tl:21

local updateHelper = function(rockets : {integer : RocketUtil.RocketData}, dt : number,
base/content/game_mechanics/game_mechanics/fun_elements/rocket_util.tl:4
local getVelocity = function(data : RocketUtil.RocketData) : Vec3f
mods/release/urbangames_campaign_mission_08/content/mission/mission/rocket/rocket.script.tl:14
local updateHelper = function(rockets : {integer : RocketUtil.RocketData}, dt : number,

Felder

Name Typ Beschreibung
rocketEntity EntityUtil.EntityAndRevision Entität der Rakete.
initialTransf MatCols Transformation beim Start.
velocity {number} Geschwindigkeit als {x, y, z}.
position {number} Versatz vom Startpunkt als {x, y, z}.
flightTime number Sekunden seit dem Erzeugen.
spawnTime number Spielzeit (ms) des Erzeugens.
atMaxAltitude boolean Wahr, sobald die Rakete maxAltitude erreicht hat. Das Modell spielt dann die Explosion ab.
rotZ number Kursrichtung (Bogenmaß), aus den Parametern übernommen.
color {number, number, number} Zufällige normierte RGB-Farbe der Explosion.
size number Zufallswert von 0 bis 1, der die Geschwindigkeitsdämpfung der Explosionspartikel festlegt.

RocketState

record global base/tealdef/game_mechanics/fun_elements/rocket_util.d.tl:37

global record RocketState

Hinweise

Gespeicherter Zustand des Raketen-Game-Scripts von Kampagnenmission 8.

Felder

Name Typ Beschreibung
rockets {RocketUtil.RocketData} Raketen in der Luft.
spawnTime integer