diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2015-12-19 18:51:36 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2015-12-19 18:52:34 +0100 |
commit | bfdcabc73be8b8d4df7207d3ea030091e693a886 (patch) | |
tree | 966ff1afaae1547e44a3601b42efdf1ea334f519 /core | |
parent | cdb78a4dd7f117d6fdcd1b84ba057db9e4ba81ac (diff) | |
download | RustAndDust-bfdcabc73be8b8d4df7207d3ea030091e693a886.zip RustAndDust-bfdcabc73be8b8d4df7207d3ea030091e693a886.tar.gz |
Hud: replace touchUp + touchDown with hit(int, int)
Diffstat (limited to 'core')
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/Ctrl.java | 5 | ||||
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/Hud.java | 52 | ||||
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/hud/ActionButtons.java | 29 | ||||
-rw-r--r-- | core/src/ch/asynk/rustanddust/game/hud/PlayerInfo.java | 46 |
4 files changed, 24 insertions, 108 deletions
diff --git a/core/src/ch/asynk/rustanddust/game/Ctrl.java b/core/src/ch/asynk/rustanddust/game/Ctrl.java index b9520ff..024bd02 100644 --- a/core/src/ch/asynk/rustanddust/game/Ctrl.java +++ b/core/src/ch/asynk/rustanddust/game/Ctrl.java @@ -103,7 +103,7 @@ public class Ctrl implements Disposable { boolean inAnimation = (this.stateType == StateType.ANIMATION); - if (!blockHud && hud.touchDown(hudTouch.x, hudTouch.y, inAnimation)) + if (!blockHud && hud.hit(hudTouch.x, hudTouch.y, inAnimation)) return; if (!blockMap && state.downInMap(mapTouch.x, mapTouch.y)) @@ -112,9 +112,6 @@ public class Ctrl implements Disposable public void touchUp() { - if (!blockHud && hud.touchUp(hudTouch.x, hudTouch.y)) - return; - if (!blockMap && state.upInMap(mapTouch.x, mapTouch.y)) state.touchUp(); } diff --git a/core/src/ch/asynk/rustanddust/game/Hud.java b/core/src/ch/asynk/rustanddust/game/Hud.java index a90507f..1e869f4 100644 --- a/core/src/ch/asynk/rustanddust/game/Hud.java +++ b/core/src/ch/asynk/rustanddust/game/Hud.java @@ -33,8 +33,6 @@ public class Hud implements Disposable, Animation private final RustAndDust game; private final Ctrl ctrl; - private Object hit; - public PlayerInfo playerInfo; public ActionButtons actionButtons; @@ -184,19 +182,17 @@ public class Hud implements Disposable, Animation return playerInfo.drag(x, y, dx, dy); } - public boolean touchDown(float x, float y, boolean isInAnimation) + public boolean hit(float x, float y, boolean isInAnimation) { - hit = null; - if (optionsBtn.hit(x, y)) { - hit = optionsBtn; + toggleOptionsPanel(); return true; } if (dialogs.size() > 0) { Widget dialog = dialogs.peek(); if (dialog.hit(x, y)) { - hit = dialog; + closeDialog(); return true; } return false; @@ -205,46 +201,12 @@ public class Hud implements Disposable, Animation if (isInAnimation) return false; - if (hit == null) { - if (actionButtons.touchDown(x, y)) - hit = actionButtons; - else if (playerInfo.touchDown(x, y)) - hit = playerInfo; - } - - return (hit != null); - } - - public boolean touchUp(float x, float y) - { - if (hit == null) - return false; - - if (hit == optionsBtn) { - if (optionsBtn.hit(x, y)) - toggleOptionsPanel(); + if (actionButtons.hit(x, y)) + return true; + else if (playerInfo.hit(x, y)) return true; - } - - if (dialogs.size() > 0) { - Widget dialog = dialogs.peek(); - if (hit == dialog) { - if (dialog.hit(x, y)) - closeDialog(); - hit = null; - } - } else { - if (hit == actionButtons) { - actionButtons.touchUp(x, y); - } - else if (hit == playerInfo) { - playerInfo.touchUp(x, y); - } - - hit = null; - } - return true; + return false; } private void closeDialog() diff --git a/core/src/ch/asynk/rustanddust/game/hud/ActionButtons.java b/core/src/ch/asynk/rustanddust/game/hud/ActionButtons.java index ef15222..51ba8a0 100644 --- a/core/src/ch/asynk/rustanddust/game/hud/ActionButtons.java +++ b/core/src/ch/asynk/rustanddust/game/hud/ActionButtons.java @@ -35,7 +35,6 @@ public class ActionButtons extends Widget } private Sprite bg; - private int idx; private Bg buttons []; private StateType states []; @@ -45,7 +44,6 @@ public class ActionButtons extends Widget this.ctrl = game.ctrl; this.visible = false; this.position = Position.BOTTOM_RIGHT; - this.idx = Buttons.NONE.i; this.buttons = new Bg[Buttons.LAST.i]; this.buttons[Buttons.DONE.i] = new Bg(game.factory.getHudRegion(game.factory.ACT_DONE)); @@ -130,38 +128,19 @@ public class ActionButtons extends Widget this.visible = true; } - public boolean touchDown(float x, float y) + public boolean hit(float x, float y) { - idx = Buttons.NONE.i; - if (!super.hit(x,y)) return false; for (int i = 0; i < Buttons.LAST.i; i++) { if (buttons[i].hit(x, y)) { - idx = i; - break; + ctrl.setState(states[i]); + return true; } } - return (idx != Buttons.NONE.i); - } - - public boolean touchUp(float x, float y) - { - if (idx == Buttons.NONE.i) - return false; - - boolean ret = false; - - if (super.hit(x,y) && buttons[idx].hit(x, y)) { - ctrl.setState(states[idx]); - ret = true; - } - - idx = Buttons.NONE.i; - - return ret; + return false; } @Override diff --git a/core/src/ch/asynk/rustanddust/game/hud/PlayerInfo.java b/core/src/ch/asynk/rustanddust/game/hud/PlayerInfo.java index a7dea32..ab5c368 100644 --- a/core/src/ch/asynk/rustanddust/game/hud/PlayerInfo.java +++ b/core/src/ch/asynk/rustanddust/game/hud/PlayerInfo.java @@ -22,8 +22,6 @@ public class PlayerInfo implements Disposable, Drawable, Animation private final Ctrl ctrl; - private Object hit; - private Bg flag; private Bg usFlag; private Bg geFlag; @@ -136,43 +134,23 @@ public class PlayerInfo implements Disposable, Drawable, Animation return true; } - public boolean touchDown(float x, float y) - { - hit = null; - - if (reinforcement.hit(x, y)) - hit = reinforcement; - else if (unitDock.hit(x, y)) - hit = unitDock; - else if (turns.hit(x,y)) - hit = turns; - - return (hit != null); - } - - public boolean touchUp(float x, float y) + public boolean hit(float x, float y) { - if (hit == null) - return false; - - if (hit == turns) { - if (turns.hit(x, y)) - ctrl.hud.askEndOfTurn(); + if (turns.hit(x, y)) { + ctrl.hud.askEndOfTurn(); + return true; } - else if (hit == reinforcement) { - if (reinforcement.hit(x, y)) - ctrl.reinforcementHit(); + else if (reinforcement.hit(x, y)) { + ctrl.reinforcementHit(); + return true; } - else if (hit == unitDock) { - if (unitDock.hit(x, y)) { - ctrl.hud.notify(unitDock.select(x, y).toString(), Position.TOP_CENTER); - ctrl.showEntryZone(); - } + else if (unitDock.hit(x, y)) { + ctrl.hud.notify(unitDock.select(x, y).toString(), Position.TOP_CENTER); + ctrl.showEntryZone(); + return true; } - hit = null; - - return true; + return false; } @Override |