Example usage for com.badlogic.gdx.utils Array removeAll

List of usage examples for com.badlogic.gdx.utils Array removeAll

Introduction

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

Prototype

public boolean removeAll(Array<? extends T> array, boolean identity) 

Source Link

Document

Removes from this array all of elements contained in the specified array.

Usage

From source file:com.strategames.catchdastars.screens.editor.GameEditorScreen.java

License:Open Source License

private void updateGame() {
    Game game = getGameEngine().getGame();
    // reload level to include added gameobjects
    Level editedLevel = LevelLoader.loadSync(game.getGameMetaData(), editingLevel.getPosition());
    game.setLevel(editedLevel);//from w  w w. j  av  a2  s.  c  om

    Array<Door> doors = editedLevel.getDoors();
    Array<Door> doorsRemoved = editingLevel.getDoors();

    //Remove all identical doors in new and old
    //All remaining doors were removed from the level
    doorsRemoved.removeAll(doors, false);

    int[] editedLevelPos = editedLevel.getPosition();

    //Handle previously accessible levels from edited level
    for (Door door : doorsRemoved) {
        int[] pos = door.getAccessToPosition();
        Level level = game.getLevel(pos[0], pos[1]);
        if (level != null) {
            level.delAccessibleBy(editedLevelPos[0], editedLevelPos[1]);
        }
    }

    for (Door door : doors) {
        int[] pos = door.getAccessToPosition();
        Level level = game.getLevel(pos[0], pos[1]);
        if (level != null) {
            level.addAccessibleBy(editedLevelPos[0], editedLevelPos[1]);
        }
    }

    updateReachability();

    saveGame();
}

From source file:com.vlaaad.dice.ui.windows.LevelUpWindow.java

License:Open Source License

@Override
protected void doShow(final GiveExpResult result) {
    this.result = result;
    Image back = new Image(Config.skin, "ui-levelup-window-background");
    back.setTouchable(Touchable.disabled);
    back.setPosition(getStage().getWidth() / 2 - back.getWidth() / 2,
            getStage().getHeight() / 2 - back.getHeight() / 2);
    table.addActor(back);/*from   ww  w . j  a  v  a  2 s .c  o m*/
    back.setOrigin(back.getWidth() / 2f, back.getHeight() / 2f);
    rotateContinuously(back);

    // gather new abilities

    Array<Ability> newStoreAbilities = new Array<Ability>();
    Die creatureDie = result.creature.description;

    Die currentState = new Die(creatureDie.profession, creatureDie.name, result.creature.getCurrentExp(),
            creatureDie.abilities, creatureDie.inventory);
    Die nextState = new Die(creatureDie.profession, creatureDie.name,
            result.creature.getCurrentExp() + result.exp, creatureDie.abilities, creatureDie.inventory);

    Array<Ability> prevAbilities = currentState.getProfessionAbilities();
    final Array<Ability> newProfessionAbilities = nextState.getProfessionAbilities();
    newProfessionAbilities.removeAll(prevAbilities, true);

    for (Ability ability : Config.abilities.byType(Ability.Type.wearable)) {
        if (ability.cost >= 0 && ability.requirement.isSatisfied(nextState)
                && !ability.requirement.isSatisfied(currentState)) {
            newStoreAbilities.add(ability);
        }
    }

    // buttons

    LocTextButton continueButton = new LocTextButton("ui-level-up-continue");

    ImageButton share = new ImageButton(Config.skin, "share");
    SoundHelper.initButton(share);
    share.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            Config.mobileApi.share(Config.thesaurus.localize("ui-level-up-share",
                    Thesaurus.params().with("die", result.creature.description.nameLocKey()).with("level",
                            String.valueOf(result.creature.description.profession
                                    .getLevel(result.exp + result.creature.getCurrentExp())))));
        }
    });

    Table buttons = new Table();
    buttons.defaults().pad(2);
    buttons.add(continueButton).width(67);
    buttons.add(share).size(19);

    final Table newItemsTable = new Table(Config.skin);

    final Table content = new Table(Config.skin);
    content.defaults().pad(3);
    content.setTouchable(Touchable.enabled);
    content.setBackground("ui-inventory-ability-window-background");

    content.add(
            new LocLabel(
                    "ui-level-up-title", Thesaurus.params()
                            .with("die",
                                    result.creature.description.nameLocKey())
                            .with("level", String.valueOf(result.creature.description.profession
                                    .getLevel(result.exp + result.creature.getCurrentExp())))))
            .row();
    content.add(new Image(Config.skin, "ui-creature-info-line")).width(66).row();
    content.add(newItemsTable).row();

    final Ref<Boolean> shownStore = new Ref<Boolean>(false);

    if (newStoreAbilities.size > 0) {
        addAbilities(newItemsTable, newStoreAbilities, false);
        shownStore.set(true);
    } else if (newProfessionAbilities.size > 0) {
        addAbilities(newItemsTable, newProfessionAbilities, true);
        content.setBackground("ui-creature-info-background");
        table.layout();
    }

    content.add(buttons);

    table.add(content).width(126);

    continueButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (shownStore.get() && newProfessionAbilities.size > 0) {
                shownStore.set(false);
                newItemsTable.clearChildren();
                addAbilities(newItemsTable, newProfessionAbilities, true);
                content.setBackground("ui-creature-info-background");
                table.layout();
            } else {
                hide();
            }
        }
    });
}