From 6b2f2d0664b9e82340942a1bf025042615117f03 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 2 Feb 2019 14:42:47 -0500 Subject: [PATCH] Preparing to refactor entity module --- .../{StatusController.java => Statuses.java} | 2 +- .../src/io/anuke/mindustry/entities/Unit.java | 23 ++++++------------- .../anuke/mindustry/entities/units/Squad.java | 1 + .../io/anuke/mindustry/type/StatusEffect.java | 2 +- 4 files changed, 10 insertions(+), 18 deletions(-) rename core/src/io/anuke/mindustry/entities/{StatusController.java => Statuses.java} (98%) diff --git a/core/src/io/anuke/mindustry/entities/StatusController.java b/core/src/io/anuke/mindustry/entities/Statuses.java similarity index 98% rename from core/src/io/anuke/mindustry/entities/StatusController.java rename to core/src/io/anuke/mindustry/entities/Statuses.java index 1ac2a06fd1..dd7cf0f5af 100644 --- a/core/src/io/anuke/mindustry/entities/StatusController.java +++ b/core/src/io/anuke/mindustry/entities/Statuses.java @@ -16,7 +16,7 @@ import java.io.IOException; import static io.anuke.mindustry.Vars.content; /** Class for controlling status effects on an entity.*/ -public class StatusController implements Saveable{ +public class Statuses implements Saveable{ private static final StatusEntry globalResult = new StatusEntry(); private static final Array removals = new Array<>(); diff --git a/core/src/io/anuke/mindustry/entities/Unit.java b/core/src/io/anuke/mindustry/entities/Unit.java index 3880212bdb..7d9de914d8 100644 --- a/core/src/io/anuke/mindustry/entities/Unit.java +++ b/core/src/io/anuke/mindustry/entities/Unit.java @@ -23,6 +23,7 @@ import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Teams.TeamData; import io.anuke.mindustry.net.Interpolator; import io.anuke.mindustry.net.Net; +import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.type.StatusEffect; import io.anuke.mindustry.type.Weapon; import io.anuke.mindustry.world.Pos; @@ -36,7 +37,7 @@ import java.io.IOException; import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.tilesize; -public abstract class Unit extends DestructibleEntity implements SaveTrait, TargetTrait, SyncTrait, DrawTrait, TeamTrait, InventoryTrait{ +public abstract class Unit extends DestructibleEntity implements SaveTrait, TargetTrait, SyncTrait, DrawTrait, TeamTrait{ /**Total duration of hit flash effect*/ public static final float hitDuration = 9f; /**Percision divisor of velocity, used when writing. For example a value of '2' would mean the percision is 1/2 = 0.5-size chunks.*/ @@ -48,26 +49,20 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ private static final Rectangle queryRect = new Rectangle(); private static final Vector2 moveVector = new Vector2(); - public final UnitInventory inventory = new UnitInventory(this); public float rotation; - public float hitTime; protected final Interpolator interpolator = new Interpolator(); - protected final StatusController status = new StatusController(); - protected Team team = Team.blue; + protected final Statuses status = new Statuses(); + protected final ItemStack inventory = new ItemStack(content.item(0), 0); - protected float drownTime; + protected Team team = Team.blue; + protected float drownTime, hitTime; @Override public boolean movable(){ return !isDead(); } - @Override - public UnitInventory getInventory(){ - return inventory; - } - @Override public boolean collidesGrid(int x, int y){ return !isFlying(); @@ -114,7 +109,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ @Override public void onDeath(){ - inventory.clear(); + inventory.amount = 0; drownTime = 0f; status.clear(); Events.fire(new UnitDestroyEvent(this)); @@ -344,10 +339,6 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ Draw.rect(getIconRegion(), x + offsetX, y + offsetY, rotation - 90); } - public void drawView(){ - Fill.circle(x, y, getViewDistance()); - } - public float getViewDistance(){ return 135f; } diff --git a/core/src/io/anuke/mindustry/entities/units/Squad.java b/core/src/io/anuke/mindustry/entities/units/Squad.java index ef5d2b6e01..623f42f670 100644 --- a/core/src/io/anuke/mindustry/entities/units/Squad.java +++ b/core/src/io/anuke/mindustry/entities/units/Squad.java @@ -7,6 +7,7 @@ import io.anuke.arc.math.geom.Vector2; * Used to group entities together, for formations and such. * Usually, squads are used by units spawned in the same wave. */ +//TODO remove? is this necessary? public class Squad{ public Vector2 direction = new Vector2(); public int units; diff --git a/core/src/io/anuke/mindustry/type/StatusEffect.java b/core/src/io/anuke/mindustry/type/StatusEffect.java index ce2b8dc9af..db977b6b48 100644 --- a/core/src/io/anuke/mindustry/type/StatusEffect.java +++ b/core/src/io/anuke/mindustry/type/StatusEffect.java @@ -9,7 +9,7 @@ import io.anuke.arc.graphics.Color; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Time; import io.anuke.mindustry.content.Fx; -import io.anuke.mindustry.entities.StatusController.StatusEntry; +import io.anuke.mindustry.entities.Statuses.StatusEntry; import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.game.Content;