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