start to clone warehouse

This commit is contained in:
cuu
2021-10-20 01:34:36 +08:00
parent 21ae3d9358
commit 23b2f6caf8
12 changed files with 1102 additions and 3 deletions

View File

@@ -38,6 +38,7 @@ func (self *IconPool) Init() {
keyname := strings.Split(f.Name(), ".")
if len(keyname) > 1 {
self.Icons[keyname[0]] = image.Load(self.GameShellIconPath + "/" + f.Name())
}
}
}
@@ -48,8 +49,32 @@ 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
icon_file := self.GameShellIconPath+"/"+keyname+".png"
if IsAFile(icon_file) {
self.Icons[keyname] = image.Load(icon_file)
return self.Icons[keyname]
}else {
fmt.Println("IconPool GetImgSurf ", keyname, " failed")
return nil
}
}
}
func (self *IconPool) Width(keyname string) int {
if _,ok := self.Icons[keyname]; ok {
return int(self.Icons[keyname].W)
}else {
fmt.Println("IconPool lookup ", keyname, " failed")
return 0
}
}
func (self *IconPool) Height(keyname string) int {
if _,ok := self.Icons[keyname]; ok {
return int(self.Icons[keyname].W)
}else {
fmt.Println("IconPool lookup ", keyname, " failed")
return 0
}
}

View File

@@ -65,3 +65,11 @@ func keys_def_init() {
CurKeys = PC
}
}
func IsKeyStartOrA(key string) bool {
return key == CurKeys["Start"] || key == CurKeys["A"]
}
func IsKeyMenuOrB(key string) bool {
return key == CurKeys["Menu"] || key == CurKeys["B"]
}

View File

@@ -177,7 +177,8 @@ type PageInterface interface {
SetIconIndex(idx int)
GetIconIndex() int
RefreshPsIndex()
Coord() (int, int)
NewCoord(x, y int)
Size() (int, int)
@@ -959,6 +960,15 @@ func (self *Page) GetPsIndex() int {
return self.PsIndex
}
func (self *Page) RefreshPsIndex() {
if len(self.MyList) == 0 {
self.SetPsIndex(0)
}
if self.GetPsIndex() > len(self.MyList) -1 {
self.SetPsIndex( len(self.MyList) - 1)
}
}
func (self *Page) SetIconIndex(idx int) {
self.IconIndex = idx
}

View File

@@ -292,3 +292,60 @@ func ExecCmd(cmdArgs []string) ([]byte, error) {
}
return out, err
}
func CopyFile(src, dst string) (err error) {
sfi, err := os.Stat(src)
if err != nil {
return
}
if !sfi.Mode().IsRegular() {
// cannot copy non-regular files (e.g., directories,
// symlinks, devices, etc.)
return fmt.Errorf("CopyFile: non-regular source file %s (%q)", sfi.Name(), sfi.Mode().String())
}
dfi, err := os.Stat(dst)
if err != nil {
if !os.IsNotExist(err) {
return
}
} else {
if !(dfi.Mode().IsRegular()) {
return fmt.Errorf("CopyFile: non-regular destination file %s (%q)", dfi.Name(), dfi.Mode().String())
}
if os.SameFile(sfi, dfi) {
return
}
}
if err = os.Link(src, dst); err == nil {
return
}
err = copyFileContents(src, dst)
return
}
// copyFileContents copies the contents of the file named src to the file named
// by dst. The file will be created if it does not already exist. If the
// destination file exists, all it's contents will be replaced by the contents
// of the source file.
func copyFileContents(src, dst string) (err error) {
in, err := os.Open(src)
if err != nil {
return
}
defer in.Close()
out, err := os.Create(dst)
if err != nil {
return
}
defer func() {
cerr := out.Close()
if err == nil {
err = cerr
}
}()
if _, err = io.Copy(out, in); err != nil {
return
}
err = out.Sync()
return
}

View File

@@ -0,0 +1,63 @@
package UI
import (
//"fmt"
//"os"
//"path/filepath"
//"strings"
"github.com/cuu/gogame/event"
//"github.com/cuu/gogame/time"
)
type Func func()
type YesCancelConfirmPage struct {
ConfirmPage
StartOrAEvent Func
KeyXEvent Func
KeyYEvent Func
}
func NewYesCancelConfirmPage() *YesCancelConfirmPage {
p := &YesCancelConfirmPage{}
p.FootMsg = [5]string{"Nav","","","Cancel","Yes"}
p.ConfirmText = MyLangManager.Tr("Awaiting Input")
p.StartOrAEvent = nil
p.KeyXEvent = nil
p.KeyYEvent = nil
return p
}
func (self *YesCancelConfirmPage) KeyDown(ev *event.Event) {
if UI.IsKeyMenuOrB(ev.Data["Key"]) {
self.ReturnToUpLevelPage()
self.Screen.Draw()
self.Screen.SwapAndShow()
}
if UI.IsKeyStartOrA(ev.Data["Key"]) {
if self.StartOrAEvent != nil {
self.StartOrAEvent()
self.ReturnToUpLevelPage()
}
}
if ev.Data["Key"] == CurKeys["X"] {
if self.KeyXEvent != nil {
self.KeyXEvent()
self.ReturnToUpLevelPage()
}
}
if ev.Data["Key"] == CurKeys["Y"] {
if self.KeyYEvent != nil {
self.KeyYEvent()
self.ReturnToUpLevelPage()
}
}
}