mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-11-10 14:26:15 -05:00
7f6ae1b785
* improve AssetManager implementation Notable changes are: * removed the individual managers inside of d2asset, only one asset manager * AssetManager now has caches for the types of files it loads * created a type for TextDictionary (the txt file structs) * fixed a file path bug in d2loader Source * fixed a asset stream bug in d2loader Asset * d2loader.Loader now needs a d2config.Config on creation (for resolving locale files) * updated the mpq file in d2asset test data, added test case for "sub-directory" * added a Data method to d2asset.Asset. The data is cached on first full read. * renamed ArchiveDataStream to DataStream in d2interface * moved palette utility func out of d2asset and into d2util * bugfix for MacOS mpq loader issue * minor lint fixes * removed obsolete interfaces from d2interface * lint fixes, added data caching to filesystem asset * adding comment for mpq asset close * adding comment for mpq asset close
22 lines
414 B
Go
22 lines
414 B
Go
package asset
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
|
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2loader/asset/types"
|
|
)
|
|
|
|
// Asset represents a game asset. It has a type, an asset source, a sub-path (within the
|
|
// asset source), and it can read data and seek within the data
|
|
type Asset interface {
|
|
fmt.Stringer
|
|
io.Reader
|
|
io.Seeker
|
|
io.Closer
|
|
Type() types.AssetType
|
|
Source() Source
|
|
Path() string
|
|
Data() ([]byte, error)
|
|
}
|