30 lines
895 B
Go
30 lines
895 B
Go
package d2asset
|
|
|
|
import (
|
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2cache"
|
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
|
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2loader"
|
|
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2config"
|
|
)
|
|
|
|
// NewAssetManager creates and assigns all necessary dependencies for the AssetManager top-level functions to work correctly
|
|
func NewAssetManager(renderer d2interface.Renderer, config *d2config.Configuration,
|
|
term d2interface.Terminal) (*AssetManager, error) {
|
|
manager := &AssetManager{
|
|
renderer,
|
|
d2loader.NewLoader(config),
|
|
d2cache.CreateCache(animationBudget),
|
|
d2cache.CreateCache(tableBudget),
|
|
d2cache.CreateCache(fontBudget),
|
|
d2cache.CreateCache(paletteBudget),
|
|
d2cache.CreateCache(paletteTransformBudget),
|
|
}
|
|
|
|
if term != nil {
|
|
err := manager.BindTerminalCommands(term)
|
|
return manager, err
|
|
}
|
|
|
|
return manager, nil
|
|
}
|