clockwerk-opensim – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 vero 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 OpenSimulator 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 using System;
29 using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
30 using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
31 using LSLInteger = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
32  
33 namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
34 {
35 public partial class ScriptBaseClass
36 {
37 // LSL CONSTANTS
38 public static readonly LSLInteger TRUE = new LSLInteger(1);
39 public static readonly LSLInteger FALSE = new LSLInteger(0);
40  
41 public const int STATUS_PHYSICS = 1;
42 public const int STATUS_ROTATE_X = 2;
43 public const int STATUS_ROTATE_Y = 4;
44 public const int STATUS_ROTATE_Z = 8;
45 public const int STATUS_PHANTOM = 16;
46 public const int STATUS_SANDBOX = 32;
47 public const int STATUS_BLOCK_GRAB = 64;
48 public const int STATUS_DIE_AT_EDGE = 128;
49 public const int STATUS_RETURN_AT_EDGE = 256;
50 public const int STATUS_CAST_SHADOWS = 512;
51 public const int STATUS_BLOCK_GRAB_OBJECT = 1024;
52  
53 public const int AGENT = 1;
54 public const int AGENT_BY_LEGACY_NAME = 1;
55 public const int AGENT_BY_USERNAME = 0x10;
56 public const int NPC = 0x20;
57 public const int ACTIVE = 2;
58 public const int PASSIVE = 4;
59 public const int SCRIPTED = 8;
60 public const int OS_NPC = 0x01000000;
61  
62 public const int CONTROL_FWD = 1;
63 public const int CONTROL_BACK = 2;
64 public const int CONTROL_LEFT = 4;
65 public const int CONTROL_RIGHT = 8;
66 public const int CONTROL_UP = 16;
67 public const int CONTROL_DOWN = 32;
68 public const int CONTROL_ROT_LEFT = 256;
69 public const int CONTROL_ROT_RIGHT = 512;
70 public const int CONTROL_LBUTTON = 268435456;
71 public const int CONTROL_ML_LBUTTON = 1073741824;
72  
73 //Permissions
74 public const int PERMISSION_DEBIT = 2;
75 public const int PERMISSION_TAKE_CONTROLS = 4;
76 public const int PERMISSION_REMAP_CONTROLS = 8;
77 public const int PERMISSION_TRIGGER_ANIMATION = 16;
78 public const int PERMISSION_ATTACH = 32;
79 public const int PERMISSION_RELEASE_OWNERSHIP = 64;
80 public const int PERMISSION_CHANGE_LINKS = 128;
81 public const int PERMISSION_CHANGE_JOINTS = 256;
82 public const int PERMISSION_CHANGE_PERMISSIONS = 512;
83 public const int PERMISSION_TRACK_CAMERA = 1024;
84 public const int PERMISSION_CONTROL_CAMERA = 2048;
85  
86 public const int AGENT_FLYING = 1;
87 public const int AGENT_ATTACHMENTS = 2;
88 public const int AGENT_SCRIPTED = 4;
89 public const int AGENT_MOUSELOOK = 8;
90 public const int AGENT_SITTING = 16;
91 public const int AGENT_ON_OBJECT = 32;
92 public const int AGENT_AWAY = 64;
93 public const int AGENT_WALKING = 128;
94 public const int AGENT_IN_AIR = 256;
95 public const int AGENT_TYPING = 512;
96 public const int AGENT_CROUCHING = 1024;
97 public const int AGENT_BUSY = 2048;
98 public const int AGENT_ALWAYS_RUN = 4096;
99  
100 //Particle Systems
101 public const int PSYS_PART_INTERP_COLOR_MASK = 1;
102 public const int PSYS_PART_INTERP_SCALE_MASK = 2;
103 public const int PSYS_PART_BOUNCE_MASK = 4;
104 public const int PSYS_PART_WIND_MASK = 8;
105 public const int PSYS_PART_FOLLOW_SRC_MASK = 16;
106 public const int PSYS_PART_FOLLOW_VELOCITY_MASK = 32;
107 public const int PSYS_PART_TARGET_POS_MASK = 64;
108 public const int PSYS_PART_TARGET_LINEAR_MASK = 128;
109 public const int PSYS_PART_EMISSIVE_MASK = 256;
110 public const int PSYS_PART_RIBBON_MASK = 1024;
111 public const int PSYS_PART_FLAGS = 0;
112 public const int PSYS_PART_START_COLOR = 1;
113 public const int PSYS_PART_START_ALPHA = 2;
114 public const int PSYS_PART_END_COLOR = 3;
115 public const int PSYS_PART_END_ALPHA = 4;
116 public const int PSYS_PART_START_SCALE = 5;
117 public const int PSYS_PART_END_SCALE = 6;
118 public const int PSYS_PART_MAX_AGE = 7;
119 public const int PSYS_SRC_ACCEL = 8;
120 public const int PSYS_SRC_PATTERN = 9;
121 public const int PSYS_SRC_INNERANGLE = 10;
122 public const int PSYS_SRC_OUTERANGLE = 11;
123 public const int PSYS_SRC_TEXTURE = 12;
124 public const int PSYS_SRC_BURST_RATE = 13;
125 public const int PSYS_SRC_BURST_PART_COUNT = 15;
126 public const int PSYS_SRC_BURST_RADIUS = 16;
127 public const int PSYS_SRC_BURST_SPEED_MIN = 17;
128 public const int PSYS_SRC_BURST_SPEED_MAX = 18;
129 public const int PSYS_SRC_MAX_AGE = 19;
130 public const int PSYS_SRC_TARGET_KEY = 20;
131 public const int PSYS_SRC_OMEGA = 21;
132 public const int PSYS_SRC_ANGLE_BEGIN = 22;
133 public const int PSYS_SRC_ANGLE_END = 23;
134 public const int PSYS_PART_BLEND_FUNC_SOURCE = 24;
135 public const int PSYS_PART_BLEND_FUNC_DEST = 25;
136 public const int PSYS_PART_START_GLOW = 26;
137 public const int PSYS_PART_END_GLOW = 27;
138 public const int PSYS_PART_BF_ONE = 0;
139 public const int PSYS_PART_BF_ZERO = 1;
140 public const int PSYS_PART_BF_DEST_COLOR = 2;
141 public const int PSYS_PART_BF_SOURCE_COLOR = 3;
142 public const int PSYS_PART_BF_ONE_MINUS_DEST_COLOR = 4;
143 public const int PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR = 5;
144 public const int PSYS_PART_BF_SOURCE_ALPHA = 7;
145 public const int PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA = 9;
146 public const int PSYS_SRC_PATTERN_DROP = 1;
147 public const int PSYS_SRC_PATTERN_EXPLODE = 2;
148 public const int PSYS_SRC_PATTERN_ANGLE = 4;
149 public const int PSYS_SRC_PATTERN_ANGLE_CONE = 8;
150 public const int PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY = 16;
151  
152 public const int VEHICLE_TYPE_NONE = 0;
153 public const int VEHICLE_TYPE_SLED = 1;
154 public const int VEHICLE_TYPE_CAR = 2;
155 public const int VEHICLE_TYPE_BOAT = 3;
156 public const int VEHICLE_TYPE_AIRPLANE = 4;
157 public const int VEHICLE_TYPE_BALLOON = 5;
158 public const int VEHICLE_LINEAR_FRICTION_TIMESCALE = 16;
159 public const int VEHICLE_ANGULAR_FRICTION_TIMESCALE = 17;
160 public const int VEHICLE_LINEAR_MOTOR_DIRECTION = 18;
161 public const int VEHICLE_LINEAR_MOTOR_OFFSET = 20;
162 public const int VEHICLE_ANGULAR_MOTOR_DIRECTION = 19;
163 public const int VEHICLE_HOVER_HEIGHT = 24;
164 public const int VEHICLE_HOVER_EFFICIENCY = 25;
165 public const int VEHICLE_HOVER_TIMESCALE = 26;
166 public const int VEHICLE_BUOYANCY = 27;
167 public const int VEHICLE_LINEAR_DEFLECTION_EFFICIENCY = 28;
168 public const int VEHICLE_LINEAR_DEFLECTION_TIMESCALE = 29;
169 public const int VEHICLE_LINEAR_MOTOR_TIMESCALE = 30;
170 public const int VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE = 31;
171 public const int VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY = 32;
172 public const int VEHICLE_ANGULAR_DEFLECTION_TIMESCALE = 33;
173 public const int VEHICLE_ANGULAR_MOTOR_TIMESCALE = 34;
174 public const int VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE = 35;
175 public const int VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY = 36;
176 public const int VEHICLE_VERTICAL_ATTRACTION_TIMESCALE = 37;
177 public const int VEHICLE_BANKING_EFFICIENCY = 38;
178 public const int VEHICLE_BANKING_MIX = 39;
179 public const int VEHICLE_BANKING_TIMESCALE = 40;
180 public const int VEHICLE_REFERENCE_FRAME = 44;
181 public const int VEHICLE_RANGE_BLOCK = 45;
182 public const int VEHICLE_ROLL_FRAME = 46;
183 public const int VEHICLE_FLAG_NO_DEFLECTION_UP = 1;
184 public const int VEHICLE_FLAG_LIMIT_ROLL_ONLY = 2;
185 public const int VEHICLE_FLAG_HOVER_WATER_ONLY = 4;
186 public const int VEHICLE_FLAG_HOVER_TERRAIN_ONLY = 8;
187 public const int VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT = 16;
188 public const int VEHICLE_FLAG_HOVER_UP_ONLY = 32;
189 public const int VEHICLE_FLAG_LIMIT_MOTOR_UP = 64;
190 public const int VEHICLE_FLAG_MOUSELOOK_STEER = 128;
191 public const int VEHICLE_FLAG_MOUSELOOK_BANK = 256;
192 public const int VEHICLE_FLAG_CAMERA_DECOUPLED = 512;
193 public const int VEHICLE_FLAG_NO_X = 1024;
194 public const int VEHICLE_FLAG_NO_Y = 2048;
195 public const int VEHICLE_FLAG_NO_Z = 4096;
196 public const int VEHICLE_FLAG_LOCK_HOVER_HEIGHT = 8192;
197 public const int VEHICLE_FLAG_NO_DEFLECTION = 16392;
198 public const int VEHICLE_FLAG_LOCK_ROTATION = 32784;
199  
200 public const int INVENTORY_ALL = -1;
201 public const int INVENTORY_NONE = -1;
202 public const int INVENTORY_TEXTURE = 0;
203 public const int INVENTORY_SOUND = 1;
204 public const int INVENTORY_LANDMARK = 3;
205 public const int INVENTORY_CLOTHING = 5;
206 public const int INVENTORY_OBJECT = 6;
207 public const int INVENTORY_NOTECARD = 7;
208 public const int INVENTORY_SCRIPT = 10;
209 public const int INVENTORY_BODYPART = 13;
210 public const int INVENTORY_ANIMATION = 20;
211 public const int INVENTORY_GESTURE = 21;
212  
213 public const int ATTACH_CHEST = 1;
214 public const int ATTACH_HEAD = 2;
215 public const int ATTACH_LSHOULDER = 3;
216 public const int ATTACH_RSHOULDER = 4;
217 public const int ATTACH_LHAND = 5;
218 public const int ATTACH_RHAND = 6;
219 public const int ATTACH_LFOOT = 7;
220 public const int ATTACH_RFOOT = 8;
221 public const int ATTACH_BACK = 9;
222 public const int ATTACH_PELVIS = 10;
223 public const int ATTACH_MOUTH = 11;
224 public const int ATTACH_CHIN = 12;
225 public const int ATTACH_LEAR = 13;
226 public const int ATTACH_REAR = 14;
227 public const int ATTACH_LEYE = 15;
228 public const int ATTACH_REYE = 16;
229 public const int ATTACH_NOSE = 17;
230 public const int ATTACH_RUARM = 18;
231 public const int ATTACH_RLARM = 19;
232 public const int ATTACH_LUARM = 20;
233 public const int ATTACH_LLARM = 21;
234 public const int ATTACH_RHIP = 22;
235 public const int ATTACH_RULEG = 23;
236 public const int ATTACH_RLLEG = 24;
237 public const int ATTACH_LHIP = 25;
238 public const int ATTACH_LULEG = 26;
239 public const int ATTACH_LLLEG = 27;
240 public const int ATTACH_BELLY = 28;
241 public const int ATTACH_RPEC = 29;
242 public const int ATTACH_LPEC = 30;
243 public const int ATTACH_LEFT_PEC = 29; // Same value as ATTACH_RPEC, see https://jira.secondlife.com/browse/SVC-580
244 public const int ATTACH_RIGHT_PEC = 30; // Same value as ATTACH_LPEC, see https://jira.secondlife.com/browse/SVC-580
245 public const int ATTACH_HUD_CENTER_2 = 31;
246 public const int ATTACH_HUD_TOP_RIGHT = 32;
247 public const int ATTACH_HUD_TOP_CENTER = 33;
248 public const int ATTACH_HUD_TOP_LEFT = 34;
249 public const int ATTACH_HUD_CENTER_1 = 35;
250 public const int ATTACH_HUD_BOTTOM_LEFT = 36;
251 public const int ATTACH_HUD_BOTTOM = 37;
252 public const int ATTACH_HUD_BOTTOM_RIGHT = 38;
253 public const int ATTACH_NECK = 39;
254 public const int ATTACH_AVATAR_CENTER = 40;
255  
256 #region osMessageAttachments constants
257  
258 /// <summary>
259 /// Instructs osMessageAttachements to send the message to attachments
260 /// on every point.
261 /// </summary>
262 /// <remarks>
263 /// One might expect this to be named OS_ATTACH_ALL, but then one might
264 /// also expect functions designed to attach or detach or get
265 /// attachments to work with it too. Attaching a no-copy item to
266 /// many attachments could be dangerous.
267 /// when combined with OS_ATTACH_MSG_INVERT_POINTS, will prevent the
268 /// message from being sent.
269 /// if combined with OS_ATTACH_MSG_OBJECT_CREATOR or
270 /// OS_ATTACH_MSG_SCRIPT_CREATOR, could result in no message being
271 /// sent- this is expected behaviour.
272 /// </remarks>
273 public const int OS_ATTACH_MSG_ALL = -65535;
274  
275 /// <summary>
276 /// Instructs osMessageAttachements to invert how the attachment points
277 /// list should be treated (e.g. go from inclusive operation to
278 /// exclusive operation).
279 /// </summary>
280 /// <remarks>
281 /// This might be used if you want to deliver a message to one set of
282 /// attachments and a different message to everything else. With
283 /// this flag, you only need to build one explicit list for both calls.
284 /// </remarks>
285 public const int OS_ATTACH_MSG_INVERT_POINTS = 1;
286  
287 /// <summary>
288 /// Instructs osMessageAttachments to only send the message to
289 /// attachments with a CreatorID that matches the host object CreatorID
290 /// </summary>
291 /// <remarks>
292 /// This would be used if distributed in an object vendor/updater server.
293 /// </remarks>
294 public const int OS_ATTACH_MSG_OBJECT_CREATOR = 2;
295  
296 /// <summary>
297 /// Instructs osMessageAttachments to only send the message to
298 /// attachments with a CreatorID that matches the sending script CreatorID
299 /// </summary>
300 /// <remarks>
301 /// This might be used if the script is distributed independently of a
302 /// containing object.
303 /// </remarks>
304 public const int OS_ATTACH_MSG_SCRIPT_CREATOR = 4;
305  
306 #endregion
307  
308 public const int LAND_LEVEL = 0;
309 public const int LAND_RAISE = 1;
310 public const int LAND_LOWER = 2;
311 public const int LAND_SMOOTH = 3;
312 public const int LAND_NOISE = 4;
313 public const int LAND_REVERT = 5;
314 public const int LAND_SMALL_BRUSH = 1;
315 public const int LAND_MEDIUM_BRUSH = 2;
316 public const int LAND_LARGE_BRUSH = 3;
317  
318 //Agent Dataserver
319 public const int DATA_ONLINE = 1;
320 public const int DATA_NAME = 2;
321 public const int DATA_BORN = 3;
322 public const int DATA_RATING = 4;
323 public const int DATA_SIM_POS = 5;
324 public const int DATA_SIM_STATUS = 6;
325 public const int DATA_SIM_RATING = 7;
326 public const int DATA_PAYINFO = 8;
327 public const int DATA_SIM_RELEASE = 128;
328  
329 public const int ANIM_ON = 1;
330 public const int LOOP = 2;
331 public const int REVERSE = 4;
332 public const int PING_PONG = 8;
333 public const int SMOOTH = 16;
334 public const int ROTATE = 32;
335 public const int SCALE = 64;
336 public const int ALL_SIDES = -1;
337 public const int LINK_SET = -1;
338 public const int LINK_ROOT = 1;
339 public const int LINK_ALL_OTHERS = -2;
340 public const int LINK_ALL_CHILDREN = -3;
341 public const int LINK_THIS = -4;
342 public const int CHANGED_INVENTORY = 1;
343 public const int CHANGED_COLOR = 2;
344 public const int CHANGED_SHAPE = 4;
345 public const int CHANGED_SCALE = 8;
346 public const int CHANGED_TEXTURE = 16;
347 public const int CHANGED_LINK = 32;
348 public const int CHANGED_ALLOWED_DROP = 64;
349 public const int CHANGED_OWNER = 128;
350 public const int CHANGED_REGION = 256;
351 public const int CHANGED_TELEPORT = 512;
352 public const int CHANGED_REGION_RESTART = 1024;
353 public const int CHANGED_REGION_START = 1024; //LL Changed the constant from CHANGED_REGION_RESTART
354 public const int CHANGED_MEDIA = 2048;
355 public const int CHANGED_ANIMATION = 16384;
356 public const int TYPE_INVALID = 0;
357 public const int TYPE_INTEGER = 1;
358 public const int TYPE_FLOAT = 2;
359 public const int TYPE_STRING = 3;
360 public const int TYPE_KEY = 4;
361 public const int TYPE_VECTOR = 5;
362 public const int TYPE_ROTATION = 6;
363  
364 //XML RPC Remote Data Channel
365 public const int REMOTE_DATA_CHANNEL = 1;
366 public const int REMOTE_DATA_REQUEST = 2;
367 public const int REMOTE_DATA_REPLY = 3;
368  
369 //llHTTPRequest
370 public const int HTTP_METHOD = 0;
371 public const int HTTP_MIMETYPE = 1;
372 public const int HTTP_BODY_MAXLENGTH = 2;
373 public const int HTTP_VERIFY_CERT = 3;
374 public const int HTTP_VERBOSE_THROTTLE = 4;
375 public const int HTTP_CUSTOM_HEADER = 5;
376 public const int HTTP_PRAGMA_NO_CACHE = 6;
377  
378 // llSetContentType
379 public const int CONTENT_TYPE_TEXT = 0; //text/plain
380 public const int CONTENT_TYPE_HTML = 1; //text/html
381 public const int CONTENT_TYPE_XML = 2; //application/xml
382 public const int CONTENT_TYPE_XHTML = 3; //application/xhtml+xml
383 public const int CONTENT_TYPE_ATOM = 4; //application/atom+xml
384 public const int CONTENT_TYPE_JSON = 5; //application/json
385 public const int CONTENT_TYPE_LLSD = 6; //application/llsd+xml
386 public const int CONTENT_TYPE_FORM = 7; //application/x-www-form-urlencoded
387 public const int CONTENT_TYPE_RSS = 8; //application/rss+xml
388  
389 public const int PRIM_MATERIAL = 2;
390 public const int PRIM_PHYSICS = 3;
391 public const int PRIM_TEMP_ON_REZ = 4;
392 public const int PRIM_PHANTOM = 5;
393 public const int PRIM_POSITION = 6;
394 public const int PRIM_SIZE = 7;
395 public const int PRIM_ROTATION = 8;
396 public const int PRIM_TYPE = 9;
397 public const int PRIM_TEXTURE = 17;
398 public const int PRIM_COLOR = 18;
399 public const int PRIM_BUMP_SHINY = 19;
400 public const int PRIM_FULLBRIGHT = 20;
401 public const int PRIM_FLEXIBLE = 21;
402 public const int PRIM_TEXGEN = 22;
403 public const int PRIM_CAST_SHADOWS = 24; // Not implemented, here for completeness sake
404 public const int PRIM_POINT_LIGHT = 23; // Huh?
405 public const int PRIM_GLOW = 25;
406 public const int PRIM_TEXT = 26;
407 public const int PRIM_NAME = 27;
408 public const int PRIM_DESC = 28;
409 public const int PRIM_ROT_LOCAL = 29;
410 public const int PRIM_OMEGA = 32;
411 public const int PRIM_POS_LOCAL = 33;
412 public const int PRIM_LINK_TARGET = 34;
413 public const int PRIM_SLICE = 35;
414 public const int PRIM_SPECULAR = 36;
415 public const int PRIM_NORMAL = 37;
416 public const int PRIM_ALPHA_MODE = 38;
417 public const int PRIM_TEXGEN_DEFAULT = 0;
418 public const int PRIM_TEXGEN_PLANAR = 1;
419  
420 public const int PRIM_TYPE_BOX = 0;
421 public const int PRIM_TYPE_CYLINDER = 1;
422 public const int PRIM_TYPE_PRISM = 2;
423 public const int PRIM_TYPE_SPHERE = 3;
424 public const int PRIM_TYPE_TORUS = 4;
425 public const int PRIM_TYPE_TUBE = 5;
426 public const int PRIM_TYPE_RING = 6;
427 public const int PRIM_TYPE_SCULPT = 7;
428  
429 public const int PRIM_HOLE_DEFAULT = 0;
430 public const int PRIM_HOLE_CIRCLE = 16;
431 public const int PRIM_HOLE_SQUARE = 32;
432 public const int PRIM_HOLE_TRIANGLE = 48;
433  
434 public const int PRIM_MATERIAL_STONE = 0;
435 public const int PRIM_MATERIAL_METAL = 1;
436 public const int PRIM_MATERIAL_GLASS = 2;
437 public const int PRIM_MATERIAL_WOOD = 3;
438 public const int PRIM_MATERIAL_FLESH = 4;
439 public const int PRIM_MATERIAL_PLASTIC = 5;
440 public const int PRIM_MATERIAL_RUBBER = 6;
441 public const int PRIM_MATERIAL_LIGHT = 7;
442  
443 public const int PRIM_SHINY_NONE = 0;
444 public const int PRIM_SHINY_LOW = 1;
445 public const int PRIM_SHINY_MEDIUM = 2;
446 public const int PRIM_SHINY_HIGH = 3;
447 public const int PRIM_BUMP_NONE = 0;
448 public const int PRIM_BUMP_BRIGHT = 1;
449 public const int PRIM_BUMP_DARK = 2;
450 public const int PRIM_BUMP_WOOD = 3;
451 public const int PRIM_BUMP_BARK = 4;
452 public const int PRIM_BUMP_BRICKS = 5;
453 public const int PRIM_BUMP_CHECKER = 6;
454 public const int PRIM_BUMP_CONCRETE = 7;
455 public const int PRIM_BUMP_TILE = 8;
456 public const int PRIM_BUMP_STONE = 9;
457 public const int PRIM_BUMP_DISKS = 10;
458 public const int PRIM_BUMP_GRAVEL = 11;
459 public const int PRIM_BUMP_BLOBS = 12;
460 public const int PRIM_BUMP_SIDING = 13;
461 public const int PRIM_BUMP_LARGETILE = 14;
462 public const int PRIM_BUMP_STUCCO = 15;
463 public const int PRIM_BUMP_SUCTION = 16;
464 public const int PRIM_BUMP_WEAVE = 17;
465  
466 public const int PRIM_SCULPT_TYPE_SPHERE = 1;
467 public const int PRIM_SCULPT_TYPE_TORUS = 2;
468 public const int PRIM_SCULPT_TYPE_PLANE = 3;
469 public const int PRIM_SCULPT_TYPE_CYLINDER = 4;
470 public const int PRIM_SCULPT_FLAG_INVERT = 64;
471 public const int PRIM_SCULPT_FLAG_MIRROR = 128;
472  
473 public const int PROFILE_NONE = 0;
474 public const int PROFILE_SCRIPT_MEMORY = 1;
475  
476 public const int MASK_BASE = 0;
477 public const int MASK_OWNER = 1;
478 public const int MASK_GROUP = 2;
479 public const int MASK_EVERYONE = 3;
480 public const int MASK_NEXT = 4;
481  
482 public const int PERM_TRANSFER = 8192;
483 public const int PERM_MODIFY = 16384;
484 public const int PERM_COPY = 32768;
485 public const int PERM_MOVE = 524288;
486 public const int PERM_ALL = 2147483647;
487  
488 public const int PARCEL_MEDIA_COMMAND_STOP = 0;
489 public const int PARCEL_MEDIA_COMMAND_PAUSE = 1;
490 public const int PARCEL_MEDIA_COMMAND_PLAY = 2;
491 public const int PARCEL_MEDIA_COMMAND_LOOP = 3;
492 public const int PARCEL_MEDIA_COMMAND_TEXTURE = 4;
493 public const int PARCEL_MEDIA_COMMAND_URL = 5;
494 public const int PARCEL_MEDIA_COMMAND_TIME = 6;
495 public const int PARCEL_MEDIA_COMMAND_AGENT = 7;
496 public const int PARCEL_MEDIA_COMMAND_UNLOAD = 8;
497 public const int PARCEL_MEDIA_COMMAND_AUTO_ALIGN = 9;
498 public const int PARCEL_MEDIA_COMMAND_TYPE = 10;
499 public const int PARCEL_MEDIA_COMMAND_SIZE = 11;
500 public const int PARCEL_MEDIA_COMMAND_DESC = 12;
501  
502 public const int PARCEL_FLAG_ALLOW_FLY = 0x1; // parcel allows flying
503 public const int PARCEL_FLAG_ALLOW_SCRIPTS = 0x2; // parcel allows outside scripts
504 public const int PARCEL_FLAG_ALLOW_LANDMARK = 0x8; // parcel allows landmarks to be created
505 public const int PARCEL_FLAG_ALLOW_TERRAFORM = 0x10; // parcel allows anyone to terraform the land
506 public const int PARCEL_FLAG_ALLOW_DAMAGE = 0x20; // parcel allows damage
507 public const int PARCEL_FLAG_ALLOW_CREATE_OBJECTS = 0x40; // parcel allows anyone to create objects
508 public const int PARCEL_FLAG_USE_ACCESS_GROUP = 0x100; // parcel limits access to a group
509 public const int PARCEL_FLAG_USE_ACCESS_LIST = 0x200; // parcel limits access to a list of residents
510 public const int PARCEL_FLAG_USE_BAN_LIST = 0x400; // parcel uses a ban list, including restricting access based on payment info
511 public const int PARCEL_FLAG_USE_LAND_PASS_LIST = 0x800; // parcel allows passes to be purchased
512 public const int PARCEL_FLAG_LOCAL_SOUND_ONLY = 0x8000; // parcel restricts spatialized sound to the parcel
513 public const int PARCEL_FLAG_RESTRICT_PUSHOBJECT = 0x200000; // parcel restricts llPushObject
514 public const int PARCEL_FLAG_ALLOW_GROUP_SCRIPTS = 0x2000000; // parcel allows scripts owned by group
515 public const int PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS = 0x4000000; // parcel allows group object creation
516 public const int PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY = 0x8000000; // parcel allows objects owned by any user to enter
517 public const int PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY = 0x10000000; // parcel allows with the same group to enter
518  
519 public const int REGION_FLAG_ALLOW_DAMAGE = 0x1; // region is entirely damage enabled
520 public const int REGION_FLAG_FIXED_SUN = 0x10; // region has a fixed sun position
521 public const int REGION_FLAG_BLOCK_TERRAFORM = 0x40; // region terraforming disabled
522 public const int REGION_FLAG_SANDBOX = 0x100; // region is a sandbox
523 public const int REGION_FLAG_DISABLE_COLLISIONS = 0x1000; // region has disabled collisions
524 public const int REGION_FLAG_DISABLE_PHYSICS = 0x4000; // region has disabled physics
525 public const int REGION_FLAG_BLOCK_FLY = 0x80000; // region blocks flying
526 public const int REGION_FLAG_ALLOW_DIRECT_TELEPORT = 0x100000; // region allows direct teleports
527 public const int REGION_FLAG_RESTRICT_PUSHOBJECT = 0x400000; // region restricts llPushObject
528  
529 //llManageEstateAccess
530 public const int ESTATE_ACCESS_ALLOWED_AGENT_ADD = 0;
531 public const int ESTATE_ACCESS_ALLOWED_AGENT_REMOVE = 1;
532 public const int ESTATE_ACCESS_ALLOWED_GROUP_ADD = 2;
533 public const int ESTATE_ACCESS_ALLOWED_GROUP_REMOVE = 3;
534 public const int ESTATE_ACCESS_BANNED_AGENT_ADD = 4;
535 public const int ESTATE_ACCESS_BANNED_AGENT_REMOVE = 5;
536  
537 public static readonly LSLInteger PAY_HIDE = new LSLInteger(-1);
538 public static readonly LSLInteger PAY_DEFAULT = new LSLInteger(-2);
539  
540 public const string NULL_KEY = "00000000-0000-0000-0000-000000000000";
541 public const string EOF = "\n\n\n";
542 public const double PI = 3.14159274f;
543 public const double TWO_PI = 6.28318548f;
544 public const double PI_BY_TWO = 1.57079637f;
545 public const double DEG_TO_RAD = 0.01745329238f;
546 public const double RAD_TO_DEG = 57.29578f;
547 public const double SQRT2 = 1.414213538f;
548 public const int STRING_TRIM_HEAD = 1;
549 public const int STRING_TRIM_TAIL = 2;
550 public const int STRING_TRIM = 3;
551 public const int LIST_STAT_RANGE = 0;
552 public const int LIST_STAT_MIN = 1;
553 public const int LIST_STAT_MAX = 2;
554 public const int LIST_STAT_MEAN = 3;
555 public const int LIST_STAT_MEDIAN = 4;
556 public const int LIST_STAT_STD_DEV = 5;
557 public const int LIST_STAT_SUM = 6;
558 public const int LIST_STAT_SUM_SQUARES = 7;
559 public const int LIST_STAT_NUM_COUNT = 8;
560 public const int LIST_STAT_GEOMETRIC_MEAN = 9;
561 public const int LIST_STAT_HARMONIC_MEAN = 100;
562  
563 //ParcelPrim Categories
564 public const int PARCEL_COUNT_TOTAL = 0;
565 public const int PARCEL_COUNT_OWNER = 1;
566 public const int PARCEL_COUNT_GROUP = 2;
567 public const int PARCEL_COUNT_OTHER = 3;
568 public const int PARCEL_COUNT_SELECTED = 4;
569 public const int PARCEL_COUNT_TEMP = 5;
570  
571 public const int DEBUG_CHANNEL = 0x7FFFFFFF;
572 public const int PUBLIC_CHANNEL = 0x00000000;
573  
574 // Constants for llGetObjectDetails
575 public const int OBJECT_UNKNOWN_DETAIL = -1;
576 public const int OBJECT_NAME = 1;
577 public const int OBJECT_DESC = 2;
578 public const int OBJECT_POS = 3;
579 public const int OBJECT_ROT = 4;
580 public const int OBJECT_VELOCITY = 5;
581 public const int OBJECT_OWNER = 6;
582 public const int OBJECT_GROUP = 7;
583 public const int OBJECT_CREATOR = 8;
584 public const int OBJECT_RUNNING_SCRIPT_COUNT = 9;
585 public const int OBJECT_TOTAL_SCRIPT_COUNT = 10;
586 public const int OBJECT_SCRIPT_MEMORY = 11;
587 public const int OBJECT_SCRIPT_TIME = 12;
588 public const int OBJECT_PRIM_EQUIVALENCE = 13;
589 public const int OBJECT_SERVER_COST = 14;
590 public const int OBJECT_STREAMING_COST = 15;
591 public const int OBJECT_PHYSICS_COST = 16;
592 public const int OBJECT_CHARACTER_TIME = 17;
593 public const int OBJECT_ROOT = 18;
594 public const int OBJECT_ATTACHED_POINT = 19;
595 public const int OBJECT_PATHFINDING_TYPE = 20;
596 public const int OBJECT_PHYSICS = 21;
597 public const int OBJECT_PHANTOM = 22;
598 public const int OBJECT_TEMP_ON_REZ = 23;
599  
600 // Pathfinding types
601 public const int OPT_OTHER = -1;
602 public const int OPT_LEGACY_LINKSET = 0;
603 public const int OPT_AVATAR = 1;
604 public const int OPT_CHARACTER = 2;
605 public const int OPT_WALKABLE = 3;
606 public const int OPT_STATIC_OBSTACLE = 4;
607 public const int OPT_MATERIAL_VOLUME = 5;
608 public const int OPT_EXCLUSION_VOLUME = 6;
609  
610 // for llGetAgentList
611 public const int AGENT_LIST_PARCEL = 1;
612 public const int AGENT_LIST_PARCEL_OWNER = 2;
613 public const int AGENT_LIST_REGION = 4;
614  
615 // Can not be public const?
616 public static readonly vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0);
617 public static readonly rotation ZERO_ROTATION = new rotation(0.0, 0.0, 0.0, 1.0);
618  
619 // constants for llSetCameraParams
620 public const int CAMERA_PITCH = 0;
621 public const int CAMERA_FOCUS_OFFSET = 1;
622 public const int CAMERA_FOCUS_OFFSET_X = 2;
623 public const int CAMERA_FOCUS_OFFSET_Y = 3;
624 public const int CAMERA_FOCUS_OFFSET_Z = 4;
625 public const int CAMERA_POSITION_LAG = 5;
626 public const int CAMERA_FOCUS_LAG = 6;
627 public const int CAMERA_DISTANCE = 7;
628 public const int CAMERA_BEHINDNESS_ANGLE = 8;
629 public const int CAMERA_BEHINDNESS_LAG = 9;
630 public const int CAMERA_POSITION_THRESHOLD = 10;
631 public const int CAMERA_FOCUS_THRESHOLD = 11;
632 public const int CAMERA_ACTIVE = 12;
633 public const int CAMERA_POSITION = 13;
634 public const int CAMERA_POSITION_X = 14;
635 public const int CAMERA_POSITION_Y = 15;
636 public const int CAMERA_POSITION_Z = 16;
637 public const int CAMERA_FOCUS = 17;
638 public const int CAMERA_FOCUS_X = 18;
639 public const int CAMERA_FOCUS_Y = 19;
640 public const int CAMERA_FOCUS_Z = 20;
641 public const int CAMERA_POSITION_LOCKED = 21;
642 public const int CAMERA_FOCUS_LOCKED = 22;
643  
644 // constants for llGetParcelDetails
645 public const int PARCEL_DETAILS_NAME = 0;
646 public const int PARCEL_DETAILS_DESC = 1;
647 public const int PARCEL_DETAILS_OWNER = 2;
648 public const int PARCEL_DETAILS_GROUP = 3;
649 public const int PARCEL_DETAILS_AREA = 4;
650 public const int PARCEL_DETAILS_ID = 5;
651 public const int PARCEL_DETAILS_SEE_AVATARS = 6; // not implemented
652  
653 //osSetParcelDetails
654 public const int PARCEL_DETAILS_CLAIMDATE = 10;
655  
656 // constants for llSetClickAction
657 public const int CLICK_ACTION_NONE = 0;
658 public const int CLICK_ACTION_TOUCH = 0;
659 public const int CLICK_ACTION_SIT = 1;
660 public const int CLICK_ACTION_BUY = 2;
661 public const int CLICK_ACTION_PAY = 3;
662 public const int CLICK_ACTION_OPEN = 4;
663 public const int CLICK_ACTION_PLAY = 5;
664 public const int CLICK_ACTION_OPEN_MEDIA = 6;
665 public const int CLICK_ACTION_ZOOM = 7;
666  
667 // constants for the llDetectedTouch* functions
668 public const int TOUCH_INVALID_FACE = -1;
669 public static readonly vector TOUCH_INVALID_TEXCOORD = new vector(-1.0, -1.0, 0.0);
670 public static readonly vector TOUCH_INVALID_VECTOR = ZERO_VECTOR;
671  
672 // constants for llGetPrimMediaParams/llSetPrimMediaParams
673 public const int PRIM_MEDIA_ALT_IMAGE_ENABLE = 0;
674 public const int PRIM_MEDIA_CONTROLS = 1;
675 public const int PRIM_MEDIA_CURRENT_URL = 2;
676 public const int PRIM_MEDIA_HOME_URL = 3;
677 public const int PRIM_MEDIA_AUTO_LOOP = 4;
678 public const int PRIM_MEDIA_AUTO_PLAY = 5;
679 public const int PRIM_MEDIA_AUTO_SCALE = 6;
680 public const int PRIM_MEDIA_AUTO_ZOOM = 7;
681 public const int PRIM_MEDIA_FIRST_CLICK_INTERACT = 8;
682 public const int PRIM_MEDIA_WIDTH_PIXELS = 9;
683 public const int PRIM_MEDIA_HEIGHT_PIXELS = 10;
684 public const int PRIM_MEDIA_WHITELIST_ENABLE = 11;
685 public const int PRIM_MEDIA_WHITELIST = 12;
686 public const int PRIM_MEDIA_PERMS_INTERACT = 13;
687 public const int PRIM_MEDIA_PERMS_CONTROL = 14;
688  
689 public const int PRIM_MEDIA_CONTROLS_STANDARD = 0;
690 public const int PRIM_MEDIA_CONTROLS_MINI = 1;
691  
692 public const int PRIM_MEDIA_PERM_NONE = 0;
693 public const int PRIM_MEDIA_PERM_OWNER = 1;
694 public const int PRIM_MEDIA_PERM_GROUP = 2;
695 public const int PRIM_MEDIA_PERM_ANYONE = 4;
696  
697 public const int PRIM_PHYSICS_SHAPE_TYPE = 30;
698 public const int PRIM_PHYSICS_SHAPE_PRIM = 0;
699 public const int PRIM_PHYSICS_SHAPE_CONVEX = 2;
700 public const int PRIM_PHYSICS_SHAPE_NONE = 1;
701  
702 public const int PRIM_PHYSICS_MATERIAL = 31;
703 public const int DENSITY = 1;
704 public const int FRICTION = 2;
705 public const int RESTITUTION = 4;
706 public const int GRAVITY_MULTIPLIER = 8;
707  
708 // extra constants for llSetPrimMediaParams
709 public static readonly LSLInteger LSL_STATUS_OK = new LSLInteger(0);
710 public static readonly LSLInteger LSL_STATUS_MALFORMED_PARAMS = new LSLInteger(1000);
711 public static readonly LSLInteger LSL_STATUS_TYPE_MISMATCH = new LSLInteger(1001);
712 public static readonly LSLInteger LSL_STATUS_BOUNDS_ERROR = new LSLInteger(1002);
713 public static readonly LSLInteger LSL_STATUS_NOT_FOUND = new LSLInteger(1003);
714 public static readonly LSLInteger LSL_STATUS_NOT_SUPPORTED = new LSLInteger(1004);
715 public static readonly LSLInteger LSL_STATUS_INTERNAL_ERROR = new LSLInteger(1999);
716 public static readonly LSLInteger LSL_STATUS_WHITELIST_FAILED = new LSLInteger(2001);
717  
718 // Constants for default textures
719 public const string TEXTURE_BLANK = "5748decc-f629-461c-9a36-a35a221fe21f";
720 public const string TEXTURE_DEFAULT = "89556747-24cb-43ed-920b-47caed15465f";
721 public const string TEXTURE_PLYWOOD = "89556747-24cb-43ed-920b-47caed15465f";
722 public const string TEXTURE_TRANSPARENT = "8dcd4a48-2d37-4909-9f78-f7a9eb4ef903";
723 public const string TEXTURE_MEDIA = "8b5fec65-8d8d-9dc5-cda8-8fdf2716e361";
724  
725 // Constants for osGetRegionStats
726 public const int STATS_TIME_DILATION = 0;
727 public const int STATS_SIM_FPS = 1;
728 public const int STATS_PHYSICS_FPS = 2;
729 public const int STATS_AGENT_UPDATES = 3;
730 public const int STATS_ROOT_AGENTS = 4;
731 public const int STATS_CHILD_AGENTS = 5;
732 public const int STATS_TOTAL_PRIMS = 6;
733 public const int STATS_ACTIVE_PRIMS = 7;
734 public const int STATS_FRAME_MS = 8;
735 public const int STATS_NET_MS = 9;
736 public const int STATS_PHYSICS_MS = 10;
737 public const int STATS_IMAGE_MS = 11;
738 public const int STATS_OTHER_MS = 12;
739 public const int STATS_IN_PACKETS_PER_SECOND = 13;
740 public const int STATS_OUT_PACKETS_PER_SECOND = 14;
741 public const int STATS_UNACKED_BYTES = 15;
742 public const int STATS_AGENT_MS = 16;
743 public const int STATS_PENDING_DOWNLOADS = 17;
744 public const int STATS_PENDING_UPLOADS = 18;
745 public const int STATS_ACTIVE_SCRIPTS = 19;
746 public const int STATS_SCRIPT_LPS = 20;
747  
748 // Constants for osNpc* functions
749 public const int OS_NPC_FLY = 0;
750 public const int OS_NPC_NO_FLY = 1;
751 public const int OS_NPC_LAND_AT_TARGET = 2;
752 public const int OS_NPC_RUNNING = 4;
753  
754 public const int OS_NPC_SIT_NOW = 0;
755  
756 public const int OS_NPC_CREATOR_OWNED = 0x1;
757 public const int OS_NPC_NOT_OWNED = 0x2;
758 public const int OS_NPC_SENSE_AS_AGENT = 0x4;
759  
760 public const string URL_REQUEST_GRANTED = "URL_REQUEST_GRANTED";
761 public const string URL_REQUEST_DENIED = "URL_REQUEST_DENIED";
762  
763 public static readonly LSLInteger RC_REJECT_TYPES = 0;
764 public static readonly LSLInteger RC_DETECT_PHANTOM = 1;
765 public static readonly LSLInteger RC_DATA_FLAGS = 2;
766 public static readonly LSLInteger RC_MAX_HITS = 3;
767  
768 public static readonly LSLInteger RC_REJECT_AGENTS = 1;
769 public static readonly LSLInteger RC_REJECT_PHYSICAL = 2;
770 public static readonly LSLInteger RC_REJECT_NONPHYSICAL = 4;
771 public static readonly LSLInteger RC_REJECT_LAND = 8;
772  
773 public static readonly LSLInteger RC_GET_NORMAL = 1;
774 public static readonly LSLInteger RC_GET_ROOT_KEY = 2;
775 public static readonly LSLInteger RC_GET_LINK_NUM = 4;
776  
777 public static readonly LSLInteger RCERR_UNKNOWN = -1;
778 public static readonly LSLInteger RCERR_SIM_PERF_LOW = -2;
779 public static readonly LSLInteger RCERR_CAST_TIME_EXCEEDED = 3;
780  
781 public const int KFM_MODE = 1;
782 public const int KFM_LOOP = 1;
783 public const int KFM_REVERSE = 3;
784 public const int KFM_FORWARD = 0;
785 public const int KFM_PING_PONG = 2;
786 public const int KFM_DATA = 2;
787 public const int KFM_TRANSLATION = 2;
788 public const int KFM_ROTATION = 1;
789 public const int KFM_COMMAND = 0;
790 public const int KFM_CMD_PLAY = 0;
791 public const int KFM_CMD_STOP = 1;
792 public const int KFM_CMD_PAUSE = 2;
793  
794 /// <summary>
795 /// process name parameter as regex
796 /// </summary>
797 public const int OS_LISTEN_REGEX_NAME = 0x1;
798  
799 /// <summary>
800 /// process message parameter as regex
801 /// </summary>
802 public const int OS_LISTEN_REGEX_MESSAGE = 0x2;
803 }
804 }