76fc5e98b8
Neu im Wörterbuch: hard dependency = feste Abhängigkeit optional dependency = Optionale Abhängigkeiten
149 lines
7.2 KiB
Markdown
149 lines
7.2 KiB
Markdown
---
|
||
title: Erste Schritte
|
||
layout: default
|
||
root: ../..
|
||
idx: 1.1
|
||
description: Lerne wie man einen Mod-Ordner mit init.lua, mod.conf und mehr anlegt.
|
||
redirect_from:
|
||
- /de/chapters/folders.html
|
||
- /de/basics/folders.html
|
||
---
|
||
|
||
## Einführung <!-- omit in toc -->
|
||
|
||
Es ist wesentlich, den Aufbau der grundlegenden Strukturen des Mod-Verzeichnisses zu verstehen, wenn man Mods erstellt.
|
||
|
||
- [Was sind Spiele und Mods?](#was-sind-spiele-und-mods)
|
||
- [Wo werden die Mods gespeichert?](#wo-werden-die-mods-gespeichert)
|
||
- [Ihren ersten Mod erstellen](#ihren-ersten-mod-erstellen)
|
||
- [Mod-Verzeichnis](#mod-verzeichnis)
|
||
- [mod.conf](#modconf)
|
||
- [init.lua](#initlua)
|
||
- [Zusammenfassung](#summary)
|
||
- [Abhängigkeiten](#abhängigkeiten)
|
||
- [Mod-Pakete](#mod-pakete-modpacks)
|
||
|
||
|
||
## 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?
|
||
<a name="mod-locations"></a>
|
||
|
||
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:
|
||
|
||
1. Spiel-Mods. Dies sind die Mods, die das Spiel (die Welt) bilden.
|
||
z.B.: `minetest/games/minetest_game/mods/`, `/usr/share/minetest/games/minetest/`
|
||
2. Globale Mods. Der Ort, an dem Mods fast immer installiert werden.
|
||
Im Zweifelsfall legen Sie Mods hier ab.
|
||
z.B.: `minetest/mods/`
|
||
3. 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](https://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:
|
||
|
||
```lua
|
||
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](https://content.minetest.net/metapackages/default/), 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.
|