Package game.model.inventory

Source Code of game.model.inventory.InventoryMenuModel

package game.model.inventory;

import beans.enumeration.InventoryMode;
import game.model.ListFighterModel;
import game.model.ListModel;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* Model qui controle la partie menu de l'inventaire
* @author mastersnes
*/
public class InventoryMenuModel extends InventoryModelPatern {

    private ListFighterModel listFightersModel;
    private InventoryMode currentMode;
   
    /**
     * Constructeur du modele du menu dans l'inventaire
     * Il prend en parametre la liste des combattant afin d'avoir acces à leurs objets
     * statuts, etc...
     * @param fighter
     */
    public InventoryMenuModel() {
        final List<String> list = InventoryMode.convertToStringList();
        list.remove(InventoryMode.MENU.toString());
        list.remove(InventoryMode.SAME.toString());
       
        listModel = new ListModel(list, list.size() + 1);
        listFightersModel = new ListFighterModel(fighterListModel);
        currentMode = null;

    }

    @Override
    public InventoryMode EnterRequest() {
        final List<InventoryMode> listMode = new ArrayList<InventoryMode>();
        Collections.addAll(listMode, InventoryMode.values());
        listMode.remove(InventoryMode.MENU);
        listMode.remove(InventoryMode.SAME);
        final InventoryMode mode = listMode.get(listModel.getCurrentPosition());
        //Si nous sommes toujours dans la liste de menu
        if (currentMode == null) {
            switch (mode) {
                // Si le mode de menu est EXIT, SAVE ou OPTION on le renvoie direct
                case EXIT:
                case SAVE:
                case OPTION:
                    return mode;
                // Pour tout les autres on passe par le choix de personnage
                default:
                    currentMode = listMode.get(listModel.getCurrentPosition());
                    listFightersModel.switchActivate();
                    return InventoryMode.MENU;
            }
        }
        //Si nous sommes dans le choix de personnage on renvoie le choix courant
        currentFighter = listFightersModel.getCurrentPosition();
        return currentMode;

    }

    @Override
    public InventoryMode back() {
        if (currentMode == null) {
            return null;
        } else {
            currentMode = null;
            listFightersModel.switchActivate();
            return InventoryMode.MENU;
        }
    }

    @Override
    public void moveCursor(final int x, final int y) {
        if (currentMode == null) {
            listModel.updateCursorPosition(x, y);
        } else {
            listFightersModel.updateCursorPosition(x, y);
        }

        setChanged();
        notifyObservers();
    }

    @Override
    public void resetCursor() {
        listFightersModel.resetCursor();
    }

    public ListFighterModel getListFightersModel() {
        return listFightersModel;
    }
}
TOP

Related Classes of game.model.inventory.InventoryMenuModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.