aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/ScriptEngine/Common
diff options
context:
space:
mode:
authorTedd Hansen2007-10-05 19:56:44 +0000
committerTedd Hansen2007-10-05 19:56:44 +0000
commit6dd923b01d6864ffcb17030c9de17224f45b4c2a (patch)
tree83d00d90a13f6803b38988049096296caf9f4c17 /OpenSim/Grid/ScriptEngine/Common
parentCode from Illumious Beltran (IBM) implementing more LSL (diff)
downloadopensim-SC_OLD-6dd923b01d6864ffcb17030c9de17224f45b4c2a.zip
opensim-SC_OLD-6dd923b01d6864ffcb17030c9de17224f45b4c2a.tar.gz
opensim-SC_OLD-6dd923b01d6864ffcb17030c9de17224f45b4c2a.tar.bz2
opensim-SC_OLD-6dd923b01d6864ffcb17030c9de17224f45b4c2a.tar.xz
Some more work on new ScriptEngine.
Diffstat (limited to 'OpenSim/Grid/ScriptEngine/Common')
-rw-r--r--OpenSim/Grid/ScriptEngine/Common/Executor.cs115
-rw-r--r--OpenSim/Grid/ScriptEngine/Common/IScript.cs12
-rw-r--r--OpenSim/Grid/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs635
-rw-r--r--OpenSim/Grid/ScriptEngine/Common/LSL_Types.cs53
-rw-r--r--OpenSim/Grid/ScriptEngine/Common/Properties/AssemblyInfo.cs33
5 files changed, 848 insertions, 0 deletions
diff --git a/OpenSim/Grid/ScriptEngine/Common/Executor.cs b/OpenSim/Grid/ScriptEngine/Common/Executor.cs
new file mode 100644
index 0000000..49bc713
--- /dev/null
+++ b/OpenSim/Grid/ScriptEngine/Common/Executor.cs
@@ -0,0 +1,115 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Reflection;
5using System.Runtime.Remoting.Lifetime;
6
7namespace OpenSim.Grid.ScriptEngine.Common
8{
9 public class Executor : MarshalByRefObject
10 {
11 // Private instance for each script
12
13 private IScript m_Script;
14 private Dictionary<string, MethodInfo> Events = new Dictionary<string, MethodInfo>();
15 private bool m_Running = true;
16 //private List<IScript> Scripts = new List<IScript>();
17
18 public Executor(IScript Script)
19 {
20 m_Script = Script;
21 }
22
23 // Object never expires
24 public override Object InitializeLifetimeService()
25 {
26 //Console.WriteLine("Executor: InitializeLifetimeService()");
27 // return null;
28 ILease lease = (ILease)base.InitializeLifetimeService();
29
30 if (lease.CurrentState == LeaseState.Initial)
31 {
32 lease.InitialLeaseTime = TimeSpan.Zero; // TimeSpan.FromMinutes(1);
33// lease.SponsorshipTimeout = TimeSpan.FromMinutes(2);
34// lease.RenewOnCallTime = TimeSpan.FromSeconds(2);
35 }
36 return lease;
37 }
38
39 public AppDomain GetAppDomain()
40 {
41 return AppDomain.CurrentDomain;
42 }
43
44 public void ExecuteEvent(string FunctionName, object[] args)
45 {
46 // IMPORTANT: Types and MemberInfo-derived objects require a LOT of memory.
47 // Instead use RuntimeTypeHandle, RuntimeFieldHandle and RunTimeHandle (IntPtr) instead!
48 //try
49 //{
50 if (m_Running == false)
51 {
52 // Script is inactive, do not execute!
53 return;
54 }
55
56 string EventName = m_Script.State() + "_event_" + FunctionName;
57
58 //type.InvokeMember(EventName, BindingFlags.InvokeMethod, null, m_Script, args);
59
60 //Console.WriteLine("ScriptEngine Executor.ExecuteEvent: \"" + EventName + "\"");
61
62 if (Events.ContainsKey(EventName) == false)
63 {
64 // Not found, create
65 Type type = m_Script.GetType();
66 try
67 {
68 MethodInfo mi = type.GetMethod(EventName);
69 Events.Add(EventName, mi);
70 }
71 catch
72 {
73 // Event name not found, cache it as not found
74 Events.Add(EventName, null);
75 }
76 }
77
78 // Get event
79 MethodInfo ev = null;
80 Events.TryGetValue(EventName, out ev);
81
82 if (ev == null) // No event by that name!
83 {
84 //Console.WriteLine("ScriptEngine Can not find any event named: \"" + EventName + "\"");
85 return;
86 }
87
88 // Found
89 //try
90 //{
91 // Invoke it
92 ev.Invoke(m_Script, args);
93
94 //}
95 //catch (Exception e)
96 //{
97 // // TODO: Send to correct place
98 // Console.WriteLine("ScriptEngine Exception attempting to executing script function: " + e.ToString());
99 //}
100
101
102 //}
103 //catch { }
104 }
105
106
107 public void StopScript()
108 {
109 m_Running = false;
110 }
111
112
113 }
114
115}
diff --git a/OpenSim/Grid/ScriptEngine/Common/IScript.cs b/OpenSim/Grid/ScriptEngine/Common/IScript.cs
new file mode 100644
index 0000000..24cc4f1
--- /dev/null
+++ b/OpenSim/Grid/ScriptEngine/Common/IScript.cs
@@ -0,0 +1,12 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace OpenSim.Grid.ScriptEngine.Common
6{
7 public interface IScript
8 {
9 string State();
10 Executor Exec { get; }
11 }
12}
diff --git a/OpenSim/Grid/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs b/OpenSim/Grid/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs
new file mode 100644
index 0000000..7bd6f43
--- /dev/null
+++ b/OpenSim/Grid/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs
@@ -0,0 +1,635 @@
1/*
2* Copyright (c) Contributors, http://opensimulator.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28/* Original code: Tedd Hansen */
29using System;
30using System.Collections.Generic;
31using System.Text;
32
33namespace OpenSim.Grid.ScriptEngine.Common
34{
35 public interface LSL_BuiltIn_Commands_Interface
36 {
37
38 string State();
39
40 double llSin(double f);
41 double llCos(double f);
42 double llTan(double f);
43 double llAtan2(double x, double y);
44 double llSqrt(double f);
45 double llPow(double fbase, double fexponent);
46 int llAbs(int i);
47 double llFabs(double f);
48 double llFrand(double mag);
49 int llFloor(double f);
50 int llCeil(double f);
51 int llRound(double f);
52 double llVecMag(LSL_Types.Vector3 v);
53 LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v);
54 double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b);
55 LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r);
56 LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v);
57 LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up);
58 LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r);
59 LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r);
60 LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r);
61 LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end);
62 void llWhisper(int channelID, string text);
63 //void llSay(int channelID, string text);
64 void llSay(int channelID, string text);
65 void llShout(int channelID, string text);
66 int llListen(int channelID, string name, string ID, string msg);
67 void llListenControl(int number, int active);
68 void llListenRemove(int number);
69 void llSensor(string name, string id, int type, double range, double arc);
70 void llSensorRepeat(string name, string id, int type, double range, double arc, double rate);
71 void llSensorRemove();
72 string llDetectedName(int number);
73 string llDetectedKey(int number);
74 string llDetectedOwner(int number);
75 int llDetectedType(int number);
76 LSL_Types.Vector3 llDetectedPos(int number);
77 LSL_Types.Vector3 llDetectedVel(int number);
78 LSL_Types.Vector3 llDetectedGrab(int number);
79 LSL_Types.Quaternion llDetectedRot(int number);
80 int llDetectedGroup(int number);
81 int llDetectedLinkNumber(int number);
82 void llDie();
83 double llGround(LSL_Types.Vector3 offset);
84 double llCloud(LSL_Types.Vector3 offset);
85 LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset);
86 void llSetStatus(int status, int value);
87 int llGetStatus(int status);
88 void llSetScale(LSL_Types.Vector3 scale);
89 LSL_Types.Vector3 llGetScale();
90 void llSetColor(LSL_Types.Vector3 color, int face);
91 double llGetAlpha(int face);
92 void llSetAlpha(double alpha, int face);
93 LSL_Types.Vector3 llGetColor(int face);
94 void llSetTexture(string texture, int face);
95 void llScaleTexture(double u, double v, int face);
96 void llOffsetTexture(double u, double v, int face);
97 void llRotateTexture(double rotation, int face);
98 string llGetTexture(int face);
99 void llSetPos(LSL_Types.Vector3 pos);
100
101 //wiki: vector llGetPos()
102 LSL_Types.Vector3 llGetPos();
103 //wiki: vector llGetLocalPos()
104 LSL_Types.Vector3 llGetLocalPos();
105 //wiki: llSetRot(rotation rot)
106 void llSetRot(LSL_Types.Quaternion rot);
107 //wiki: rotation llGetRot()
108 LSL_Types.Quaternion llGetRot();
109 //wiki: rotation llGetLocalRot()
110 LSL_Types.Quaternion llGetLocalRot();
111 //wiki: llSetForce(vector force, integer local)
112 void llSetForce(LSL_Types.Vector3 force, int local);
113 //wiki: vector llGetForce()
114 LSL_Types.Vector3 llGetForce();
115 //wiki: integer llTarget(vector position, double range)
116 int llTarget(LSL_Types.Vector3 position, double range);
117 //wiki: llTargetRemove(integer number)
118 void llTargetRemove(int number);
119 //wiki: integer llRotTarget(rotation rot, double error)
120 int llRotTarget(LSL_Types.Quaternion rot, double error);
121 //wiki: integer llRotTargetRemove(integer number)
122 void llRotTargetRemove(int number);
123 //wiki: llMoveToTarget(vector target, double tau)
124 void llMoveToTarget(LSL_Types.Vector3 target, double tau);
125 //wiki: llStopMoveToTarget()
126 void llStopMoveToTarget();
127 //wiki: llApplyImpulse(vector force, integer local)
128 void llApplyImpulse(LSL_Types.Vector3 force, int local);
129 //wiki: llapplyRotationalImpulse(vector force, integer local)
130 void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local);
131 //wiki: llSetTorque(vector torque, integer local)
132 void llSetTorque(LSL_Types.Vector3 torque, int local);
133 //wiki: vector llGetTorque()
134 LSL_Types.Vector3 llGetTorque();
135 //wiki: llSeForceAndTorque(vector force, vector torque, integer local)
136 void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local);
137 //wiki: vector llGetVel()
138 LSL_Types.Vector3 llGetVel();
139 //wiki: vector llGetAccel()
140 LSL_Types.Vector3 llGetAccel();
141 //wiki: vector llGetOmega()
142 LSL_Types.Vector3 llGetOmega();
143 //wiki: double llGetTimeOfDay()
144 double llGetTimeOfDay();
145 //wiki: double llGetWallclock()
146 double llGetWallclock();
147 //wiki: double llGetTime()
148 double llGetTime();
149 //wiki: llResetTime()
150 void llResetTime();
151 //wiki: double llGetAndResetTime()
152 double llGetAndResetTime();
153 //wiki (deprecated) llSound(string sound, double volume, integer queue, integer loop)
154 void llSound();
155 //wiki: llPlaySound(string sound, double volume)
156 void llPlaySound(string sound, double volume);
157 //wiki: llLoopSound(string sound, double volume)
158 void llLoopSound(string sound, double volume);
159 //wiki: llLoopSoundMaster(string sound, double volume)
160 void llLoopSoundMaster(string sound, double volume);
161 //wiki: llLoopSoundSlave(string sound, double volume)
162 void llLoopSoundSlave(string sound, double volume);
163 //wiki llPlaySoundSlave(string sound, double volume)
164 void llPlaySoundSlave(string sound, double volume);
165 //wiki: llTriggerSound(string sound, double volume)
166 void llTriggerSound(string sound, double volume);
167 //wiki: llStopSound()
168 void llStopSound();
169 //wiki: llPreloadSound(string sound)
170 void llPreloadSound(string sound);
171 //wiki: string llGetSubString(string src, integer start, integer end)
172 string llGetSubString(string src, int start, int end);
173 //wiki: string llDeleteSubString(string src, integer start, integer end)
174 string llDeleteSubString(string src, int start, int end);
175 //wiki string llInsertString(string dst, integer position, string src)
176 string llInsertString(string dst, int position, string src);
177 //wiki: string llToUpper(string source)
178 string llToUpper(string source);
179 //wiki: string llToLower(string source)
180 string llToLower(string source);
181 //wiki: integer llGiveMoney(key destination, integer amount)
182 int llGiveMoney(string destination, int amount);
183 //wiki: (deprecated)
184 void llMakeExplosion();
185 //wiki: (deprecated)
186 void llMakeFountain();
187 //wiki: (deprecated)
188 void llMakeSmoke();
189 //wiki: (deprecated)
190 void llMakeFire();
191 //wiki: llRezObject(string inventory, vector pos, vector rel, rotation rot, integer param)
192 void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param);
193 //wiki: llLookAt(vector target, double strength, double damping)
194 void llLookAt(LSL_Types.Vector3 target, double strength, double damping);
195 //wiki: llStopLookAt()
196 void llStopLookAt();
197 //wiki: llSetTimerEvent(double sec)
198 void llSetTimerEvent(double sec);
199 //wiki: llSleep(double sec)
200 void llSleep(double sec);
201 //wiki: double llGetMass()
202 double llGetMass();
203 //wiki: llCollisionFilter(string name, key id, integer accept)
204 void llCollisionFilter(string name, string id, int accept);
205 //wiki: llTakeControls(integer controls, integer accept, integer pass_on)
206 void llTakeControls(int controls, int accept, int pass_on);
207 //wiki: llReleaseControls()
208 void llReleaseControls();
209 //wiki: llAttachToAvatar(integer attachment)
210 void llAttachToAvatar(int attachment);
211 //wiki: llDetachFromAvatar()
212 void llDetachFromAvatar();
213 //wiki: (deprecated) llTakeCamera()
214 void llTakeCamera();
215 //wiki: (deprecated) llReleaseCamera()
216 void llReleaseCamera();
217 //wiki: key llGetOwner()
218 string llGetOwner();
219 //wiki: llInstantMessage(key user, string message)
220 void llInstantMessage(string user, string message);
221 //wiki: llEmail(string address, string subject, string message)
222 void llEmail(string address, string subject, string message);
223 //wiki: llGetNextEmail(string address, string subject)
224 void llGetNextEmail(string address, string subject);
225 //wiki: key llGetKey()
226 string llGetKey();
227 //wiki: llSetBuoyancy(double buoyancy)
228 void llSetBuoyancy(double buoyancy);
229 //wiki: llSetHoverHeight(double height, integer water, double tau)
230 void llSetHoverHeight(double height, int water, double tau);
231 //wiki: llStopHover
232 void llStopHover();
233 //wiki: llMinEventDelay(double delay)
234 void llMinEventDelay(double delay);
235 //wiki: (deprecated) llSoundPreload()
236 void llSoundPreload();
237 //wiki: llRotLookAt(rotation target, double strength, double damping)
238 void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping);
239 //wiki: integer llStringLength(string str)
240 int llStringLength(string str);
241 //wiki: llStartAnimation(string anim)
242 void llStartAnimation(string anim);
243 //wiki: llStopAnimation(string anim)
244 void llStopAnimation(string anim);
245 //wiki: (deprecated) llPointAt
246 void llPointAt();
247 //wiki: (deprecated) llStopPointAt
248 void llStopPointAt();
249 //wiki: llTargetOmega(vector axis, double spinrate, double gain)
250 void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain);
251 //wiki: integer llGetStartParameter()
252 int llGetStartParameter();
253 //wiki: llGodLikeRezObject(key inventory, vector pos)
254 void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos);
255 //wiki: llRequestPermissions(key agent, integer perm)
256 void llRequestPermissions(string agent, int perm);
257 //wiki: key llGetPermissionsKey()
258 string llGetPermissionsKey();
259 //wiki: integer llGetPermissions()
260 int llGetPermissions();
261 //wiki integer llGetLinkNumber()
262 int llGetLinkNumber();
263 //wiki: llSetLinkColor(integer linknumber, vector color, integer face)
264 void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face);
265 //wiki: llCreateLink(key target, integer parent)
266 void llCreateLink(string target, int parent);
267 //wiki: llBreakLink(integer linknum)
268 void llBreakLink(int linknum);
269 //wiki: llBreakAllLinks()
270 void llBreakAllLinks();
271 //wiki: key llGetLinkKey(integer linknum)
272 string llGetLinkKey(int linknum);
273 //wiki: llGetLinkName(integer linknum)
274 void llGetLinkName(int linknum);
275 //wiki: integer llGetInventoryNumber(integer type)
276 int llGetInventoryNumber(int type);
277 //wiki: string llGetInventoryName(integer type, integer number)
278 string llGetInventoryName(int type, int number);
279 //wiki: llSetScriptState(string name, integer run)
280 void llSetScriptState(string name, int run);
281 //wiki: double llGetEnergy()
282 double llGetEnergy();
283 //wiki: llGiveInventory(key destination, string inventory)
284 void llGiveInventory(string destination, string inventory);
285 //wiki: llRemoveInventory(string item)
286 void llRemoveInventory(string item);
287 //wiki: llSetText(string text, vector color, double alpha)
288 void llSetText(string text, LSL_Types.Vector3 color, double alpha);
289 //wiki: double llWater(vector offset)
290 double llWater(LSL_Types.Vector3 offset);
291 //wiki: llPassTouches(integer pass)
292 void llPassTouches(int pass);
293 //wiki: key llRequestAgentData(key id, integer data)
294 string llRequestAgentData(string id, int data);
295 //wiki: key llRequestInventoryData(string name)
296 string llRequestInventoryData(string name);
297 //wiki: llSetDamage(double damage)
298 void llSetDamage(double damage);
299 //wiki: llTeleportAgentHome(key agent)
300 void llTeleportAgentHome(string agent);
301 //wiki: llModifyLand(integer action, integer brush)
302 void llModifyLand(int action, int brush);
303 //wiki: llCollisionSound(string impact_sound, double impact_volume)
304 void llCollisionSound(string impact_sound, double impact_volume);
305 //wiki: llCollisionSprite(string impact_sprite)
306 void llCollisionSprite(string impact_sprite);
307 //wiki: string llGetAnimation(key id)
308 string llGetAnimation(string id);
309 //wiki: llResetScript()
310 void llResetScript();
311 //wiki: llMessageLinked(integer linknum, integer num, string str, key id)
312 void llMessageLinked(int linknum, int num, string str, string id);
313 //wiki: llPushObject(key target, vector impulse, vector ang_impulse, integer local)
314 void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local);
315 //wiki: llPassCollisions(integer pass)
316 void llPassCollisions(int pass);
317 //wiki: string llGetScriptName()
318 string llGetScriptName();
319 //wiki: integer llGetNumberOfSides()
320 int llGetNumberOfSides();
321 //wiki: rotation llAxisAngle2Rot(vector axis, double angle)
322 LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle);
323 //wiki: vector llRot2Axis(rotation rot)
324 LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot);
325 void llRot2Angle();
326 //wiki: double llAcos(double val)
327 double llAcos(double val);
328 //wiki: double llAsin(double val)
329 double llAsin(double val);
330 //wiki: double llAngleBetween(rotation a, rotation b)
331 double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b);
332 //wiki: string llGetInventoryKey(string name)
333 string llGetInventoryKey(string name);
334 //wiki: llAllowInventoryDrop(integer add)
335 void llAllowInventoryDrop(int add);
336 //wiki: vector llGetSunDirection()
337 LSL_Types.Vector3 llGetSunDirection();
338 //wiki: vector llGetTextureOffset(integer face)
339 LSL_Types.Vector3 llGetTextureOffset(int face);
340 //wiki: vector llGetTextureScale(integer side)
341 LSL_Types.Vector3 llGetTextureScale(int side);
342 //wiki: double llGetTextureRot(integer side)
343 double llGetTextureRot(int side);
344 //wiki: integer llSubStringIndex(string source, string pattern)
345 int llSubStringIndex(string source, string pattern);
346 //wiki: key llGetOwnerKey(key id)
347 string llGetOwnerKey(string id);
348 //wiki: vector llGetCenterOfMass()
349 LSL_Types.Vector3 llGetCenterOfMass();
350 //wiki: list llListSort(list src, integer stride, integer ascending)
351 List<string> llListSort(List<string> src, int stride, int ascending);
352 //integer llGetListLength(list src)
353 int llGetListLength(List<string> src);
354 //wiki: integer llList2Integer(list src, integer index)
355 int llList2Integer(List<string> src, int index);
356 //wiki: double llList2double(list src, integer index)
357 double llList2double(List<string> src, int index);
358 //wiki: string llList2String(list src, integer index)
359 string llList2String(List<string> src, int index);
360 //wiki: key llList2Key(list src, integer index)
361 string llList2Key(List<string> src, int index);
362 //wiki: vector llList2Vector(list src, integer index)
363 LSL_Types.Vector3 llList2Vector(List<string> src, int index);
364 //wiki rotation llList2Rot(list src, integer index)
365 LSL_Types.Quaternion llList2Rot(List<string> src, int index);
366 //wiki: list llList2List(list src, integer start, integer end)
367 List<string> llList2List(List<string> src, int start, int end);
368 //wiki: llDeleteSubList(list src, integer start, integer end)
369 List<string> llDeleteSubList(List<string> src, int start, int end);
370 //wiki: integer llGetListEntryType( list src, integer index )
371 int llGetListEntryType(List<string> src, int index);
372 //wiki: string llList2CSV( list src )
373 string llList2CSV(List<string> src);
374 //wiki: list llCSV2List( string src )
375 List<string> llCSV2List(string src);
376 //wiki: list llListRandomize( list src, integer stride )
377 List<string> llListRandomize(List<string> src, int stride);
378 //wiki: list llList2ListStrided( list src, integer start, integer end, integer stride )
379 List<string> llList2ListStrided(List<string> src, int start, int end, int stride);
380 //wiki: vector llGetRegionCorner( )
381 LSL_Types.Vector3 llGetRegionCorner();
382 //wiki: list llListInsertList( list dest, list src, integer start )
383 List<string> llListInsertList(List<string> dest, List<string> src, int start);
384 //wiki: integer llListFindList( list src, list test )
385 int llListFindList(List<string> src, List<string> test);
386 //wiki: string llGetObjectName()
387 string llGetObjectName();
388 //wiki: llSetObjectName(string name)
389 void llSetObjectName(string name);
390 //wiki: string llGetDate()
391 string llGetDate();
392 //wiki: integer llEdgeOfWorld(vector pos, vector dir)
393 int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir);
394 //wiki: integer llGetAgentInfo(key id)
395 int llGetAgentInfo(string id);
396 //wiki: llAdjustSoundVolume(double volume)
397 void llAdjustSoundVolume(double volume);
398 //wiki: llSetSoundQueueing(integer queue)
399 void llSetSoundQueueing(int queue);
400 //wiki: llSetSoundRadius(double radius)
401 void llSetSoundRadius(double radius);
402 //wiki: string llKey2Name(key id)
403 string llKey2Name(string id);
404 //wiki: llSetTextureAnim(integer mode, integer face, integer sizex, integer sizey, double start, double length, double rate)
405 void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate);
406 //wiki: llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west)
407 void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, LSL_Types.Vector3 bottom_south_west);
408 //wiki: llEjectFromLand(key pest)
409 void llEjectFromLand(string pest);
410 void llParseString2List();
411 //wiki: integer llOverMyLand(key id)
412 int llOverMyLand(string id);
413 //wiki: key llGetLandOwnerAt(vector pos)
414 string llGetLandOwnerAt(LSL_Types.Vector3 pos);
415 //wiki: key llGetNotecardLine(string name, integer line)
416 string llGetNotecardLine(string name, int line);
417 //wiki: vector llGetAgentSize(key id)
418 LSL_Types.Vector3 llGetAgentSize(string id);
419 //wiki: integer llSameGroup(key agent)
420 int llSameGroup(string agent);
421 //wiki: llUnSit(key id)
422 void llUnSit(string id);
423 //wiki: vector llGroundSlope(vector offset)
424 LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset);
425 //wiki: vector llGroundNormal(vector offset)
426 LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset);
427 //wiki: vector llGroundContour(vector offset)
428 LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset);
429 //wiki: integer llGetAttached()
430 int llGetAttached();
431 //wiki: integer llGetFreeMemory()
432 int llGetFreeMemory();
433 //wiki: string llGetRegionName()
434 string llGetRegionName();
435 //wiki: double llGetRegionTimeDilation()
436 double llGetRegionTimeDilation();
437 //wiki: double llGetRegionFPS()
438 double llGetRegionFPS();
439 //wiki: llParticleSystem(List<Object> rules
440 void llParticleSystem(List<Object> rules);
441 //wiki: llGroundRepel(double height, integer water, double tau)
442 void llGroundRepel(double height, int water, double tau);
443 void llGiveInventoryList();
444 //wiki: llSetVehicleType(integer type)
445 void llSetVehicleType(int type);
446 //wiki: llSetVehicledoubleParam(integer param, double value)
447 void llSetVehicledoubleParam(int param, double value);
448 //wiki: llSetVehicleVectorParam(integer param, vector vec)
449 void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec);
450 //wiki: llSetVehicleRotationParam(integer param, rotation rot)
451 void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot);
452 //wiki: llSetVehicleFlags(integer flags)
453 void llSetVehicleFlags(int flags);
454 //wiki: llRemoveVehicleFlags(integer flags)
455 void llRemoveVehicleFlags(int flags);
456 //wiki: llSitTarget(vector offset, rotation rot)
457 void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot);
458 //wiki key llAvatarOnSitTarget()
459 string llAvatarOnSitTarget();
460 //wiki: llAddToLandPassList(key avatar, double hours)
461 void llAddToLandPassList(string avatar, double hours);
462 //wiki: llSetTouchText(string text)
463 void llSetTouchText(string text);
464 //wiki: llSetSitText(string text)
465 void llSetSitText(string text);
466 //wiki: llSetCameraEyeOffset(vector offset)
467 void llSetCameraEyeOffset(LSL_Types.Vector3 offset);
468 //wiki: llSeteCameraAtOffset(vector offset)
469 void llSetCameraAtOffset(LSL_Types.Vector3 offset);
470 void llDumpList2String();
471 //wiki: integer llScriptDanger(vector pos)
472 void llScriptDanger(LSL_Types.Vector3 pos);
473 //wiki: llDialog( key avatar, string message, list buttons, integer chat_channel )
474 void llDialog(string avatar, string message, List<string> buttons, int chat_channel);
475 //wiki: llVolumeDetect(integer detect)
476 void llVolumeDetect(int detect);
477 //wiki: llResetOtherScript(string name)
478 void llResetOtherScript(string name);
479 //wiki: integer llGetScriptState(string name)
480 int llGetScriptState(string name);
481 //wiki: (deprecated)
482 void llRemoteLoadScript();
483 //wiki: llSetRemoteScriptAccessPin(integer pin)
484 void llSetRemoteScriptAccessPin(int pin);
485 //wiki: llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer start_param)
486 void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param);
487 //wiki: llOpenRemoteDataChannel()
488 void llOpenRemoteDataChannel();
489 //wiki: key llSendRemoteData(key channel, string dest, integer idata, string sdata)
490 string llSendRemoteData(string channel, string dest, int idata, string sdata);
491 //wiki: llRemoteDataReply(key channel, key message_id, string sdata, integer idata)
492 void llRemoteDataReply(string channel, string message_id, string sdata, int idata);
493 //wiki: llCloseRemoteDataChannel(key channel)
494 void llCloseRemoteDataChannel(string channel);
495 //wiki: string llMD5String(string src, integer nonce)
496 string llMD5String(string src, int nonce);
497 //wiki: llSetPrimitiveParams( list rules )
498 void llSetPrimitiveParams(List<string> rules);
499 //wiki: string llStringToBase64(string str)
500 string llStringToBase64(string str);
501 //wiki: string llBase64ToString(string str)
502 string llBase64ToString(string str);
503 //wiki: (deprecated)
504 void llXorBase64Strings();
505 //wiki: llRemoteDataSetRegion()
506 void llRemoteDataSetRegion();
507 //wiki: double llLog10(double val)
508 double llLog10(double val);
509 //wiki: double llLog(double val)
510 double llLog(double val);
511 //wiki: list llGetAnimationList( key id )
512 List<string> llGetAnimationList(string id);
513 //wiki: llSetParcelMusicURL(string url)
514 void llSetParcelMusicURL(string url);
515 //wiki: vector llGetRootPosition()
516 LSL_Types.Vector3 llGetRootPosition();
517 //wiki: rotation llGetRootRotation()
518 LSL_Types.Quaternion llGetRootRotation();
519 //wiki: string llGetObjectDesc()
520 string llGetObjectDesc();
521 //wiki: llSetObjectDesc(string desc)
522 void llSetObjectDesc(string desc);
523 //wiki: key llGetCreator()
524 string llGetCreator();
525 //wiki: string llGetTimestamp()
526 string llGetTimestamp();
527 //wiki: llSetLinkAlpha(integer linknumber, double alpha, integer face)
528 void llSetLinkAlpha(int linknumber, double alpha, int face);
529 //wiki: integer llGetNumberOfPrims()
530 int llGetNumberOfPrims();
531 //wiki: key llGetNumberOfNotecardLines(string name)
532 string llGetNumberOfNotecardLines(string name);
533 //wiki: list llGetBoundingBox( key object )
534 List<string> llGetBoundingBox(string obj);
535 //wiki: vector llGetGeometricCenter()
536 LSL_Types.Vector3 llGetGeometricCenter();
537 void llGetPrimitiveParams();
538 //wiki: string llIntegerToBase64(integer number)
539 string llIntegerToBase64(int number);
540 //wiki integer llBase64ToInteger(string str)
541 int llBase64ToInteger(string str);
542 //wiki: double llGetGMTclock()
543 double llGetGMTclock();
544 //wiki: string llGetSimulatorHostname()
545 string llGetSimulatorHostname();
546 //llSetLocalRot(rotation rot)
547 void llSetLocalRot(LSL_Types.Quaternion rot);
548 //wiki: list llParseStringKeepNulls( string src, list separators, list spacers )
549 List<string> llParseStringKeepNulls(string src, List<string> seperators, List<string> spacers);
550 //wiki: llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, integer param)
551 void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity, LSL_Types.Quaternion rot, int param);
552 //wiki: integer llGetObjectPermMask(integer mask)
553 int llGetObjectPermMask(int mask);
554 //wiki: llSetObjectPermMask(integer mask, integer value)
555 void llSetObjectPermMask(int mask, int value);
556 //wiki integer llGetInventoryPermMask(string item, integer mask)
557 void llGetInventoryPermMask(string item, int mask);
558 //wiki: llSetInventoryPermMask(string item, integer mask, integer value)
559 void llSetInventoryPermMask(string item, int mask, int value);
560 //wiki: key llGetInventoryCreator(string item)
561 string llGetInventoryCreator(string item);
562 //wiki: llOwnerSay(string msg)
563 void llOwnerSay(string msg);
564 //wiki: key llRequestSimulatorData(string simulator, integer data)
565 void llRequestSimulatorData(string simulator, int data);
566 //wiki: llForceMouselook(integer mouselook)
567 void llForceMouselook(int mouselook);
568 //wiki: double llGetObjectMass(key id)
569 double llGetObjectMass(string id);
570 void llListReplaceList();
571 //wiki: llLoadURL(key avatar_id, string message, string url)
572 void llLoadURL(string avatar_id, string message, string url);
573 //wiki: llParcelMediaCommandList( list commandList )
574 void llParcelMediaCommandList(List<string> commandList);
575 void llParcelMediaQuery();
576 //wiki integer llModPow(integer a, integer b, integer c)
577 int llModPow(int a, int b, int c);
578 //wiki: integer llGetInventoryType(string name)
579 int llGetInventoryType(string name);
580 //wiki: llSetPayPrice( integer price, list quick_pay_buttons )
581 void llSetPayPrice(int price, List<string> quick_pay_buttons);
582 //wiki: vector llGetCameraPos()
583 LSL_Types.Vector3 llGetCameraPos();
584 //wiki rotation llGetCameraRot()
585 LSL_Types.Quaternion llGetCameraRot();
586 //wiki: (deprecated)
587 void llSetPrimURL();
588 //wiki: (deprecated)
589 void llRefreshPrimURL();
590 //wiki: string llEscapeURL(string url)
591 string llEscapeURL(string url);
592 //wiki: string llUnescapeURL(string url)
593 string llUnescapeURL(string url);
594 //wiki: llMapDestination(string simname, vector pos, vector look_at)
595 void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at);
596 //wiki: llAddToLandBanList(key avatar, double hours)
597 void llAddToLandBanList(string avatar, double hours);
598 //wiki: llRemoveFromLandPassList(key avatar)
599 void llRemoveFromLandPassList(string avatar);
600 //wiki: llRemoveFromLandBanList(key avatar)
601 void llRemoveFromLandBanList(string avatar);
602 //wiki: llSetCameraParams( list rules )
603 void llSetCameraParams(List<string> rules);
604 //wiki: llClearCameraParams()
605 void llClearCameraParams();
606 //wiki: double llListStatistics( integer operation, list src )
607 double llListStatistics(int operation, List<string> src);
608 //wiki: integer llGetUnixTime()
609 int llGetUnixTime();
610 //wiki: integer llGetParcelFlags(vector pos)
611 int llGetParcelFlags(LSL_Types.Vector3 pos);
612 //wiki: integer llGetRegionFlags()
613 int llGetRegionFlags();
614 //wiki: string llXorBase64StringsCorrect(string str1, string str2)
615 string llXorBase64StringsCorrect(string str1, string str2);
616 void llHTTPRequest(string url, List<string> parameters, string body);
617 //wiki: llResetLandBanList()
618 void llResetLandBanList();
619 //wiki: llResetLandPassList()
620 void llResetLandPassList();
621 //wiki integer llGetParcelPrimCount(vector pos, integer category, integer sim_wide)
622 int llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide);
623 //wiki: list llGetParcelPrimOwners( vector pos )
624 List<string> llGetParcelPrimOwners(LSL_Types.Vector3 pos);
625 //wiki: integer llGetObjectPrimCount(key object_id)
626 int llGetObjectPrimCount(string object_id);
627 //wiki: integer llGetParcelMaxPrims( vector pos, integer sim_wide )
628 int llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide);
629 //wiki list llGetParcelDetails(vector pos, list params)
630 List<string> llGetParcelDetails(LSL_Types.Vector3 pos, List<string> param);
631
632 //OpenSim functions
633 string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer);
634 }
635}
diff --git a/OpenSim/Grid/ScriptEngine/Common/LSL_Types.cs b/OpenSim/Grid/ScriptEngine/Common/LSL_Types.cs
new file mode 100644
index 0000000..b2578dd
--- /dev/null
+++ b/OpenSim/Grid/ScriptEngine/Common/LSL_Types.cs
@@ -0,0 +1,53 @@
1using System;
2
3namespace OpenSim.Grid.ScriptEngine.Common
4{
5 [Serializable]
6 public class LSL_Types
7 {
8 [Serializable]
9 public struct Vector3
10 {
11 public double X;
12 public double Y;
13 public double Z;
14
15 public Vector3(Vector3 vector)
16 {
17 X = (float)vector.X;
18 Y = (float)vector.Y;
19 Z = (float)vector.Z;
20 }
21 public Vector3(double x, double y, double z)
22 {
23 X = x;
24 Y = y;
25 Z = z;
26 }
27 }
28 [Serializable]
29 public struct Quaternion
30 {
31 public double X;
32 public double Y;
33 public double Z;
34 public double R;
35
36 public Quaternion(Quaternion Quat)
37 {
38 X = (float)Quat.X;
39 Y = (float)Quat.Y;
40 Z = (float)Quat.Z;
41 R = (float)Quat.R;
42 }
43 public Quaternion(double x, double y, double z, double r)
44 {
45 X = x;
46 Y = y;
47 Z = z;
48 R = r;
49 }
50
51 }
52 }
53}
diff --git a/OpenSim/Grid/ScriptEngine/Common/Properties/AssemblyInfo.cs b/OpenSim/Grid/ScriptEngine/Common/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..6b5d3a8
--- /dev/null
+++ b/OpenSim/Grid/ScriptEngine/Common/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
1using System.Reflection;
2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices;
4
5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Grid.ScriptEngine.Common")]
9[assembly: AssemblyDescription("")]
10[assembly: AssemblyConfiguration("")]
11[assembly: AssemblyCompany("")]
12[assembly: AssemblyProduct("OpenSim.Grid.ScriptEngine.Common")]
13[assembly: AssemblyCopyright("Copyright © 2007")]
14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")]
16
17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)]
21
22// The following GUID is for the ID of the typelib if this project is exposed to COM
23[assembly: Guid("0bf07c53-ae51-487f-a907-e9b30c251602")]
24
25// Version information for an assembly consists of the following four values:
26//
27// Major Version
28// Minor Version
29// Build Number
30// Revision
31//
32[assembly: AssemblyVersion("1.0.0.0")]
33[assembly: AssemblyFileVersion("1.0.0.0")]