iNBTEdit

 

Ich habe mich die letzen Tage hingesetzt und mir die Finger glühend geschrieben. Das Ergebnis: iNBTEdit, ein Editor für NBT Dateien.

Jetzt wird man sich fragen: „NBT? Was ist das denn?“. NBT steht für „Named Binary Tag“. Dies ist ein Dateiformat, das Notch (Markus Persson) für das Spiel Minecraft geschrieben hat. Folglich werden darin Minecraft Daten gespeichert.

 

NBT Editoren gibt es schon ein paar, leider aber keinen funktionstüchtigen für den Mac. Darum habe ich mir selber einen programmiert.

Doch wozu braucht man das? Ganz einfach: Man kann damit etwas beliebiges an einer Minecraft Welt ändern, ohne das man das Spiel starte, oder sich Mods besorgen muss. Das heißt ich kann mit dem Editor z.B. mein Inventar bearbeiten. Es gibt auch Einstellungen, an die man nur mit einem NBT-Editor herankommt. Des Weiteren kann man Map-Dateien (die Ingame-Karten) bearbeiten, als auch alle anderen Minecraft Dateien mit der Dateiendung „.dat“.

Wert ändern

 

Man öffnet also eine „.dat“ Datei und kann sich die Baumstruktur anschauen, die Namen der Elemente ändern und die Werte der Elemente. Was bis jetzt noch nicht geht, ist den Typ eines Elements zu ändern bzw. neue Elemente hinzuzufügen. Vielleicht baue ich das aber später noch ein.

 

 

Map

 

Mit dem Editor lassen sich, wie schon gesagt, auch Map-Dateien öffnen. Dabei habe ich eine besondere Spielerei eingebaut, und zwar einen kleinen Bildkonverter. Diesem kann man eine PNG-Datei geben, und er ändert sie so, dass sie nur noch die Farben einer Minecraft-Map besitzt.

 

 

Bild laden

 

Dabei wird jeweils die am nächsten zur Originalfarbe gelegene Farbe benutzt. Das Ergebnis wird umformatiert und als ein Byte-Array in die Datenstruktur geschrieben. Damit kann man jedes Bild, dass 128×128 Pixel hat, in eine Minecraft-Map „hineinkopieren“.

 

Graustufen-Bild laden

 

Da ich zum Teil Probleme mit den Farben hatte, habe ich mir überlegt, dass es bei manchen Bildern sinnvoll ist, statt Farben nur Graustufen darzustellen. Also habe ich auch eine solche Option hinzugefügt.

 

 

 

Bild in Minecraft

Für mich war das Wichtigste, das ich lerne, wie ein solches Dateiformat aufgebaut ist und wie man damit programmiertechnisch umgehen kann. Ich denke, es ist sehr interessant, sich von einer technisch so hohen Ebene (wie xCode), auf solch eine niedriges aber anspruchsvolles Level zu begeben und einzelne Bytes aus einem Datenstrom zu interpretieren. Das Ergebnis sieht man hier.

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.