aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs187
2 files changed, 187 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index b54bc04..7888a63 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -910,6 +910,5 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
910 910
911 return jsondata; 911 return jsondata;
912 } 912 }
913
914 } 913 }
915} 914}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index de11d06..63d74b1 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -51,6 +51,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
51 return; 51 return;
52 52
53 m_OSSL_Functions = (IOSSL_Api)api; 53 m_OSSL_Functions = (IOSSL_Api)api;
54
55 Prim = new OSSLPrim(this);
54 } 56 }
55 57
56 public void osSetRegionWaterHeight(double height) 58 public void osSetRegionWaterHeight(double height)
@@ -224,5 +226,190 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
224 { 226 {
225 return m_OSSL_Functions.osParseJSON(JSON); 227 return m_OSSL_Functions.osParseJSON(JSON);
226 } 228 }
229
230 public OSSLPrim Prim;
231
232 [Serializable]
233 public class OSSLPrim
234 {
235 internal ScriptBaseClass OSSL;
236 public OSSLPrim(ScriptBaseClass bc)
237 {
238 OSSL = bc;
239 Position = new OSSLPrim_Position(this);
240 Rotation = new OSSLPrim_Rotation(this);
241 }
242
243 public OSSLPrim_Position Position;
244 public OSSLPrim_Rotation Rotation;
245 private TextStruct _text;
246 public TextStruct Text
247 {
248 get { return _text; }
249 set
250 {
251 _text = value;
252 OSSL.llSetText(_text.Text, _text.color, _text.alpha);
253 }
254 }
255
256 [Serializable]
257 public struct TextStruct
258 {
259 public string Text;
260 public LSL_Types.Vector3 color;
261 public double alpha;
262 }
263 }
264
265 [Serializable]
266 public class OSSLPrim_Position
267 {
268 private OSSLPrim prim;
269 private LSL_Types.Vector3 Position;
270 public OSSLPrim_Position(OSSLPrim _prim)
271 {
272 prim = _prim;
273 }
274 private void Load()
275 {
276 Position = prim.OSSL.llGetPos();
277 }
278 private void Save()
279 {
280 if (Position.x > 255)
281 Position.x = 255;
282 if (Position.x < 0)
283 Position.x = 0;
284 if (Position.y > 255)
285 Position.y = 255;
286 if (Position.y < 0)
287 Position.y = 0;
288 if (Position.z > 768)
289 Position.z = 768;
290 if (Position.z < 0)
291 Position.z = 0;
292 prim.OSSL.llSetPos(Position);
293 }
294
295 public double x
296 {
297 get
298 {
299 Load();
300 return Position.x;
301 }
302 set
303 {
304 Load();
305 Position.x = value;
306 Save();
307 }
308 }
309 public double y
310 {
311 get
312 {
313 Load();
314 return Position.y;
315 }
316 set
317 {
318 Load();
319 Position.y = value;
320 Save();
321 }
322 }
323 public double z
324 {
325 get
326 {
327 Load();
328 return Position.z;
329 }
330 set
331 {
332 Load();
333 Position.z = value;
334 Save();
335 }
336 }
337 }
338
339 [Serializable]
340 public class OSSLPrim_Rotation
341 {
342 private OSSLPrim prim;
343 private LSL_Types.Quaternion Rotation;
344 public OSSLPrim_Rotation(OSSLPrim _prim)
345 {
346 prim = _prim;
347 }
348 private void Load()
349 {
350 Rotation = prim.OSSL.llGetRot();
351 }
352 private void Save()
353 {
354 prim.OSSL.llSetRot(Rotation);
355 }
356
357 public double x
358 {
359 get
360 {
361 Load();
362 return Rotation.x;
363 }
364 set
365 {
366 Load();
367 Rotation.x = value;
368 Save();
369 }
370 }
371 public double y
372 {
373 get
374 {
375 Load();
376 return Rotation.y;
377 }
378 set
379 {
380 Load();
381 Rotation.y = value;
382 Save();
383 }
384 }
385 public double z
386 {
387 get
388 {
389 Load();
390 return Rotation.z;
391 }
392 set
393 {
394 Load();
395 Rotation.z = value;
396 Save();
397 }
398 }
399 public double s
400 {
401 get
402 {
403 Load();
404 return Rotation.s;
405 }
406 set
407 {
408 Load();
409 Rotation.s = value;
410 Save();
411 }
412 }
413 }
227 } 414 }
228} 415}