from direct.showbase.EventGroup import EventGroup

This module defines the EventGroup class.

Inheritance diagram

Inheritance diagram of direct.showbase.EventGroup

class EventGroup(name, subEvents=None, doneEvent=None)[source]

Bases: DirectObject

This class allows you to group together multiple events and treat them as a single event. The EventGroup will not send out its event until all of its sub-events have occured.

__init__(self, name, subEvents=None, doneEvent=None)[source]

Provide a meaningful name to aid debugging.

doneEvent is optional. If not provided, a unique done event will be generated and is available as EventGroup.getDoneEvent().


# waits for gotRed and gotBlue, then sends out ‘gotColors’ EventGroup(‘getRedAndBlue’, (‘gotRed’, ‘gotBlue’), doneEvent=’gotColors’)

# waits for two interests to close, then calls self._handleBothInterestsClosed() # uses EventGroup.getDoneEvent() and EventGroup.newEvent() to generate unique, # disposable event names eGroup = EventGroup(‘closeInterests’) self.acceptOnce(eGroup.getDoneEvent(), self._handleBothInterestsClosed), event=eGroup.newEvent(‘closeInterest1’)), event=eGroup.newEvent(‘closeInterest2’))

addEvent(self, eventName)[source]

Adds a new event to the list of sub-events that we’re waiting on. Returns the name of the event.

newEvent(self, name)[source]

Pass in an event name and it will be unique-ified for you and added to this EventGroup. TIP: there’s no need to repeat information in this event name that is already in the name of the EventGroup object. Returns the new event name.