diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Entity.java b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Entity.java index 27408a9..76ca3af 100644 --- a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Entity.java +++ b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/Entity.java @@ -76,8 +76,13 @@ public class Entity { JsonObject description = json.get("minecraft:client_entity").getAsJsonObject().get("description").getAsJsonObject(); JsonObject jsonAnimations = description.get("animations").getAsJsonObject(); JsonObject jsonTextures = description.get("textures").getAsJsonObject(); + JsonObject jsonMaterials = description.get("materials").getAsJsonObject(); + JsonArray jsonRenderControllers = description.get("render_controllers").getAsJsonArray(); + Map materials = getModelConfig().getTextureMaterials(); + materials.forEach(jsonMaterials::addProperty); + for (String name : textureMap.keySet()) { jsonTextures.addProperty(name,"textures/entity/" + path + modelId + "/" + name); diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/ModelConfig.java b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/ModelConfig.java index 36ae504..d2f0419 100644 --- a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/ModelConfig.java +++ b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/ModelConfig.java @@ -26,6 +26,12 @@ public class ModelConfig { Map> bingingBones = new HashMap<>(); @SerializedName("anim_textures") Map animTextures = new HashMap<>(); + @SerializedName("texture_materials") + Map textureMaterials = new HashMap<>(); + + public Map getTextureMaterials() { + return textureMaterials != null ? textureMaterials : Map.of(); + } @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/RenderController.java b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/RenderController.java index cfe97ae..c36e639 100644 --- a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/RenderController.java +++ b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/RenderController.java @@ -40,8 +40,11 @@ public class RenderController { controller.addProperty("geometry", "Geometry.default"); JsonArray materials = new JsonArray(); + String material = entity.getModelConfig().getTextureMaterials().get(key); JsonObject materialItem = new JsonObject(); - if (anim != null) { + if (material != null) { + materialItem.addProperty("*", "Material." + material); + } else if (anim != null) { materialItem.addProperty("*", "Material.anim"); JsonObject uvAnim = new JsonObject(); controller.add("uv_anim", uvAnim);