Search in sources :

Example 1 with ActionValueContainer

use of eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer in project Eidolons by IDemiurge.

the class MapActionPanel method getActions.

private List<ActionValueContainer> getActions(MacroParty source) {
    // cache
    List<MacroAction> actions = MacroActionManager.getMacroActions(MACRO_ACTION_GROUPS.PARTY, source);
    List<ActionValueContainer> list = new ArrayList<>();
    for (MacroAction sub : actions) {
        boolean valid = true;
        TextureRegion texture = TextureCache.getOrCreateR(sub.getImagePath());
        list.add(new ActionValueContainer(valid, texture, () -> {
            sub.invokeClicked();
        }));
    }
    return list;
}
Also used : MacroAction(eidolons.game.module.adventure.entity.MacroAction) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) ActionValueContainer(eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer) ArrayList(java.util.ArrayList)

Example 2 with ActionValueContainer

use of eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer in project Eidolons by IDemiurge.

the class PanelActionsDataSource method getQuickSlotActions.

@Override
public List<ActionValueContainer> getQuickSlotActions() {
    final DequeImpl<DC_QuickItemObj> items = unit.getQuickItems();
    if (items == null)
        return (List<ActionValueContainer>) ListMaster.fillWithNullElements(new ArrayList<ActionValueContainer>(), unit.getRemainingQuickSlots());
    List<ActionValueContainer> list = items.stream().map((DC_QuickItemObj key) -> {
        boolean valid = key.getActive().canBeManuallyActivated();
        final ActionValueContainer valueContainer = new ActionValueContainer(valid, getOrCreateR(key.getImagePath()), key::invokeClicked);
        ActionCostTooltip tooltip = new ActionCostTooltip(key.getActive());
        tooltip.setUserObject(new ActionCostSourceImpl(key.getActive()));
        valueContainer.addListener(tooltip.getController());
        return valueContainer;
    }).collect(Collectors.toList());
    ObjType type = DataManager.getType(StringMaster.getWellFormattedString(STD_SPEC_ACTIONS.Use_Inventory.name()), DC_TYPE.ACTIONS);
    TextureRegion invTexture = TextureCache.getOrCreateR(type.getImagePath());
    DC_UnitAction action = unit.getAction(StringMaster.getWellFormattedString(STD_SPEC_ACTIONS.Use_Inventory.name()));
    if (action == null)
        return list;
    boolean valid = action.canBeManuallyActivated();
    ActionValueContainer invButton = new ActionValueContainer(valid, invTexture, () -> {
        action.clicked();
    });
    list.add(invButton);
    for (int i = 0; i < unit.getRemainingQuickSlots() - 1; i++) {
        list.add(null);
    }
    return list;
}
Also used : ActionCostTooltip(eidolons.libgdx.gui.panels.dc.actionpanel.tooltips.ActionCostTooltip) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) ActionValueContainer(eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer) ObjType(main.entity.type.ObjType) DC_QuickItemObj(eidolons.entity.item.DC_QuickItemObj) DC_UnitAction(eidolons.entity.active.DC_UnitAction)

Example 3 with ActionValueContainer

use of eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer in project Eidolons by IDemiurge.

the class PanelActionsDataSource method getActionValueContainer.

public static ActionValueContainer getActionValueContainer(DC_ActiveObj el, boolean spell) {
    boolean valid = el.canBeManuallyActivated();
    final ActionValueContainer container = new ActionValueContainer(valid, TextureCache.getOrCreateSizedRegion(UiMaster.getIconSize(), getImage(el)), el::invokeClicked);
    ActionCostTooltip tooltip = new ActionCostTooltip(el);
    tooltip.setUserObject(new ActionCostSourceImpl(el));
    tooltip.addTo(container);
    return container;
}
Also used : ActionCostTooltip(eidolons.libgdx.gui.panels.dc.actionpanel.tooltips.ActionCostTooltip) ActionValueContainer(eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer)

Example 4 with ActionValueContainer

use of eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer in project Eidolons by IDemiurge.

the class MapActionPanel method updateAct.

@Override
public void updateAct(float delta) {
    clear();
    final MacroParty source = (MacroParty) getUserObject();
    final List<ActionValueContainer> sources = getActions(source);
    initContainer(sources, "UI/EMPTY_LIST_ITEM.jpg");
}
Also used : ActionValueContainer(eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer) MacroParty(eidolons.game.module.adventure.entity.MacroParty)

Aggregations

ActionValueContainer (eidolons.libgdx.gui.panels.dc.actionpanel.ActionValueContainer)4 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)2 ActionCostTooltip (eidolons.libgdx.gui.panels.dc.actionpanel.tooltips.ActionCostTooltip)2 DC_UnitAction (eidolons.entity.active.DC_UnitAction)1 DC_QuickItemObj (eidolons.entity.item.DC_QuickItemObj)1 MacroAction (eidolons.game.module.adventure.entity.MacroAction)1 MacroParty (eidolons.game.module.adventure.entity.MacroParty)1 ArrayList (java.util.ArrayList)1 ObjType (main.entity.type.ObjType)1