aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
diff options
context:
space:
mode:
authorlbsa712008-06-24 21:09:49 +0000
committerlbsa712008-06-24 21:09:49 +0000
commit6b7930104bdb845d3b9c085dc04f52b6446f23b1 (patch)
tree05ee45781a455817fa400bb99f30f4d19d4eb1f8 /OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
parentbased on positive feedback on performance of making keys fixed length (diff)
downloadopensim-SC_OLD-6b7930104bdb845d3b9c085dc04f52b6446f23b1.zip
opensim-SC_OLD-6b7930104bdb845d3b9c085dc04f52b6446f23b1.tar.gz
opensim-SC_OLD-6b7930104bdb845d3b9c085dc04f52b6446f23b1.tar.bz2
opensim-SC_OLD-6b7930104bdb845d3b9c085dc04f52b6446f23b1.tar.xz
* Applied patch from Melanie, mantis issue #1581 - "Refactor LSL language, api and compiler out of XEngine"
"First stage in a major Script Engine refactor, that will result in the LSL implementaions ebing reconverged. Not there yet, but one major part is done." Thank you, Melanie!
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs (renamed from OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs)697
1 files changed, 16 insertions, 681 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
index fc9f8fc..7b3907f 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
@@ -31,100 +31,25 @@ using System.Threading;
31using System.Reflection; 31using System.Reflection;
32using System.Collections; 32using System.Collections;
33using System.Collections.Generic; 33using System.Collections.Generic;
34using OpenSim.Region.Environment.Interfaces; 34using OpenSim.Region.ScriptEngine.Interfaces;
35using integer = OpenSim.Region.ScriptEngine.XEngine.Script.LSL_Types.LSLInteger; 35using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
36using integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
36using key = System.String; 37using key = System.String;
37using vector = OpenSim.Region.ScriptEngine.XEngine.Script.LSL_Types.Vector3; 38using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
38using rotation = OpenSim.Region.ScriptEngine.XEngine.Script.LSL_Types.Quaternion; 39using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
39 40
40namespace OpenSim.Region.ScriptEngine.XEngine.Script 41namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
41{ 42{
42 public class BuiltIn_Commands_BaseClass : MarshalByRefObject, IOSSL_ScriptCommands, ILSL_ScriptCommands, IScript 43 public partial class ScriptBaseClass : MarshalByRefObject
43 { 44 {
44 //private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 45 public ILSL_Api m_LSL_Functions;
45 46
46 // Object never expires 47 public void ApiTypeLSL(IScriptApi api)
47 public override Object InitializeLifetimeService()
48 { 48 {
49 //Console.WriteLine("LSL_BaseClass: InitializeLifetimeService()"); 49 if(!(api is ILSL_Api))
50 // return null; 50 return;
51 ILease lease = (ILease)base.InitializeLifetimeService();
52 51
53 if (lease.CurrentState == LeaseState.Initial) 52 m_LSL_Functions = (ILSL_Api)api;
54 {
55 lease.InitialLeaseTime = TimeSpan.Zero; // TimeSpan.FromMinutes(1);
56 //lease.SponsorshipTimeout = TimeSpan.FromMinutes(2);
57 //lease.RenewOnCallTime = TimeSpan.FromSeconds(2);
58 }
59 return lease;
60 }
61
62 public ILSL_ScriptCommands m_LSL_Functions;
63 public IOSSL_ScriptCommands m_OSSL_Functions;
64
65 public BuiltIn_Commands_BaseClass()
66 {
67 }
68
69 public Type Start(ILSL_ScriptCommands LSL_Functions, IOSSL_ScriptCommands OSSL_Functions)
70 {
71 m_LSL_Functions = LSL_Functions;
72 m_OSSL_Functions = OSSL_Functions;
73 m_InitialValues=GetVars();
74 return GetType();
75 }
76
77 private Dictionary<string, object> m_InitialValues =
78 new Dictionary<string, object>();
79 private Dictionary<string, FieldInfo> m_Fields =
80 new Dictionary<string, FieldInfo>();
81
82 public Dictionary<string, object> GetVars()
83 {
84 Dictionary<string, object> vars = new Dictionary<string, object>();
85
86 if (m_Fields == null)
87 return vars;
88
89 m_Fields.Clear();
90
91 Type t = GetType();
92
93 FieldInfo[] fields = t.GetFields(BindingFlags.NonPublic |
94 BindingFlags.Public |
95 BindingFlags.Instance |
96 BindingFlags.DeclaredOnly);
97
98 foreach (FieldInfo field in fields)
99 {
100 m_Fields[field.Name]=field;
101
102 vars[field.Name]=field.GetValue(this);
103 }
104
105 return vars;
106 }
107
108 public void SetVars(Dictionary<string, object> vars)
109 {
110 foreach (KeyValuePair<string, object> var in vars)
111 {
112 if (m_Fields.ContainsKey(var.Key))
113 {
114 m_Fields[var.Key].SetValue(this, var.Value);
115 }
116 }
117 }
118
119 public void ResetVars()
120 {
121 SetVars(m_InitialValues);
122 }
123
124 public string State
125 {
126 get { return m_LSL_Functions.State; }
127 set { m_LSL_Functions.State = value; }
128 } 53 }
129 54
130 public void state(string newState) 55 public void state(string newState)
@@ -132,26 +57,19 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
132 m_LSL_Functions.state(newState); 57 m_LSL_Functions.state(newState);
133 } 58 }
134 59
135 public void llSay(int channelID, string text)
136 {
137 m_LSL_Functions.llSay(channelID, text);
138 }
139
140 //
141 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
142 // 60 //
143 // They are only forwarders to LSL_BuiltIn_Commands.cs 61 // Script functions
144 // 62 //
145 63 public void llSay(int channelID, string text)
146 public ICommander GetCommander(string name)
147 { 64 {
148 return m_LSL_Functions.GetCommander(name); 65 m_LSL_Functions.llSay(channelID, text);
149 } 66 }
150 67
151 public double llSin(double f) 68 public double llSin(double f)
152 { 69 {
153 return m_LSL_Functions.llSin(f); 70 return m_LSL_Functions.llSin(f);
154 } 71 }
72
155 public double llCos(double f) 73 public double llCos(double f)
156 { 74 {
157 return m_LSL_Functions.llCos(f); 75 return m_LSL_Functions.llCos(f);
@@ -262,9 +180,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
262 m_LSL_Functions.llWhisper(channelID, text); 180 m_LSL_Functions.llWhisper(channelID, text);
263 } 181 }
264 182
265 //
266 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
267 //
268 public void llShout(int channelID, string text) 183 public void llShout(int channelID, string text)
269 { 184 {
270 m_LSL_Functions.llShout(channelID, text); 185 m_LSL_Functions.llShout(channelID, text);
@@ -355,9 +270,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
355 return m_LSL_Functions.llDetectedLinkNumber(number); 270 return m_LSL_Functions.llDetectedLinkNumber(number);
356 } 271 }
357 272
358 //
359 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
360 //
361 public void llDie() 273 public void llDie()
362 { 274 {
363 m_LSL_Functions.llDie(); 275 m_LSL_Functions.llDie();
@@ -443,9 +355,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
443 return m_LSL_Functions.llGetTexture(face); 355 return m_LSL_Functions.llGetTexture(face);
444 } 356 }
445 357
446 //
447 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
448 //
449 public void llSetPos(vector pos) 358 public void llSetPos(vector pos)
450 { 359 {
451 m_LSL_Functions.llSetPos(pos); 360 m_LSL_Functions.llSetPos(pos);
@@ -521,9 +430,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
521 m_LSL_Functions.llApplyImpulse(force, local); 430 m_LSL_Functions.llApplyImpulse(force, local);
522 } 431 }
523 432
524 //
525 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
526 //
527 public void llApplyRotationalImpulse(vector force, int local) 433 public void llApplyRotationalImpulse(vector force, int local)
528 { 434 {
529 m_LSL_Functions.llApplyRotationalImpulse(force, local); 435 m_LSL_Functions.llApplyRotationalImpulse(force, local);
@@ -614,9 +520,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
614 m_LSL_Functions.llPlaySoundSlave(sound, volume); 520 m_LSL_Functions.llPlaySoundSlave(sound, volume);
615 } 521 }
616 522
617 //
618 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
619 //
620 public void llTriggerSound(string sound, double volume) 523 public void llTriggerSound(string sound, double volume)
621 { 524 {
622 m_LSL_Functions.llTriggerSound(sound, volume); 525 m_LSL_Functions.llTriggerSound(sound, volume);
@@ -707,9 +610,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
707 m_LSL_Functions.llSleep(sec); 610 m_LSL_Functions.llSleep(sec);
708 } 611 }
709 612
710 //
711 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
712 //
713 public double llGetMass() 613 public double llGetMass()
714 { 614 {
715 return m_LSL_Functions.llGetMass(); 615 return m_LSL_Functions.llGetMass();
@@ -805,9 +705,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
805 m_LSL_Functions.llRotLookAt(target, strength, damping); 705 m_LSL_Functions.llRotLookAt(target, strength, damping);
806 } 706 }
807 707
808 //
809 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
810 //
811 public LSL_Types.LSLInteger llStringLength(string str) 708 public LSL_Types.LSLInteger llStringLength(string str)
812 { 709 {
813 return m_LSL_Functions.llStringLength(str); 710 return m_LSL_Functions.llStringLength(str);
@@ -908,9 +805,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
908 return m_LSL_Functions.llGetInventoryName(type, number); 805 return m_LSL_Functions.llGetInventoryName(type, number);
909 } 806 }
910 807
911 //
912 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
913 //
914 public void llSetScriptState(string name, int run) 808 public void llSetScriptState(string name, int run)
915 { 809 {
916 m_LSL_Functions.llSetScriptState(name, run); 810 m_LSL_Functions.llSetScriptState(name, run);
@@ -1016,9 +910,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1016 return m_LSL_Functions.llGetNumberOfSides(); 910 return m_LSL_Functions.llGetNumberOfSides();
1017 } 911 }
1018 912
1019 //
1020 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1021 //
1022 public rotation llAxisAngle2Rot(vector axis, double angle) 913 public rotation llAxisAngle2Rot(vector axis, double angle)
1023 { 914 {
1024 return m_LSL_Functions.llAxisAngle2Rot(axis, angle); 915 return m_LSL_Functions.llAxisAngle2Rot(axis, angle);
@@ -1104,9 +995,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1104 return m_LSL_Functions.llGetListLength(src); 995 return m_LSL_Functions.llGetListLength(src);
1105 } 996 }
1106 997
1107 //
1108 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1109 //
1110 public LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index) 998 public LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index)
1111 { 999 {
1112 return m_LSL_Functions.llList2Integer(src, index); 1000 return m_LSL_Functions.llList2Integer(src, index);
@@ -1207,9 +1095,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1207 return m_LSL_Functions.llGetAgentInfo(id); 1095 return m_LSL_Functions.llGetAgentInfo(id);
1208 } 1096 }
1209 1097
1210 //
1211 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1212 //
1213 public void llAdjustSoundVolume(double volume) 1098 public void llAdjustSoundVolume(double volume)
1214 { 1099 {
1215 m_LSL_Functions.llAdjustSoundVolume(volume); 1100 m_LSL_Functions.llAdjustSoundVolume(volume);
@@ -1320,9 +1205,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1320 return m_LSL_Functions.llGetRegionFPS(); 1205 return m_LSL_Functions.llGetRegionFPS();
1321 } 1206 }
1322 1207
1323 //
1324 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1325 //
1326 public void llParticleSystem(LSL_Types.list rules) 1208 public void llParticleSystem(LSL_Types.list rules)
1327 { 1209 {
1328 m_LSL_Functions.llParticleSystem(rules); 1210 m_LSL_Functions.llParticleSystem(rules);
@@ -1453,9 +1335,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1453 m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param); 1335 m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param);
1454 } 1336 }
1455 1337
1456 //
1457 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1458 //
1459 public void llOpenRemoteDataChannel() 1338 public void llOpenRemoteDataChannel()
1460 { 1339 {
1461 m_LSL_Functions.llOpenRemoteDataChannel(); 1340 m_LSL_Functions.llOpenRemoteDataChannel();
@@ -1590,9 +1469,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1590 return m_LSL_Functions.llGetPrimitiveParams(rules); 1469 return m_LSL_Functions.llGetPrimitiveParams(rules);
1591 } 1470 }
1592 1471
1593 //
1594 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1595 //
1596 public string llIntegerToBase64(int number) 1472 public string llIntegerToBase64(int number)
1597 { 1473 {
1598 return m_LSL_Functions.llIntegerToBase64(number); 1474 return m_LSL_Functions.llIntegerToBase64(number);
@@ -1698,9 +1574,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1698 return m_LSL_Functions.llModPow(a, b, c); 1574 return m_LSL_Functions.llModPow(a, b, c);
1699 } 1575 }
1700 1576
1701 //
1702 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1703 //
1704 public LSL_Types.LSLInteger llGetInventoryType(string name) 1577 public LSL_Types.LSLInteger llGetInventoryType(string name)
1705 { 1578 {
1706 return m_LSL_Functions.llGetInventoryType(name); 1579 return m_LSL_Functions.llGetInventoryType(name);
@@ -1826,9 +1699,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1826 return m_LSL_Functions.llGetObjectPrimCount(object_id); 1699 return m_LSL_Functions.llGetObjectPrimCount(object_id);
1827 } 1700 }
1828 1701
1829 //
1830 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1831 //
1832 public LSL_Types.LSLInteger llGetParcelMaxPrims(vector pos, int sim_wide) 1702 public LSL_Types.LSLInteger llGetParcelMaxPrims(vector pos, int sim_wide)
1833 { 1703 {
1834 return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide); 1704 return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide);
@@ -1858,540 +1728,5 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
1858 { 1728 {
1859 return m_LSL_Functions.llList2Float(src, index); 1729 return m_LSL_Functions.llList2Float(src, index);
1860 } 1730 }
1861
1862 // LSL CONSTANTS
1863 public const int TRUE = 1;
1864 public const int FALSE = 0;
1865
1866 public const int STATUS_PHYSICS = 1;
1867 public const int STATUS_ROTATE_X = 2;
1868 public const int STATUS_ROTATE_Y = 4;
1869 public const int STATUS_ROTATE_Z = 8;
1870 public const int STATUS_PHANTOM = 16;
1871 public const int STATUS_SANDBOX = 32;
1872 public const int STATUS_BLOCK_GRAB = 64;
1873 public const int STATUS_DIE_AT_EDGE = 128;
1874 public const int STATUS_RETURN_AT_EDGE = 256;
1875 public const int STATUS_CAST_SHADOWS = 512;
1876
1877 public const int AGENT = 1;
1878 public const int ACTIVE = 2;
1879 public const int PASSIVE = 4;
1880 public const int SCRIPTED = 8;
1881
1882 public const int CONTROL_FWD = 1;
1883 public const int CONTROL_BACK = 2;
1884 public const int CONTROL_LEFT = 4;
1885 public const int CONTROL_RIGHT = 8;
1886 public const int CONTROL_UP = 16;
1887 public const int CONTROL_DOWN = 32;
1888 public const int CONTROL_ROT_LEFT = 256;
1889 public const int CONTROL_ROT_RIGHT = 512;
1890 public const int CONTROL_LBUTTON = 268435456;
1891 public const int CONTROL_ML_LBUTTON = 1073741824;
1892
1893 //Permissions
1894 public const int PERMISSION_DEBIT = 2;
1895 public const int PERMISSION_TAKE_CONTROLS = 4;
1896 public const int PERMISSION_REMAP_CONTROLS = 8;
1897 public const int PERMISSION_TRIGGER_ANIMATION = 16;
1898 public const int PERMISSION_ATTACH = 32;
1899 public const int PERMISSION_RELEASE_OWNERSHIP = 64;
1900 public const int PERMISSION_CHANGE_LINKS = 128;
1901 public const int PERMISSION_CHANGE_JOINTS = 256;
1902 public const int PERMISSION_CHANGE_PERMISSIONS = 512;
1903 public const int PERMISSION_TRACK_CAMERA = 1024;
1904
1905 public const int AGENT_FLYING = 1;
1906 public const int AGENT_ATTACHMENTS = 2;
1907 public const int AGENT_SCRIPTED = 4;
1908 public const int AGENT_MOUSELOOK = 8;
1909 public const int AGENT_SITTING = 16;
1910 public const int AGENT_ON_OBJECT = 32;
1911 public const int AGENT_AWAY = 64;
1912 public const int AGENT_WALKING = 128;
1913 public const int AGENT_IN_AIR = 256;
1914 public const int AGENT_TYPING = 512;
1915 public const int AGENT_CROUCHING = 1024;
1916 public const int AGENT_BUSY = 2048;
1917 public const int AGENT_ALWAYS_RUN = 4096;
1918
1919 //Particle Systems
1920 public const int PSYS_PART_INTERP_COLOR_MASK = 1;
1921 public const int PSYS_PART_INTERP_SCALE_MASK = 2;
1922 public const int PSYS_PART_BOUNCE_MASK = 4;
1923 public const int PSYS_PART_WIND_MASK = 8;
1924 public const int PSYS_PART_FOLLOW_SRC_MASK = 16;
1925 public const int PSYS_PART_FOLLOW_VELOCITY_MASK = 32;
1926 public const int PSYS_PART_TARGET_POS_MASK = 64;
1927 public const int PSYS_PART_TARGET_LINEAR_MASK = 128;
1928 public const int PSYS_PART_EMISSIVE_MASK = 256;
1929 public const int PSYS_PART_FLAGS = 0;
1930 public const int PSYS_PART_START_COLOR = 1;
1931 public const int PSYS_PART_START_ALPHA = 2;
1932 public const int PSYS_PART_END_COLOR = 3;
1933 public const int PSYS_PART_END_ALPHA = 4;
1934 public const int PSYS_PART_START_SCALE = 5;
1935 public const int PSYS_PART_END_SCALE = 6;
1936 public const int PSYS_PART_MAX_AGE = 7;
1937 public const int PSYS_SRC_ACCEL = 8;
1938 public const int PSYS_SRC_PATTERN = 9;
1939 public const int PSYS_SRC_INNERANGLE = 10;
1940 public const int PSYS_SRC_OUTERANGLE = 11;
1941 public const int PSYS_SRC_TEXTURE = 12;
1942 public const int PSYS_SRC_BURST_RATE = 13;
1943 public const int PSYS_SRC_BURST_PART_COUNT = 15;
1944 public const int PSYS_SRC_BURST_RADIUS = 16;
1945 public const int PSYS_SRC_BURST_SPEED_MIN = 17;
1946 public const int PSYS_SRC_BURST_SPEED_MAX = 18;
1947 public const int PSYS_SRC_MAX_AGE = 19;
1948 public const int PSYS_SRC_TARGET_KEY = 20;
1949 public const int PSYS_SRC_OMEGA = 21;
1950 public const int PSYS_SRC_ANGLE_BEGIN = 22;
1951 public const int PSYS_SRC_ANGLE_END = 23;
1952 public const int PSYS_SRC_PATTERN_DROP = 1;
1953 public const int PSYS_SRC_PATTERN_EXPLODE = 2;
1954 public const int PSYS_SRC_PATTERN_ANGLE = 4;
1955 public const int PSYS_SRC_PATTERN_ANGLE_CONE = 8;
1956 public const int PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY = 16;
1957
1958 public const int VEHICLE_TYPE_NONE = 0;
1959 public const int VEHICLE_TYPE_SLED = 1;
1960 public const int VEHICLE_TYPE_CAR = 2;
1961 public const int VEHICLE_TYPE_BOAT = 3;
1962 public const int VEHICLE_TYPE_AIRPLANE = 4;
1963 public const int VEHICLE_TYPE_BALLOON = 5;
1964 public const int VEHICLE_LINEAR_FRICTION_TIMESCALE = 16;
1965 public const int VEHICLE_ANGULAR_FRICTION_TIMESCALE = 17;
1966 public const int VEHICLE_LINEAR_MOTOR_DIRECTION = 18;
1967 public const int VEHICLE_LINEAR_MOTOR_OFFSET = 20;
1968 public const int VEHICLE_ANGULAR_MOTOR_DIRECTION = 19;
1969 public const int VEHICLE_HOVER_HEIGHT = 24;
1970 public const int VEHICLE_HOVER_EFFICIENCY = 25;
1971 public const int VEHICLE_HOVER_TIMESCALE = 26;
1972 public const int VEHICLE_BUOYANCY = 27;
1973 public const int VEHICLE_LINEAR_DEFLECTION_EFFICIENCY = 28;
1974 public const int VEHICLE_LINEAR_DEFLECTION_TIMESCALE = 29;
1975 public const int VEHICLE_LINEAR_MOTOR_TIMESCALE = 30;
1976 public const int VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE = 31;
1977 public const int VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY = 32;
1978 public const int VEHICLE_ANGULAR_DEFLECTION_TIMESCALE = 33;
1979 public const int VEHICLE_ANGULAR_MOTOR_TIMESCALE = 34;
1980 public const int VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE = 35;
1981 public const int VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY = 36;
1982 public const int VEHICLE_VERTICAL_ATTRACTION_TIMESCALE = 37;
1983 public const int VEHICLE_BANKING_EFFICIENCY = 38;
1984 public const int VEHICLE_BANKING_MIX = 39;
1985 public const int VEHICLE_BANKING_TIMESCALE = 40;
1986 public const int VEHICLE_REFERENCE_FRAME = 44;
1987 public const int VEHICLE_FLAG_NO_DEFLECTION_UP = 1;
1988 public const int VEHICLE_FLAG_LIMIT_ROLL_ONLY = 2;
1989 public const int VEHICLE_FLAG_HOVER_WATER_ONLY = 4;
1990 public const int VEHICLE_FLAG_HOVER_TERRAIN_ONLY = 8;
1991 public const int VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT = 16;
1992 public const int VEHICLE_FLAG_HOVER_UP_ONLY = 32;
1993 public const int VEHICLE_FLAG_LIMIT_MOTOR_UP = 64;
1994 public const int VEHICLE_FLAG_MOUSELOOK_STEER = 128;
1995 public const int VEHICLE_FLAG_MOUSELOOK_BANK = 256;
1996 public const int VEHICLE_FLAG_CAMERA_DECOUPLED = 512;
1997
1998 public const int INVENTORY_ALL = -1;
1999 public const int INVENTORY_NONE = -1;
2000 public const int INVENTORY_TEXTURE = 0;
2001 public const int INVENTORY_SOUND = 1;
2002 public const int INVENTORY_LANDMARK = 3;
2003 public const int INVENTORY_CLOTHING = 5;
2004 public const int INVENTORY_OBJECT = 6;
2005 public const int INVENTORY_NOTECARD = 7;
2006 public const int INVENTORY_SCRIPT = 10;
2007 public const int INVENTORY_BODYPART = 13;
2008 public const int INVENTORY_ANIMATION = 20;
2009 public const int INVENTORY_GESTURE = 21;
2010
2011 public const int ATTACH_CHEST = 1;
2012 public const int ATTACH_HEAD = 2;
2013 public const int ATTACH_LSHOULDER = 3;
2014 public const int ATTACH_RSHOULDER = 4;
2015 public const int ATTACH_LHAND = 5;
2016 public const int ATTACH_RHAND = 6;
2017 public const int ATTACH_LFOOT = 7;
2018 public const int ATTACH_RFOOT = 8;
2019 public const int ATTACH_BACK = 9;
2020 public const int ATTACH_PELVIS = 10;
2021 public const int ATTACH_MOUTH = 11;
2022 public const int ATTACH_CHIN = 12;
2023 public const int ATTACH_LEAR = 13;
2024 public const int ATTACH_REAR = 14;
2025 public const int ATTACH_LEYE = 15;
2026 public const int ATTACH_REYE = 16;
2027 public const int ATTACH_NOSE = 17;
2028 public const int ATTACH_RUARM = 18;
2029 public const int ATTACH_RLARM = 19;
2030 public const int ATTACH_LUARM = 20;
2031 public const int ATTACH_LLARM = 21;
2032 public const int ATTACH_RHIP = 22;
2033 public const int ATTACH_RULEG = 23;
2034 public const int ATTACH_RLLEG = 24;
2035 public const int ATTACH_LHIP = 25;
2036 public const int ATTACH_LULEG = 26;
2037 public const int ATTACH_LLLEG = 27;
2038 public const int ATTACH_BELLY = 28;
2039 public const int ATTACH_RPEC = 29;
2040 public const int ATTACH_LPEC = 30;
2041
2042 public const int LAND_LEVEL = 0;
2043 public const int LAND_RAISE = 1;
2044 public const int LAND_LOWER = 2;
2045 public const int LAND_SMOOTH = 3;
2046 public const int LAND_NOISE = 4;
2047 public const int LAND_REVERT = 5;
2048 public const int LAND_SMALL_BRUSH = 1;
2049 public const int LAND_MEDIUM_BRUSH = 2;
2050 public const int LAND_LARGE_BRUSH = 3;
2051
2052 //Agent Dataserver
2053 public const int DATA_ONLINE = 1;
2054 public const int DATA_NAME = 2;
2055 public const int DATA_BORN = 3;
2056 public const int DATA_RATING = 4;
2057 public const int DATA_SIM_POS = 5;
2058 public const int DATA_SIM_STATUS = 6;
2059 public const int DATA_SIM_RATING = 7;
2060 public const int DATA_PAYINFO = 8;
2061
2062 public const int ANIM_ON = 1;
2063 public const int LOOP = 2;
2064 public const int REVERSE = 4;
2065 public const int PING_PONG = 8;
2066 public const int SMOOTH = 16;
2067 public const int ROTATE = 32;
2068 public const int SCALE = 64;
2069 public const int ALL_SIDES = -1;
2070 public const int LINK_SET = -1;
2071 public const int LINK_ROOT = 1;
2072 public const int LINK_ALL_OTHERS = -2;
2073 public const int LINK_ALL_CHILDREN = -3;
2074 public const int LINK_THIS = -4;
2075 public const int CHANGED_INVENTORY = 1;
2076 public const int CHANGED_COLOR = 2;
2077 public const int CHANGED_SHAPE = 4;
2078 public const int CHANGED_SCALE = 8;
2079 public const int CHANGED_TEXTURE = 16;
2080 public const int CHANGED_LINK = 32;
2081 public const int CHANGED_ALLOWED_DROP = 64;
2082 public const int CHANGED_OWNER = 128;
2083 public const int CHANGED_REGION_RESTART = 256;
2084 public const int TYPE_INVALID = 0;
2085 public const int TYPE_INTEGER = 1;
2086 public const int TYPE_double = 2;
2087 public const int TYPE_STRING = 3;
2088 public const int TYPE_KEY = 4;
2089 public const int TYPE_VECTOR = 5;
2090 public const int TYPE_ROTATION = 6;
2091
2092 //XML RPC Remote Data Channel
2093 public const int REMOTE_DATA_CHANNEL = 1;
2094 public const int REMOTE_DATA_REQUEST = 2;
2095 public const int REMOTE_DATA_REPLY = 3;
2096
2097 //llHTTPRequest
2098 public const int HTTP_METHOD = 0;
2099 public const int HTTP_MIMETYPE = 1;
2100 public const int HTTP_BODY_MAXLENGTH = 2;
2101 public const int HTTP_VERIFY_CERT = 3;
2102
2103 public const int PRIM_MATERIAL = 2;
2104 public const int PRIM_PHYSICS = 3;
2105 public const int PRIM_TEMP_ON_REZ = 4;
2106 public const int PRIM_PHANTOM = 5;
2107 public const int PRIM_POSITION = 6;
2108 public const int PRIM_SIZE = 7;
2109 public const int PRIM_ROTATION = 8;
2110 public const int PRIM_TYPE = 9;
2111 public const int PRIM_TEXTURE = 17;
2112 public const int PRIM_COLOR = 18;
2113 public const int PRIM_BUMP_SHINY = 19;
2114 public const int PRIM_FULLBRIGHT = 20;
2115 public const int PRIM_FLEXIBLE = 21;
2116 public const int PRIM_TEXGEN = 22;
2117 public const int PRIM_CAST_SHADOWS = 24; // Not implemented, here for completeness sake
2118 public const int PRIM_POINT_LIGHT = 23; // Huh?
2119 public const int PRIM_TEXGEN_DEFAULT = 0;
2120 public const int PRIM_TEXGEN_PLANAR = 1;
2121
2122 public const int PRIM_TYPE_BOX = 0;
2123 public const int PRIM_TYPE_CYLINDER = 1;
2124 public const int PRIM_TYPE_PRISM = 2;
2125 public const int PRIM_TYPE_SPHERE = 3;
2126 public const int PRIM_TYPE_TORUS = 4;
2127 public const int PRIM_TYPE_TUBE = 5;
2128 public const int PRIM_TYPE_RING = 6;
2129 public const int PRIM_TYPE_SCULPT = 7;
2130
2131 public const int PRIM_HOLE_DEFAULT = 0;
2132 public const int PRIM_HOLE_CIRCLE = 16;
2133 public const int PRIM_HOLE_SQUARE = 32;
2134 public const int PRIM_HOLE_TRIANGLE = 48;
2135
2136 public const int PRIM_MATERIAL_STONE = 0;
2137 public const int PRIM_MATERIAL_METAL = 1;
2138 public const int PRIM_MATERIAL_GLASS = 2;
2139 public const int PRIM_MATERIAL_WOOD = 3;
2140 public const int PRIM_MATERIAL_FLESH = 4;
2141 public const int PRIM_MATERIAL_PLASTIC = 5;
2142 public const int PRIM_MATERIAL_RUBBER = 6;
2143 public const int PRIM_MATERIAL_LIGHT = 7;
2144
2145 public const int PRIM_SHINY_NONE = 0;
2146 public const int PRIM_SHINY_LOW = 1;
2147 public const int PRIM_SHINY_MEDIUM = 2;
2148 public const int PRIM_SHINY_HIGH = 3;
2149 public const int PRIM_BUMP_NONE = 0;
2150 public const int PRIM_BUMP_BRIGHT = 1;
2151 public const int PRIM_BUMP_DARK = 2;
2152 public const int PRIM_BUMP_WOOD = 3;
2153 public const int PRIM_BUMP_BARK = 4;
2154 public const int PRIM_BUMP_BRICKS = 5;
2155 public const int PRIM_BUMP_CHECKER = 6;
2156 public const int PRIM_BUMP_CONCRETE = 7;
2157 public const int PRIM_BUMP_TILE = 8;
2158 public const int PRIM_BUMP_STONE = 9;
2159 public const int PRIM_BUMP_DISKS = 10;
2160 public const int PRIM_BUMP_GRAVEL = 11;
2161 public const int PRIM_BUMP_BLOBS = 12;
2162 public const int PRIM_BUMP_SIDING = 13;
2163 public const int PRIM_BUMP_LARGETILE = 14;
2164 public const int PRIM_BUMP_STUCCO = 15;
2165 public const int PRIM_BUMP_SUCTION = 16;
2166 public const int PRIM_BUMP_WEAVE = 17;
2167
2168 public const int PRIM_SCULPT_TYPE_SPHERE = 1;
2169 public const int PRIM_SCULPT_TYPE_TORUS = 2;
2170 public const int PRIM_SCULPT_TYPE_PLANE = 3;
2171 public const int PRIM_SCULPT_TYPE_CYLINDER = 4;
2172
2173 public const int MASK_BASE = 0;
2174 public const int MASK_OWNER = 1;
2175 public const int MASK_GROUP = 2;
2176 public const int MASK_EVERYONE = 3;
2177 public const int MASK_NEXT = 4;
2178
2179 public const int PERM_TRANSFER = 8192;
2180 public const int PERM_MODIFY = 16384;
2181 public const int PERM_COPY = 32768;
2182 public const int PERM_MOVE = 524288;
2183 public const int PERM_ALL = 2147483647;
2184
2185 public const int PARCEL_MEDIA_COMMAND_STOP = 0;
2186 public const int PARCEL_MEDIA_COMMAND_PAUSE = 1;
2187 public const int PARCEL_MEDIA_COMMAND_PLAY = 2;
2188 public const int PARCEL_MEDIA_COMMAND_LOOP = 3;
2189 public const int PARCEL_MEDIA_COMMAND_TEXTURE = 4;
2190 public const int PARCEL_MEDIA_COMMAND_URL = 5;
2191 public const int PARCEL_MEDIA_COMMAND_TIME = 6;
2192 public const int PARCEL_MEDIA_COMMAND_AGENT = 7;
2193 public const int PARCEL_MEDIA_COMMAND_UNLOAD = 8;
2194 public const int PARCEL_MEDIA_COMMAND_AUTO_ALIGN = 9;
2195
2196 public const int PAY_HIDE = -1;
2197 public const int PAY_DEFAULT = -2;
2198
2199 public const string NULL_KEY = "00000000-0000-0000-0000-000000000000";
2200 public const string EOF = "\n\n\n";
2201 public const double PI = 3.14159274f;
2202 public const double TWO_PI = 6.28318548f;
2203 public const double PI_BY_TWO = 1.57079637f;
2204 public const double DEG_TO_RAD = 0.01745329238f;
2205 public const double RAD_TO_DEG = 57.29578f;
2206 public const double SQRT2 = 1.414213538f;
2207 public const int STRING_TRIM_HEAD = 1;
2208 public const int STRING_TRIM_TAIL = 2;
2209 public const int STRING_TRIM = 3;
2210 public const int LIST_STAT_RANGE = 0;
2211 public const int LIST_STAT_MIN = 1;
2212 public const int LIST_STAT_MAX = 2;
2213 public const int LIST_STAT_MEAN = 3;
2214 public const int LIST_STAT_MEDIAN = 4;
2215 public const int LIST_STAT_STD_DEV = 5;
2216 public const int LIST_STAT_SUM = 6;
2217 public const int LIST_STAT_SUM_SQUARES = 7;
2218 public const int LIST_STAT_NUM_COUNT = 8;
2219 public const int LIST_STAT_GEOMETRIC_MEAN = 9;
2220 public const int LIST_STAT_HARMONIC_MEAN = 100;
2221
2222 //ParcelPrim Categories
2223 public const int PARCEL_COUNT_TOTAL = 0;
2224 public const int PARCEL_COUNT_OWNER = 1;
2225 public const int PARCEL_COUNT_GROUP = 2;
2226 public const int PARCEL_COUNT_OTHER = 3;
2227 public const int PARCEL_COUNT_SELECTED = 4;
2228 public const int PARCEL_COUNT_TEMP = 5;
2229
2230 public const int DEBUG_CHANNEL = 0x7FFFFFFF;
2231 public const int PUBLIC_CHANNEL = 0x00000000;
2232
2233 public const int OBJECT_NAME = 1;
2234 public const int OBJECT_DESC = 2;
2235 public const int OBJECT_POS = 3;
2236 public const int OBJECT_ROT = 4;
2237 public const int OBJECT_VELOCITY = 5;
2238 public const int OBJECT_OWNER = 6;
2239 public const int OBJECT_GROUP = 7;
2240 public const int OBJECT_CREATOR = 8;
2241
2242 // Can not be public const?
2243 public vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0);
2244 public rotation ZERO_ROTATION = new rotation(0.0, 0, 0.0, 1.0);
2245
2246
2247 //
2248 // OSSL
2249 //
2250 // FIXME: Refactor so we don't need to pull the script engine
2251 // into the app domain
2252 //
2253
2254 public void osSetRegionWaterHeight(double height)
2255 {
2256 m_OSSL_Functions.osSetRegionWaterHeight(height);
2257 }
2258
2259 public double osList2Double(LSL_Types.list src, int index)
2260 {
2261 return m_OSSL_Functions.osList2Double(src, index);
2262 }
2263
2264 public string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams,
2265 int timer)
2266 {
2267 return m_OSSL_Functions.osSetDynamicTextureURL(dynamicID, contentType, url, extraParams, timer);
2268 }
2269
2270 public string osSetDynamicTextureData(string dynamicID, string contentType, string data, string extraParams,
2271 int timer)
2272 {
2273 return m_OSSL_Functions.osSetDynamicTextureData(dynamicID, contentType, data, extraParams, timer);
2274 }
2275
2276 public string osSetDynamicTextureURLBlend(string dynamicID, string contentType, string url, string extraParams,
2277 int timer, int alpha)
2278 {
2279 return m_OSSL_Functions.osSetDynamicTextureURLBlend(dynamicID, contentType, url, extraParams, timer, alpha);
2280 }
2281
2282 public string osSetDynamicTextureDataBlend(string dynamicID, string contentType, string data, string extraParams,
2283 int timer, int alpha)
2284 {
2285 return m_OSSL_Functions.osSetDynamicTextureDataBlend(dynamicID, contentType, data, extraParams, timer, alpha);
2286 }
2287
2288 public double osTerrainGetHeight(int x, int y)
2289 {
2290 return m_OSSL_Functions.osTerrainGetHeight(x, y);
2291 }
2292
2293 public int osTerrainSetHeight(int x, int y, double val)
2294 {
2295 return m_OSSL_Functions.osTerrainSetHeight(x, y, val);
2296 }
2297
2298 public int osRegionRestart(double seconds)
2299 {
2300 return m_OSSL_Functions.osRegionRestart(seconds);
2301 }
2302
2303 public void osRegionNotice(string msg)
2304 {
2305 m_OSSL_Functions.osRegionNotice(msg);
2306 }
2307
2308 public bool osConsoleCommand(string Command)
2309 {
2310 return m_OSSL_Functions.osConsoleCommand(Command);
2311 }
2312
2313 public void osSetParcelMediaURL(string url)
2314 {
2315 m_OSSL_Functions.osSetParcelMediaURL(url);
2316 }
2317
2318 public void osSetPrimFloatOnWater(int floatYN)
2319 {
2320 m_OSSL_Functions.osSetPrimFloatOnWater(floatYN);
2321 }
2322
2323 // Animation Functions
2324
2325 public void osAvatarPlayAnimation(string avatar, string animation)
2326 {
2327 m_OSSL_Functions.osAvatarPlayAnimation(avatar, animation);
2328 }
2329
2330 public void osAvatarStopAnimation(string avatar, string animation)
2331 {
2332 m_OSSL_Functions.osAvatarStopAnimation(avatar, animation);
2333 }
2334
2335
2336 //Texture Draw functions
2337
2338 public string osMovePen(string drawList, int x, int y)
2339 {
2340 return m_OSSL_Functions.osMovePen(drawList, x, y);
2341 }
2342
2343 public string osDrawLine(string drawList, int startX, int startY, int endX, int endY)
2344 {
2345 return m_OSSL_Functions.osDrawLine(drawList, startX, startY, endX, endY);
2346 }
2347
2348 public string osDrawLine(string drawList, int endX, int endY)
2349 {
2350 return m_OSSL_Functions.osDrawLine(drawList, endX, endY);
2351 }
2352
2353 public string osDrawText(string drawList, string text)
2354 {
2355 return m_OSSL_Functions.osDrawText(drawList, text);
2356 }
2357
2358 public string osDrawEllipse(string drawList, int width, int height)
2359 {
2360 return m_OSSL_Functions.osDrawEllipse(drawList, width, height);
2361 }
2362
2363 public string osDrawRectangle(string drawList, int width, int height)
2364 {
2365 return m_OSSL_Functions.osDrawRectangle(drawList, width, height);
2366 }
2367
2368 public string osDrawFilledRectangle(string drawList, int width, int height)
2369 {
2370 return m_OSSL_Functions.osDrawFilledRectangle(drawList, width, height);
2371 }
2372
2373 public string osSetFontSize(string drawList, int fontSize)
2374 {
2375 return m_OSSL_Functions.osSetFontSize(drawList, fontSize);
2376 }
2377
2378 public string osSetPenSize(string drawList, int penSize)
2379 {
2380 return m_OSSL_Functions.osSetPenSize(drawList, penSize);
2381 }
2382
2383 public string osSetPenColour(string drawList, string colour)
2384 {
2385 return m_OSSL_Functions.osSetPenColour(drawList, colour);
2386 }
2387
2388 public string osDrawImage(string drawList, int width, int height, string imageUrl)
2389 {
2390 return m_OSSL_Functions.osDrawImage(drawList, width, height, imageUrl);
2391 }
2392 public void osSetStateEvents(int events)
2393 {
2394 m_OSSL_Functions.osSetStateEvents(events);
2395 }
2396 } 1731 }
2397} 1732}