menu_category_util¶
Quelle: base/tealdef/gui/main/menu_category_util.d.tl
Hinweise
Filtert auswählbare Objekte (Brücken, Tunnel, Straßentypen usw.) nach Menükategorie. Die
Filterkategorien sind Ressourcen vom Typ menu_filter_category, die Objekte tragen in ihren
Metadaten eine menuCategory. Das Modul enthält das Filterpanel, die Objektauswahl und
Hilfsfunktionen, die die in einem bestimmten Jahr verfügbaren Objekte auflisten.
MenuCategoryUtil¶
record global base/tealdef/gui/main/menu_category_util.d.tl:3
global record MenuCategoryUtil
Laden: local menu_category_util = ug_require "::/gui/main/menu_category_util.tl" as MenuCategoryUtil
Hinweise
Hilfsfunktionen und Recipes zum Filtern nach Menükategorie.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
CategoryFilterPanel |
Recipe<CategoryFilterPanelParam> |
Reihe von Toggle-Buttons, eine je Filterkategorie. Gibt es nur "*" und eine weitere Kategorie, ist sie ausgeblendet. 2-mal im Basisspiel verwendet |
ObjectFilterBox |
Recipe<ObjectFilterBoxParam> |
Objektauswahl. Über einem Fluss aus Toggle-Buttons mit den Symbolen der Objekte (und gegebenenfalls ihrer Höchstgeschwindigkeit) steht ein Filterpanel für die Kategorien.Im Spiel Typ ändernIm Code: Change Type 1-mal im Basisspiel verwendet |
FilterObjectsCalloutButton |
Recipe<ObjectsCalloutButtonParam> |
Schaltfläche mit dem Symbol des aktuellen Objekts, die eine ObjectFilterBox in einem Callout öffnet.Im Spiel Typ ändernIm Code: Change Type 1-mal im Basisspiel verwendet |
Funktionen
filterCategoryLess(a : FilterCategory, b : FilterCategory) : boolean base/tealdef/gui/main/menu_category_util.d.tl:11
Aufruf: menu_category_util.filterCategoryLess(…)
Hinweise
Vergleichsfunktion zum Sortieren von Filterkategorien. "*" steht vorn, danach wird nach order, name und category sortiert.
Rückgabe boolean
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/gui/gui/construction/construction.tl:2316
base/content/gui/gui/construction/construction_react_util.tl:2789
fetchMenuFilterCategories() : {string : FilterCategory} base/tealdef/gui/main/menu_category_util.d.tl:12
Aufruf: menu_category_util.fetchMenuFilterCategories(…)
Hinweise
Lädt alle Ressourcen vom Typ menu_filter_category.
Rückgabe {string : FilterCategory}: Die Filterkategorien mit category als Schlüssel.
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/gui/gui/construction/construction.tl:4341
base/content/gui/gui/construction/construction_react_util.tl:2782
createNoObject(objectType : ObjectType) : FilterObject base/tealdef/gui/main/menu_category_util.d.tl:54
Aufruf: menu_category_util.createNoObject(…)
Hinweise
Erzeugt den Eintrag „No Bridge“ oder „No Tunnel“ (ID -1, immer verfügbar, steht in der Sortierung vorn).
Im Spiel Keine Brücke
· Kein Tunnel
Im Code: No Bridge
· No Tunnel
Rückgabe FilterObject: Den Eintrag oder nil bei Objektarten ohne einen solchen Eintrag.
Im Basisspiel verwendet: 2-mal in 2 Dateien
base/content/gui/gui/construction/construction_react_util.tl:310
base/content/gui/gui/entity_window/bridge_and_tunnel.tl:11
getIds(objects : {MenuCategoryUtil.FilterObject}) : {integer} base/tealdef/gui/main/menu_category_util.d.tl:56
Aufruf: menu_category_util.getIds(…)
Hinweise
Gibt die IDs der übergebenen Objekte in derselben Reihenfolge zurück.
Rückgabe {integer}
getAvailableObjectsSorted(rep : ResTypeRep<integer, table>, year : integer, previousId? : integer) : {FilterObject} base/tealdef/gui/main/menu_category_util.d.tl:62
Aufruf: menu_category_util.getAvailableObjectsSorted(…)
get all objects based on rep which are available at the given year, sorted by the types inherent MenuCategory order
| Parameter | Typ | Beschreibung |
|---|---|---|
rep |
ResTypeRep<integer, table> |
repository |
year |
integer |
year in-game |
previousId? |
integer |
optional id of the object which was previously selected, if it is available it will be included in the result regardless of the current year |
Rückgabe {FilterObject}
MenuCategoryUtil.FilterCategory¶
record base/tealdef/gui/main/menu_category_util.d.tl:4
record FilterCategory
Hinweise
Eine Filterkategorie, wie sie eine Ressource vom Typ menu_filter_category festlegt.
Beispiel
Im Basisspiel verwendet: 23-mal in 3 Dateien
base/content/gui/gui/construction/construction.tl:45
base/content/gui/gui/construction/construction_react_util.tl:2782
local categoryData : {string : MenuCategoryUtil.FilterCategory} = menu_category_util.fetchMenuFilterCategories()
base/content/gui/gui/main/menu_category_util.tl:8
Felder
MenuCategoryUtil.CategoryFilterPanelParam¶
record base/tealdef/gui/main/menu_category_util.d.tl:14
record CategoryFilterPanelParam
Hinweise
Parameter von CategoryFilterPanel.
Im Basisspiel verwendet: 1-mal in 1 Datei
base/content/gui/gui/main/menu_category_util.tl:45
Felder
| Name | Typ | Beschreibung |
|---|---|---|
categories |
{MenuCategoryUtil.FilterCategory} |
Die angezeigten Kategorien, je ein Toggle-Button. |
selection |
{boolean} |
Auswahlzustand je Eintrag von categories. |
Funktionen
updateSelection(index : integer, isSelected : boolean) base/tealdef/gui/main/menu_category_util.d.tl:16
Hinweise
Wird mit dem Index der Kategorie (ab 1) und ihrem neuen Auswahlzustand aufgerufen, wenn der Spieler sie umschaltet.
isListEmpty() : boolean base/tealdef/gui/main/menu_category_util.d.tl:18
Hinweise
Gibt zurück, ob die gefilterte Liste leer ist. Solange sie leer ist, verlässt IA_OPTION2 das Panel nicht.
Rückgabe boolean
giveUpFocus() base/tealdef/gui/main/menu_category_util.d.tl:19
Hinweise
Wird bei IA_OPTION2 oder IA_MENU_BACK aufgerufen, um den Fokus vom Panel wegzunehmen (zum Beispiel zurück zur Objektliste).
MenuCategoryUtil.FilterObject¶
record base/tealdef/gui/main/menu_category_util.d.tl:23
record FilterObject
Hinweise
Ein Objekt, das sich in einer ObjectFilterBox auswählen lässt (meist von getAvailableObjectsSorted erzeugt).
Im Basisspiel verwendet: 25-mal in 4 Dateien
base/content/gui/gui/construction/construction.tl:970
local index = table_util.arrayFindIf(objects, function(object : MenuCategoryUtil.FilterObject) : boolean
base/content/gui/gui/construction/construction_react_util.tl:306
base/content/gui/gui/entity_window/bridge_and_tunnel.tl:9
local getAvailableObjects = function(rep : ResTypeRep<integer, BridgeType>, objectType : MenuCategoryUtil.ObjectType, stripInfo : UtilParallelStrip.StripInfo) :
base/content/gui/gui/main/menu_category_util.tl:94
Felder
| Name | Typ | Beschreibung |
|---|---|---|
id |
integer |
must be unique within a provided set! |
name |
string |
Anzeigename (aus der Beschreibung des Objekts). |
iconPath |
string |
Pfad des Symbols (aus der Beschreibung des Objekts). |
availability |
ModelMetadata.Availability |
Jahre, in denen das Objekt verfügbar ist; dient zum Sortieren und zur Prüfung des Jahres. |
menuCategory |
ModelMetadata.MenuCategory |
Menükategorie-Metadaten des Objekts. Seine filterCategories legen fest, in welchen Filterkategorien es erscheint, die Reihenfolge (order) seiner ersten Kategorie bestimmt die Sortierung. |
speedLimit |
number |
optional |
carriers |
{Carrier} |
optional |
isAutoSelectable |
boolean |
optional |
MenuCategoryUtil.ObjectFilterBoxParam¶
record base/tealdef/gui/main/menu_category_util.d.tl:34
record ObjectFilterBoxParam
Hinweise
Parameter von ObjectFilterBox.
Im Basisspiel verwendet: 3-mal in 1 Datei
base/content/gui/gui/main/menu_category_util.tl:173
Felder
| Name | Typ | Beschreibung |
|---|---|---|
objectsSorted |
{FilterObject} |
Alle wählbaren Objekte, bereits sortiert. |
currentObjectId |
integer |
ID des ausgewählten Objekts. Steht es nicht in der Liste, wird über onSelectionChange das erste Objekt ausgewählt. |
tooltip |
string |
Tooltip der Schaltfläche von FilterObjectsCalloutButton. |
Funktionen
onSelectionChange(selectedObjectId : integer) base/tealdef/gui/main/menu_category_util.d.tl:37
Hinweise
Wird mit der ID des neu ausgewählten Objekts aufgerufen.
onFilterChange(filteredObjectIds : {integer}) base/tealdef/gui/main/menu_category_util.d.tl:38
Hinweise
Wird nach einer Änderung des Kategoriefilters mit den IDs der Objekte aufgerufen, die ihn passieren.
MenuCategoryUtil.ObjectsCalloutButtonParam¶
record base/tealdef/gui/main/menu_category_util.d.tl:43
record ObjectsCalloutButtonParam
Hinweise
Parameter von FilterObjectsCalloutButton.
Im Basisspiel verwendet: 1-mal in 1 Datei
base/content/gui/gui/main/menu_category_util.tl:367
Felder
| Name | Typ | Beschreibung |
|---|---|---|
filterBoxParam |
ObjectFilterBoxParam |
Parameter der Objektauswahl im Callout. |
gameCtx |
GameContext |
Spielkontext; sein Callout-Container wird verwendet. |
MenuCategoryUtil.ObjectType¶
enum base/tealdef/gui/main/menu_category_util.d.tl:49
enum ObjectType
Hinweise
Objektarten, für die createNoObject einen Eintrag „keins“ erzeugen kann.
Im Basisspiel verwendet: 4-mal in 3 Dateien
base/content/gui/gui/construction/construction_react_util.tl:305
local makeFilterObjectsFn = function(rep : ResTypeRep<integer, table>, carrier : Carrier, objectType : MenuCategoryUtil.ObjectType, laneConfigs : {LaneConfig})
base/content/gui/gui/entity_window/bridge_and_tunnel.tl:9
local getAvailableObjects = function(rep : ResTypeRep<integer, BridgeType>, objectType : MenuCategoryUtil.ObjectType, stripInfo : UtilParallelStrip.StripInfo) :
base/content/gui/gui/main/menu_category_util.tl:403