diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 54de9d4da2..f9c2ac0a39 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -151,14 +151,6 @@ public class DesktopInput extends InputHandler{ pollInput(); - //removed for now, will add back if necessary - /* - if(recipe != null && !Settings.getBool("desktop-place-help-2", false)){ - ui.showInfo("$text.construction.desktop"); - Settings.putBool("desktop-place-help-2", true); - Settings.save(); - }*/ - //deselect if not placing if(!isPlacing() && mode == placing){ mode = none; @@ -238,9 +230,10 @@ public class DesktopInput extends InputHandler{ recipe = null; mode = none; }else if(Inputs.keyTap(section, "break") && !ui.hasMouse()){ - selectX = cursorX; - selectY = cursorY; + //is recalculated because setting the mode to breaking removes potential multiblock cursor offset mode = breaking; + selectX = tileX(Gdx.input.getX()); + selectY = tileY(Gdx.input.getY()); } @@ -278,6 +271,11 @@ public class DesktopInput extends InputHandler{ } + @Override + public boolean selectedBlock(){ + return isPlacing() && mode != breaking; + } + @Override public float getMouseX(){ return !controlling ? Gdx.input.getX() : controlx; diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 85626ab1f5..6018ad91f3 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -9,7 +9,6 @@ import io.anuke.annotations.Annotations.Remote; import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.content.fx.EnvironmentFx; import io.anuke.mindustry.entities.Player; -import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.effect.ItemTransfer; import io.anuke.mindustry.entities.traits.BuilderTrait.BuildRequest; import io.anuke.mindustry.gen.Call; @@ -277,7 +276,7 @@ public abstract class InputHandler extends InputAdapter{ int tileX(float cursorX){ Vector2 vec = Graphics.world(cursorX, 0); - if(isPlacing()){ + if(selectedBlock()){ vec.sub(recipe.result.offset(), recipe.result.offset()); } return world.toTile(vec.x); @@ -285,12 +284,16 @@ public abstract class InputHandler extends InputAdapter{ int tileY(float cursorY){ Vector2 vec = Graphics.world(0, cursorY); - if(isPlacing()){ + if(selectedBlock()){ vec.sub(recipe.result.offset(), recipe.result.offset()); } return world.toTile(vec.y); } + public boolean selectedBlock(){ + return isPlacing(); + } + public boolean isPlacing(){ return recipe != null; }