def event(ev): """ Processes an event and returns the same event, a new event, or None if the event has been processed and should be ignored. """ if ev.type == CONTROLLERDEVICEADDED: start(ev.which) return None elif ev.type == CONTROLLERDEVICEREMOVED: quit(ev.which) return None elif ev.type == CONTROLLERAXISMOTION: if ev.value > THRESHOLD: pos = "pos" elif ev.value < -THRESHOLD: pos = "neg" else: pos = None old_pos = axis_positions.get((ev.which, ev.axis), None) if pos == old_pos: return None axis_positions[(ev.which, ev.axis)] = pos if pos is None: return None name = "pad_{}_{}".format(get_string_for_axis(ev.axis), pos) ev = make_event(name) elif ev.type in (CONTROLLERBUTTONDOWN, CONTROLLERBUTTONUP): if ev.type == CONTROLLERBUTTONDOWN: pr = "press" else: pr = "release" name = "pad_{}_{}".format(get_string_for_button(ev.button), pr) ev = make_event(name) elif ev.type in ( pygame.JOYAXISMOTION, pygame.JOYHATMOTION, pygame.JOYBALLMOTION, pygame.JOYBUTTONDOWN, pygame.JOYBUTTONUP, pygame.JOYDEVICEADDED, pygame.JOYDEVICEREMOVED, ): if not renpy.config.pass_joystick_events: return None return ev
def event(ev): """ Processes an event and returns the same event, a new event, or None if the event has been processed and should be ignored. """ if ev.type == CONTROLLERDEVICEADDED: if ev.which not in controllers: controllers[ev.which] = c = Controller(ev.which) c.init() return None elif ev.type == CONTROLLERDEVICEREMOVED: if ev.which in controllers: c = controllers.pop(ev.which) c.quit() return None elif ev.type == CONTROLLERAXISMOTION: if ev.value > THRESHOLD: pos = "pos" elif ev.value < -THRESHOLD: pos = "neg" else: pos = None old_pos = axis_positions.get((ev.which, ev.axis), None) if pos == old_pos: return None axis_positions[(ev.which, ev.axis)] = pos if pos is None: return None name = "pad_{}_{}".format(get_string_for_axis(ev.axis), pos) ev = make_event(name) elif ev.type in (CONTROLLERBUTTONDOWN, CONTROLLERBUTTONUP): if ev.type == CONTROLLERBUTTONDOWN: pr = "press" else: pr = "release" name = "pad_{}_{}".format(get_string_for_button(ev.button), pr) ev = make_event(name) return ev