Build/break queue shuffling

This commit is contained in:
Anuken 2019-02-07 11:21:03 -05:00
parent 5a7e5450dc
commit 7b90044544
2 changed files with 7 additions and 4 deletions

View File

@ -4,7 +4,6 @@ import io.anuke.arc.Core;
import io.anuke.arc.Events; import io.anuke.arc.Events;
import io.anuke.arc.collection.Array; import io.anuke.arc.collection.Array;
import io.anuke.arc.collection.Queue; import io.anuke.arc.collection.Queue;
import io.anuke.mindustry.entities.Effects;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.Draw; import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Fill; 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.Vars;
import io.anuke.mindustry.content.Blocks; import io.anuke.mindustry.content.Blocks;
import io.anuke.mindustry.content.Fx; 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.Player;
import io.anuke.mindustry.entities.type.TileEntity; import io.anuke.mindustry.entities.type.TileEntity;
import io.anuke.mindustry.entities.type.Unit; import io.anuke.mindustry.entities.type.Unit;
@ -183,8 +183,7 @@ public interface BuilderTrait extends Entity, TeamTrait{
for(BuildRequest request : removal){ for(BuildRequest request : removal){
if(!((request.breaking && world.tile(request.x, request.y).block() == Blocks.air) || if(!((request.breaking && world.tile(request.x, request.y).block() == Blocks.air) ||
(!request.breaking && (!request.breaking && (world.tile(request.x, request.y).getRotation() == request.rotation || !request.block.rotate)
(world.tile(request.x, request.y).getRotation() == request.rotation || !request.block.rotate)
&& world.tile(request.x, request.y).block() == request.block))){ && world.tile(request.x, request.y).block() == request.block))){
getPlaceQueue().addLast(request); getPlaceQueue().addLast(request);
} }
@ -205,6 +204,10 @@ public interface BuilderTrait extends Entity, TeamTrait{
Tile tile = world.tile(current.x, current.y); Tile tile = world.tile(current.x, current.y);
if(dst(tile) > placeDistance){ if(dst(tile) > placeDistance){
if(getPlaceQueue().size > 1){
getPlaceQueue().removeFirst();
getPlaceQueue().addLast(current);
}
return; return;
} }

View File

@ -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. */ /** Draw all current build requests. Does not draw the beam effect, only the positions. */
public void drawBuildRequests(){ public void drawBuildRequests(){
for(BuildRequest request : getPlaceQueue()){ for(BuildRequest request : getPlaceQueue()){
if(getCurrentRequest() == request) continue; if(getCurrentRequest() == request && request.progress > 0.001f) continue;
if(request.breaking){ if(request.breaking){
Block block = world.tile(request.x, request.y).target().block(); Block block = world.tile(request.x, request.y).target().block();