39 lines
1.2 KiB
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);
|
|
}
|
|
}
|