You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
813B

  1. function Состояния(состояние)
  2. {
  3. this.создать = function()
  4. {
  5. this.задано = {};
  6. };
  7. this.применить = function(имя)
  8. {
  9. состояние.разобратьВыпрямленный(this.задано[имя]);
  10. }
  11. this.обработатьКлюч = function(ключ, путь, значение)
  12. {
  13. if (путь[0] != "состояния")
  14. {
  15. return;
  16. }
  17. let имя = путь[1];
  18. let свойство = путь.slice(2).join(".");
  19. if (!this.задано[имя])
  20. {
  21. this.задано[имя] = {};
  22. }
  23. this.задано[имя][свойство] = значение;
  24. };
  25. // Конструктор.
  26. this.создать();
  27. };