package sprite import ( "git.wisellama.rocks/Project-Ely/project-ely/internal/channels" rl "github.com/gen2brain/raylib-go/raylib" ) type spritesheet struct { filename string texture rl.Texture2D } func NewSprite(filename string) *spritesheet { var texture rl.Texture2D channels.RL.Do(func() { texture = rl.LoadTexture(filename) }) s := spritesheet{ filename: filename, texture: texture, } return &s } func (s *spritesheet) Cleanup() { channels.RL.Do(func() { // Clean up spritesheet rl.UnloadTexture(s.texture) }) } func (s *spritesheet) Draw( section rl.Rectangle, placement rl.Rectangle, angle float32, center rl.Vector2, color rl.Color, ) error { var err error channels.RL.Do(func() { origin := rl.Vector2{} rl.DrawTexturePro(s.texture, section, placement, origin, angle, color) }) if err != nil { return err } return nil } func (s *spritesheet) Bounds() rl.Vector2 { return rl.Vector2{ X: float32(s.texture.Width), Y: float32(s.texture.Height), } }