| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package section
- import (
- "fmt"
- "log"
- "wartank/pkg/components/counttime"
- "wartank/pkg/components/lststring"
- "wartank/pkg/components/section/sectionmode"
- "wartank/pkg/types"
- )
- /*
- Базовый объект игры -- секция.
- Основа множества зданий игры.
- */
- // Section -- секция игры
- type Section struct {
- countDown types.ICountTime
- lstString *lststring.LstString
- mode types.IMode
- }
- // NewSection -- возвращает новый *Section
- func NewSection(app types.IServer, strControl string) (*Section, error) {
- log.Printf("NewSection(): strControl=%q\n", strControl)
- sf := &Section{
- countDown: counttime.NewCountTime(app),
- mode: sectionmode.NewSectionMode(),
- }
- var err error
- sf.lstString, err = lststring.NewLstString(strControl)
- if err != nil {
- return nil, fmt.Errorf("NewSection(): in create *LstString, err=\n\t%w", err)
- }
- return sf, nil
- }
- // Update -- обновляет список строк секции
- func (sf *Section) Update(lstString []string) error {
- if err := sf.lstString.Set(lstString); err != nil {
- return fmt.Errorf("Section.Update(): in set lstString, err=\n\t%w", err)
- }
- return nil
- }
- // GetLst -- возвращает список строк арсенала
- func (sf *Section) GetLst() []string {
- return sf.lstString.Get()
- }
- // CountDown -- возвращает объект оставшегося времени
- func (sf *Section) CountDown() types.ICountTime {
- return sf.countDown
- }
- // ModeCurrent -- текущий режим работы
- func (sf *Section) ModeCurrent() types.IMode {
- return sf.mode
- }
|