Panda3D

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
DistributedCartesianGridAI Class Reference
Inheritance diagram for DistributedCartesianGridAI:

## Public Member Functions
| __init__ (self, air, startingZone, gridSize, gridRadius, cellWidth, style="Cartesian")
| addObjectToGrid (self, av, useZoneId=-1, startAutoUpdate=True)
| delete (self)
| getCellWidth (self)
| getParentingRules (self)
| handleAvatarZoneChange (self, av, useZoneId=-1)
| handleSetLocation (self, av, parentId, zoneId)
| isGridParent (self)
| removeObjectFromGrid (self, av)
| startUpdateGridTask (self)
| updateGridTask This task is similar to the processVisibility task for the local client.
| stopUpdateGridTask (self)
| updateGridTask (self, task=None)
Public Member Functions inherited from DistributedNodeAI
| __init__ (self, air, name=None)
| b_setParent (self, parentToken)
| setParent ###
| b_setPosHpr (self, x, y, z, h, p, r)
| b_setXYZH (self, x, y, z, h)
| d_setH (self, h)
| d_setHpr (self, h, p, r)
| d_setP (self, p)
| d_setParent (self, parentToken)
| d_setPos (self, x, y, z)
| d_setPosHpr (self, x, y, z, h, p, r)
| d_setR (self, r)
| d_setX (self, x)
| set pos and hpr functions #######
| d_setXY (self, x, y)
| d_setXYH (self, x, y, h)
| d_setXYZH (self, x, y, z, h)
| d_setY (self, y)
| d_setZ (self, z)
| do_setParent (self, parentToken)
| getXYZH (self)
| setLocation (self, parentId, zoneId, teleport=0)
| setParent (self, parentToken)
| setParentStr (self, parentToken)
| setXY (self, x, y)
| setXYH (self, x, y, h)
| setXYZH (self, x, y, z, h)
Public Member Functions inherited from DistributedObjectAI
| __init__ (self, air)
| announceGenerate (self)
| b_setLocation (self, parentId, zoneId)
| beginBarrier (self, name, avIds, timeout, callback)
| d_setLocation (self, parentId, zoneId)
| deleteOrDelay (self)
| execCommand (self, string, mwMgrId, avId, zoneId)
| generate (self)
| generateInit (self, repository=None)
| generateOtpObject (self, parentId, zoneId, optionalFields=[], doId=None)
| generateTargetChannel (self, repository)
| generateWithRequired (self, zoneId, optionalFields=[])
| generateWithRequiredAndId (self, doId, parentId, zoneId, optionalFields=[])
| GetAccountConnectionChannel (self, doId)
| GetAccountIDFromChannelCode (self, channel)
| GetAvatarIDFromChannelCode (self, channel)
| getBarrierData (self)
| getCacheable (self)
| getCollTrav (self, *args, **kArgs)
| getDelayDeleteCount (self)
| getDeleteEvent (self)
| getDoId (self)
| getLocation (self)
| getLogicalZoneChangeEvent (self)
| getNonCollidableParent (self)
| getParentMgr (self)
| GetPuppetConnectionChannel (self, doId)
| getRender (self)
| getZoneChangeEvent (self)
| getZoneData (self)
| handleLogicalZoneChange (self, newZoneId, oldZoneId)
| ignoreBarrier (self, context)
| initFromServerResponse (self, valDict)
| isDeleted (self)
| isGenerated (self)
| postGenerateMessage (self)
| preAllocateDoId (self)
| releaseZoneData (self)
| requestDelete (self)
| sendDeleteEvent (self)
| sendGenerateWithRequired (self, repository, parentId, zoneId, optionalFields=[])
| sendMessageBundle (self)
| sendUpdate (self, fieldName, args=[])
| sendUpdateToAccountId (self, accountId, fieldName, args)
| sendUpdateToAvatarId (self, avId, fieldName, args)
| sendUpdateToChannel (self, channelId, fieldName, args)
| setAI (self, aiChannel)
| setBarrierReady (self, context)
| startMessageBundle (self, name)
| status (self, indent=0)
| taskName (self, taskString)
| uniqueName (self, idString)
| updateAllRequiredFields (self, dclass, di)
| updateAllRequiredOtherFields (self, dclass, di)
| updateRequiredFields (self, dclass, di)
| updateRequiredOtherFields (self, dclass, di)
| validate (self, avId, bool, msg)
Public Member Functions inherited from DistributedObjectBase
| __init__ (self, cr)
| getParentObj (self)
| handleChildArrive (self, childObj, zoneId)
| handleChildArriveZone (self, childObj, zoneId)
| handleChildLeave (self, childObj, zoneId)
| handleChildLeaveZone (self, childObj, zoneId)
| handleQueryObjectChildrenLocalDone (self, context)
| hasParentingRules (self)
Public Member Functions inherited from DirectObject
| __init__ (self)
| accept (self, event, method, extraArgs=[])
| acceptOnce (self, event, method, extraArgs=[])
| addTask (self, *args, **kwargs)
| detectLeaks (self)
| doMethodLater (self, *args, **kwargs)
| getAllAccepting (self)
| ignore (self, event)
| ignoreAll (self)
| isAccepting (self, event)
| isIgnoring (self, event)
| removeAllTasks (self)
| removeTask (self, taskOrName)
Public Member Functions inherited from CartesianGridBase
| getConcentricZones (self, zoneId, radius)
| getGridSizeFromSphere (self, sphereRadius, spherePos, cellWidth, gridRadius)
| getGridSizeFromSphereRadius (self, sphereRadius, cellWidth, gridRadius)
| getZoneCellOrigin (self, zoneId)
| getZoneCellOriginCenter (self, zoneId)
| getZoneFromXYZ (self, pos, wantRowAndCol=False)
| isValidZone (self, zoneId)

## Public Attributes
| cellWidth = cellWidth
dict | gridObjects = {}
| gridRadius = gridRadius
| gridSize = gridSize
| updateGridTask = 1
int | updateTaskStarted = 0
Public Attributes inherited from DistributedNodeAI
int | DistributedNodeAI_initialized = 1
| gridParent = None
Public Attributes inherited from DistributedObjectAI
str | accountName = ''
| air = 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 = self.air.dclassesByName[className]
int | DistributedObjectAI_initialized = 1
| lastNonQuietZone = None
Public Attributes inherited from DistributedObjectBase
| cr = cr
| doId
int | parentId = None
| zoneId = None
Public Attributes inherited from CartesianGridBase
| startingZone
str | style = "Cartesian":

## Static Public Attributes
str | RuleSeparator = ":"
Static Public Attributes inherited from DistributedObjectAI
int | QuietZone = 1
Static Public Attributes inherited from DistributedObjectBase
| notify = directNotify.newCategory("DistributedObjectBase")
Static Public Attributes inherited from DirectObject
| accept_once = acceptOnce
| add_task = addTask
| detect_leaks = detectLeaks
| do_method_later = doMethodLater
| get_all_accepting = getAllAccepting
| ignore_all = ignoreAll
| is_accepting = isAccepting
| is_ignoring = isIgnoring
| remove_all_tasks = removeAllTasks
| remove_task = removeTask

## Additional Inherited Members
Static Public Member Functions inherited from DistributedObjectAI
| staticGetLogicalZoneChangeEvent (doId)
| staticGetZoneChangeEvent (doId)
Protected Member Functions inherited from DistributedObjectAI
| _retrieveCachedData (self)
Protected Member Functions inherited from DirectObject
| _addTask (self, task)
| _clearTask (self, task)
Protected Attributes inherited from DistributedObjectAI
bool | _DOAI_requestedDelete = False
| _zoneData = None
Protected Attributes inherited from DirectObject
dict | _taskList = {}

## Constructor & Destructor Documentation

## ◆ __init__()

__init__ | ( |  | self,
|  |  | air,
|  |  | startingZone,
|  |  | gridSize,
|  |  | gridRadius,
|  |  | cellWidth,
|  |  | style = "Cartesian" )

## Member Function Documentation

## ◆ addObjectToGrid()

addObjectToGrid | ( |  | self,
|  |  | av,
|  |  | useZoneId = -1,
|  |  | startAutoUpdate = True )

## ◆ delete()

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 from DistributedNodeAI.

## ◆ getCellWidth()

getCellWidth | ( |  | self | ) |

## ◆ getParentingRules()

getParentingRules | ( |  | self | ) |

## ◆ handleAvatarZoneChange()

handleAvatarZoneChange | ( |  | self,
|  |  | av,
|  |  | useZoneId = -1 )

## ◆ handleSetLocation()

handleSetLocation | ( |  | self,
|  |  | av,
|  |  | parentId,
|  |  | zoneId )

## ◆ isGridParent()

isGridParent | ( |  | self | ) |

Reimplemented from DistributedObjectAI.

## ◆ removeObjectFromGrid()

removeObjectFromGrid | ( |  | self,
|  |  | av )

## ◆ startUpdateGridTask()

startUpdateGridTask | ( |  | self | ) |

updateGridTask This task is similar to the processVisibility task for the local client.

A couple differences:

- we are not doing setInterest on the AI (that is a local client specific call).
- we assume that the moving objects on the grid are parented to a gridParent, and are broadcasting their position relative to that gridParent. This makes the task's math easy. Just check to see when our position goes out of the current grid cell. When it does, call handleAvatarZoneChange

## ◆ stopUpdateGridTask()

stopUpdateGridTask | ( |  | self | ) |

## ◆ updateGridTask()

updateGridTask | ( |  | self,
|  |  | task = None )

## Member Data Documentation

## ◆ cellWidth

cellWidth = cellWidth

## ◆ gridObjects

gridObjects = {}

## ◆ gridRadius

gridRadius = gridRadius

## ◆ gridSize

gridSize = gridSize

## ◆ RuleSeparator

str RuleSeparator = ":"
| static

## ◆ updateGridTask

updateGridTask = 1

## ◆ updateTaskStarted

updateTaskStarted = 0