Annotation of /trunk/ModularRex/RexParts/RexPython/Resources/PythonScript/RXCore/rxactor.py
Parent Directory
|
Revision Log
Revision 79 - (view) (download) (as text)
| 1 : | mikkopa | 52 | # rxactor.py |
| 2 : | # Parent class for all actors in the world. | ||
| 3 : | #print "rxactor.................................." | ||
| 4 : | |||
| 5 : | import sys | ||
| 6 : | import clr | ||
| 7 : | clr.AddReferenceToFile("ModularRex.dll") | ||
| 8 : | |||
| 9 : | import rxlslobject | ||
| 10 : | import rxworld | ||
| 11 : | import rxtimer | ||
| 12 : | |||
| 13 : | class Actor(rxlslobject.LSLObject): | ||
| 14 : | |||
| 15 : | def __init__(self, vId): | ||
| 16 : | #super(Actor,self).__init__() | ||
| 17 : | self.MyWorld = None | ||
| 18 : | self.Id = str(vId) | ||
| 19 : | |||
| 20 : | self.MyTag = "" | ||
| 21 : | self.MyEvent = "" | ||
| 22 : | |||
| 23 : | self.MyTimerCount = 0 | ||
| 24 : | self.bTimerLoop = False | ||
| 25 : | |||
| 26 : | #def __del__(self): | ||
| 27 : | # #print "DELETING ACTOR!" | ||
| 28 : | # #super(self.__class__, self).__del__() | ||
| 29 : | |||
| 30 : | def GetScriptClassName(): | ||
| 31 : | return "rxactor.Actor" | ||
| 32 : | |||
| 33 : | def GetId(self): | ||
| 34 : | return str(self.Id) | ||
| 35 : | def GetPrimLocalIdFromUUID(self,vUUID): | ||
| 36 : | return self.MyWorld.CS.GetPrimLocalIdFromUUID(vUUID) | ||
| 37 : | |||
| 38 : | # Send python command to client | ||
| 39 : | def CommandToClient(self,vAgentId,vUnit,vCommand,vCmdParams): | ||
| 40 : | self.MyWorld.CS.CommandToClient(vAgentId,vUnit,vCommand,vCmdParams) | ||
| 41 : | |||
| 42 : | # Velocity | ||
| 43 : | def SetVelocity(self,vVelocity): | ||
| 44 : | return self.MyWorld.CS.SetVelocity(self.Id,vVelocity) | ||
| 45 : | Velocity = property(fget=lambda self: self.llGetVel(),fset=lambda self, v: self.SetVelocity(v)) | ||
| 46 : | |||
| 47 : | # Physics | ||
| 48 : | def GetPhysics(self): | ||
| 49 : | return self.MyWorld.CS.GetPhysics(self.Id) | ||
| 50 : | def SetPhysics(self,vbPhysics): | ||
| 51 : | return self.MyWorld.CS.SetPhysics(self.Id,vbPhysics) | ||
| 52 : | Physics = property(fget=lambda self: self.GetPhysics(),fset=lambda self, v: self.SetPhysics(v)) | ||
| 53 : | |||
| 54 : | #Mass | ||
| 55 : | def SetMass(self,vMass): | ||
| 56 : | return self.MyWorld.CS.SetMass(self.Id,vMass) | ||
| 57 : | Mass = property(fget=lambda self: self.llGetMass(),fset=lambda self, v: self.SetMass(v)) | ||
| 58 : | |||
| 59 : | |||
| 60 : | def GetUsePrimVolumeCollision(self): | ||
| 61 : | return self.MyWorld.CS.GetUsePrimVolumeCollision(self.Id) | ||
| 62 : | def SetUsePrimVolumeCollision(self,vUsePrimVolumeCol): | ||
| 63 : | self.MyWorld.CS.SetUsePrimVolumeCollision(self.Id,vUsePrimVolumeCol) | ||
| 64 : | |||
| 65 : | def SendGeneralAlertAll(self,vString): | ||
| 66 : | self.MyWorld.CS.SendGeneralAlertAll(self.Id,vString) | ||
| 67 : | def SendAlertToAvatar(self,vAgentId,vString,vbModal): | ||
| 68 : | self.MyWorld.CS.SendAlertToAvatar(self.Id,vAgentId,vString,vbModal) | ||
| 69 : | def PlayClientSound(self,vAgentId,vSound,vVolume): # vSound can be lluuid or name | ||
| 70 : | self.MyWorld.CS.rexPlayClientSound(vAgentId,vSound,vVolume) | ||
| 71 : | |||
| 72 : | def GetRadiusActors(self,vRadius): | ||
| 73 : | return self.MyWorld.CS.GetRadiusActors(self.Id,vRadius) | ||
| 74 : | def GetRadiusAvatars(self,vRadius): | ||
| 75 : | return self.MyWorld.CS.GetRadiusAvatars(self.Id,vRadius) | ||
| 76 : | |||
| 77 : | def EnableTick(self): | ||
| 78 : | self.MyWorld.MyEventManager.EnableTickForActor(self) | ||
| 79 : | def DisableTick(self): | ||
| 80 : | self.MyWorld.MyEventManager.DisableTickForActor(self) | ||
| 81 : | |||
| 82 : | def SetTimer(self,vTime,vbLoop): | ||
| 83 : | self.MyWorld.MyEventManager.SetTimerForActor(self,vTime,vbLoop) | ||
| 84 : | |||
| 85 : | def CreateRexTimer(self,vTime,vTimesActivated): | ||
| 86 : | return rxtimer.RexTimer(vTime,vTimesActivated) | ||
| 87 : | |||
| 88 : | def SpawnActor(self,vLoc,vIndex,vbTemprorary,vPyClass): | ||
| 89 : | return self.MyWorld.CS.SpawnActor(vLoc,vIndex,vbTemprorary,vPyClass) | ||
| 90 : | def DestroyActor(self): | ||
| 91 : | return self.MyWorld.CS.DestroyActor(self.Id) | ||
| 92 : | |||
| 93 : | def rexRaycast(self,vStartPos,vDir,vLength,vIgnoreId): | ||
| 94 : | objid = self.MyWorld.CS.rexRaycast(vStartPos,vDir,vLength,vIgnoreId) | ||
| 95 : | if(objid == 0) or (not self.MyWorld.AllActors.has_key(objid)): | ||
| 96 : | return None | ||
| 97 : | else: | ||
| 98 : | return self.MyWorld.AllActors[objid] | ||
| 99 : | |||
| 100 : | mikkopa | 79 | def rexPlayMeshAnimation(self,vId,vAnimName,vRate,vbLooped, vbStopAnim): |
| 101 : | return self.MyWorld.CS.rexPlayMeshAnim(vId,vAnimName,vRate,vbLooped,vbStopAnim) | ||
| 102 : | mikkopa | 52 | |
| 103 : | def rexSetClientSideEffectByUUID(self,assetId,vTimeUntilLaunch,vTimeUntilDeath,vPos,vRot,vSpeed): | ||
| 104 : | self.MyWorld.CS.rexSetClientSideEffect(assetId,vTimeUntilLaunch,vTimeUntilDeath,vPos,vRot,vSpeed) | ||
| 105 : | |||
| 106 : | def rexSetClientSideEffect(self,assetName,assetType,vTimeUntilLaunch,vTimeUntilDeath,vPos,vRot,vSpeed): | ||
| 107 : | self.MyWorld.CS.rexSetClientSideEffect(assetName,assetType,vTimeUntilLaunch,vTimeUntilDeath,vPos,vRot,vSpeed) | ||
| 108 : | |||
| 109 : | def rexAddInitialPreloadAssets(self,vAssetList): | ||
| 110 : | self.MyWorld.CS.rexAddInitialPreloadAssets(vAssetList) | ||
| 111 : | def rexRemoveInitialPreloadAssets(self,vAssetList): | ||
| 112 : | self.MyWorld.CS.rexRemoveInitialPreloadAssets(vAssetList) | ||
| 113 : | |||
| 114 : | |||
| 115 : | # Scale | ||
| 116 : | Scale = property(fget=lambda self: self.llGetScale(),fset=lambda self, v: self.llSetScale(v)) | ||
| 117 : | |||
| 118 : | def GetTime(self): | ||
| 119 : | return self.MyWorld.MyEventManager.CurrTime | ||
| 120 : | |||
| 121 : | # Rexprimdata variables | ||
| 122 : | def GetRexDrawType(self): | ||
| 123 : | return self.MyWorld.CS.GetRexDrawType(self.Id) | ||
| 124 : | def SetRexDrawType(self,vDrawType): | ||
| 125 : | self.MyWorld.CS.SetRexDrawType(self.Id,vDrawType) | ||
| 126 : | def GetRexIsVisible(self): | ||
| 127 : | return self.MyWorld.CS.GetRexIsVisible(self.Id) | ||
| 128 : | def SetRexIsVisible(self,vbIsVisible): | ||
| 129 : | self.MyWorld.CS.SetRexIsVisible(self.Id,vbIsVisible) | ||
| 130 : | def GetRexCastShadows(self): | ||
| 131 : | return self.MyWorld.CS.GetRexCastShadows(self.Id) | ||
| 132 : | def SetRexCastShadows(self,vbCastShadows): | ||
| 133 : | self.MyWorld.CS.SetRexCastShadows(self.Id,vbCastShadows) | ||
| 134 : | def GetRexLightCreatesShadows(self): | ||
| 135 : | return self.MyWorld.CS.GetRexLightCreatesShadows(self.Id) | ||
| 136 : | def SetRexLightCreatesShadows(self, vbLightCreates): | ||
| 137 : | self.MyWorld.CS.SetRexLightCreatesShadows(self.Id,vbLightCreates) | ||
| 138 : | def GetRexDescriptionTexture(self): | ||
| 139 : | return self.MyWorld.CS.GetRexDescriptionTexture(self.Id) | ||
| 140 : | def SetRexDescriptionTexture(self, vbDescTex): | ||
| 141 : | self.MyWorld.CS.SetRexDescriptionTexture(self.Id,vbDescTex) | ||
| 142 : | def GetRexScaleToPrim(self): | ||
| 143 : | return self.MyWorld.CS.GetRexScaleToPrim(self.Id) | ||
| 144 : | def SetRexScaleToPrim(self, vbScale): | ||
| 145 : | self.MyWorld.CS.SetRexScaleToPrim(self.Id,vbScale) | ||
| 146 : | |||
| 147 : | def GetRexDrawDistance(self): | ||
| 148 : | return self.MyWorld.CS.GetRexDrawDistance(self.Id) | ||
| 149 : | def SetRexDrawDistance(self, vDist): | ||
| 150 : | self.MyWorld.CS.SetRexDrawDistance(self.Id,vDist) | ||
| 151 : | def GetRexLOD(self): | ||
| 152 : | return self.MyWorld.CS.GetRexLOD(self.Id) | ||
| 153 : | def SetRexLOD(self, vLod): | ||
| 154 : | self.MyWorld.CS.SetRexLOD(self.Id,vLod) | ||
| 155 : | |||
| 156 : | def GetRexMeshUUID(self): | ||
| 157 : | return self.MyWorld.CS.GetRexMeshUUID(self.Id) | ||
| 158 : | def SetRexMeshUUID(self, vsLLUUID): | ||
| 159 : | self.MyWorld.CS.SetRexMeshUUID(self.Id,vsLLUUID) | ||
| 160 : | def SetRexMeshByName(self, vsName): | ||
| 161 : | self.MyWorld.CS.SetRexMeshByName(self.Id,vsName) | ||
| 162 : | def GetRexCollisionMeshUUID(self): | ||
| 163 : | return self.MyWorld.CS.GetRexCollisionMeshUUID(self.Id) | ||
| 164 : | def SetRexCollisionMeshUUID(self, vsLLUUID): | ||
| 165 : | self.MyWorld.CS.SetRexCollisionMeshUUID(self.Id,vsLLUUID) | ||
| 166 : | def SetRexCollisionMeshByName(self,vsName): | ||
| 167 : | self.MyWorld.CS.SetRexCollisionMeshByName(self.Id,vsName) | ||
| 168 : | |||
| 169 : | def GetRexParticleScriptUUID(self): | ||
| 170 : | return self.MyWorld.CS.GetRexParticleScriptUUID(self.Id) | ||
| 171 : | def SetRexParticleScriptUUID(self, vsLLUUID): | ||
| 172 : | self.MyWorld.CS.SetRexParticleScriptUUID(self.Id,vsLLUUID) | ||
| 173 : | def SetRexParticleScriptByName(self, vsName): | ||
| 174 : | self.MyWorld.CS.SetRexParticleScriptByName(self.Id,vsName) | ||
| 175 : | |||
| 176 : | def GetRexAnimationPackageUUID(self): | ||
| 177 : | return self.MyWorld.CS.GetRexAnimationPackageUUID(self.Id) | ||
| 178 : | def SetRexAnimationPackageUUID(self,vsLLUUID): | ||
| 179 : | self.MyWorld.CS.SetRexAnimationPackageUUID(self.Id,vsLLUUID) | ||
| 180 : | def SetRexAnimationPackageByName(self, vsName): | ||
| 181 : | self.MyWorld.CS.SetRexAnimationPackageByName(self.Id,vsName) | ||
| 182 : | def GetRexAnimationName(self): | ||
| 183 : | return self.MyWorld.CS.GetRexAnimationName(self.Id) | ||
| 184 : | def SetRexAnimationName(self,vsName): | ||
| 185 : | self.MyWorld.CS.SetRexAnimationName(self.Id,vsName) | ||
| 186 : | def GetRexAnimationRate(self): | ||
| 187 : | return self.MyWorld.CS.GetRexAnimationRate(self.Id) | ||
| 188 : | def SetRexAnimationRate(self,vAnimRate): | ||
| 189 : | self.MyWorld.CS.SetRexAnimationRate(self.Id,vAnimRate) | ||
| 190 : | |||
| 191 : | def RexGetMaterial(self,vIndex): | ||
| 192 : | return self.MyWorld.CS.RexGetMaterial(self.Id,vIndex) | ||
| 193 : | def RexGetMaterialCount(self): | ||
| 194 : | return self.MyWorld.CS.RexGetMaterialCount(self.Id) | ||
| 195 : | def RexSetMaterialUUID(self,vIndex,vsMatLLUUID): | ||
| 196 : | self.MyWorld.CS.RexSetMaterialUUID(self.Id,vIndex,vsMatLLUUID) | ||
| 197 : | def RexSetMaterialByName(self,vIndex,vsMatName): | ||
| 198 : | self.MyWorld.CS.RexSetMaterialByName(self.Id,vIndex,vsMatName) | ||
| 199 : | |||
| 200 : | def GetRexClassName(self): | ||
| 201 : | return self.MyWorld.CS.GetRexClassName(self.Id) | ||
| 202 : | def SetRexClassName(self,vsName): | ||
| 203 : | self.MyWorld.CS.SetRexClassName(self.Id,vsName) | ||
| 204 : | |||
| 205 : | def GetRexSoundUUID(self): | ||
| 206 : | return self.MyWorld.CS.GetRexSoundUUID(self.Id) | ||
| 207 : | def SetRexSoundUUID(self,vsLLUUID): | ||
| 208 : | self.MyWorld.CS.SetRexSoundUUID(self.Id,vsLLUUID) | ||
| 209 : | def SetRexSoundByName(self,vsName): | ||
| 210 : | self.MyWorld.CS.SetRexSoundByName(self.Id,vsName) | ||
| 211 : | def GetRexSoundVolume(self): | ||
| 212 : | return self.MyWorld.CS.GetRexSoundVolume(self.Id) | ||
| 213 : | def SetRexSoundVolume(self,vVolume): | ||
| 214 : | self.MyWorld.CS.SetRexSoundVolume(self.Id,vVolume) | ||
| 215 : | def GetRexSoundRadius(self): | ||
| 216 : | return self.MyWorld.CS.GetRexSoundRadius(self.Id) | ||
| 217 : | def SetRexSoundRadius(self,vRadius): | ||
| 218 : | self.MyWorld.CS.SetRexSoundRadius(self.Id,vRadius) | ||
| 219 : | |||
| 220 : | def rexGetPrimFreeData(self): | ||
| 221 : | return self.MyWorld.CS.rexGetPrimFreeData(self.Id) | ||
| 222 : | def rexSetPrimFreeData(self,vData): | ||
| 223 : | self.MyWorld.CS.rexSetPrimFreeData(self.Id,vData) | ||
| 224 : | PrimFreeData = property(fget=lambda self: self.rexGetPrimFreeData(),fset=lambda self, v: self.rexSetPrimFreeData(v)) | ||
| 225 : | |||
| 226 : | def GetRexSelectPriority(self): | ||
| 227 : | return self.MyWorld.CS.GetRexSelectPriority(self.Id) | ||
| 228 : | def SetRexSelectPriority(self,vValue): | ||
| 229 : | self.MyWorld.CS.SetRexSelectPriority(self.Id,vValue) | ||
| 230 : | |||
| 231 : | def GetRexTemporaryPrim(self): | ||
| 232 : | return self.MyWorld.CS.rexGetTemporaryPrim(self.Id) | ||
| 233 : | def SetRexTemporaryPrim(self,vValue): | ||
| 234 : | self.MyWorld.CS.rexSetTemporaryPrim(self.Id,vValue) | ||
| 235 : | |||
| 236 : | |||
| 237 : | |||
| 238 : | # Deprecated functions | ||
| 239 : | def SetMesh(self,vMeshName): | ||
| 240 : | print "SetMesh deprecated, use SetRexMeshByName" | ||
| 241 : | def SetMeshByLLUUID(self,vMeshLLUUID): | ||
| 242 : | print "SetMeshByLLUUID deprecated, use SetRexMeshUUID" | ||
| 243 : | def SetMaterial(self,vIndex,vName): | ||
| 244 : | print "SetMaterial deprecated, use RexSetMaterialByName" | ||
| 245 : | def SetParticleScript(self,vParticleScriptName): | ||
| 246 : | print "SetParticleScript deprecated, use SetRexParticleScriptByName" | ||
| 247 : | |||
| 248 : | # Events | ||
| 249 : | def EventPreCreated(self): | ||
| 250 : | pass | ||
| 251 : | |||
| 252 : | def EventCreated(self): | ||
| 253 : | pass | ||
| 254 : | |||
| 255 : | def EventDestroyed(self): | ||
| 256 : | pass | ||
| 257 : | |||
| 258 : | def EventTouch(self,vAvatar): | ||
| 259 : | pass | ||
| 260 : | |||
| 261 : | def EventTick(self,vDeltaTime): | ||
| 262 : | pass | ||
| 263 : | |||
| 264 : | def EventTimer(self): | ||
| 265 : | pass | ||
| 266 : | |||
| 267 : | def EventTrigger(self,vOther): | ||
| 268 : | pass | ||
| 269 : | |||
| 270 : | def EventPrimVolumeCollision(self,vOther): | ||
| 271 : | pass | ||
| 272 : | |||
| 273 : | |||
| 274 : | # Trigger event | ||
| 275 : | def TriggerEvent(self,vEventStr,vOther): | ||
| 276 : | if len(vEventStr) == 0: | ||
| 277 : | print "TriggerEvent, no event string defined" | ||
| 278 : | return | ||
| 279 : | |||
| 280 : | for iid, iactor in self.MyWorld.AllActors.iteritems(): | ||
| 281 : | if iactor.MyTag == vEventStr: | ||
| 282 : | iactor.EventTrigger(vOther) | ||
| 283 : | |||
| 284 : | def PrintActorList(self): | ||
| 285 : | print "Printing actor list..." | ||
| 286 : | print "Length is ",len(self.MyWorld.AllActors) | ||
| 287 : | for iid, iactor in self.MyWorld.AllActors.iteritems(): | ||
| 288 : | print iid,iactor.Id | ||
| 289 : | |||
| 290 : | |||
| 291 : | |||
| 292 : | |||
| 293 : | #def GetFreezed(self): | ||
| 294 : | # return self.MyWorld.CS.GetFreezed(self.Id) | ||
| 295 : | #def SetFreezed(self,vbFreeze): | ||
| 296 : | # self.MyWorld.CS.SetFreezed(self.Id,vbFreeze) | ||
| 297 : | |||
| 298 : | # PhysicsMode | ||
| 299 : | #def GetPhysicsMode(self): | ||
| 300 : | # return self.MyWorld.CS.GetPhysicsMode(self.Id) | ||
| 301 : | #def SetPhysicsMode(self,vPhysicsMode): | ||
| 302 : | # return self.MyWorld.CS.SetPhysicsMode(self.Id,vPhysicsMode) | ||
| 303 : | #PhysicsMode = property(fget=lambda self: self.GetPhysicsMode(),fset=lambda self, v: self.SetPhysicsMode(v)) | ||
| 304 : | |||
| 305 : | # Gravity | ||
| 306 : | #def GetUseGravity(self): | ||
| 307 : | # return self.MyWorld.CS.GetUseGravity(self.Id) | ||
| 308 : | #def SetUseGravity(self,vbGravity): | ||
| 309 : | # return self.MyWorld.CS.SetUseGravity(self.Id,vbGravity) | ||
| 310 : | #Gravity = property(fget=lambda self: self.GetUseGravity(),fset=lambda self, v: self.SetUseGravity(v)) | ||
| 311 : | |||
| 312 : | #def SetLocationFast(self,vLocation): | ||
| 313 : | # self.MyWorld.CS.SetLocationFast(self.Id,vLocation) |
| ViewVC Help | |
| Powered by ViewVC 1.0.0 |

