feat: Implement save game functionality with encoding/decoding
- Added SaveGameCodec for encoding and decoding save game files. - Introduced SaveGamePersistence interface for slot-based save game persistence. - Implemented FlutterSaveGamePersistence for file-based save management on Flutter. - Enhanced WolfEngine to support saving and loading game states. - Updated menu manager to include save/load game options. - Created tests for SaveGameCodec to ensure proper functionality. Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
@@ -11,6 +11,7 @@ import 'package:wolf_3d_dart/wolf_3d_engine.dart';
|
||||
import 'package:wolf_3d_dart/wolf_3d_input.dart';
|
||||
import 'package:wolf_3d_dart/wolf_3d_renderer.dart';
|
||||
import 'package:wolf_3d_flutter/renderer_settings_persistence_flutter.dart';
|
||||
import 'package:wolf_3d_flutter/save_game_persistence_flutter.dart';
|
||||
import 'package:wolf_3d_flutter/wolf_3d_flutter.dart';
|
||||
import 'package:wolf_3d_flutter/wolf_3d_input_flutter.dart';
|
||||
import 'package:wolf_3d_gui/screens/debug_tools_screen.dart';
|
||||
@@ -142,6 +143,8 @@ class _GameScreenState extends State<GameScreen> {
|
||||
late final WolfEngine _engine;
|
||||
final FlutterRendererSettingsPersistence _persistence =
|
||||
FlutterRendererSettingsPersistence();
|
||||
final FlutterSaveGamePersistence _savePersistence =
|
||||
FlutterSaveGamePersistence();
|
||||
|
||||
/// Mirrors [WolfRendererSettings.mode] into the Flutter renderer enum.
|
||||
RendererMode _rendererMode = RendererMode.hardware;
|
||||
@@ -181,6 +184,7 @@ class _GameScreenState extends State<GameScreen> {
|
||||
onQuit: () {
|
||||
SystemNavigator.pop();
|
||||
},
|
||||
saveGamePersistence: _savePersistence,
|
||||
);
|
||||
_syncRendererModeFrom(_engine.rendererSettings);
|
||||
_loadPersistedSettings();
|
||||
|
||||
Reference in New Issue
Block a user