diff --git a/core/assets-raw/sprites/units/eruptor-foot.png b/core/assets-raw/sprites/units/eruptor-foot.png new file mode 100644 index 0000000000..cb2348f903 Binary files /dev/null and b/core/assets-raw/sprites/units/eruptor-foot.png differ diff --git a/core/assets-raw/sprites/units/eruptor-joint.png b/core/assets-raw/sprites/units/eruptor-joint.png new file mode 100644 index 0000000000..054879457b Binary files /dev/null and b/core/assets-raw/sprites/units/eruptor-joint.png differ diff --git a/core/assets-raw/sprites/units/eruptor-leg-base.png b/core/assets-raw/sprites/units/eruptor-leg-base.png new file mode 100644 index 0000000000..341ca19d08 Binary files /dev/null and b/core/assets-raw/sprites/units/eruptor-leg-base.png differ diff --git a/core/src/mindustry/entities/comp/LegsComp.java b/core/src/mindustry/entities/comp/LegsComp.java index ae57e6e85c..4791739786 100644 --- a/core/src/mindustry/entities/comp/LegsComp.java +++ b/core/src/mindustry/entities/comp/LegsComp.java @@ -11,8 +11,8 @@ import mindustry.type.*; import mindustry.world.blocks.environment.*; @Component -abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{ - @Import float x, y, elevation; +abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc, ElevationMovec{ + @Import float x, y; @Import UnitType type; transient Leg[] legs = {}; @@ -22,9 +22,6 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{ @Override public void update(){ - //keep elevation halfway - elevation = 0.4f; - if(Mathf.dst(deltaX(), deltaY()) > 0.001f){ baseRotation = Mathf.slerpDelta(baseRotation, Mathf.angle(deltaX(), deltaY()), 0.1f); } @@ -111,11 +108,6 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{ return rotation + 360f / legs.length * index + (360f / legs.length / 2f); } - @Override - public void add(){ - elevation = 0.4f; - } - /* @Replace public boolean isGrounded(){ diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index 2c134f2cc9..bdc4e15ce4 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -21,7 +21,7 @@ import static mindustry.Vars.*; @Component abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Boundedc, Syncc, Shieldc{ - @Import float x, y, rotation, elevation, maxHealth; + @Import float x, y, rotation, elevation, maxHealth, drag, armor; private UnitController controller; private UnitType type; @@ -85,13 +85,14 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I public void type(UnitType type){ this.type = type; this.maxHealth = type.health; + this.drag = type.drag; + this.elevation = type.flying ? 1f : type.baseElevation; + this.armor = type.armor; + heal(); - drag(type.drag); hitSize(type.hitsize); controller(type.createController()); setupWeapons(type); - - elevation = type.flying ? 1f : 0f; } @Override diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 03d1b491be..95d4f43d51 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -41,6 +41,7 @@ public class UnitType extends UnlockableContent{ public float sway = 1f; public int payloadCapacity = 1; public int commandLimit = 24; + public float baseElevation = 0f; public int legCount = 4; public float legLength = 24f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f; @@ -81,7 +82,6 @@ public class UnitType extends UnlockableContent{ public Unitc create(Team team){ Unitc unit = constructor.get(); unit.team(team); - unit.armor(armor); unit.type(this); return unit; } @@ -331,7 +331,7 @@ public class UnitType extends UnlockableContent{ } public void drawLegs(Legsc unit){ - Draw.z(Layer.groundUnit - 0.02f); + //Draw.z(Layer.groundUnit - 0.02f); Leg[] legs = unit.legs();