diff --git a/patches/minecraft/net/minecraft/client/renderer/model/ItemModelGenerator.java.patch b/patches/minecraft/net/minecraft/client/renderer/model/ItemModelGenerator.java.patch new file mode 100644 index 000000000..e8d735c60 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/model/ItemModelGenerator.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/client/renderer/model/ItemModelGenerator.java ++++ b/net/minecraft/client/renderer/model/ItemModelGenerator.java +@@ -36,6 +36,7 @@ + map.put("particle", p_209579_2_.func_178300_b("particle") ? Either.left(p_209579_2_.func_228816_c_("particle")) : map.get("layer0")); + BlockModel blockmodel = new BlockModel((ResourceLocation)null, list, map, false, false, p_209579_2_.func_181682_g(), p_209579_2_.func_187966_f()); + blockmodel.field_178317_b = p_209579_2_.field_178317_b; ++ blockmodel.customData.copyFrom(p_209579_2_.customData); + return blockmodel; + } + diff --git a/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java b/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java index 0d90d756a..01978c7a8 100644 --- a/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java +++ b/src/main/java/net/minecraftforge/client/model/obj/OBJModel.java @@ -121,26 +121,14 @@ public class OBJModel implements IMultipartModelGeometry if (!Objects.equals(newMat, currentMat)) { currentMat = newMat; - if (currentMesh != null && currentMesh.mat == null) + if (currentMesh != null && currentMesh.mat == null && currentMesh.faces.size() == 0) { currentMesh.mat = currentMat; } else { - currentMesh = new ModelMesh(currentMat, currentSmoothingGroup); - if (currentObject != null) - { - currentObject.meshes.add(currentMesh); - } - else - { - if (currentGroup == null) - { - currentGroup = new ModelGroup(""); - parts.put("", currentGroup); - } - currentGroup.meshes.add(currentMesh); - } + // Start new mesh + currentMesh = null; } } break; @@ -216,26 +204,14 @@ public class OBJModel implements IMultipartModelGeometry if (!Objects.equals(currentSmoothingGroup, smoothingGroup)) { currentSmoothingGroup = smoothingGroup; - if (currentMesh != null && currentMesh.smoothingGroup == null) + if (currentMesh != null && currentMesh.smoothingGroup == null && currentMesh.faces.size() == 0) { currentMesh.smoothingGroup = currentSmoothingGroup; } else { - currentMesh = new ModelMesh(currentMat, currentSmoothingGroup); - if (currentObject != null) - { - currentObject.meshes.add(currentMesh); - } - else - { - if (currentGroup == null) - { - currentGroup = new ModelGroup(""); - parts.put("", currentGroup); - } - currentGroup.meshes.add(currentMesh); - } + // Start new mesh + currentMesh = null; } } break; @@ -246,19 +222,17 @@ public class OBJModel implements IMultipartModelGeometry String name = line[1]; if (objAboveGroup) { - currentObject = new ModelObject(name); - if (currentMat != null || currentSmoothingGroup != null ) - currentObject.meshes.add(new ModelMesh(currentMat, currentSmoothingGroup)); + currentObject = new ModelObject(currentGroup.name() + "/" + name); currentGroup.parts.put(name, currentObject); } else { currentGroup = new ModelGroup(name); - if (currentMat != null || currentSmoothingGroup != null ) - currentGroup.meshes.add(new ModelMesh(currentMat, currentSmoothingGroup)); parts.put(name, currentGroup); currentObject = null; } + // Start new mesh + currentMesh = null; break; } @@ -270,18 +244,16 @@ public class OBJModel implements IMultipartModelGeometry objAboveGroup = true; currentGroup = new ModelGroup(name); - if (currentMat != null || currentSmoothingGroup != null ) - currentGroup.meshes.add(new ModelMesh(currentMat, currentSmoothingGroup)); parts.put(name, currentGroup); currentObject = null; } else { - currentObject = new ModelObject(name); - if (currentMat != null || currentSmoothingGroup != null ) - currentObject.meshes.add(new ModelMesh(currentMat, currentSmoothingGroup)); + currentObject = new ModelObject(currentGroup.name() + "/" + name); currentGroup.parts.put(name, currentObject); } + // Start new mesh + currentMesh = null; break; } } diff --git a/src/test/resources/META-INF/mods.toml b/src/test/resources/META-INF/mods.toml index 2bd162409..69bd02b9e 100644 --- a/src/test/resources/META-INF/mods.toml +++ b/src/test/resources/META-INF/mods.toml @@ -47,7 +47,7 @@ loaderVersion="[28,)" modId="flower_pot_test" [[mods]] modId="player_xp_event_test" -[[mods]] - modId="custom_tnt_test" +##[[mods]] +## modId="custom_tnt_test" [[mods]] modId="new_model_loader_test"