mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-09-18 09:15:59 -04:00
1b03e691b9
* Work on resource loading * Use new material flag name. (#261) Update ebiten ref while at it * Hopefully fix CI (#262) * Don't try to copy config.json on travis (#263) I doesn't exist anymore * Update D2Shared references * Fix character selection rect Co-authored-by: Ziemas <ziemas@ziemas.se>
30 lines
682 B
Go
30 lines
682 B
Go
package d2asset
|
|
|
|
type animationManager struct {
|
|
cache *cache
|
|
}
|
|
|
|
func createAnimationManager() *animationManager {
|
|
return &animationManager{cache: createCache(AnimationBudget)}
|
|
}
|
|
|
|
func (sm *animationManager) loadAnimation(animationPath, palettePath string) (*Animation, error) {
|
|
cachePath := animationPath + palettePath
|
|
if animation, found := sm.cache.retrieve(cachePath); found {
|
|
return animation.(*Animation).clone(), nil
|
|
}
|
|
|
|
dc6, err := loadDC6(animationPath, palettePath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
animation, err := createAnimationFromDC6(dc6)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
sm.cache.insert(cachePath, animation.clone(), 1)
|
|
return animation, err
|
|
}
|