020 Übung FunctionS I:
default.node_sound_leaves_defaults() default.node_sound_snow_defaults() default.node_sound_stone_defaults()
sounds = Funktion aufrufen und Ton-Parameter übergeben
Vorgehensweise:
sounds = Funktion aufrufen und Ton-Parameter übergeben
lokale Ton-Variable = Tabelle[3. Eintrag]
Beispiel: return default.node_sound_leaves_defaults()
Pseude-Code verwenden:
Lösung – aber bitte probiere zuerst selber einen Pseudo-Code zu schreiben:
Funktion mit Ton-Parameter
übergebenen Ton-Parameter auswerten
Rückgabe, falls bestimmter Wert zutrifft
Rückgabe, falls bestimmter anderer Wert zutrifft
Rückgabe, falls kein Wert zutrifft oder übergeben wurde
Ende Funktion
Große Tabelle anlegen
Untertabelle mit allen benötigten Informationen für 1. Node (u.a. zum Ton)
Untertabelle mit allen benötigten Informationen für 2. Node (u.a. zum Ton)
...
...
...
Untertabelle mit allen benötigten Informationen für n. Node (u.a. zum Ton)
Ende große Tabelle anlegen
Schleife, die alle Einträge der großen Tabelle durchläuft
Wert für den Ton-Parameter auslesen und lokal speichern
Befehle zur Erstellung einer Node
Nodenamen wird aus Information der Untertabelle zusammengesetzt
Texturnamen wird aus Information der Untertabelle zusammengesetzt
Ton = Funktion aufrufen und Ton-Parameter übergeben
Ende Befehle zur Erstellung einer Node
Ende der Schleife
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.
for-Schleife für stairsplus bearbeiten:
GEFAHREN BEIM ZUGRIFF AUF ANDERE MODS:
»Minetest« stürzt trotzdem ständig beim Starten ab oder reagiert nicht wie gewünscht? Dann hast Du vielleicht vergessen, in der »mod.conf« die Abhängigkeit vom »Mod« zu definieren. Abgesehen natürlich von üblichen Programmierfehlern (Klammern, Kommas, Logik ...).
Funktion für groups-Eigenschaft:
groups = { cracky = Funktionsaufruf mit Parameter, stone = 1 }
{Nodename-Teilstring, Beschreibung-Teilstring, Zahl-für-Ton, Zahl-für-Cracky}
lokale Cracky-Variable = Tabelle[4. Eintrag]
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 ...