// package arena_state -- состояние арены package arena_state import ( "sync" "wartank/pkg/alias" . "wartank/server/lev0/types" ) // СценаСостояние -- состояние сцены type АренаСостояние struct { состояниеИмя alias.АренаСостояние // Имя режима работаИмя alias.АренаРаботаИмя // Имя работы режимНомер alias.АренаРежимНомер block sync.RWMutex } // НовСекцияРежим -- возвращает новый *СценаРежим func НовАренаСостояние() *АренаСостояние { сам := &АренаСостояние{ состояниеИмя: "старт", } _ = ИАренаСостояние(сам) return сам } // РежимНомер -- возвращает номер режима арены func (сам *АренаСостояние) РежимНомер() alias.АренаРежимНомер { сам.block.RLock() defer сам.block.RUnlock() return сам.режимНомер } // РаботаИмяУст -- устанавливает имя текущей работы арены func (сам *АренаСостояние) РаботаИмяУст(имя alias.АренаРаботаИмя) { сам.block.Lock() defer сам.block.Unlock() сам.работаИмя = имя } // РаботаИмя -- возвращает имя текущей работы арены func (сам *АренаСостояние) РаботаИмя() alias.АренаРаботаИмя { сам.block.RLock() defer сам.block.RUnlock() return сам.работаИмя } // СостояниеУст -- устанавливает состояние арены func (сам *АренаСостояние) СостояниеУст(состояние alias.АренаСостояние) { сам.block.Lock() defer сам.block.Unlock() сам.состояниеИмя = состояние } // Состояние -- возвращает состояние арены func (сам *АренаСостояние) Состояние() alias.АренаСостояние { сам.block.RLock() defer сам.block.RUnlock() return сам.состояниеИмя } // Работа -- возвращает хранимое имя работы арены func (сам *АренаСостояние) Работа() alias.АренаРаботаИмя { сам.block.RLock() defer сам.block.RUnlock() return сам.работаИмя } // РаботаУст -- устанавливает хранимое имя работы арены func (сам *АренаСостояние) РаботаУст(работаИмя alias.АренаРаботаИмя) { сам.block.Lock() defer сам.block.Unlock() сам.работаИмя = работаИмя }