diff --git a/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml b/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml index 8214a4e..90046a8 100644 --- a/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml +++ b/app/build/intermediates/assets/debug/levelpacks/Grasslands.xml @@ -249,5 +249,25 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/levelpacks/Grasslands.xml b/app/src/main/assets/levelpacks/Grasslands.xml index 8214a4e..90046a8 100644 --- a/app/src/main/assets/levelpacks/Grasslands.xml +++ b/app/src/main/assets/levelpacks/Grasslands.xml @@ -249,5 +249,25 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/de/frajul/endlessroll/entities/collectables/Collectables.java b/app/src/main/java/de/frajul/endlessroll/entities/collectables/Collectables.java new file mode 100644 index 0000000..0198f20 --- /dev/null +++ b/app/src/main/java/de/frajul/endlessroll/entities/collectables/Collectables.java @@ -0,0 +1,67 @@ +package de.frajul.endlessroll.entities.collectables; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import de.frajul.endlessroll.data.SynchronizedArrayList; +import de.frajul.endlessroll.entities.Entity; +import de.frajul.endlessroll.entities.textures.TexturePack; +import de.frajul.endlessroll.levels.Level; +import de.frajul.endlessroll.levels.PositionData; + +/** + * Created by Julian on 06.09.2017. + */ + +public class Collectables extends SynchronizedArrayList { + + private List stars = Collections.synchronizedList(new ArrayList()); + private Energy energy; + + public void init(Level level, TexturePack textures) { + for (int i = 0; i < level.getStars().size(); i++) { + if (level.isStarCollected(i)) + continue; + addStar(new Star(i, textures.star, level.getStars().get(i))); + } + + PositionData energyData = level.getEnergyData(); + if (energyData != null && !level.isEnergyCollected()) { + setEnergy(new Energy(textures.energy, energyData)); + } + } + + @Override + public synchronized boolean remove(Object object) { + if(object instanceof Star) + stars.remove(object); + else + energy = null; + return super.remove(object); + } + + private void addStar(Star star) { + stars.add(star); + super.add(star); + } + + private void setEnergy(Energy energy) { + this.energy = energy; + super.add(energy); + } + + public void reset() { + stars.clear(); + energy = null; + super.clear(); + } + + public List getStars() { + return stars; + } + + public Energy getEnergy() { + return energy; + } +} diff --git a/app/src/main/java/de/frajul/endlessroll/main/game/TestScreenScene.java b/app/src/main/java/de/frajul/endlessroll/main/game/TestScreenScene.java index 93db834..7476c85 100644 --- a/app/src/main/java/de/frajul/endlessroll/main/game/TestScreenScene.java +++ b/app/src/main/java/de/frajul/endlessroll/main/game/TestScreenScene.java @@ -31,7 +31,4 @@ public class TestScreenScene extends Scene { return new Obstacle(World.GRASSLANDS, data, -.8f); } - @Override - protected void removeEntityFromAllLists(Entity entity) { - } } \ No newline at end of file