mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-07-19 20:27:44 +07:00
Fixed #2224
This commit is contained in:
@ -29,17 +29,17 @@ abstract class BuilderComp implements Unitc{
|
||||
@Import float x, y, rotation;
|
||||
|
||||
@SyncLocal Queue<BuildPlan> plans = new Queue<>();
|
||||
transient boolean building = true;
|
||||
transient boolean updateBuilding = true;
|
||||
|
||||
@Override
|
||||
public void controller(UnitController next){
|
||||
//reset building state so AI controlled units will always start off building
|
||||
building = true;
|
||||
updateBuilding = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(){
|
||||
if(!building) return;
|
||||
if(!updateBuilding) return;
|
||||
|
||||
float finalPlaceDst = state.rules.infiniteResources ? Float.MAX_VALUE : buildingRange;
|
||||
|
||||
@ -208,7 +208,7 @@ abstract class BuilderComp implements Unitc{
|
||||
|
||||
@Override
|
||||
public void draw(){
|
||||
if(!isBuilding()) return;
|
||||
if(!isBuilding() || !updateBuilding) return;
|
||||
|
||||
//TODO check correctness
|
||||
Draw.z(Layer.flyingUnit);
|
||||
|
@ -432,6 +432,10 @@ public class DesktopInput extends InputHandler{
|
||||
if(Core.input.keyTap(Binding.pause_building)){
|
||||
isBuilding = !isBuilding;
|
||||
buildWasAutoPaused = false;
|
||||
|
||||
if(isBuilding){
|
||||
player.shooting = false;
|
||||
}
|
||||
}
|
||||
|
||||
if((cursorX != lastLineX || cursorY != lastLineY) && isPlacing() && mode == placing){
|
||||
@ -460,7 +464,7 @@ public class DesktopInput extends InputHandler{
|
||||
deleting = true;
|
||||
}else if(selected != null){
|
||||
//only begin shooting if there's no cursor event
|
||||
if(!tileTapped(selected.build) && !tryTapPlayer(Core.input.mouseWorld().x, Core.input.mouseWorld().y) && (player.builder().plans().size == 0 || !player.builder().isBuilding()) && !droppingItem &&
|
||||
if(!tileTapped(selected.build) && !tryTapPlayer(Core.input.mouseWorld().x, Core.input.mouseWorld().y) && (player.builder().plans().size == 0 || !player.builder().updateBuilding()) && !droppingItem &&
|
||||
!tryBeginMine(selected) && player.miner().mineTile() == null && !Core.scene.hasKeyboard()){
|
||||
player.shooting = shouldShoot;
|
||||
}
|
||||
|
@ -299,7 +299,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
||||
player.typing = ui.chatfrag.shown();
|
||||
|
||||
if(player.isBuilder()){
|
||||
player.builder().building(isBuilding);
|
||||
player.builder().updateBuilding(isBuilding);
|
||||
}
|
||||
|
||||
if(!player.dead()){
|
||||
@ -901,7 +901,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
||||
}
|
||||
|
||||
public boolean canShoot(){
|
||||
return block == null && !Core.scene.hasMouse() && !onConfigurable() && !isDroppingItem();
|
||||
return block == null && !Core.scene.hasMouse() && !onConfigurable() && !isDroppingItem() && !(player.builder().updateBuilding() && player.builder().isBuilding());
|
||||
}
|
||||
|
||||
public boolean onConfigurable(){
|
||||
|
Reference in New Issue
Block a user