018 Übung Loops:
Nodes mit for-Schleife generieren:
Beispiel: "mod_name:stone_" .. string_aus_tabelle
Beispiel: description = "Modname Stone " .. String aus der Tabelle
Stellt sich noch die Frage, nach welchem Muster die Tabelleneinträge aufgebaut sein müssen, damit die Schleife funktioniert. Lade Dir hierfür den Ordner »018 Übung Material« herunter und orientiere Dich an den Farbnamen der vorgegebenen Texturen.
Pseude-Code verwenden:
»Pseudo-Code«? Was ist das denn schon wieder? In einem »Pseudo-Code« formuliert man umgangssprachlich die einzelnen Schritte, um eine Programmieraufgabe zu lösen. Vorteil dieser Methode ist, dass man sich noch nicht mit konkreten Codebefehlen oder »Syntaxfehlern« herumschlagen muss und sich zunächst ganz auf die Logik des Ablaufs konzentrieren kann:
Wie könnte ein »Pseudo-Code« für die oben gestellte Minetest-Aufgabe aussehen?
Lösung – aber bitte probiere zuerst selber einen Pseudo-Code zu schreiben:
Große Tabelle anlegen
enthält Untertabelle mit allen benötigten Informationen für 1. Node
enthält Untertabelle mit allen benötigten Informationen für 2. Node
...
...
...
enthält Untertabelle mit allen benötigten Informationen für n. Node
Ende große Tabelle anlegen
Schleife, die alle Einträge der großen Tabelle durchläuft
Werte aus der Tabelle auslesen und lokal speichern
Befehle zur Erstellung einer Node
Nodenamen wird aus Information der Untertabelle zusammengesetzt
Texturnamen wird aus Information der Untertabelle zusammengesetzt
Ende Befehle zur Erstellung einer Node
Ende der Schleife
Immer noch unklar? Dann sieh Dir im heruntergeladenen Ordner die Datei »Pseudo-Code-Nodes-Loop.lua« an. Die Datei enthält einen »Pseudo-Code«, der sich noch etwas enger an der benötigten Lua-Syntax orientiert als die Lösung oben.
Bitte übernimm auf keinen Fall einfach die im »Pseudo-Code« verwendeten Begriffe oder die Node- und Texturnamen. Sie sind nur Platzhalter und müssen unbedingt alle sinnvoll angepasst werden.
Rezepte mit for-Schleife generieren:
Kleiner Tipp: Die Namen der Texturen orientieren sich an den »Nodes« aus einem der Standard-Mods der Minetest-Engine namens »dye«:
siehe: minetest\games\minetest_game\mods\dye
beispielhaft: "dye:" .. farbname
Tipp: Falls der Quellcode nicht gut lesbar ist, lade ihn Dir mit Rechtsklick und »Bild speichern unter …« auf Deine Festplatte.
Unklar, was zu tun ist? Ein »Pseudocode« könnte so aussehen:
Beginn Schleife Beginn Befehle zur Erstellung einer Node ... Ende Befehle zur Erstellung einer Node Beginn Befehle zur Erstellung eines geformten Rezeptes zusammengesetzter Node-Eintrag mit »dye« oder leere Zeichenkette Ende Befehle zur Erstellung eines geformten Rezeptes Ende Schleife
Bitte übernimm auf keinen Fall einfach die im Pseudo-Code verwendeten Begriffe und Nodenamen, sondern passe unbedingt alles sinnvoll an.
stairsplus mit Schleife generieren:
if-Anweisung für stairsplus:
Um dies zu verhindern, solltest Du den stairsplus-Zeilen eine if-Abfrage voranstellen:
if minetest.get_modpath("moreblocks") then -- stairsplus-Anweisungen end
optional_depends = moreblocks
Schon fertig?
Schon fertig?
Schon fertig?
MUSTERLÖSUNG: SO KÖNNTE ES AUSSEHEN
Beachte: Da es sich um eine Musterlösung handelt, kann Dein Quellcode am Ende ganz anders aussehen. Das fängt schon bei den Ordner- und Dateinamen an, die Du für Deinen »Mod« gewählt hast. Solange Dein »Mod« aber funktioniert, ist eine Lösung so gut wie die andere ...