Commit Graph

485 Commits (fe029cf4e8fc0940d887329a823e66e0c29bd92e)

Author SHA1 Message Date
Melanie 2d3381b795 Implement region crossing of sitting avatars. Edit mode and llSetPos work
but unscripted default sit anim is lost. Still some Gfx glitching. Physical
crossing doesn't work yet.
2012-02-14 23:16:20 +01:00
Melanie 215acbcc96 Merge branch 'master' into careminster
Conflicts:
	OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
	OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
2012-02-10 10:20:51 +00:00
Justin Clark-Casey (justincc) 9c84a8162f If NPCModule.CreateNPC() fails to create the required ScenePresence (which should in theory never happen), don't add the NPC to the npc list but return UUID.Zero instead. 2012-02-09 01:17:59 +00:00
Melanie 16aa00e944 Merge branch 'master' into careminster
Conflicts:
	OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
2012-02-01 10:08:45 +00:00
Melanie 241ddd031f Fix copy/paste errors 2012-02-01 09:45:15 +00:00
Melanie 428407c5e4 Merge branch 'master' into careminster 2012-01-28 01:01:23 +00:00
Justin Clark-Casey (justincc) 7837c611fb Add OS_NPC_SENSE_AS_AGENT option to osNpcCreate().
This allows NPCs to be sensed as agents by LSL sensors rather than as a specific NPC type (which is currently an OpenSimulator-only extension).
Wiki doc on this and other recent NPC functions will follow soon
2012-01-28 00:00:12 +00:00
Melanie 26a4e8a161 Merge branch 'master' into careminster 2012-01-27 23:30:26 +00:00
Justin Clark-Casey (justincc) 9939f94f08 Implement osNpcGetOwner(key npc):key. This returns the owner for an 'owned' NPC, the npc's own key for an 'unowned' NPC and NULL_KEY is the input key was not an npc.
llGetOwnerKey() could also be extended but this does not allow one to distinguish between an unowned NPC and some other result (e.g. 'no such object' if NULL_KEY is the return.
Also, any future extensions to LSL functions by Linden Lab are unpredictable and OpenSim-specific extensions could clash.
2012-01-27 23:05:48 +00:00
Melanie 43128c9016 Merge branch 'master' into careminster
Conflicts:
	OpenSim/Region/CoreModules/Scripting/LSLHttp/UrlModule.cs
	OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
	OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
	OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
2012-01-14 06:09:19 +00:00
Justin Clark-Casey (justincc) b5bb559cc0 Register the UrlModule for script engine events OnScriptRemoved and 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-14 00:23:11 +00:00
BlueWall 57ba9ef5ad Update RegionReadyModule
Fix triggering of alerts when rezzing first script to an empty region, add login disable when loading oars.
2012-01-13 11:35:44 -05:00
Melanie 982f3d58a9 Merge branch 'master' into careminster 2012-01-13 04:04:39 +00:00
Melanie 9dc7fef4f6 Merge branch 'master' into careminster 2012-01-13 02:27:20 +00:00
BlueWall c5594e839e Undo some prior work
Move some added fuctions out of core into the addon module to keep things clean
2012-01-12 21:19:31 -05:00
BlueWall acbff305f5 Merge branch 'master' of /home/opensim/var/repo/opensim 2012-01-12 21:06:27 -05:00
BlueWall d40ec1c346 Move some interfaces to a more apropriate place 2012-01-12 20:49:50 -05:00
Melanie cf166d3f1e Merge branch 'master' into careminster 2012-01-12 23:22:55 +00:00
Justin Clark-Casey (justincc) ba3491c76e Add permissions checks for owned avatars to all other osNpc* functions.
This is being done outside the npc module since the check is meaningless for region module callers, who can fake any id that they like.
2012-01-12 19:06:46 +00:00
Justin Clark-Casey (justincc) 0a1d61950b Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2012-01-12 19:03:26 +00:00
Diva Canto cadd645076 Renamed one var and deleted commented code. No functional changes. 2012-01-12 10:22:52 -08:00
Justin Clark-Casey (justincc) b47c0d7e51 refactor: Move existing npc owner checks to NPCModule.CheckPermissions() methods and expose on interface for external calls. 2012-01-12 18:14:19 +00:00
Melanie 7518b075b7 Add osNpcCreateOwned to create an owned NPC. Those can be sensed only by the owner, can be destroyed only by the owner and only the owner can save their appearance. Added "NPC" as a flag to llSensor to sense NPCs and exclude them from "AGENT" results. 2012-01-06 22:35:06 +00:00
Melanie f1846045a6 Add osNpcCreateOwned to create an owned NPC. Those can be sensed only by the owner, can be destroyed only by the owner and only the owner can save their appearance. Added "NPC" as a flag to llSensor to sense NPCs and exclude them from "AGENT" results. 2012-01-06 21:34:43 +01:00
Melanie fdfc4ab2a8 Merge branch 'master' into careminster
Conflicts:
	OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
2012-01-06 00:08:18 +00:00
Justin Clark-Casey (justincc) b86e7715a8 Improve "j2k decode" command to tell us how many layers and components were decoded, instead of just success/failure 2012-01-05 22:54:33 +00:00
Justin Clark-Casey (justincc) 5ea9740f1b Add a "j2k decode" region console command that allows a manual request for a JPEG2000 decode of an asset
For debugging purposes.
2012-01-05 22:40:49 +00:00
Justin Clark-Casey (justincc) c201b54b85 Improve "app rebake" command to return a better message if no uploaded texture ids were available for the rebake request 2012-01-05 19:40:54 +00:00
Melanie 1ebc9d04aa Merge branch 'master' into careminster
Conflicts:
	OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
	OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
2012-01-05 08:15:33 +00:00
Justin Clark-Casey (justincc) 0634c38505 Separate out rebake request code from cache validation code AvatarFactoryModule.
This allows some logic simplification and allows an external caller to manually request rebakes even if textures are uploaded (future command).
2012-01-04 22:22:46 +00:00
BlueWall 6941058824 Profile Updates
Update basic profile to use the replaceable interface, making configuration less error-prone. Add support to query avatar's home user account and profile service for regions usng the updated OpenProfileModule with Hypergrid.
2012-01-03 11:10:23 -05:00
Melanie a6e305063e Merge branch 'master' into careminster
Conflicts:
	OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs
	OpenSim/Region/Framework/Scenes/Scene.cs
	OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
	OpenSim/Services/Interfaces/IUserAccountService.cs
2012-01-02 21:41:36 +00:00
Diva Canto 571efeddb2 Added UserManagementModule.IsLocalGridUser(UUID) to be used throughout region Scenes and Modules. Changed existing modules to use it instead of assuming that foreign = null account. 2011-12-29 16:12:06 -08:00
Melanie efa4284391 Merge branch 'master' into careminster 2011-12-19 21:30:57 +00:00
Justin Clark-Casey (justincc) 0b91ec8dd2 Migrate detailed "appearance show" report generation up to AvatarFactoryModule from AppearanceInfoModule so that it can be used in debug (inactive).
Further filters "debug packet <level>" to exclused [Request]ObjectPropertiesFamily if level is below 25.
Adjust some method doc
Minor changes to some logging messages.
2011-12-19 18:58:05 +00:00
Justin Clark-Casey (justincc) f61e54892f On a new client circuit, send the initial reply ack to let the client know it's live before sending other data.
This means that avatar/appearance data of other avatars and scene objects for a client will be sent after the ack rather than possibly before.
This may stop some avatars appearing grey on login.
This introduces a new OpenSim.Framework.ISceneAgent to accompany the existing OpenSim.Framework.ISceneObject and ISceneEntity
This allows IClientAPI to handle this as it can't reference OpenSim.Region.Framework.Interfaces
2011-12-08 18:34:23 +00:00
Melanie 96539ffc79 Merge branch 'master' into bigmerge
Conflicts:
	OpenSim/Region/Framework/Scenes/Scene.cs
2011-12-08 18:29:19 +00:00
Melanie 31736b1aac Merge branch 'master' into bigmerge
Conflicts:
	OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
2011-11-17 19:04:27 +00:00
Justin Clark-Casey (justincc) 89632f3ea8 Add test for removing a friendship. 2011-11-14 20:56:56 +00:00
Dan Lake ed19284d85 Merge branch 'remove-scene-viewer' 2011-11-14 12:37:48 -08:00
Melanie df35720cf5 Merge branch 'master' into bigmerge
Conflicts:
	OpenSim/Region/Framework/Scenes/SceneViewer.cs
2011-11-14 20:34:49 +00:00
Justin Clark-Casey (justincc) e5ff7f389b Improved method doc for AddFriend() - it actually does set up a two-way relationship.
Rename IFriendsModule.AddFriend() to AddFriendship()
2011-11-14 20:31:16 +00:00
Melanie afca742392 Merge branch 'master' into bigmerge
Conflicts:
	OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
2011-11-14 20:03:47 +00:00
Justin Clark-Casey (justincc) 348d15707d Add test for adding a friend whilst online 2011-11-14 18:08:02 +00:00
Dan Lake 5fd1749150 Remove SceneViewer from ScenePresence to reduce quadruple queueing of
prim update to only triple queuing. Existing method was:
1. Schedule prim for update, adding to scene update list
2. Update on SOGs during heartbeat queues update onto each SceneViewer
3. Update on SPs during heartbeat queues update onto each IClientAPI
4. ProcessEntityUpdates queues updates into UDP send stack

Now the SceneViewer has been eliminated so updates are scheduled at any
time and then put onto the IClientAPI priority queues immediately during
SceneGraph.UpdateObjectGroups.
2011-11-11 17:16:52 -08:00
Melanie d1028b3647 Merge commit 'eac29396d98a4864923a69e0eb73cecdd8a225b3' into bigmerge 2011-10-25 03:17:11 +01:00
Melanie 04678836c3 Merge commit 'da794f34a56f7c88904315ae538de8f3790e6891' into bigmerge 2011-10-25 03:16:47 +01:00
Melanie 635b1bf18e Merge commit '601dabb1b73a894e4f2f61abe6e9053d380008cd' into bigmerge 2011-10-25 03:16:40 +01:00
Melanie 496c647ab5 Merge commit 'de161585c0960a93911f446f0179441ba5470245' into bigmerge 2011-10-25 02:27:26 +01:00
Melanie e2de57ca29 Merge commit '0c041ce12f393367e2754e88d9b8dad5e45f88c4' into bigmerge
Conflicts:
	OpenSim/Region/Framework/Scenes/ScenePresence.cs
2011-10-25 02:26:56 +01:00
Dan Lake eac29396d9 Moved HaveNeighbor utility function from ScenePresence to Scene. Fixed line endings from previous commit. 2011-10-19 15:38:25 -07:00
Dan Lake 8b20faf06c Merge branch 'master' of git://opensimulator.org/git/opensim 2011-10-19 14:43:16 -07:00
Dan Lake da794f34a5 Renamed and rearranged AvatarFactoryModule to eliminate redundant lookups of scene presence by client ID. 2011-10-19 14:41:44 -07:00
Justin Clark-Casey (justincc) 601dabb1b7 Extend scripts stop/start/suspend/resume console commands to allow action on a single script by giving the script item id (which can be found via scripts show).
Not an ideal way to do this on a region with many scripts.  Needs refinement later.
2011-10-19 22:30:31 +01:00
Justin Clark-Casey (justincc) de161585c0 Implement osNpcStand(<npc-id>)
Allows you to stand an NPC that has sat.
2011-10-17 01:56:25 +01:00
Justin Clark-Casey (justincc) 0c041ce12f Implement osNpcSit(). This is still in development so don't trust it
Format is osNpcSit(<npc-uuid>, <target-uuid>, OS_NPC_SIT_IMMEDIATE)
e.g. osNpcSit(npc, llGetKey(), OS_NPC_SIT_IMMEDIATE);
At the moment, sit only succeeds if the part has a sit target set.
NPC immediately sits on the target even if miles away - they do not walk up to it.
This method is in development - it may change so please don't trust it yet.
Standing will follow shortly since that's kind of important once you're sitting :)
2011-10-17 01:42:31 +01:00
Melanie e4f3ba8610 Merge commit '92c88121c72386f85472c6cf4891eca8b62b9867' into bigmerge
Conflicts:
	OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
	OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
2011-10-12 00:10:30 +01:00
Melanie a9af618842 Merge commit '460946ad62b682c7a942751f192ca9e96b662f0e' into bigmerge
Conflicts:
	OpenSim/Region/Framework/Scenes/Scene.cs
	OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
2011-10-11 23:32:16 +01:00
Melanie ef9a811ea6 Merge commit 'e77c919290e166f19e77f3ef040418dd39f2f5bd' into bigmerge
Conflicts:
	OpenSim/Region/Framework/Interfaces/IAttachmentsModule.cs
2011-10-11 23:17:47 +01:00
Melanie ae67eb0a1f Merge commit '246443773ae52420092b483603d0e1daf9b87f00' into bigmerge 2011-10-11 23:15:17 +01:00
Melanie 673886d231 Merge commit '1458fab82c4dab9901d81419e6b515f47ea7320f' into bigmerge 2011-10-11 21:30:42 +01:00
Dan Lake 92c88121c7 Removed all refs to IClientAPI from IAttachmentsModule. Separated client handlers for attachments to call public interface and rearranged module file into sections 2011-10-04 14:40:39 -07:00
Dan Lake 460946ad62 Removed redundant code in AttachmentsModule and simplified interfaces which converted back and forth between ScenePresence and IClientAPI. More to be done still. 2011-10-03 16:44:32 -07:00
Dan Lake e77c919290 Remove usage of Linden packet types from inside Attachments Module and interface 2011-10-03 11:55:54 -07:00
Justin Clark-Casey (justincc) 246443773a minor: remove clutter null check from pass in config to AvatarFactoryModule.Initialize()
This is never null
2011-10-01 00:15:30 +01:00
Kevin Houlihan 1458fab82c Reattaching a region was failing if the estate name had not changed (issue 5035).
Using the RemoteAdmin API to close then recreate a region would fail if the estate name had not changed. If the estate name /was/ changed then the existing estate would be renamed rather than a new one being created. The problem really arose from a lack of distinction in the data storage layer between creating new estates and loading existing ones.
2011-09-16 18:50:25 +01:00
Tom 5484c9b585 Bring us up to date. 2011-09-14 19:11:32 -07:00
Tom cda4cd6b55 Merge fixes, and fix the build 2011-09-14 18:46:42 -07:00
Justin Clark-Casey (justincc) 2d62484f11 Remove UpdateKnownItem() from IAttachmentsModule.
It's not appropriate for code outside the attachments module to call this.
2011-09-13 22:27:33 +01:00
Justin Clark-Casey (justincc) 294120c9d3 comment out some recent terrain texture logging 2011-09-12 22:26:04 +01:00
Justin Clark-Casey (justincc) ea0f78c971 Start locking entire add/remove operations on an 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.
2011-09-12 21:57:22 +01:00
Oren Hurvitz 7f318277f1 When creating an OAR, optionally exclude objects according to their permissions 2011-09-12 20:09:24 +01:00
Oren Hurvitz 1dd904b78e Delay loading scripts until the scene has finished loading 2011-09-09 23:01:05 +01:00
Justin Clark-Casey (justincc) 405a5b097b Comment out unused ISceneViewer.Reset() to reduce code complexity 2011-09-06 22:39:01 +01:00
Justin Clark-Casey (justincc) 4bf3adffb8 In SceneViewer, introduce an IsEnabled flag and perform Close() under an m_pendingObjects lock in order to avoid the race condition seen by danbanner in http://opensimulator.org/mantis/view.php?id=5669 2011-09-06 22:26:28 +01:00
Justin Clark-Casey (justincc) c6ec573d10 Get rid of the confusing version of IAttachmentsModule.RezSingleAttachmentFromInventory() with the updateInventoryStatus switch, since this is never called with false 2011-09-06 00:36:38 +01:00
Tom 66dec3b874 Resolve merge commits, stage 1 2011-09-04 07:06:36 -07:00
Justin Clark-Casey (justincc) 5c1fa968ab Stop NPCs losing attachments when the source avatar takes them off.
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
2011-09-03 01:11:16 +01:00
Justin Clark-Casey (justincc) 7d58b5fa15 move common code into AttachmentsModule.DeleteAttachmentsFromScene() 2011-08-31 17:53:58 +01:00
Justin Clark-Casey (justincc) 32444d98cb Make SP.Attachments available as sp.GetAttachments() instead.
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.
2011-08-31 16:29:51 +01:00
Justin Clark-Casey (justincc) ddc733cd3d refactor: move SP.SaveChangedAttachments() fully into AttachmentsModule 2011-08-30 23:32:30 +01:00
Justin Clark-Casey (justincc) 04bafd2122 refactor: Move ScenePresence.RezAttachments() into AttachmentsModule
This adds an incomplete IScenePresence to match ISceneEntity
2011-08-30 23:06:10 +01:00
Justin Clark-Casey (justincc) 1de68b34d9 refactor: migrate DropObject handling fully into AttachmentsModule from Scene 2011-08-30 22:25:38 +01:00
Justin Clark-Casey (justincc) be357f8fee Fix bug in persisting saved appearances for npcs
Assets have to be marked non-local as well as non-temporary to persist.  This is now done.
Hopefully addresses http://opensimulator.org/mantis/view.php?id=5660
2011-08-30 01:58:32 +01:00
Justin Clark-Casey (justincc) ae614c1264 refactor: simplify DetachSingleAttachmentToGround() by retrieving the scene object group direct 2011-08-26 22:37:53 +01:00
Justin Clark-Casey (justincc) 97b207240e rename AttachmentsModule.ShowDetachInUserInventory() to DetachSingleAttachmentToInv() for consistency and to reflect it's actual behaviour 2011-08-23 22:05:22 +01:00
Justin Clark-Casey (justincc) d328046efb If an attachment fails, then start logging the exception for now, in order 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.
2011-08-22 23:59:48 +01:00
Justin Clark-Casey (justincc) 7cf4bb5256 Add ISimulatorFeaturesModule so that other modules can register features in addition to the hardcoded ones. 2011-08-22 22:13:07 +01:00
BlueWall 5e231acdce Add avatar and attachments to llRegionSay
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-20 12:36:35 -04:00
BlueWall 2787207aa2 Add llRegionSayTo
llRegionSayTo(key target, integer channel, string messasge)

	Allows messages to be sent region-wide
	to a particular prim.
2011-08-19 18:47:21 -04:00
Justin Clark-Casey (justincc) c9e6b7bd10 Stop NPC's getting hypergrid like names in some circumstances.
This meant punching in another AddUser() method in IUserManagement to do a direct name to UUID associated without the account check (since NPCs don't have accounts).
May address http://opensimulator.org/mantis/view.php?id=5645
2011-08-19 00:45:22 +01:00
Justin Clark-Casey (justincc) acfdca34fd Fix issue where loading a new appearance onto an NPC would not remove the previous attachments from the scene.
Addresses http://opensimulator.org/mantis/view.php?id=5636
2011-08-17 01:35:33 +01:00
Justin Clark-Casey (justincc) 50945dd560 add regression test for osNpcCreate when cloning an in-region avatar 2011-08-11 21:43:26 +01:00
Justin Clark-Casey (justincc) 7f499ff3f3 Add a OS_NPC_LAND_AT_TARGET option to osMoveToTarget()
Default for this function is now not to automatically land.
This allows better control by scripts when an avatar is going to be landing on a prim rather than the ground.
Stopping the avatar involves faking a collision, to avoid the pid controller making it overshoot.
A better approach would be to gradually slow the avatar as we near the target
2011-08-10 23:56:19 +01:00
Justin Clark-Casey (justincc) 5d6c9644fa early code to allow scripts to force npcs not to fly when moving to target
this is to allow walking on prims.  it will be up to the script writer to be sure that there is a continuous path.
currently implemented in osNpcMoveToTarget(), but none of this is final.
2011-08-10 01:47:37 +01:00
Justin Clark-Casey (justincc) 195c1dc9b8 implement osNpcStopMoveTo() to cancel any current move target 2011-08-10 00:26:38 +01:00
Justin Clark-Casey (justincc) e869eeb0bf Implement first draft functions for saving and loading NPC appearance from 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.
2011-08-09 03:51:34 +01:00
Justin Clark-Casey (justincc) 61d49d4f63 rename NPC.Autopilot to NPC.MoveToTarget internally. Add method doc to INPCModule 2011-08-03 23:20:36 +01:00
root c920ff9d1d Merge branch 'master' into careminster-presence-refactor 2011-07-09 01:06:46 +01:00
Justin Clark-Casey (justincc) 5700c582ba refactor: rename bool returning GetAgentInventoryItem() to CanGetAgentInventoryItem() to improve code readability 2011-07-08 22:28:17 +01:00