LauncherGoDev/sysgo/UI/icon_pool.go
2018-12-05 02:47:04 +08:00

61 lines
1.0 KiB
Go

package UI
import (
"fmt"
"io/ioutil"
"log"
"strings"
"github.com/veandco/go-sdl2/sdl"
"github.com/cuu/gogame/image"
)
type IconPool struct {
GameShellIconPath string
Icons map[string]*sdl.Surface
}
func NewIconPool() *IconPool {
i := &IconPool{}
i.GameShellIconPath = SkinMap("sysgo/gameshell/icons/")
i.Icons = make( map[string]*sdl.Surface )
return i
}
func (self *IconPool) Init() {
files,err := ioutil.ReadDir(self.GameShellIconPath)
if err != nil {
log.Fatal(err)
return
}
for _,f := range files {
if f.IsDir() {
//pass
}else {
if strings.HasSuffix(f.Name(),".png") == true {
keyname := strings.Split(f.Name(),".")
if len(keyname) > 1 {
self.Icons[ keyname[0] ] = image.Load( self.GameShellIconPath+ "/"+f.Name() )
}
}
}
}
}
func (self *IconPool) GetImgSurf(keyname string) *sdl.Surface {
if _,ok := self.Icons[keyname]; ok {
return self.Icons[keyname]
} else {
fmt.Println("IconPool GetImgSurf ", keyname, " failed")
return nil
}
}
var MyIconPool *IconPool
// = NewIconPool()