v0.3.4c: added callback functionality for scene changes
This commit is contained in:
parent
e5e90b2696
commit
8ae4cd4fa5
|
@ -196,8 +196,12 @@ public class ShatteredPixelDungeon extends Game {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void switchNoFade(Class<? extends PixelScene> c){
|
public static void switchNoFade(Class<? extends PixelScene> c){
|
||||||
|
switchNoFade(c, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void switchNoFade(Class<? extends PixelScene> c, SceneChangeCallback callback) {
|
||||||
PixelScene.noFade = true;
|
PixelScene.noFade = true;
|
||||||
switchScene( c );
|
switchScene( c, callback );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -336,15 +336,6 @@ public class GameScene extends PixelScene {
|
||||||
|
|
||||||
Camera.main.target = hero;
|
Camera.main.target = hero;
|
||||||
|
|
||||||
if (windowOnCreate != null){
|
|
||||||
try{
|
|
||||||
add(windowOnCreate.newInstance());
|
|
||||||
} catch (Exception e){
|
|
||||||
ShatteredPixelDungeon.reportException(e);
|
|
||||||
}
|
|
||||||
windowOnCreate = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (InterlevelScene.mode != InterlevelScene.Mode.NONE) {
|
if (InterlevelScene.mode != InterlevelScene.Mode.NONE) {
|
||||||
if (Dungeon.depth < Statistics.deepestFloor) {
|
if (Dungeon.depth < Statistics.deepestFloor) {
|
||||||
GLog.h(Messages.get(this, "welcome_back"), Dungeon.depth);
|
GLog.h(Messages.get(this, "welcome_back"), Dungeon.depth);
|
||||||
|
|
|
@ -159,15 +159,6 @@ public class TitleScene extends PixelScene {
|
||||||
btnExit.setPos( w - btnExit.width(), 0 );
|
btnExit.setPos( w - btnExit.width(), 0 );
|
||||||
add( btnExit );
|
add( btnExit );
|
||||||
|
|
||||||
if (windowOnCreate != null){
|
|
||||||
try{
|
|
||||||
add(windowOnCreate.newInstance());
|
|
||||||
} catch (Exception e){
|
|
||||||
ShatteredPixelDungeon.reportException(e);
|
|
||||||
}
|
|
||||||
windowOnCreate = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
fadeIn();
|
fadeIn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
|
||||||
import com.watabou.noosa.ColorBlock;
|
import com.watabou.noosa.ColorBlock;
|
||||||
|
import com.watabou.noosa.Game;
|
||||||
import com.watabou.noosa.RenderedText;
|
import com.watabou.noosa.RenderedText;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -65,10 +66,17 @@ public class WndLangs extends Window {
|
||||||
protected void onClick() {
|
protected void onClick() {
|
||||||
super.onClick();
|
super.onClick();
|
||||||
Messages.setup(langs.get(langIndex));
|
Messages.setup(langs.get(langIndex));
|
||||||
|
ShatteredPixelDungeon.switchNoFade(TitleScene.class, new Game.SceneChangeCallback() {
|
||||||
|
@Override
|
||||||
|
public void beforeCreate() {
|
||||||
ShatteredPixelDungeon.language(langs.get(langIndex));
|
ShatteredPixelDungeon.language(langs.get(langIndex));
|
||||||
RenderedText.clearCache();
|
RenderedText.clearCache();
|
||||||
PixelScene.windowOnCreate = WndLangs.class;
|
}
|
||||||
ShatteredPixelDungeon.switchNoFade(TitleScene.class);
|
@Override
|
||||||
|
public void afterCreate() {
|
||||||
|
Game.scene().add(new WndLangs());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (currLang == langs.get(i)){
|
if (currLang == langs.get(i)){
|
||||||
|
|
|
@ -113,8 +113,17 @@ public class WndSettings extends WndTabbed {
|
||||||
protected void onChange() {
|
protected void onChange() {
|
||||||
if (getSelectedValue() != ShatteredPixelDungeon.scale()) {
|
if (getSelectedValue() != ShatteredPixelDungeon.scale()) {
|
||||||
ShatteredPixelDungeon.scale(getSelectedValue());
|
ShatteredPixelDungeon.scale(getSelectedValue());
|
||||||
PixelScene.windowOnCreate = WndSettings.class;
|
ShatteredPixelDungeon.switchNoFade((Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass(), new Game.SceneChangeCallback() {
|
||||||
ShatteredPixelDungeon.switchNoFade((Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass());
|
@Override
|
||||||
|
public void beforeCreate() {
|
||||||
|
//do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCreate() {
|
||||||
|
Game.scene().add(new WndSettings());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -242,9 +251,17 @@ public class WndSettings extends WndTabbed {
|
||||||
@Override
|
@Override
|
||||||
protected void onClick() {
|
protected void onClick() {
|
||||||
super.onClick();
|
super.onClick();
|
||||||
|
ShatteredPixelDungeon.switchNoFade((Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass(), new Game.SceneChangeCallback() {
|
||||||
|
@Override
|
||||||
|
public void beforeCreate() {
|
||||||
ShatteredPixelDungeon.classicFont(!checked());
|
ShatteredPixelDungeon.classicFont(!checked());
|
||||||
PixelScene.windowOnCreate = WndSettings.class;
|
}
|
||||||
ShatteredPixelDungeon.switchNoFade((Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass());
|
|
||||||
|
@Override
|
||||||
|
public void afterCreate() {
|
||||||
|
Game.scene().add(new WndSettings());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
chkFont.setRect(0, slots.bottom() + GAP_SML, WIDTH, BTN_HEIGHT);
|
chkFont.setRect(0, slots.bottom() + GAP_SML, WIDTH, BTN_HEIGHT);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user