Zum Inhalt

game_time

Quelle: base/tealdef/game_mechanics/game_time/game_time.d.tl

Hinweise

Zustand, Konfiguration und Events des Game-Scripts, das die Tageszeit und die Wolkendecke steuert.

GameTimeStateMode

enum global base/tealdef/game_mechanics/game_time/game_time.d.tl:3

global enum GameTimeStateMode

Hinweise

Wie das Game-Script game_time.gs die Tageszeit weiterbewegt. Das Feld „Zyklus“ im Kalender setzt den Modus.

Wert Beschreibung
"Constant" Das Skript lässt die Tageszeit in Ruhe. Der Spieler stellt sie mit dem Schieberegler ein (in der GUI „Custom“).
"Automatic" Die Tageszeit läuft ununterbrochen weiter (in der GUI „Kontinuierlich“).
"Local" Die Tageszeit folgt der lokalen Uhr des Computers.
"Dynamic" Das Skript wählt zufällige Phasen (Mittag, Morgen, Abend), bewegt die Tageszeit jeweils dorthin und hält sie dort einige Minuten.

WeatherStateMode

enum global base/tealdef/game_mechanics/game_time/game_time.d.tl:10

global enum WeatherStateMode

Hinweise

Wie das Game-Script game_time.gs die Wolkendecke ändert.

Wert Beschreibung
"Constant" Das Skript lässt die Wolkendecke in Ruhe. Der Spieler stellt sie mit dem Schieberegler ein.
"Dynamic" Das Skript wählt zufälliges Wetter (sonnig, bewölkt, regnerisch) und bewegt die Wolkendecke dorthin.

GameTimeState

record global base/tealdef/game_mechanics/game_time/game_time.d.tl:15

global record GameTimeState

Hinweise

Zustand des Game-Scripts ::/game_mechanics/game_time/game_time.gs, das die Tageszeit und die Wolkendecke setzt.

Details

Das Skript verarbeitet Events mit der Id "GameTime" (SetMode mit SetModeCommand, SkipPhase, OnManualGameTimeChanged) und mit der Id "CloudCoverage" (SetMode mit SetWeatherModeCommand, SkipPhase, OnManualCloudCoverageChanged). Nach einer manuellen Änderung im Modus Dynamic wartet es etwa 60 Sekunden Spielzeit (mal dem Beschleunigungsfaktor), bevor es die nächste Phase wählt.

Die Spielzeit selbst steht in der GAME_TIME-Komponente der Welt-Entität (gameTime in ms, timeOfDaySec in Sekunden seit Mitternacht).

Beispiel

-- Basisspiel, gui/game_bar/game_bar_widgets.tl
local scriptEntity = api.engine.system.gameScriptSystem.getEntityForGameScript("::/game_mechanics/game_time/game_time.gs")
local gameScript = api.engine.getComponent(scriptEntity, api.type.ComponentType.GAME_SCRIPT) as Engine.Component.GameScript<GameTimeState>
local mode = gameScript.state.timeOfDayMode

local gameTime : Engine.Component.GameTime = api.engine.getComponent(api.engine.util.getWorld(), api.type.ComponentType.GAME_TIME)
print(gameTime.gameTime, gameTime.timeOfDaySec)

Felder

Name Typ Beschreibung
version integer Version des Zustandsaufbaus (1).
timeOfDayMode GameTimeStateMode Aktueller Tageszeitmodus.
currentTimeOfDayState integer Index der aktuellen Dynamic-Phase (1 = Mittag, 2 = Morgen, 3 = Abend).
timeOfDayTarget integer Tageszeit, auf die der Modus Dynamic zusteuert, in Sekunden seit Mitternacht (0 bis 86.400).
timeOfDayTargetSpeed number Tempo des Tageszeitübergangs im Modus Dynamic, multipliziert mit dt des Updates. SkipPhase setzt es auf 7.000.
nextTimeOfDayChange integer Spielzeit (ms), zu der der Modus Dynamic die nächste Phase wählt.
weatherMode WeatherStateMode Aktueller Wettermodus.
currentWeatherState integer Index des aktuellen Dynamic-Wetters (1 = sonnig, 2 = bewölkt, 3 = regnerisch).
cloudCoverageTarget number Wolkendecke, auf die der Modus Dynamic zusteuert, 0 bis 1.
cloudCoverageTargetSpeed number Tempo des Übergangs der Wolkendecke, multipliziert mit dt des Updates. SkipPhase setzt es auf 0,08.
nextChange integer Spielzeit (ms), zu der der Modus Dynamic das nächste Wetter wählt.

GameTimeConfig

record global base/tealdef/game_mechanics/game_time/game_time.d.tl:31

global record GameTimeConfig

Hinweise

Anfänglicher Tageszeitmodus eines neuen Spiels, in der generischen Ressource ::/game_mechanics/game_time/game_time_config.res. Der Basis-Mod setzt ihn aus den Spieleinstellungen.

Felder

Name Typ Beschreibung
timeOfDayMode GameTimeStateMode Anfänglicher Tageszeitmodus.

WeatherConfig

record global base/tealdef/game_mechanics/game_time/game_time.d.tl:35

global record WeatherConfig

Hinweise

Anfänglicher Wettermodus eines neuen Spiels, in der generischen Ressource ::/game_mechanics/game_time/weather_config.res. Der Basis-Mod setzt ihn aus den Spieleinstellungen.

Felder

Name Typ Beschreibung
weatherMode WeatherStateMode Anfänglicher Wettermodus.

GameTimeGUIState

record global base/tealdef/game_mechanics/game_time/game_time.d.tl:39

global record GameTimeGUIState

Hinweise

GUI-Zustand des Spielzeit-Skripts. Er ist leer, das Skript hat keine GUI-Funktionen.

SetModeCommand

record global base/tealdef/game_mechanics/game_time/game_time.d.tl:43

global record SetModeCommand

Hinweise

Parameter des Script-Events GameTime/SetMode, das den Tageszeitmodus ändert.

Beispiel

-- Basisspiel, gui/game_bar/game_bar_widgets.tl
api.cmd.sendCommand(api.cmd.makeScriptingSendEventCmd("", "GameTime", "SetMode", { mode = "Dynamic" }))

Felder

Name Typ Beschreibung
mode GameTimeStateMode Neuer Tageszeitmodus.

SetWeatherModeCommand

record global base/tealdef/game_mechanics/game_time/game_time.d.tl:47

global record SetWeatherModeCommand

Hinweise

Parameter des Script-Events CloudCoverage/SetMode, das den Wettermodus ändert.

Beispiel

-- Basisspiel, gui/game_bar/game_bar_widgets.tl
api.cmd.sendCommand(api.cmd.makeScriptingSendEventCmd("", "CloudCoverage", "SetMode", { weatherMode = "Constant" }))

Felder

Name Typ Beschreibung
weatherMode WeatherStateMode Neuer Wettermodus.