Skip to content
Snippets Groups Projects
data.dart 1.72 KiB
Newer Older
import 'package:flutter/foundation.dart';

class Data extends ChangeNotifier {

  // Configuration available values
  List _availableDifficultyLevels = ['easy', 'medium', 'hard'];

  List get availableDifficultyLevels => _availableDifficultyLevels;

  // Application default configuration
  String _level = 'medium';
  String _size = '8x8';
  String _skin = 'default';

  // Game data
  bool _gameRunning = false;
  int _sizeVertical = null;
  int _sizeHorizontal = null;
  List _cells = [];

  String get level => _level;
  void updateLevel(String level) {
    _level = level;
    notifyListeners();
  }

  String get size => _size;
  int get sizeVertical => _sizeVertical;
  int get sizeHorizontal => _sizeHorizontal;
  void updateSize(String size) {
    _size = size;
    _sizeHorizontal = int.parse(_size.split('x')[0]);
    _sizeVertical = int.parse(_size.split('x')[1]);
    notifyListeners();
  }

  String get skin => _skin;
  void updateSkin(String skin) {
    _skin = skin;
    notifyListeners();
  }

  getParameterValue(String parameterCode) {
    switch(parameterCode) {
      case 'difficulty': { return _level; }
      break;
    }
  }

  List getParameterAvailableValues(String parameterCode) {
    switch(parameterCode) {
      case 'difficulty': { return _availableDifficultyLevels; }
      break;
    }
  }

  setParameterValue(String parameterCode, String parameterValue) {
    switch(parameterCode) {
      case 'difficulty': { updateLevel(parameterValue); }
      break;
    }
  }

  List get cells => _cells;
  void updateCells(List cells) {
    _cells = cells;
    notifyListeners();
  }

  bool get gameRunning => _gameRunning;
  void updateGameRunning(bool gameRunning) {
    _gameRunning = gameRunning;
    notifyListeners();
  }
}