diff --git a/core/assets/shaders/slag.frag b/core/assets/shaders/slag.frag index 50bdcfd879..5b87b982ab 100755 --- a/core/assets/shaders/slag.frag +++ b/core/assets/shaders/slag.frag @@ -6,7 +6,7 @@ precision mediump int; //shades of slag #define S2 vec3(100.0, 93.0, 49.0) / 100.0 #define S1 vec3(100.0, 60.0, 25.0) / 100.0 -#define NSCALE 280.0 / 2.0 +#define NSCALE 200.0 / 2.0 uniform sampler2D u_texture; uniform sampler2D u_noise; @@ -24,13 +24,15 @@ void main(){ float btime = u_time / 4000.0; float noise = (texture2D(u_noise, (coords) / NSCALE + vec2(btime) * vec2(-0.9, 0.8)).r + texture2D(u_noise, (coords) / NSCALE + vec2(btime * 1.1) * vec2(0.8, -1.0)).r) / 2.0; - vec3 color = texture2D(u_texture, c).rgb; + vec4 color = texture2D(u_texture, c); - if(noise > 0.6){ - color = S2; - }else if(noise > 0.54){ - color = S1; + if(color.a > 0.1){ + if(noise > 0.6){ + color.rgb = S2; + }else if (noise > 0.54){ + color.rgb = S1; + } } - gl_FragColor = vec4(color.rgb, 1.0); + gl_FragColor = color; } \ No newline at end of file diff --git a/core/assets/shaders/tar.frag b/core/assets/shaders/tar.frag index db5009141a..4ca0e7be97 100644 --- a/core/assets/shaders/tar.frag +++ b/core/assets/shaders/tar.frag @@ -21,11 +21,11 @@ void main(){ float btime = u_time / 8000.0; float noise = (texture2D(u_noise, (coords) / NSCALE + vec2(btime) * vec2(-0.9, 0.8)).r + texture2D(u_noise, (coords) / NSCALE + vec2(btime * 1.1) * vec2(-0.8, -1.0)).r) / 2.0; - vec3 color = texture2D(u_texture, c).rgb; + vec4 color = texture2D(u_texture, c); if(!(noise > 0.54 && noise < 0.58)){ - color *= 0.6; + color.rgb *= 0.6; } - gl_FragColor = vec4(color.rgb, 1.0); + gl_FragColor = color; } \ No newline at end of file diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png index b85f2c8d80..d9411aec7a 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index e903d0af6c..c3526feb10 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -180,6 +180,7 @@ public class Renderer implements ApplicationListener{ } graphics.clear(clearColor); + Draw.reset(); //TODO 'animated water' is a bad name for this setting if(Core.settings.getBool("animatedwater") || Core.settings.getBool("animatedshields")){ @@ -204,7 +205,7 @@ public class Renderer implements ApplicationListener{ blocks.floor.endDraw(); }); - Draw.drawRange(Layer.blockBuilding, () -> Draw.shader(Shaders.blockbuild, false), Draw::shader); + Draw.drawRange(Layer.blockBuilding, () -> Draw.shader(Shaders.blockbuild, true), Draw::shader); if(state.rules.lighting){ Draw.draw(Layer.light, lights::draw); diff --git a/core/src/mindustry/graphics/CacheLayer.java b/core/src/mindustry/graphics/CacheLayer.java index ab354acf1f..6363efae98 100644 --- a/core/src/mindustry/graphics/CacheLayer.java +++ b/core/src/mindustry/graphics/CacheLayer.java @@ -8,7 +8,6 @@ import arc.graphics.gl.*; import static mindustry.Vars.renderer; public enum CacheLayer{ - //TODO water animation breaks when tar/slag is present water{ @Override public void begin(){ diff --git a/core/src/mindustry/graphics/Layer.java b/core/src/mindustry/graphics/Layer.java index 8c223113d2..d6d07d6c5f 100644 --- a/core/src/mindustry/graphics/Layer.java +++ b/core/src/mindustry/graphics/Layer.java @@ -23,7 +23,7 @@ public class Layer{ //things drawn over blocks (intermediate layer) blockOver = 35, - //blocks currently in progress *shaders used* TODO perhaps put shaders into their own category + //blocks currently in progress *shaders used* blockBuilding = 40, //ground units diff --git a/core/src/mindustry/graphics/MinimapRenderer.java b/core/src/mindustry/graphics/MinimapRenderer.java index 8cc4f981f2..0d6d0df1b5 100644 --- a/core/src/mindustry/graphics/MinimapRenderer.java +++ b/core/src/mindustry/graphics/MinimapRenderer.java @@ -135,6 +135,8 @@ public class MinimapRenderer implements Disposable{ } public void update(Tile tile){ + if(world.isGenerating()) return; + int color = colorFor(world.tile(tile.x, tile.y)); pixmap.draw(tile.x, pixmap.getHeight() - 1 - tile.y, color); diff --git a/core/src/mindustry/world/blocks/BuildBlock.java b/core/src/mindustry/world/blocks/BuildBlock.java index 64352eb073..833a7e137b 100644 --- a/core/src/mindustry/world/blocks/BuildBlock.java +++ b/core/src/mindustry/world/blocks/BuildBlock.java @@ -169,14 +169,7 @@ public class BuildBlock extends Block{ @Override public void draw(){ - //When breaking, don't draw the previous block... since it's the thing you were breaking - if(cblock != null && previous == cblock){ - return; - } - - if(previous == null || cblock == null) return; - - if(Core.atlas.isFound(previous.icon(Cicon.full))){ + if(!(previous == null || cblock == null || previous == cblock) && Core.atlas.isFound(previous.icon(Cicon.full))){ Draw.rect(previous.icon(Cicon.full), x, y, previous.rotate ? tile.rotation() * 90 : 0); }