mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-02-05 08:27:37 +07:00
Build/break queue shuffling
This commit is contained in:
parent
5a7e5450dc
commit
7b90044544
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user