diff --git a/build.gradle.kts b/build.gradle.kts index 12838db09a..da4f12a97b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -60,6 +60,7 @@ project(":desktop") { dependencies { "implementation"(project(":core")) + "implementation"("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion") "implementation"("com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion") "implementation"("com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop") diff --git a/core/src/com/unciv/logic/files/UncivFiles.kt b/core/src/com/unciv/logic/files/UncivFiles.kt index c318e74975..bd98e1745c 100644 --- a/core/src/com/unciv/logic/files/UncivFiles.kt +++ b/core/src/com/unciv/logic/files/UncivFiles.kt @@ -394,11 +394,6 @@ class UncivFiles( * Platform dependent saver-loader to custom system locations */ var saverLoader: PlatformSaverLoader = PlatformSaverLoader.None - get() { - if (field.javaClass.simpleName == "DesktopSaverLoader" && LinuxX11SaverLoader.isRequired()) - field = LinuxX11SaverLoader() - return field - } /** Specialized function to access settings before Gdx is initialized. * diff --git a/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt b/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt index a4c60a427a..41662ab1aa 100644 --- a/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt +++ b/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt @@ -57,7 +57,7 @@ internal object DesktopLauncher { Fonts.fontImplementation = DesktopFont() // Setup Desktop saver-loader - UncivFiles.saverLoader = DesktopSaverLoader() + UncivFiles.saverLoader = if (LinuxX11SaverLoader.isRequired()) LinuxX11SaverLoader() else DesktopSaverLoader() UncivFiles.preferExternalStorage = false // Solves a rendering problem in specific GPUs and drivers. diff --git a/core/src/com/unciv/logic/files/LinuxX11SaverLoader.kt b/desktop/src/com/unciv/app/desktop/LinuxX11SaverLoader.kt similarity index 93% rename from core/src/com/unciv/logic/files/LinuxX11SaverLoader.kt rename to desktop/src/com/unciv/app/desktop/LinuxX11SaverLoader.kt index 25d3c39f19..bde5d2e81c 100644 --- a/core/src/com/unciv/logic/files/LinuxX11SaverLoader.kt +++ b/desktop/src/com/unciv/app/desktop/LinuxX11SaverLoader.kt @@ -1,7 +1,9 @@ -package com.unciv.logic.files +package com.unciv.app.desktop import com.badlogic.gdx.Gdx import com.unciv.UncivGame +import com.unciv.logic.files.FileChooser +import com.unciv.logic.files.PlatformSaverLoader import com.unciv.utils.Concurrency import java.awt.GraphicsEnvironment import java.io.File @@ -24,8 +26,8 @@ class LinuxX11SaverLoader : PlatformSaverLoader { if (suggestedLocation.startsWith(File.separator)) Gdx.files.absolute(suggestedLocation) else if (Gdx.files.external(suggestedLocation).parent().exists()) Gdx.files.external(suggestedLocation) else UncivGame.Current.files.getLocalFile(suggestedLocation) - FileChooser.createSaveDialog(stage, "Save game", startLocation) { - success, file -> + + FileChooser.createSaveDialog(stage, "Save game", startLocation) { success, file -> if (!success) onError(PlatformSaverLoader.Cancelled()) else