scene_mode.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // package scene_mode -- типовой режим секция работы части игры
  2. package scene_mode
  3. import (
  4. "sync"
  5. "wartank/pkg/alias"
  6. )
  7. // СценаРежим -- режим работы секции
  8. type СценаРежим struct {
  9. режимИмя alias.СценаРежим // Имя режима
  10. работаИмя alias.СценаРабота // Имя работы
  11. block sync.RWMutex
  12. }
  13. // НовСекцияРежим -- возвращает новый *СценаРежим
  14. func НовСценаРежим() *СценаРежим {
  15. return &СценаРежим{
  16. режимИмя: "старт",
  17. }
  18. }
  19. // РежимУст -- устанавливает режим работы
  20. func (сам *СценаРежим) РежимУст(val alias.СценаРежим) {
  21. сам.block.Lock()
  22. defer сам.block.Unlock()
  23. сам.режимИмя = val
  24. }
  25. // Получ -- возвращает хранимый режим работы
  26. func (сам *СценаРежим) Режим() alias.СценаРежим {
  27. сам.block.RLock()
  28. defer сам.block.RUnlock()
  29. return сам.режимИмя
  30. }
  31. // Работа -- возвращает хранимое имя работы
  32. func (сам *СценаРежим) Работа() alias.СценаРабота {
  33. сам.block.RLock()
  34. defer сам.block.RUnlock()
  35. return сам.работаИмя
  36. }
  37. // РаботаУст -- устанавливает хранимое имя работы
  38. func (сам *СценаРежим) РаботаУст(работаИмя alias.СценаРабота) {
  39. сам.block.Lock()
  40. defer сам.block.Unlock()
  41. сам.работаИмя = работаИмя
  42. }