__init__.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. import validators
  4. from UI.constants import Width,Height,ICON_TYPES,RUNEVT
  5. #from UI.simple_name_space import SimpleNamespace
  6. from UI.page import Page
  7. from UI.label import Label
  8. from UI.fonts import fonts
  9. from UI.icon_item import IconItem
  10. from UI.icon_pool import MyIconPool
  11. from UI.keys_def import CurKeys
  12. from UI.skin_manager import MySkinManager
  13. from UI.lang_manager import MyLangManager
  14. from UI.text_bulletinboard import Textbulletinboard,Text
  15. from UI.util_funcs import FileExists
  16. class NOPICOPage(Page):
  17. _FootMsg = ["Nav","","","Back",""]
  18. def Init(self):
  19. self._PosX = self._Index*self._Screen._Width
  20. self._Width = self._Screen._Width
  21. self._Height = self._Screen._Height
  22. self._CanvasHWND = self._Screen._CanvasHWND
  23. self._Board = Textbulletinboard()
  24. self._Board._PosX = 4
  25. self._Board._PosY = 20
  26. self._Board._Width= self._Width - 4*2
  27. self._Board._Height = 100
  28. self._Board._CanvasHWND = self._CanvasHWND
  29. self._Board.Init()
  30. a = Text("Please Go to \n",None,MyLangManager.TrFont("varela14"),True)
  31. b = Text("https://www.lexaloffle.com/pico-8.php",MySkinManager.GiveColor("URL"),None,True,True)
  32. c = Text("buy a pico-8 raspi and put zip into \n/home/cpi/games/PICO-8")
  33. d = a.Words()+b.Words()+c.Words()
  34. self._Board.SetAndBlitText(d)
  35. def KeyDown(self,event):
  36. if event.key == CurKeys["A"] or event.key == CurKeys["Menu"]:
  37. self.ReturnToUpLevelPage()
  38. self._Screen.Draw()
  39. self._Screen.SwapAndShow()
  40. return
  41. def Draw(self):
  42. self.ClearCanvas()
  43. self._Board.Draw()
  44. class PICO8ZipHashErrPage(Page):
  45. _FootMsg = ["Nav","","","Cancel","Continue"]
  46. def Init(self):
  47. self._PosX = self._Index*self._Screen._Width
  48. self._Width = self._Screen._Width
  49. self._Height = self._Screen._Height
  50. self._CanvasHWND = self._Screen._CanvasHWND
  51. self._Board = Textbulletinboard()
  52. self._Board._PosX = 4
  53. self._Board._PosY = self._Height/2 - 35
  54. self._Board._Width= self._Width - 4*2
  55. self._Board._Height = 100
  56. self._Board._CanvasHWND = self._CanvasHWND
  57. self._Board._Align = "Center"
  58. self._Board.Init()
  59. a = Text("Md5sum check error\n",None,MyLangManager.TrFont("varela24"))
  60. b = Text("continue anyway?\n",None,MyLangManager.TrFont("varela24"))
  61. self._Board.SetAndBlitText(a.Words()+b.Words())
  62. def KeyDown(self,event):
  63. if event.key == CurKeys["A"] or event.key == CurKeys["Menu"]:
  64. self.ReturnToUpLevelPage()
  65. self._Screen.Draw()
  66. self._Screen.SwapAndShow()
  67. return
  68. def Draw(self):
  69. self.ClearCanvas()
  70. self._Board.Draw()
  71. class APIOBJ(object):
  72. _Page = None
  73. _pico8 ="/home/cpi/games/PICO-8/pico-8"
  74. def __init__(self):
  75. pass
  76. def CheckPico8(self):
  77. if FileExists(self._pico8):
  78. return True
  79. def Init(self,main_screen):
  80. self._NOPicoPage = NOPICOPage()
  81. self._NOPicoPage._Name = "Not Found"
  82. self._NOPicoPage._Screen = main_screen
  83. self._NOPicoPage.Init()
  84. self._HashErrPage = PICO8ZipHashErrPage()
  85. self._HashErrPage._Name = "Md5sum check failed"
  86. self._HashErrPage._Screen = main_screen
  87. self._HashErrPage.Init()
  88. def API(self,main_screen):
  89. if main_screen !=None:
  90. if self.CheckPico8() == False:
  91. main_screen._MsgBox.SetText("Starting pico-8")
  92. main_screen._MsgBox.Draw()
  93. main_screen.SwapAndShow()
  94. pygame.time.delay(300)
  95. cmdpath = "/home/cpi/games/PICO-8/PICO-8.sh"
  96. pygame.event.post( pygame.event.Event(RUNEVT, message=cmdpath))
  97. else:
  98. main_screen.PushPage(self._NOPicoPage)
  99. #main_screen.PushPage(self._HashErrPage)
  100. main_screen.Draw()
  101. main_screen.SwapAndShow()
  102. OBJ = APIOBJ()
  103. def Init(main_screen):
  104. OBJ.Init(main_screen)
  105. def API(main_screen):
  106. OBJ.API(main_screen)