From 25c585e4c1b30e2bc3a353615a3634c97d47dbf9 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 27 Nov 2019 17:31:29 +0900 Subject: [PATCH] worldgenloadscreen now makes transition --- src/net/torvald/terrarum/LoadScreenBase.kt | 4 ++++ src/net/torvald/terrarum/SanicLoadScreen.kt | 7 ++++++- .../torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt | 4 +++- .../terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt | 2 +- .../terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/net/torvald/terrarum/LoadScreenBase.kt b/src/net/torvald/terrarum/LoadScreenBase.kt index 6290b94a3..4a3c653c2 100644 --- a/src/net/torvald/terrarum/LoadScreenBase.kt +++ b/src/net/torvald/terrarum/LoadScreenBase.kt @@ -63,6 +63,10 @@ open class LoadScreenBase : ScreenAdapter(), Disposable { } override fun render(delta: Float) { + if (screenToLoad?.gameInitialised ?: false) { + doContextChange = true + } + if (doContextChange) { Thread.sleep(80) AppLoader.setScreen(screenToLoad!!) diff --git a/src/net/torvald/terrarum/SanicLoadScreen.kt b/src/net/torvald/terrarum/SanicLoadScreen.kt index 68925b587..1b8be3ca3 100644 --- a/src/net/torvald/terrarum/SanicLoadScreen.kt +++ b/src/net/torvald/terrarum/SanicLoadScreen.kt @@ -225,7 +225,12 @@ object SanicLoadScreen : LoadScreenBase() { AppLoader.batch.flush() } - super.render(delta) + + // replaces super.render() + if (doContextChange) { + Thread.sleep(80) + AppLoader.setScreen(screenToLoad!!) + } } private fun getPulseEffCol(): Color { diff --git a/src/net/torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt b/src/net/torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt index 272c74a23..6918da0c2 100644 --- a/src/net/torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt +++ b/src/net/torvald/terrarum/modulebasegame/WorldgenLoadScreen.kt @@ -110,7 +110,9 @@ class WorldgenLoadScreen(screenToBeLoaded: IngameInstance, private val worldwidt } override fun dispose() { - previewPixmap.dispose() + if (!previewPixmap.isDisposed) + previewPixmap.dispose() + previewTexture.dispose() } } \ No newline at end of file diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt index 4326563b3..aa2e61e7c 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewBuildingMaker.kt @@ -36,7 +36,7 @@ class UIProxyNewBuildingMaker : UICanvas() { Terrarum.setCurrentIngameInstance(ingame) SanicLoadScreen.screenToLoad = ingame - AppLoader.setScreen(SanicLoadScreen) + AppLoader.setLoadScreen(SanicLoadScreen) } override fun endClosing(delta: Float) { diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt index 5bf24da12..db32c1f90 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIProxyNewRandomGame.kt @@ -39,7 +39,7 @@ class UIProxyNewRandomGame : UICanvas() { val ingame = TerrarumIngame(AppLoader.batch) val worldParam = TerrarumIngame.NewWorldParameters(2400, 800, HQRNG().nextLong()) - //val worldParam = Ingame.NewWorldParameters(8192, 2048, 0x51621DL) + //val worldParam = TerrarumIngame.NewWorldParameters(8192, 2048, 0x51621DL) ingame.gameLoadInfoPayload = worldParam ingame.gameLoadMode = TerrarumIngame.GameLoadMode.CREATE_NEW