From 5d4ca753a7217154f0b49a356b39cb0bca142004 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 24 Apr 2020 11:08:02 -0400 Subject: [PATCH] Light cleanup --- core/assets/shaders/shield.frag | 2 +- core/src/mindustry/content/Bullets.java | 2 +- core/src/mindustry/content/Fx.java | 2 +- .../entities/bullet/LaserBulletType.java | 4 +--- .../mindustry/entities/def/BulletComp.java | 2 +- .../mindustry/entities/def/PuddleComp.java | 3 +-- core/src/mindustry/entities/def/TileComp.java | 2 +- core/src/mindustry/graphics/Drawf.java | 22 ++++++++++++++++++- .../src/mindustry/graphics/LightRenderer.java | 8 ------- core/src/mindustry/type/UnitType.java | 2 +- .../world/blocks/defense/MendProjector.java | 2 +- .../blocks/defense/OverdriveProjector.java | 2 +- .../world/blocks/power/ImpactReactor.java | 2 +- .../blocks/power/ItemLiquidGenerator.java | 3 ++- .../world/blocks/power/LightBlock.java | 2 +- .../world/blocks/power/NuclearReactor.java | 2 +- .../world/blocks/power/ThermalGenerator.java | 5 ++--- .../blocks/production/GenericSmelter.java | 5 ++--- .../world/blocks/storage/CoreBlock.java | 2 +- gradle.properties | 2 +- 20 files changed, 42 insertions(+), 34 deletions(-) diff --git a/core/assets/shaders/shield.frag b/core/assets/shaders/shield.frag index 66106f8668..86fb8f161b 100644 --- a/core/assets/shaders/shield.frag +++ b/core/assets/shaders/shield.frag @@ -29,7 +29,7 @@ void main() { vec4 color = texture2D(u_texture, T); vec2 v = vec2(1.0/u_texsize.x, 1.0/u_texsize.y); - if(texture2D(u_texture, T).a < 0.2 && + if(texture2D(u_texture, T).a < 0.9 && (texture2D(u_texture, T + vec2(0, step) * v).a > 0.0 || texture2D(u_texture, T + vec2(0, -step) * v).a > 0.0 || texture2D(u_texture, T + vec2(step, 0) * v).a > 0.0 || texture2D(u_texture, T + vec2(-step, 0) * v).a > 0.0)){ diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index 3ed4159f27..0c074131e1 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -540,7 +540,7 @@ public class Bullets implements ContentList{ Tmp.v1.trns(b.rotation(), baseLen * 1.1f); - renderer.lights.line(b.x(), b.y(), b.x() + Tmp.v1.x, b.y() + Tmp.v1.y, 40, Color.orange, 0.7f); + Drawf.light(b.x(), b.y(), b.x() + Tmp.v1.x, b.y() + Tmp.v1.y, 40, Color.orange, 0.7f); Draw.reset(); } }; diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 05ecf2abc6..82d456bae5 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -490,7 +490,7 @@ public class Fx{ color(); - renderer.lights.add(e.x, e.y, 20f * e.fslope(), Pal.lightFlame, 0.5f); + Drawf.light(e.x, e.y, 20f * e.fslope(), Pal.lightFlame, 0.5f); }), fireSmoke = new Effect(35f, e -> { diff --git a/core/src/mindustry/entities/bullet/LaserBulletType.java b/core/src/mindustry/entities/bullet/LaserBulletType.java index 7ece190deb..352d6fc5b8 100644 --- a/core/src/mindustry/entities/bullet/LaserBulletType.java +++ b/core/src/mindustry/entities/bullet/LaserBulletType.java @@ -9,8 +9,6 @@ import mindustry.entities.*; import mindustry.gen.*; import mindustry.graphics.*; -import static mindustry.Vars.renderer; - public class LaserBulletType extends BulletType{ protected Color[] colors = {Pal.lancerLaser.cpy().mul(1f, 1f, 1f, 0.4f), Pal.lancerLaser, Color.white}; protected float length = 160f; @@ -73,6 +71,6 @@ public class LaserBulletType extends BulletType{ Draw.reset(); Tmp.v1.trns(b.rotation(), baseLen * 1.1f); - renderer.lights.line(b.x(), b.y(), b.x() + Tmp.v1.x, b.y() + Tmp.v1.y, width * 1.4f * b.fout(), colors[0], 0.6f); + Drawf.light(b.x(), b.y(), b.x() + Tmp.v1.x, b.y() + Tmp.v1.y, width * 1.4f * b.fout(), colors[0], 0.6f); } } diff --git a/core/src/mindustry/entities/def/BulletComp.java b/core/src/mindustry/entities/def/BulletComp.java index abd68a7128..43dd0800cf 100644 --- a/core/src/mindustry/entities/def/BulletComp.java +++ b/core/src/mindustry/entities/def/BulletComp.java @@ -114,7 +114,7 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw type.draw(this); //TODO refactor - renderer.lights.add(x(), y(), 16f, Pal.powerLight, 0.3f); + Drawf.light(x(), y(), 16f, Pal.powerLight, 0.3f); } /** Sets the bullet's rotation in degrees. */ diff --git a/core/src/mindustry/entities/def/PuddleComp.java b/core/src/mindustry/entities/def/PuddleComp.java index a5d65d537a..c3ce9ef3c5 100644 --- a/core/src/mindustry/entities/def/PuddleComp.java +++ b/core/src/mindustry/entities/def/PuddleComp.java @@ -5,7 +5,6 @@ import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; import arc.util.*; -import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; @@ -111,7 +110,7 @@ abstract class PuddleComp implements Posc, Puddlec{ if(liquid.lightColor.a > 0.001f && f > 0){ Color color = liquid.lightColor; float opacity = color.a * f; - Vars.renderer.lights.add(tile.drawx(), tile.drawy(), 30f * f, color, opacity * 0.8f); + Drawf.light(tile.drawx(), tile.drawy(), 30f * f, color, opacity * 0.8f); } } diff --git a/core/src/mindustry/entities/def/TileComp.java b/core/src/mindustry/entities/def/TileComp.java index eb1c7ef0ad..d3755eac9a 100644 --- a/core/src/mindustry/entities/def/TileComp.java +++ b/core/src/mindustry/entities/def/TileComp.java @@ -644,7 +644,7 @@ abstract class TileComp implements Posc, Teamc, Healthc, Tilec, Timerc, QuadTree float fract = 1f; float opacity = color.a * fract; if(opacity > 0.001f){ - renderer.lights.add(x, y, block.size * 30f * fract, color, opacity); + Drawf.light(x, y, block.size * 30f * fract, color, opacity); } } } diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java index f682c0e6f2..60d41b326e 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -17,6 +17,26 @@ import static mindustry.Vars.*; public class Drawf{ + public static void light(float x, float y, float radius, Color color, float opacity){ + renderer.lights.add(x, y, radius, color, opacity); + } + + public static void light(Position pos, float radius, Color color, float opacity){ + light(pos.getX(), pos.getY(), radius, color, opacity); + } + + public static void light(float x, float y, TextureRegion region, Color color, float opacity){ + renderer.lights.add(x, y, region, color, opacity); + } + + public static void light(float x, float y, float x2, float y2){ + renderer.lights.line(x, y, x2, y2, 30, Color.orange, 0.3f); + } + + public static void light(float x, float y, float x2, float y2, float stroke, Color tint, float alpha){ + renderer.lights.line(x, y, x2, y2, stroke, tint, alpha); + } + public static void selected(int x, int y, Block block, Color color){ Draw.color(color); for(int i = 0; i < 4; i++){ @@ -104,7 +124,7 @@ public class Drawf{ Lines.precise(false); Lines.stroke(1f); - renderer.lights.line(x, y, x2, y2); + Drawf.light(x, y, x2, y2); } public static void tri(float x, float y, float width, float length, float rotation){ diff --git a/core/src/mindustry/graphics/LightRenderer.java b/core/src/mindustry/graphics/LightRenderer.java index 2f5933e399..723e58f8b8 100644 --- a/core/src/mindustry/graphics/LightRenderer.java +++ b/core/src/mindustry/graphics/LightRenderer.java @@ -26,10 +26,6 @@ public class LightRenderer{ lights.add(run); } - public void add(Position pos, float radius, Color color, float opacity){ - add(pos.getX(), pos.getY(), radius, color, opacity); - } - public void add(float x, float y, float radius, Color color, float opacity){ if(!enabled()) return; @@ -52,10 +48,6 @@ public class LightRenderer{ }); } - public void line(float x, float y, float x2, float y2){ - line(x, y, x2, y2, 30, Color.orange, 0.3f); - } - public void line(float x, float y, float x2, float y2, float stroke, Color tint, float alpha){ if(!enabled()) return; diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index b35a73a4ee..e8762c0253 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -243,7 +243,7 @@ public class UnitType extends UnlockableContent{ public void drawLight(Unitc unit){ if(lightRadius > 0){ - renderer.lights.add(unit, lightRadius, lightColor, lightOpacity); + Drawf.light(unit, lightRadius, lightColor, lightOpacity); } } diff --git a/core/src/mindustry/world/blocks/defense/MendProjector.java b/core/src/mindustry/world/blocks/defense/MendProjector.java index 4bb1238d72..86c3ba583d 100644 --- a/core/src/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/mindustry/world/blocks/defense/MendProjector.java @@ -117,7 +117,7 @@ public class MendProjector extends Block{ @Override public void drawLight(){ - renderer.lights.add(x, y, 50f * efficiency(), baseColor, 0.7f * efficiency()); + Drawf.light(x, y, 50f * efficiency(), baseColor, 0.7f * efficiency()); } @Override diff --git a/core/src/mindustry/world/blocks/defense/OverdriveProjector.java b/core/src/mindustry/world/blocks/defense/OverdriveProjector.java index b6d8b673a7..5cd82c5961 100644 --- a/core/src/mindustry/world/blocks/defense/OverdriveProjector.java +++ b/core/src/mindustry/world/blocks/defense/OverdriveProjector.java @@ -72,7 +72,7 @@ public class OverdriveProjector extends Block{ @Override public void drawLight(){ - renderer.lights.add(x, y, 50f * efficiency(), baseColor, 0.7f * efficiency()); + Drawf.light(x, y, 50f * efficiency(), baseColor, 0.7f * efficiency()); } @Override diff --git a/core/src/mindustry/world/blocks/power/ImpactReactor.java b/core/src/mindustry/world/blocks/power/ImpactReactor.java index 25e5576ba7..fb9f3bcbc6 100644 --- a/core/src/mindustry/world/blocks/power/ImpactReactor.java +++ b/core/src/mindustry/world/blocks/power/ImpactReactor.java @@ -126,7 +126,7 @@ public class ImpactReactor extends PowerGenerator{ @Override public void drawLight(){ float fract = tile.ent().warmup; - renderer.lights.add(x, y, (110f + Mathf.absin(5, 5f)) * fract, Tmp.c1.set(plasma2).lerp(plasma1, Mathf.absin(7f, 0.2f)), 0.8f * fract); + Drawf.light(x, y, (110f + Mathf.absin(5, 5f)) * fract, Tmp.c1.set(plasma2).lerp(plasma1, Mathf.absin(7f, 0.2f)), 0.8f * fract); } @Override diff --git a/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java b/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java index ec24d91634..0e20ae2152 100644 --- a/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java +++ b/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java @@ -7,6 +7,7 @@ import arc.math.*; import arc.util.*; import mindustry.content.*; import mindustry.entities.*; +import mindustry.graphics.*; import mindustry.type.*; import mindustry.world.consumers.*; import mindustry.world.meta.*; @@ -180,7 +181,7 @@ public class ItemLiquidGenerator extends PowerGenerator{ @Override public void drawLight(){ - renderer.lights.add(x, y, (60f + Mathf.absin(10f, 5f)) * productionEfficiency * size, Color.orange, 0.5f); + Drawf.light(x, y, (60f + Mathf.absin(10f, 5f)) * productionEfficiency * size, Color.orange, 0.5f); } } } diff --git a/core/src/mindustry/world/blocks/power/LightBlock.java b/core/src/mindustry/world/blocks/power/LightBlock.java index edeac22920..754c7c7e4c 100644 --- a/core/src/mindustry/world/blocks/power/LightBlock.java +++ b/core/src/mindustry/world/blocks/power/LightBlock.java @@ -60,7 +60,7 @@ public class LightBlock extends Block{ @Override public void drawLight(){ - renderer.lights.add(x, y, radius, Tmp.c1.set(color), brightness * efficiency()); + Drawf.light(x, y, radius, Tmp.c1.set(color), brightness * efficiency()); } @Override diff --git a/core/src/mindustry/world/blocks/power/NuclearReactor.java b/core/src/mindustry/world/blocks/power/NuclearReactor.java index 1051501fa0..5602b58304 100644 --- a/core/src/mindustry/world/blocks/power/NuclearReactor.java +++ b/core/src/mindustry/world/blocks/power/NuclearReactor.java @@ -149,7 +149,7 @@ public class NuclearReactor extends PowerGenerator{ @Override public void drawLight(){ float fract = productionEfficiency; - renderer.lights.add(x, y, (90f + Mathf.absin(5, 5f)) * fract, Tmp.c1.set(lightColor).lerp(Color.scarlet, heat), 0.6f * fract); + Drawf.light(x, y, (90f + Mathf.absin(5, 5f)) * fract, Tmp.c1.set(lightColor).lerp(Color.scarlet, heat), 0.6f * fract); } @Override diff --git a/core/src/mindustry/world/blocks/power/ThermalGenerator.java b/core/src/mindustry/world/blocks/power/ThermalGenerator.java index 8678b1df20..2eaa29da29 100644 --- a/core/src/mindustry/world/blocks/power/ThermalGenerator.java +++ b/core/src/mindustry/world/blocks/power/ThermalGenerator.java @@ -5,11 +5,10 @@ import arc.graphics.*; import arc.math.*; import mindustry.content.*; import mindustry.entities.*; +import mindustry.graphics.*; import mindustry.world.*; import mindustry.world.meta.*; -import static mindustry.Vars.renderer; - public class ThermalGenerator extends PowerGenerator{ public Effect generateEffect = Fx.none; public Attribute attribute = Attribute.heat; @@ -46,7 +45,7 @@ public class ThermalGenerator extends PowerGenerator{ @Override public void drawLight(){ - renderer.lights.add(x, y, (40f + Mathf.absin(10f, 5f)) * productionEfficiency * size, Color.scarlet, 0.4f); + Drawf.light(x, y, (40f + Mathf.absin(10f, 5f)) * productionEfficiency * size, Color.scarlet, 0.4f); } @Override diff --git a/core/src/mindustry/world/blocks/production/GenericSmelter.java b/core/src/mindustry/world/blocks/production/GenericSmelter.java index f09882146b..39ab61c9fb 100644 --- a/core/src/mindustry/world/blocks/production/GenericSmelter.java +++ b/core/src/mindustry/world/blocks/production/GenericSmelter.java @@ -5,8 +5,7 @@ import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; import arc.util.*; - -import static mindustry.Vars.renderer; +import mindustry.graphics.*; /** A GenericCrafter with a new glowing region drawn on top. */ public class GenericSmelter extends GenericCrafter{ @@ -48,7 +47,7 @@ public class GenericSmelter extends GenericCrafter{ @Override public void drawLight(){ - renderer.lights.add(x, y, (60f + Mathf.absin(10f, 5f)) * warmup * size, flameColor, 0.65f); + Drawf.light(x, y, (60f + Mathf.absin(10f, 5f)) * warmup * size, flameColor, 0.65f); } } } diff --git a/core/src/mindustry/world/blocks/storage/CoreBlock.java b/core/src/mindustry/world/blocks/storage/CoreBlock.java index c18e3bb364..42c706cf5d 100644 --- a/core/src/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/mindustry/world/blocks/storage/CoreBlock.java @@ -86,7 +86,7 @@ public class CoreBlock extends StorageBlock{ @Override public void drawLight(){ - renderer.lights.add(x, y, 30f * size, Pal.accent, 0.5f + Mathf.absin(20f, 0.1f)); + Drawf.light(x, y, 30f * size, Pal.accent, 0.5f + Mathf.absin(20f, 0.1f)); } @Override diff --git a/gradle.properties b/gradle.properties index 6c481465f3..50169db7b3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=b8be5f9e64493e00e0243f9c41a83af1c574aaab +archash=907d6db786c2629697cbfd3863ce0edd23a179f1