Fixed NPE caused by accessing undefined layer in MultiLayerModel.

This commit is contained in:
RainWarrior 2015-12-20 22:14:21 +03:00
parent f8473adf6f
commit 56f35f4401
1 changed files with 8 additions and 1 deletions

View File

@ -106,6 +106,7 @@ public class MultiLayerModel implements IModelCustomData
private final ImmutableMap<Optional<EnumWorldBlockLayer>, ModelResourceLocation> models;
private final VertexFormat format;
private final ImmutableMap<TransformType, TRSRTransformation> cameraTransforms;;
private IBakedModel missing;
private IBakedModel base;
private ImmutableMap<EnumWorldBlockLayer, IBakedModel> bakedModels;
private ImmutableMap<Optional<EnumFacing>, ImmutableList<BakedQuad>> quads;
@ -122,6 +123,7 @@ public class MultiLayerModel implements IModelCustomData
if(base == null)
{
ModelManager manager = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getModelManager();
missing = manager.getMissingModel();
base = getModel(manager, Optional.<EnumWorldBlockLayer>absent());
ImmutableMap.Builder<EnumWorldBlockLayer, IBakedModel> builder = ImmutableMap.builder();
@ -223,7 +225,12 @@ public class MultiLayerModel implements IModelCustomData
public IBakedModel handleBlockState(IBlockState state)
{
compute();
return bakedModels.get(MinecraftForgeClient.getRenderLayer());
EnumWorldBlockLayer layer = MinecraftForgeClient.getRenderLayer();
if(!bakedModels.containsKey(layer))
{
return missing;
}
return bakedModels.get(layer);
}
@Override