Finally i’ve got the answer of my own question.
First, don’t try my late solution, changing base._messengerId=(‘ShowBase’,‘unique_id’) will result many flaws, sometimes it works perfectly but in other case it may got jammed.
After reading this thread:
[url]Panda's event handling...]
i’ve got these conclusions:
-
DirectObject need to be created for creating an unique messenger acceptation (i’ve never use it before though, and don’t understand why it should be there, besides the implementation looks odd)
-
The only purpose to reassign the DirectObject in each class i’ve found so far is just to create an unique id of each messenger accept… what a waste.
-
messenger is one of the best and the most usefull function in panda, it allows developer to communicate each object without passing variables to each other. Thus i really really recommend this one to be perfected.
-
if it only about the id then why not find another workaround, there are many ways to do the uniqueness, maybe like this:
base.accept(‘key’,unique_id=None)
if unique_id is not present then the old dictionary will be replaced,
while if different unique_id assigned then it will create a new acceptation list. -
and i recommend using just the base, one for all, all for all, why not, besides it will simplify user’s logic anyway.