003 Übung Quellcode bearbeiten:
Das wichtigste Baumaterial in »Minetest« ist eine »Node«, manchmal auch »Block« genannt oder ganz allgemein als »Item« bezeichnet. In seiner einfachsten Form handelt es sich dabei um einen Würfel mit der Kantenlange 1x1x1:
In dieser ersten Übung soll es unter anderem darum gehen, die Fehlstellen einer »Node« in einem vorgegebenen »Mod« zu entdecken und zu berichtigen. Dabei müssen Namen von Dateien und eines Ordners angepasst, der Quellcode überarbeitet und der eine oder andere mit Absicht platzierte Fehler (Komma, geschweifte Klammer) gefunden und behoben werden.
ÜBUNGsmaterial herunterladen:
Gehe zum Ordner »003 Material Übung« auf dem Cloudspeicher und lade Dir von dort per Rechtsklick auf den Ordnernamen das benötigte Material lokal auf Deinen Rechner herunter. Du kannst hierfür auch die drei Punkte auf der Downloadseite verwenden (siehe Pfeil):
Vermutlich wurde das Material bei Dir im Ordner »Downloads« gespeichert. Suche es und entpacke es per Doppelklick oder mit dem Programm »7-Zip«. Schiebe den enthaltenen Ordner »MOD_NAME_ändern-master« in den Global-Mods-Ordner:
Mod anpassen:
Überlege, wie Dein »Mod« heißen soll. Ändere im Material passend die Namen von Ordnern und Dateien. Beachte dabei unbedingt die Hinweise der Datei »000 LIES MICH.txt« im heruntergeladenen Material. Hier die Kurzfassung:
- schreibe alle Ordner- und Dateinamen klein - Ordner- und Dateinamen dürfen keine Umlaute oder Sonderzeichen enthalten - Ordner- und Dateinamen dürfen keine Leerzeichen enthalten - Ordner- und Dateinamen dürfen keine Bindestriche enthalten - das erste Zeichen eines Ordner- und Dateinamen darf keine Zahl oder Unterstrich sein - außer bei der Dateiendung ist kein Punkt erlaubt - üblich ist es, englischsprachige Bezeichnungen zu verwenden ...
Auf keinen Fall ändern darfst Du jedoch die folgenden Datei- und Ordnernamen:
- die Namen der Ordner »sounds« und »textures« - die Namen der Dateien »init.lua«, »License«, »mod.conf« und »README.md«
Alle Namensänderungen durchgeführt? Dann öffne das Dokument »mod.conf« mit Deinem Editor und ergänze die fehlenden Informationen, insbesondere den Namen Deiner »Mod«.
Die Datei »init.lua« enthält den eigentlichen Quellcode. Bearbeite ihn mit Deinem Editor und vervollständige die fehlenden Programmteile, um einen Steinblock in cyan zu erhalten:
Die Datei »init.lua« enthält den eigentlichen Quellcode. Bearbeite ihn mit Deinem Editor und vervollständige die fehlenden Programmteile, um einen Steinblock in cyan zu erhalten:
Es geht dabei vor allem um Zeilen, die Formulierungen wie »MOD_NAMEN_ändern« verwenden. Hier musst Du Deine gewählten Namen einfügen.
Wenn Du alle Änderungen vorgenommen hast, füge Deinen »Mod« in der Minetest-Oberfläche über »Mods auswählen« Deinem Spiel hinzu und starte die Welt neu. Suche anschließend im Inventar (I) nach Deinem Modnamen und teste den Stein. Funktioniert alles?
Wenn Du alle Änderungen vorgenommen hast, füge Deinen »Mod« in der Minetest-Oberfläche über »Mods auswählen« Deinem Spiel hinzu und starte die Welt neu. Suche anschließend im Inventar (I) nach Deinem Modnamen und teste den Stein. Funktioniert alles?
Beim Starten gibt es eine Fehlermeldung?
Du erhältst beim Starten Deiner Minetest-Welt eine Fehlermeldung? Lies die Fehlermeldung aufmerksam. Suche in der Meldung nach Formulierungen wie »datei_namen.lua:<eine Zahl>« oder »at line <eine Zahl>«:
In diesen Zeilen verstecken sich vermutlich die Fehler, die Du korrigieren musst. Meistens geht es um ein fehlendes Komma am Ende einer Zeile, fehlende oder falsch gesetzte Anführungszeichen, falsche Dateinamen oder fehlende oder falsch gesetzte runde oder geschweifte Klammern.
Hinweis: Manchmal musst Du auch eine Zeile unter oder über den Fehlerangaben schauen.
Hinweis: Manchmal musst Du auch eine Zeile unter oder über den Fehlerangaben schauen.
Quellcode Geändert, Aber es sieht alles aus wie vorher?
Du hast Deinen Quellcode bearbeitet, aber Dein Block sieht noch immer so aus wie vorher, Deine Welt verhält sich nicht anders?
Hast Du Deine Quellcode-Datei gespeichert? Außerdem musst Du nach jeder Änderung das Spiel einmal schließen und neustarten, damit die Änderungen wirksam werden. Drücke hierfür auf der Tastatur die ESC-Taste, klicke auf »Hauptmenü« und öffne anschließend die Welt erneut mit »Spiel starten«.
Hast Du Deine Quellcode-Datei gespeichert? Außerdem musst Du nach jeder Änderung das Spiel einmal schließen und neustarten, damit die Änderungen wirksam werden. Drücke hierfür auf der Tastatur die ESC-Taste, klicke auf »Hauptmenü« und öffne anschließend die Welt erneut mit »Spiel starten«.
ZWISCHENDURCH WIRD ES IMMER NACHT:
In »Minetest« gibt es einen Tag/Nacht-Zyklus, so dass es ca. alle 20 Minuten Nacht wird. Das ist für unsere Zwecke natürlich sehr lästig. Was tun?
Der einfache Weg ist es, das Inventar mit dem Buchstaben I auf der Tastatur zu öffnen, nach einer Fackel (»torch«) zu suchen und diese in der Welt mit Rechtsklick zu positionieren.
Der dauerhafte Weg wäre, die Datei »minetest.conf« im Minetest-Programmordner anzupassen:
Der einfache Weg ist es, das Inventar mit dem Buchstaben I auf der Tastatur zu öffnen, nach einer Fackel (»torch«) zu suchen und diese in der Welt mit Rechtsklick zu positionieren.
Der dauerhafte Weg wäre, die Datei »minetest.conf« im Minetest-Programmordner anzupassen:
Schließe hierfür zunächst »Minetest« komplett und öffne »minetest.conf« mit Deinem Editor. Füge ans Ende folgende Zeile ein:
time_speed = 0
Speichere die Änderung und starte Deine Welt neu.
Es ist immer noch Nacht? »time_speed = 0« schaltet nur den Zyklus aus. Du musst jetzt noch einmalig die gewünschte Uhrzeit einstellen. Öffne mit dem Buchstaben T auf der Tastatur den Spielchat. Gib Dir zunächst mit folgendem Befehl das Recht (»privilege«), in die Welt eingreifen zu dürfen:
Es ist immer noch Nacht? »time_speed = 0« schaltet nur den Zyklus aus. Du musst jetzt noch einmalig die gewünschte Uhrzeit einstellen. Öffne mit dem Buchstaben T auf der Tastatur den Spielchat. Gib Dir zunächst mit folgendem Befehl das Recht (»privilege«), in die Welt eingreifen zu dürfen:
/grantme all
Damit hast Du Dir alle Rechte im Spiel gegeben und kannst im Spielchat mit folgendem Befehl die Uhrzeit verändern:
/time 15:00
Node Abbaubar Machen:
Wenn alles fehlerfrei läuft, kannst Du Deinen neuen Block jetzt zwar in der Welt platzieren, ihn aber nicht mehr abbauen. Schaue Dir im »Minetest Modding Book« den Eintrag groups an und ergänze Deinen Quellcode entsprechend.
Hinweis: Es sind die Werte 1 - 3 erlaubt., für stone nur der Wert 1 (in dieser Übung kannst Du den Eintrag stone aber auch ganz weglassen) .
Wofür stehen die verwendeten Begriffe in groups eigentlich: wiki.minetest.net
Hinweis: Es sind die Werte 1 - 3 erlaubt., für stone nur der Wert 1 (in dieser Übung kannst Du den Eintrag stone aber auch ganz weglassen) .
Wofür stehen die verwendeten Begriffe in groups eigentlich: wiki.minetest.net
IRGENDWIE MACHEN DIE WERTE BEI CRACKY GAR KEINEN UNTERSCHIED?
Dann läuft Deine Welt wahrscheinlich im »Kreativmodus«. Schalte den Modus vor dem Starten der Welt aus und spiele mit den Werten von cracky.
Dumm nur, dass Dein Block jetzt so hart ist, dass Du ihn nicht mehr mit der bloßen Hand abbauen kannst. Entweder musst Du Dir eine Spitzhacke »craften« oder Du versuchst statt cracky den Befehl crumbly.
Dumm nur, dass Dein Block jetzt so hart ist, dass Du ihn nicht mehr mit der bloßen Hand abbauen kannst. Entweder musst Du Dir eine Spitzhacke »craften« oder Du versuchst statt cracky den Befehl crumbly.
Schon fertig?
Ist Dir die Datei »README.md« im heruntergeladenen Material aufgefallen? Öffne sie mit Deinem Editor und ergänze die fehlenden Informationen.
SCHON FERTIG?
Ergänze die Datei »init.lua« so, dass Du einen zusätzlichen Holzblock erhältst. Eine passende Textur findest Du in dem zu Beginn heruntergeladenen Ordner:
SCHON FERTIG?
Ergänze den Sound Deiner Blöcke um einen Ton, der abgespielt werden soll, wenn man über den Block läuft. Gehe dazu auf minetest.gitlab.io, um den passenden Quelltext zu erhalten. Scrolle dort so lange, bis Du diesen Eintrag siehst:
sounds = { ...
Wie lauten die Befehle für die Ganggeräusche und fürs Abbauen von »Nodes« im Abschnitt sounds? Füge ihn in Deine Blöcke ein und verwende den vorgegebenen Ton aus dem Ordner »sounds«.
Schon fertig?
In groups kann man noch eine ganze Reihe anderer Werte einfügen, die das Verhalten des Blockes verändern. Ergänze zum Beispiel den Quellcode Deines Steinblockes in groups um die Angabe cools_lava = 1. Grabe dann ein Loch in Deiner Minetest-Welt und schütte Lava hinein. Wirf Deinen umprogrammierten Steinblock in das Loch. Was passiert?
Probiere auch einmal falling_node = 1. Du stapelst dann zwei Deiner Blöcke übereinander und schlägst anschließend den unteren weg.
Probiere auch einmal falling_node = 1. Du stapelst dann zwei Deiner Blöcke übereinander und schlägst anschließend den unteren weg.
ScreenshotS:
Es ist üblich, jedem Mod-Ordner einen Screenshot beizufügen, der zeigt, was der »Mod« alles an »Items« zu bieten hat.
Öffne das Inventar in »Minetest« und gib rechts unten im Suchfeld den Namen Deines »Mods« ein (meistens reichen die ersten zwei bis drei Buchstaben). Wähle Deine selbst programmierten Blöcke aus und platziere sie in der Welt mit einem Rechtsklick. Bewege Dich mit WASD und Maus, bis Du einen guten Bildausschnitt gefunden hast. Drücke die Funktionstaste F12, um einen Screenshot der Szene anzufertigen. »Minetest« legt die gemachten Bildschirmfotos im eigenen Programmorder in einem neuen Ordner namens »screenshots« ab:
Öffne das Inventar in »Minetest« und gib rechts unten im Suchfeld den Namen Deines »Mods« ein (meistens reichen die ersten zwei bis drei Buchstaben). Wähle Deine selbst programmierten Blöcke aus und platziere sie in der Welt mit einem Rechtsklick. Bewege Dich mit WASD und Maus, bis Du einen guten Bildausschnitt gefunden hast. Drücke die Funktionstaste F12, um einen Screenshot der Szene anzufertigen. »Minetest« legt die gemachten Bildschirmfotos im eigenen Programmorder in einem neuen Ordner namens »screenshots« ab:
Screenshots für einen Mod-Ordner sollen nicht breiter als 800px sein. Öffne das Bild in »Gimp« und überprüfe die Werte:
Gehe hierfür in die Menüleiste von »Gimp« auf BILD (1) und BILD SKALIEREN ... (2). Ändere bei BILDGRÖSSE den Wert für BREITE (3) auf 800. Achte darauf, dass die VERKNÜPFUNGSKETTE (4) geschlossen ist. Dann wird – sobald Du nach dem Eintragen der Breiten-Angabe die ENTER-Taste drückst – der Wert für HÖHE automatisch berechnet. Schließe das Fenster mit dem Button SKALIEREN.
Speichere Deine Arbeit mit DATEI (5) und »screenshot_Datum_Uhrzeit.png überschreiben« (6). Schließe »Gimp«. Falls ein Warnhinweis auf ungesicherte Bilder kommt, klicke auf ÄNDERUNGEN VERWERFEN.
Gehe erneut in den screenshots-Ordner von »Minetest« und kürze den vorhandenen Namen »screenshot_Datum_Uhrzeit.png« auf ein einfaches »screenshot.png«. Kopiere die umbenannte Datei in Deinen Mod-Ordner.
Hinweis: Falls Du Dich schon ein wenig mit »Gimp« auskennst, kannst Du natürlich auch statt BILD SKALIEREN mit dem Werkzeug ZUSCHNEIDEN die Bildgröße bearbeiten und noch weitere Bildmanipulationen vornehmen.
Speichere Deine Arbeit mit DATEI (5) und »screenshot_Datum_Uhrzeit.png überschreiben« (6). Schließe »Gimp«. Falls ein Warnhinweis auf ungesicherte Bilder kommt, klicke auf ÄNDERUNGEN VERWERFEN.
Gehe erneut in den screenshots-Ordner von »Minetest« und kürze den vorhandenen Namen »screenshot_Datum_Uhrzeit.png« auf ein einfaches »screenshot.png«. Kopiere die umbenannte Datei in Deinen Mod-Ordner.
Hinweis: Falls Du Dich schon ein wenig mit »Gimp« auskennst, kannst Du natürlich auch statt BILD SKALIEREN mit dem Werkzeug ZUSCHNEIDEN die Bildgröße bearbeiten und noch weitere Bildmanipulationen vornehmen.
Bitte immer beachten:
Wenn hier in der Aufgabenbeschreibung oder im vorgegebenen Übungsmaterial Ordner- und Dateinamen auftauchen, musst Du sie (fast immer) an Deine verwendeten Order- und Dateinamen anpassen.
Denke immer an die Namenskonventionen (keine Umlaute oder sonstige Sonderzeichen, keine Leerzeichen, alles kleinschreiben, keine Bindestriche, sondern Unterstriche, das erste Zeichen darf keine Ziffer sein ...).
Beim Programmieren machst Du Dir das Leben sehr viel einfacher, wenn Du zusammengehörige Elemente, die in geschweiften oder runden Klammern stehen, mit der TAB-Taste immer etwas nach folgendem Muster einrückst. So behältst Du leichter den Überblick:
Denke immer an die Namenskonventionen (keine Umlaute oder sonstige Sonderzeichen, keine Leerzeichen, alles kleinschreiben, keine Bindestriche, sondern Unterstriche, das erste Zeichen darf keine Ziffer sein ...).
Beim Programmieren machst Du Dir das Leben sehr viel einfacher, wenn Du zusammengehörige Elemente, die in geschweiften oder runden Klammern stehen, mit der TAB-Taste immer etwas nach folgendem Muster einrückst. So behältst Du leichter den Überblick:
groups = { cracky = 3, stone = 1 }
Für Ordner- und Dateinamen solltest Du Dir eine eigene Namens-Systematik ausdenken und streng befolgen. Dann kannst Du schnell mal den Quellcode aus einem »Mod« in einem anderen »Mod« verwenden und musst nur kleine Änderungen vornehmen.
Musterlösung: So könnte es aussehen
Versuche zunächst, eine eigene Lösung für die gestellten Aufgaben zu finden. Falls Du aber alleine nicht weiterkommst, kannst Du Dir unsere Musterlösung herunterladen.
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 ...
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 ...
Verwendung dieser Inhalte - auch in Auszügen - im Schulunterricht, der Jugendarbeit und im Bildungsbereich mit dem Vermerk »© multimediamobil – Region Süd« erlaubt.