From 7b900445442c222194fc31fc98123214af7f49ed Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 7 Feb 2019 11:21:03 -0500 Subject: [PATCH] Build/break queue shuffling --- .../io/anuke/mindustry/entities/traits/BuilderTrait.java | 9 ++++++--- core/src/io/anuke/mindustry/entities/type/Player.java | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java index 51b89a99d0..8ed8291e4e 100644 --- a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java +++ b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java @@ -4,7 +4,6 @@ import io.anuke.arc.Core; import io.anuke.arc.Events; import io.anuke.arc.collection.Array; import io.anuke.arc.collection.Queue; -import io.anuke.mindustry.entities.Effects; import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.g2d.Fill; @@ -16,6 +15,7 @@ import io.anuke.arc.util.Time; import io.anuke.mindustry.Vars; import io.anuke.mindustry.content.Blocks; import io.anuke.mindustry.content.Fx; +import io.anuke.mindustry.entities.Effects; import io.anuke.mindustry.entities.type.Player; import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.Unit; @@ -183,8 +183,7 @@ public interface BuilderTrait extends Entity, TeamTrait{ for(BuildRequest request : removal){ if(!((request.breaking && world.tile(request.x, request.y).block() == Blocks.air) || - (!request.breaking && - (world.tile(request.x, request.y).getRotation() == request.rotation || !request.block.rotate) + (!request.breaking && (world.tile(request.x, request.y).getRotation() == request.rotation || !request.block.rotate) && world.tile(request.x, request.y).block() == request.block))){ getPlaceQueue().addLast(request); } @@ -205,6 +204,10 @@ public interface BuilderTrait extends Entity, TeamTrait{ Tile tile = world.tile(current.x, current.y); if(dst(tile) > placeDistance){ + if(getPlaceQueue().size > 1){ + getPlaceQueue().removeFirst(); + getPlaceQueue().addLast(current); + } return; } diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index a707ab6e88..34efced6e6 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -414,7 +414,7 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{ /** Draw all current build requests. Does not draw the beam effect, only the positions. */ public void drawBuildRequests(){ for(BuildRequest request : getPlaceQueue()){ - if(getCurrentRequest() == request) continue; + if(getCurrentRequest() == request && request.progress > 0.001f) continue; if(request.breaking){ Block block = world.tile(request.x, request.y).target().block();