Zum Inhalt

mod_util

Quelle: base/tealdef/gui/menu/mod_util.d.tl

Hinweise

Prüft Abhängigkeiten, Ladereihenfolge und Inkompatibilitäten einer Liste aktiver Mods und macht aus den Befunden eine lesbare Meldung.

Beispiel

-- nach base/content/gui/gui/menu/mod_selector_page.tl
local toAdd, missing, incorrectOrder, incompatible = mod_util.validateActiveMods(activeMods)
local text, critical = mod_util.getProblemDescription(toAdd, missing, incorrectOrder, incompatible)
if text ~= "" then
  print(text, critical)
end

ModUtil

record global base/tealdef/gui/menu/mod_util.d.tl:3

global record ModUtil

Hinweise

Util-Tabelle von mod_util.tl.

Funktionen

validateActiveMods(activeMods : {string}, onlyMods? : {string}) : {ModUtil.ToAddModResult}, {ModUtil.MissingModResult}, {ModUtil.ModOrderResult}, {ModUtil.ModIncompatibilityResult} base/tealdef/gui/menu/mod_util.d.tl:40

Hinweise

Prüft jeden installierten Mod einer Aktivierungsliste mit validateMod und sammelt die Probleme.

Parameter Typ Beschreibung
activeMods {string} Mod-Namen (Ordner-Ids) in Aktivierungsreihenfolge.
onlyMods? {string} Falls angegeben, werden nur diese Mods aus activeMods geprüft (die Reihenfolge kommt weiter aus activeMods). Optional.

Rückgabe {ModUtil.ToAddModResult}, {ModUtil.MissingModResult}, {ModUtil.ModOrderResult}, {ModUtil.ModIncompatibilityResult}: Vier Listen: inaktive Abhängigkeiten (ToAddModResult), fehlende Abhängigkeiten (MissingModResult), zu spät geladene Abhängigkeiten (ModOrderResult) und Inkompatibilitäten (ModIncompatibilityResult).

validateMod(modDesc : Mod.ModDesc, order : integer, modName : string, modOrder : {string : integer}, toAdd : {ModUtil.ToAddModResult}, missing : {ModUtil.MissingModResult}, incorrectOrder : {ModUtil.ModOrderResult}, incompatible : {ModUtil.ModIncompatibilityResult}) base/tealdef/gui/menu/mod_util.d.tl:43

Hinweise

Prüft die Abhängigkeiten und Inkompatibilitäten eines Mods gegen die aktiven Mods und hängt die Probleme an die vier Ergebnislisten an.

Parameter Typ Beschreibung
modDesc Mod.ModDesc Beschreibung des zu prüfenden Mods aus dem Mod-Repository.
order integer Position des Mods in der Aktivierungsreihenfolge.
modName string Name (Ordner-Id) des Mods.
modOrder {string : integer} Position jedes aktiven Mods, nach Mod-Namen geschlüsselt.
toAdd {ModUtil.ToAddModResult} Liste für Abhängigkeiten, die installiert, aber nicht aktiv sind.
missing {ModUtil.MissingModResult} Liste für Abhängigkeiten, die nicht installiert sind oder eine falsche Revision haben.
incorrectOrder {ModUtil.ModOrderResult} Liste für loadBefore-Abhängigkeiten, die aktiv sind, aber später kommen.
incompatible {ModUtil.ModIncompatibilityResult} Liste für aktive Mods (in passender Revision), die dieser Mod als inkompatibel deklariert.

Details

Eine Abhängigkeit von einem eingebauten Mod mit falscher Version wird als IncorrectVersion gemeldet. Im Basisspiel läuft die Prüfung der eingebauten Mods zweimal, deshalb steht ein solches Problem zweimal in missing.

getProblemDescription(toAdd : {ModUtil.ToAddModResult}, missing : {ModUtil.MissingModResult}, incorrectOrder : {ModUtil.ModOrderResult}, incompatible : {ModUtil.ModIncompatibilityResult}) : string, boolean base/tealdef/gui/menu/mod_util.d.tl:48

Hinweise

Macht aus den Ergebnissen von validateActiveMods oder validateMod eine übersetzte, mehrzeilige Meldung.

Im Spiel Die folgenden Mods fehlen: · Die folgenden abhängigen Mods sind nicht aktiv: · Die folgenden Mods sind inkompatibel:Im Code: The following mods are missing: · The following dependent mods are not active: · The following mods are incompatbile:

Rückgabe string, boolean: Die Meldung (leerer String, wenn es keine Probleme gibt) und ob ein Problem kritisch ist. Der zweite Wert ist true, wenn eine benötigte (nicht optionale) Abhängigkeit inaktiv ist oder fehlt oder wenn es irgendeine Inkompatibilität gibt. Eine falsche Ladereihenfolge allein ist nicht kritisch. Ohne Probleme ist der zweite Wert nil.

ModUtil.ToAddModResult

record base/tealdef/gui/menu/mod_util.d.tl:4

record ToAddModResult

Hinweise

Eine Abhängigkeit, die in passender Version installiert, aber nicht aktiv ist.

Im Basisspiel verwendet: 8-mal in 2 Dateien

base/content/gui/gui/menu/mod_selector_page.tl:344

toAdd : {ModUtil.ToAddModResult}
base/content/gui/gui/menu/mod_util.tl:34
toAdd : {ModUtil.ToAddModResult}, missing : {ModUtil.MissingModResult},

Felder

Name Typ Beschreibung
dependent string Name (Ordner-Id) des Mods, der die Abhängigkeit deklariert.
name string Name (Ordner-Id) des benötigten Mods.
loadBefore boolean True, wenn die Abhängigkeit vor dem abhängigen Mod geladen werden muss.
optional boolean True, wenn die Abhängigkeit optional ist.

ModUtil.MissingModResult

record base/tealdef/gui/menu/mod_util.d.tl:11

record MissingModResult

Hinweise

Eine Abhängigkeit, die nicht oder nicht in passender Version installiert ist.

Im Basisspiel verwendet: 7-mal in 2 Dateien

base/content/gui/gui/menu/mod_selector_page.tl:345

missing : {ModUtil.MissingModResult}
base/content/gui/gui/menu/mod_util.tl:34
toAdd : {ModUtil.ToAddModResult}, missing : {ModUtil.MissingModResult},

Felder

Name Typ Beschreibung
dependent string Name (Ordner-Id) des Mods, der die Abhängigkeit deklariert.
reason Reason Warum die Abhängigkeit fehlt.
name string Name (Ordner-Id) des benötigten Mods.
loadBefore boolean True, wenn die Abhängigkeit vor dem abhängigen Mod geladen werden muss.
optional boolean True, wenn die Abhängigkeit optional ist.
displayName string Anzeigename des benötigten Mods laut Mod-Info der Abhängigkeit. Kann leer sein.
url string Download-URL des benötigten Mods laut Mod-Info der Abhängigkeit. Kann leer sein.

ModUtil.MissingModResult.Reason

enum base/tealdef/gui/menu/mod_util.d.tl:12

enum Reason

Hinweise

Warum die Abhängigkeit als fehlend gilt.

Wert Beschreibung
"NotFound" Der benötigte Mod ist nicht installiert.
"IncorrectVersion" Der benötigte Mod ist installiert, aber seine Revision liegt außerhalb des Bereichs, den der abhängige Mod akzeptiert.

ModUtil.ModOrderResult

record base/tealdef/gui/menu/mod_util.d.tl:25

record ModOrderResult

Hinweise

Eine aktive Abhängigkeit, die vor dem abhängigen Mod laden muss, in der Aktivierungsreihenfolge aber nach ihm kommt.

Im Basisspiel verwendet: 8-mal in 2 Dateien

base/content/gui/gui/menu/mod_selector_page.tl:346

incorrectOrder :  {ModUtil.ModOrderResult}
base/content/gui/gui/menu/mod_util.tl:35
incorrectOrder :  {ModUtil.ModOrderResult}, incompatible : {ModUtil.ModIncompatibilityResult})

Felder

Name Typ Beschreibung
dependent string Name (Ordner-Id) des Mods, der die Abhängigkeit deklariert.
name string Name (Ordner-Id) der Abhängigkeit, die zu spät geladen wird.

ModUtil.ModIncompatibilityResult

record base/tealdef/gui/menu/mod_util.d.tl:30

record ModIncompatibilityResult

Hinweise

Ein Paar aktiver Mods, bei dem der eine den anderen als inkompatibel deklariert.

Im Basisspiel verwendet: 7-mal in 2 Dateien

base/content/gui/gui/menu/mod_selector_page.tl:347

incompatible : {ModUtil.ModIncompatibilityResult}
base/content/gui/gui/menu/mod_util.tl:35
incorrectOrder :  {ModUtil.ModOrderResult}, incompatible : {ModUtil.ModIncompatibilityResult})

Felder

Name Typ Beschreibung
incompatible string Name (Ordner-Id) des Mods, der die Inkompatibilität deklariert.
name string Name (Ordner-Id) des aktiven Mods, mit dem er inkompatibel ist.

ModUtil.ModNameAndVersion

record base/tealdef/gui/menu/mod_util.d.tl:35

record ModNameAndVersion

Hinweise

Anzeigename und Version eines eingebauten „Mods“ ("" = Basisinhalte, "ug_api_scripting" = Scripting-API), auf den Mods in Abhängigkeiten und Inkompatibilitäten verweisen können.

Im Basisspiel verwendet: 1-mal in 1 Datei

base/content/gui/gui/menu/mod_util.tl:4

local hardcodedMods : {string : ModUtil.ModNameAndVersion} = {

Felder

Name Typ Beschreibung
name string Übersetzter Anzeigename.
version integer Version, die mit dem Revisionsbereich einer Abhängigkeit verglichen wird.