diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java index 690a488881..39d00d5d63 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java +++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java @@ -670,7 +670,7 @@ public final class ModelLoader extends ModelBakery textures.addAll(model.getTextures()); // Kick this, just in case. models.add(model); - builder.add(Pair.of(model, v.getState())); + builder.add(Pair.of(model, new ModelStateComposition(v.getState(), model.getDefaultState()))); } if (models.size() == 0) //If all variants are missing, add one with the missing model and default rotation. diff --git a/src/main/java/net/minecraftforge/client/model/b3d/B3DLoader.java b/src/main/java/net/minecraftforge/client/model/b3d/B3DLoader.java index 17986bdd3b..1acc3da988 100644 --- a/src/main/java/net/minecraftforge/client/model/b3d/B3DLoader.java +++ b/src/main/java/net/minecraftforge/client/model/b3d/B3DLoader.java @@ -496,6 +496,9 @@ public enum B3DLoader implements ICustomModelLoader @Override public ModelWrapper process(ImmutableMap data) { + ImmutableSet newMeshes = this.meshes; + int newDefaultKey = this.defaultKey; + boolean hasChanged = false; if(data.containsKey("mesh")) { JsonElement e = new JsonParser().parse(data.get("mesh")); @@ -518,7 +521,8 @@ public enum B3DLoader implements ICustomModelLoader return this; } } - return new ModelWrapper(modelLocation, model, builder.build(), smooth, gui3d, defaultKey, textures); + newMeshes = builder.build(); + hasChanged = true; } else { @@ -531,7 +535,8 @@ public enum B3DLoader implements ICustomModelLoader JsonElement e = new JsonParser().parse(data.get("key")); if(e.isJsonPrimitive() && e.getAsJsonPrimitive().isNumber()) { - return new ModelWrapper(modelLocation, model, meshes, smooth, gui3d, e.getAsNumber().intValue(), textures); + newDefaultKey = e.getAsNumber().intValue(); + hasChanged = true; } else { @@ -539,7 +544,7 @@ public enum B3DLoader implements ICustomModelLoader return this; } } - return this; + return hasChanged ? new ModelWrapper(modelLocation, model, newMeshes, smooth, gui3d, newDefaultKey, textures) : this; } @Override