tool_react_util¶
Quelle: base/tealdef/gui/main/tool_react_util.d.tl
Hinweise
Hilfsfunktionen für Werkzeuge des Werkzeug-Stacks (gameCtx.toolStack): ein Werkzeug
registrieren, das ein Fenster öffnet, solange es aktiv ist, und delegierende Werkzeuge, die
über React-Events auf den Stack kommen.
ToolReactUtil¶
record global base/tealdef/gui/main/tool_react_util.d.tl:3
global record ToolReactUtil
Laden: local tool_react_util = ug_require "::/gui/main/tool_react_util.tl" as ToolReactUtil
Hinweise
Hilfsfunktionen zum Registrieren von Werkzeugen.
Funktionen
registerToolWithWindow<TP is IToolParam, WP is IToolWindowParam<TP>>(toolName : string, windowId : string, windowRecipe : Recipe<WP>, getDebugString? : (function(toolParam : TP) : string)) : ReactToolDefinition<TP> base/tealdef/gui/main/tool_react_util.d.tl:24
Aufruf: tool_react_util.registerToolWithWindow(…)
Hinweise
Registriert ein Werkzeug, das ein einzelnes Fenster zeigt, solange es auf dem Werkzeug-Stack liegt.
| Parameter | Typ | Beschreibung |
|---|---|---|
toolName |
string |
Name des Werkzeugs. |
windowId |
string |
GUI-ID des Fensters; es ist ausgeblendet, solange das Werkzeug zurückgestellt ist. |
windowRecipe |
Recipe<WP> |
Recipe des Fensters; es bekommt einen IToolWindowParam. |
getDebugString? |
(function(toolParam : TP) : string) |
Optional; gibt eine Debug-Beschreibung des Werkzeug-Parameters zurück. |
Rückgabe ReactToolDefinition<TP>: Die Werkzeugdefinition, die du mit gameCtx.toolStack:get():getApi().push(tool, key, param) auf den Stack legst.
Beispiel
-- aus music_player.tl
local musicPlayerWindowId = "musicPlayerWindow"
local MusicPlayerWindow = react.RegisterWrapperRecipe("MusicPlayerWindow", builtin.Window, function(params)
return builtin.Window{
title = _("Music Player"),
closable = true,
onClose = params.onClose,
content = MusicPlayer(params.payload),
id = musicPlayerWindowId,
}
end)
local MusicPlayerTool = tool_react_util.registerToolWithWindow("MusicPlayer", musicPlayerWindowId, MusicPlayerWindow)
-- game_bar.tl:
getToolStackApi(gameCtx).push(MusicPlayerTool, nil, {gameCtx = gameCtx})
Im Basisspiel verwendet: 5-mal in 5 Dateien
base/content/game_mechanics/game_mechanics/company/company.tl:965
local CompanyTool = tool_react_util.registerToolWithWindow("Company", companyWindowId, CompanyWindow, getDebugString)
base/content/game_mechanics/game_mechanics/finance/account.tl:162
local FinanceTool = tool_react_util.registerToolWithWindow("Finances", financeWindowId, FinancesWindow, getDebugString)
base/content/game_mechanics/game_mechanics/notifications/gui/notification_log.tl:652
local NotificationLogTool = tool_react_util.registerToolWithWindow("NotificationLog", notificationLogWindowId, NotificationLogWindow)
base/content/gui/gui/game_bar/game_bar_widgets.tl:835
game_bar_widgets.CalendarEditorTool = tool_react_util.registerToolWithWindow("CalendarEditor", calendarEditorWindowId, CalendarEditorWindow)
base/content/gui/gui/music_player/music_player.tl:285
registerVariantToolWithWindow<TP is IToolParam, WP is IToolWindowParam<TP>>(toolName : string, windowId : string, windowRecipe : Recipe<WP>, getActiveVariant : (function(toolParam : TP) : string), getDebugString? : (function(toolParam : TP) : string)) : ReactToolDefinition<TP> base/tealdef/gui/main/tool_react_util.d.tl:25
Aufruf: tool_react_util.registerVariantToolWithWindow(…)
Hinweise
Wie registerToolWithWindow, für ein Werkzeug mit Varianten; getActiveVariant liefert die aktive Variante zu einem Werkzeug-Parameter.
Rückgabe ReactToolDefinition<TP>
registerVariantToolWithPersistentWindows<TP is IToolParam, WP is IToolWindowParam<TP>>(toolName : string, getWindowId : (function(TP) : string), windowRecipe : Recipe<WP>, getActiveVariant : (function(toolParam : TP) : string), getDebugString? : (function(toolParam : TP) : string)) : ReactToolDefinition<TP> base/tealdef/gui/main/tool_react_util.d.tl:26
Aufruf: tool_react_util.registerVariantToolWithPersistentWindows(…)
Hinweise
Wie registerVariantToolWithWindow, aber mit einem Fenster je Fenster-ID (aus getWindowId). Nimmt man das Werkzeug vom Stack, wird das Fenster nur ausgeblendet und bleibt bestehen.
Rückgabe ReactToolDefinition<TP>
same as registerToolWithWindow, but without the call to react.RegisterTool()
prepareDefaultToolWithWindowDefinition<TP is ToolReactUtil.IToolParam, WP is ToolReactUtil.IToolWindowParam<TP>>(toolName : string, windowId : string, windowRecipe : Recipe<WP>, getActiveVariant? : (function(toolParam : TP) : string), getDebugString? : (function(toolParam : TP) : string), getWindowIdIfPersistent? : (function(TP) : string)) : ReactToolDefinition<TP> base/tealdef/gui/main/tool_react_util.d.tl:29
Aufruf: tool_react_util.prepareDefaultToolWithWindowDefinition(…)
Die Spieldateien enthalten hierzu noch keine Beschreibung.
Rückgabe ReactToolDefinition<TP>
registerDelegatingTool<PublicParam, InternalParam>(def : ReactToolDefinition<InternalParam>) : DelegatingToolDefinition<PublicParam, InternalParam> base/tealdef/gui/main/tool_react_util.d.tl:48
Aufruf: tool_react_util.registerDelegatingTool(…)
Hinweise
Registriert def als Werkzeug und verpackt es als DelegatingToolDefinition.
Rückgabe DelegatingToolDefinition<PublicParam, InternalParam>
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/gui/gui/layers/layers_button_ridge.tl:120
local LayerTool : ToolReactUtil.DelegatingToolDefinition<LayersButtonRidge.LayerToolParam, LayerToolParamInternal> = tool_react_util.registerDelegatingTool{
base/content/gui/gui/main/selector_react_util.tl:373
firePushToolEvent<TP, DP>(evtParam : PushToolEventParam<TP, DP>) base/tealdef/gui/main/tool_react_util.d.tl:50
Aufruf: tool_react_util.firePushToolEvent(…)
Hinweise
Löst das React-Event PushTool für ein delegierendes Werkzeug aus.
firePopToolEvent<TP, DP>(evtParam : PopToolEventParam<TP, DP>) base/tealdef/gui/main/tool_react_util.d.tl:51
Aufruf: tool_react_util.firePopToolEvent(…)
Hinweise
Löst das React-Event PopTool für ein delegierendes Werkzeug aus.
onPushToolEvent<TP, DP>(tool : DelegatingToolDefinition<TP, DP>, onPush : function(evtParam : ToolReactUtil.PushToolEventParam<TP, DP>)) base/tealdef/gui/main/tool_react_util.d.tl:52
Aufruf: tool_react_util.onPushToolEvent(…)
Hinweise
Hook, der onPush aufruft, wenn PushTool für das angegebene delegierende Werkzeug ausgelöst wird.
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/gui/gui/layers/layers_button_ridge.tl:538
tool_react_util.onPushToolEvent(LayerTool, function(pushEvt : ToolReactUtil.PushToolEventParam<LayersButtonRidge.LayerToolParam, LayerToolParamInternal>)
base/content/gui/gui/main/selector_react_util.tl:284
onPopToolEvent<TP, DP>(tool : DelegatingToolDefinition<TP, DP>, onPop : function(evtParam : ToolReactUtil.PopToolEventParam<TP, DP>)) base/tealdef/gui/main/tool_react_util.d.tl:53
Aufruf: tool_react_util.onPopToolEvent(…)
Hinweise
Hook, der onPop aufruft, wenn PopTool für das angegebene delegierende Werkzeug ausgelöst wird.
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/gui/gui/layers/layers_button_ridge.tl:542
tool_react_util.onPopToolEvent(LayerTool, function(popEvt : ToolReactUtil.PopToolEventParam<LayersButtonRidge.LayerToolParam, LayerToolParamInternal>)
base/content/gui/gui/main/selector_react_util.tl:291
ToolReactUtil.IToolParam¶
interface base/tealdef/gui/main/tool_react_util.d.tl:6
interface IToolParam
input parameters required for most tools
Im Basisspiel verwendet: 16-mal in 8 Dateien
base/content/gui/gui/game_bar/game_bar.tl:13
local MusicPlayerTool = ug_require "/gui/music_player/music_player.tl" as ReactToolDefinition<ToolReactUtil.IToolParam>
base/content/gui/gui/game_bar/game_bar_widgets.tl:6
local MusicPlayerTool = ug_require "/gui/music_player/music_player.tl" as ReactToolDefinition<ToolReactUtil.IToolParam>
base/content/gui/gui/main/game.tl:18
local PauseMenuTool = ug_require "/gui/main/pause_menu.tl" as ReactToolDefinition<ToolReactUtil.IToolParam>
base/content/gui/gui/main/pause_menu.tl:236
local WallClock = react.RegisterRecipe("WallClock", function(_params : ToolReactUtil.IToolParam) : TreeNodeId
base/content/gui/gui/main/tool_react_util.tl:12
function tool_react_util.prepareDefaultToolWithWindowDefinition<TP is ToolReactUtil.IToolParam, WP is ToolReactUtil.IToolWindowParam<TP>>(toolName : string, win
base/content/gui/gui/map_editor/map_editor.tl:25
… und 2 weitere Dateien.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
gameCtx |
GameContext |
Spielkontext; sein Fenster-Container nimmt das Werkzeugfenster auf. |
ToolReactUtil.ToolWindowParamPayload¶
interface base/tealdef/gui/main/tool_react_util.d.tl:11
interface ToolWindowParamPayload<TP is IToolParam>
'output' that can be passed from the windowWrapper recipe to the windowContent recipe
Im Basisspiel verwendet: 9-mal in 8 Dateien
base/content/game_mechanics/game_mechanics/company/company.tl:850
local CompanyWindowContent = react.RegisterRecipe("CompanyWindowContent", function(param : ToolReactUtil.ToolWindowParamPayload<CompanyToolParam>) : TreeNodeId
base/content/game_mechanics/game_mechanics/finance/account.tl:13
local FinanceAccount = react.RegisterRecipe("FinanceAccount", function(param : ToolReactUtil.ToolWindowParamPayload<FinanceToolParam>) : TreeNodeId
base/content/game_mechanics/game_mechanics/notifications/gui/notification_log.tl:205
local NotificationLog = react.RegisterRecipe("NotificationLog", function(param : ToolReactUtil.ToolWindowParamPayload<NotificationLogToolParam>) : TreeNodeId
base/content/gui/gui/game_bar/game_bar_widgets.tl:768
local CalendarEditor = react.RegisterRecipe("CalendarEditor", function(params : ToolReactUtil.ToolWindowParamPayload<GameBarWidgets.CalendarEditorToolParams>) :
base/content/gui/gui/line_vehicle_mgmt/manager_window.tl:5897
function(params : ToolReactUtil.ToolWindowParamPayload<ManagerWindow.ManagerToolParam>) : TreeNodeId
base/content/gui/gui/map_editor/map_editor.tl:31
… und 2 weitere Dateien.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
toolParam |
TP |
Der Parameter, mit dem das Werkzeug auf den Stack gelegt wurde. |
Funktionen
setActionFn(actionFn : (function() : TreeNodeId), key2? : string) base/tealdef/gui/main/tool_react_util.d.tl:13
Hinweise
Setzt die Action-Funktion des Werkzeugs (den Action-Deskriptor, der gilt, solange das Werkzeug aktiv ist), zum Beispiel aus SelectorReactUtil.makeDefaultSelectorAction.
setVariantOverride(variant : string) base/tealdef/gui/main/tool_react_util.d.tl:15
Hinweise
Überschreibt die aktive Variante des Werkzeugs.
ToolReactUtil.IToolWindowParam¶
interface base/tealdef/gui/main/tool_react_util.d.tl:19
interface IToolWindowParam<TP>
parameters requires to be passed into the window
Im Basisspiel verwendet: 19-mal in 11 Dateien
base/content/game_mechanics/game_mechanics/company/company.tl:932
local CompanyWindow = react.RegisterWrapperRecipe("CompanyWindow", builtin.Window, function(param : ToolReactUtil.IToolWindowParam<CompanyToolParam>) : TreeNode
base/content/game_mechanics/game_mechanics/finance/account.tl:131
local FinancesWindow = react.RegisterWrapperRecipe("FinancesWindow", builtin.Window, function(params : ToolReactUtil.IToolWindowParam<FinanceToolParam>) : TreeN
base/content/game_mechanics/game_mechanics/notifications/gui/notification_log.tl:581
local NotificationLogWindow = react.RegisterWrapperRecipe("NotificationLogWindow", builtin.Window, function(params : ToolReactUtil.IToolWindowParam<Notification
base/content/gui/gui/game_bar/game_bar_widgets.tl:825
local CalendarEditorWindow = react.RegisterWrapperRecipe("CalendarEditorWindow", builtin.Window, function(params : ToolReactUtil.IToolWindowParam<GameBarWidgets
base/content/gui/gui/layers/layers_button_ridge.tl:22
local record LayerToolWindowParam is ToolReactUtil.IToolWindowParam<LayersButtonRidge.LayerToolParam>
base/content/gui/gui/line_vehicle_mgmt/manager_window.tl:8214
… und 5 weitere Dateien.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
payload |
ToolWindowParamPayload<TP> |
Werkzeug-Parameter und Callbacks des Werkzeugs, zur Weitergabe an den Fensterinhalt. |
Funktionen
onClose() base/tealdef/gui/main/tool_react_util.d.tl:20
Hinweise
Schließt das Fenster, indem es das Werkzeug vom Stack nimmt.
ToolReactUtil.DelegatingToolDefinition¶
interface base/tealdef/gui/main/tool_react_util.d.tl:32
interface DelegatingToolDefinition<PublicParam, InternalParam>
Hinweise
Ein Werkzeug, das über React-Events auf den Stack kommt und wieder herunter, nicht direkt. Das Recipe, das die Events behandelt, legt das eigentliche Werkzeug delegate auf den Stack.
Im Basisspiel verwendet: 4-mal in 2 Dateien
base/content/gui/gui/layers/layers_button_ridge.tl:120
local LayerTool : ToolReactUtil.DelegatingToolDefinition<LayersButtonRidge.LayerToolParam, LayerToolParamInternal> = tool_react_util.registerDelegatingTool{
base/content/gui/gui/main/tool_react_util.tl:119
Felder
| Name | Typ | Beschreibung |
|---|---|---|
delegate |
ReactToolDefinition<InternalParam> |
Das registrierte Werkzeug, das tatsächlich auf den Werkzeug-Stack kommt. |
ToolReactUtil.PushToolEventParam¶
record base/tealdef/gui/main/tool_react_util.d.tl:36
record PushToolEventParam<TP, DP>
Hinweise
Parameter von firePushToolEvent und von Handlern für onPushToolEvent.
Im Basisspiel verwendet: 5-mal in 3 Dateien
base/content/gui/gui/layers/layers_button_ridge.tl:538
tool_react_util.onPushToolEvent(LayerTool, function(pushEvt : ToolReactUtil.PushToolEventParam<LayersButtonRidge.LayerToolParam, LayerToolParamInternal>)
base/content/gui/gui/main/selector_react_util.tl:284
tool_react_util.onPushToolEvent(selector_react_util.InspectorTool, function(evtParam : ToolReactUtil.PushToolEventParam<SelectorReactUtil.InspectorToolParam, Se
base/content/gui/gui/main/tool_react_util.tl:101
Felder
| Name | Typ | Beschreibung |
|---|---|---|
tool |
DelegatingToolDefinition<TP, DP> |
Das delegierende Werkzeug, das auf den Stack soll. |
key |
string |
Schlüssel der Werkzeug-Instanz. |
param |
TP |
Öffentlicher Werkzeug-Parameter. |
allowStacking |
boolean |
Ob das Werkzeug über das aktuelle gestapelt werden darf. |
ToolReactUtil.PopToolEventParam¶
record base/tealdef/gui/main/tool_react_util.d.tl:42
record PopToolEventParam<TP, DP>
Hinweise
Parameter von firePopToolEvent und von Handlern für onPopToolEvent.
Im Basisspiel verwendet: 5-mal in 3 Dateien
base/content/gui/gui/layers/layers_button_ridge.tl:542
tool_react_util.onPopToolEvent(LayerTool, function(popEvt : ToolReactUtil.PopToolEventParam<LayersButtonRidge.LayerToolParam, LayerToolParamInternal>)
base/content/gui/gui/main/selector_react_util.tl:291
tool_react_util.onPopToolEvent(selector_react_util.InspectorTool, function(evtParam : ToolReactUtil.PopToolEventParam<SelectorReactUtil.InspectorToolParam, Sele
base/content/gui/gui/main/tool_react_util.tl:111
Felder
| Name | Typ | Beschreibung |
|---|---|---|
tool |
DelegatingToolDefinition<TP, DP> |
Das delegierende Werkzeug, das vom Stack soll. |
key |
string |
Schlüssel der Werkzeug-Instanz. |