package dungeon import ( "embed" "image" ) const ( tileSize = 16 ) //go:embed tilesets/* var tileSetFS embed.FS type TileSet struct { Name string Image *image.NRGBA } func LoadTileSet(name string) (*TileSet, error) { out := &TileSet{Name: name} tileSetFile, err := tileSetFS.Open("tilesets/" + name + ".png") if err != nil { return nil, err } defer tileSetFile.Close() tileSetSheet, _, err := image.Decode(tileSetFile) if err != nil { return nil, err } out.Image = tileSetSheet.(*image.NRGBA) return out, nil } func (t *TileSet) TileBounds(tileType TileType) image.Rectangle { index := int(tileType) - 1 return image.Rect( index*tileSize, 0, (index*tileSize)+tileSize, tileSize, ) }