aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs345
1 files changed, 170 insertions, 175 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs
index d52b642..c8c9cd8 100644
--- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs
+++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs
@@ -114,83 +114,103 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
114 public void changed(uint localID, uint change) 114 public void changed(uint localID, uint change)
115 { 115 {
116 // Add to queue for all scripts in localID, Object pass change. 116 // Add to queue for all scripts in localID, Object pass change.
117 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "changed", EventQueueManager.llDetectNull, new object[] { new LSL_Types.LSLInteger(change) }); 117 myScriptEngine.PostObjectEvent(localID, new EventParams(
118 "changed",new object[] { new LSL_Types.LSLInteger(change) },
119 new DetectParams[0]));
118 } 120 }
119 121
120 public void state_entry(uint localID) 122 public void state_entry(uint localID)
121 { 123 {
122 // Add to queue for all scripts in ObjectID object 124 // Add to queue for all scripts in ObjectID object
123 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "state_entry", EventQueueManager.llDetectNull, new object[] { }); 125 myScriptEngine.PostObjectEvent(localID, new EventParams(
126 "state_entry",new object[] { },
127 new DetectParams[0]));
124 } 128 }
125 129
126 public void touch_start(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient) 130 public void touch_start(uint localID, uint originalID, Vector3 offsetPos,
131 IClientAPI remoteClient)
127 { 132 {
128 // Add to queue for all scripts in ObjectID object 133 // Add to queue for all scripts in ObjectID object
129 EventQueueManager.Queue_llDetectParams_Struct detstruct = new EventQueueManager.Queue_llDetectParams_Struct(); 134 DetectParams[] det = new DetectParams[1];
130 detstruct._key = new LSL_Types.key[1]; 135 det[0] = new DetectParams();
131 detstruct._key2 = new LSL_Types.key[1]; 136 det[0].Key = remoteClient.AgentId;
132 detstruct._string = new string[1]; 137 det[0].Populate(myScriptEngine.World);
133 detstruct._Vector3 = new LSL_Types.Vector3[1]; 138
134 detstruct._Vector32 = new LSL_Types.Vector3[1]; 139 if (originalID == 0)
135 detstruct._Quaternion = new LSL_Types.Quaternion[1]; 140 {
136 detstruct._int = new int[1]; 141 SceneObjectPart part = myScriptEngine.World.GetSceneObjectPart(localID);
137 ScenePresence av = myScriptEngine.World.GetScenePresence(remoteClient.AgentId); 142 if (part == null)
138 if (av != null) 143 return;
144
145 det[0].LinkNum = part.LinkNum;
146 }
147 else
148 {
149 SceneObjectPart originalPart = myScriptEngine.World.GetSceneObjectPart(originalID);
150 det[0].LinkNum = originalPart.LinkNum;
151 }
152
153 myScriptEngine.PostObjectEvent(localID, new EventParams(
154 "touch_start", new Object[] { new LSL_Types.LSLInteger(1) },
155 det));
156 }
157
158 public void touch(uint localID, uint originalID, Vector3 offsetPos,
159 IClientAPI remoteClient)
160 {
161 // Add to queue for all scripts in ObjectID object
162 DetectParams[] det = new DetectParams[1];
163 det[0] = new DetectParams();
164 det[0].Key = remoteClient.AgentId;
165 det[0].Populate(myScriptEngine.World);
166 det[0].OffsetPos = new LSL_Types.Vector3(offsetPos.X,
167 offsetPos.Y,
168 offsetPos.Z);
169
170 if (originalID == 0)
139 { 171 {
140 detstruct._key[0] = new LSL_Types.key(remoteClient.AgentId.ToString()); 172 SceneObjectPart part = myScriptEngine.World.GetSceneObjectPart(localID);
141 detstruct._key2[0] = new LSL_Types.key(remoteClient.AgentId.ToString()); 173 if (part == null)
142 detstruct._string[0] = remoteClient.Name; 174 return;
143 detstruct._int[0] = 0; 175
144 detstruct._Quaternion[0] = new LSL_Types.Quaternion(av.Rotation.X,av.Rotation.Y,av.Rotation.Z,av.Rotation.W); 176 det[0].LinkNum = part.LinkNum;
145 detstruct._Vector3[0] = new LSL_Types.Vector3(av.AbsolutePosition.X,av.AbsolutePosition.Y,av.AbsolutePosition.Z);
146 detstruct._Vector32[0] = new LSL_Types.Vector3(av.Velocity.X,av.Velocity.Y,av.Velocity.Z);
147 } 177 }
148 else 178 else
149 { 179 {
150 detstruct._key[0] = new LSL_Types.key(remoteClient.AgentId.ToString()); 180 SceneObjectPart originalPart = myScriptEngine.World.GetSceneObjectPart(originalID);
151 detstruct._key2[0] = new LSL_Types.key(remoteClient.AgentId.ToString()); 181 det[0].LinkNum = originalPart.LinkNum;
152 detstruct._string[0] = remoteClient.Name;
153 detstruct._int[0] = 0;
154 detstruct._Quaternion[0] = new LSL_Types.Quaternion(0, 0, 0, 1);
155 detstruct._Vector3[0] = new LSL_Types.Vector3(0, 0, 0);
156 detstruct._Vector32[0] = new LSL_Types.Vector3(0, 0, 0);
157 } 182 }
158 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "touch_start", detstruct, new object[] { new LSL_Types.LSLInteger(1) }); 183
184 myScriptEngine.PostObjectEvent(localID, new EventParams(
185 "touch", new Object[] { new LSL_Types.LSLInteger(1) },
186 det));
159 } 187 }
160 188
161 public void touch_end(uint localID, uint originalID, IClientAPI remoteClient) 189 public void touch_end(uint localID, uint originalID, IClientAPI remoteClient)
162 { 190 {
163 // Add to queue for all scripts in ObjectID object 191 // Add to queue for all scripts in ObjectID object
164 EventQueueManager.Queue_llDetectParams_Struct detstruct = new EventQueueManager.Queue_llDetectParams_Struct(); 192 DetectParams[] det = new DetectParams[1];
165 detstruct._key = new LSL_Types.key[1]; 193 det[0] = new DetectParams();
166 detstruct._key2 = new LSL_Types.key[1]; 194 det[0].Key = remoteClient.AgentId;
167 detstruct._string = new string[1]; 195 det[0].Populate(myScriptEngine.World);
168 detstruct._Vector3 = new LSL_Types.Vector3[1]; 196
169 detstruct._Vector32 = new LSL_Types.Vector3[1]; 197 if (originalID == 0)
170 detstruct._Quaternion = new LSL_Types.Quaternion[1];
171 detstruct._int = new int[1];
172 ScenePresence av = myScriptEngine.World.GetScenePresence(remoteClient.AgentId);
173 if (av != null)
174 { 198 {
175 detstruct._key[0] = new LSL_Types.key(remoteClient.AgentId.ToString()); 199 SceneObjectPart part = myScriptEngine.World.GetSceneObjectPart(localID);
176 detstruct._key2[0] = new LSL_Types.key(remoteClient.AgentId.ToString()); 200 if (part == null)
177 detstruct._string[0] = remoteClient.Name; 201 return;
178 detstruct._int[0] = 0; 202
179 detstruct._Quaternion[0] = new LSL_Types.Quaternion(av.Rotation.X, av.Rotation.Y, av.Rotation.Z, av.Rotation.W); 203 det[0].LinkNum = part.LinkNum;
180 detstruct._Vector3[0] = new LSL_Types.Vector3(av.AbsolutePosition.X, av.AbsolutePosition.Y, av.AbsolutePosition.Z);
181 detstruct._Vector32[0] = new LSL_Types.Vector3(av.Velocity.X, av.Velocity.Y, av.Velocity.Z);
182 } 204 }
183 else 205 else
184 { 206 {
185 detstruct._key[0] = new LSL_Types.key(remoteClient.AgentId.ToString()); 207 SceneObjectPart originalPart = myScriptEngine.World.GetSceneObjectPart(originalID);
186 detstruct._key2[0] = new LSL_Types.key(remoteClient.AgentId.ToString()); 208 det[0].LinkNum = originalPart.LinkNum;
187 detstruct._string[0] = remoteClient.Name;
188 detstruct._int[0] = 0;
189 detstruct._Quaternion[0] = new LSL_Types.Quaternion(0, 0, 0, 1);
190 detstruct._Vector3[0] = new LSL_Types.Vector3(0, 0, 0);
191 detstruct._Vector32[0] = new LSL_Types.Vector3(0, 0, 0);
192 } 209 }
193 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "touch_end", detstruct, new object[] { new LSL_Types.LSLInteger(1) }); 210
211 myScriptEngine.PostObjectEvent(localID, new EventParams(
212 "touch_end", new Object[] { new LSL_Types.LSLInteger(1) },
213 det));
194 } 214 }
195 215
196 public void OnRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine) 216 public void OnRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine)
@@ -228,7 +248,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
228 248
229 public void money(uint localID, UUID agentID, int amount) 249 public void money(uint localID, UUID agentID, int amount)
230 { 250 {
231 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "money", EventQueueManager.llDetectNull, new object[] { new LSL_Types.LSLString(agentID.ToString()), new LSL_Types.LSLInteger(amount) }); 251 myScriptEngine.PostObjectEvent(localID, new EventParams(
252 "money", new object[] {
253 new LSL_Types.LSLString(agentID.ToString()),
254 new LSL_Types.LSLInteger(amount) },
255 new DetectParams[0]));
232 } 256 }
233 257
234 // TODO: Replace placeholders below 258 // TODO: Replace placeholders below
@@ -239,225 +263,196 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
239 263
240 public void state_exit(uint localID) 264 public void state_exit(uint localID)
241 { 265 {
242 // Add to queue for all scripts in ObjectID object 266 myScriptEngine.PostObjectEvent(localID, new EventParams(
243 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "state_exit", EventQueueManager.llDetectNull, new object[] { }); 267 "state_exit", new object[] { },
244 } 268 new DetectParams[0]));
245
246 public void touch(uint localID, uint originalID, UUID itemID)
247 {
248 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "touch", EventQueueManager.llDetectNull);
249 }
250
251 public void touch_end(uint localID, uint originalID, UUID itemID)
252 {
253 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "touch_end", EventQueueManager.llDetectNull, new object[] { new LSL_Types.LSLInteger(1) });
254 } 269 }
255 270
256 public void collision_start(uint localID, ColliderArgs col) 271 public void collision_start(uint localID, ColliderArgs col)
257 { 272 {
258 EventQueueManager.Queue_llDetectParams_Struct detstruct = new EventQueueManager.Queue_llDetectParams_Struct(); 273 // Add to queue for all scripts in ObjectID object
259 detstruct._string = new string[col.Colliders.Count]; 274 List<DetectParams> det = new List<DetectParams>();
260 detstruct._Quaternion = new LSL_Types.Quaternion[col.Colliders.Count]; 275
261 detstruct._int = new int[col.Colliders.Count];
262 detstruct._key = new LSL_Types.key[col.Colliders.Count];
263 detstruct._key2 = new LSL_Types.key[col.Colliders.Count];
264 detstruct._Vector3 = new LSL_Types.Vector3[col.Colliders.Count];
265 detstruct._Vector32 = new LSL_Types.Vector3[col.Colliders.Count];
266 detstruct._bool = new bool[col.Colliders.Count];
267
268 int i = 0;
269 foreach (DetectedObject detobj in col.Colliders) 276 foreach (DetectedObject detobj in col.Colliders)
270 { 277 {
271 detstruct._key[i] = new LSL_Types.key(detobj.keyUUID.ToString()); 278 DetectParams d = new DetectParams();
272 detstruct._key2[i] = new LSL_Types.key(detobj.ownerUUID.ToString()); 279 d.Key =detobj.keyUUID;
273 detstruct._Quaternion[i] = new LSL_Types.Quaternion(detobj.rotQuat.X, detobj.rotQuat.Y, detobj.rotQuat.Z, detobj.rotQuat.W); 280 d.Populate(myScriptEngine.World);
274 detstruct._string[i] = detobj.nameStr; 281 det.Add(d);
275 detstruct._int[i] = detobj.colliderType;
276 detstruct._Vector3[i] = new LSL_Types.Vector3(detobj.posVector.X, detobj.posVector.Y, detobj.posVector.Z);
277 detstruct._Vector32[i] = new LSL_Types.Vector3(detobj.velVector.X, detobj.velVector.Y, detobj.velVector.Z);
278 detstruct._bool[i] = true; // Apparently the script engine uses this to see if this is a valid entry...
279 i++;
280 } 282 }
281 283
282 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "collision_start", detstruct, new object[] { new LSL_Types.LSLInteger(col.Colliders.Count) }); 284 if (det.Count > 0)
285 myScriptEngine.PostObjectEvent(localID, new EventParams(
286 "collision_start",
287 new Object[] { new LSL_Types.LSLInteger(det.Count) },
288 det.ToArray()));
283 } 289 }
284 290
285 public void collision(uint localID, ColliderArgs col) 291 public void collision(uint localID, ColliderArgs col)
286 { 292 {
287 EventQueueManager.Queue_llDetectParams_Struct detstruct = new EventQueueManager.Queue_llDetectParams_Struct(); 293 // Add to queue for all scripts in ObjectID object
288 detstruct._string = new string[col.Colliders.Count]; 294 List<DetectParams> det = new List<DetectParams>();
289 detstruct._Quaternion = new LSL_Types.Quaternion[col.Colliders.Count]; 295
290 detstruct._int = new int[col.Colliders.Count];
291 detstruct._key = new LSL_Types.key[col.Colliders.Count];
292 detstruct._key2 = new LSL_Types.key[col.Colliders.Count];
293 detstruct._Vector3 = new LSL_Types.Vector3[col.Colliders.Count];
294 detstruct._Vector32 = new LSL_Types.Vector3[col.Colliders.Count];
295 detstruct._bool = new bool[col.Colliders.Count];
296
297 int i = 0;
298 foreach (DetectedObject detobj in col.Colliders) 296 foreach (DetectedObject detobj in col.Colliders)
299 { 297 {
300 detstruct._key[i] = new LSL_Types.key(detobj.keyUUID.ToString()); 298 DetectParams d = new DetectParams();
301 detstruct._key2[i] = new LSL_Types.key(detobj.ownerUUID.ToString()); 299 d.Key =detobj.keyUUID;
302 detstruct._Quaternion[i] = new LSL_Types.Quaternion(detobj.rotQuat.X, detobj.rotQuat.Y, detobj.rotQuat.Z, detobj.rotQuat.W); 300 d.Populate(myScriptEngine.World);
303 detstruct._string[i] = detobj.nameStr; 301 det.Add(d);
304 detstruct._int[i] = detobj.colliderType;
305 detstruct._Vector3[i] = new LSL_Types.Vector3(detobj.posVector.X, detobj.posVector.Y, detobj.posVector.Z);
306 detstruct._Vector32[i] = new LSL_Types.Vector3(detobj.velVector.X, detobj.velVector.Y, detobj.velVector.Z);
307 detstruct._bool[i] = true; // Apparently the script engine uses this to see if this is a valid entry... i++;
308 } 302 }
309 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "collision", detstruct, new object[] { new LSL_Types.LSLInteger(col.Colliders.Count) }); 303
304 if (det.Count > 0)
305 myScriptEngine.PostObjectEvent(localID, new EventParams(
306 "collision", new Object[] { new LSL_Types.LSLInteger(det.Count) },
307 det.ToArray()));
310 } 308 }
311 309
312 public void collision_end(uint localID, ColliderArgs col) 310 public void collision_end(uint localID, ColliderArgs col)
313 { 311 {
314 EventQueueManager.Queue_llDetectParams_Struct detstruct = new EventQueueManager.Queue_llDetectParams_Struct(); 312 // Add to queue for all scripts in ObjectID object
315 detstruct._string = new string[col.Colliders.Count]; 313 List<DetectParams> det = new List<DetectParams>();
316 detstruct._Quaternion = new LSL_Types.Quaternion[col.Colliders.Count]; 314
317 detstruct._int = new int[col.Colliders.Count];
318 detstruct._key = new LSL_Types.key[col.Colliders.Count];
319 detstruct._key2 = new LSL_Types.key[col.Colliders.Count];
320 detstruct._Vector3 = new LSL_Types.Vector3[col.Colliders.Count];
321 detstruct._Vector32 = new LSL_Types.Vector3[col.Colliders.Count];
322 detstruct._bool = new bool[col.Colliders.Count];
323
324 int i = 0;
325 foreach (DetectedObject detobj in col.Colliders) 315 foreach (DetectedObject detobj in col.Colliders)
326 { 316 {
327 detstruct._key[i] = new LSL_Types.key(detobj.keyUUID.ToString()); 317 DetectParams d = new DetectParams();
328 detstruct._key2[i] = new LSL_Types.key(detobj.ownerUUID.ToString()); 318 d.Key =detobj.keyUUID;
329 detstruct._Quaternion[i] = new LSL_Types.Quaternion(detobj.rotQuat.X, detobj.rotQuat.Y, detobj.rotQuat.Z, detobj.rotQuat.W); 319 d.Populate(myScriptEngine.World);
330 detstruct._string[i] = detobj.nameStr; 320 det.Add(d);
331 detstruct._int[i] = detobj.colliderType;
332 detstruct._Vector3[i] = new LSL_Types.Vector3(detobj.posVector.X, detobj.posVector.Y, detobj.posVector.Z);
333 detstruct._Vector32[i] = new LSL_Types.Vector3(detobj.velVector.X, detobj.velVector.Y, detobj.velVector.Z);
334 detstruct._bool[i] = true; // Apparently the script engine uses this to see if this is a valid entry...
335 i++;
336 } 321 }
337 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "collision_end", EventQueueManager.llDetectNull, new object[] { new LSL_Types.LSLInteger(col.Colliders.Count) }); 322
323 if (det.Count > 0)
324 myScriptEngine.PostObjectEvent(localID, new EventParams(
325 "collision_end",
326 new Object[] { new LSL_Types.LSLInteger(det.Count) },
327 det.ToArray()));
338 } 328 }
339 329
340 public void land_collision_start(uint localID, UUID itemID) 330 public void land_collision_start(uint localID, UUID itemID)
341 { 331 {
342 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "land_collision_start", EventQueueManager.llDetectNull); 332 myScriptEngine.PostObjectEvent(localID, new EventParams(
333 "land_collision_start",
334 new object[0],
335 new DetectParams[0]));
343 } 336 }
344 337
345 public void land_collision(uint localID, ColliderArgs col) 338 public void land_collision(uint localID, UUID itemID)
346 { 339 {
347 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "land_collision", EventQueueManager.llDetectNull); 340 myScriptEngine.PostObjectEvent(localID, new EventParams(
341 "land_collision",
342 new object[0],
343 new DetectParams[0]));
348 } 344 }
349 345
350 public void land_collision_end(uint localID, UUID itemID) 346 public void land_collision_end(uint localID, UUID itemID)
351 { 347 {
352 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "land_collision_end", EventQueueManager.llDetectNull); 348 myScriptEngine.PostObjectEvent(localID, new EventParams(
349 "land_collision_end",
350 new object[0],
351 new DetectParams[0]));
353 } 352 }
354 353
355 // Handled by long commands 354 // Handled by long commands
356 public void timer(uint localID, UUID itemID) 355 public void timer(uint localID, UUID itemID)
357 { 356 {
358 //myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, String.Empty);
359 } 357 }
360 358
361 public void listen(uint localID, UUID itemID) 359 public void listen(uint localID, UUID itemID)
362 { 360 {
363 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "listen", EventQueueManager.llDetectNull);
364 }
365
366 public void on_rez(uint localID, UUID itemID)
367 {
368 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "on_rez", EventQueueManager.llDetectNull);
369 }
370
371 public void sensor(uint localID, UUID itemID)
372 {
373 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "sensor", EventQueueManager.llDetectNull);
374 }
375
376 public void no_sensor(uint localID, UUID itemID)
377 {
378 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "no_sensor", EventQueueManager.llDetectNull);
379 } 361 }
380 362
381 public void control(uint localID, UUID itemID, UUID agentID, uint held, uint change) 363 public void control(uint localID, UUID itemID, UUID agentID, uint held, uint change)
382 { 364 {
383 if ((change == 0) && (myScriptEngine.m_EventQueueManager.CheckEeventQueueForEvent(localID,"control"))) return; 365 if ((change == 0) && (myScriptEngine.m_EventQueueManager.CheckEeventQueueForEvent(localID,"control"))) return;
384 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "control", EventQueueManager.llDetectNull, new object[] { new LSL_Types.LSLString(agentID.ToString()), new LSL_Types.LSLInteger(held), new LSL_Types.LSLInteger(change)}); 366 myScriptEngine.PostObjectEvent(localID, new EventParams(
367 "control",new object[] {
368 new LSL_Types.LSLString(agentID.ToString()),
369 new LSL_Types.LSLInteger(held),
370 new LSL_Types.LSLInteger(change)},
371 new DetectParams[0]));
385 } 372 }
386 373
387 public void email(uint localID, UUID itemID) 374 public void email(uint localID, UUID itemID, string timeSent,
375 string address, string subject, string message, int numLeft)
388 { 376 {
389 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "email", EventQueueManager.llDetectNull); 377 myScriptEngine.PostObjectEvent(localID, new EventParams(
378 "email",new object[] {
379 new LSL_Types.LSLString(timeSent),
380 new LSL_Types.LSLString(address),
381 new LSL_Types.LSLString(subject),
382 new LSL_Types.LSLString(message),
383 new LSL_Types.LSLInteger(numLeft)},
384 new DetectParams[0]));
390 } 385 }
391 386
392 public void at_target(uint localID, uint handle, Vector3 targetpos, Vector3 atpos) 387 public void at_target(uint localID, uint handle, Vector3 targetpos,
388 Vector3 atpos)
393 { 389 {
394 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "at_target", EventQueueManager.llDetectNull, new object[] { new LSL_Types.LSLInteger(handle), new LSL_Types.Vector3(targetpos.X,targetpos.Y,targetpos.Z), new LSL_Types.Vector3(atpos.X,atpos.Y,atpos.Z) }); 390 myScriptEngine.PostObjectEvent(localID, new EventParams(
391 "at_target", new object[] {
392 new LSL_Types.LSLInteger(handle),
393 new LSL_Types.Vector3(targetpos.X,targetpos.Y,targetpos.Z),
394 new LSL_Types.Vector3(atpos.X,atpos.Y,atpos.Z) },
395 new DetectParams[0]));
395 } 396 }
396 397
397 public void not_at_target(uint localID) 398 public void not_at_target(uint localID)
398 { 399 {
399 myScriptEngine.m_EventQueueManager.AddToObjectQueue(localID, "not_at_target", EventQueueManager.llDetectNull); 400 myScriptEngine.PostObjectEvent(localID, new EventParams(
401 "not_at_target",new object[0],
402 new DetectParams[0]));
400 } 403 }
401 404
402 public void at_rot_target(uint localID, UUID itemID) 405 public void at_rot_target(uint localID, UUID itemID)
403 { 406 {
404 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "at_rot_target", EventQueueManager.llDetectNull); 407 myScriptEngine.PostObjectEvent(localID, new EventParams(
408 "at_rot_target",new object[0],
409 new DetectParams[0]));
405 } 410 }
406 411
407 public void not_at_rot_target(uint localID, UUID itemID) 412 public void not_at_rot_target(uint localID, UUID itemID)
408 { 413 {
409 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "not_at_rot_target", EventQueueManager.llDetectNull); 414 myScriptEngine.PostObjectEvent(localID, new EventParams(
410 } 415 "not_at_rot_target",new object[0],
411 416 new DetectParams[0]));
412 public void run_time_permissions(uint localID, UUID itemID)
413 {
414 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "run_time_permissions", EventQueueManager.llDetectNull);
415 }
416
417 public void changed(uint localID, UUID itemID)
418 {
419 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "changed", EventQueueManager.llDetectNull);
420 } 417 }
421 418
422 public void attach(uint localID, UUID itemID) 419 public void attach(uint localID, UUID itemID)
423 { 420 {
424 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "attach", EventQueueManager.llDetectNull);
425 } 421 }
426 422
427 public void dataserver(uint localID, UUID itemID) 423 public void dataserver(uint localID, UUID itemID)
428 { 424 {
429 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "dataserver", EventQueueManager.llDetectNull);
430 } 425 }
431 426
432 public void link_message(uint localID, UUID itemID) 427 public void link_message(uint localID, UUID itemID)
433 { 428 {
434 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "link_message", EventQueueManager.llDetectNull);
435 } 429 }
436 430
437 public void moving_start(uint localID, UUID itemID) 431 public void moving_start(uint localID, UUID itemID)
438 { 432 {
439 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "moving_start", EventQueueManager.llDetectNull); 433 myScriptEngine.PostObjectEvent(localID, new EventParams(
434 "moving_start",new object[0],
435 new DetectParams[0]));
440 } 436 }
441 437
442 public void moving_end(uint localID, UUID itemID) 438 public void moving_end(uint localID, UUID itemID)
443 { 439 {
444 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "moving_end", EventQueueManager.llDetectNull); 440 myScriptEngine.PostObjectEvent(localID, new EventParams(
441 "moving_end",new object[0],
442 new DetectParams[0]));
445 } 443 }
446 444
447 public void object_rez(uint localID, UUID itemID) 445 public void object_rez(uint localID, UUID itemID)
448 { 446 {
449 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "object_rez", EventQueueManager.llDetectNull);
450 } 447 }
451 448
452 public void remote_data(uint localID, UUID itemID) 449 public void remote_data(uint localID, UUID itemID)
453 { 450 {
454 myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "remote_data", EventQueueManager.llDetectNull);
455 } 451 }
456 452
457 // Handled by long commands 453 // Handled by long commands
458 public void http_response(uint localID, UUID itemID) 454 public void http_response(uint localID, UUID itemID)
459 { 455 {
460 // myScriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "http_response", EventQueueManager.llDetectNull);
461 } 456 }
462 457
463 /// <summary> 458 /// <summary>