diff --git a/src/main/java/makamys/neodymium/Compat.java b/src/main/java/makamys/neodymium/Compat.java index 146a425..73c84f0 100644 --- a/src/main/java/makamys/neodymium/Compat.java +++ b/src/main/java/makamys/neodymium/Compat.java @@ -49,6 +49,14 @@ public static void init() { IS_HODGEPODGE_SPEEDUP_ANIMATIONS_ENABLED = checkIfHodgepodgeSpeedupAnimationsIsEnabled(); } + + public static boolean enableVanillaChunkMeshes() { + return Config.enableVanillaChunkMeshes && !isFalseTweaksModPresent(); + } + + public static boolean keepRenderListLogic() { + return enableVanillaChunkMeshes() || Constants.KEEP_RENDER_LIST_LOGIC; + } private static boolean checkIfHodgepodgeSpeedupAnimationsIsEnabled() { boolean result = false; diff --git a/src/main/java/makamys/neodymium/config/Config.java b/src/main/java/makamys/neodymium/config/Config.java index 7543ff6..8cad6a0 100644 --- a/src/main/java/makamys/neodymium/config/Config.java +++ b/src/main/java/makamys/neodymium/config/Config.java @@ -81,7 +81,7 @@ public class Config { public static boolean showDebugInfo; @ConfigBoolean(cat="debug", def=false) public static boolean wireframe; - @ConfigBoolean(cat="debug", def=false, com="Enable building of vanilla chunk meshes. Makes it possible to switch to the vanilla renderer on the fly, at the cost of reducing chunk update performance.") + @ConfigBoolean(cat="debug", def=false, com="Enable building of vanilla chunk meshes. Makes it possible to switch to the vanilla renderer on the fly, at the cost of reducing chunk update performance. Also fixes compatibility with Factorization (see issue #49).\nCompatibility note: Not compatible with FalseTweaks, so enabling this will have no effect if FalseTweaks is present.") public static boolean enableVanillaChunkMeshes; private static Configuration config; diff --git a/src/main/java/makamys/neodymium/mixin/MixinRenderGlobal.java b/src/main/java/makamys/neodymium/mixin/MixinRenderGlobal.java index 76593b0..bdbc56a 100644 --- a/src/main/java/makamys/neodymium/mixin/MixinRenderGlobal.java +++ b/src/main/java/makamys/neodymium/mixin/MixinRenderGlobal.java @@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import makamys.neodymium.Constants; +import makamys.neodymium.Compat; import makamys.neodymium.Neodymium; import net.minecraft.client.renderer.RenderGlobal; import net.minecraft.client.renderer.WorldRenderer; @@ -41,7 +41,7 @@ private void blockVanillaChunkRendering(int p1, double p2, CallbackInfo ci) { public void preRenderSortedRenderers(int startRenderer, int numRenderers, int renderPass, double partialTickTime, CallbackInfoReturnable cir) { if(Neodymium.isActive()) { int updated = Neodymium.renderer.preRenderSortedRenderers(renderPass, partialTickTime, sortedWorldRenderers); - if(!Constants.KEEP_RENDER_LIST_LOGIC) { + if(!Compat.keepRenderListLogic()) { cir.setReturnValue(updated); } } diff --git a/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java b/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java index b609a82..725b6f8 100644 --- a/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java +++ b/src/main/java/makamys/neodymium/mixin/MixinWorldRenderer.java @@ -2,7 +2,6 @@ import com.google.common.collect.Lists; import makamys.neodymium.Compat; -import makamys.neodymium.Constants; import makamys.neodymium.Neodymium; import makamys.neodymium.ducks.ITessellator; import makamys.neodymium.ducks.IWorldRenderer; @@ -113,7 +112,7 @@ private void prePreRenderBlocks(int pass, CallbackInfo ci) { target = "Lorg/lwjgl/opengl/GL11;glNewList(II)V"), require = 1) private void noNewList(int list, int mode) { - if (!Neodymium.isActive() || Constants.KEEP_RENDER_LIST_LOGIC) { + if (!Neodymium.isActive() || Compat.keepRenderListLogic()) { GL11.glNewList(list, mode); } } @@ -123,7 +122,7 @@ private void noNewList(int list, int mode) { target = "Lorg/lwjgl/opengl/GL11;glEndList()V"), require = 1) private void noEndList() { - if (!Neodymium.isActive() || Constants.KEEP_RENDER_LIST_LOGIC) + if (!Neodymium.isActive() || Compat.keepRenderListLogic()) GL11.glEndList(); } diff --git a/src/main/java/makamys/neodymium/renderer/NeoRenderer.java b/src/main/java/makamys/neodymium/renderer/NeoRenderer.java index 3132b55..f5b80bd 100644 --- a/src/main/java/makamys/neodymium/renderer/NeoRenderer.java +++ b/src/main/java/makamys/neodymium/renderer/NeoRenderer.java @@ -5,7 +5,6 @@ import com.falsepattern.rple.api.client.RPLEShaderConstants; import lombok.val; import makamys.neodymium.Compat; -import makamys.neodymium.Constants; import makamys.neodymium.Neodymium; import makamys.neodymium.config.Config; import makamys.neodymium.ducks.IWorldRenderer; @@ -148,7 +147,7 @@ public int preRenderSortedRenderers(int renderPass, double alpha, WorldRenderer[ initIndexBuffers(); - if(!Constants.KEEP_RENDER_LIST_LOGIC && !Compat.isFalseTweaksModPresent()) { + if(!Compat.keepRenderListLogic() && !Compat.isFalseTweaksModPresent()) { updateRenderGlobalStats(); } } @@ -211,7 +210,7 @@ private void initIndexBuffers() { for (int j = piCount[i].position() - meshes; j < piCount[i].position(); j++) { renderedQuads += piCount[i].get(j) / 4; } - if(Compat.isHodgepodgeSpeedupAnimationsEnabled() && !Constants.KEEP_RENDER_LIST_LOGIC) { + if(Compat.isHodgepodgeSpeedupAnimationsEnabled() && !Compat.keepRenderListLogic()) { // Hodgepodge hooks this method to decide what animations to play, make sure it runs wr.getGLCallListForPass(i); }