arena_build.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // package arena_build -- арена-строение (что-то производит, есть время производства)
  2. package arena_build
  3. import (
  4. . "gitp78su.ipnodns.ru/svi/kern"
  5. . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes"
  6. . "wartank/app/lev0/alias"
  7. . "wartank/app/lev0/types"
  8. "wartank/app/lev1"
  9. "wartank/app/lev2/arena"
  10. "wartank/app/lev1/down_time"
  11. )
  12. // АренаСтроение -- арена-строение (что-то производит, есть время производства)
  13. type АренаСтроение struct {
  14. ИАрена
  15. времяОстат ИВремяОстат // Обратный отсчёт до окончания работы режима
  16. продуктВремя ISafeString
  17. продуктСейчас ИСтатПарам
  18. }
  19. // НовАренаСтроение -- возвращает новую арену-строение
  20. func НовАренаСтроение(конт ILocalCtx, аренаКонфиг arena.АренаКонфиг) *АренаСтроение {
  21. сам := &АренаСтроение{
  22. ИАрена: arena.НовАрена(конт, аренаКонфиг),
  23. времяОстат: down_time.НовВремОбрат(конт, 5),
  24. продуктВремя: NewSafeString(),
  25. продуктСейчас: lev1.НовСтатПарам("не задано"),
  26. }
  27. _ = ИАренаСтроение(сам)
  28. return сам
  29. }
  30. // ПродуктСейчас -- возвращает продукт, производимый сейчас
  31. func (сам *АренаСтроение) ПродуктСейчас() ИСтатПарам {
  32. return сам.продуктСейчас
  33. }
  34. // ОбратВремяУст -- устанавливает новое значение обратного счётчика времени
  35. func (сам *АренаСтроение) ОбратВремяУст(времяСек АВремя) {
  36. сам.времяОстат.Уст(времяСек)
  37. }
  38. // ВремяОстат -- объект оставшегося времени
  39. func (сам *АренаСтроение) ВремяОстат() ИВремяОстат {
  40. return сам.времяОстат
  41. }
  42. // ВремяОстат -- объект оставшегося времени
  43. func (сам *АренаСтроение) ПродуктВремяСейчас() ISafeString {
  44. сам.продуктВремя.Set(сам.времяОстат.String())
  45. return сам.продуктВремя
  46. }