Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Public Attributes | Static Public Attributes

# DistributedObjectAI Class Reference

Inheritance diagram for DistributedObjectAI:

List of all members.

## Public Member Functions
def | __init__
def | addInterest
def | announceGenerate
def | b_setLocation
def | beginBarrier
def | d_setLocation
def | delete
def | deleteOrDelay
def | execCommand
def | generate
def | generateInit
def | generateOtpObject
def | generateTargetChannel
def | generateWithRequired
def | generateWithRequiredAndId
def | GetAccountConnectionChannel
def | GetAccountIDFromChannelCode
def | GetAvatarIDFromChannelCode
def | getBarrierData
def | getCacheable
def | getCollTrav
def | getDelayDeleteCount
def | getDeleteEvent
def | getDoId
def | getLocation
def | getLogicalZoneChangeEvent
def | getNonCollidableParent
def | getParentMgr
def | GetPuppetConnectionChannel
def | getRender
def | getZoneChangeEvent
def | getZoneData
def | handleLogicalZoneChange
def | ignoreBarrier
def | initFromServerResponse
def | isDeleted
def | isGenerated
def | isGridParent
def | postGenerateMessage
def | preAllocateDoId
def | releaseZoneData
def | requestDelete
def | sendDeleteEvent
def | sendGenerateWithRequired
def | sendMessageBundle
def | sendSetZone
def | sendUpdate
def | sendUpdateToAccountId
def | sendUpdateToAvatarId
def | sendUpdateToChannel
def | setBarrierReady
def | setLocation
def | startMessageBundle
def | staticGetLogicalZoneChangeEvent
def | staticGetZoneChangeEvent
def | status
def | taskName
def | uniqueName
def | updateAllRequiredFields
def | updateAllRequiredOtherFields
def | updateRequiredFields
def | updateRequiredOtherFields
def | validate
## Public Attributes
| accountName
| air
| Asad: As per Roger's suggestion, turn off the following block until a solution is thought out of how to prevent this delete message or to handle this message better TODO: do we still need this check?
| dclass
| DistributedObjectAI_initialized
| doId
| lastNonQuietZone
| parentId
| zoneId
## Static Public Attributes
tuple | notify = directNotify.newCategory("DistributedObjectAI")
int | QuietZone = 1

## Constructor & Destructor Documentation

def __init__ | ( |  | self,
|  |  | air
| ) |  |

Reimplemented in TimeManagerAI.

## Member Function Documentation

def addInterest | ( |  | self,
|  |  | zoneId,
|  |  | note = `""`,
|  |  | event = `None`
| ) |  |

def announceGenerate | ( |  | self | ) |

    Called after the object has been generated and all
    of its required fields filled in. Overwrite when needed.

def b_setLocation | ( |  | self,
|  |  | parentId,
|  |  | zoneId
| ) |  |

def beginBarrier | ( |  | self,
|  |  | name,
|  |  | avIds,
|  |  | timeout,
|  |  | callback
| ) |  |

def d_setLocation | ( |  | self,
|  |  | parentId,
|  |  | zoneId
| ) |  |

def delete | ( |  | self | ) |

    Inheritors should redefine this to take appropriate action on delete
    Note that this may be called multiple times if a class inherits
    from DistributedObjectAI more than once.

Reimplemented in DistributedNodeAI, and DistributedSmoothNodeAI.

def deleteOrDelay | ( |  | self | ) |

    This method exists only to mirror the similar method on
    DistributedObject.  AI objects don't have delayDelete, they
    just get deleted immediately.

def execCommand | ( |  | self,
|  |  | string,
|  |  | mwMgrId,
|  |  | avId,
|  |  | zoneId
| ) |  |

def generate | ( |  | self | ) |

    Inheritors should put functions that require self.zoneId or
    other networked info in this function.

Reimplemented in DistributedSmoothNodeAI.

def generateInit | ( |  | self,
|  |  | repository = `None`
| ) |  |

    First generate (not from cache).

def generateOtpObject | ( |  | self,
|  |  | parentId,
|  |  | zoneId,
|  |  | optionalFields = `[]`,
|  |  | doId = `None`
| ) |  |

def generateTargetChannel | ( |  | self,
|  |  | repository
| ) |  |

    Who to send this to for generate messages

def generateWithRequired | ( |  | self,
|  |  | zoneId,
|  |  | optionalFields = `[]`
| ) |  |

def generateWithRequiredAndId | ( |  | self,
|  |  | doId,
|  |  | parentId,
|  |  | zoneId,
|  |  | optionalFields = `[]`
| ) |  |

def GetAccountConnectionChannel | ( |  | self,
|  |  | doId
| ) |  |

def GetAccountIDFromChannelCode | ( |  | self,
|  |  | channel
| ) |  |

def GetAvatarIDFromChannelCode | ( |  | self,
|  |  | channel
| ) |  |

def getBarrierData | ( |  | self | ) |

def getCacheable | ( |  | self | ) |

    This method exists only to mirror the similar method on
    DistributedObject.  AI objects aren't cacheable.

def getCollTrav | ( |  | self,
|  |  | args,
|  |  | kArgs
| ) |  |

def getDelayDeleteCount | ( |  | self | ) |

def getDeleteEvent | ( |  | self | ) |

def getDoId | ( |  | self | ) |

    Return the distributed object id

def getLocation | ( |  | self | ) |

def getLogicalZoneChangeEvent | ( |  | self | ) |

def getNonCollidableParent | ( |  | self | ) |

def getParentMgr | ( |  | self | ) |

def GetPuppetConnectionChannel | ( |  | self,
|  |  | doId
| ) |  |

def getRender | ( |  | self | ) |

def getZoneChangeEvent | ( |  | self | ) |

def getZoneData | ( |  | self | ) |

def handleLogicalZoneChange | ( |  | self,
|  |  | newZoneId,
|  |  | oldZoneId
| ) |  |

    this function gets called as if we never go through the
    quiet zone. Note that it is called once you reach the newZone,
    and not at the time that you leave the oldZone.

def ignoreBarrier | ( |  | self,
|  |  | context
| ) |  |

def initFromServerResponse | ( |  | self,
|  |  | valDict
| ) |  |

def isDeleted | ( |  | self | ) |

    Returns true if the object has been deleted,
    or if it is brand new and hasnt yet been generated.

def isGenerated | ( |  | self | ) |

    Returns true if the object has been generated

def isGridParent | ( |  | self | ) |

def postGenerateMessage | ( |  | self | ) |

def preAllocateDoId | ( |  | self | ) |

    objects that need to have a doId before they are generated
    can call this to pre-allocate a doId for the object

def releaseZoneData | ( |  | self | ) |

def requestDelete | ( |  | self | ) |

def sendDeleteEvent | ( |  | self | ) |

def sendGenerateWithRequired | ( |  | self,
|  |  | repository,
|  |  | parentId,
|  |  | zoneId,
|  |  | optionalFields = `[]`
| ) |  |

def sendMessageBundle | ( |  | self | ) |

def sendSetZone | ( |  | self,
|  |  | zoneId
| ) |  |

def sendUpdate | ( |  | self,
|  |  | fieldName,
|  |  | args = `[]`
| ) |  |

def sendUpdateToAccountId | ( |  | self,
|  |  | accountId,
|  |  | fieldName,
|  |  | args
| ) |  |

def sendUpdateToAvatarId | ( |  | self,
|  |  | avId,
|  |  | fieldName,
|  |  | args
| ) |  |

def sendUpdateToChannel | ( |  | self,
|  |  | channelId,
|  |  | fieldName,
|  |  | args
| ) |  |

def setBarrierReady | ( |  | self,
|  |  | context
| ) |  |

def setLocation | ( |  | self,
|  |  | parentId,
|  |  | zoneId
| ) |  |

def startMessageBundle | ( |  | self,
|  |  | name
| ) |  |

def staticGetLogicalZoneChangeEvent | ( |  | doId | ) |

def staticGetZoneChangeEvent | ( |  | doId | ) |

def status | ( |  | self,
|  |  | indent = `0`
| ) |  |

    print out doId(parentId, zoneId) className
        and conditionally show generated, disabled, neverDisable,
        or cachable

def taskName | ( |  | self,
|  |  | taskString
| ) |  |

def uniqueName | ( |  | self,
|  |  | idString
| ) |  |

def updateAllRequiredFields | ( |  | self,
|  |  | dclass,
|  |  | di
| ) |  |

def updateAllRequiredOtherFields | ( |  | self,
|  |  | dclass,
|  |  | di
| ) |  |

def updateRequiredFields | ( |  | self,
|  |  | dclass,
|  |  | di
| ) |  |

def updateRequiredOtherFields | ( |  | self,
|  |  | dclass,
|  |  | di
| ) |  |

def validate | ( |  | self,
|  |  | avId,
|  |  | bool,
|  |  | msg
| ) |  |

## Member Data Documentation

accountName

air

Asad: As per Roger's suggestion, turn off the following block until a solution is thought out of how to prevent this delete message or to handle this message better TODO: do we still need this check?

dclass

DistributedObjectAI_initialized

doId

lastNonQuietZone

tuple notify = directNotify.newCategory("DistributedObjectAI")`[static]`

Reimplemented in TimeManagerAI.

parentId

int QuietZone = 1`[static]`

zoneId

All Classes Namespaces Functions Variables Enumerations Enumerator Properties