Neu im Wörterbuch: hard dependency = feste Abhängigkeit optional dependency = Optionale Abhängigkeiten
7.2 KiB
title | layout | root | idx | description | redirect_from | ||
---|---|---|---|---|---|---|---|
Erste Schritte | default | ../.. | 1.1 | Lerne wie man einen Mod-Ordner mit init.lua, mod.conf und mehr anlegt. |
|
Einführung
Es ist wesentlich, den Aufbau der grundlegenden Strukturen des Mod-Verzeichnisses zu verstehen, wenn man Mods erstellt.
- Was sind Spiele und Mods?
- Wo werden die Mods gespeichert?
- Ihren ersten Mod erstellen
- Abhängigkeiten
- Mod-Pakete
Was sind Spiele und Mods?
Die Stärke von Minetest ist die Fähigkeit, Spiele zu erstellen, ohne eigene Voxel-Grafik, Voxel Algorithmen und raffinierten Netzwerk-Code erstellen zu müssen.
In Minetest ist ein Spiel eine Sammlung von Modulen, welche miteinander arbeiten, um den Inhalt und das Verhalten des Spiels zur Verfügung zu stellen. Ein Modul, allgemein als Mod bezeichnet, ist eine Sammlung von Skripten und Ressourcen. Es ist möglich, ein Spiel mit nur einem Mod zu erstellen, aber das wird nur selten gemacht, weil es sonst nicht mehr so einfach ist, Teile des Spieles unabhängig von den Anderen anzupassen oder zu ersetzen.
Ebenfalls ist es möglich, Mods außerhalb eines Spieles zu verbreiten. In diesem Fall sind sie ebenfalls Mods, aber in einem traditionellerem Sinn: Modifikationen. Diese Mods verändern oder erweitern die Eigenschaften eines Spiels.
Sowohl die Mods die im Spiel enthalten sind, als auch die Mods von Dritten nutzen die selbe API (Programmierschnittstelle).
Wo werden die Mods gespeichert?
Jede Mod hat ihr eigenes Verzeichnis, wo sich ihre Lua-Quelltexte, Texturen, Modelle und Tondateien befinden. Minetest überprüft verschiedene Orte auf Mods. Diese Orte werden allgemein Mod-Lade-Verzeichnisse genannt.
Für eine bestimmte Welt/ein bestimmtes Spiel werden drei Mod-Speicherorte überprüft. Diese sind, in dieser Reihenfolge:
- Spiel-Mods. Dies sind die Mods, die das Spiel (die Welt) bilden.
z.B.:
minetest/games/minetest_game/mods/
,/usr/share/minetest/games/minetest/
- Globale Mods. Der Ort, an dem Mods fast immer installiert werden.
Im Zweifelsfall legen Sie Mods hier ab.
z.B.:
minetest/mods/
- Welt-Mods. Der Ort, an dem Mods gespeichert werden, die für eine bestimmte bestimmte Welt sind.
z.B.:
minetest/worlds/world/worldmods/
minetest
ist das Verzeichnis für die Benutzerdaten. Sie können den Ort des Benutzerdaten-Verzeichnis finden, indem Sie Minetest öffnen und auf "Benutzerdatenverzeichnis öffnen" in der Registerkarte "Über" klicken.
Falls Minetest mithilfe von Flathub installiert wurde, kann es sein, dass bei einem Klick nichts passiert. Normalerweise ist das minetest
-Verzeichnis dann in /home/USER/.var/app/net.minetest.Minetest/.minetest/
Beim Laden von Mods prüft Minetest alle oben genannten Verzeichnisse der Reihe nach. Wenn es auf einen Mod stößt, der denselben Namen trägt wie ein zuvor gefundener, wird der spätere Mod anstelle des früheren Mods geladen. Das bedeutet, dass Sie die Spielmods überschreiben, indem Sie einen Mod mit demselben Namen in den globalen Mod-Speicherort einfügen.
Ihren ersten Mod erstellen
Mod-Verzeichnis
Gehen Sie in das globale Mods-Verzeichnis (Über > Benutzerdatenverzeichnis öffnen > mods) und
erstellen Sie einen neuen Ordner namens mymod
. mymod ist der Name des Mods.
Jeder Mod sollte einen eindeutigen Mod-Namen haben, eine technische Kennung (id), die auf den Mod verweist. Mod-Namen können Buchstaben, Zahlen und Unterstriche enthalten. Ein guter Name sollte beschreiben, was die Mod tut. Das Verzeichnis, das die Komponenten einer Mod enthält, muss denselben Namen wie den Mod-Namen haben. Um herauszufinden, ob ein Mod-Name verfügbar ist, suchen Sie ihn auf content.minetest.net.
mymod
├── textures
│ └── mymod_node.png Dateien
├── init.lua
└── mod.conf
Mods benötigen nur eine init.lua-Datei. Es wird jedoch empfohlen, die Datei mod.conf zu verwenden und je nach Funktionsumfang können weitere Komponenten erforderlich sein, abhängig von der Funktionalität der Mod.
mod.conf
Erstellen Sie eine mod.conf
-Datei mit folgendem Inhalt:
name = mymod
description = Fügt foo, bar und bo hinzu.
depends = default
Diese Datei wird für Mod-Metadaten verwendet, darunter der Name der Mod, die Beschreibung und andere Informationen.
init.lua
Erstellen Sie eine init.lua
-Datei mit folgendem Inhalt:
print("Diese Datei wird zum Zeitpunkt des Ladens ausgeführt!")
minetest.register_node("mymod:node", {
description = "Das ist ein Node",
tiles = {"mymod_node.png"},
groups = {cracky = 1}
})
minetest.register_craft({
type = "shapeless",
output = "mymod:node 3",
recipe = { "default:dirt", "default:stone" },
})
Die Datei init.lua ist der Einstiegspunkt für einen Mod und wird ausgeführt, wenn der Mod geladen wird.
Zusammenfassung
Diese Mod hat den Namen "mymod". Er hat zwei Textdateien: init.lua und mod.conf. Das Skript gibt eine Nachricht aus und registriert dann einen Node und ein Handwerksrezept - diese werden später erklärt. Es gibt eine einzige Abhängigkeit, die default mod, die normalerweise im Minetest-Grundspiel (Minetest Game) zu finden ist. Außerdem gibt es eine Textur in textures/ für den Node.
Abhängigkeiten
Eine Abhängigkeit entsteht, wenn eine Mod eine andere Mod benötigt, der vor ihr geladen werden muss. Ein Mod kann verlangen, dass der Code, die Gegenstände oder andere Ressourcen einer anderen Mod verfügbar sein müssen, damit sie verwendet werden können.
Es gibt zwei Arten von Abhängigkeiten: feste und optionale Abhängigkeiten. Beide erfordern, dass die Mod zuerst geladen wird. Wenn die Mod, von die die Abhängigkeit besteht, nicht verfügbar ist, führt eine feste Abhängigkeit dazu, dass die Mod nicht geladen wird, während eine optionale Abhängigkeit dazu führen kann, dass weniger Funktionen aktiviert werden.
Eine optionale Abhängigkeit ist nützlich, wenn Sie optional eine andere Mod unterstützen wollen; diese kann zusätzliche Inhalte aktivieren, wenn der Benutzer beide Mods gleichzeitig nutzen möchte.
Abhängigkeiten werden in einer kommagetrennten Liste in mod.conf angegeben.
depends = modeins, modzwei
optional_depends = moddrei
Mod-Pakete (Modpacks)
Mods können in Mod-Pakete gruppiert werden, die es ermöglichen, mehrere Mods zu verpacken und zusammen zu verschieben. Sie sind nützlich, wenn Sie einem Spieler mehrere Mods zur Verfügung stellen wollen, aber nicht wollen, dass er sie einzeln herunterladen muss.
modpack1
├── modpack.conf (required) - signalisiert, dass es sich um ein Mod-Paket handelt
├── mod1
│ └── ... Mod-Dateien
└── mymod (optional)
└── ... Mod-Dateien
Bitte beachten Sie, dass ein Modpack kein Spiel ist. Spiele haben ihre eigene Organisationsstruktur, die im Kapitel “Spiele” erklärt wird.