package tins2020 type Map struct { Temp NoiseMap Humid NoiseMap Variant NoiseMap PlaceX NoiseMap // displacement map of props PlaceY NoiseMap Center Point Flowers map[Point]Flower } func (m *Map) AddFlower(pos Point, id string, traits FlowerTraits) { m.Flowers[pos] = m.NewFlower(pos, id, traits) } func (m *Map) FlowersOnAdjacentTiles(pos Point) int { var count int if _, ok := m.Flowers[Pt(pos.X+1, pos.Y)]; ok { count++ } if _, ok := m.Flowers[Pt(pos.X-1, pos.Y)]; ok { count++ } if _, ok := m.Flowers[Pt(pos.X, pos.Y+1)]; ok { count++ } if _, ok := m.Flowers[Pt(pos.X, pos.Y-1)]; ok { count++ } return count } func (m *Map) DigFlower(pos Point) string { flower, ok := m.Flowers[pos] if !ok { return "" } delete(m.Flowers, pos) return flower.ID } func (m *Map) HasFlower(pos Point) bool { _, ok := m.Flowers[pos] return ok } func (m *Map) NewFlower(pos Point, id string, traits FlowerTraits) Flower { flower := Flower{ ID: id, Traits: traits, } temp, humid := float32(m.Temp.Value(pos.X, pos.Y)), float32(m.Humid.Value(pos.X, pos.Y)) flower.Traits.UpdateModifier(temp, humid) return flower }