open_toontown_panda3d/samples/networking/03-distributed-node/AIDGameObject.py

30 lines
1.2 KiB
Python

from direct.distributed.DistributedObject import DistributedObject
class AIDGameObject(DistributedObject):
""" This class is a DirectObject which will be created and managed by the
AI Repository. """
def __init__(self, cr):
DistributedObject.__init__(self, cr)
def announceGenerate(self):
""" The AI has created this object, so we send it's distributed object ID
over to the client. That way the client can actually grab the object
and use it to communicate with the AI. Alternatively store it in the
Client Repository in self.cr """
base.messenger.send(self.cr.uniqueName('AIDGameObjectGenerated'), [self.doId])
# call the base class method
DistributedObject.announceGenerate(self)
def d_requestDataFromAI(self):
""" Request some data from the AI and passing it some data from us. """
data = ("Some Data", 1, -1.25)
print("Sending game data:", data)
self.sendUpdate('messageRoundtripToAI', [data])
def messageRoundtripToClient(self, data):
""" Here we expect the answer from the AI from a previous
messageRoundtripToAI call """
print("Got Data:", data)
print("Roundtrip message complete")