From a7ac229242279123c4ddefdaea8c16cf5aa4bdfb Mon Sep 17 00:00:00 2001 From: Christian Knaapen Date: Fri, 17 May 2019 16:26:19 +0200 Subject: [PATCH] Fixed issue #37 Visual Glitch when destroying blocks --- build.gradle | 2 +- .../effortlessbuilding/EffortlessBuilding.java | 2 +- .../effortlessbuilding/proxy/ClientProxy.java | 4 ++-- .../render/BlockPreviewRenderer.java | 12 ++++++------ .../assets/effortlessbuilding/shaders/dissolve.frag | 8 +++----- 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 0e25291..ec94e33 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ apply plugin: 'net.minecraftforge.gradle.forge' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -version = "1.12.2-2.10" +version = "1.12.2-2.11" group = "nl.requios.effortlessbuilding" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "effortlessbuilding" diff --git a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java index 3581491..3f86f86 100644 --- a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java +++ b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java @@ -39,7 +39,7 @@ public class EffortlessBuilding { public static final String MODID = "effortlessbuilding"; public static final String NAME = "Effortless Building"; - public static final String VERSION = "1.12.2-2.10"; + public static final String VERSION = "1.12.2-2.11"; @Mod.Instance(EffortlessBuilding.MODID) public static EffortlessBuilding instance; diff --git a/src/main/java/nl/requios/effortlessbuilding/proxy/ClientProxy.java b/src/main/java/nl/requios/effortlessbuilding/proxy/ClientProxy.java index 7c5ceed..e4d488e 100644 --- a/src/main/java/nl/requios/effortlessbuilding/proxy/ClientProxy.java +++ b/src/main/java/nl/requios/effortlessbuilding/proxy/ClientProxy.java @@ -81,7 +81,7 @@ public class ClientProxy implements IProxy { @Override public void init(FMLInitializationEvent event) { // register key bindings - keyBindings = new KeyBinding[7]; + keyBindings = new KeyBinding[6]; // instantiate the key bindings keyBindings[0] = new KeyBinding("key.effortlessbuilding.hud.desc", KeyConflictContext.UNIVERSAL, Keyboard.KEY_ADD, "key.effortlessbuilding.category"); @@ -97,7 +97,7 @@ public class ClientProxy implements IProxy { }; keyBindings[4] = new KeyBinding("key.effortlessbuilding.undo.desc", KeyConflictContext.IN_GAME, KeyModifier.CONTROL, Keyboard.KEY_Z, "key.effortlessbuilding.category"); keyBindings[5] = new KeyBinding("key.effortlessbuilding.redo.desc", KeyConflictContext.IN_GAME, KeyModifier.CONTROL, Keyboard.KEY_Y, "key.effortlessbuilding.category"); - keyBindings[6] = new KeyBinding("Reload shaders", Keyboard.KEY_TAB, "key.effortlessbuilding.category"); +// keyBindings[6] = new KeyBinding("Reload shaders", Keyboard.KEY_TAB, "key.effortlessbuilding.category"); // register all the key bindings for (int i = 0; i < keyBindings.length; ++i) { diff --git a/src/main/java/nl/requios/effortlessbuilding/render/BlockPreviewRenderer.java b/src/main/java/nl/requios/effortlessbuilding/render/BlockPreviewRenderer.java index 9db5053..da251c6 100644 --- a/src/main/java/nl/requios/effortlessbuilding/render/BlockPreviewRenderer.java +++ b/src/main/java/nl/requios/effortlessbuilding/render/BlockPreviewRenderer.java @@ -73,7 +73,7 @@ public class BlockPreviewRenderer { private static List placedDataList = new ArrayList<>(); private static final int primaryTextureUnit = 0; - private static final int secondaryTextureUnit = 1; + private static final int secondaryTextureUnit = 2; public static void render(EntityPlayer player, ModifierSettings modifierSettings, ModeSettings modeSettings) { @@ -382,11 +382,6 @@ public class BlockPreviewRenderer { int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image"); int maskUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "mask"); - //image - ARBShaderObjects.glUniform1iARB(imageUniform, primaryTextureUnit); - OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + primaryTextureUnit); - GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.renderEngine.getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).getGlTextureId()); - GlStateManager.enableTexture2D(); GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D); @@ -395,6 +390,11 @@ public class BlockPreviewRenderer { OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + secondaryTextureUnit); GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.renderEngine.getTexture(ShaderHandler.shaderMaskTextureLocation).getGlTextureId()); + //image + ARBShaderObjects.glUniform1iARB(imageUniform, primaryTextureUnit); + OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + primaryTextureUnit); + GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.renderEngine.getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).getGlTextureId()); + //blockpos ARBShaderObjects.glUniform3fARB(blockposUniform, (float) blockpos.x, (float) blockpos.y, (float) blockpos.z); ARBShaderObjects.glUniform3fARB(firstposUniform, (float) firstpos.x, (float) firstpos.y, (float) firstpos.z); diff --git a/src/main/resources/assets/effortlessbuilding/shaders/dissolve.frag b/src/main/resources/assets/effortlessbuilding/shaders/dissolve.frag index 7377da6..dd0cae8 100644 --- a/src/main/resources/assets/effortlessbuilding/shaders/dissolve.frag +++ b/src/main/resources/assets/effortlessbuilding/shaders/dissolve.frag @@ -31,9 +31,7 @@ void main() { float placeFromFirst = length(worldpos - firstposc) / firstToSecond; float placeFromSecond = length(worldpos - secondposc) / firstToSecond; place = (placeFromFirst + (1.0 - placeFromSecond)) / 2.0; - } else { - //only one block - } + } //else only one block //find 2d texture coordinate for noise texture based on world position vec2 maskcoord = vec2(worldpos.y, worldpos.z); @@ -80,8 +78,8 @@ void main() { // color.rgb += vec3(0.5 - smoothstep(0, 0.5, distToEdge)) * 0.5; //add flat shading - if (abs(normal.x) > 0.5) - color.rgb -= 0.0; +// if (abs(normal.x) > 0.5) +// color.rgb -= 0.0; if (abs(normal.y) > 0.5) color.rgb += 0.05; if (abs(normal.z) > 0.5)