table_util¶
Quelle: base/tealdef/scripts/table_util.d.tl
Hinweise
Typen von /scripts/table_util.tl (TableUtil): tiefes Vergleichen und Kopieren von Tabellen und
einfache Suchfunktionen für Arrays. Du lädst es mit
local table_util = ug_require "/scripts/table_util.tl" as TableUtil.
TableUtil¶
record global base/tealdef/scripts/table_util.d.tl:3
global record TableUtil
Laden: local table_util = ug_require "::/scripts/table_util.tl" as TableUtil
Hinweise
Tabellen-Helfer, die ug_require "/scripts/table_util.tl" zurückgibt.
Funktionen
deepEquals(arg1 : any, arg2 : any, allowFunctions? : boolean, key? : any) : boolean base/tealdef/scripts/table_util.d.tl:4
Aufruf: table_util.deepEquals(…)
Hinweise
Vergleicht zwei Werte rekursiv. Tabellen sind gleich, wenn sie dieselben Schlüssel mit jeweils tief gleichen Werten haben.
| Parameter | Typ | Beschreibung |
|---|---|---|
arg1 |
any |
Erster Wert. |
arg2 |
any |
Zweiter Wert. |
allowFunctions? |
boolean |
Bei true werden Funktionen auf Identität verglichen. Sonst schreibt der Vergleich von Funktionen einen Fehler ins Log, außer beide Tabellen haben daneben einen Wert <key>_compareProxy (der dann verglichen wird) oder der Schlüssel endet auf ecipe. |
key? |
any |
Schlüssel, unter dem die Werte liegen. Er wird für den Vergleich von Funktionen und in Fehlermeldungen gebraucht. |
Rückgabe boolean: True, wenn die Werte tief gleich sind.
Details
Userdata-Werte brauchen eine Methode equals, die für den Vergleich aufgerufen wird.
Im Basisspiel verwendet: 140-mal in 50 Dateien
base/content/base/base/difficulty_util.tl:213
base/content/game_mechanics/game_mechanics/achievements/achievements.script.tl:501
base/content/game_mechanics/game_mechanics/company/company_react_util.tl:180
base/content/game_mechanics/game_mechanics/finance/finances_charts.tl:50
base/content/game_mechanics/game_mechanics/notifications/notification_util.tl:229
base/content/game_mechanics/game_mechanics/towns/town_growth.script.tl:185
… und 44 weitere Dateien.
copy<T>(obj : T) : T base/tealdef/scripts/table_util.d.tl:5
Aufruf: table_util.copy(…)
Hinweise
Tiefe Kopie einer Tabelle (Schlüssel und Werte werden rekursiv kopiert). Werte, die keine Tabellen sind, kommen unverändert zurück.
Rückgabe T
Details
Metatabellen werden nicht kopiert, Vektoren aus vec3.new verlieren also ihre Operatoren.
Im Basisspiel verwendet: 238-mal in 67 Dateien
base/content/climates/climates/gen/mapgenutil.tl:126
base/content/game_mechanics/game_mechanics/celebrations/celebration_react_util.tl:155
base/content/game_mechanics/game_mechanics/company/company.script.tl:29
base/content/game_mechanics/game_mechanics/finance/finances_react_util.tl:194
base/content/game_mechanics/game_mechanics/fun_elements/fireworks.script.tl:71
base/content/game_mechanics/game_mechanics/notifications/gui/notification_log.tl:384
… und 61 weitere Dateien.
shallowCopy<T>(obj : T) : T base/tealdef/scripts/table_util.d.tl:6
Aufruf: table_util.shallowCopy(…)
Hinweise
Kopiert die Schlüssel-Wert-Paare der obersten Ebene in eine neue Tabelle. Verschachtelte Tabellen werden geteilt.
Rückgabe T
Im Basisspiel verwendet: 67-mal in 20 Dateien
base/content/game_mechanics/game_mechanics/finance/finances_charts.tl:48
base/content/gui/gui/construction/construction.tl:1321
base/content/gui/gui/construction/construction_react_util.tl:4045
base/content/gui/gui/entity_window/bridge_and_tunnel.tl:105
base/content/gui/gui/entity_window/industry/industry.tl:285
base/content/gui/gui/entity_window/make_entity_window.tl:259
… und 14 weitere Dateien.
arrayFind<T>(arr : {T}, value : T) : integer base/tealdef/scripts/table_util.d.tl:7
Aufruf: table_util.arrayFind(…)
Hinweise
Index des ersten Elements, das gleich (==) value ist.
Rückgabe integer: Der Index (ab 1) oder 0, wenn der Wert nicht im Array steht.
Im Basisspiel verwendet: 13-mal in 7 Dateien
base/content/gui/gui/entity_window/double_slip_switch.tl:118
base/content/gui/gui/game_bar/game_bar_widgets.tl:353
base/content/gui/gui/main/industry_util.tl:568
base/content/gui/gui/main/town_hud_react_util.tl:16
base/content/gui/gui/menu/mod_manager_react_util.tl:2335
base/content/mission/mission/mission_framework/mission_framework_react.tl:1059
… und 1 weitere Dateien.
arrayFindIf<T>(arr : {T}, pred : function(T) : boolean) : integer base/tealdef/scripts/table_util.d.tl:8
Aufruf: table_util.arrayFindIf(…)
Hinweise
Index des ersten Elements, für das pred true zurückgibt.
Rückgabe integer: Der Index (ab 1) oder 0, wenn kein Element passt.
Im Basisspiel verwendet: 5-mal in 4 Dateien
base/content/game_mechanics/game_mechanics/company/explorations/exploration_plane.script.tl:300
base/content/gui/gui/construction/construction.tl:970
local index = table_util.arrayFindIf(objects, function(object : MenuCategoryUtil.FilterObject) : boolean
base/content/gui/gui/entity_window/bridge_and_tunnel.tl:109
if table_util.arrayFindIf(newState.availableObjects, function(object : MenuCategoryUtil.FilterObject) : boolean
base/content/gui/gui/main/menu_category_util.tl:368
arrayRemove<T>(arr : {T}, value : T) : boolean base/tealdef/scripts/table_util.d.tl:9
Aufruf: table_util.arrayRemove(…)
Hinweise
Entfernt das erste Element, das gleich value ist, direkt aus dem Array.
Rückgabe boolean: True, wenn ein Element entfernt wurde.
arrayContains<T>(arr : {T}, value : T) : boolean base/tealdef/scripts/table_util.d.tl:10
Aufruf: table_util.arrayContains(…)
Hinweise
True, wenn das Array ein Element enthält, das gleich (==) value ist.
Rückgabe boolean
Im Basisspiel verwendet: 104-mal in 32 Dateien
base/content/game_mechanics/game_mechanics/achievements/achievements.script.tl:230
if IsDefaultModCargo(cargoName) and not table_util.arrayContains(achievementState.cargoTypesDelivered, cargoName) then
base/content/game_mechanics/game_mechanics/notifications/types/con_availability.script.tl:20
base/content/game_mechanics/game_mechanics/towns/town_growth.script.tl:256
base/content/gui/gui/construction/construction.tl:3350
base/content/gui/gui/construction/construction_react_util.tl:317
base/content/gui/gui/construction/tools/mixed_assets.script.tl:7
… und 26 weitere Dateien.
find<K, V>(dict : {{K, V}}, key : K) : V base/tealdef/scripts/table_util.d.tl:11
Aufruf: table_util.find(…)
Hinweise
Sucht key in einer Liste von {key, value}-Paaren.
Rückgabe V: Den Wert des ersten Paars, dessen erstes Element gleich key ist, oder nil.
concatenate<T>(...: {T}) : {T} base/tealdef/scripts/table_util.d.tl:12
Aufruf: table_util.concatenate(…)
Hinweise
Gibt ein neues Array mit den Elementen aller übergebenen Arrays in ihrer Reihenfolge zurück.
Rückgabe {T}
Im Basisspiel verwendet: 28-mal in 16 Dateien
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/vehicle/vehicle_eow.script.tl:139
local colorPalette = color_util.toArray3(table_util.concatenate((api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_colors.gres")).da
base/content/gui/gui/game_bar/game_bar.tl:182
base/content/gui/gui/line_vehicle_mgmt/line_react_util.tl:601
local colorPalette = color_util.toArray3(table_util.concatenate((api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_colors.gres")).da
base/content/gui/gui/line_vehicle_mgmt/manager_window.tl:3600
local colorPalette = color_util.toArray3(table_util.concatenate((api.gui.genericRep.get(api.gui.genericRep.find("::/gui/line_vehicle_mgmt/line_colors.gres")).da
base/content/gui/gui/line_vehicle_mgmt/vehicle_store_util.tl:275
… und 10 weitere Dateien.
merge<T, V>(...: {T : V}) : {T : V} base/tealdef/scripts/table_util.d.tl:13
Aufruf: table_util.merge(…)
if same key is in multiple tables, the last one wins.
Rückgabe {T : V}
Im Basisspiel verwendet: 11-mal in 3 Dateien
base/content/gui/gui/menu/graphics_presets_util.tl:169
mods/release/urbangames_campaign_mission_02/content/mission/mission/mission_story.tl:80
local allowBuyVehiclesAfterTrainExtension : {string : integer} = table_util.merge(allowBuyVehiclesTrainExtension)
mods/release/urbangames_campaign_mission_05/content/mission/mission/mission_story.tl:527
removeDuplicates<T>(arr : {T}) : {T} base/tealdef/scripts/table_util.d.tl:14
Aufruf: table_util.removeDuplicates(…)
Hinweise
Gibt ein neues Array ohne wiederholte Elemente zurück. Das erste Vorkommen und die Reihenfolge bleiben erhalten.
Rückgabe {T}
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/gui/gui/line_vehicle_mgmt/vehicle_store_util.tl:367
base/content/gui/gui/main/cargo_react_util.tl:709