Changed Scene, so that it is no list anymore - all entities are contained specialized lists --> Tools can be rendered over obstacles and Collectables can be hidden

This commit is contained in:
=
2017-09-06 18:28:09 +02:00
parent 0c0748b13d
commit 74b73bb143
4 changed files with 107 additions and 3 deletions

View File

@ -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<Entity> {
private List<Star> stars = Collections.synchronizedList(new ArrayList<Star>());
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<Star> getStars() {
return stars;
}
public Energy getEnergy() {
return energy;
}
}

View File

@ -31,7 +31,4 @@ public class TestScreenScene extends Scene {
return new Obstacle(World.GRASSLANDS, data, -.8f);
}
@Override
protected void removeEntityFromAllLists(Entity entity) {
}
}