package games.fighter.billMuenstermanJouster.model;
import java.util.List;
import vooga.fighter.model.loaders.MenuGridLoader;
import vooga.fighter.model.mode.MenuMode;
import vooga.fighter.model.objects.MenuObject;
/**
* This class has been created to keep
* track of all the given instantiated menus.
* It provides functionality to use the selected menu,
* or switch to any cardinal direction of it using the given methods.
* It's loader also loads the locations of the menus.
*
* @author Jack Matteucci
*/
public class MenuGrid {
private final static String UNSELECTED = "Unselected";
private final static String SELECTED = "Selected";
private List<MenuObject> myMenuObjects;
private MenuObject myCurrentMenuObject;
public MenuGrid (String Id, MenuMode delegate, String filepath) {
MenuGridLoader menuGrid = new MenuGridLoader(Id, delegate, filepath);
myMenuObjects = menuGrid.getMenuObjects();
myCurrentMenuObject = menuGrid.getFirstMenuObject();
myCurrentMenuObject.setCurrentState(SELECTED);
}
/**
* returns all menu objects
*/
public List<MenuObject> getMenuObjects () {
return myMenuObjects;
}
/**
* returns the current selected menu object
*/
public MenuObject getCurrentObject () {
return myCurrentMenuObject;
}
/**
* returns the left menu of the current menu
*/
public void left () {
for (MenuObject menu : myMenuObjects) {
if (myCurrentMenuObject.getLeft() == menu.getNum()) {
myCurrentMenuObject.setCurrentState(UNSELECTED);
myCurrentMenuObject = menu;
myCurrentMenuObject.setCurrentState(SELECTED);
return;
}
}
}
/**
* returns the right menu of the current menu
*/
public void right () {
for (MenuObject menu : myMenuObjects) {
if (myCurrentMenuObject.getRight() == menu.getNum()) {
myCurrentMenuObject.setCurrentState(UNSELECTED);
myCurrentMenuObject = menu;
myCurrentMenuObject.setCurrentState(SELECTED);
return;
}
}
}
/**
* returns the up menu of the current menu
*/
public void up () {
for (MenuObject menu : myMenuObjects) {
if (myCurrentMenuObject.getUp() == menu.getNum()) {
myCurrentMenuObject.setCurrentState(UNSELECTED);
myCurrentMenuObject = menu;
myCurrentMenuObject.setCurrentState(SELECTED);
return;
}
}
}
/**
* returns the down menu of the current menu
*/
public void down () {
for (MenuObject menu : myMenuObjects) {
if (myCurrentMenuObject.getDown() == menu.getNum()) {
myCurrentMenuObject.setCurrentState(UNSELECTED);
myCurrentMenuObject = menu;
myCurrentMenuObject.setCurrentState(SELECTED);
return;
}
}
}
}