diff options
Diffstat (limited to 'core/src/ch/asynk/rustanddust')
-rw-r--r-- | core/src/ch/asynk/rustanddust/menu/MenuCtrl.java | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/core/src/ch/asynk/rustanddust/menu/MenuCtrl.java b/core/src/ch/asynk/rustanddust/menu/MenuCtrl.java new file mode 100644 index 0000000..8d19378 --- /dev/null +++ b/core/src/ch/asynk/rustanddust/menu/MenuCtrl.java @@ -0,0 +1,83 @@ +package ch.asynk.rustanddust.menu; + +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.utils.Disposable; + +import ch.asynk.rustanddust.RustAndDust; +import ch.asynk.rustanddust.ui.Widget; + +public class MenuCtrl implements Disposable +{ + private MainMenu mainMenu; + private PlayMenu playMenu; + private OptionsMenu optionsMenu; + private TutorialsMenu tutorialsMenu; + private Widget currentMenu; + + public boolean visible; + + public MenuCtrl(final RustAndDust game) + { + this.mainMenu = new MainMenu(game); + this.playMenu = new PlayMenu(game); + this.optionsMenu = new OptionsMenu(game); + this.tutorialsMenu = new TutorialsMenu(game); + + this.currentMenu = mainMenu; + this.currentMenu.visible = true; + this.visible = true; + } + + public boolean hit(float x, float y) + { + boolean ret = false; + + if (currentMenu.hit(x, y)) { + currentMenu.visible = false; + if (currentMenu == mainMenu) { + showNextMenu(); + } else if (currentMenu == playMenu) { + currentMenu = mainMenu; + if (playMenu.launch) + ret = true; + } else { + currentMenu = mainMenu; + } + currentMenu.visible = true; + } + + return ret; + } + + private void showNextMenu() + { + switch(mainMenu.getMenu()) { + case PLAY: currentMenu = playMenu; break; + case OPTIONS: currentMenu = optionsMenu; break; + case TUTORIALS: currentMenu = tutorialsMenu; break; + } + } + + public void draw(SpriteBatch batch) + { + if (visible) + currentMenu.draw(batch); + } + + public void setPosition() + { + mainMenu.setPosition(); + playMenu.setPosition(); + optionsMenu.setPosition(); + tutorialsMenu.setPosition(); + } + + @Override + public void dispose() + { + mainMenu.dispose(); + playMenu.dispose(); + optionsMenu.dispose(); + tutorialsMenu.dispose(); + } +} |