List of usage examples for com.badlogic.gdx.utils Array removeAll
public boolean removeAll(Array<? extends T> array, boolean identity)
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(); } } }); }