2 from logging
import info
3 from lib
.gameobject
import EventColleague
4 from lib
.engine
.joystick
import JoystickMgr
7 class EngineEvent(EventColleague
):
9 def __init__(self
, mediator
, emulate_keyboard
, functional_test
):
10 EventColleague
.__init
__(self
, mediator
)
11 self
.unpaused_time
= 0
12 self
._prev
_time
= time()
13 self
.eng
.add_task(self
.__on
_frame
)
14 taskMgr
.setupTaskChain('unpausable')
15 mth
= self
.__on
_frame
_unpausable
16 taskMgr
.add(mth
, 'unpausable', taskChain
='unpausable')
17 self
.joystick_mgr
= JoystickMgr(emulate_keyboard
, functional_test
)
19 def __on_frame(self
, task
): # unused task
20 self
.notify('on_start_frame')
21 self
.notify('on_frame')
22 self
.notify('on_end_frame')
23 return self
.eng
.lib
.task_cont
25 def __on_frame_unpausable(self
, task
):
26 self
.unpaused_time
+= time() - self
._prev
_time
27 self
._prev
_time
= time()
29 self
.notify('on_frame_unpausable')
31 except AttributeError: info("engine has been destroyed")
35 if not keystr
.startswith('raw-'): return keystr
37 kmap
= base
.win
.get_keyboard_map()
38 virt_key
= kmap
.get_mapped_button(keystr
)
39 return (kmap
.get_mapped_button_label(keystr
) or str(virt_key
)).lower()
43 kmap
= base
.win
.get_keyboard_map()
44 for i
in range(kmap
.get_num_buttons()):
45 if kmap
.get_mapped_button_label(i
).lower() == desc
:
46 return str(kmap
.get_mapped_button(i
))
50 self
.joystick_mgr
.destroy()
51 EventColleague
.destroy(self
)