From 98e12c7c3e465ecf59b50754efd3e0aed252b88b Mon Sep 17 00:00:00 2001 From: parly Date: Fri, 27 Sep 2019 23:36:03 +0900 Subject: [PATCH] Quick patch to fix rendering issues with OptiFine OptiFine seems to cause NullPointerException when it cannot find loader.spriteAtlas::getSprite method in ModelItemPropertyOverrideList constructor. Fixes #1 --- .../computercraft/client/render/TurtleModelLoader.java | 1 + .../computercraft/client/render/TurtleSmartItemModel.java | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/dan200/computercraft/client/render/TurtleModelLoader.java b/src/main/java/dan200/computercraft/client/render/TurtleModelLoader.java index 2df24ae1b..a678fd96d 100644 --- a/src/main/java/dan200/computercraft/client/render/TurtleModelLoader.java +++ b/src/main/java/dan200/computercraft/client/render/TurtleModelLoader.java @@ -84,6 +84,7 @@ public final class TurtleModelLoader public BakedModel bake( @Nonnull ModelLoader loader, @Nonnull Function spriteGetter, @Nonnull ModelBakeSettings state ) { return new TurtleSmartItemModel( + loader, loader.getOrLoadModel( family ).bake( loader, spriteGetter, state ), loader.getOrLoadModel( COLOUR_TURTLE_MODEL ).bake( loader, spriteGetter, state ) ); diff --git a/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java b/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java index 9edf5b4b6..b596c2cff 100644 --- a/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java +++ b/src/main/java/dan200/computercraft/client/render/TurtleSmartItemModel.java @@ -17,6 +17,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.BakedModelManager; import net.minecraft.client.render.model.BakedQuad; +import net.minecraft.client.render.model.ModelLoader; import net.minecraft.client.render.model.json.ModelItemPropertyOverrideList; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.texture.Sprite; @@ -106,13 +107,13 @@ public class TurtleSmartItemModel implements BakedModel private HashMap m_cachedModels; private ModelItemPropertyOverrideList m_overrides; - public TurtleSmartItemModel( BakedModel familyModel, BakedModel colourModel ) + public TurtleSmartItemModel( ModelLoader loader, BakedModel familyModel, BakedModel colourModel ) { this.familyModel = familyModel; this.colourModel = colourModel; m_cachedModels = new HashMap<>(); - m_overrides = new ModelItemPropertyOverrideList( null, null, null, Collections.emptyList() ) + m_overrides = new ModelItemPropertyOverrideList( loader, null, null, Collections.emptyList() ) { @Nonnull @Override