20 #ifndef __PS_IMP_PROXIMITYLIST__ 21 #define __PS_IMP_PROXIMITYLIST__ 27 #include <iutil/comp.h> 28 #include <csutil/hash.h> 29 #include <csutil/scf.h> 42 struct iObjectRegistry;
79 bool IsNear(iSector* sector,csVector3 &pos,
gemObject*
object,
float radius);
128 float RangeTo(
gemObject*
object,
bool ignoreY =
false,
bool ignoreInstance =
false);
Manages CEL entities on the server.
bool EndMutualWatching(gemObject *fromobject)
Deletes relation watcher –> watched in both directions between our object and given object...
gemObject * FindObjectName(const char *name)
bool Initialize(int cnum, gemObject *parent)
EntityManager * entityManager
void UpdatePublishDestRange(PublishDestination *pd, gemObject *myself, gemObject *object, uint objIdx, float newrange)
bool GetUntouched_ObjectThatWatchesMe(gemObject *&object)
csArray< bool > objectsThatIWatch_touched
csArray< gemObject * > objectsThatIWatch
What objects am I subscribed to myself?
void EndWatching(gemObject *object)
Deletes relation watcher –> watched between our object and given object.
float RangeTo(gemObject *object, bool ignoreY=false, bool ignoreInstance=false)
void TouchObjectThatWatchesMe(gemObject *object, float newrange)
bool StartWatching(gemObject *object, float range)
Creates relation watcher –> watched between our object and given object Returns: true if new relatio...
bool IsNear(iSector *sector, csVector3 &pos, gemObject *object, float radius)
void RemoveWatcher(gemObject *object)
Removes 'interestedobject' from 'objectsThatWatchMe'.
PublishDestination * FindObjectThatWatchesMe(gemObject *object, uint &x)
csArray< csTicks > destRangeTimer
Per-object timeout on dest range checks.
bool FindObject(gemObject *object)
ProximityList(iObjectRegistry *object_reg, gemObject *parent, EntityManager *entitymanager)
csArray< PublishDestination > & GetClients()
bool StartMutualWatching(int othercnum, gemObject *otherObject, float range)
Creates relation watcher –> watched in both directions between our object and given object...
csArray< PublishDestination > objectsThatWatchMe
What players are subscribed to my updates?
bool FindClient(uint32_t cnum)
A gemObject is any solid, graphical object visible in PS with normal physics and normal collision det...
void DebugDumpContents(csString &out)
bool GetUntouched_ObjectThatIWatch(gemObject *&object)
csArray< bool > objectsThatWatchMe_touched
bool CheckUpdateRequired()
Check if an update is required for this object based on moved range and changed instance.
bool FindObjectThatIWatch(gemObject *object)
void AddWatcher(gemObject *interestedobject, float range)
Adds 'interestedobject' to 'objectsThatWatchMe'.