From 92466397094175789ed7f491686c990865a4c3c2 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Sat, 10 Sep 2016 13:41:56 +0200 Subject: [PATCH] Fixes missing model exceptions being swallowed by Forge due to our model customization step. --- .../bootstrap/components/ModelOverrideComponent.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/appeng/bootstrap/components/ModelOverrideComponent.java b/src/main/java/appeng/bootstrap/components/ModelOverrideComponent.java index 2da8c8cf..a534e7f8 100644 --- a/src/main/java/appeng/bootstrap/components/ModelOverrideComponent.java +++ b/src/main/java/appeng/bootstrap/components/ModelOverrideComponent.java @@ -22,6 +22,8 @@ import appeng.core.AppEng; public class ModelOverrideComponent implements PreInitComponent { + private static final ModelResourceLocation MODEL_MISSING = new ModelResourceLocation("builtin/missing", "missing"); + // Maps from resource path to customizer private final Map> customizer = new HashMap<>(); @@ -41,6 +43,7 @@ public class ModelOverrideComponent implements PreInitComponent { IRegistry modelRegistry = event.getModelRegistry(); Set keys = Sets.newHashSet( modelRegistry.getKeys() ); + IBakedModel missingModel = modelRegistry.getObject( MODEL_MISSING ); for( ModelResourceLocation location : keys ) { @@ -49,10 +52,17 @@ public class ModelOverrideComponent implements PreInitComponent continue; } + IBakedModel orgModel = modelRegistry.getObject( location ); + + // Don't customize the missing model. This causes Forge to swallow exceptions + if( orgModel == missingModel ) + { + continue; + } + BiFunction customizer = this.customizer.get( location.getResourcePath() ); if( customizer != null ) { - IBakedModel orgModel = modelRegistry.getObject( location ); IBakedModel newModel = customizer.apply( location, orgModel ); if( newModel != orgModel )