seemingly working world teleporter (no saving... ui tho)

This commit is contained in:
minjaesong
2023-07-03 00:10:46 +09:00
parent 9c396e7b8d
commit fcaf4c97f1
7 changed files with 37 additions and 14 deletions

View File

@@ -880,9 +880,15 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
if ((!paused && !App.isScreenshotRequested()) && newWorldLoadedLatch) newWorldLoadedLatch = false
if (saveRequested != null) {
doForceSave(saveRequested!!)
saveRequested = null
if (saveRequested) {
saveRequested = false
doForceSave()
}
if (doThingsAfterSave) {
saveRequested = false
doThingsAfterSave = false
saveCallback!!()
}
}
@@ -920,22 +926,25 @@ open class TerrarumIngame(batch: FlippingSpriteBatch) : IngameInstance(batch) {
)
}
private var saveRequested: (() -> Unit)? = null
private var saveRequested = false
private var saveCallback: (() -> Unit)? = null
private var doThingsAfterSave = false
override fun requestForceSave(callback: () -> Unit) {
saveRequested = callback
saveCallback = callback
saveRequested = true
}
internal fun doForceSave(callback: () -> Unit) {
internal fun doForceSave() {
// TODO show appropriate UI
saveTheGame({ // onSuccessful
System.gc()
autosaveTimer = 0f
// TODO hide appropriate UI
callback()
doThingsAfterSave = true
}, { // onError
// TODO show failure message