Fixed issue #37 Visual Glitch when destroying blocks
This commit is contained in:
@@ -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.
|
//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
|
group = "nl.requios.effortlessbuilding" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||||
archivesBaseName = "effortlessbuilding"
|
archivesBaseName = "effortlessbuilding"
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class EffortlessBuilding
|
|||||||
{
|
{
|
||||||
public static final String MODID = "effortlessbuilding";
|
public static final String MODID = "effortlessbuilding";
|
||||||
public static final String NAME = "Effortless Building";
|
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)
|
@Mod.Instance(EffortlessBuilding.MODID)
|
||||||
public static EffortlessBuilding instance;
|
public static EffortlessBuilding instance;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class ClientProxy implements IProxy {
|
|||||||
@Override
|
@Override
|
||||||
public void init(FMLInitializationEvent event) {
|
public void init(FMLInitializationEvent event) {
|
||||||
// register key bindings
|
// register key bindings
|
||||||
keyBindings = new KeyBinding[7];
|
keyBindings = new KeyBinding[6];
|
||||||
|
|
||||||
// instantiate the key bindings
|
// instantiate the key bindings
|
||||||
keyBindings[0] = new KeyBinding("key.effortlessbuilding.hud.desc", KeyConflictContext.UNIVERSAL, Keyboard.KEY_ADD, "key.effortlessbuilding.category");
|
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[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[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
|
// register all the key bindings
|
||||||
for (int i = 0; i < keyBindings.length; ++i) {
|
for (int i = 0; i < keyBindings.length; ++i) {
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class BlockPreviewRenderer {
|
|||||||
private static List<PlacedData> placedDataList = new ArrayList<>();
|
private static List<PlacedData> placedDataList = new ArrayList<>();
|
||||||
|
|
||||||
private static final int primaryTextureUnit = 0;
|
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) {
|
public static void render(EntityPlayer player, ModifierSettings modifierSettings, ModeSettings modeSettings) {
|
||||||
|
|
||||||
@@ -382,11 +382,6 @@ public class BlockPreviewRenderer {
|
|||||||
int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image");
|
int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image");
|
||||||
int maskUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "mask");
|
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();
|
GlStateManager.enableTexture2D();
|
||||||
GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D);
|
GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D);
|
||||||
|
|
||||||
@@ -395,6 +390,11 @@ public class BlockPreviewRenderer {
|
|||||||
OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + secondaryTextureUnit);
|
OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + secondaryTextureUnit);
|
||||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.renderEngine.getTexture(ShaderHandler.shaderMaskTextureLocation).getGlTextureId());
|
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
|
//blockpos
|
||||||
ARBShaderObjects.glUniform3fARB(blockposUniform, (float) blockpos.x, (float) blockpos.y, (float) blockpos.z);
|
ARBShaderObjects.glUniform3fARB(blockposUniform, (float) blockpos.x, (float) blockpos.y, (float) blockpos.z);
|
||||||
ARBShaderObjects.glUniform3fARB(firstposUniform, (float) firstpos.x, (float) firstpos.y, (float) firstpos.z);
|
ARBShaderObjects.glUniform3fARB(firstposUniform, (float) firstpos.x, (float) firstpos.y, (float) firstpos.z);
|
||||||
|
|||||||
@@ -31,9 +31,7 @@ void main() {
|
|||||||
float placeFromFirst = length(worldpos - firstposc) / firstToSecond;
|
float placeFromFirst = length(worldpos - firstposc) / firstToSecond;
|
||||||
float placeFromSecond = length(worldpos - secondposc) / firstToSecond;
|
float placeFromSecond = length(worldpos - secondposc) / firstToSecond;
|
||||||
place = (placeFromFirst + (1.0 - placeFromSecond)) / 2.0;
|
place = (placeFromFirst + (1.0 - placeFromSecond)) / 2.0;
|
||||||
} else {
|
} //else only one block
|
||||||
//only one block
|
|
||||||
}
|
|
||||||
|
|
||||||
//find 2d texture coordinate for noise texture based on world position
|
//find 2d texture coordinate for noise texture based on world position
|
||||||
vec2 maskcoord = vec2(worldpos.y, worldpos.z);
|
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;
|
// color.rgb += vec3(0.5 - smoothstep(0, 0.5, distToEdge)) * 0.5;
|
||||||
|
|
||||||
//add flat shading
|
//add flat shading
|
||||||
if (abs(normal.x) > 0.5)
|
// if (abs(normal.x) > 0.5)
|
||||||
color.rgb -= 0.0;
|
// color.rgb -= 0.0;
|
||||||
if (abs(normal.y) > 0.5)
|
if (abs(normal.y) > 0.5)
|
||||||
color.rgb += 0.05;
|
color.rgb += 0.05;
|
||||||
if (abs(normal.z) > 0.5)
|
if (abs(normal.z) > 0.5)
|
||||||
|
|||||||
Reference in New Issue
Block a user