package components import ( "openquell/config" "github.com/hajimehoshi/ebiten/v2" ) // virtual location, aka tile address type Animation struct { Active bool // animation is running Loop bool // remove the entity if false, loop endless otherwise Index int // where we are currently Tiles []*ebiten.Image Width, Height int // single sprite measurements Timer Timer Trigger string } type Renderable struct { Pos *Position // just for debugging, will not used as positiion! Image *ebiten.Image DamageImage *ebiten.Image // FIXME: put into its own struct Damaged int Shader *ebiten.Shader Animate Animation Hidden bool } func (render *Renderable) StartAnimation() { render.Hidden = true render.Animate.Active = true render.Animate.Timer.Start(config.ANIMATION_STARTWAIT) switch render.Animate.Trigger { case "OnCollision": fallthrough case "OnDestruct": render.Animate.Loop = false case "OnIdle": render.Animate.Loop = true } }