Zum Inhalt

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.

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

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

-- gui/construction/menu/filter_categories/bridge_suspension.res.lua
function data()
    return {
        type = "menu_filter_category",
        data = {
            category = "bridge_suspension",
            icon = resolve("bridge_suspension.tga"),
            name = _("Suspension"),
            order = 16300,
        }
    }
end
Im Basisspiel verwendet: 23-mal in 3 Dateien

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

getMenuCategoryData : function(category : string) : MenuCategoryUtil.FilterCategory
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
menu_category_util.fetchMenuFilterCategories = function() : {string : MenuCategoryUtil.FilterCategory}

Felder

Name Typ Beschreibung
category string Schlüssel der Kategorie, auf den die filterCategories der Menükategorie eines Objekts verweisen; "*" steht für alle.
name string Anzeigename (Tooltip der Filterschaltfläche).
order number Sortierreihenfolge; kleinere Werte kommen zuerst.
icon string Pfad des Symbols der Filterschaltfläche.

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

menu_category_util.CategoryFilterPanel = react.RegisterRecipe("CategoryFilterPanel", function(param : MenuCategoryUtil.CategoryFilterPanelParam) : TreeNodeId

Felder

Name Typ Beschreibung
categories {MenuCategoryUtil.FilterCategory} Die angezeigten Kategorien, je ein Toggle-Button.
selection {boolean} Auswahlzustand je Eintrag von categories.

Funktionen

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
: function() : {MenuCategoryUtil.FilterObject}, integer
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
local filterObjectLess = function(a : MenuCategoryUtil.FilterObject, b : MenuCategoryUtil.FilterObject) : boolean

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

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

menu_category_util.ObjectFilterBox = react.RegisterRecipe("ObjectFilterBox", function(param : MenuCategoryUtil.ObjectFilterBoxParam) : TreeNodeId

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

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

menu_category_util.FilterObjectsCalloutButton = react.RegisterRecipe("FilterObjectsCalloutButton", function(param : MenuCategoryUtil.ObjectsCalloutButtonParam) 

Felder

Name Typ Beschreibung
filterBoxParam ObjectFilterBoxParam Parameter der Objektauswahl im Callout.
gameCtx GameContext Spielkontext; sein Callout-Container wird verwendet.

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
menu_category_util.createNoObject = function(objectType : MenuCategoryUtil.ObjectType) : MenuCategoryUtil.FilterObject

Wert Beschreibung
"Bridge" Brückentyp („No Bridge“).Im Spiel Keine BrückeIm Code: No Bridge
"Tunnel" Tunneltyp („No Tunnel“).Im Spiel Kein TunnelIm Code: No Tunnel
"RailroadCrossing" Typ des Bahnübergangs; createNoObject gibt dafür derzeit nil zurück.