Zum Inhalt

gui_react_util

Quelle: base/tealdef/gui/main/gui_react_util.d.tl

Hinweise

Allgemeine React-Helfer der Spieloberfläche: Icon/Label-Anzeigen (das Icon mit einer Zahl aus den HUD-Icons und Infofenstern), kleine Layout-Abkürzungen, Helfer für Farbkontraste, Wrapper für Fokus und Eingabeaktionen, das Emote-Icon und usePlugins, das die Plugins eines Erweiterungspunkts rendert. Du lädst es mit ug_require "/gui/main/gui_react_util.tl".

GuiReactUtil

record global base/tealdef/gui/main/gui_react_util.d.tl:3

global record GuiReactUtil

Laden: local gui_react_util = ug_require "::/gui/main/gui_react_util.tl" as GuiReactUtil

Hinweise

Allgemeine React-Helfer (Anzeigen, Layout-Abkürzungen, Fokusbereiche, Rendern von Plugins).

Felder

Name Typ Beschreibung
IconLabelIndicator Recipe<IconLabelIndicatorParams> Recipe-Fassung von makeContentLabelIndictator. Zeigt ein Icon mit Label, optional einem Anzeige-Icon und optional einem Overlay. 40-mal im Basisspiel verwendet
FocusNumberInputField Recipe<FocusInputFieldParam<number>> deprecated, use DoubleSpinBox instead 1-mal im Basisspiel verwendet
FocusTextInputField Recipe<FocusInputFieldParam<string>> deprecated, use TextInputField with "displayOnly" instead 4-mal im Basisspiel verwendet
FocusTraversalScope Recipe<FocusTraversalScopeParam> Gibt layout zurück und registriert dafür die Navigations-Eingabeaktionen (IA_NAV_LEFT, IA_NAV_RIGHT, IA_NAV_UP, IA_NAV_DOWN) als Fokuswechsel. 8-mal im Basisspiel verwendet
InputActionComponent Recipe<InputActionComponentParam> Gibt layout zurück und registriert dafür mit react.useInputAction die angegebenen Handler oder Weiterleitungen für Eingabeaktionen. 1-mal im Basisspiel verwendet
EmoteIcon Recipe<EmoteIconParam> Zeigt ein fröhliches oder unzufriedenes Gesicht, z. B. für die Zufriedenheit von Passagieren oder die Qualität von Gütern. 6-mal im Basisspiel verwendet
Clipper Recipe<ClipperParam> Gibt layout mit eingeschaltetem Beschneiden des Inhalts zurück (react.setClipContent(true)). 6-mal im Basisspiel verwendet

Funktionen

getMouseCursorInteger(mouseCursor : GuiReactUtil.MouseCursor) : integer base/tealdef/gui/main/gui_react_util.d.tl:64

Aufruf: gui_react_util.getMouseCursorInteger(…)

Hinweise

Wandelt einen MouseCursor-Namen in die ganzzahlige Zeiger-ID um.

Parameter Typ Beschreibung
mouseCursor GuiReactUtil.MouseCursor Name des Zeigers. Bei nil kommt 0 (Default) zurück.

Rückgabe integer: Ganzzahlige Zeiger-ID, z. B. für mouseCursorOverride einer Komponente.

Beispiel

-- aus manager_hud_util.tl
mouseCursorOverride = gui_react_util.getMouseCursorInteger("Default"),
Im Basisspiel verwendet: 42-mal in 6 Dateien

base/content/gui/gui/construction/construction_react_util.tl:1484

mouseCursor = gui_react_util.getMouseCursorInteger("Prospection"),
base/content/gui/gui/construction/tools/industry_greenify_tool.script.tl:46
mouseCursor = gui_react_util.getMouseCursorInteger("CompanyMechanics"),
base/content/gui/gui/construction/tools/marketing_campaign_tool.script.tl:54
mouseCursor = gui_react_util.getMouseCursorInteger("CompanyMechanics"),
base/content/gui/gui/line_vehicle_mgmt/manager_hud_util.tl:60
mouseCursorOverride = gui_react_util.getMouseCursorInteger("Default"),
base/content/gui/gui/line_vehicle_mgmt/manager_window.tl:254
ctx.setMouseCursor(gui_react_util.getMouseCursorInteger("Default"))
base/content/gui/gui/main/game.tl:424
mouseCursorOverride = gui_react_util.getMouseCursorInteger("Default"),

isHudLabelMode(labelMode : LabelMode) : boolean base/tealdef/gui/main/gui_react_util.d.tl:115

Aufruf: gui_react_util.isHudLabelMode(…)

Hinweise

Sagt, ob ein Label-Modus einer der HUD-Modi ist.

Rückgabe boolean: true für HudIconMain und HudIconLayer, sonst false.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/main/cargo_react_util.tl:307

getTendency = params.showTendency and not gui_react_util.isHudLabelMode(params.mode),

makeContentLabelIndictator(params : IconLabelIndicatorParams) : TreeNodeId base/tealdef/gui/main/gui_react_util.d.tl:119

Aufruf: gui_react_util.makeContentLabelIndictator(…)

Hinweise

Baut den Knoten einer Icon/Label-Anzeige, also das Icon mit einer Zahl aus HUD-Icons, Güterlisten und Infofenstern.

Rückgabe TreeNodeId: Der Knoten der Anzeige.

Details

Das Icon ist ein EmoteIcon, wenn useEmoteWithSatisfaction gesetzt ist, sonst eine oder mehrere Bildansichten aus iconPath. In den Spieldateien ist der Name Indictator geschrieben.

Beispiel

-- aus hud_icon_toolbox.tl
gui_react_util.makeContentLabelIndictator{
    iconPath = cargo_util.getPassengerCargoIcon(),
    label = lang_util.formatInt(happiness.totalWaiting),
    labelFontColor = fontColor,
    labelMode = "HudIconMain",
    shippingState = "WaitingPassenger",
}
Im Basisspiel verwendet: 5-mal in 2 Dateien

base/content/gui/gui/main/cargo_react_util.tl:243

children[#children + 1] = gui_react_util.makeContentLabelIndictator({
base/content/gui/gui/main/hud_icon_toolbox.tl:65
table.insert(subIcons, gui_react_util.makeContentLabelIndictator({

integer2TextLayout(value : integer, tag? : string) : TreeNodeId base/tealdef/gui/main/gui_react_util.d.tl:121

Aufruf: gui_react_util.integer2TextLayout(…)

Hinweise

Baut eine horizontale Box mit einer Textansicht, die value formatiert mit lang_util.formatInt zeigt.

Parameter Typ Beschreibung
value integer Anzuzeigende Zahl.
tag? string Wert für meta.tag der Textansicht.

Rückgabe TreeNodeId: Der Layout-Knoten. Die Textansicht ist fokussierbar (forceFocusable = true) und verwendet font-scale-body.

Im Basisspiel verwendet: 4-mal in 3 Dateien

base/content/gui/gui/line_vehicle_mgmt/manager_window.tl:3998

gui_react_util.integer2TextLayout(rateState:old(), "menu.statistics.line.rateCell"),
base/content/gui/gui/statistics/statistic_lines.tl:229
return gui_react_util.integer2TextLayout(rateState:old(), "menu.statistics.line.rateCell" )
base/content/gui/gui/statistics/statistic_towns.tl:89
return gui_react_util.integer2TextLayout(publicTransportState:old())

group(TreeNodeId) : TreeNodeId base/tealdef/gui/main/gui_react_util.d.tl:133

Aufruf: gui_react_util.group(…)

Hinweise

Packt einen Knoten in ein horizontales builtin.BoxLayout.

Rückgabe TreeNodeId: Der Knoten des Box-Layouts.

textColorForColor(color : Vec4f) : Vec4f base/tealdef/gui/main/gui_react_util.d.tl:134

Aufruf: gui_react_util.textColorForColor(…)

Hinweise

Gibt eine Textfarbe zurück, die auf der angegebenen Hintergrundfarbe genug Kontrast hat.

Rückgabe Vec4f: Bei hellen Farben (RGB-Mittelwert über 0.5) die dunkelste neutrale Farbe aus default_colors.gres, sonst die hellste neutrale Farbe.

Im Basisspiel verwendet: 4-mal in 2 Dateien

base/content/gui/gui/line_vehicle_mgmt/line_manager_panel.tl:350

color = gui_react_util.textColorForColor(api.type.Vec4f.new(bubbleColor, 1.0)),
base/content/gui/gui/main/cargo_react_util.tl:762
color = gui_react_util.textColorForColor(color)

foregroundColorClassForColor(color : Vec4f) : GuiReactUtil.ForegroundContrast base/tealdef/gui/main/gui_react_util.d.tl:135

Aufruf: gui_react_util.foregroundColorClassForColor(…)

Hinweise

Sagt, ob ein dunkler oder heller Vordergrund auf die angegebene Farbe passt.

Rückgabe GuiReactUtil.ForegroundContrast: Dark, wenn der RGB-Mittelwert über 0.5 liegt, sonst Light.

Details

Der Linien-Manager übersetzt das Ergebnis in eigene Style-Klassen für Text auf Linienfarben.

Im Basisspiel verwendet: 8-mal in 1 Datei

base/content/gui/gui/line_vehicle_mgmt/manager_hud_util.tl:91

.. contrast2FGClass[gui_react_util.foregroundColorClassForColor(lineColor)]

stylingHoverClassForColor(color : Vec4f) : GuiReactUtil.ForegroundContrast base/tealdef/gui/main/gui_react_util.d.tl:136

Aufruf: gui_react_util.stylingHoverClassForColor(…)

Hinweise

Dieselbe Prüfung wie foregroundColorClassForColor, gedacht für die Wahl von Hover-Style-Klassen.

Rückgabe GuiReactUtil.ForegroundContrast: Dark, wenn der RGB-Mittelwert über 0.5 liegt, sonst Light.

Im Basisspiel verwendet: 4-mal in 1 Datei

base/content/gui/gui/line_vehicle_mgmt/manager_hud_util.tl:92

.. ", " .. contrast2HoverClass[gui_react_util.stylingHoverClassForColor(lineColor)],

makeHorizontalSpacer() : TreeNodeId base/tealdef/gui/main/gui_react_util.d.tl:137

Aufruf: gui_react_util.makeHorizontalSpacer(…)

Hinweise

Baut eine leere Komponente mit der Style-Klasse horizontal-spacer.

Rückgabe TreeNodeId

Im Basisspiel verwendet: 121-mal in 33 Dateien

base/content/game_mechanics/game_mechanics/finance/finances_charts.tl:162

gui_react_util.makeHorizontalSpacer(),
base/content/game_mechanics/game_mechanics/notifications/gui/notification_log.tl:527
gui_react_util.makeHorizontalSpacer(),
base/content/game_mechanics/game_mechanics/towns/town_react_util.tl:77
gui_react_util.makeHorizontalSpacer(),
base/content/gui/gui/construction/construction.tl:879
gui_react_util.makeHorizontalSpacer(),
base/content/gui/gui/entity_window/bridge_and_tunnel.tl:172
gui_react_util.makeHorizontalSpacer(),
base/content/gui/gui/entity_window/double_slip_switch.tl:602
gui_react_util.makeHorizontalSpacer(),
… und 27 weitere Dateien.

makeVerticalSpacer() : TreeNodeId base/tealdef/gui/main/gui_react_util.d.tl:138

Aufruf: gui_react_util.makeVerticalSpacer(…)

Hinweise

Baut eine leere Komponente mit der Style-Klasse vertical-spacer.

Rückgabe TreeNodeId

Im Basisspiel verwendet: 38-mal in 16 Dateien

base/content/game_mechanics/game_mechanics/company/company.tl:243

gui_react_util.makeVerticalSpacer(),
base/content/game_mechanics/game_mechanics/finance/finances_loan_gui.tl:354
gui_react_util.makeVerticalSpacer(),
base/content/game_mechanics/game_mechanics/towns/town_react_util.tl:971
table.insert(children, gui_react_util.makeVerticalSpacer())
base/content/gui/gui/construction/construction_desc_react_util.tl:933
gui_react_util.makeVerticalSpacer(),
base/content/gui/gui/entity_window/town/town.tl:753
gui_react_util.makeVerticalSpacer(),
base/content/gui/gui/line_vehicle_mgmt/manager_window.tl:3442
gui_react_util.makeVerticalSpacer(),
… und 10 weitere Dateien.

makeHorizontalBox({TreeNodeId}) : TreeNodeId base/tealdef/gui/main/gui_react_util.d.tl:139

Aufruf: gui_react_util.makeHorizontalBox(…)

Hinweise

Baut ein horizontales builtin.BoxLayout mit den angegebenen Kindern.

Rückgabe TreeNodeId

Im Basisspiel verwendet: 72-mal in 8 Dateien

base/content/gui/gui/construction/construction.tl:878

#children == 0 and refSearchText:get() ~= nil and #refSearchText:get() > 0 and gui_react_util.makeHorizontalBox {
base/content/gui/gui/line_vehicle_mgmt/cargofilter_window.tl:203
return gui_react_util.makeHorizontalBox({
base/content/gui/gui/main/cargo_react_util.tl:541
layout = gui_react_util.makeHorizontalBox(inputChildren),
base/content/gui/gui/menu/main_page.tl:28
return gui_react_util.makeHorizontalBox({
base/content/gui/gui/menu/mod_manager_react_util.tl:629
content = gui_react_util.makeHorizontalBox{
base/content/gui/gui/menu/mod_selector_page.tl:292
gui_react_util.makeHorizontalBox {
… und 2 weitere Dateien.

makeVerticalBox({TreeNodeId}) : TreeNodeId base/tealdef/gui/main/gui_react_util.d.tl:140

Aufruf: gui_react_util.makeVerticalBox(…)

Hinweise

Baut ein vertikales builtin.BoxLayout mit den angegebenen Kindern.

Rückgabe TreeNodeId

Im Basisspiel verwendet: 37-mal in 7 Dateien

base/content/gui/gui/construction/construction.tl:3274

layout = gui_react_util.makeVerticalBox(children)
base/content/gui/gui/main/collapsible_checkbox_list.tl:179
return gui_react_util.makeVerticalBox{
base/content/gui/gui/menu/load_game_page.tl:196
layout = gui_react_util.makeVerticalBox{
base/content/gui/gui/menu/mod_manager_react_util.tl:607
return gui_react_util.makeVerticalBox{
base/content/gui/gui/menu/new_game_page.tl:206
layout = gui_react_util.makeVerticalBox{
base/content/gui/gui/menu/paradox_react_util.tl:259
return gui_react_util.makeVerticalBox{
… und 1 weitere Dateien.

transformSetUnlessEqual<T>(state : ReactStateT<T>, newValue : T, equals? : (function(T, T) : boolean)) base/tealdef/gui/main/gui_react_util.d.tl:146

Aufruf: gui_react_util.transformSetUnlessEqual(…)

shortcut to state:transform() with an equals call for early-out

Parameter Typ Beschreibung
state ReactStateT<T> The react state
newValue T The desired value
equals? (function(T, T) : boolean) Optional comparison function (defaults to table_util.deepEquals

usePlugins<ParamType>(ExtensionPoint<ParamType>, detail? : PluginScopeConfig, recipeParam : ParamType) : {TreeNodeId} base/tealdef/gui/main/gui_react_util.d.tl:196

Aufruf: gui_react_util.usePlugins(…)

Hinweise

Baut die Knoten aller Plugins, die für einen Erweiterungspunkt registriert sind, in ihrer Reihenfolge.

Parameter Typ Beschreibung
#1 ExtensionPoint<ParamType> Der Erweiterungspunkt (registriert mit react.RegisterExtensionPoint...).
detail? PluginScopeConfig Optionale Refs auf das erste und letzte Plugin sowie feste Knoten zum Einfügen.
recipeParam ParamType Parameter, die jedes Plugin-Recipe bekommt.

Rückgabe {TreeNodeId}: Liste der Plugin-Knoten, eventuell leer.

Details

Ruf es innerhalb eines Recipes auf und setz die zurückgegebenen Knoten in ein Layout. Plugins mit einer condition-Funktion werden nur gebaut, wenn die Bedingung für die Parameter des Recipes true liefert. Jedes Plugin-Recipe wird mit recipeParam aufgerufen (für Erweiterungspunkte mit Parametern). Mit detail.insertHardcoded werden feste Knoten des Host-Recipes nach ihrem Reihenfolgewert zwischen die Plugins einsortiert.

Beispiel

-- aus station_group.tl
local pluginWidgets = gui_react_util.usePlugins(station_group_eow.StationGroupEowExtensionPoint, nil, extensionParams)
Im Basisspiel verwendet: 18-mal in 17 Dateien

base/content/gui/gui/entity_window/animal/animal.tl:44

local widgets = gui_react_util.usePlugins(animal_eow.AnimalEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/empty_construction/empty_construction.tl:37
local widgets = gui_react_util.usePlugins(empty_construction_eow.EmptyConstructionEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/fun_elements/fun_elements.tl:43
local widgets = gui_react_util.usePlugins(fun_elements_eow.FunElementsEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/industry/industry.tl:300
widgets = table_util.concatenate(widgets, gui_react_util.usePlugins(industry_eow.IndustryEowExtensionPoint, { firstRef = initialFocusRef, }, extensionParams))
base/content/gui/gui/entity_window/line/line.tl:132
local pluginWidgets = gui_react_util.usePlugins(line_eow.LineEowExtensionPoint, {lastRef = lastInScrollAreaRef}, extensionParams)
base/content/gui/gui/entity_window/maintenance_station/maintenance_station.tl:76
local pluginWidgets = gui_react_util.usePlugins(maintenance_station_eow.MaintenanceStationEowExtensionPoint, {lastRef = lastInScrollAreaRef}, extensionParams)
… und 11 weitere Dateien.

usePlugins<WrappedRecipe, ParamType>(WrapperExtensionPoint<WrappedRecipe, ParamType>, detail? : PluginScopeConfig, recipeParam : ParamType) : {TreeNodeId} base/tealdef/gui/main/gui_react_util.d.tl:197

Aufruf: gui_react_util.usePlugins(…)

Hinweise

Baut die Knoten aller Plugins, die für einen Erweiterungspunkt registriert sind, in ihrer Reihenfolge.

Parameter Typ Beschreibung
#1 WrapperExtensionPoint<WrappedRecipe, ParamType> Der Erweiterungspunkt (registriert mit react.RegisterExtensionPoint...).
detail? PluginScopeConfig Optionale Refs auf das erste und letzte Plugin sowie feste Knoten zum Einfügen.
recipeParam ParamType Parameter, die jedes Plugin-Recipe bekommt.

Rückgabe {TreeNodeId}: Liste der Plugin-Knoten, eventuell leer.

Details

Ruf es innerhalb eines Recipes auf und setz die zurückgegebenen Knoten in ein Layout. Plugins mit einer condition-Funktion werden nur gebaut, wenn die Bedingung für die Parameter des Recipes true liefert. Jedes Plugin-Recipe wird mit recipeParam aufgerufen (für Erweiterungspunkte mit Parametern). Mit detail.insertHardcoded werden feste Knoten des Host-Recipes nach ihrem Reihenfolgewert zwischen die Plugins einsortiert.

Beispiel

-- aus station_group.tl
local pluginWidgets = gui_react_util.usePlugins(station_group_eow.StationGroupEowExtensionPoint, nil, extensionParams)
Im Basisspiel verwendet: 18-mal in 17 Dateien

base/content/gui/gui/entity_window/animal/animal.tl:44

local widgets = gui_react_util.usePlugins(animal_eow.AnimalEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/empty_construction/empty_construction.tl:37
local widgets = gui_react_util.usePlugins(empty_construction_eow.EmptyConstructionEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/fun_elements/fun_elements.tl:43
local widgets = gui_react_util.usePlugins(fun_elements_eow.FunElementsEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/industry/industry.tl:300
widgets = table_util.concatenate(widgets, gui_react_util.usePlugins(industry_eow.IndustryEowExtensionPoint, { firstRef = initialFocusRef, }, extensionParams))
base/content/gui/gui/entity_window/line/line.tl:132
local pluginWidgets = gui_react_util.usePlugins(line_eow.LineEowExtensionPoint, {lastRef = lastInScrollAreaRef}, extensionParams)
base/content/gui/gui/entity_window/maintenance_station/maintenance_station.tl:76
local pluginWidgets = gui_react_util.usePlugins(maintenance_station_eow.MaintenanceStationEowExtensionPoint, {lastRef = lastInScrollAreaRef}, extensionParams)
… und 11 weitere Dateien.

usePlugins(ExtensionPoint0, detail? : PluginScopeConfig) : {TreeNodeId} base/tealdef/gui/main/gui_react_util.d.tl:198

Aufruf: gui_react_util.usePlugins(…)

Hinweise

Baut die Knoten aller Plugins, die für einen Erweiterungspunkt registriert sind, in ihrer Reihenfolge.

Parameter Typ Beschreibung
#1 ExtensionPoint0 Der Erweiterungspunkt (registriert mit react.RegisterExtensionPoint...).
detail? PluginScopeConfig Optionale Refs auf das erste und letzte Plugin sowie feste Knoten zum Einfügen.

Rückgabe {TreeNodeId}: Liste der Plugin-Knoten, eventuell leer.

Details

Ruf es innerhalb eines Recipes auf und setz die zurückgegebenen Knoten in ein Layout. Plugins mit einer condition-Funktion werden nur gebaut, wenn die Bedingung für die Parameter des Recipes true liefert. Jedes Plugin-Recipe wird mit recipeParam aufgerufen (für Erweiterungspunkte mit Parametern). Mit detail.insertHardcoded werden feste Knoten des Host-Recipes nach ihrem Reihenfolgewert zwischen die Plugins einsortiert.

Beispiel

-- aus station_group.tl
local pluginWidgets = gui_react_util.usePlugins(station_group_eow.StationGroupEowExtensionPoint, nil, extensionParams)
Im Basisspiel verwendet: 18-mal in 17 Dateien

base/content/gui/gui/entity_window/animal/animal.tl:44

local widgets = gui_react_util.usePlugins(animal_eow.AnimalEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/empty_construction/empty_construction.tl:37
local widgets = gui_react_util.usePlugins(empty_construction_eow.EmptyConstructionEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/fun_elements/fun_elements.tl:43
local widgets = gui_react_util.usePlugins(fun_elements_eow.FunElementsEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/industry/industry.tl:300
widgets = table_util.concatenate(widgets, gui_react_util.usePlugins(industry_eow.IndustryEowExtensionPoint, { firstRef = initialFocusRef, }, extensionParams))
base/content/gui/gui/entity_window/line/line.tl:132
local pluginWidgets = gui_react_util.usePlugins(line_eow.LineEowExtensionPoint, {lastRef = lastInScrollAreaRef}, extensionParams)
base/content/gui/gui/entity_window/maintenance_station/maintenance_station.tl:76
local pluginWidgets = gui_react_util.usePlugins(maintenance_station_eow.MaintenanceStationEowExtensionPoint, {lastRef = lastInScrollAreaRef}, extensionParams)
… und 11 weitere Dateien.

usePlugins<WrappedRecipe>(WrapperExtensionPoint0<WrappedRecipe>, detail? : PluginScopeConfig) : {TreeNodeId} base/tealdef/gui/main/gui_react_util.d.tl:199

Aufruf: gui_react_util.usePlugins(…)

Hinweise

Baut die Knoten aller Plugins, die für einen Erweiterungspunkt registriert sind, in ihrer Reihenfolge.

Parameter Typ Beschreibung
#1 WrapperExtensionPoint0<WrappedRecipe> Der Erweiterungspunkt (registriert mit react.RegisterExtensionPoint...).
detail? PluginScopeConfig Optionale Refs auf das erste und letzte Plugin sowie feste Knoten zum Einfügen.

Rückgabe {TreeNodeId}: Liste der Plugin-Knoten, eventuell leer.

Details

Ruf es innerhalb eines Recipes auf und setz die zurückgegebenen Knoten in ein Layout. Plugins mit einer condition-Funktion werden nur gebaut, wenn die Bedingung für die Parameter des Recipes true liefert. Jedes Plugin-Recipe wird mit recipeParam aufgerufen (für Erweiterungspunkte mit Parametern). Mit detail.insertHardcoded werden feste Knoten des Host-Recipes nach ihrem Reihenfolgewert zwischen die Plugins einsortiert.

Beispiel

-- aus station_group.tl
local pluginWidgets = gui_react_util.usePlugins(station_group_eow.StationGroupEowExtensionPoint, nil, extensionParams)
Im Basisspiel verwendet: 18-mal in 17 Dateien

base/content/gui/gui/entity_window/animal/animal.tl:44

local widgets = gui_react_util.usePlugins(animal_eow.AnimalEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/empty_construction/empty_construction.tl:37
local widgets = gui_react_util.usePlugins(empty_construction_eow.EmptyConstructionEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/fun_elements/fun_elements.tl:43
local widgets = gui_react_util.usePlugins(fun_elements_eow.FunElementsEowExtensionPoint, nil, extensionParams)
base/content/gui/gui/entity_window/industry/industry.tl:300
widgets = table_util.concatenate(widgets, gui_react_util.usePlugins(industry_eow.IndustryEowExtensionPoint, { firstRef = initialFocusRef, }, extensionParams))
base/content/gui/gui/entity_window/line/line.tl:132
local pluginWidgets = gui_react_util.usePlugins(line_eow.LineEowExtensionPoint, {lastRef = lastInScrollAreaRef}, extensionParams)
base/content/gui/gui/entity_window/maintenance_station/maintenance_station.tl:76
local pluginWidgets = gui_react_util.usePlugins(maintenance_station_eow.MaintenanceStationEowExtensionPoint, {lastRef = lastInScrollAreaRef}, extensionParams)
… und 11 weitere Dateien.

GuiReactUtil.LabelFontColor

enum base/tealdef/gui/main/gui_react_util.d.tl:4

enum LabelFontColor

Hinweise

Farbe des Labels einer Icon/Label-Anzeige. Jeder Wert gehört zu einer Style-Klasse.

Details

Style-Klassen: Default keine, Warning warning, Error error-tape, Positive positive, Negative negative, Normal / Inferior / Poor iconlabelindicator-color-normal / -inferior / -poor. Der Label-Modus ändert einige davon: Im Modus HudIconMain verwenden Default und Warning eigene HUD-Klassen, und im Modus EntityWindow sehen Inferior und Poor wie Normal aus.

Im Basisspiel verwendet: 6-mal in 4 Dateien

base/content/gui/gui/layers/layer_public_transport.tl:39

local fontColor : GuiReactUtil.LabelFontColor = "Normal"
base/content/gui/gui/main/cargo_react_util.tl:159
local fontColor : GuiReactUtil.LabelFontColor = "Normal"
base/content/gui/gui/main/gui_react_util.tl:67
local prepareStyleMapping = function(mode : GuiReactUtil.LabelMode) : {GuiReactUtil.LabelFontColor:string}
base/content/gui/gui/main/hud_icon_toolbox.tl:113
local fontColor : GuiReactUtil.LabelFontColor = "Normal"

Wert Beschreibung
simple
"Default"
"Warning" Warnfarbe. Style-Klasse warning, im Label-Modus HudIconMain stattdessen iconlabelindicator-color-hud-warning.
"Error" Fehlerfarbe (Style-Klasse error-tape).
money
"Positive"
"Negative" Farbe für negative Geldbeträge (Style-Klasse negative).
happiness/quality
"Normal"
"Inferior" Qualität oder Zufriedenheit unter normal. Die Güter-Helfer verwenden sie, wenn ein Teil der Güter verdorben ist.
"Poor" Schlechte Qualität oder Zufriedenheit. Die Güter-Helfer verwenden sie, wenn mehr als die Hälfte der Güter verdorben ist.

GuiReactUtil.LabelMode

enum base/tealdef/gui/main/gui_react_util.d.tl:20

enum LabelMode

Hinweise

Wo eine Icon/Label-Anzeige erscheint. Bestimmt Layout, Schriftgröße und Farbklassen.

Details

HudIconMain und HudIconLayer verwenden ein kompaktes horizontales HUD-Layout mit der Style-Klasse hud-icon-main oder hud-icon-layer und der Schrift font-scale-title-3. Die anderen Modi legen das Label über das Icon und verwenden font-scale-annotation.

Im Basisspiel verwendet: 6-mal in 3 Dateien

base/content/gui/gui/entity_window/vehicle/vehicle_eow.script.tl:851

mode : GuiReactUtil.LabelMode
base/content/gui/gui/main/cargo_react_util.tl:104
local makeCargoTypeIcons = function(params : CargoUtil.CargoTypeInfo, mode : GuiReactUtil.LabelMode, shippingState : GuiReactUtil.ShippingState, showLoadingIndi
base/content/gui/gui/main/gui_react_util.tl:52
local getFontScaleClass = function(mode : GuiReactUtil.LabelMode) : string

Wert Beschreibung
"Default" Standardlayout mit dem Label über dem Icon.
"EntityWindow" Layout für Infofenster. Die Label-Farben Inferior und Poor erscheinen als Normal.
"EntityWindowPostfix" Layout für zusätzliche Anzeigen hinter einer Güterliste in Infofenstern, z. B. die Zahl der unzufriedenen Passagiere oder der verzögerten Lieferungen.
"HudIconMain" Kompaktes Layout für die Haupt-HUD-Icons über Entitäten. Nur in diesem Modus färbt shippingState den Hintergrund.
"HudIconLayer" Kompaktes Layout für HUD-Icons der Karten-Layer.

GuiReactUtil.MouseCursor

enum base/tealdef/gui/main/gui_react_util.d.tl:28

enum MouseCursor

Hinweise

Namen der Mauszeiger. Wo eine ganzzahlige Zeiger-ID erwartet wird, wandelst du sie mit getMouseCursorInteger um.

Details

Default bis Resize entsprechen 0-4; die Spielzeiger ab Invalid entsprechen 1001-1027 in der Reihenfolge der Deklaration.

Im Basisspiel verwendet: 2-mal in 1 Datei

base/content/gui/gui/main/gui_react_util.tl:9

gui_react_util.getMouseCursorInteger = function(mouseCursor : GuiReactUtil.MouseCursor) : integer

Wert Beschreibung
"Default" Normaler Pfeilzeiger (ID 0).
"Text" Textzeiger (ID 1).
"Link" Linkzeiger (ID 2).
"Wait" Wartezeiger (ID 3).
"Resize" Zeiger zum Größe ändern (ID 4).
"Invalid" User
"AddStopValid" Spielzeiger mit der ID 1002.
"AddStopInvalid" Spielzeiger mit der ID 1003.
"Camera" Spielzeiger mit der ID 1004.
"Turn" Spielzeiger mit der ID 1005.
"Raise" Spielzeiger mit der ID 1006.
"TurnRaise" Spielzeiger mit der ID 1007.
"Bulldoze" Spielzeiger mit der ID 1008.
"None" Spielzeiger mit der ID 1009.
"Grab" Spielzeiger mit der ID 1010. Standardzeiger beim Ziehen (siehe react.d.tl).
"Lock" Spielzeiger mit der ID 1011.
"Unlock" Spielzeiger mit der ID 1012.
"Config" Spielzeiger mit der ID 1013.
"Cut" Spielzeiger mit der ID 1014.
"Snap" Spielzeiger mit der ID 1015.
"NoSnap" Spielzeiger mit der ID 1016.
"Tangent" Spielzeiger mit der ID 1017.
"Construction" Spielzeiger mit der ID 1018.
"ConstructionTool" Spielzeiger mit der ID 1019.
"Upgrade" Spielzeiger mit der ID 1020.
"TerrainModify" Spielzeiger mit der ID 1021.
"TerrainPaint" Spielzeiger mit der ID 1022.
"PlaceAsset" Spielzeiger mit der ID 1023.
"Rail" Spielzeiger mit der ID 1024.
"StreetStraight" Spielzeiger mit der ID 1025.
"Prospection" Spielzeiger mit der ID 1026.
"CompanyMechanics" Spielzeiger mit der ID 1027.

GuiReactUtil.ForegroundContrast

enum base/tealdef/gui/main/gui_react_util.d.tl:66

enum ForegroundContrast

Hinweise

Ergebnis der Kontrast-Helfer. Sagt, ob ein dunkler oder heller Vordergrund auf eine bestimmte Farbe passt.

Im Basisspiel verwendet: 4-mal in 2 Dateien

base/content/gui/gui/line_vehicle_mgmt/manager_hud_util.tl:24

local contrast2FGClass<total> : {GuiReactUtil.ForegroundContrast : string} = {
base/content/gui/gui/main/gui_react_util.tl:434
gui_react_util.foregroundColorClassForColor = function(color : Vec4f) : GuiReactUtil.ForegroundContrast

Wert Beschreibung
"Light" Heller Vordergrund; kommt bei dunklen Farben zurück (RGB-Mittelwert höchstens 0.5).
"Dark" Dunkler Vordergrund; kommt bei hellen Farben zurück (RGB-Mittelwert über 0.5).

GuiReactUtil.ShippingState

enum base/tealdef/gui/main/gui_react_util.d.tl:71

enum ShippingState

Hinweise

Wo sich die angezeigten Güter gerade befinden. Fügt einer Icon/Label-Anzeige eine Style-Klasse hinzu.

Details

Style-Klassen: warehouse, waiting-passenger, vehicle, industry-input, industry-output. Das Basis-Stylesheet färbt damit im Modus HudIconMain den Hintergrund des HUD-Icons in der passenden ShippingState-Spielfarbe.

Im Basisspiel verwendet: 8-mal in 2 Dateien

base/content/gui/gui/main/cargo_react_util.tl:104

local makeCargoTypeIcons = function(params : CargoUtil.CargoTypeInfo, mode : GuiReactUtil.LabelMode, shippingState : GuiReactUtil.ShippingState, showLoadingIndi
base/content/gui/gui/main/gui_react_util.tl:105
local shippingStateStyles <total> : {GuiReactUtil.ShippingState : string} = {

Wert Beschreibung
"Warehouse" Güter in einem Lager (Style-Klasse warehouse).
"WaitingPassenger" Passagiere, die an einer Station warten (Style-Klasse waiting-passenger).
"Vehicle" Güter in einem Fahrzeug oder auf einer Linie (Style-Klasse vehicle).
"IndustryInput" Güter im Eingangsbestand einer Industrie (Style-Klasse industry-input).
"IndustryOutput" Güter im Ausgangsbestand einer Industrie (Style-Klasse industry-output).

GuiReactUtil.RichLabel

record base/tealdef/gui/main/gui_react_util.d.tl:79

record RichLabel

Hinweise

Label aus einem Text, einem Icon oder Emote und einem zweiten Text hinter dem Icon. Ersetzt das einfache label einer Anzeige.

Im Basisspiel verwendet: 2-mal in 2 Dateien

base/content/gui/gui/layers/layer_public_transport.tl:48

local richLabel : GuiReactUtil.RichLabel = {
base/content/gui/gui/main/cargo_react_util.tl:188
local richLabel : GuiReactUtil.RichLabel

Felder

Name Typ Beschreibung
text string Text vor dem Icon.
iconPath string Bildpfad des Icons zwischen den beiden Texten.
useEmoteWithSatisfaction EmoteIconParam.Satisfaction Wenn gesetzt, erscheint statt iconPath ein EmoteIcon mit dieser Zufriedenheit. Gilt nur in den HUD-Label-Modi.
textAfterIcon string Text hinter dem Icon.

GuiReactUtil.IconLabelIndicatorParams

record base/tealdef/gui/main/gui_react_util.d.tl:86

record IconLabelIndicatorParams

Hinweise

Parameter von IconLabelIndicator und makeContentLabelIndictator.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/main/gui_react_util.tl:330

gui_react_util.IconLabelIndicator = react.RegisterRecipe("IconLabelIndicator", function(params : GuiReactUtil.IconLabelIndicatorParams) : TreeNodeId

Felder

Name Typ Beschreibung
iconPath string | {string} Bildpfad des Icons oder eine Liste von Pfaden, um mehrere Icons nebeneinander zu zeigen.
useEmoteWithSatisfaction EmoteIconParam.Satisfaction Wenn gesetzt, dient statt iconPath ein EmoteIcon mit dieser Zufriedenheit als Icon.
label string Textlabel, meist eine Zahl. Wird ignoriert, wenn richLabel gesetzt ist.
richLabel RichLabel Label mit Text und Icon. Hat Vorrang vor label.
labelFontColor LabelFontColor Farbe des Labels (Standard Default).
labelMode LabelMode Layout-Modus; nil verhält sich wie Default.
indicatorIconPath string Bildpfad eines kleinen Anzeige-Icons neben dem Label, z. B. die Tendenzpfeile des Bestands aus CargoUtil.getWarehouseCountIndicatorTexture.
tooltip string Tooltip des Labels und des Anzeige-Icons. Gilt auch für das Icon, wenn iconTooltip nicht gesetzt ist.
iconTooltip string | {string} Tooltip des Icons oder ein Tooltip pro Icon, wenn iconPath eine Liste ist.
overlay TreeNodeId Knoten, der über das Icon gezeichnet wird (nur in den Modi außerhalb des HUD).
indicator TreeNodeId Knoten über der Anzeige, z. B. die Ladeanimation eines Fahrzeugs.
shippingState ShippingState Wo sich die Güter befinden; fügt die passende Style-Klasse hinzu.

GuiReactUtil.ContentLabelIndicatorParams

record base/tealdef/gui/main/gui_react_util.d.tl:101

record ContentLabelIndicatorParams

Hinweise

Variante von IconLabelIndicatorParams mit einem fertigen Inhaltsknoten statt eines Icon-Pfads.

Details

Das Modul verwendet diesen Record intern: makeContentLabelIndictator baut den Inhaltsknoten aus den Icon-Parametern und gibt das Ergebnis in dieser Form weiter. Keine öffentliche Funktion des Moduls nimmt diesen Record entgegen.

Felder

Name Typ Beschreibung
content TreeNodeId Knoten, der als Icon erscheint.
label string Textlabel. Wird ignoriert, wenn richLabel gesetzt ist.
richLabel RichLabel Label mit Text und Icon.
labelFontColor LabelFontColor Farbe des Labels.
labelMode LabelMode Layout-Modus.
labelExtraContent TreeNodeId
indicatorIconPath string Bildpfad eines kleinen Anzeige-Icons neben dem Label.
tooltip string Tooltip des Labels und des Anzeige-Icons.
overlay TreeNodeId Knoten, der über den Inhalt gezeichnet wird.
indicator TreeNodeId Knoten über der Anzeige.
shippingState ShippingState Wo sich die Güter befinden; fügt die passende Style-Klasse hinzu.

GuiReactUtil.FocusInputFieldParam

record base/tealdef/gui/main/gui_react_util.d.tl:123

record FocusInputFieldParam<T>

Hinweise

Parameter der veralteten Recipes FocusNumberInputField und FocusTextInputField.

Im Basisspiel verwendet: 2-mal in 1 Datei

base/content/gui/gui/main/gui_react_util.tl:375

gui_react_util.FocusNumberInputField = react.RegisterRecipe("FocusNumberInputField", function(param : GuiReactUtil.FocusInputFieldParam<number>) : TreeNodeId

Felder

Name Typ Beschreibung
value T Anfangswert des Felds.
class string Style-Klasse des Textfelds (Standard font-scale-body). Nur FocusTextInputField liest sie.
maxLength integer Größte Textlänge. Nur FocusTextInputField liest sie.

Funktionen

onValueChange(value : T) base/tealdef/gui/main/gui_react_util.d.tl:125

Hinweise

Wird mit dem eingegebenen Wert aufgerufen, wenn er übernommen wird (auch beim Verlust des Fokus).

onCancel() base/tealdef/gui/main/gui_react_util.d.tl:126

Hinweise

Wird aufgerufen, wenn die Eingabe abgebrochen wird.

GuiReactUtil.FocusTraversalScopeParam

record base/tealdef/gui/main/gui_react_util.d.tl:148

record FocusTraversalScopeParam

Hinweise

Parameter des Recipes FocusTraversalScope.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/main/gui_react_util.tl:457

gui_react_util.FocusTraversalScope = react.RegisterRecipe("FocusTraversalScope", function(param : GuiReactUtil.FocusTraversalScopeParam) : TreeNodeId

Felder

Name Typ Beschreibung
horizontal boolean Bei true bewegen die Navigationseingaben links/rechts den Fokus innerhalb von layout, bei false sind sie gesperrt, bei nil bleiben sie den übergeordneten Knoten überlassen.
vertical boolean Bei true bewegen die Navigationseingaben hoch/runter den Fokus innerhalb von layout, bei false sind sie gesperrt, bei nil bleiben sie den übergeordneten Knoten überlassen.
allowBubbleUp boolean if focus can't be moved further, allow the input action to be handled by ancestors (default: false)
layout TreeNodeId Knoten, der im Bereich angezeigt wird.

GuiReactUtil.InputActionComponentParam

record base/tealdef/gui/main/gui_react_util.d.tl:157

record InputActionComponentParam

Hinweise

Parameter des Recipes InputActionComponent.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/main/gui_react_util.tl:475

gui_react_util.InputActionComponent = react.RegisterRecipe("InputActionComponent", function(param : GuiReactUtil.InputActionComponentParam) : TreeNodeId

Felder

Name Typ Beschreibung
iaOrder {string} Namen der zu registrierenden Eingabeaktionen in dieser Reihenfolge.
iaForwards {string : React.IaForward} Weiterleitungen nach Name der Eingabeaktion. Gelten, wenn iaHandlers für diese Action keinen Eintrag hat.
iaHandlers {string : React.IaHandler} Handler nach Name der Eingabeaktion.
layout TreeNodeId Anzuzeigender Knoten.

GuiReactUtil.EmoteIconParam

record base/tealdef/gui/main/gui_react_util.d.tl:166

record EmoteIconParam

Hinweise

Parameter des Recipes EmoteIcon.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/main/gui_react_util.tl:486

gui_react_util.EmoteIcon = react.RegisterRecipe("EmoteIcon", function(param : GuiReactUtil.EmoteIconParam) : TreeNodeId

Felder

Name Typ Beschreibung
satisfaction Satisfaction Anzuzeigende Stimmung.
tooltip string Tooltip des Icons.
forceFocusable boolean Geht an meta.forceFocusable des Bilds.

GuiReactUtil.EmoteIconParam.Satisfaction

enum base/tealdef/gui/main/gui_react_util.d.tl:167

enum Satisfaction

Hinweise

Stimmung, die ein Emote-Icon zeigt.

Im Basisspiel verwendet: 2-mal in 2 Dateien

base/content/gui/gui/entity_window/entity_window_util.tl:1451

local makeSatisfactionState = function() : GuiReactUtil.EmoteIconParam.Satisfaction
base/content/gui/gui/main/gui_react_util.tl:487
local iconPathMap<total> : {GuiReactUtil.EmoteIconParam.Satisfaction : string} = {

Wert Beschreibung
"Happy" Fröhliches Gesicht (symbol_emote_happy_colored.tga).
"Aloof" Unzufriedenes Gesicht (symbol_emote_sad_colored.tga, dasselbe Bild wie bei Sad). Die Güter-Helfer verwenden es für verdorbene Güter und unzufriedene Passagiere.
"Sad" Unzufriedenes Gesicht (symbol_emote_sad_colored.tga).

GuiReactUtil.ClipperParam

record base/tealdef/gui/main/gui_react_util.d.tl:179

record ClipperParam

Hinweise

Parameter des Recipes Clipper.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/main/gui_react_util.tl:506

gui_react_util.Clipper = react.RegisterRecipe("Clipper", function(param : GuiReactUtil.ClipperParam) : TreeNodeId

Felder

Name Typ Beschreibung
layout TreeNodeId Knoten, dessen Inhalt auf die Grenzen der Komponente beschnitten wird.

GuiReactUtil.PluginScopeConfig

record base/tealdef/gui/main/gui_react_util.d.tl:185

record PluginScopeConfig

Parameter collection for usePlugins()

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/main/gui_react_util.tl:513

local function usePluginsUntyped(extensionPoint : table, detail? : GuiReactUtil.PluginScopeConfig, ... : any) : { TreeNodeId }

Felder

Name Typ Beschreibung
firstRef ReactRefWrap if present, filled with a nodeRef to the first (top) plugin
lastRef ReactRefWrap if present, filled with a nodeRef to the last (bottom) plugin
insertHardcoded {integer : {TreeNodeId}} insert subtrees that are not plugins ( {order : {tree}} )