aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-01-14Register the UrlModule for script engine events OnScriptRemoved and ↵Justin Clark-Casey (justincc)1-5/+0
OnObjectRemoved just once in the UrlModule itself, rather than repeatedly for every script. Doing this in every script is unnecessary since the event trigger is parameterized by the item id. All that would happen is 2000 scripts would trigger 1999 unnecessary calls, and a large number of initialized scripts may eventually trigger a StackOverflowException. Registration moved to UrlModule so that the handler is registered for all script engine implementations. This required moving the OnScriptRemoved and OnObjectRemoved events (only used by UrlModule in core) from IScriptEngine to IScriptModule to avoid circular references.
2012-01-13Cleaned up the LookAt code in SOP and SOG. Added support for incrementallyMic Bowman1-4/+4
rotating physical objects. This does not use physics. Currently the rate of change is determined as 1 / (PI * Strength).
2012-01-13Fix llRotLookAt and llLookAt for non-physical objects. Per conversationMic Bowman1-7/+23
with Melanie and Nebadon, SL behavior seems to be that non physical objects snap to the request rotation.
2012-01-06Fixed llAngleBetween() to allow denormal rotationsJohn Cochran1-5/+9
2012-01-06Add script instruction count back to llRot2Euler. Other minor ↵Justin Clark-Casey (justincc)1-2/+12
formatting/doc changes.
2012-01-06Replaced llRot2Euler function.John Cochran1-18/+13
The original function suffered from unexpected results due to rounding errors. An error of only 1 or 2 ulps would cause the code to not detect a singularity at Y rotation +/- PI/2 and take the non-singularity code path. The replacement code does not suffer from wildly inaccurate results at the +/- PI/2 singularity. The check in the code for the singularity isn't strictly needed, but gives more consistent results At the singularity, the X and Z rotations add. The if check simply forces the X rotation to be zero so the entirety of the X+Z rotation is carried by Z. Additionally, the test code has been updated to include test cases that caused the old code to fail. The test algorithm is also updated to perform a more meaningful test. The original code checked if the values against expected values. This could fail at +/- PI rotations since a rotation around an axis by PI causes the identical effect as a rotation by -PI. The new test code checks that the returned angles can be used to recreate a quaternion that causes the same rotation.
2011-12-12Cleaned up ScenePresence parameters for Flying, WasFlying, FlyingOld and ↵Dan Lake1-3/+1
IsColliding
2011-12-05Fix CHANGED_TEXTURE and CHANGED_COLOR.Melanie1-18/+18
2011-12-03Use agent.Animator.CurrentMovementAnimation in llGetAgentInfo() rather than ↵Justin Clark-Casey (justincc)1-1/+1
asking for a new determination
2011-12-03Rename ScenePresenceAnimator.GetMovementAnimation() -> ↵Justin Clark-Casey (justincc)1-1/+1
DetermineMovementAnimation() for better code readability
2011-11-26Add missing property to llGetLinkPrimitiveParamsBlueWall1-0/+3
2011-11-03Rename ForEachAvatar back to ForEachScenePresence. The other changesDan Lake1-6/+6
from previous commit which sort out which iterator is used are left intact. A discussion is needed as to what constitutes an avatar vs a ScenePresence.
2011-11-03Renamed ForEachRootScenePresence to ForEachAvatar. Cleaned up calls toDan Lake1-10/+9
the 3 iteration functions so more of them are using the correct iteration for the action they are performing. The 3 iterators that seem to fit all actions within OpenSim at this time are: ForEachAvatar: Perform an action on all avatars (root presences) ForEachClient: Perform an action on all clients (root or child clients) ForEachRootClient: Perform an action on all clients that have an avatar There are still a dozen places or so calling the old ForEachScenePresence that will take a little more refactoring to eliminate.
2011-11-02Changes UpdateFlag in SOP to an enumeration of NONE, TERSE and FULL.Dan Lake1-9/+6
UpdateFlag is now referenced/used only within SOP and SOG. Outsiders are using ScheduleFullUpdate, ScheduleTerseUpdate or ClearUpdateSchedule on SOP consistently now. Also started working toward eliminating those calls to ScheduleFullUpdate, ScheduleTerseUpdate or ClearUpdateSchedule from outside SOP in favor of just setting properties on SOP and let SOP decide if an update should be scheduled. This consolidates the update policy within SOP and the client rather than everywhere that makes changes to SOP. Some places forget to call update while others call it multiple times, "just to be sure". UpdateFlag and Schedule*Update will both be made private shortly. UpdateFlag is intended to be transient and internal to SOP so it has been removed from XML serializer for SOPs.
2011-11-02Restore the recursive calling of PRIM_LINK_TARGET because the version I madeMelanie1-327/+334
breaks LINK_SET et al.
2011-11-02Some positioning fixes from AVN trunkMelanie1-1/+42
2011-11-02Streamline PRIM_LINK_TARGET, eliminating a recursion and a failure scenarioMelanie1-4/+3
2011-10-27Added new ForEachRootScenePresence to Scene since almost every delegate ↵Dan Lake1-10/+10
passed to ForEachScenePresence checks for !IsChildAgent first. It consolidates child and root handling for coming refactors.
2011-10-26Implementation of PRIM_OMEGA, but only for settingSignpostMarv Martin1-4/+17
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2011-10-26Implementing PRIM_LINK_TARGET, but only for setting paramsSignpostMarv Martin1-4/+13
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2011-10-19Add "show scripts" command to show all scripts currently known to the script ↵Justin Clark-Casey (justincc)1-2/+0
engine in the current region. Also added synonym of "scripts show"
2011-10-17refactor: Use SOP.SitTargetAvatar instead of calling a special ↵Justin Clark-Casey (justincc)1-1/+1
GetAvatarOnSitTarget() which returned exactly the same thing
2011-10-12Get rid of some traces of the old pre-ROBUST grid architecture configJustin Clark-Casey (justincc)1-2/+0
2011-10-10Convert getLastReportedSimFPS() and getLastReportedSimStats() into more ↵Justin Clark-Casey (justincc)1-1/+1
idiomatic LastReportedSimFPS and LastReportedSimStats on SimStatsReporter
2011-10-10refactor: have lsl and ossl interrogate scene.StatsReporter directly rather ↵Justin Clark-Casey (justincc)1-1/+1
than going through scene I know this goes against the law of demeter but I don't think it's that useful here and I'd rather get rid of nasty little wrapper methods
2011-10-04Removed all refs to IClientAPI from IAttachmentsModule. Separated client ↵Dan Lake1-1/+1
handlers for attachments to call public interface and rearranged module file into sections
2011-10-03Removed redundant code in AttachmentsModule and simplified interfaces which ↵Dan Lake1-2/+1
converted back and forth between ScenePresence and IClientAPI. More to be done still.
2011-10-04trival tweak to trigger the continuous integration systemJustin Clark-Casey (justincc)1-1/+1
2011-10-04Return NULL_KEY from llGetTexture if a non-existent face is indicated, ↵Justin Clark-Casey (justincc)1-1/+1
rather than "" As per http://wiki.secondlife.com/wiki/LlGetTexture
2011-10-04For llGetTexture(), if the face texture asset is in the inventory, return ↵Justin Clark-Casey (justincc)1-1/+16
the inventory name rather than the asset UUID This is as per http://wiki.secondlife.com/wiki/LlGetTexture Applied patch in http://opensimulator.org/mantis/view.php?id=4552 with an additional break statement if an inventory item is found to exit early. Thanks Michelle Argus!
2011-10-01llGetLinkKey, llGetLinkName Fix for sitting AvatarPixel Tomsen1-0/+41
when an avatar sits on a prim, we get now his key & name ;-) http://opensimulator.org/mantis/view.php?id=4476
2011-09-29llAvatarOnLinkSitTarget ImplementationPixel Tomsen1-0/+14
http://wiki.secondlife.com/wiki/LlAvatarOnLinkSitTarget
2011-09-15refactor: rename SOG/SOP.GetProperties() to SendPropertiesToClient() to ↵Justin Clark-Casey (justincc)1-1/+1
reflect what it actually does This also makes it consistent with some other methods that send data to the client.
2011-09-09llSetPrimitiveParams Prim type params precision errorsMicheil Merlin1-19/+57
2011-09-01refactor: use SOG register target waypoints and rots directly instead of ↵Justin Clark-Casey (justincc)1-4/+6
calling through the SOP, which doesn't make conceptual sense anyway.
2011-09-01Eliminate pointless checks of SOG.RootPart != nullJustin Clark-Casey (justincc)1-6/+1
It's never possible for SOG to have no RootPart, except in the first few picosends of the big bang when it's pulled from region persistence or deserialized
2011-09-01Fix issue with llGetTorque() where it would only ever return a zero vector.Justin Clark-Casey (justincc)1-1/+1
2011-09-01Remove pointless cluttering SOP.ParentGroup != null checks.Justin Clark-Casey (justincc)1-102/+55
The only times when ParentGroup might be null is during regression tests (which might not be a valid thing) and when scene objects are being constructed from the database. At all other times it's not possible for a SOP not to have a SOG parent.
2011-08-27refactor: move SOP.IsAttachment and AttachmentPoint up into SOG to avoid ↵Justin Clark-Casey (justincc)1-10/+10
pointless duplication of identical values
2011-08-26refactor: simplify SOP.AttachedAvatar into SOG.AttachedAvatarJustin Clark-Casey (justincc)1-4/+4
This does a tiny bit to reduce code complexity, memory requirement and the cpu time of pointlessly setting this field to the same value in every SOP
2011-08-25llSetPrimitiveParams correct prim hollow for cases where limit should be 70%.Micheil Merlin1-40/+47
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2011-08-24Fix llAttachToAvatar()Justin Clark-Casey (justincc)1-2/+2
Apart from one obvious bug, this was failing because attempting to serialize the script from inside the script (as part of saving the attachment as an inventory asset) was triggering an extremely long delay. So we now don't do this. The state will be serialized anyway when the avatar normally logs out. The worst that can happen is that if the client/server crashes, the attachment scripts start without previous state.
2011-08-23rename AttachmentsModule.ShowDetachInUserInventory() to ↵Justin Clark-Casey (justincc)1-1/+1
DetachSingleAttachmentToInv() for consistency and to reflect it's actual behaviour
2011-08-23Protect a check for default texture entry when setting alpha values. ApparentlyMic Bowman1-3/+10
if all faces have their own textures then the default texture is null
2011-08-22Thanks Neil Canham for fixing bulk inventory updates, no sending ↵Snoopy Pfeffer1-1/+1
BulkInventoryUpdate after accepting inventory items.
2011-08-20Add avatar and attachments to llRegionSayBlueWall1-6/+3
llRegionSay will now message avatars on chan 0 and will message attachments on the avatar that listen on channels other than 0. This behavior is consistant with the LL implementation as tested on regions in Agni with one exception: this implementation does not include issue: https://jira.secondlife.com/browse/SCR-66?
2011-08-19Add llRegionSayToBlueWall1-6/+21
llRegionSayTo(key target, integer channel, string messasge) Allows messages to be sent region-wide to a particular prim.
2011-08-13llGetPrimitiveParams fix prim hollow/hole shape valueMicheil Merlin1-3/+3
2011-08-11implement osNpcGetRot() and osNpcSetRot()Justin Clark-Casey (justincc)1-1/+2
Rotation works if done around the z axis. Anything else leads to random results.
2011-08-09Implement first draft functions for saving and loading NPC appearance from ↵Justin Clark-Casey (justincc)1-6/+27
storage. This works by serializing and deserializing NPC AvatarAppearance to a notecard in the prim inventory and making the required baked textures permanent. By using notecards, we avoid lots of awkward, technical and user-unfriendly issues concerning retaining asset references and creating a new asset type. Notecards also allow different appearances to be swapped and manipulated easily. This also allows stored NPC appearances to work transparently with OARs/IARs since the UUID scan will pick up and store the necessary references from the notecard text. This works in my basic test but is not at all ready for user use or bug reporting yet.