Anleitungen / Bauen & Ressourcen
Drei Ressourcenpaket-Texturpfade sind flach. Der Mob-Pfad ist verschachtelt, und das ist noch das kleinste Problem
Items, Blöcke und Gemälde liegen eine Datei tief. Mobs liegen in einem nach ihnen benannten Ordner — und bei den meisten Mobs enthält dieser Ordner mehrere Dateien, sodass ein Einzeldatei-Override still danebengreift.
Eine Textur in einem Ressourcenpaket zu überschreiben bedeutet, eine PNG-Datei genau an den Pfad zu legen, an dem das Spiel nachsieht. Bei drei der vier gängigen Arten ist dieser Pfad völlig regelmäßig. Bei der vierten ist er es nicht, und die Unregelmäßigkeit ist schlimmer, als es zunächst scheint.
Die vier Pfade
assets/minecraft/textures/item/<name>.png
assets/minecraft/textures/block/<name>.png
assets/minecraft/textures/painting/<name>.png
assets/minecraft/textures/entity/<name>/<name>.png ← note the folder
Items, Blöcke und Gemälde sind eine Datei in einem gemeinsamen Verzeichnis. Ein Mob ist ein eigener Ordner, benannt nach dem Mob, der eine Datei enthält, die meist ebenfalls nach dem Mob benannt ist. Die Zombie- Textur ist also entity/zombie/zombie.png, nicht entity/zombie.png.
Beachte außerdem, dass Mobs unter entity/ liegen, nicht unter mob/ — der Ordner ist nach dem Code-Konzept benannt, nicht nach dem Spiel-Konzept.
Das eigentliche Problem ist, dass ein Mob oft nicht eine Datei ist
Die Verschachtelung ist leicht zu merken, wenn man sie einmal gesehen hat. Was Overrides tatsächlich kaputt macht, ist das, was sonst noch in diesem Ordner liegt.
Der Pfad <name>/<name>.png ist für diese zehn korrekt:
zombie · skeleton · creeper · sheep · spider · enderman · wolf · witch · blaze · villager
Bei sechs von ihnen — creeper, skeleton, spider, enderman, witch, blaze — ist diese eine Datei der ganze Mob (Leuchten der Augen und der Schimmer des geladenen Creepers sind separate Overlays). Zombie, Schaf, Dorfbewohner und Wolf behalten mehr daneben: Baby-Texturen, Schafwolle, Dorfbewohner-Berufe und Biomtypen, und acht weitere Wolf-Varianten — wolf.png ist nur der helle Wolf.
Alles andere behält seine Texturen möglicherweise in einem anderen Unterordner oder verteilt sie über mehrere Dateien — Baby-Varianten, gezähmte Varianten, Farbvarianten. Ein Pferd ist nicht ein Bild. Eine Katze ist nicht ein Bild. Eine einzelne Datei in diesen Fällen zu ersetzen, ändert einen Zustand des Mobs und lässt den Rest unberührt, was im Spiel so wirkt, als wäre „mein Paket nur halb angewendet".
Das ist der Fehlermodus, den man verinnerlichen sollte: Ein falscher Pfad zeigt gar keine Texturänderung, aber ein unvollständiger Satz von Pfaden zeigt eine teilweise — und der zweite ist viel schwerer zu diagnostizieren, weil das Paket nachweislich funktioniert.
Priorität geht von der höchsten zuerst, was nicht das ist, was eine Zip-Datei vermuten lässt
Wenn Pakete zusammengeführt werden, gewinnt das zuerst aufgeführte Paket bei Pfadkonflikten. Index 0 hat die höchste Priorität.
Das ist erwähnenswert, weil es das mentale Modell umkehrt, das man vom Schichten von Dateien kennt, bei dem das zuletzt Geschriebene gewinnt. Hier ist das erste Paket in der Liste dasjenige, dessen Version von item/diamond_sword.png überlebt; alles darunter füllt nur Pfade auf, die die darüberliegenden nicht beansprucht haben.
Zwei Details zur Paketidentität
pack.png ist das Icon und liegt im Zip-Wurzelverzeichnis, nicht unter assets/. Es wird auf 64 × 64 quadriert — ein nicht quadratisches Bild wird eher skaliert als mit Letterbox versehen, ein auf 16:9 ausgelegtes Icon kommt also verzerrt statt aufgefüllt heraus.
Farbcodes im Paketnamen sind wörtlicher Text. Die Zeichen § gehen genau so, wie sie getippt wurden, in pack.mcmeta und Minecraft rendert sie zur Anzeigezeit: §a grün, §c rot, §b aqua, §e gelb, §d pink, §l fett, §r zurücksetzen. Es gibt keinen Escaping-Schritt und keine JSON-Textkomponente — das rohe Paragraphenzeichen in einer einfachen Zeichenkette ist der ganze Mechanismus.