Documentation ¶
Overview ¶
Package wz contains various utilities to parse Wz data 90% of this package is ported directly from OdinMS, so credits to them
Index ¶
- func GetDouble(d MapleData) *float64
- func GetDoubleD(d MapleData, defval float64) float64
- func GetFloat(d MapleData) *float32
- func GetFloatD(d MapleData, defval float32) float32
- func GetFullDataPath(d MapleData) string
- func GetImage(d MapleData) *image.Image
- func GetImageD(d MapleData, defval *image.Image) *image.Image
- func GetInt(d MapleData) *int32
- func GetIntConvert(d MapleData) *int32
- func GetIntConvertD(d MapleData, defval int32) int32
- func GetIntD(d MapleData, defval int32) int32
- func GetPoint(d MapleData) *image.Point
- func GetPointD(d MapleData, defval image.Point) image.Point
- func GetString(d MapleData) *string
- func GetStringD(d MapleData, defval string) string
- type DirectoryEntry
- func (e *DirectoryEntry) AddDirectory(dir MapleDataDirectoryEntry)
- func (e *DirectoryEntry) AddFile(file MapleDataFileEntry)
- func (e *DirectoryEntry) Files() []MapleDataFileEntry
- func (e *DirectoryEntry) GetEntry(name string) MapleDataEntry
- func (e *DirectoryEntry) Subdirectories() []MapleDataDirectoryEntry
- type Entry
- type FileEntry
- type FileStoredPngMapleCanvas
- type MapleCanvas
- type MapleData
- type MapleDataDirectoryEntry
- type MapleDataEntity
- type MapleDataEntry
- type MapleDataFileEntry
- type MapleDataProvider
- type MapleDataType
- type XMLDomMapleData
- type Xml
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetDouble ¶
GetDouble returns a pointer to the data's value as a float64. returns nil if the value is not a valid float64.
func GetDoubleD ¶
GetDoubleD returns the data's value as a float64. If the value can't be retrieved, defval will be returned.
func GetFloat ¶
GetFloat returns a pointer to the data's value as a float32. returns nil if the value is not a valid float32.
func GetFloatD ¶
GetFloatD returns the data's value as a float32. If the value can't be retrieved, defval will be returned.
func GetFullDataPath ¶
GetFullDataPath returns the full, absolute path to the data by walking the mapledata backwards to the root node.
func GetImage ¶
GetImage returns a pointer to the data's value as a pointer to image.Image. returns nil if the value is not a valid maple canvas.
func GetImageD ¶
GetImageD returns the data's value as a pointer to image.Image. If the value can't be retrieved, defval will be returned.
func GetInt ¶
GetInt returns a pointer to the data's value as an int32. returns nil if the value is not a valid int32.
func GetIntConvert ¶
GetIntConvert returns a pointer to the data's value as an int32. If the data's value is a string, it will convert the string to int32. returns nil if the value is not a valid int32.
func GetIntConvertD ¶
GetIntConvertD returns the data's value as an int32. If the data's value is a string, it will convert the string to int32. If the value can't be retrieved, defval will be returned.
func GetIntD ¶
GetIntD returns the data's value as an int32. If the value can't be retrieved, defval will be returned.
func GetPoint ¶
GetPoint returns a pointer to the data's value as an image.Point. returns nil if the value is not a valid image.Point.
func GetPointD ¶
GetPointD returns the data's value as an image.Point. If the value can't be retrieved, defval will be returned.
func GetString ¶
GetString returns a pointer to the data's value as a string. returns nil if the value is not a valid string.
func GetStringD ¶
GetStringD returns the data's value as a string. If the value can't be retrieved, defval will be returned.
Types ¶
type DirectoryEntry ¶
type DirectoryEntry struct { *Entry // contains filtered or unexported fields }
A DirectoryEntry holds the information for a wz directory
func EmptyDirectoryEntry ¶
func EmptyDirectoryEntry() *DirectoryEntry
EmptyDirectoryEntry initializes a zeroed wz directory entry object
func NewDirectoryEntry ¶
func NewDirectoryEntry(name string, size, checksum int, parent MapleDataEntry) *DirectoryEntry
NewDirectoryEntry initializes a wz directory entry with the given data
func (*DirectoryEntry) AddDirectory ¶
func (e *DirectoryEntry) AddDirectory(dir MapleDataDirectoryEntry)
AddDirectory adds a wz subdirectory to the wz directory
func (*DirectoryEntry) AddFile ¶
func (e *DirectoryEntry) AddFile(file MapleDataFileEntry)
AddFile adds a file to the wz directory
func (*DirectoryEntry) Files ¶
func (e *DirectoryEntry) Files() []MapleDataFileEntry
Files returns a slice of the wz files inside the wz directory
func (*DirectoryEntry) GetEntry ¶
func (e *DirectoryEntry) GetEntry(name string) MapleDataEntry
GetEntry returns the wz entry inside this folder that matches the given name
func (*DirectoryEntry) Subdirectories ¶
func (e *DirectoryEntry) Subdirectories() []MapleDataDirectoryEntry
Subdirectories returns a slice of the wz subdirectories inside the wz directory
type Entry ¶
type Entry struct {
// contains filtered or unexported fields
}
An Entry is a generic wz entry and holds data common to all types of wz entries
func NewEntry ¶
func NewEntry(ename string, esize, echecksum int, eparent MapleDataEntity, ) *Entry
NewEntry initializes a generic wz entry object NOTE: esize and echecksum are not used in wx xml reading and can be left zeroed
func (*Entry) Parent ¶
func (e *Entry) Parent() MapleDataEntity
type FileEntry ¶
type FileEntry struct { *Entry // contains filtered or unexported fields }
A FileEntry holds the information for a wz file entry
func NewFileEntry ¶
func NewFileEntry(name string, size, checksum int, parent MapleDataEntity, ) *FileEntry
NewFileEntry initializes a new wz file entry object NOTE: size and checksum are not used in wz xml parsing and can be left zeroed
type FileStoredPngMapleCanvas ¶
type FileStoredPngMapleCanvas struct {
// contains filtered or unexported fields
}
A FileStoredPngMapleCanvas is a wrapper around image.Image that holds info about a png image extracted from a wz file
func NewFileStoredPngMapleCanvas ¶
func NewFileStoredPngMapleCanvas(w, h int, path string, ) *FileStoredPngMapleCanvas
NewFileStoredPngMapleCanvas initializes a new FileStoredPngMapleCanvas object with the given file path and size
func (*FileStoredPngMapleCanvas) Height ¶
func (f *FileStoredPngMapleCanvas) Height() int
func (*FileStoredPngMapleCanvas) Image ¶
func (f *FileStoredPngMapleCanvas) Image() *image.Image
func (*FileStoredPngMapleCanvas) Width ¶
func (f *FileStoredPngMapleCanvas) Width() int
type MapleCanvas ¶
type MapleCanvas interface { Height() int Width() int Image() *image.Image // contains filtered or unexported methods }
A MapleCanvas is a generic interface for png files extracted from wz files
type MapleData ¶
type MapleData interface { Name() string Parent() MapleDataEntity Type() MapleDataType Children() []MapleData ChildByPath(path string) MapleData Get() interface{} }
A MapleData is a generic interface for a wz file entry with a retrievable value
type MapleDataDirectoryEntry ¶
type MapleDataDirectoryEntry interface { Name() string Parent() MapleDataEntity Size() int Checksum() int Offset() int Subdirectories() []MapleDataDirectoryEntry Files() []MapleDataFileEntry GetEntry(name string) MapleDataEntry }
A MapleDataDirectoryEntry is a generic interface for wz directories
type MapleDataEntity ¶
type MapleDataEntity interface { Name() string Parent() MapleDataEntity }
A MapleDataEntity is a generic interface for wz entries nodes
type MapleDataEntry ¶
type MapleDataEntry interface { Name() string Parent() MapleDataEntity Size() int Checksum() int Offset() int }
A MapleDataEntry is a generic interface for a wz directory's child entry
type MapleDataFileEntry ¶
type MapleDataFileEntry interface { Name() string Parent() MapleDataEntity Size() int Checksum() int Offset() int SetOffset(offset int) }
A MapleDataFileEntry is a generic interface for wz file entries
type MapleDataProvider ¶
type MapleDataProvider interface { Get(path string) (MapleData, error) Root() MapleDataDirectoryEntry }
A MapleDataProvider is a generic interface for an object that parses or provides wz data
func NewMapleDataProvider ¶
func NewMapleDataProvider(path string) (res MapleDataProvider, err error)
NewMapleDataProvider analyzes the given path and provides the appropriate MapleDataProvider for the format if supported. If the format is not supported it will return nil. At the moment, only wz xml files are supported.
type MapleDataType ¶
type MapleDataType int
A MapleDataType is an integer that describes the datatype of a wz entry
const ( NONE MapleDataType = iota IMG_0x00 SHORT INT FLOAT DOUBLE STRING EXTENDED PROPERTY CANVAS VECTOR CONVEX SOUND UOL UNKNOWN_TYPE UNKNOWN_EXTENDED_TYPE INVALID )
Possible values for MapleDataType
type XMLDomMapleData ¶
type XMLDomMapleData struct {
// contains filtered or unexported fields
}
A XMLDomMapleData is a wrapper around xmlx.Node and holds the data for a parsed wz xml file's node and provides access to all of its children
func NewXMLDomMapleData ¶
func NewXMLDomMapleData(file *os.File, path string) ( res *XMLDomMapleData, err error)
NewXMLDomMapleData parses the given xml file into a tree and returns the first node
func (*XMLDomMapleData) ChildByPath ¶
func (x *XMLDomMapleData) ChildByPath(path string) MapleData
ChildByPath finds and returns a value by xmlpath relative to the wz xml file
func (*XMLDomMapleData) Children ¶
func (x *XMLDomMapleData) Children() []MapleData
Children returns the children entries of this node
func (*XMLDomMapleData) Get ¶
func (x *XMLDomMapleData) Get() interface{}
Get returns the value of this node as an interface. If the value is invalid or absent, the return value is nil. All the possible types returned by Get are float64, float32, int32, int16, string, image.Point and FileStoredPngMapleCanvas.
func (*XMLDomMapleData) Name ¶
func (x *XMLDomMapleData) Name() string
Name returns the name of the wz xml entry
func (*XMLDomMapleData) Parent ¶
func (x *XMLDomMapleData) Parent() MapleDataEntity
Parent returns the parent node of this wz xml entry
func (*XMLDomMapleData) Type ¶
func (x *XMLDomMapleData) Type() MapleDataType
Type returns the maple data type of this node. See MapleDataType for more information.
type Xml ¶
type Xml struct {
// contains filtered or unexported fields
}
wz.Xml provides access to the data in a wz xml directory tree
func NewXml ¶
NewXml walks the given root directory and creates a new wx.Xml object that will provide access to the wz xml data
func (*Xml) Root ¶
func (x *Xml) Root() MapleDataDirectoryEntry
Root returns the root directory entry of the xml file