diff --git a/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java b/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java index e8a171d68..ecb8fb7b8 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java @@ -245,17 +245,24 @@ public class Tilemap extends Visual { if (length <= 0) return;*/ - NoosaScript script = NoosaScriptNoLighting.get(); + NoosaScript script = script(); texture.bind(); script.uModel.valueM4( matrix ); + script.lighting( + rm, gm, bm, am, + ra, ga, ba, aa ); script.camera( camera ); script.drawQuadSet( buffer, size, 0 ); } + + protected NoosaScript script(){ + return NoosaScriptNoLighting.get(); + } @Override public void destroy() { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java index 555d1e47b..c577c94d1 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java @@ -753,6 +753,15 @@ public class GameScene extends PixelScene { if (scene != null) scene.healthIndicators.add(indicator); } + public static void add( CustomTilemap t, boolean wall ){ + if (scene == null) return; + if (wall){ + scene.addCustomWall(t); + } else { + scene.addCustomTile(t); + } + } + public static void effect( Visual effect ) { scene.effects.add( effect ); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/CustomTilemap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/CustomTilemap.java index aa868ab30..c950eb2d8 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/CustomTilemap.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/tiles/CustomTilemap.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.tiles; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.watabou.noosa.Image; +import com.watabou.noosa.NoosaScript; import com.watabou.noosa.TextureFilm; import com.watabou.noosa.Tilemap; import com.watabou.utils.Bundlable; @@ -36,7 +37,7 @@ public abstract class CustomTilemap implements Bundlable { public int tileW = 1, tileH = 1; //width and height in tiles protected Object texture; - private Tilemap vis = null; + protected Tilemap vis = null; public void pos(int pos) { pos( pos%Dungeon.level.width(), pos/Dungeon.level.width() ); @@ -82,7 +83,13 @@ public abstract class CustomTilemap implements Bundlable { public Tilemap create(){ if (vis != null && vis.alive) vis.killAndErase(); - vis = new Tilemap(texture, new TextureFilm( texture, SIZE, SIZE )); + vis = new Tilemap(texture, new TextureFilm( texture, SIZE, SIZE )){ + @Override + protected NoosaScript script() { + //allow lighting for custom tilemaps + return NoosaScript.get(); + } + }; vis.x = tileX*SIZE; vis.y = tileY*SIZE; return vis;