game/lib/providers/settings_provider.dart

39 lines
1.2 KiB
Dart

import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SettingsProvider with ChangeNotifier {
static const String _keyEnemyAnim = 'settings_enemy_anim';
static const String _keyAttackAnimScale = 'settings_attack_anim_scale';
bool _enableEnemyAnimations = true; // Default: Enabled
double _attackAnimScale = 5.0; // Default: 5.0
bool get enableEnemyAnimations => _enableEnemyAnimations;
double get attackAnimScale => _attackAnimScale;
SettingsProvider() {
_loadSettings();
}
Future<void> _loadSettings() async {
final prefs = await SharedPreferences.getInstance();
_enableEnemyAnimations = prefs.getBool(_keyEnemyAnim) ?? true;
_attackAnimScale = prefs.getDouble(_keyAttackAnimScale) ?? 5.0;
notifyListeners();
}
Future<void> toggleEnemyAnimations(bool value) async {
_enableEnemyAnimations = value;
notifyListeners();
final prefs = await SharedPreferences.getInstance();
await prefs.setBool(_keyEnemyAnim, value);
}
Future<void> setAttackAnimScale(double value) async {
_attackAnimScale = value;
notifyListeners();
final prefs = await SharedPreferences.getInstance();
await prefs.setDouble(_keyAttackAnimScale, value);
}
}