From f388ca298e18ef4b3d68e8972436f746489d285b Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 1 Aug 2019 17:49:10 -0400 Subject: [PATCH] Better carried item display --- core/assets/maps/groundZero.msav | Bin 8700 -> 8677 bytes .../mindustry/entities/type/BaseUnit.java | 51 ++++-------- .../mindustry/entities/type/FlyingUnit.java | 1 - .../mindustry/entities/type/GroundUnit.java | 2 - .../anuke/mindustry/entities/type/Player.java | 25 +----- .../anuke/mindustry/entities/type/Unit.java | 73 ++++++++++++------ 6 files changed, 69 insertions(+), 83 deletions(-) diff --git a/core/assets/maps/groundZero.msav b/core/assets/maps/groundZero.msav index 3221c69b19acc38ec8d8ef7e6da5062467d1631f..3582329a6658e81f54c00f51460f402e96785e7d 100644 GIT binary patch delta 8283 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 diff --git a/core/src/io/anuke/mindustry/entities/type/BaseUnit.java b/core/src/io/anuke/mindustry/entities/type/BaseUnit.java index a0ce31d3b7..e6c182d029 100644 --- a/core/src/io/anuke/mindustry/entities/type/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/type/BaseUnit.java @@ -1,30 +1,23 @@ package io.anuke.mindustry.entities.type; import io.anuke.annotations.Annotations.*; -import io.anuke.arc.Core; -import io.anuke.arc.graphics.g2d.Draw; -import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Angles; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.math.geom.Geometry; -import io.anuke.arc.math.geom.Rectangle; -import io.anuke.arc.util.Interval; -import io.anuke.arc.util.Time; -import io.anuke.mindustry.Vars; -import io.anuke.mindustry.content.StatusEffects; -import io.anuke.mindustry.entities.EntityGroup; -import io.anuke.mindustry.entities.Units; -import io.anuke.mindustry.entities.traits.ShooterTrait; -import io.anuke.mindustry.entities.traits.TargetTrait; +import io.anuke.arc.*; +import io.anuke.arc.graphics.g2d.*; +import io.anuke.arc.math.*; +import io.anuke.arc.math.geom.*; +import io.anuke.arc.util.*; +import io.anuke.mindustry.*; +import io.anuke.mindustry.content.*; +import io.anuke.mindustry.entities.*; +import io.anuke.mindustry.entities.traits.*; import io.anuke.mindustry.entities.units.*; -import io.anuke.mindustry.game.Team; -import io.anuke.mindustry.game.TypeID; -import io.anuke.mindustry.gen.Call; +import io.anuke.mindustry.game.*; +import io.anuke.mindustry.gen.*; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.type.*; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.units.UnitFactory.UnitFactoryEntity; -import io.anuke.mindustry.world.meta.BlockFlag; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.blocks.units.UnitFactory.*; +import io.anuke.mindustry.world.meta.*; import java.io.*; @@ -168,22 +161,6 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{ return null; } - protected void drawItems(){ - float backTrns = 4f; - if(item.amount > 0){ - int stored = Mathf.clamp(item.amount / 6, 1, 8); - - for(int i = 0; i < stored; i++){ - float angT = i == 0 ? 0 : Mathf.randomSeedRange(i + 2, 60f); - float lenT = i == 0 ? 0 : Mathf.randomSeedRange(i + 3, 1f) - 1f; - Draw.rect(item.item.icon(Item.Icon.large), - x + Angles.trnsx(rotation + 180f + angT, backTrns + lenT), - y + Angles.trnsy(rotation + 180f + angT, backTrns + lenT), - itemSize, itemSize, rotation); - } - } - } - public boolean isBoss(){ return hasEffect(StatusEffects.boss); } diff --git a/core/src/io/anuke/mindustry/entities/type/FlyingUnit.java b/core/src/io/anuke/mindustry/entities/type/FlyingUnit.java index 6620f20c60..83f9434810 100644 --- a/core/src/io/anuke/mindustry/entities/type/FlyingUnit.java +++ b/core/src/io/anuke/mindustry/entities/type/FlyingUnit.java @@ -115,7 +115,6 @@ public abstract class FlyingUnit extends BaseUnit{ Draw.rect(type.region, x, y, rotation - 90); drawWeapons(); - drawItems(); Draw.mixcol(); } diff --git a/core/src/io/anuke/mindustry/entities/type/GroundUnit.java b/core/src/io/anuke/mindustry/entities/type/GroundUnit.java index e319063e9d..47d0e11280 100644 --- a/core/src/io/anuke/mindustry/entities/type/GroundUnit.java +++ b/core/src/io/anuke/mindustry/entities/type/GroundUnit.java @@ -145,8 +145,6 @@ public abstract class GroundUnit extends BaseUnit{ y + Angles.trnsy(tra, getWeapon().width * i, trY), w, type.weapon.region.getHeight() * Draw.scl, rotation - 90); } - drawItems(); - Draw.mixcol(); } diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index 36e48edc20..afd3b08734 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -65,7 +65,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ public String lastText; public float textFadeTime; - private float walktime; + private float walktime, itemtime; private Queue placeQueue = new Queue<>(); private Tile mining; private Vector2 movement = new Vector2(); @@ -338,25 +338,6 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ rotation - 90); } - float backTrns = 5f; - if(item.amount > 0){ - ItemStack stack = item; - int stored = Mathf.clamp(stack.amount / 6, 1, 8); - - for(int i = 0; i < stored; i++){ - float angT = i == 0 ? 0 : Mathf.randomSeedRange(i + 1, 60f); - float lenT = i == 0 ? 0 : Mathf.randomSeedRange(i + 2, 1f) - 1f; - Draw.rect(stack.item.icon(Item.Icon.large), - x + Angles.trnsx(rotation + 180f + angT, backTrns + lenT), - y + Angles.trnsy(rotation + 180f + angT, backTrns + lenT), - itemSize, itemSize, rotation); - } - - Lines.stroke(1f, Pal.accent); - Lines.circle(x + Angles.trnsx(rotation + 180f, backTrns), - y + Angles.trnsy(rotation + 180f, backTrns), 3f + Mathf.absin(Time.time(), 4f, 1f)); - } - Draw.reset(); } @@ -364,7 +345,8 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ public void drawStats(){ Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Time.time(), healthf() * 5f, 1f - healthf())); Draw.rect(getPowerCellRegion(), x + Angles.trnsx(rotation, mech.cellTrnsY, 0f), y + Angles.trnsy(rotation, mech.cellTrnsY, 0f), rotation - 90); - Draw.color(); + Draw.reset(); + drawBackItems(itemtime, isLocal); } @Override @@ -501,6 +483,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ public void update(){ hitTime -= Time.delta(); textFadeTime -= Time.delta() / (60 * 5); + itemtime = Mathf.lerpDelta(itemtime, Mathf.num(item.amount > 0), 0.1f); if(Float.isNaN(x) || Float.isNaN(y)){ velocity.set(0f, 0f); diff --git a/core/src/io/anuke/mindustry/entities/type/Unit.java b/core/src/io/anuke/mindustry/entities/type/Unit.java index 833d908782..0b05836ec8 100644 --- a/core/src/io/anuke/mindustry/entities/type/Unit.java +++ b/core/src/io/anuke/mindustry/entities/type/Unit.java @@ -1,33 +1,28 @@ package io.anuke.mindustry.entities.type; -import io.anuke.annotations.Annotations.Nullable; -import io.anuke.arc.Core; -import io.anuke.arc.Events; -import io.anuke.arc.graphics.Color; -import io.anuke.arc.graphics.g2d.Draw; -import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.math.geom.Geometry; -import io.anuke.arc.math.geom.Vector2; +import io.anuke.annotations.Annotations.*; +import io.anuke.arc.*; +import io.anuke.arc.graphics.*; +import io.anuke.arc.graphics.g2d.*; +import io.anuke.arc.math.*; +import io.anuke.arc.math.geom.*; import io.anuke.arc.util.*; -import io.anuke.mindustry.content.Blocks; -import io.anuke.mindustry.content.Fx; +import io.anuke.mindustry.content.*; import io.anuke.mindustry.entities.*; -import io.anuke.mindustry.entities.effect.ScorchDecal; -import io.anuke.mindustry.entities.impl.DestructibleEntity; +import io.anuke.mindustry.entities.effect.*; +import io.anuke.mindustry.entities.impl.*; import io.anuke.mindustry.entities.traits.*; -import io.anuke.mindustry.entities.units.Statuses; -import io.anuke.mindustry.game.EventType.UnitDestroyEvent; -import io.anuke.mindustry.game.Team; -import io.anuke.mindustry.game.Teams.TeamData; +import io.anuke.mindustry.entities.units.*; +import io.anuke.mindustry.game.EventType.*; +import io.anuke.mindustry.game.*; +import io.anuke.mindustry.game.Teams.*; import io.anuke.mindustry.gen.*; -import io.anuke.mindustry.graphics.Pal; -import io.anuke.mindustry.net.Interpolator; +import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.net.Net; +import io.anuke.mindustry.net.*; import io.anuke.mindustry.type.*; -import io.anuke.mindustry.world.Pos; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.Floor; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.blocks.*; import java.io.*; @@ -379,6 +374,40 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Time.time(), Math.max(healthf() * 5f, 1f), 1f - healthf())); Draw.rect(getPowerCellRegion(), x, y, rotation - 90); Draw.color(); + + drawBackItems(item.amount > 0 ? 1f : 0f, false); + } + + public void drawBackItems(float itemtime, boolean number){ + //draw back items + if(itemtime > 0.01f && item.item != null){ + float backTrns = 5f; + float size = (itemSize + Mathf.absin(Time.time(), 5f, 1f)) * itemtime; + + Draw.mixcol(Pal.accent, Mathf.absin(Time.time(), 5f, 0.5f)); + Draw.rect(item.item.icon(Item.Icon.large), + x + Angles.trnsx(rotation + 180f, backTrns), + y + Angles.trnsy(rotation + 180f, backTrns), + size, size, rotation); + + Draw.mixcol(); + + Lines.stroke(1f, Pal.accent); + Lines.circle( + x + Angles.trnsx(rotation + 180f, backTrns), + y + Angles.trnsy(rotation + 180f, backTrns), + (3f + Mathf.absin(Time.time(), 5f, 1f)) * itemtime); + + if(number){ + Core.scene.skin.getFont("outlined-font").draw(item.amount + "", + x + Angles.trnsx(rotation + 180f, backTrns), + y + Angles.trnsy(rotation + 180f, backTrns) - 3, + Pal.accent, 0.25f * itemtime, false, Align.center + ); + } + } + + Draw.reset(); } public TextureRegion getPowerCellRegion(){