You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package sim
|
|
|
|
|
|
|
|
// tile is an individual cell within the world simulation. Everything happens
|
|
|
|
// on a tile.
|
|
|
|
type tile struct {
|
|
|
|
// floor is the surface for the tile. All things sit atop the floor. The
|
|
|
|
// floor informs clients how to draw the tile in the event that the tile's
|
|
|
|
// contents are empty. The floor also determins whether or not the tile is
|
|
|
|
// traversable.
|
|
|
|
floor floor
|
|
|
|
|
|
|
|
// contents is all of the entities on this tile. A given tile may have many
|
|
|
|
// entities.
|
|
|
|
contents map[int]entity
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *tile) addEntity(e entity) {
|
|
|
|
if t.contents == nil {
|
|
|
|
t.contents = make(map[int]entity)
|
|
|
|
}
|
|
|
|
t.contents[e.id()] = e
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *tile) removeEntity(id int) entity {
|
|
|
|
if e, here := t.contents[id]; here {
|
|
|
|
delete(t.contents, id)
|
|
|
|
return e
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|