aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove UpdateKnownItem() from IAttachmentsModule.Justin Clark-Casey (justincc)2011-09-131-1/+1
| | | | It's not appropriate for code outside the attachments module to call this.
* minor: remove redundant grp != null check from AM.UpdateKnownItem()Justin Clark-Casey (justincc)2011-09-131-36/+33
|
* Stop attempts to rewear already worn items from removing and reattaching.Justin Clark-Casey (justincc)2011-09-131-42/+77
| | | | | | | | Viewer 2/3 will sometimes attempt to rewear attachments, even though they have already been attached during the main login process. This change ignores those attempts. This stops script failures during login, as the rewearing was racing with the script startup code. It might also help with attachments being abnormally put into deleted state. Hopefully resolves some more of http://opensimulator.org/mantis/view.php?id=5644
* Comment out attachments code in Scene.IncomingCreateObject(UUID userID, UUID ↵Justin Clark-Casey (justincc)2011-09-131-3/+14
| | | | | | | | | itemID) for now As far as I can see, this is only invoked by a PUT request to ObjectHandlers, which is not being used anyway. Invoking attachments code at this point is probably inappropriate since it would still be invoked when the client entered the scene. Being commented to simplify analysis of attachments issues. Can be uncommented when in use. Also, small tweak to lock and log removal of a SOG from the SceneObjectGroupsByLocalPartID collection in SceneGraph.GetGroupByPrim() if an inconsistency is found.
* Start locking entire add/remove operations on an ↵Justin Clark-Casey (justincc)2011-09-121-175/+207
| | | | | | | | | IScenePresence.AttachmentsSyncLock object Attach and detach packets are processed asynchronously when received from a viewer. Bugs like http://opensimulator.org/mantis/view.php?id=5644 indicate that in some situations (such as attaching/detaching entire folders of objects at once), there are race conditions between these threads. Since multiple data structures need to be updated on attach/detach, it's not enough to lock the individual collections. Therefore, this commit introduces a new IScenePresence.AttachmentsSyncLock which add/remove operations lock on.
* refactor: Make logic in AM.AttachObject() clearer by not reusing existing ↵Justin Clark-Casey (justincc)2011-09-061-14/+19
| | | | variables in different contexts
* rename AM.AddSceneObjectAsAttachment() to AddSceneObjectAsNewAttachmentInInvJustin Clark-Casey (justincc)2011-09-061-3/+3
|
* Get rid of the confusing version of ↵Justin Clark-Casey (justincc)2011-09-061-11/+2
| | | | IAttachmentsModule.RezSingleAttachmentFromInventory() with the updateInventoryStatus switch, since this is never called with false
* get rid of the unused AttachmentsModule.ShowAttachInUserInventory()Justin Clark-Casey (justincc)2011-09-061-28/+0
|
* Stop the pointless double setting of every attachment in AvatarAppearance.Justin Clark-Casey (justincc)2011-09-061-6/+2
| | | | The second was already being filtered out so this has no user level effect
* Stop NPCs losing attachments when the source avatar takes them off.Justin Clark-Casey (justincc)2011-09-031-28/+48
| | | | | | | This was happening because we were using the source avatar's item IDs in the clone appearance. Switch to using the asset IDs of attachments instead for NPCs. The InventoryAccessModule and AttachmentModule had to be changed to allow rezzing of an object without an associated inventory item. Hopefully goes some way towards resolving http://opensimulator.org/mantis/view.php?id=5653
* Eliminate pointless checks of SOG.RootPart != nullJustin Clark-Casey (justincc)2011-09-011-6/+0
| | | | 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
* move common code into AttachmentsModule.DeleteAttachmentsFromScene()Justin Clark-Casey (justincc)2011-08-311-0/+10
|
* Make SP.Attachments available as sp.GetAttachments() instead.Justin Clark-Casey (justincc)2011-08-311-12/+7
| | | | | | | The approach here, as in other parts of OpenSim, is to return a copy of the list rather than the attachments list itself This prevents callers from forgetting to lock the list when they read it, as was happening in various parts of the codebase. It also improves liveness. This might improve attachment anomolies when performing region crossings.
* remove pointless ToArray() call in AttachmentsModule.SaveChangedAttachments()Justin Clark-Casey (justincc)2011-08-301-1/+1
|
* minor: remove already processed avatar null check in Scene.RemoveClient()Justin Clark-Casey (justincc)2011-08-301-1/+0
| | | | remove some now duplicated method doc
* refactor: move SP.SaveChangedAttachments() fully into AttachmentsModuleJustin Clark-Casey (justincc)2011-08-301-0/+18
|
* refactor: Move ScenePresence.RezAttachments() into AttachmentsModuleJustin Clark-Casey (justincc)2011-08-301-0/+38
| | | | This adds an incomplete IScenePresence to match ISceneEntity
* refactor: migrate DropObject handling fully into AttachmentsModule from SceneJustin Clark-Casey (justincc)2011-08-301-11/+10
|
* Fix bug where attachments were remaining on the avatar after being dropped.Justin Clark-Casey (justincc)2011-08-301-2/+10
| | | | If the inventory service is configured not to allow deletion then these will not disappear from inventory
* Eliminate duplicate AttachmentPoint properties by always using the one ↵Justin Clark-Casey (justincc)2011-08-271-21/+21
| | | | stored in the root part's state field.
* refactor: camel case AttachmentPoint method arg as per code standardsJustin Clark-Casey (justincc)2011-08-271-4/+4
|
* refactor: move SOP.IsAttachment and AttachmentPoint up into SOG to avoid ↵Justin Clark-Casey (justincc)2011-08-271-7/+6
| | | | pointless duplication of identical values
* refactor: simplify SOP.AttachedAvatar into SOG.AttachedAvatarJustin Clark-Casey (justincc)2011-08-261-10/+5
| | | | 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
* refactor: move SOG.DetachToGround() to ↵Justin Clark-Casey (justincc)2011-08-261-1/+29
| | | | AttachmentsModule.DetachSceneObjectToGround() and remove redundant code
* refactor: simplify DetachSingleAttachmentToGround() by retrieving the scene ↵Justin Clark-Casey (justincc)2011-08-261-9/+10
| | | | object group direct
* refactor: move sog.DetachToInventoryPrep() into ↵Justin Clark-Casey (justincc)2011-08-261-7/+18
| | | | AttachmentsModule.DetachSingleAttachmentToInv()
* Downgrade warning about not saving unchanged attachment to debug instead, ↵Justin Clark-Casey (justincc)2011-08-261-1/+4
| | | | and change text to better indicate what it's saying
* Fix a very recent regression from llAttachToAvatar() fix where I ↵Justin Clark-Casey (justincc)2011-08-261-5/+1
| | | | accidentally stopped normal script state persistence on login/logout and attach/detach
* Remove forcing of phantom on ground attached objects - attachments can be ↵Justin Clark-Casey (justincc)2011-08-241-2/+0
| | | | | | both non-phantom and flagged as physical. As per Melanie
* Make objects attached from the ground phantomJustin Clark-Casey (justincc)2011-08-241-0/+2
|
* return InventoryItemBase from AddSceneObjectAsAttachment()Justin Clark-Casey (justincc)2011-08-241-8/+4
|
* refactor: move Scene.Inventory.attachObjectAssetStore() into ↵Justin Clark-Casey (justincc)2011-08-241-2/+100
| | | | AttachmentsModule.AddSceneObjectAsAttachment()
* refactor: remove pointless AgentId argument from attachObjectAssetStore()Justin Clark-Casey (justincc)2011-08-241-1/+1
|
* add TestAddAttachmentFromGround() regression testJustin Clark-Casey (justincc)2011-08-241-1/+1
|
* Fix llAttachToAvatar()Justin Clark-Casey (justincc)2011-08-241-10/+25
| | | | | | 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.
* rename AttachmentsModule.ShowDetachInUserInventory() to ↵Justin Clark-Casey (justincc)2011-08-231-6/+5
| | | | DetachSingleAttachmentToInv() for consistency and to reflect it's actual behaviour
* If an object failed to attach due to an exception, then try and detach it ↵Justin Clark-Casey (justincc)2011-08-231-1/+2
| | | | | | | from the avatar's list of attachments as well as delete it from the scene. This may help with the "Inconsistent attachment state" errors seen on teleport. See http://opensimulator.org/mantis/view.php?id=5644 and linked reports
* If an attachment fails, then start logging the exception for now, in order ↵Justin Clark-Casey (justincc)2011-08-221-55/+80
| | | | | | to help with the inconsistent state bug. This also refactors AttachmentsModules to stop pointlessly refetching the ScenePresence in various methods. However, more of this is required.
* Don't try to save changed attachment states when an NPC with attachments is ↵Justin Clark-Casey (justincc)2011-08-181-2/+2
| | | | | | | removed from the scene. This is done by introducing a PresenceType enum into ScenePresence which currently has two values, User and Npc. This seems better than a SaveAttachments flag in terms of code comprehension, though I'm still slightly uneasy about introducing these semantics to core objects
* comment out noisy attachments loggingJustin Clark-Casey (justincc)2011-08-171-5/+5
|
* Fix issue where loading a new appearance onto an NPC would not remove the ↵Justin Clark-Casey (justincc)2011-08-171-2/+2
| | | | | | previous attachments from the scene. Addresses http://opensimulator.org/mantis/view.php?id=5636
* Add new regression TestRezAttachmentsOnAvatarEntrance() to do simple ↵Justin Clark-Casey (justincc)2011-08-171-1/+1
| | | | attachments check
* implement osNpcStopMoveTo() to cancel any current move targetJustin Clark-Casey (justincc)2011-08-101-2/+2
|
* If object is an attachment, make llGetVel() return the avatar's speed rather ↵Justin Clark-Casey (justincc)2011-07-151-1/+0
| | | | | | than the object's own zero speed. As per http://opensimulator.org/mantis/view.php?id=5575
* Fatpack message on agent transfers: 1 message only (UpdateAgent) containing ↵Diva Canto2011-04-281-7/+6
| | | | the agent and all attachments. Preserves backwards compatibility -- older sims get passed attachments one by one. Meaning that I finally introduced versioning in the simulation service.
* Removed a few more spurious appearance saves. When an avatarMic Bowman2011-01-251-12/+10
| | | | | | | enters a region the attachments module tries to update the appearance with attachments that are already part of the appearance. Just added a check to only save if the attachments weren't there before.
* reinstate IAttachmentsModule.UpdateAttachmentPosition() since this is being ↵Justin Clark-Casey (justincc)2010-12-141-0/+16
| | | | | | used by a 3rd party region module and contains non-obvious attachment specific code There are no functional changes. UpdateAttachmentPosition() is adapted to the new approach of only saving attachment state on logout
* Only perform the take object permissions check if an object is being ↵Justin Clark-Casey (justincc)2010-11-231-55/+50
| | | | attached directly from the scene, not from existing inventory
* Change the way attachments are persisted. Editing a worn attachment will nowMelanie2010-11-161-22/+12
| | | | | | | save properly, as will the results of a resizer script working. Attachment positions are no longer saved on each move, but instead are saved once on logout. Attachment script states are saved as part of the attachment now when detaching.