// package arena_build -- арена-строение (что-то производит, есть время производства) package arena_build import ( . "gitp78su.ipnodns.ru/svi/kern" . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes" . "wartank/app/lev0/alias" . "wartank/app/lev0/types" "wartank/app/lev1" "wartank/app/lev1/down_time" "wartank/app/lev2/arena" ) // АренаСтроение -- арена-строение (что-то производит, есть время производства) type АренаСтроение struct { ИАрена времяОстат ИВремяОстат // Обратный отсчёт до окончания работы режима продуктВремя ISafeString продуктСейчас ИСтатПарам } // НовАренаСтроение -- возвращает новую арену-строение func НовАренаСтроение(конт ILocalCtx, аренаКонфиг arena.АренаКонфиг) *АренаСтроение { сам := &АренаСтроение{ ИАрена: arena.НовАрена(конт, аренаКонфиг), времяОстат: down_time.НовВремОбрат(конт, 5), продуктВремя: NewSafeString(), продуктСейчас: lev1.НовСтатПарам("не задано"), } _ = ИАренаСтроение(сам) return сам } // ПродуктСейчас -- возвращает продукт, производимый сейчас func (сам *АренаСтроение) ПродуктСейчас() ИСтатПарам { return сам.продуктСейчас } // ОбратВремяУст -- устанавливает новое значение обратного счётчика времени func (сам *АренаСтроение) ОбратВремяУст(времяСек АВремя) { сам.времяОстат.Уст(времяСек) } // ВремяОстат -- объект оставшегося времени func (сам *АренаСтроение) ВремяОстат() ИВремяОстат { return сам.времяОстат } // ВремяОстат -- объект оставшегося времени func (сам *АренаСтроение) ПродуктВремяСейчас() ISafeString { сам.продуктВремя.Set(сам.времяОстат.String()) return сам.продуктВремя }