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:
parent
0c0748b13d
commit
74b73bb143
@ -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>
|
@ -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>
|
@ -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;
|
||||
}
|
||||
}
|
@ -31,7 +31,4 @@ public class TestScreenScene extends Scene {
|
||||
return new Obstacle(World.GRASSLANDS, data, -.8f);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void removeEntityFromAllLists(Entity entity) {
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user