Example usage for com.badlogic.gdx.utils ObjectIntMap ObjectIntMap

List of usage examples for com.badlogic.gdx.utils ObjectIntMap ObjectIntMap

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils ObjectIntMap ObjectIntMap.

Prototype

public ObjectIntMap(ObjectIntMap<? extends K> map) 

Source Link

Document

Creates a new map identical to the specified map.

Usage

From source file:com.vlaaad.dice.ui.util.RewardViewHelper.java

License:Open Source License

public static Table createRewardsView(Iterable<RewardResult> rewards, ObjectIntMap<Item> earnedItems,
        UserData userData) {//  ww  w . j  av a 2  s . c  om
    Table rewardList = new Table(Config.skin);
    rewardList.setTransform(true);
    rewardList.padTop(18).padBottom(14);

    Array<AddedDie> dieRewards = new Array<AddedDie>();
    Array<AddedAbility> abilityRewards = new Array<AddedAbility>();
    ObjectIntMap<Item> earned = new ObjectIntMap<Item>(earnedItems);

    for (RewardResult reward : rewards) {
        if (reward instanceof AddedItems) {
            final AddedItems addedItems = (AddedItems) reward;
            earned.getAndIncrement(addedItems.item, 0, addedItems.addedCount);
        } else if (reward instanceof AddedDie) {
            dieRewards.add(((AddedDie) reward));
        } else if (reward instanceof AddedAbility) {
            abilityRewards.add(((AddedAbility) reward));
        } else {
            throw new IllegalArgumentException("unknown reward: " + reward);
        }
    }

    if (earned.size > 0) {
        Table items = new Table();
        items.setTransform(true);
        Array<Item> sorted = earned.keys().toArray();
        sorted.sort(Item.ORDER_COMPARATOR);
        for (Item item : sorted) {
            Table rewardView = new Table(Config.skin);
            Image image = new Image(Config.skin, "item/" + item.name);
            Label counter = new Label(String.valueOf(earned.get(item, 0)), Config.skin, "default",
                    VICTORY_TEXT_COLOR);
            counter.setFontScale(2f);
            rewardView.add(image).size(image.getPrefWidth() * 2, image.getPrefHeight() * 2).pad(-6);
            rewardView.add(counter).padTop(-5);
            items.add(rewardView);
        }
        rewardList.add(items).padTop(-10).row();
    }

    if (dieRewards.size > 0) {
        Label joins = new LocLabel("ui-reward-window-new-die", VICTORY_TEXT_COLOR);
        joins.setWrap(true);
        joins.setAlignment(Align.center);
        rewardList.add(joins).width(80).row();
        Table dice = new Table();
        dice.setTransform(true);
        for (AddedDie reward : dieRewards) {
            dice.add(ViewController.createView(new Creature(reward.die, PlayerHelper.defaultProtagonist)));
        }
        rewardList.add(dice).padTop(15).row();
    }

    if (abilityRewards.size > 0) {
        HorizontalGroup abilities = new HorizontalGroup();
        abilities.center().padTop(15).space(10).padLeft(-4);
        for (AddedAbility reward : abilityRewards) {
            final AbilityIcon icon = new AbilityIcon(reward.ability);
            icon.setColor(UNIQUE_DARK);
            abilities.addActor(new Container<AbilityIcon>(icon)
                    .size(icon.getPrefWidth() * 2, icon.getPrefHeight() * 2).pad(-12));
            abilities.addActor(
                    ViewController.createView(new Creature(reward.die, PlayerHelper.defaultProtagonist)));
        }

        final VerticalGroup group = new VerticalGroup();
        final Label label = new Label(Thesaurus.Util.enumerate(Config.thesaurus, abilityRewards,
                new Thesaurus.Util.Stringifier<AddedAbility>() {
                    @Override
                    public String toString(AddedAbility info) {
                        return Config.thesaurus.localize("die-gets-ability",
                                Thesaurus.params().with("die", info.die.nameLocKey()).with("ability",
                                        info.ability.locNameKey() + ".acc"));
                    }
                }), Config.skin, "default", VICTORY_TEXT_COLOR);
        label.setAlignment(Align.center);
        group.addActor(label);
        group.addActor(abilities);
        rewardList.add(group).padTop(10).row();
    }
    return rewardList;
}