reading savefiles won't freeze the ui (too much)

This commit is contained in:
minjaesong
2021-10-01 22:54:18 +09:00
parent ba25e4f203
commit ea507d4d8e
6 changed files with 256 additions and 173 deletions

View File

@@ -0,0 +1,58 @@
package net.torvald.terrarum.ui
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import net.torvald.terrarum.App
import net.torvald.terrarum.CommonResourcePool
/**
* Created by minjaesong on 2021-10-01.
*/
class UIAutosaveNotifier : UICanvas() {
override var width: Int
get() = TODO("Not yet implemented")
set(value) {}
override var height: Int
get() = TODO("Not yet implemented")
set(value) {}
override var openCloseTime = 0.2f
private val spinner = CommonResourcePool.getAsTextureRegionPack("inline_loading_spinner")
private var spinnerTimer = 0f
private var spinnerFrame = 0
private val spinnerInterval = 1f / 60f
override fun updateUI(delta: Float) {
spinnerTimer += delta
if (spinnerTimer > spinnerInterval) {
spinnerFrame = (spinnerFrame + 1) % 32
spinnerTimer -= spinnerInterval
}
}
override fun renderUI(batch: SpriteBatch, camera: Camera) {
val spin = spinner.get(spinnerFrame % 8, spinnerFrame / 8)
val inlineOffsetY = if (App.GAME_LOCALE.startsWith("th")) 0f
else if (App.GAME_LOCALE.startsWith("ko")) 0f
else 1f
batch.draw(spin, posX.toFloat(), posY.toFloat())
}
override fun doOpening(delta: Float) {
}
override fun doClosing(delta: Float) {
}
override fun endOpening(delta: Float) {
}
override fun endClosing(delta: Float) {
}
override fun dispose() {
}
}

View File

@@ -118,7 +118,7 @@ void main() {
private val shader = App.loadShaderInline(SHADER_PROG_VERT, SHADER_PROG_FRAG)
private var uiToggleLocked = false
var uiToggleLocked = false; private set
init {
//UI.handler = this