From d3d772fbdb9464163fa0f4e6eeb1c6e90757b10d Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sat, 24 Dec 2016 15:12:52 -0600 Subject: [PATCH] Refresh client caches when fancy graphics changes ( leaf fix ) Clear Side Cache as well, this was a missing cache clear. --- .../chiseledblock/ChiseledBlockSmartModel.java | 1 + .../tesr/ChisledBlockRenderChunkTESR.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/mod/chiselsandbits/render/chiseledblock/ChiseledBlockSmartModel.java b/src/main/java/mod/chiselsandbits/render/chiseledblock/ChiseledBlockSmartModel.java index 49b63d6b..42fed132 100644 --- a/src/main/java/mod/chiselsandbits/render/chiseledblock/ChiseledBlockSmartModel.java +++ b/src/main/java/mod/chiselsandbits/render/chiseledblock/ChiseledBlockSmartModel.java @@ -317,6 +317,7 @@ public void clearCache() modelCache[l.ordinal()].clear(); } + sideCache.clear(); solidCache.clear(); itemToModel.clear(); } diff --git a/src/main/java/mod/chiselsandbits/render/chiseledblock/tesr/ChisledBlockRenderChunkTESR.java b/src/main/java/mod/chiselsandbits/render/chiseledblock/tesr/ChisledBlockRenderChunkTESR.java index 7a666145..80ae0c31 100644 --- a/src/main/java/mod/chiselsandbits/render/chiseledblock/tesr/ChisledBlockRenderChunkTESR.java +++ b/src/main/java/mod/chiselsandbits/render/chiseledblock/tesr/ChisledBlockRenderChunkTESR.java @@ -23,6 +23,7 @@ import mod.chiselsandbits.chiseledblock.EnumTESRRenderState; import mod.chiselsandbits.chiseledblock.TileEntityBlockChiseled; import mod.chiselsandbits.chiseledblock.TileEntityBlockChiseledTESR; +import mod.chiselsandbits.chiseledblock.data.VoxelBlob; import mod.chiselsandbits.core.ChiselsAndBits; import mod.chiselsandbits.core.ClientSide; import mod.chiselsandbits.core.Log; @@ -220,6 +221,8 @@ public void debugScreen( } } + int lastFancy = -1; + @SubscribeEvent public void nextFrame( final RenderWorldLastEvent e ) @@ -227,6 +230,15 @@ public void nextFrame( runJobs( getTracker().nextFrameTasks ); uploadDisplaylists(); + + // this seemingly stupid check fixes leaves, other wise we use fast + // until the atlas refreshes. + final int currentFancy = Minecraft.getMinecraft().gameSettings.fancyGraphics ? 1 : 0; + if ( currentFancy != lastFancy ) + { + lastFancy = currentFancy; + VoxelBlob.clearCache(); + } } private void uploadDisplaylists()