package domain type Building struct { BuildTime float64 BuildTimeFactor float64 Iron int IronFactor float64 MaxLevel int MinLevel int Pop int PopFactor float64 Stone int StoneFactor float64 Wood int WoodFactor 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 }