Zum Hauptinhalt springen

FreeMinecraftModels Ressourcenpaket-Ausgabe

FreeMinecraftModels schreibt sein generiertes Paket derzeit nach output, nicht nach outputs.

Standard-Ausgabepfade

Das Plugin erstellt diesen Ordner beim Start und bei /fmm reload neu:

plugins/FreeMinecraftModels/output/FreeMinecraftModels

Anschließend wird dieser Ordner gezippt zu:

plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip

Dieser Zip-Pfad ist derjenige, den ResourcePackManager erwartet, wenn er mit FreeMinecraftModels integriert wird.

Was generiert wird

Der generierte Ordner enthält immer:

  • pack.mcmeta
  • pack.png
  • assets/minecraft/atlases/blocks.json
  • assets/freeminecraftmodels/... Modell- und Texturausgabe

Für Minecraft 1.21.4+ generiert FreeMinecraftModels Item-Modell-Definitionsdateien unter:

assets/freeminecraftmodels/items

Für ältere Server wird auf den Legacy-Leder-Pferderüstungs-Override-Modellpfad zurückgefallen.

Display-Model-Ausgabe (1.21.4+)

Wenn ein Modell eine begleitende .json-Display-Model-Datei hat (siehe Hinweise zur Modellerstellung), kopiert FMM dieses JSON (mit umgeschriebenen Texturreferenzen, die zu den extrahierten Texturen passen) nach:

assets/freeminecraftmodels/models/display/{modelId}.json

Es generiert auch eine entsprechende Item-Definition unter:

assets/freeminecraftmodels/items/display/{modelId}.json

Die DisplayModelRegistry verfolgt, welche Modelle zur Laufzeit Display-JSONs haben, damit ItemMeta.setItemModel() auf ItemStacks aufgerufen werden kann, um ihnen die korrekte In-Hand- und Inventar-Darstellung zu geben.

Bedingte Bogen- und Armbrust-Item-Ausgabe

Wenn FMM einen Satz von Bogen- oder Armbrust-Zustandsmodellen erkennt (siehe Hinweise zur Modellerstellung), generiert es eine einzelne Item-Definitions-JSON für das _idle-Modell, die bedingt zwischen allen Zuständen auf Ressourcenpaket-Ebene wechselt. Keine serverseitige Paketarbeit nötig -- der Client handhabt Zustandsübergänge nativ.

Bogen-Ausgabe

Für Bögen verwendet die generierte Item-Definition minecraft:condition auf using_item mit einem minecraft:range_dispatch auf use_duration (Skala 0.05):

BedingungVerwendetes Modell
Item nicht in Benutzung_idle
In Benutzung, Fallback (gerade gestartet)_draw_start
In Benutzung, Schwellenwert 0.65_draw_half
In Benutzung, Schwellenwert 0.9_draw_full

Armbrust-Ausgabe

Für Armbrüste verwendet die generierte Item-Definition minecraft:select auf charge_type. Wenn geladen (Pfeil oder Rakete), zeigt sie das _charged-Modell. Der ungeladene Fallback verwendet minecraft:range_dispatch auf crossbow/pull:

BedingungVerwendetes Modell
Nicht in Benutzung, nicht geladen_idle
In Benutzung, Fallback (gerade gestartet)_draw_start
In Benutzung, Schwellenwert 0.58_draw_half
In Benutzung, Schwellenwert 1.0_draw_full
Geladen (Pfeil oder Rakete)_charged

Ausgabeort

Die generierte bedingte Item-Definition wird zusammen mit anderen Item-Definitionen geschrieben unter:

assets/freeminecraftmodels/items/display/{baseModelId}_idle.json

Nur das _idle-Modell bekommt eine Item-Definitionsdatei. Die Spann- und Lademodelle werden darin als bedingte Einträge referenziert.

Reload-Verhalten

Wenn FreeMinecraftModels neu geladen wird, geschieht Folgendes:

  • Der Inhaltsimport-Schritt wird erneut durchgeführt
  • Der output/FreeMinecraftModels-Ordner wird neu erstellt
  • output/FreeMinecraftModels.zip wird neu generiert
  • resourcepackmanager reload wird ausgeführt, wenn ResourcePackManager installiert ist

Deshalb benötigen moderne FMM + ResourcePackManager-Setups den alten manuellen Zip-Kopier-Workflow nicht mehr.