v0.3.2a: refactored how level-generated visuals work, more flexible and resolves bugs
This commit is contained in:
parent
b5176de721
commit
e2a57a0e31
|
@ -23,7 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.ToxicTrap;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.ToxicTrap;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap;
|
||||||
import com.watabou.noosa.Camera;
|
import com.watabou.noosa.Camera;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Bones;
|
import com.shatteredpixel.shatteredpixeldungeon.Bones;
|
||||||
|
@ -305,9 +305,11 @@ public class CavesBossLevel extends Level {
|
||||||
return super.tileDesc( tile );
|
return super.tileDesc( tile );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
CavesLevel.addVisuals( this, scene );
|
super.addVisuals();
|
||||||
|
CavesLevel.addCavesVisuals(this, visuals);
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@ package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
||||||
import com.watabou.noosa.Game;
|
import com.watabou.noosa.Game;
|
||||||
import com.watabou.noosa.Group;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.Scene;
|
|
||||||
import com.watabou.noosa.particles.PixelParticle;
|
import com.watabou.noosa.particles.PixelParticle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
@ -236,15 +235,16 @@ public class CavesLevel extends RegularLevel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
super.addVisuals( scene );
|
super.addVisuals();
|
||||||
addVisuals( this, scene );
|
addCavesVisuals( this, visuals );
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addVisuals( Level level, Scene scene ) {
|
public static void addCavesVisuals( Level level, Group group ) {
|
||||||
for (int i=0; i < LENGTH; i++) {
|
for (int i=0; i < LENGTH; i++) {
|
||||||
if (level.map[i] == Terrain.WALL_DECO) {
|
if (level.map[i] == Terrain.WALL_DECO) {
|
||||||
scene.add( new Vein( i ) );
|
group.add( new Vein( i ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
|
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.tweeners.AlphaTweener;
|
import com.watabou.noosa.tweeners.AlphaTweener;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Bones;
|
import com.shatteredpixel.shatteredpixeldungeon.Bones;
|
||||||
|
@ -264,7 +264,9 @@ public class CityBossLevel extends Level {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals( ) {
|
||||||
CityLevel.addVisuals( this, scene );
|
super.addVisuals();
|
||||||
|
CityLevel.addCityVisuals(this, visuals);
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.particles.Emitter;
|
import com.watabou.noosa.particles.Emitter;
|
||||||
import com.watabou.noosa.particles.PixelParticle;
|
import com.watabou.noosa.particles.PixelParticle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
@ -142,15 +142,16 @@ public class CityLevel extends RegularLevel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
super.addVisuals( scene );
|
super.addVisuals();
|
||||||
addVisuals( this, scene );
|
addCityVisuals( this, visuals );
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addVisuals( Level level, Scene scene ) {
|
public static void addCityVisuals( Level level, Group group ) {
|
||||||
for (int i=0; i < LENGTH; i++) {
|
for (int i=0; i < LENGTH; i++) {
|
||||||
if (level.map[i] == Terrain.WALL_DECO) {
|
if (level.map[i] == Terrain.WALL_DECO) {
|
||||||
scene.add( new Smoke( i ) );
|
group.add( new Smoke( i ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
*/
|
*/
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
|
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Bones;
|
import com.shatteredpixel.shatteredpixeldungeon.Bones;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
@ -255,7 +255,9 @@ public class HallsBossLevel extends Level {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals () {
|
||||||
HallsLevel.addVisuals( this, scene );
|
super.addVisuals();
|
||||||
|
HallsLevel.addHallsVisuals( this, visuals );
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,6 @@ import android.opengl.GLES20;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
||||||
import com.watabou.noosa.Game;
|
import com.watabou.noosa.Game;
|
||||||
import com.watabou.noosa.Group;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.Scene;
|
|
||||||
import com.watabou.noosa.particles.PixelParticle;
|
import com.watabou.noosa.particles.PixelParticle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
@ -150,15 +149,16 @@ public class HallsLevel extends RegularLevel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
super.addVisuals( scene );
|
super.addVisuals();
|
||||||
addVisuals( this, scene );
|
addHallsVisuals( this, visuals );
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addVisuals( Level level, Scene scene ) {
|
public static void addHallsVisuals( Level level, Group group ) {
|
||||||
for (int i=0; i < LENGTH; i++) {
|
for (int i=0; i < LENGTH; i++) {
|
||||||
if (level.map[i] == 63) {
|
if (level.map[i] == Terrain.WATER) {
|
||||||
scene.add( new Stream( i ) );
|
group.add( new Stream( i ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Amulet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.painters.Painter;
|
||||||
|
@ -169,9 +169,10 @@ public class LastLevel extends Level {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals () {
|
||||||
super.addVisuals( scene );
|
super.addVisuals();
|
||||||
HallsLevel.addVisuals( this, scene );
|
HallsLevel.addHallsVisuals(this, visuals);
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -27,7 +27,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Imp;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Room.Type;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.Room.Type;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.utils.Graph;
|
import com.watabou.utils.Graph;
|
||||||
import com.watabou.utils.Random;
|
import com.watabou.utils.Random;
|
||||||
|
|
||||||
|
@ -217,10 +217,11 @@ public class LastShopLevel extends RegularLevel {
|
||||||
protected boolean[] grass() {
|
protected boolean[] grass() {
|
||||||
return Patch.generate( 0.30f, 3 );
|
return Patch.generate( 0.30f, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals( ) {
|
||||||
super.addVisuals( scene );
|
super.addVisuals();
|
||||||
CityLevel.addVisuals( this, scene );
|
CityLevel.addCityVisuals(this, visuals);
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.CustomTileVisual;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.noosa.Game;
|
import com.watabou.noosa.Game;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
import com.watabou.utils.Bundlable;
|
import com.watabou.utils.Bundlable;
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
|
@ -162,6 +162,8 @@ public abstract class Level implements Bundlable {
|
||||||
public HashSet<CustomTileVisual> customTiles;
|
public HashSet<CustomTileVisual> customTiles;
|
||||||
|
|
||||||
protected ArrayList<Item> itemsToSpawn = new ArrayList<>();
|
protected ArrayList<Item> itemsToSpawn = new ArrayList<>();
|
||||||
|
|
||||||
|
protected Group visuals = new Group();
|
||||||
|
|
||||||
public int color1 = 0x004400;
|
public int color1 = 0x004400;
|
||||||
public int color2 = 0x88CC44;
|
public int color2 = 0x88CC44;
|
||||||
|
@ -485,15 +487,17 @@ public abstract class Level implements Bundlable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
|
visuals.clear();
|
||||||
for (int i=0; i < LENGTH; i++) {
|
for (int i=0; i < LENGTH; i++) {
|
||||||
if (pit[i]) {
|
if (pit[i]) {
|
||||||
scene.add( new WindParticle.Wind( i ) );
|
visuals.add( new WindParticle.Wind( i ) );
|
||||||
if (i >= WIDTH && water[i-WIDTH]) {
|
if (i >= WIDTH && water[i-WIDTH]) {
|
||||||
scene.add( new FlowParticle.Flow( i - WIDTH ) );
|
visuals.add( new FlowParticle.Flow( i - WIDTH ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int nMobs() {
|
public int nMobs() {
|
||||||
|
|
|
@ -35,7 +35,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.traps.Trap;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.CustomTileVisual;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.CustomTileVisual;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.HealthIndicator;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.HealthIndicator;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
import com.watabou.utils.Bundlable;
|
import com.watabou.utils.Bundlable;
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
|
@ -63,9 +63,6 @@ public class PrisonBossLevel extends Level {
|
||||||
|
|
||||||
//keep track of that need to be removed as the level is changed. We dump 'em back into the level at the end.
|
//keep track of that need to be removed as the level is changed. We dump 'em back into the level at the end.
|
||||||
private ArrayList<Item> storedItems = new ArrayList<>();
|
private ArrayList<Item> storedItems = new ArrayList<>();
|
||||||
|
|
||||||
//we keep track of torches so we can kill them as needed when layouts change.
|
|
||||||
private ArrayList<PrisonLevel.Torch> torches = new ArrayList<>();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String tilesTex() {
|
public String tilesTex() {
|
||||||
|
@ -242,7 +239,7 @@ public class PrisonBossLevel extends Level {
|
||||||
exit = i;
|
exit = i;
|
||||||
|
|
||||||
visited = mapped = new boolean[LENGTH];
|
visited = mapped = new boolean[LENGTH];
|
||||||
addVisuals(ShatteredPixelDungeon.scene());
|
addVisuals(); //this also resets existing visuals
|
||||||
resetTraps();
|
resetTraps();
|
||||||
|
|
||||||
Dungeon.observe();
|
Dungeon.observe();
|
||||||
|
@ -342,21 +339,10 @@ public class PrisonBossLevel extends Level {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
super.addVisuals(scene);
|
super.addVisuals();
|
||||||
//kill old torches before adding new ones
|
PrisonLevel.addPrisonVisuals(this, visuals);
|
||||||
for (PrisonLevel.Torch t : torches.toArray(new PrisonLevel.Torch[torches.size()])){
|
return visuals;
|
||||||
t.kill();
|
|
||||||
torches.remove(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i=0; i < LENGTH; i++) {
|
|
||||||
if (map[i] == Terrain.WALL_DECO) {
|
|
||||||
PrisonLevel.Torch t = new PrisonLevel.Torch( i );
|
|
||||||
torches.add(t);
|
|
||||||
scene.add( t );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final int W = Terrain.WALL;
|
private static final int W = Terrain.WALL;
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.particles.Emitter;
|
import com.watabou.noosa.particles.Emitter;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||||
|
@ -156,11 +156,16 @@ public class PrisonLevel extends RegularLevel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
super.addVisuals(scene);
|
super.addVisuals();
|
||||||
|
addPrisonVisuals(this, visuals);
|
||||||
|
return visuals;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void addPrisonVisuals(Level level, Group group){
|
||||||
for (int i=0; i < LENGTH; i++) {
|
for (int i=0; i < LENGTH; i++) {
|
||||||
if (map[i] == Terrain.WALL_DECO) {
|
if (level.map[i] == Terrain.WALL_DECO) {
|
||||||
scene.add( new Torch( i ) );
|
group.add( new Torch( i ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.Room.Type;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.Room.Type;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
import com.watabou.utils.Graph;
|
import com.watabou.utils.Graph;
|
||||||
import com.watabou.utils.Random;
|
import com.watabou.utils.Random;
|
||||||
|
@ -203,11 +203,12 @@ public class SewerBossLevel extends RegularLevel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
SewerLevel.addVisuals( this, scene );
|
super.addVisuals();
|
||||||
|
SewerLevel.addSewerVisuals(this, visuals);
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void createMobs() {
|
protected void createMobs() {
|
||||||
Mob mob = Bestiary.mob( Dungeon.depth );
|
Mob mob = Bestiary.mob( Dungeon.depth );
|
||||||
|
|
|
@ -22,7 +22,7 @@ package com.shatteredpixel.shatteredpixeldungeon.levels;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.*;
|
||||||
import com.watabou.noosa.Game;
|
import com.watabou.noosa.Game;
|
||||||
import com.watabou.noosa.Scene;
|
import com.watabou.noosa.Group;
|
||||||
import com.watabou.noosa.particles.Emitter;
|
import com.watabou.noosa.particles.Emitter;
|
||||||
import com.watabou.noosa.particles.PixelParticle;
|
import com.watabou.noosa.particles.PixelParticle;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
||||||
|
@ -139,15 +139,16 @@ public class SewerLevel extends RegularLevel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVisuals( Scene scene ) {
|
public Group addVisuals() {
|
||||||
super.addVisuals( scene );
|
super.addVisuals();
|
||||||
addVisuals( this, scene );
|
addSewerVisuals(this, visuals);
|
||||||
|
return visuals;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void addVisuals( Level level, Scene scene ) {
|
public static void addSewerVisuals( Level level, Group group ) {
|
||||||
for (int i=0; i < LENGTH; i++) {
|
for (int i=0; i < LENGTH; i++) {
|
||||||
if (level.map[i] == Terrain.WALL_DECO) {
|
if (level.map[i] == Terrain.WALL_DECO) {
|
||||||
scene.add( new Sink( i ) );
|
group.add( new Sink( i ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,6 +118,7 @@ public class GameScene extends PixelScene {
|
||||||
|
|
||||||
private Group terrain;
|
private Group terrain;
|
||||||
private Group customTiles;
|
private Group customTiles;
|
||||||
|
private Group levelVisuals;
|
||||||
private Group ripples;
|
private Group ripples;
|
||||||
private Group plants;
|
private Group plants;
|
||||||
private Group traps;
|
private Group traps;
|
||||||
|
@ -167,12 +168,13 @@ public class GameScene extends PixelScene {
|
||||||
|
|
||||||
customTiles = new Group();
|
customTiles = new Group();
|
||||||
terrain.add(customTiles);
|
terrain.add(customTiles);
|
||||||
|
|
||||||
Dungeon.level.addVisuals(this);
|
|
||||||
|
|
||||||
for( CustomTileVisual visual : Dungeon.level.customTiles){
|
for( CustomTileVisual visual : Dungeon.level.customTiles){
|
||||||
addCustomTile(visual.create());
|
addCustomTile(visual.create());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
levelVisuals = Dungeon.level.addVisuals();
|
||||||
|
add(levelVisuals);
|
||||||
|
|
||||||
traps = new Group();
|
traps = new Group();
|
||||||
add(traps);
|
add(traps);
|
||||||
|
@ -549,7 +551,7 @@ public class GameScene extends PixelScene {
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------
|
// -------------------------------------------------------
|
||||||
|
|
||||||
public static void add( Plant plant ) {
|
public static void add( Plant plant ) {
|
||||||
if (scene != null) {
|
if (scene != null) {
|
||||||
scene.addPlantSprite( plant );
|
scene.addPlantSprite( plant );
|
||||||
|
|
Loading…
Reference in New Issue
Block a user