Zum Inhalt

script_param_util

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

Hinweise

Widgets für Skript-Parameter (ScriptParam): die Einstellungen des Basisspiels und der Mods, die als Schaltflächen, Symbol-Schaltflächen, Schieberegler, Auswahllisten oder Kontrollkästchen erscheinen, etwa in den Einstellungen für ein neues Spiel und für Mods und im Baumenü.

ScriptParamUtil

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

global record ScriptParamUtil

Laden: local script_param_util = ug_require "::/gui/main/script_param_util.tl" as ScriptParamUtil

Hinweise

Baut UI-Widgets für Skript-Parameter und sucht die Parameter des Basisspiels heraus.

Details

Der Wert eines Parameters ist entweder ein Eintrag seiner Liste numbers oder, wenn er keine numbers hat, der Index (ab 1) des gewählten Eintrags von values.

Funktionen

buildScriptParamCompSimple(param : CompSimpleParam) : TreeNodeId base/tealdef/gui/main/script_param_util.d.tl:40

Aufruf: script_param_util.buildScriptParamCompSimple(…)

Hinweise

Baut das Widget (mit Beschriftung) für einen Parameter, den ein ParamForUi beschreibt.

Rückgabe TreeNodeId

Beispiel

-- aus town_eow.script.tl
local scriptParam = script_param_util.getScriptParam(optionName)
script_param_util.buildScriptParamCompSimple({
    scriptParam = {
        uiType = scriptParam.uiType,
        name = scriptParam.name,
        values = scriptParam.values,
    },
    currentValue = sensitivityState:old(),
    onValueChange = function(index) commit(index, nil, nil) end,
    vertical = false,
})
Im Basisspiel verwendet: 4-mal in 3 Dateien

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

scriptParamForUiOld and scriptParamUtil.buildScriptParamCompSimple({
base/content/gui/gui/entity_window/town/town_eow.script.tl:917
script_param_util.buildScriptParamCompSimple({
base/content/gui/gui/menu/mod_manager_react_util.tl:5857
scriptparamutil.buildScriptParamCompSimple({

buildScriptParamComp(scriptParam : ScriptParam, initialIndex : integer, onValueChange : function(integer), addSpacer? : boolean, toggleButtonsFlowLayout? : boolean, onHover? : function(boolean), allowCoalesce? : boolean) : TreeNodeId base/tealdef/gui/main/script_param_util.d.tl:43

Aufruf: script_param_util.buildScriptParamComp(…)

filteredIndices are expected to be unique and sorted ascending --> these indices get filtered AWAY!

Hinweise

Baut das Widget für einen ScriptParam, beginnend bei der Auswahl initialIndex; onValueChange bekommt den neuen Wert.

Rückgabe TreeNodeId

Im Basisspiel verwendet: 10-mal in 3 Dateien

base/content/gui/gui/map_editor/map_editor.tl:368

return scriptparamutil.buildScriptParamComp(scriptParam, scriptParam.defaultIndex, function(newValue : integer)
base/content/gui/gui/menu/advanced_settings.tl:181
local object = script_param_util.buildScriptParamComp(
base/content/gui/gui/menu/new_game_react_util.tl:385
element = script_param_util.buildScriptParamComp(

filteredIndices are expected to be unique and sorted ascending --> these indices get filtered AWAY!

searchAndBuildScriptParamComp(key : string, getModParam : function(field : string) : number, setModParamField : function(field : string, value : number), addSpacer? : boolean, onHover? : function(isSelected : boolean), filterTags? : {string}, allowCoalesce? : boolean) : MenuIconReactUtil.HintWidgetParam.Data, TreeNodeId base/tealdef/gui/main/script_param_util.d.tl:52

Aufruf: script_param_util.searchAndBuildScriptParamComp(…)

Hinweise

Sucht einen Parameter des Basisspiels über seinen Schlüssel (siehe getScriptParam) und baut sein Widget. Der Wert wird mit getModParam gelesen und mit setModParamField geschrieben.

Rückgabe MenuIconReactUtil.HintWidgetParam.Data, TreeNodeId: Die Hinweisdaten (Titel und Beschreibung des Parameters) und das Widget oder nil, nil, wenn kein Parameter passt.

Im Basisspiel verwendet: 2-mal in 2 Dateien

base/content/gui/gui/menu/advanced_settings.tl:96

local data, object = script_param_util.searchAndBuildScriptParamComp(
base/content/gui/gui/menu/new_game_react_util.tl:283
local data, object = script_param_util.searchAndBuildScriptParamComp(

wrap(text : string, vertical : boolean, node : TreeNodeId, addSpacer? : boolean, onHover? : function(boolean), extraClass? : string) : TreeNodeId base/tealdef/gui/main/script_param_util.d.tl:62

Aufruf: script_param_util.wrap(…)

Hinweise

Setzt einen Beschriftungstext und ein Widget in eine Zeile (oder bei vertical in eine Spalte), auf Wunsch mit Abstandhalter und einem Hover-Callback an der Beschriftung.

Rückgabe TreeNodeId

Im Basisspiel verwendet: 8-mal in 4 Dateien

base/content/gui/gui/map_editor/map_editor.tl:220

return scriptparamutil.wrap(text, bool, builtin.Component{
base/content/gui/gui/menu/advanced_settings.tl:227
table.insert(nodesAndTitle.nodes, script_param_util.wrap(
base/content/gui/gui/menu/new_game_or_map_settings_page.tl:223
element = script_param_util.wrap(
base/content/gui/gui/menu/new_game_react_util.tl:505
element = script_param_util.wrap(_("Seed"), false, builtin.BoxLayout{

getScriptParam(key : string, filterTags? : {string}) : ScriptParam base/tealdef/gui/main/script_param_util.d.tl:71

Aufruf: script_param_util.getScriptParam(…)

Hinweise

Sucht einen Parameter des Basisspiels (des Mods mit leerem Namen) über seinen Schlüssel.

Parameter Typ Beschreibung
key string Schlüssel des Parameters.
filterTags? {string} Tags, die der Parameter haben muss (Vergleich ohne Beachtung der Groß- und Kleinschreibung, alle müssen passen); Parameter ohne Tags passen immer.

Rückgabe ScriptParam: Den Parameter oder nil.

Im Basisspiel verwendet: 7-mal in 4 Dateien

base/content/gui/gui/entity_window/town/town_eow.script.tl:907

local scriptParam = script_param_util.getScriptParam(optionName)
base/content/gui/gui/map_editor/map_editor.tl:2113
local scriptParamIndustryDensity = scriptparamutil.getScriptParam("locations.industry.initialIndustryDensity", filterTags)
base/content/gui/gui/menu/new_game_or_map_settings_page.tl:19
local mapSizeParam = script_param_util.getScriptParam("map.size", filterTags)
base/content/gui/gui/menu/savegame_react_util.tl:55
local param = script_param_util.getScriptParam(key, filterTags)

clampScriptParamToDiscreteValue(value : number, scriptParam : ScriptParam) : number base/tealdef/gui/main/script_param_util.d.tl:72

Aufruf: script_param_util.clampScriptParamToDiscreteValue(…)

Hinweise

Gibt den Eintrag von numbers zurück, der value am nächsten liegt. Hat der Parameter keine numbers, wird value auf die Anzahl der values begrenzt.

Rückgabe number

clampScriptParamValueIndex(value : number, scriptParam : ScriptParam) : integer base/tealdef/gui/main/script_param_util.d.tl:73

Aufruf: script_param_util.clampScriptParamValueIndex(…)

Hinweise

clampScriptParamToDiscreteValue, auf eine ganze Zahl gerundet.

Rückgabe integer

Im Basisspiel verwendet: 4-mal in 2 Dateien

base/content/gui/gui/map_editor/map_editor.tl:534

params[scriptParam.key] = scriptparamutil.clampScriptParamValueIndex(params[scriptParam.key], scriptParam)
base/content/gui/gui/menu/new_game_or_map_settings_page.tl:23
size = script_param_util.clampScriptParamValueIndex(size, mapSizeParam) - 1

getScriptParamDefaultValue(numbers : {number}, defaultIndex : integer) : number base/tealdef/gui/main/script_param_util.d.tl:75

Aufruf: script_param_util.getScriptParamDefaultValue(…)

Hinweise

Gibt numbers[defaultIndex] zurück, wenn numbers mehr als defaultIndex Einträge hat, sonst defaultIndex selbst.

Rückgabe number

Im Basisspiel verwendet: 1-mal in 1 Datei

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

values[p.key] = scriptParamUtil.getScriptParamDefaultValue(

getScriptParamDefaultValueIndex(numbers : {number}, defaultIndex : integer) : integer base/tealdef/gui/main/script_param_util.d.tl:76

Aufruf: script_param_util.getScriptParamDefaultValueIndex(…)

Hinweise

getScriptParamDefaultValue, auf eine ganze Zahl gerundet.

Rückgabe integer

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/map_editor/map_editor.tl:536

params[scriptParam.key] = scriptparamutil.getScriptParamDefaultValueIndex(scriptParam.numbers, scriptParam.defaultIndex)

getScriptParamLabel(key : string, value : number, filterTags? : {string}) : string base/tealdef/gui/main/script_param_util.d.tl:77

Aufruf: script_param_util.getScriptParamLabel(…)

Hinweise

Gibt den Anzeigetext der Auswahl eines Basisspiel-Parameters zurück, die value am nächsten liegt.

Rückgabe string

getScriptParamLabelUnfiltered(key : string, value : number) : string base/tealdef/gui/main/script_param_util.d.tl:80

Aufruf: script_param_util.getScriptParamLabelUnfiltered(…)

get first match of the value (among all filterTags), or nil of no exact match

Rückgabe string

Im Basisspiel verwendet: 4-mal in 2 Dateien

base/content/gui/gui/menu/new_game_or_map_settings_page.tl:216

local formatText = script_param_util.getScriptParamLabelUnfiltered("map.format", savegameData.info.modParams[""]["map.format"])
base/content/gui/gui/menu/savegame_react_util.tl:562
local formatText = script_param_util.getScriptParamLabelUnfiltered("map.format", param.savegameData.info.modParams[""]["map.format"])

ScriptParamUtil.ParamForUi

record base/tealdef/gui/main/script_param_util.d.tl:4

record ParamForUi

Hinweise

Beschreibung eines Parameters für buildScriptParamCompSimple; meist aus einem ScriptParam kopiert.

Im Basisspiel verwendet: 15-mal in 4 Dateien

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

scriptParamForUi : ScriptParamUtil.ParamForUi -- mutual exclusive to filterObjects
base/content/gui/gui/entity_window/town/town_eow.script.tl:908
local paramForUI : ScriptParamUtil.ParamForUi = {
base/content/gui/gui/main/script_param_util.tl:55
local getNumChoices = function(scriptParam : ScriptParamUtil.ParamForUi) : integer
base/content/gui/gui/menu/mod_manager_react_util.tl:5841
local paramForUI : ScriptParamUtil.ParamForUi = {

Felder

Name Typ Beschreibung
uiType ScriptParamType Art des Widgets (Schaltfläche, Symbol-Schaltfläche, Schieberegler, Auswahlliste, Kontrollkästchen).
iconStyle IconStyle Darstellung der Symbole eines Parameters mit Symbol-Schaltflächen.
name string Beschriftung des Parameters.
values {string} Anzeigetexte der Auswahlmöglichkeiten (bei Symbol-Schaltflächen die Pfade der Symbole).
numbers {number} Optionaler Wert je Auswahlmöglichkeit; ohne ihn ist der Wert der Index der Auswahl (ab 1).
tooltips {string} Optionaler Tooltip je Auswahlmöglichkeit.
defaultIndex integer
hideLabel boolean Blendet im kompakten Modus die Beschriftung eines Parameters mit Symbol-Schaltflächen aus.
allows to delay onValueChange (e.g. when dragging a slider, it will delay onValueChange to mouse release)
allowCoalesce boolean

Funktionen

makeCompactButtonFn(value : number) : TreeNodeId base/tealdef/gui/main/script_param_util.d.tl:21

Hinweise

Optional; baut den Inhalt der Schaltfläche für einen Wert (im kompakten Modus und bei Schaltflächen-Auswahl) statt des üblichen Symbols oder Texts.

Rückgabe TreeNodeId

formatValueFn(value : number) : string base/tealdef/gui/main/script_param_util.d.tl:22

Hinweise

Optional; formatiert einen Wert für den Text neben einem Schieberegler.

Rückgabe string

stepValueFn(value : number, direction : integer, precise : boolean) : number base/tealdef/gui/main/script_param_util.d.tl:23

Die Spieldateien enthalten hierzu noch keine Beschreibung.

Rückgabe number

ScriptParamUtil.ParamForUi.IconStyle

enum base/tealdef/gui/main/script_param_util.d.tl:5

enum IconStyle

Hinweise

Darstellung von Symbol-Schaltflächen.

Wert Beschreibung
"Default" Symbole unverändert.
"Colored" Symbole mit der farbigen Style-Klasse forever-fair.

ScriptParamUtil.CompSimpleParam

record base/tealdef/gui/main/script_param_util.d.tl:26

record CompSimpleParam is IRecipeParamWithMeta

Hinweise

Parameter von buildScriptParamCompSimple.

Im Basisspiel verwendet: 5-mal in 1 Datei

base/content/gui/gui/main/script_param_util.tl:145

local ScriptParamCalloutWrapper = react.RegisterRecipe("ScriptParamCalloutWrapper", function(params : ScriptParamUtil.CompSimpleParam) : TreeNodeId

Felder

Name Typ Beschreibung
scriptParam ParamForUi Der angezeigte Parameter.
currentValue number Aktueller Wert (was die Werte bedeuten, steht bei ScriptParamUtil).
toggleButtonsFlowLayout boolean Ordnet bei Schaltflächen-Parametern die Schaltflächen im Fluss an statt in gleich großen Zellen.
vertical boolean Setzt die Beschriftung über das Widget statt links daneben; bei nil kommt das Widget ohne Beschriftung zurück.
compact boolean Zeigt nur eine kleine Schaltfläche, die das vollständige Widget in einem Callout öffnet.
addSpacer boolean Fügt rechts in der Zeile einen Abstandhalter ein.
disableGamepadNavigation boolean Geht an das Widget (zum Beispiel den Schieberegler) und schaltet dessen Gamepad-Navigation ab.
gameCtx GameContext Spielkontext; im kompakten Modus für den Callout-Container nötig.
updateCurrentValue boolean

Funktionen

onValueChange(number) base/tealdef/gui/main/script_param_util.d.tl:29

Hinweise

Wird mit dem neuen Wert aufgerufen, wenn der Spieler ihn ändert.

onHover(boolean) base/tealdef/gui/main/script_param_util.d.tl:35

Hinweise

Wird mit true oder false aufgerufen, wenn die Beschriftung Aufmerksamkeit bekommt oder verliert.