Rename Kind -> Tile

This commit is contained in:
Marc Di Luzio 2020-06-07 18:38:46 +01:00
parent 289bab2a7a
commit cb725c96d2
3 changed files with 22 additions and 15 deletions

View file

@ -5,13 +5,10 @@ import (
"log" "log"
) )
// Kind represents the type of a tile on the map
type Kind byte
// Chunk represents a fixed square grid of tiles // Chunk represents a fixed square grid of tiles
type Chunk struct { type Chunk struct {
// Tiles represents the tiles within the chunk // Tiles represents the tiles within the chunk
Tiles []Kind `json:"tiles"` Tiles []Tile `json:"tiles"`
} }
// Atlas represents a grid of Chunks // Atlas represents a grid of Chunks
@ -42,7 +39,7 @@ func NewAtlas(size int, chunkSize int) Atlas {
// Initialise all the chunks // Initialise all the chunks
for i := range a.Chunks { for i := range a.Chunks {
a.Chunks[i] = Chunk{ a.Chunks[i] = Chunk{
Tiles: make([]Kind, chunkSize*chunkSize), Tiles: make([]Tile, chunkSize*chunkSize),
} }
} }
@ -50,7 +47,7 @@ func NewAtlas(size int, chunkSize int) Atlas {
} }
// SetTile sets an individual tile's kind // SetTile sets an individual tile's kind
func (a *Atlas) SetTile(v Vector, tile Kind) error { func (a *Atlas) SetTile(v Vector, tile Tile) error {
chunk := a.ToChunk(v) chunk := a.ToChunk(v)
if chunk >= len(a.Chunks) { if chunk >= len(a.Chunks) {
return fmt.Errorf("location outside of allocated atlas") return fmt.Errorf("location outside of allocated atlas")
@ -66,7 +63,7 @@ func (a *Atlas) SetTile(v Vector, tile Kind) error {
} }
// GetTile will return an individual tile // GetTile will return an individual tile
func (a *Atlas) GetTile(v Vector) (Kind, error) { func (a *Atlas) GetTile(v Vector) (Tile, error) {
chunk := a.ToChunk(v) chunk := a.ToChunk(v)
if chunk > len(a.Chunks) { if chunk > len(a.Chunks) {
return 0, fmt.Errorf("location outside of allocated atlas") return 0, fmt.Errorf("location outside of allocated atlas")

View file

@ -80,13 +80,13 @@ func TestAtlas_GetSetTile(t *testing.T) {
assert.NoError(t, a.SetTile(Vector{0, 0}, 1)) assert.NoError(t, a.SetTile(Vector{0, 0}, 1))
tile, err := a.GetTile(Vector{0, 0}) tile, err := a.GetTile(Vector{0, 0})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, Kind(1), tile) assert.Equal(t, Tile(1), tile)
// Set another tile to 1 and test it // Set another tile to 1 and test it
assert.NoError(t, a.SetTile(Vector{5, -2}, 2)) assert.NoError(t, a.SetTile(Vector{5, -2}, 2))
tile, err = a.GetTile(Vector{5, -2}) tile, err = a.GetTile(Vector{5, -2})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, Kind(2), tile) assert.Equal(t, Tile(2), tile)
} }
func TestAtlas_Grown(t *testing.T) { func TestAtlas_Grown(t *testing.T) {
@ -107,15 +107,15 @@ func TestAtlas_Grown(t *testing.T) {
tile, err := a.GetTile(Vector{0, 0}) tile, err := a.GetTile(Vector{0, 0})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, Kind(1), tile) assert.Equal(t, Tile(1), tile)
tile, err = a.GetTile(Vector{-1, -1}) tile, err = a.GetTile(Vector{-1, -1})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, Kind(2), tile) assert.Equal(t, Tile(2), tile)
tile, err = a.GetTile(Vector{1, -2}) tile, err = a.GetTile(Vector{1, -2})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, Kind(3), tile) assert.Equal(t, Tile(3), tile)
// Grow it again even bigger // Grow it again even bigger
err = a.Grow(10) err = a.Grow(10)
@ -124,13 +124,13 @@ func TestAtlas_Grown(t *testing.T) {
tile, err = a.GetTile(Vector{0, 0}) tile, err = a.GetTile(Vector{0, 0})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, Kind(1), tile) assert.Equal(t, Tile(1), tile)
tile, err = a.GetTile(Vector{-1, -1}) tile, err = a.GetTile(Vector{-1, -1})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, Kind(2), tile) assert.Equal(t, Tile(2), tile)
tile, err = a.GetTile(Vector{1, -2}) tile, err = a.GetTile(Vector{1, -2})
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, Kind(3), tile) assert.Equal(t, Tile(3), tile)
} }

10
pkg/game/tile.go Normal file
View file

@ -0,0 +1,10 @@
package game
// Tile represents the type of a tile on the map
type Tile byte
const (
TileEmpty = '_'
TileRock = 'o'
)