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

@ -249,5 +249,25 @@
<obstacles class="java.util.ArrayList"/>
<stars class="java.util.ArrayList"/>
</level>
<level packId="1" id="8" goalX="3.0" startSpeed="0.0" endSpeed="0.0" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="0.0" width="6.0"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="0.0" width="6.0"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData floating="false" moving="false" deadly="false" leftEdge="-1.5699999" rightEdge="-1.0699999" height="0.5" y="-0.35000002">
<moveComponent width="0.0" height="0.0" x="0.0" y="0.0" speed="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="-0.57000005" rightEdge="-0.07000008" height="0.5" y="-0.35000002">
<moveComponent width="0.0" height="0.0" x="0.0" y="0.0" speed="0.0"/>
</obstacleData>
</obstacles>
<stars class="java.util.ArrayList">
<positionData x="-1.3133329" y="-0.35333326"/>
</stars>
<energy x="-0.31333327" y="-0.38666666"/>
</level>
</levels>
</levelPack>

View File

@ -249,5 +249,25 @@
<obstacles class="java.util.ArrayList"/>
<stars class="java.util.ArrayList"/>
</level>
<level packId="1" id="8" goalX="3.0" startSpeed="0.0" endSpeed="0.0" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="0.0" width="6.0"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="0.0" width="6.0"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData floating="false" moving="false" deadly="false" leftEdge="-1.5699999" rightEdge="-1.0699999" height="0.5" y="-0.35000002">
<moveComponent width="0.0" height="0.0" x="0.0" y="0.0" speed="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="-0.57000005" rightEdge="-0.07000008" height="0.5" y="-0.35000002">
<moveComponent width="0.0" height="0.0" x="0.0" y="0.0" speed="0.0"/>
</obstacleData>
</obstacles>
<stars class="java.util.ArrayList">
<positionData x="-1.3133329" y="-0.35333326"/>
</stars>
<energy x="-0.31333327" y="-0.38666666"/>
</level>
</levels>
</levelPack>

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) {
}
}