v0.3.4c: added callback functionality for scene changes

This commit is contained in:
Evan Debenham
2016-03-02 20:49:17 -05:00
parent e5e90b2696
commit 8ae4cd4fa5
5 changed files with 40 additions and 29 deletions
@@ -29,6 +29,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton;
import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline;
import com.shatteredpixel.shatteredpixeldungeon.ui.Window;
import com.watabou.noosa.ColorBlock;
import com.watabou.noosa.Game;
import com.watabou.noosa.RenderedText;
import java.util.ArrayList;
@@ -65,10 +66,17 @@ public class WndLangs extends Window {
protected void onClick() {
super.onClick();
Messages.setup(langs.get(langIndex));
ShatteredPixelDungeon.language(langs.get(langIndex));
RenderedText.clearCache();
PixelScene.windowOnCreate = WndLangs.class;
ShatteredPixelDungeon.switchNoFade(TitleScene.class);
ShatteredPixelDungeon.switchNoFade(TitleScene.class, new Game.SceneChangeCallback() {
@Override
public void beforeCreate() {
ShatteredPixelDungeon.language(langs.get(langIndex));
RenderedText.clearCache();
}
@Override
public void afterCreate() {
Game.scene().add(new WndLangs());
}
});
}
};
if (currLang == langs.get(i)){
@@ -113,8 +113,17 @@ public class WndSettings extends WndTabbed {
protected void onChange() {
if (getSelectedValue() != ShatteredPixelDungeon.scale()) {
ShatteredPixelDungeon.scale(getSelectedValue());
PixelScene.windowOnCreate = WndSettings.class;
ShatteredPixelDungeon.switchNoFade((Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass());
ShatteredPixelDungeon.switchNoFade((Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass(), new Game.SceneChangeCallback() {
@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
protected void onClick() {
super.onClick();
ShatteredPixelDungeon.classicFont(!checked());
PixelScene.windowOnCreate = WndSettings.class;
ShatteredPixelDungeon.switchNoFade((Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass());
ShatteredPixelDungeon.switchNoFade((Class<? extends PixelScene>) ShatteredPixelDungeon.scene().getClass(), new Game.SceneChangeCallback() {
@Override
public void beforeCreate() {
ShatteredPixelDungeon.classicFont(!checked());
}
@Override
public void afterCreate() {
Game.scene().add(new WndSettings());
}
});
}
};
chkFont.setRect(0, slots.bottom() + GAP_SML, WIDTH, BTN_HEIGHT);