aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-01-17minor: In AttachmentsModule.UpdateKnownItem use the existing ↵Justin Clark-Casey (justincc)1-3/+2
IInventoryAccessModule reference that other methods are already using rather than fetching its own copy.
2014-12-17Fix recent regression where a race condition meant SP.MakeRootAgent() would ↵Justin Clark-Casey (justincc)1-5/+11
sometimes look to start attachment scripts before ETM.HandleIncomingSceneObject() had added them. Probably a regression since ghosts branch merge on Nov 26 2014
2014-12-10Fix a regression where objects crossing regions in the same simulator (on ↵Justin Clark-Casey (justincc)1-0/+7
their own or as attachments) with AppDomainLoading = false would create the new state in the source region area rather than the dest. This was beause the code was finding the script DLL compiled for the source region as everything is in the same appdomain and using this as the location for the destination script state, etc. This resolves the regression by passing the proper destination separately from the DLL retrieved. Probably a regression since commit d7b92604 (11 July 2014). Added regression test for this case. At least partly addresses http://opensimulator.org/mantis/view.php?id=7278
2014-11-10minor: correct console response when setting attachments logging levelJustin Clark-Casey1-1/+1
2014-10-02Don't unnecessarily remove from backup objects that were not directly ↵Justin Clark-Casey (justincc)1-3/+8
attached from the scene. These are never in region backup in the first place since recent 11830c43 Extend regression test to check backup status.
2014-05-22Fixed a problem with detaching attachments in situations where the user's ↵Diva Canto1-7/+2
asset server is not the same as the simulator's asset server. Unfortunately this still continues to be wasteful -- new assets are created every time an attachment is detached, but the process of storing the new asset goes through the InventoryAccess module, which does all sorts of checks regarding the users' inventory.
2014-05-01Fix issue where only one of multiple attachments on the same attachpoint for ↵Justin Clark-Casey (justincc)1-0/+7
NPCs would be seen by other viewers. It appears that at least Singularity 1.8.5 (but probably others) rely on attachment FromItemIDs being different to display more than one. This commit resolves this by generating random IDs instead of always using UUID.Zero for NPCs. Resolves http://opensimulator.org/mantis/view.php?id=7110
2014-03-22Fix negative stat for Active ScriptsDev Random1-2/+3
Signed-off-by: Michael Cerquoni <nebadon2025@gmail.com>
2013-11-15minor: Use default(UUID) in rez attachment failure error logging rather than ↵Justin Clark-Casey (justincc)1-1/+1
(UUID)null Patch from http://opensimulator.org/mantis/view.php?id=6843 Thanks Kira.
2013-09-22Preserve attachment point & position when attachment is rezzed in worldAleric Inglewood1-1/+17
Patch taken from http://opensimulator.org/mantis/view.php?id=4905 originally by Greg C. Fixed to apply to r/23314 commit ba9daf849e7c8db48e7c03e7cdedb77776b2052f (cherry picked from commit 4ff9fbca441110cc2b93edc7286e0e9339e61cbe)
2013-08-17minor: remove mono compiler warning from AttachmentsModuleJustin Clark-Casey (justincc)1-2/+1
2013-08-02Move experimental attachments throttling further down the chain so that ↵Justin Clark-Casey (justincc)1-16/+15
multiple attachments changes (e.g. change outfit) are also throttled
2013-08-01Add experimental "debug attachments throttle <ms>" setting (command line) ↵Justin Clark-Casey (justincc)1-15/+87
and ThrottlePer100PrimsRezzed in [Attachments] in config This is an experimental setting to control cpu spikes when an attachment heavy avatar logs in or avatars with medium attachments lgoin simultaneously. It inserts a ms sleep specified in terms of attachments prims after each rez when an avatar logs in. Default is 0 (no throttling). "debug attachments <level>" changes to "debug attachments log <level>" which controls logging. A logging level of 1 will show the throttling performed if applicable. Also adds "debug attachments status" command to show current throttle and debug logging levels.
2013-07-16Attachments module only registers when enabled. This enables alternative ↵Dan Lake1-2/+4
attachments module implementations. All calls to Scene.AttachmentsModule are checking for null. Ideally, if we support disabling attachments then we need a null attachments module to register with the scene.
2013-05-09remove pointless region handle paramter from IClientAPI.SendKillObject()Justin Clark-Casey (justincc)1-1/+1
2013-04-02minor: Remove unnecessary call to GetAttachments() in ↵Justin Clark-Casey (justincc)1-2/+0
AttachmentsModule.UpdateUserInventoryWithAttachment()
2013-03-29refactor: move the append magic number processing for attachments back up ↵Justin Clark-Casey (justincc)1-6/+6
into RezSingleAttachmentFromInventory from RezSingleAttachmentFromInventoryInternal() done in commit 023faa2
2013-03-29Check viewer 2/3 attachment calls against avatar appearance attachment data ↵Justin Clark-Casey (justincc)1-19/+17
rather than actually attached objects By checking against the grid's Avatar data, we can ignore viewer side attachments but still initiate these calls simulator-side. Initiating simulator-side is always necessary for version 1 viewers. This is a further commit to resolve http://opensimulator.org/mantis/view.php?id=6581
2013-03-29Fix bug where CHANGED_REGION and/or CHANGED_TELEPORT weren't firing for ↵Justin Clark-Casey (justincc)1-1/+1
scripts in attachments. This was because the script resumption in AttachmentsModule was firing the attach event instead. Had to reinstate the code in 285bd3a do we can resume the scripts there instead, though the bug existed before its removal. This is to resolve http://opensimulator.org/mantis/view.php?id=6578
2013-03-28Stop attempts to update/add existing attachments in user inventory when ↵Justin Clark-Casey (justincc)1-16/+15
teleporting between regions. This appears to resolve issues on teleport where attachments disappear or become labelled as invalid within user inventory.
2013-03-28Add "debug attachments" console command to allow highly verbose attachment ↵Justin Clark-Casey (justincc)1-61/+109
logging to be switched on and off. Default is off.
2013-03-28If the viewer has already rezzed any attachments itself, then ignore the ↵Justin Clark-Casey (justincc)1-4/+10
simulator-side rez attachments call. This is a further effort to reduce v3 viewer race conditions where this call may clash with the viewer signalling attachment wearing from its current outfit folder.
2013-03-28Move the simulator-side RezAttachments call on login to SP.MakeRootAgent ↵Justin Clark-Casey (justincc)1-1/+1
with the other attachments code, using TeleportFlags.ViaLogin check to fire if necessary. This is to simplify the code (no tricky 'wasChild' signalling required) and to reduce the risk of a thread clash between simulator-side attaching (necessary for v1 viewers) and the viewer-side attaching the v3 viewers perform.
2013-03-19Prevent multiple instances of the same item ID being appended to an ↵Justin Clark-Casey (justincc)1-2/+2
AvatarAppearance It looks like this was happening when AttachmentsModule.RezAttachments was doing a secondary set of each attachment to update with the asset ID (initially they only have the inventory ID). However, with multi-attach this was appending a second copy of the same attachment rather than updating the data that was already there. This commit requires both simulator and service to be updated.
2013-03-19Process default attachment point in AttachObjectInternal before we check ↵Justin Clark-Casey (justincc)1-27/+27
whether a worn object needs to displace an existing attachment on the same point if we are not using multi-attach.
2013-03-18Fix tests for multiattachMelanie1-3/+3
2013-03-18Limit each attachment point to 5 items as per specMelanie1-3/+13
2013-03-18Multiattach, part 1Melanie1-30/+28
Conflicts: OpenSim/Framework/AvatarAppearance.cs OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs OpenSim/Region/CoreModules/Avatar/Attachments/Tests/AttachmentsModuleTests.cs OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs OpenSim/Region/Framework/Scenes/Scene.cs OpenSim/Region/OptionalModules/Avatar/Attachments/TempAttachmentsModule.cs OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
2013-03-18Improve rejection of any attempt to reattach an object that is already attached.Justin Clark-Casey (justincc)1-12/+12
This also adds/extends regression tests for wearing attachments directly for the scene and attempting to reattach/rewear already attached objects.
2013-03-18Fix recent regression where an item worn to an attachment point that was ↵Justin Clark-Casey (justincc)1-88/+90
already occupied did not remove the previous attachment (current behaviour) Regression was commit ccd6f4 (Tue Mar 5 23:47:36 2013) Added regression test for this case.
2013-03-06minor: remove some completely unused string local vars added recently in ↵Justin Clark-Casey (justincc)1-2/+0
commit 984faf2
2013-03-05Get attachment script state before taking sp.AttachmentsSyncLock() to avoid ↵Justin Clark-Casey (justincc)1-140/+161
race conditions between closing agents and scripts that may be doing attachment manipulation. This is in an effort to resolve http://opensimulator.org/mantis/view.php?id=6557
2013-01-11Implement a workaround solution for saving manual script state changes by ↵Justin Clark-Casey (justincc)1-5/+19
the user before logout instead of wrongly removing the script early. This workaround relies on the fact that a closing client goes inactive before the attachments derez calls happen. This reverts the change to remove scripts too early instead of stopping them, since the the two step stop then remove is necessary to execute the detach event.
2013-01-11Save attachments on detach/exit if a contained script state has been changed.Justin Clark-Casey (justincc)1-1/+17
This involves making Attachments module listen for start/stop script changes. It also involves removing the script from the region on detach in the same manner as every other DeleteSceneObject() call rather than simply stopping it This is necessary tue to the bad assymetry of start and stop script triggers but it appears to be the correct behaviour anyway, as detached objects are completely gone from the sim. Not just in a state where their scripts have been stopped.
2013-01-03minor: Add some doc to the extremely unhelpful 'fudge....' comment as to why ↵Justin Clark-Casey (justincc)1-1/+4
we're deselecting the prim in code before scheduling an update on attachment
2013-01-03Fix problem where object attached from ground often does not get attached ↵Justin Clark-Casey (justincc)1-9/+1
properly. It seems this is happening because we send a kill for objects that are selected when attached. A code comment says that this is to get the client to deselect it, but v3 and v1 clients do this just fine without the kill. Aims to address http://opensimulator.org/mantis/view.php?id=6456
2012-10-31Make "show object part" command correctly display script status.Justin Clark-Casey (justincc)1-3/+3
Uses new IEntityInventory.TryGetScriptInstanceRunning() Makes it clearer that TaskInventoryItem.ScriptRunning cannot be used as it is temporary and not updated.
2012-10-02implementing osDropAttachment & osDropAttachmentAtSignpostMarv1-1/+10
2012-09-29Fire EventManager.TriggerOnAttach (and hence LSL attach event) when an ↵Justin Clark-Casey (justincc)1-11/+17
object is attached from the scene. Enables previously disabled regression test. Based on SingpostMarv's patch in http://opensimulator.org/mantis/view.php?id=6302 but I prefer a simpler approach that does not expose a resume scripts option right now.
2012-09-22Guard against inventory get failures.Diva Canto1-0/+3
2012-08-20Fix scripted detach of temp attachmentsMelanie1-6/+2
2012-08-14As per lindn spec, disable detach and drop for temp attachmentsMelanie1-0/+8
2012-08-14Lay some groundwork for temp attachments. Decouple attachments from inventory.Melanie1-14/+27
2012-07-23Change attachment handling to remove object from the scene first as perMelanie1-29/+59
justincc's original work. Sample scripts before doing so. Also refactor some crucial common code and eliminate parameters that were only ever used with the same constant value.
2012-07-20Fix the order of operations on detach. The object must always be serializedMelanie1-6/+10
while still in the scene to avoid losing important script state. DeleteSceneObject can not be called before doing this!
2012-07-17Restore update of inventory item on derez/logout. This is necessary to ↵Justin Clark-Casey (justincc)1-1/+6
update the name if this has been changed whilst attached. Note, this behaviour appears to be at variance with the ll grid as of Tues 17 July 2012, testing with viewer 3.2.1. The item name in inventory does not change either at the point of detach or after a relog.
2012-07-17Stop sending the viewer an inventory create message if a known attachment ↵Justin Clark-Casey (justincc)1-4/+1
item is updated. This doesn't seem to make any sense and probably stems from a period when this code was directly involved in attaching objects directly from the scene. This message is already being sent by InventoryAccessModule code instead.
2012-07-11Add regression TestDetachScriptedAttachmentToInventory()Justin Clark-Casey (justincc)1-5/+11
This currently only does a relatively crude check for a ScriptState node in the serialized xml
2012-07-10When an attachment is detached to inv or derezzed, stop the scripts, update ↵Justin Clark-Casey (justincc)1-6/+14
the known item with script state still in the script engine and then remove the scripts. This is to fix a regression starting from 5301648 where attachments had to start being deleted before persistence in order to avoid race conditions with hud update threads.
2012-07-09Do not allow a script to attach a prim if its being sat upon.Justin Clark-Casey (justincc)1-0/+9
This prevents a stack overflow where a get position on the avatar will refer to the attachment which will in turn refer back to the avatar. This required recording of all sitting avatars on a prim which is done separately from recording the sit target avatar. Recording HashSet is null if there are no sitting avatars in order to save memory.