When dpad is active (both visible and not minimized), prevent normal touch-based movement.

This commit is contained in:
Nathan Watson
2020-07-11 16:00:44 -07:00
parent 5bc08762a9
commit 90946e69ee
2 changed files with 10 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ public final class InputController implements OnClickListener, OnLongClickListen
private int lastTouchPosition_dx = 0;
private int lastTouchPosition_dy = 0;
private long lastTouchEventTime = 0;
private boolean isDpadActive = false;
public InputController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
@@ -49,6 +50,7 @@ public final class InputController implements OnClickListener, OnLongClickListen
return false;
}
}
public void onRelativeMovement(int dx, int dy) {
if (!allowInputInterval()) return;
if (world.model.uiSelections.isInCombat) {
@@ -89,6 +91,10 @@ public final class InputController implements OnClickListener, OnLongClickListen
return true;
}
public void setDpadActive(boolean isDpadActive) {
this.isDpadActive = isDpadActive;
}
public void onTouchCancel() {
controllers.movementController.stopMovement();
}
@@ -98,7 +104,7 @@ public final class InputController implements OnClickListener, OnLongClickListen
lastTouchPosition_dx = tile_x - world.model.player.position.x;
lastTouchPosition_dy = tile_y - world.model.player.position.y;
if (world.model.uiSelections.isInCombat) return false;
if (world.model.uiSelections.isInCombat || isDpadActive) return false;
controllers.movementController.startMovement(lastTouchPosition_dx, lastTouchPosition_dy, lastTouchPosition_tileCoords);
return true;

View File

@@ -98,10 +98,12 @@ public final class VirtualDpadView extends ImageView implements OnClickListener
int dpadPosition = preferences.dpadPosition;
if (dpadPosition == AndorsTrailPreferences.DPAD_POSITION_DISABLED) {
setVisibility(View.GONE);
this.inputController.setDpadActive(false);
return;
}
setVisibility(View.VISIBLE);
this.inputController.setDpadActive(!isMinimized);
isMinimizeable = preferences.dpadMinimizeable;
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
@@ -156,6 +158,7 @@ public final class VirtualDpadView extends ImageView implements OnClickListener
setMaxWidth(one_third_width);
setMaxHeight(one_third_height);
}
this.inputController.setDpadActive(!isMinimized);
this.requestLayout();
}
}