From f05a861998115e249a90d63709be9c1417de346d Mon Sep 17 00:00:00 2001 From: Hans Kokx Date: Mon, 23 Mar 2026 15:39:02 +0100 Subject: [PATCH] feat: Add exists method for checking save game file existence in CLI and Flutter persistence Signed-off-by: Hans Kokx --- .../lib/cli_save_game_persistence.dart | 13 +++++++++++++ .../lib/save_game_persistence_flutter.dart | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/apps/wolf_3d_cli/lib/cli_save_game_persistence.dart b/apps/wolf_3d_cli/lib/cli_save_game_persistence.dart index 21066a2..94dedd2 100644 --- a/apps/wolf_3d_cli/lib/cli_save_game_persistence.dart +++ b/apps/wolf_3d_cli/lib/cli_save_game_persistence.dart @@ -34,6 +34,19 @@ class CliSaveGamePersistence implements SaveGamePersistence { } } + @override + Future exists({ + required int slot, + required GameVersion version, + }) async { + try { + final File file = File(_slotPath(slot, version)); + return file.existsSync() && file.lengthSync() > 0; + } catch (_) { + return false; + } + } + @override Future save({ required int slot, diff --git a/packages/wolf_3d_flutter/lib/save_game_persistence_flutter.dart b/packages/wolf_3d_flutter/lib/save_game_persistence_flutter.dart index 525581a..1100899 100644 --- a/packages/wolf_3d_flutter/lib/save_game_persistence_flutter.dart +++ b/packages/wolf_3d_flutter/lib/save_game_persistence_flutter.dart @@ -51,6 +51,24 @@ class FlutterSaveGamePersistence implements SaveGamePersistence { } } + @override + Future exists({ + required int slot, + required GameVersion version, + }) async { + if (kIsWeb) { + return false; + } + + try { + final String dirPath = await _resolveDirectoryPath(); + final File file = File(_slotPath(dirPath, slot, version)); + return file.existsSync() && file.lengthSync() > 0; + } catch (_) { + return false; + } + } + @override Future save({ required int slot,