Better Android keyboard support

This commit is contained in:
Anuken
2019-09-21 15:35:59 -04:00
parent 1957b6aa12
commit 0d25d83651
10 changed files with 78 additions and 59 deletions

View File

@@ -280,7 +280,7 @@ public class DesktopInput extends InputHandler{
}
@Override
public void updateController(){
public void updateState(){
if(state.is(State.menu)){
droppingItem = false;
mode = none;

View File

@@ -132,7 +132,7 @@ public abstract class InputHandler implements InputProcessor{
}
public void updateController(){
public void updateState(){
}
@@ -275,6 +275,10 @@ public abstract class InputHandler implements InputProcessor{
frag.remove();
}
public void add(){
Core.input.addProcessor(this);
}
public boolean canShoot(){
return block == null && !Core.scene.hasMouse() && !onConfigurable() && !isDroppingItem();
}

View File

@@ -36,6 +36,7 @@ public class MobileInput extends InputHandler implements GestureListener{
//gesture data
private Vector2 vector = new Vector2();
private float lastZoom = -1;
private GestureDetector detector;
/** Position where the player started dragging a line. */
private int lineStartX, lineStartY;
@@ -65,12 +66,6 @@ public class MobileInput extends InputHandler implements GestureListener{
private int prevX, prevY, prevRotation;
public MobileInput(){
Events.on(ClientLoadEvent.class, e -> {
Core.input.getInputProcessors().add(new GestureDetector(20, 0.5f, 0.4f, 0.15f, this));
});
}
//region utility methods
/** Check and assign targets for a specific position. */
@@ -445,6 +440,20 @@ public class MobileInput extends InputHandler implements GestureListener{
//endregion
//region input events
@Override
public void add(){
super.add();
Core.input.addProcessor(detector = new GestureDetector(20, 0.5f, 0.4f, 0.15f, this));
}
@Override
public void remove(){
super.remove();
if(detector != null){
Core.input.removeProcessor(detector);
}
}
@Override
public boolean touchDown(int screenX, int screenY, int pointer, KeyCode button){
if(state.is(State.menu) || player.isDead()) return false;