097d16fab92b492837f3ecfc8137a23fcb01a3b6
1 from direct
.gui
.DirectFrame
import DirectFrame
2 from ya2
.gameobject
import GuiColleague
, LogicColleague
, GameObject
, \
4 from ya2
.lib
.p3d
.pause
import P3dPause
8 class PauseGui(GuiColleague
):
10 def __init__(self
, mediator
):
11 GuiColleague
.__init
__(self
, mediator
)
14 def toggle(self
, show_frm
=True):
15 if not self
.mediator
.logic
._pause
.paused
:
16 #TODO: don't access protected members
18 self
.pause_frm
= DirectFrame(frameColor
=(.3, .3, .3, .7),
19 frameSize
=(-1.8, 1.8, -1, 1))
21 if self
.pause_frm
: self
.pause_frm
.destroy()
24 if self
.pause_frm
: self
.pause_frm
= self
.pause_frm
.destroy()
25 GuiColleague
.destroy(self
)
28 class PauseLogic(LogicColleague
):
30 def __init__(self
, mediator
):
31 LogicColleague
.__init
__(self
, mediator
)
32 self
._pause
= LibPause()
34 def remove_task(self
, tsk
):
35 self
._pause
.remove_task(tsk
)
38 self
.notify('on_pause')
39 return self
._pause
.pause()
42 self
.notify('on_resume')
43 return self
._pause
.resume()
45 def toggle(self
, show_frm
=True):
46 self
.mediator
.gui
.toggle(show_frm
)
47 (self
.resume
if self
._pause
.paused
else self
.pause
)()
51 LogicColleague
.destroy(self
)
58 return self
.logic
._pause
.paused
59 #TODO: don't access protected members
62 class PauseMgr(GameObject
, Colleague
, PauseFacade
):
64 def __init__(self
, mediator
):
65 GameObject
.__init
__(self
)
66 Colleague
.__init
__(self
, mediator
)
67 self
.gui
= PauseGui(self
)
68 self
.logic
= PauseLogic(self
)
70 def remove_task(self
, tsk
):
71 return self
.logic
.remove_task(tsk
)
74 self
.gui
= self
.gui
.destroy()
75 self
.logic
= self
.logic
.destroy()
76 GameObject
.destroy(self
)
77 Colleague
.destroy(self
)