Fixed broken resupply animations

This commit is contained in:
Anuken
2018-05-01 16:46:10 -04:00
parent 1bf728359d
commit 131f646024
2 changed files with 23 additions and 7 deletions

View File

@ -11,6 +11,7 @@ import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.flags.BlockFlag; import io.anuke.mindustry.world.flags.BlockFlag;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.graphics.Shapes; import io.anuke.ucore.graphics.Shapes;
import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.EnumSet; import io.anuke.ucore.util.EnumSet;
@ -37,6 +38,13 @@ public class RepairPoint extends Block{
powerCapacity = 20f; powerCapacity = 20f;
} }
@Override
public void drawSelect(Tile tile){
Draw.color("accent");
Lines.dashCircle(tile.drawx(), tile.drawy(), repairRadius);
Draw.color();
}
@Override @Override
public void drawLayer(Tile tile) { public void drawLayer(Tile tile) {
RepairPointEntity entity = tile.entity(); RepairPointEntity entity = tile.entity();

View File

@ -12,6 +12,7 @@ import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.flags.BlockFlag; import io.anuke.mindustry.world.flags.BlockFlag;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.graphics.Shapes; import io.anuke.ucore.graphics.Shapes;
import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.EnumSet; import io.anuke.ucore.util.EnumSet;
@ -38,6 +39,13 @@ public class ResupplyPoint extends Block{
powerCapacity = 20f; powerCapacity = 20f;
} }
@Override
public void drawSelect(Tile tile){
Draw.color("accent");
Lines.dashCircle(tile.drawx(), tile.drawy(), supplyRadius);
Draw.color();
}
@Override @Override
public void drawLayer(Tile tile) { public void drawLayer(Tile tile) {
ResupplyPointEntity entity = tile.entity(); ResupplyPointEntity entity = tile.entity();
@ -55,9 +63,9 @@ public class ResupplyPoint extends Block{
x1, y1, entity.lastx, entity.lasty, entity.strength); x1, y1, entity.lastx, entity.lasty, entity.strength);
Draw.color("accent"); Draw.color("accent");
for(int i = 0; i < dstTo/space - 1; i ++){ for(int i = 0; i < dstTo/space; i ++){
float fract = (i * space) / dstTo + (Timers.time()/4f) % (1f/(dstTo/space)); float fract = (i * space) / dstTo;
Draw.alpha(fract); Draw.alpha(Mathf.absin(Timers.time() - i*space, 3f, 1f));
Draw.rect("transfer-arrow", x1 + fract*xf, y1 + fract*yf, Draw.rect("transfer-arrow", x1 + fract*xf, y1 + fract*yf,
8, 8*entity.strength, ang); 8, 8*entity.strength, ang);
} }
@ -93,11 +101,11 @@ public class ResupplyPoint extends Block{
if(entity.target != null && entity.power.amount >= powerUse){ if(entity.target != null && entity.power.amount >= powerUse){
entity.power.amount -= powerUse; entity.power.amount -= powerUse;
entity.lastx = entity.x; entity.lastx = entity.target.x;
entity.lasty = entity.y; entity.lasty = entity.target.y;
entity.strength = Mathf.lerpDelta(entity.strength, 1f, 0.07f * Timers.delta()); entity.strength = Mathf.lerpDelta(entity.strength, 1f, 0.08f * Timers.delta());
}else{ }else{
entity.strength = Mathf.lerpDelta(entity.strength, 0f, 0.05f * Timers.delta()); entity.strength = Mathf.lerpDelta(entity.strength, 0f, 0.08f * Timers.delta());
} }
if(entity.timer.get(timerTarget, 20)) { if(entity.timer.get(timerTarget, 20)) {