Commit Graph

448 Commits (032a4ee9b5d6081ba05bd38590e55d511f9ae7db)

Author SHA1 Message Date
Jeff Ames 4ec4e2cb32 Cleaned up some unreachable code warnings. 2008-02-06 08:31:29 +00:00
Jeff Ames b68d2bd09a Fixed typo in Mag() (Thanks lc_tuco for pointing this out) 2008-02-06 08:26:09 +00:00
Teravus Ovares 9cd9e90e7f * Added Active Scripts to report the number of scripts running to Sim Stats
* Added Script Performance to report the number of functions run per second to Sim Stats.
* Removed a few warnings (@.@ up to 50 now)
2008-02-06 08:03:22 +00:00
alondria 31576c8a26 Somehow llList2Float never made it into LSL_BaseClass and LSL_BuiltIn_Commands_Interface - it is now (and foxes Mantis 395) 2008-02-06 02:04:00 +00:00
Jeff Ames 6ed5283bc0 Converted logging to use log4net.
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
2008-02-05 19:44:27 +00:00
alondria 36f7a087e6 Added explicit Quaternion->string and list->string conversions.
Some preliminary work on llSetStatus and llGetStatus.
2008-02-05 15:06:37 +00:00
Teravus Ovares ca5aadfbff * Refactored the sound calls to SceneObjectPart
* Fixed a few bugs
* Wrote an example module to make certain event systems more mature.
2008-02-05 05:26:18 +00:00
Jeff Ames 99844ee4c0 Added copyright statements. 2008-02-05 03:20:51 +00:00
Teravus Ovares 3ff5ad1ed3 Patch from mikkopa/_someone Thanks! adds support for llPreloadSound, llTriggerSound, llPlaySound, llPreloadSound.
* Time to make music boxes?
2008-02-04 14:40:46 +00:00
Adam Frisby 6fbc64af5e * Whole buncha stuff. 2008-02-04 10:39:30 +00:00
alondria bc3d0217af Added llRot2Fwd, llRot2Left, and llRot2Up as well as explicit vector->string casting.
(Thanks to dalien on informing me how easy the math was for these).
2008-02-03 16:42:43 +00:00
Tedd Hansen 5a99a96fed Temporarily disabled shared threads because of a bug. Script were only working on 1 region. :)
Using default warning level on C#/VB compile
2008-02-03 09:35:50 +00:00
alondria 742ed9537d Implements LSL function llDialog().
The ScriptDialogReply packet handler is a bit of a hack job. It is currently handled similar to ChatFromViewer, which will trigger the listen() event, however this is not exactly how LL's implementation works and will/can be fixed up later.
2008-02-02 22:53:01 +00:00
alondria 0ea708c133 Added llParseString2List (and a few extra methods to LSL_Types.list). 2008-02-02 18:52:07 +00:00
Teravus Ovares 2d6c21e8fc * Added Full support for llSetTextureAnim. To ckrinke: Let the fountains of Wright Plaza flow!
* Fixed another bug in LibSL.  This is the same version, as before just with a bug fix.
2008-02-02 08:11:14 +00:00
Tedd Hansen 785b641272 fixed a timing bug in config re-read. Apparently there is 1000000000 ns in one second... 2008-02-02 07:53:13 +00:00
Tedd Hansen 2db5de3e72 Added commands to change config file from console:
CONFIG SET section key value value value
CONFIG GET section key
CONFIG SAVE (it saves, but does it save correctly?:)

ScriptEngine will react correctly to any config change made while it is running.
2008-02-02 07:35:51 +00:00
Jeff Ames b1a6f4821b Updated svn properties. 2008-02-02 07:13:37 +00:00
Tedd Hansen 7bd3ecfc2a Bugfixes. Now it even reads configuration before it uses it! ;) 2008-02-02 04:35:08 +00:00
Teravus Ovares d4f32649cd * Committing some untested stuff regarding texture animations. This won't break anything, but the llSetTextureAnim function is completely untested.. (though it may be functional once the script engine works again) 2008-02-02 03:57:57 +00:00
Tedd Hansen e06ee9fd4b Added load/unload queue size limit
Added option to share script load/unload thread between regions
Added event execution queue size limit
+ some bugfixes from all the changes
2008-02-02 03:11:06 +00:00
Tedd Hansen 8ccc12d642 Added OpenSim.32BitLaunch.exe that can be used on 64-bit systems to run OpenSim in 32-bit mode.
Added VISUAL BASIC.NET-support
//cs, //lsl and //vb as first characters of script will determine what compiler is used.
Compile warnings are no longer treated as errors. Script will still run.
Added a few useless and useful config options:
Write script source to harddisk for debug, Default compile language, Allowed compilers (languages), compile in release or debug mode, clean up old scripts on startup
Loads of warnings for incorrect config
2008-02-02 02:35:56 +00:00
Tedd Hansen 667197f24d Added OpenSim.32BitLaunch.exe that can be used on 64-bit systems to run OpenSim in 32-bit mode.
Fixed ScriptEngine.Common startup problems.
2008-02-02 00:59:22 +00:00
Tedd Hansen ea74f97e9b Forgot to create an object before use. Now why can't .Net just do that itself? :) 2008-02-02 00:20:31 +00:00
Tedd Hansen 34d21ac94b Added some error checking to MaintenanceThread, no-crash (just log) loading of script engines, and support to load multiple script engines 2008-02-02 00:09:55 +00:00
Tedd Hansen 694642a482 Moved iniFilePath to a static and put it in OpenSim.Application.iniFilePath.
Refreshing config based on this.
Temporarily disabled feature to refresh config file while running.
2008-02-01 23:56:09 +00:00
Tedd Hansen 4715453159 Bugfix, maybe it won't crash during startup and crash somewhere else instead? :) 2008-02-01 23:44:02 +00:00
Tedd Hansen d02a90823f SCRIPTING STILL BROKEN
Added comments and regions, restructured code
Changed a lot of AppDomain junk from console from using Console.Write to Log.Verbose and set it to #if DEBUG
All modules should now refresh their configuration runtime
Made all logging in ScriptEngine.Common get script name from actual engine
Renamed LSLLongCmdHandler to AsyncLSLCommandManager
Added auto-recover with 5 sec throttle for new MaintenanceThread
2008-02-01 23:36:36 +00:00
Tedd Hansen a6726b0c9d SCRIPT SUPPORT IS STILL BROKEN.
Bugfix: Scripts exceeding max and set to be killed were not killed, only removed.
Added ability to re-read configuration while OpenSim is running
All regions now sharing one MaintenanceThread
New MaintenanceThread:
- checks for script execution timeout
- re-reads config
- starts/stops threads if thread active count becomes too high/low compared to config
Speed increase on event execution:
- Reuse of try{}catch{} blocks
- Time calculation on event execution
2008-02-01 22:18:55 +00:00
Tedd Hansen 0c0286911d Config option to set number of scripts per AppDomain 2008-02-01 20:52:00 +00:00
Tedd Hansen e14c8f59f7 Added config options:
ScriptThreadPriority to set script thread priority
DeactivateScriptOnTimeout to remove script if it is executing too long
2008-02-01 20:45:15 +00:00
Tedd Hansen f4ddf5cf28 Removed "Loading inventory for Primitive" message.
Fixed small bug in thread counter.
2008-02-01 20:19:29 +00:00
Tedd Hansen a9c1f3fdb4 Experimental
Moved DotNetScriptEngine configuration to config file.
Added option to share script execution threads between regions.
2008-02-01 20:12:25 +00:00
Tedd Hansen 5d6e89eaf9 Highly experimental
A separate thread is used to enforce max function (event) execution time for scripts.
2008-02-01 19:07:05 +00:00
alondria 43ecb1b4d2 Fixed errors being thrown by invalid PSYS_SRC_TARGET_KEY's in llParticleSystem - defaults to source prim (consistent with LL grid).
Should fix mantis 427.
2008-02-01 15:22:11 +00:00
alondria 0eb4e85988 Thanks to Hashbox for a patch to:
Implementing llStringTrim and hooking in osRegionNotice
2008-02-01 14:18:00 +00:00
Teravus Ovares bec71977ab * Added more supported feature to particlesystems. While this appears to have a libsl update... it's really a fix to the libsl version we're already using because of a bug in the particlesystem implementation
* Added two new simstat counters in the simstat enum for the RCCS.  (I'll find something cool to put in them)
* fixed a time waster in ODEPlugin.cs
2008-02-01 04:22:20 +00:00
Teravus Ovares e2f783789c * Adding limited support for LLParticleSystem.
* We still need to set the 'default particle' texture as, a particle system with no texture set doesn't work.
* The particle System Flags don't seem to be quite right yet as some flags don't seem to have an effect.   So no alpha in/out, color change, affected by the wind, etc.. yet
* Thanks to Alondria for some massive work here.  This update just tweaks a few things that she did.
2008-01-31 18:27:11 +00:00
alondria 62ae3c9bf5 Hit a dead end with llParticleSystem (libsecondlife issues) so no functionality added yet, but did not want to loose work. 2008-01-31 06:59:48 +00:00
Charles Krinke a759ff5ea3 Surround the "non implemented" in an else clause if face is inappropriate for:
llSetColor, llSetAlpha, llGetColor, llSetTexture, llOffsetTexture, 
llRotateTexture & llGetTexture
2008-01-21 03:14:38 +00:00
Teravus Ovares 8fdeab57b1 * Potential fix to the 'can't run a script anymore bug' 2008-01-19 02:58:19 +00:00
Tedd Hansen 82d43db1cc Added data structure to be passed through event execution queue so that events can use llDetect*-commands to find information about event. 2008-01-17 15:22:35 +00:00
Teravus Ovares 18c959df12 * Added llApplyImpulse in the global frame. The object must be physical before this'll do anything. Be careful with this function as it's easy to loose prim. 2008-01-17 14:59:05 +00:00
Teravus Ovares c2863df49d * Added and implemented the LSL changed event.
* An example changed event syntax is at: http://opensimulator.org/wiki/Changed_Event_Example
* You can use this to trigger actions in your script if someone sits on your object_rez
* You can use this to figure out all of the CHANGED_ constants except for CHANGED_REGION, CHANGED_TELEPORT, and CHANGED_ALLOW_DROP
2008-01-17 02:23:48 +00:00
Adam Frisby b25f9f322c * Mother of all commits:
* Cleaned up copyright notices in AssemblyInfo.cs's
* Added Copyright headers to a bunch of files missing them
* Replaced several common string instances with a static constant to prevent reallocation of the same strings thousands of times. "" -> String.Empty is the first such candidate.
2008-01-15 02:09:55 +00:00
Tedd Hansen 370e79cd9e ZERO_ROTATION set to 0,0,0,1 -- not 0,0,0,0 ;) 2008-01-14 15:37:00 +00:00
Charles Krinke fa83249db8 Thank you very much, Kinoc for implementing llGetSubString and llDeleteSubString:
from the c# implementations of string.SubString(start,len) and string.Remove(start,len).
Especially since negative indexing and exclusion are included in the LSL versions. 
This patch is closer to the LSL version. Maybe an osSubString and osRemoveString 
would be appropriate?
2008-01-12 22:25:10 +00:00
Tedd Hansen 0081c060d0 Set eol 2008-01-12 14:45:59 +00:00
Tedd Hansen 33d82aa532 Added license to new files 2008-01-12 14:40:28 +00:00
Tedd Hansen bacbade369 Major reorganizing of DotNetEngine. Moved common script engine parts to ScriptEngine.Common, only .Net-specific code in DotNetEngine. AppDomains, event handling, event execution queue and multithreading, script load/unload queue, etc has been moved to ScriptEngine.Common.
Loads of things has been put into interfaces instead of the specific class.
We are now one step closer to ScriptServer, and its very easy to implement new script languages. Just a few lines required to make them a OpenSim script module with all its glory.
2008-01-12 14:30:22 +00:00
Tedd Hansen a993d0d335 ScriptServer communication is ok. Script is creatd on onrez. But since it can not access Scene it sort of crashes right away ;)
Added some sample placeholders for implementing rest of LSL events.
2008-01-12 10:25:08 +00:00
Tedd Hansen 011abad053 ScriptServer protocol now correctly casts datatypes -- ready for implementing 2008-01-12 09:44:01 +00:00
alondria c2ca98519b Linking osTerrainGetHeight, osTerrainSetHeight, and osRegionRestart to LSL_BaseClass to allow them to be called in LSL scripts. 2008-01-12 03:23:11 +00:00
Jeff Ames 5d7e120d56 Set svn:eol-style. 2008-01-12 01:35:25 +00:00
Tedd Hansen e7dbaad04f New ScriptServer protocol successfully implemented.
Still needs hooking up for all commands in both ends, separation of local and remote LSL-commands, etc.
2008-01-12 01:14:31 +00:00
Tedd Hansen 1e9a66cbaa ScriptServer communication protocol (v1), primitive RPC-like TCP client/server 2008-01-12 00:48:58 +00:00
Tedd Hansen 260145a7e6 Dynamic loading of ScriptEngine in ScriptServer
ScriptServer event pipe (OpenSim->ScriptServer->ScriptEngine) should in theory be done
2008-01-09 17:13:02 +00:00
Jeff Ames 3d7e6fc6d8 Set svn:eol-style. 2008-01-06 11:17:57 +00:00
Tedd Hansen 966f639ad6 Changes to ScriptServer to (hopefully) make it compile on both .Net and Mono.
Some debug info for startup added to find bugs. ++
2008-01-05 15:48:02 +00:00
Tedd Hansen 4d3a8f4b52 Fixed nant compile problem 2008-01-01 15:28:16 +00:00
Tedd Hansen d484df15c0 Trying to fix nant compile error 2008-01-01 15:18:36 +00:00
Tedd Hansen 7ef7caa200 Temp removed new data types patch from Mantis #272, causing compile problems (nant) 2008-01-01 14:56:12 +00:00
Tedd Hansen 8d79a5d93c Minor changes. Changed Prebuild.xml to avoid first-time-compile error because of dependencies. Made some changes to new LSLString. 2008-01-01 14:23:14 +00:00
Tedd Hansen 86a38dfd0f Adrianas 0000272 -- I think we need to implement standard string/integer/float functions too. 2008-01-01 11:41:07 +00:00
Tedd Hansen 9eba3d2f89 Fixed string issue in compiler 2008-01-01 11:28:56 +00:00
Tedd Hansen a8cb20355c Correction of last commit 2007-12-31 19:31:40 +00:00
Tedd Hansen 527b5f86a2 In this commit I am using an editor feature called "Save All" before I commit. 2007-12-30 16:34:54 +00:00
Tedd Hansen 7ef09a1202 Added comments to ScriptEngine classes that explains what their purpose is 2007-12-30 16:32:29 +00:00
Charles Krinke 3cf3b426b6 Thank you again, Alondria for:
Adding some more support to Vectors and Rotations  
Description  * String->Vector/Rotation added
* Vector * and / a double added.
2007-12-27 23:09:31 +00:00
lbsa71 efd90b56b7 * Optimized usings
* shortened references
* Removed redundant 'this'
* Normalized EOF
2007-12-27 21:41:48 +00:00
Charles Krinke fa2495ae6b Again, great thanks to Alondria for:
Adding:: llSetParcelMusicUrl(), llGetRootPosition(), llGetRootRotation(), 
llGetGeometricCenter(), llSetLocalRot(), llListReplaceList(), 
llGetObjectPrimCount(),llGetParcelDetails(), llGetParcelMaxPrims(), 
llWater(), llGetLocalRot(), and llGetAccel()
2007-12-24 21:16:32 +00:00
Jeff Ames 6702b03733 Misc. cleanup:
* added Util.Clip(value, min, max)
* modified asset cache's numPackets calculation to use max packet size (600) instead of 1000
* removed a few magic numbers
2007-12-19 08:44:25 +00:00
Charles Krinke 6f389ba4cf Many Thanks to Alondria for adding:
The list type and a bunch of support functions to LSL  
Added/ReImplmented: llGetListLength(), llList2Integer(), osList2Double() (note rename), 
    llList2Float(), llList2String(), llList2Key(), llList2Vector(), llList2Rot(), 
    llList2List(), llDeleteSubList(), llGetListEntryType(), llList2CSV(), llCSV2List(), 
    llListInsertList(), llDumpList2String(), 
Borked Still: llListSort(), llListRandomize(), llList2ListStrided(), llListFindList(),
Changed: llHTTPRequest() (Made wrapper of LSL_Types.list->List<string>)
2007-12-18 02:41:34 +00:00
Charles Krinke 8e8c26acac Again, thanks to Alondria for:
Added: LinkNum to SceneObjectPart
Added: Bunch-o settings of LinkNum in SceneObjectGroup
Added: llGetNumberOfPrims()
Added: llGetLinkNumber()
Added: llGetLinkKey()
Added: llGetLinkName() (and change to string return type)
2007-12-17 02:30:03 +00:00
Charles Krinke fd360406b9 Thanks again to Alondria for adding: math support for
rot * rot, vec / rot, == and != overriders for Rotations and Vectors.
Also: llRotBetween(), llGetRegionTimeDilation(). And fixing:
Error in LSL2CSConverter that botched a variable with a type name in it (ex: rotationCenter)
Fixed: Error in LSL2CSConverter that parsed which() loops incorrectly.
Fixed: Changed definition of Quaternion to <x, y, z, r> from <x, y, z, t> (As per LSL)
Finished: llEuler2Rot()
2007-12-15 16:26:32 +00:00
Sean Dague 7625438ade From Michael Osias (IBM)
This patch implements the llHttpRequest function via a region module,
HttpScriptsRequest.  There were bits and peices in LSLLong_cmd_handler,
which I moved into the region module, and just check for completed
requests and dispatch the http_response callback event instead.

works for me as of r2674
2007-12-12 22:14:43 +00:00
Charles Krinke 47b091f663 Thanks to Alondria for: Adding vector->string and rotation->string,
float * vector, vector * float, vector / float, vector + vector,
vector - vector, vector * vector, vector % vector and changing
x, y, z, (and r) parts of vector and rotation to be lower case 
(similar to LL's LSL vectors/rots). With these changes we should 
expect to run kan-ed#1, kan-ed#2 and most of kan-ed#3.
2007-12-12 17:18:15 +00:00
Jeff Ames af6eb67999 saved OpenSim source code from the giant rampaging unterminated copyright notice of doom 2007-12-10 05:25:16 +00:00
Tedd Hansen dcf41cb683 ScriptServer fixes: Added more debug logging, mutex lock (to be extra-super-sure) on script load/unload, removed experimental Grid-scriptengine from compile because of dynamic module loader, and added random string to script filename to bypass module loader file lock.
Please delete your copy of bin/ScriptEngine/OpenSim.Grid.ScriptEngine.DotNetEngine.dll.
2007-11-01 19:27:03 +00:00
lbsa71 67e12b95ea * Optimized usings
* Shortened type references
* Removed redundant 'this' qualifier
2007-10-30 09:05:31 +00:00
lbsa71 849eaffbe5 * Applied patch #418 : copyright-r2012.patch - some errors, but got most thru 2007-10-15 07:10:21 +00:00
Sean Dague b8d9737a47 fixing me some line endings 2007-09-17 12:52:03 +00:00
Tedd Hansen c654506b18 Implemented: llSetText, llResetScript
Implemented: llHTTPRequest (queue, thread, etc -- but not actuall call)
2007-09-16 03:36:13 +00:00
Sean Dague afea5f2205 remove ^M, as native storage should be UNIX format, and ^M in/out mashing
will happen on the windows side now that eol-style is correct
2007-09-13 11:41:42 +00:00
Sean Dague ffe9c9374a mass update of urls in source code to new website 2007-09-10 08:14:38 +00:00
MW bfd36e2e83 Some work on Module loading/management.
Some more modules templates classes (hoping that someone will pick some of these and work on implementing them).
Early version of the "Dynamic Texture Module", although currently there are no render modules included (so not really functional without them). 
Added osSetDynamicTextureURL script function, for attaching a dynamic texture to a prim. 
Some work on the console command handling. Added "change-region <regionname>" and "exit-region" so that after the use of change-region, the commands entered will apply to that region only. Then use exit-region to return to the top level (so commands then function as they did before and either apply to all regions or to the first region) (Note: this hasn't been tested very much)
2007-09-04 13:43:56 +00:00
Tedd Hansen ebb0099816 Run-time script errors are now shown in-world. No line number though, might require script to be compiled with (slow) debug information. 2007-08-26 13:31:58 +00:00
Tedd Hansen d9b9b16513 Script compiler should now show error on correct line number in original LSL-script. 2007-08-25 21:35:03 +00:00
Tedd Hansen b75c1b2191 Added class for "long commands" (command that returns as event) with dedicated thread for processing. Added support for llSetTimerEvent(). Deleting old compiled scripts before new compile is attempted (avoids loading wrong script on compile error). 2007-08-25 19:08:15 +00:00
Tedd Hansen 53be4774b3 Scripts no longer crash sim after 5 minutes (override InitializeLifetimeService). Loading/Unloading of scripts are now handled in separate thread so server is no delayed because of this. Each script is loaded into a single AppDomain (temporary test for script unload, eats ~15KB more memory for each script). Unload of scripts has been verified to free up memory. 2007-08-25 15:31:47 +00:00
Tedd Hansen 1b826c2fdc Added "StopScriot()" to ScriptManager. Stops Executor from executing events in script, removes script from EventQueueManagers target list, tells AppDomainManager that script is no longer active (and ready for unload). 2007-08-19 17:47:47 +00:00
Tedd Hansen e70cdbc5ac Added event method invoke cache to Executor. "Bind once, Invoke multiple times". Will speed up script event execution considerable. But at the cost of some memory (will be optimized later with RuntimeXHandle). 2007-08-19 10:28:27 +00:00
Tedd Hansen 489803e6bc Did I forget to add IScript.cs? Yes I did... 2007-08-18 23:38:03 +00:00
Tedd Hansen 37446b0392 Moved in-AppDomain event execution from Script to OpenSim.Region.ScriptEngine.Executor. Script no longer responsible for handling event calls to itself (and we can create reference cache in Executor). 2007-08-18 23:24:38 +00:00
Tedd Hansen 240712ca9f Scripts are working again. Scripts are now loaded into limited AppDomains (no security yet).
*phew* that only took me 12 hours of coding...
2007-08-18 22:09:07 +00:00
Tedd Hansen 551f2af39f LSL Compiler now only referring required assemblies (DotNetEngine and Common). Changed Vector and Rotation to custom types (stored in Common) that needs to be changed later. No longer using Axiom. Script support still broken. 2007-08-18 20:53:13 +00:00
Tedd Hansen 1d41fd4984 Working on AppDomains. Scripting is now officially broken. :] 2007-08-18 19:54:04 +00:00
Tedd Hansen 6d10c65358 Moved LSL_BuiltIn_Commands_Interface.cs to a separate library (OpenSim.Region.ScriptEngine.Common). Fixed last compile error (forgot to include LSL_BuiltIn_Commands.cs). 2007-08-18 18:53:03 +00:00