From e580d3b6b6dcedbe240a87c570076c24c20bc612 Mon Sep 17 00:00:00 2001 From: Zaggy1024 Date: Fri, 24 Jul 2015 13:20:10 -0500 Subject: [PATCH] Fixed a Forge blockstates json removing models causing an NPE in the loader. Fixed the deep clone of a V1 Variant not cloning the submodels properly. --- .../client/model/ForgeBlockStateV1.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/client/model/ForgeBlockStateV1.java b/src/main/java/net/minecraftforge/client/model/ForgeBlockStateV1.java index e7fde74590..630c7ef329 100644 --- a/src/main/java/net/minecraftforge/client/model/ForgeBlockStateV1.java +++ b/src/main/java/net/minecraftforge/client/model/ForgeBlockStateV1.java @@ -6,6 +6,7 @@ import java.util.Collection; import java.util.Collections; import java.util.EnumMap; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -146,6 +147,16 @@ public class ForgeBlockStateV1 extends Marker part.state = state; } } + + Iterator> iter = v.submodels.values().iterator(); + + while (iter.hasNext()) + { + List submodel = iter.next(); + + if (submodel == null) + iter.remove(); + } if (v.textures != null) { @@ -283,7 +294,7 @@ public class ForgeBlockStateV1 extends Marker this.uvLock = other.uvLock; this.weight = other.weight; this.textures.putAll(other.textures); - this.submodels.putAll(other.submodels); + this.mergeModelPartVariants(this.submodels, other.submodels); this.simpleSubmodels.putAll(other.simpleSubmodels); this.customData.putAll(other.customData); }