From 41b4cbbce2c2e1e57bc3c091f06d9a81e43d7024 Mon Sep 17 00:00:00 2001 From: Voz-Duh Date: Fri, 25 Sep 2020 15:18:06 +0300 Subject: [PATCH] Shadow Fix --- core/src/mindustry/Vars.java | 2 -- core/src/mindustry/graphics/Drawf.java | 12 ++++++++++++ core/src/mindustry/graphics/Pal.java | 1 + core/src/mindustry/type/UnitType.java | 6 +++--- .../world/blocks/defense/PointDefenseTurret.java | 4 +--- .../world/blocks/defense/TractorBeamTurret.java | 4 +--- .../world/blocks/defense/turrets/Turret.java | 5 +---- .../world/blocks/distribution/MassDriver.java | 3 +++ .../mindustry/world/blocks/units/RepairPoint.java | 2 ++ 9 files changed, 24 insertions(+), 15 deletions(-) diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 26bcbcf059..c2acf3841f 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -72,8 +72,6 @@ public class Vars implements Loadable{ public static final int maxTextLength = 150; /** max player name length in bytes */ public static final int maxNameLength = 40; - /** shadow color for turrets */ - public static final float turretShadowColor = Color.toFloatBits(0, 0, 0, 0.22f); /** displayed item size when ingame. */ public static final float itemSize = 5f; /** units outside of this bound will die instantly */ diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java index 4da853049b..685110047a 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -84,6 +84,18 @@ public class Drawf{ Draw.color(); } + public static void shadow(TextureRegion region, float x, float y, float rotation){ + Draw.color(Pal.shadow); + Draw.rect(region, x, y, rotation); + Draw.color(); + } + + public static void shadow(TextureRegion region, float x, float y){ + Draw.color(Pal.shadow); + Draw.rect(region, x, y); + Draw.color(); + } + public static void dashCircle(float x, float y, float rad, Color color){ Lines.stroke(3f, Pal.gray); Lines.dashCircle(x, y, rad); diff --git a/core/src/mindustry/graphics/Pal.java b/core/src/mindustry/graphics/Pal.java index 771697b845..a61b363557 100644 --- a/core/src/mindustry/graphics/Pal.java +++ b/core/src/mindustry/graphics/Pal.java @@ -47,6 +47,7 @@ public class Pal{ darkishGray = new Color(0.3f, 0.3f, 0.3f, 1f), darkerGray = new Color(0.2f, 0.2f, 0.2f, 1f), darkestGray = new Color(0.1f, 0.1f, 0.1f, 1f), + shadow = new Color(0, 0, 0, 0.22f), ammo = Color.valueOf("ff8947"), rubble = Color.valueOf("1c1817"), diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 5666789a88..da7fb49b7c 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -34,7 +34,7 @@ import mindustry.world.consumers.*; import static mindustry.Vars.*; public class UnitType extends UnlockableContent{ - public static final float shadowTX = -12, shadowTY = -13, shadowColor = Color.toFloatBits(0, 0, 0, 0.22f), outlineSpace = 0.01f; + public static final float shadowTX = -12, shadowTY = -13, outlineSpace = 0.01f; private static final Vec2 legOffset = new Vec2(); /** If true, the unit is always at elevation 1. */ @@ -409,7 +409,7 @@ public class UnitType extends UnlockableContent{ } public void drawShadow(Unit unit){ - Draw.color(shadowColor); + Draw.color(Pal.shadow); float e = Math.max(unit.elevation, visualElevation); Draw.rect(shadowRegion, unit.x + shadowTX * e, unit.y + shadowTY * e, unit.rotation - 90); Draw.color(); @@ -594,7 +594,7 @@ public class UnitType extends UnlockableContent{ if(leg.moving && visualElevation > 0){ float scl = visualElevation; float elev = Mathf.slope(1f - leg.stage) * scl; - Draw.color(shadowColor); + Draw.color(Pal.shadow); Draw.rect(footRegion, leg.base.x + shadowTX * elev, leg.base.y + shadowTY * elev, position.angleTo(leg.base)); Draw.color(); } diff --git a/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java b/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java index e2fe96f7f5..5602ab3052 100644 --- a/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java +++ b/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java @@ -112,9 +112,7 @@ public class PointDefenseTurret extends Block{ @Override public void draw(){ Draw.rect(baseRegion, x, y); - Draw.color(Vars.turretShadowColor); - Draw.rect(region, x - (size / 2f), y - (size / 2f), rotation - 90); - Draw.color(); + Drawf.shadow(region, x - (size / 2f), y - (size / 2f), rotation - 90); Draw.rect(region, x, y, rotation - 90); } diff --git a/core/src/mindustry/world/blocks/defense/TractorBeamTurret.java b/core/src/mindustry/world/blocks/defense/TractorBeamTurret.java index f23df69b82..4c500774a4 100644 --- a/core/src/mindustry/world/blocks/defense/TractorBeamTurret.java +++ b/core/src/mindustry/world/blocks/defense/TractorBeamTurret.java @@ -107,9 +107,7 @@ public class TractorBeamTurret extends Block{ @Override public void draw(){ Draw.rect(baseRegion, x, y); - Draw.color(Vars.turretShadowColor); - Draw.rect(region, x - (size / 2f), y - (size / 2f), rotation - 90); - Draw.color(); + Drawf.shadow(region, x - (size / 2f), y - (size / 2f), rotation - 90); Draw.rect(region, x, y, rotation - 90); //draw laser if applicable diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 69dc25f9ef..21033668a1 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -11,7 +11,6 @@ import arc.struct.*; import arc.util.ArcAnnotate.*; import arc.util.*; import arc.util.io.*; -import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; @@ -203,9 +202,7 @@ public abstract class Turret extends Block{ tr2.trns(rotation, -recoil); - Draw.color(Vars.turretShadowColor); - Draw.rect(region, x + tr2.x - (size / 2f), y + tr2.y - (size / 2f), rotation - 90); - Draw.color(); + Drawf.shadow(region, x + tr2.x - (size / 2f), y + tr2.y - (size / 2f), rotation - 90); drawer.get(this); if(heatRegion != Core.atlas.find("error")){ diff --git a/core/src/mindustry/world/blocks/distribution/MassDriver.java b/core/src/mindustry/world/blocks/distribution/MassDriver.java index 7880c72db6..fa6529fd72 100644 --- a/core/src/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/mindustry/world/blocks/distribution/MassDriver.java @@ -188,6 +188,9 @@ public class MassDriver extends Block{ Draw.z(Layer.turret); + Drawf.shadow(region, + x + Angles.trnsx(rotation + 180f, reload * knockback) - (size / 2), + y + Angles.trnsy(rotation + 180f, reload * knockback) - (size / 2), rotation - 90); Draw.rect(region, x + Angles.trnsx(rotation + 180f, reload * knockback), y + Angles.trnsy(rotation + 180f, reload * knockback), rotation - 90); diff --git a/core/src/mindustry/world/blocks/units/RepairPoint.java b/core/src/mindustry/world/blocks/units/RepairPoint.java index 609452cc2b..6100e5c61f 100644 --- a/core/src/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/mindustry/world/blocks/units/RepairPoint.java @@ -6,6 +6,7 @@ import arc.math.*; import arc.math.geom.*; import arc.struct.*; import arc.util.*; +import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.entities.*; import mindustry.gen.*; @@ -70,6 +71,7 @@ public class RepairPoint extends Block{ Draw.rect(baseRegion, x, y); Draw.z(Layer.turret); + Drawf.shadow(region, x - (size / 2), y - (size / 2), rotation - 90); Draw.rect(region, x, y, rotation - 90); if(target != null && Angles.angleDist(angleTo(target), rotation) < 30f){