package domain type Building struct { MaxLevel int MinLevel int Wood int Stone int Iron int Pop int WoodFactor float64 StoneFactor float64 IronFactor float64 PopFactor float64 BuildTime float64 BuildTimeFactor float64 } type BuildingInfo struct { main Building barracks Building stable Building garage Building watchtower Building snob Building smith Building place Building statue Building market Building wood Building stone Building iron Building farm Building storage Building hide Building wall Building } type NullBuildingInfo = NullValue[BuildingInfo] func NewBuildingInfo( main Building, barracks Building, stable Building, garage Building, watchtower Building, snob Building, smith Building, place Building, statue Building, market Building, wood Building, stone Building, iron Building, farm Building, storage Building, hide Building, wall Building, ) (BuildingInfo, error) { return BuildingInfo{ main: main, barracks: barracks, stable: stable, garage: garage, watchtower: watchtower, snob: snob, smith: smith, place: place, statue: statue, market: market, wood: wood, stone: stone, iron: iron, farm: farm, storage: storage, hide: hide, wall: wall, }, nil } func (b BuildingInfo) Main() Building { return b.main } func (b BuildingInfo) Barracks() Building { return b.barracks } func (b BuildingInfo) Stable() Building { return b.stable } func (b BuildingInfo) Garage() Building { return b.garage } func (b BuildingInfo) Watchtower() Building { return b.watchtower } func (b BuildingInfo) Snob() Building { return b.snob } func (b BuildingInfo) Smith() Building { return b.smith } func (b BuildingInfo) Place() Building { return b.place } func (b BuildingInfo) Statue() Building { return b.statue } func (b BuildingInfo) Market() Building { return b.market } func (b BuildingInfo) Wood() Building { return b.wood } func (b BuildingInfo) Stone() Building { return b.stone } func (b BuildingInfo) Iron() Building { return b.iron } func (b BuildingInfo) Farm() Building { return b.farm } func (b BuildingInfo) Storage() Building { return b.storage } func (b BuildingInfo) Hide() Building { return b.hide } func (b BuildingInfo) Wall() Building { return b.wall }