diff --git a/src/main/java/net/minecraftforge/client/model/MultiLayerModel.java b/src/main/java/net/minecraftforge/client/model/MultiLayerModel.java index b3deb51c7d..396268f4f7 100644 --- a/src/main/java/net/minecraftforge/client/model/MultiLayerModel.java +++ b/src/main/java/net/minecraftforge/client/model/MultiLayerModel.java @@ -131,48 +131,30 @@ public final class MultiLayerModel implements IModel private final ImmutableMap cameraTransforms; private final IBakedModel base; private final IBakedModel missing; - private final ImmutableMap, ImmutableList> quads; public MultiLayerBakedModel(ImmutableMap, IBakedModel> models, IBakedModel missing, ImmutableMap cameraTransforms) { this.models = models; this.cameraTransforms = cameraTransforms; this.missing = missing; - base = models.getOrDefault(Optional.empty(), missing); - ImmutableMap.Builder, ImmutableList> quadBuilder = ImmutableMap.builder(); - quadBuilder.put(Optional.empty(), buildQuads(models, Optional.empty())); - for(EnumFacing side: EnumFacing.values()) - { - quadBuilder.put(Optional.of(side), buildQuads(models, Optional.of(side))); - } - quads = quadBuilder.build(); - } - - private static ImmutableList buildQuads(ImmutableMap, IBakedModel> models, Optional side) - { - ImmutableList.Builder builder = ImmutableList.builder(); - for(IBakedModel model : models.values()) - { - builder.addAll(model.getQuads(null, side.orElse(null), 0)); - } - return builder.build(); + this.base = models.getOrDefault(Optional.empty(), missing); } @Override public List getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand) { - IBakedModel model; BlockRenderLayer layer = MinecraftForgeClient.getRenderLayer(); - if(layer == null) + if (layer == null) { - return quads.get(Optional.ofNullable(side)); - } - else - { - model = models.getOrDefault(Optional.of(layer), missing); + ImmutableList.Builder builder = ImmutableList.builder(); + for (IBakedModel model : models.values()) + { + builder.addAll(model.getQuads(state, side, rand)); + } + return builder.build(); } // assumes that child model will handle this state properly. FIXME? - return model.getQuads(state, side, rand); + return models.getOrDefault(Optional.of(layer), missing).getQuads(state, side, rand); } @Override diff --git a/src/main/java/net/minecraftforge/client/model/MultiModel.java b/src/main/java/net/minecraftforge/client/model/MultiModel.java index 34e01059cd..e121fe8865 100644 --- a/src/main/java/net/minecraftforge/client/model/MultiModel.java +++ b/src/main/java/net/minecraftforge/client/model/MultiModel.java @@ -50,7 +50,6 @@ import net.minecraftforge.fml.common.FMLLog; import org.apache.commons.lang3.tuple.Pair; import java.util.function.Function; -import java.util.Optional; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; @@ -68,7 +67,6 @@ public final class MultiModel implements IModel private final ImmutableMap parts; private final IBakedModel internalBase; - private ImmutableMap, ImmutableList> quads; private final ImmutableMap> transforms; private final ItemOverrideList overrides = new ItemOverrideList(Lists.newArrayList()) { @@ -187,36 +185,16 @@ public final class MultiModel implements IModel @Override public List getQuads(@Nullable IBlockState state, @Nullable EnumFacing side, long rand) { - if(quads == null) + ImmutableList.Builder quads = ImmutableList.builder(); + if (base != null) { - ImmutableMap.Builder, ImmutableList> builder = ImmutableMap.builder(); - - for (EnumFacing face : EnumFacing.values()) - { - ImmutableList.Builder quads = ImmutableList.builder(); - if (base != null) - { - quads.addAll(base.getQuads(state, face, 0)); - } - for (IBakedModel bakedPart : parts.values()) - { - quads.addAll(bakedPart.getQuads(state, face, 0)); - } - builder.put(Optional.of(face), quads.build()); - } - ImmutableList.Builder quads = ImmutableList.builder(); - if (base != null) - { - quads.addAll(base.getQuads(state, null, 0)); - } - for (IBakedModel bakedPart : parts.values()) - { - quads.addAll(bakedPart.getQuads(state, null, 0)); - } - builder.put(Optional.empty(), quads.build()); - this.quads = builder.build(); + quads.addAll(base.getQuads(state, side, rand)); } - return quads.get(Optional.ofNullable(side)); + for (IBakedModel bakedPart : parts.values()) + { + quads.addAll(bakedPart.getQuads(state, side, rand)); + } + return quads.build(); } @Override