List of usage examples for com.badlogic.gdx.utils ObjectIntMap ObjectIntMap
public ObjectIntMap(ObjectIntMap<? extends K> map)
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; }