Alle Parametertypen haben gemeinsame Eigenschaften:
Eigenschaft | Inhalt | Default | Beschreibung |
key | String | - | eindeutiger Identifier für den Parameter |
name | String | "" | Anzeigename für das Parametermenü |
values | {String,String,...} | ? | Anzeigewerte für das Parametermenü, siehe unten |
defaultIndex | Integer | 0 | Vorgewählte Option beim ersten Aufruf |
uiType | "BUTTON" oder "SLIDER" oder "COMBOBOX" oder "ICON_BUTTON" oder "CHECKBOX" | "BUTTON" | Art des Parameters, siehe unten |
yearFrom | Integer | 0 | Parameter wird angezeigt ab |
yearTo | Integer | unendlich | Parameter wird angezeigt bis |
tooltip | String | "" | Tooltip der beim Hovern über dem Namen des Parameters angezeigt wird |
Die Eigenheiten der verschiedenen Arten wird im Folgenden betrachtet:
BUTTON
Einfache Text-Buttons sind bereits aus Transport Fever bekannt. Sie werden im Menü als zentrierte Liste aneinander gereiht. Die Beschriftung der Buttons wird im values-Parameter als Stringliste übergeben, diese können auch in der strings.lua übersetzt werden.
{
key = "typ",
name = _("Grabstein / Kreuz"),
uiType = "BUTTON",
values = { _("Grabstein"), _("Kreuz"), _("nichts"), },
tooltip = _("Wähle den Aufbau für das Grabmal"),
defaultIndex = 0,
},
Im Spiel sieht der obige Code folgendermaßen aus:
SLIDER
Gerade für viele lineare Werte, wie z.b. Zahlenreihen oder Größenabstufungen lassen sich Slider als einfach zu bedienende Regler einsetzen. Die Bezeichnung der aktuell ausgewählten Position wird rechts neben dem Slider angezeigt. Die Anzeigenamen der Buttons wird im values-Parameter als Stringliste übergeben, diese können auch in der strings.lua übersetzt werden.
{
key = "mauerlaenge",
name = _("Länge der Mauer"),
uiType = "SLIDER",
values = { _("1"), _("2"), _("3"), _("4"), _("5"), _("6"), _("7"), _("8"), },
tooltip = _("Wähle die Anzahl der Mauerelemente"),
defaultIndex = 7,
},
Im Spiel sieht der obige Code folgendermaßen aus:
COMBOBOX
Wenn eine große Menge an Textoptionen zur Auswahl stehen soll, ist eine einfache Liste aus Buttons nicht ausreichend. Dann lässt sich eine Combobox, auch als Dropdown-Menü bekannt, realisieren, um kompakt viele Optionen anzubieten. Die Einträge der Liste werden im values-Parameter als Stringliste übergeben, diese können auch in der strings.lua übersetzt werden.
{
key = "tortyp",
name = _("Tortyp"),
uiType = "COMBOBOX",
values = { _("mit Kreuz"), _("ohne Kreuz"), _("ohne Kreuz - offen"), },
tooltip = _("Wähle die Art des Friedhoftors"),
defaultIndex = 0,
},
Im Spiel sieht der obige Code folgendermaßen aus:
ICON_BUTTON
Im Gegensatz zu den Text-Buttons zeigen die Icon-Buttons kleine Bilder im TGA-Format an. Die Liste ist im Gegensatz zu den Text-Buttons aktuell linksbündig angeordnet. Wenn die Liste der Buttons breiter als das Parametermenü wird, bricht sie auf eine weitere Zeile um. Es ist deshalb ratsam, dass die Bilder für die Buttons alle die gleiche Höhe haben. Außerdem sollte der Rand der Buttons transparent sein, damit man erkennt, welche Option aktuell ausgewählt wurde. Die Dateipfade zu den Bildern werden im values-Parameter als Stringliste übergeben, die Pfade beziehen sich auf den kompletten Texturenordner (siehe Beispiel).
{
key = "stein_mat",
name = _("Grabsteinmaterial"),
uiType = "ICON_BUTTON",
values = {"ui/parameters/grabstein_schwarz.tga", "ui/parameters/grabstein_grau.tga", "ui/parameters/grabstein_weiss.tga", "ui/parameters/grabstein_rot.tga", },
tooltip = _("Wähle das Material für den Grabstein"),
defaultIndex = 0,
},
Im Spiel sieht der obige Code folgendermaßen aus:
CHECKBOX
Wenn lediglich ein Wert mit ja oder nein belegt ist, eignet sich auch eine Checkbox als Parametertyp. Dabei wird lediglich der Name angezeigt, der values-Parameter muss aber dennoch definiert sein.
{
key = "random",
name = _("Zufällige Kombination der Grabmäler"),
uiType = "CHECKBOX",
values = {"0", "1"},
tooltip = _("Lege fest, ob die Grabmäler zufällig zusammengestellt werden"),
},
Im Spiel sieht der obige Code folgendermaßen aus:
Rückgabewerte der Parameter
In der updateFn-Funktion der Construction können die gewählten Optionen mit params.<key> abgerufen werden. Dabei werden Zahlen beginnend ab 0 ausgegeben. Der erste Eintrag eines Dropdowns liefert beispielsweise entsprechend eine 0. Bei der Checkbox entspricht 0 dem nicht aktivierten Zustand, 1 dem aktivierten Zustand.
Comments 2
Newly created comments need to be manually approved before publication, other users cannot see this comment until it has been approved.
Newly created comments need to be manually approved before publication, other users cannot see this comment until it has been approved.
VacuumTube
Checkboxen haben keinen Tooltip
elektronikfreak
Würde mir wünschen, dass es auch eine Tabelle unter "uityp" geben würde.
Also einzelne mod
Untereinander
angeordnet
wie in der Combobox
nur ohne auf Slider
klicken zu müssen.