30 lines
584 B
Go
30 lines
584 B
Go
package components
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
)
|
|
|
|
// A hidden door in a wall. If the player bumps into it once, it shows
|
|
// damage and it vanishes the next time.
|
|
|
|
type Destroyable struct {
|
|
Activated bool
|
|
Sprites []*ebiten.Image
|
|
Current int // sprite index
|
|
}
|
|
|
|
func (door *Destroyable) GetNext() *ebiten.Image {
|
|
if len(door.Sprites) > door.Current {
|
|
door.Current++
|
|
return door.Sprites[door.Current]
|
|
}
|
|
|
|
log.Fatalf("not enough sprites in transient tile, have %d sprites, index requested: %d",
|
|
len(door.Sprites), door.Current+1,
|
|
)
|
|
|
|
return nil
|
|
}
|