Fixed breaking with multiblock being offseted

This commit is contained in:
Anuken
2018-10-22 22:21:22 -04:00
parent b2dca0a34f
commit 7d83cd89f2
2 changed files with 14 additions and 13 deletions

View File

@@ -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;

View File

@@ -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;
}