citylimits/world/level.go

53 lines
871 B
Go
Raw Normal View History

2022-01-09 17:10:40 +00:00
package world
2022-01-10 05:21:06 +00:00
import (
"github.com/hajimehoshi/ebiten/v2"
)
2022-01-09 17:10:40 +00:00
type Tile struct {
2022-01-10 21:15:03 +00:00
Sprite *ebiten.Image
EnvironmentSprite *ebiten.Image
HoverSprite *ebiten.Image
2022-01-09 17:10:40 +00:00
}
type GameLevel struct {
Tiles [][][]*Tile
size int
}
func NewLevel(size int) *GameLevel {
l := &GameLevel{
size: size,
}
2022-01-10 21:15:03 +00:00
const startingLayers = 2
for i := 0; i < startingLayers; i++ {
l.AddLayer()
}
2022-01-09 17:10:40 +00:00
return l
}
func (l *GameLevel) AddLayer() {
tileMap := make([][]*Tile, l.size)
for x := 0; x < l.size; x++ {
tileMap[x] = make([]*Tile, l.size)
2022-01-10 21:15:03 +00:00
for y := 0; y < l.size; y++ {
tileMap[x][y] = &Tile{}
}
2022-01-09 17:10:40 +00:00
}
l.Tiles = append(l.Tiles, tileMap)
}
2022-01-10 05:21:06 +00:00
func (l *GameLevel) ClearHoverSprites() {
for i := range l.Tiles {
for x := range l.Tiles[i] {
for _, tile := range l.Tiles[i][x] {
if tile == nil {
continue
}
tile.HoverSprite = nil
}
}
}
}