Added 'block info' tool, fixed sorter corruptions

This commit is contained in:
Anuken
2018-02-03 21:49:43 -05:00
parent da22f8fbce
commit 1c9395ed43
13 changed files with 102 additions and 77 deletions
@@ -12,7 +12,6 @@ import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.*;
@@ -179,10 +178,7 @@ public class AndroidInput extends InputHandler{
for(ItemStack stack : recipe.requirements){
state.inventory.removeItem(stack);
}
if(!state.inventory.hasItems(recipe.requirements)){
Cursors.restoreCursor();
}
return true;
}
return false;
@@ -23,6 +23,7 @@ public class DefaultKeybinds {
"dash", Input.SHIFT_LEFT,
"rotate_alt", new Axis(Input.R, Input.E),
"rotate", new Axis(Input.SCROLL),
"block_info", Input.CONTROL_LEFT,
"player_list", Input.TAB,
"chat", Input.ENTER,
"console", Input.GRAVE,
@@ -96,19 +96,27 @@ public class DesktopInput extends InputHandler{
}
Tile cursor = world.tile(tilex(), tiley());
Tile target = cursor == null ? null : cursor.isLinked() ? cursor.getLinked() : cursor;
boolean showCursor = false;
if(recipe == null && target != null && !ui.hasMouse() && Inputs.keyDown("block_info")
&& target.block().fullDescription != null){
showCursor = true;
if(Inputs.keyTap("select")){
ui.hudfrag.blockfrag.showBlockInfo(target.block());
Cursors.restoreCursor();
}
}
if(Inputs.keyTap("select") && cursor != null && !ui.hasMouse()){
Tile linked = cursor.isLinked() ? cursor.getLinked() : cursor;
if(linked != null && linked.block().isConfigurable(linked)){
ui.configfrag.showConfig(linked);
if(target != null && Inputs.keyTap("select") && !ui.hasMouse()){
if(target.block().isConfigurable(target)){
ui.configfrag.showConfig(target);
}else if(!ui.configfrag.hasConfigMouse()){
ui.configfrag.hideConfig();
}
if(linked != null) {
linked.block().tapped(linked);
if(Net.active()) NetEvents.handleBlockTap(linked);
}
target.block().tapped(target);
if(Net.active()) NetEvents.handleBlockTap(target);
}
if(Inputs.keyTap("break")){
@@ -122,7 +130,6 @@ public class DesktopInput extends InputHandler{
if(recipe != null && Inputs.keyTap("break")){
beganBreak = true;
recipe = null;
Cursors.restoreCursor();
}
//block breaking
@@ -136,6 +143,17 @@ public class DesktopInput extends InputHandler{
breaktime = 0f;
}
if(recipe != null){
showCursor = validPlace(tilex(), tiley(), control.input().recipe.result) && control.input().cursorNear();
}
if(!ui.hasMouse()) {
if (showCursor)
Cursors.setHand();
else
Cursors.restoreCursor();
}
}
public int tilex(){
@@ -22,7 +22,6 @@ import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Sounds;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.SolidEntity;
import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Tmp;
@@ -68,10 +67,7 @@ public abstract class InputHandler extends InputAdapter{
for(ItemStack stack : recipe.requirements){
state.inventory.removeItem(stack);
}
if(!state.inventory.hasItems(recipe.requirements)){
Cursors.restoreCursor();
}
return true;
}
return false;
@@ -10,7 +10,6 @@ import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Tmp;
@@ -48,11 +47,6 @@ public enum PlaceMode{
Tmp.v1.set(7, 0).rotate(control.input().rotation * 90);
Lines.line(x, y, x + Tmp.v1.x, y + Tmp.v1.y);
}
if(valid)
Cursors.setHand();
else
Cursors.restoreCursor();
}
public void tapped(int tilex, int tiley){