Commit Graph

560 Commits (be2ad79e52efb5eb543057e8e73fa601d0b91c87)

Author SHA1 Message Date
MW 611327e104 more work on texture downloading.
Refractored the TextureDownloadModule (but currently to make debugging easier, it is running as a non shared module, so this results in a instance of this module being created for each region (and a extra thread per region), this will be changed back soon.
Removed the old texture handling/sending code from AssetCache.
A few other small changes/fixes.
2007-12-10 13:27:23 +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
Jeff Ames e278d07220 refactored ChatModule a bit.
misc cleanup and code convention fixes.
2007-12-10 02:29:42 +00:00
Teravus Ovares e595f82489 * Hooked up the GridComm event ChildDataUpdate to the scene.
* Added List<RegionInfo> m_neighbours to Scene 
* Hooked up the OnRegionUp event to m_neighbours list 
* Modified RegionInfo to have a bool commFailTF value so that we can skip neighbors that fail.  (when the region comes up, this gets reset to false and the region will try again.
* Added SetChildAgentThrottle(byte[]) to IClientAPI 
* Several other insignificant changes related to passing child pertanant agent data from sim to sim.
2007-12-10 00:46:56 +00:00
Brian McBee 383eccc543 hackish code to allow emptying of trash. This really should be done on the inventory server, and not from the region.
Also: it appeared to work the first try, so I have probably done something horribly wrong.
2007-12-08 20:41:37 +00:00
Brian McBee beca2373e1 Allow moving, deleting, and restoring objects in inventory.
Note: only tested in grid mode, and emptying trash is still not implemented.
2007-12-08 19:13:10 +00:00
Teravus Ovares e0e9237a89 * Added back the regionup code so people in nearby sims can see a downed sim coming back up. 2007-12-08 17:25:34 +00:00
MW 87b337ebf9 Enabled the TextureDownloadModule, so that hopefully I might get some feedback, as to if it makes the texture problem better or worse. As I plan/hope to work on texture/asset downloading this weekend. 2007-12-07 22:47:11 +00:00
MW e23290eff6 Avatar Appearance refactoring /changes. Added a AvatarAppearance class, each ScenePresence "has" a AvatarAppearance object. All the ScenePresences in a opensim related to one user (so a user's various ScenePresence's in all the regions in that instance) share the same AvatarAppearance object. This means that a user's avatar should appear correctly (to both that user and other users) no matter what border crossing or teleporting they have done.
Note: this mainly improves Standalone mode, as in grid mode the appearance data isn't passed between region servers. Although people should notice a improvement when moving between regions in the same instance.
2007-12-07 17:23:11 +00:00
Adam Johnson 3d938f76b7 Updates to LibSL revision 1498. Thanks Johan! 2007-12-07 08:54:31 +00:00
Teravus Ovares 57f666497b * Added hacked support for 'anyone can move' and 'anyone can copy'.
* BACKUP YOUR PRIM BEFORE UPDATING TO THIS and then double check the prim permissions after applying it with a different avatar (then the master avatar or the prim owner avatar).
* Also, beware that any objects created under the old permission scheme may react oddly.  They may automatically allow anyone to modify them, (which you'll then have to un-set).  
* It's hacked support because when 'anyone can move is set', any avatar can modify the prim (texture, shape, scale, etc)
2007-12-07 07:42:03 +00:00
Jeff Ames a45118d35e added one more command to the console help. 2007-12-07 02:00:35 +00:00
Sean Dague 1ad83bcf1b reversing the r2599 patch, as this started causing CreateThread errors for
me on Mono 1.2.4, which led to client crashes.  I think the Timer.Stop() 
wasn't doing what was desired on Mono.  The Queue refactoring should address
the readability issues lbsa71 was working on as soon as I get the merge together.
2007-12-06 20:13:02 +00:00
Jeff Ames 73599c0f25 removed obsolete Verbose() function 2007-12-06 18:17:44 +00:00
Jeff Ames a47176ee92 more minor cleanup. added some command descriptions to region server help. 2007-12-06 17:41:21 +00:00
lbsa71 395637acdd * now the throttle timer is stopped whilst processing Queue so that it won't fire twice
* started to refactored throttling method
* some code convention refactorings
2007-12-06 14:08:22 +00:00
Adam Frisby 9e5f7fb415 * Removed lots of scurrilous uses of ASCII/UTF8.GetBytes for making packet strings. BAD PROGRAMMER BAD. Use Helpers.StringToField instead. >_> 2007-12-06 06:36:49 +00:00
Jeff Ames 1c593d9e19 minor cleanup of Scene.cs (parameter naming, function documentation stubs, duplicated UUID, you know...) 2007-12-06 04:01:56 +00:00
Sean Dague c5c0df74e6 Do not create a new asset on item metadata change
From Justin Casey (IBM)
2007-12-05 18:58:55 +00:00
Sean Dague 9c81b8a430 From Gary Chernega (IBM)
This patch adds x, y, and z offsets to the load-xml command.
If you had a prim at 100,100,20 thats where it would get loaded everytime. 
This patch lets you place it at an offset from 100,100,20.. as such:

        load-xml <filespec> -newUI 3 1 2

Loading the prim at 103, 101, 22
2007-12-05 18:45:05 +00:00
MW be93de1257 made one or two more methods in Scene virtual to allow overriding in sub classes. 2007-12-05 13:23:12 +00:00
Teravus Ovares bb824eadee * Refactored Permissions into ScenePresence as requested by MW
* Un-hackerized generating the client_flags 
* Now handling the ObjectPermissions Update packet 
* Warning: Backup your prim before updating.  If you fail to do so and something goes wrong then, All Yr prim are belong to us!
2007-12-05 06:44:32 +00:00
Jeff Ames a24b6fe924 fixed a few compiler warnings under mono (committed from a train, with adjohn and afrisby, enroute to a wine cave with the worst wine in the world) 2007-12-05 04:16:20 +00:00
Teravus Ovares 77dd997ef1 *disabled some confusing code regarding permissions 2007-12-04 23:58:44 +00:00
Jeff Ames f195725db4 keeping opensim safe for children -- made some namespace references less explicit 2007-12-04 22:14:53 +00:00
lbsa71 c1fdba8a6f * Some more ApplyPhysics voodoo 2007-12-04 16:41:20 +00:00
lbsa71 bf8239c7fa * ApplyPhysics now creates the PhysActor as well. 2007-12-04 13:46:18 +00:00
lbsa71 e01c128c8f * Added ApplyPhysics helper on group. 2007-12-04 11:11:13 +00:00
Adam Frisby 91c1e8a734 * Fixed a whole bunch of console messages. 2007-12-04 10:13:13 +00:00
Adam Frisby be7ae3dd3e * Removed 12 compiler warnings. 2007-12-04 08:18:09 +00:00
Sean Dague 8f58a9a107 From Justin Casey (IBM)
While exploring what it would take to get the 'new script' button working,
I encountered the fact, some way down in the rabbit hole, that if a user
renamed an item in their inventory and logged out (without a restart of
the simulator), on log in the new name was not preserved.

As far as I can see, this was because any updates which didn't occur
inside a transaction were ignored by opensim.  This patch pays attention
to those changes.  It generates a new asset when an item is updated and
changes the user's inventory properties appropriately.  I believe this
behaviour is in line with the copy-on-write semantics used in the Second
Life protocol - perhaps it could be optimized if we knew for sure that the
only copy of the object was in the user's inventory.

This also means that if you rename an item (e.g. a script) before you drag
it into an object's inventory, the inventory will receive the item's most
recent name and description.
2007-12-03 20:06:01 +00:00
Sean Dague c29105aa3e This is a simple patch which just renames an IClientAPI method to
SendInventoryItemCreateUpdate() in order to reflect the actual packet it
sends (UpdateCreateInventoryItem).

From Justin Casey (IBM)
2007-12-03 17:24:27 +00:00
MW 690e517240 Added a flag to load-xml console command, that will generate new uuids for the loaded Sceneobjects (as per mantis request #53).
To use append "-newUID" to the end of the command, so new format is : "load-xml <filename> -newUID". 
If you don't add the "-newUID", then the uuids in the xml file will be kept.
2007-12-03 14:57:39 +00:00
Jeff Ames 4c0ddacc16 minor meaningless changes 2007-12-03 07:26:27 +00:00
MW ac77c32453 Attempt to fix mantis issue #82, taking prims into inventory and then rezzing them in another region. 2007-12-02 20:43:21 +00:00
MW 5ae8759de1 Added some error handling (and console output) to BaseHttpServer.
a few other bits of refactoring.
2007-12-02 18:49:42 +00:00
MW cac98171e5 Very partial Avatar Appearance (ie, clothes/body parts) "storage". In standalone mode it will mean that when you log off and log back on ,as long as the region server hasn't been restarted , your avatar will start with wearing the clothes that it wore on log off. In grid mode its even more limited in that wearing/removing clothes/body parts are only stored in the region server instance you are one. so if you are in a different region to your login region (which are on different region server instances), and then change clothes, those changes won't be remembered. So as said, its very limited but is a small step towards having proper appearance persist.
Just need to store this data out to a database.
2007-12-02 14:56:23 +00:00
MW 0a2425432a Rezzing multiple copies of a inventory prim should now work. 2007-12-01 21:52:10 +00:00
Jeff Ames 2852cd9d73 attempt to fix sitting-related bugs #3 and #67 2007-12-01 21:45:43 +00:00
MW 96ac8f00c7 Due to popular demand, a rezzed prim should no longer delete the original inventory item. (hasn't been tested to make sure no conflicts happen if that new rezzed object is then taken back into inventory but don't think there will be any) 2007-12-01 21:16:42 +00:00
MW 495cf040be Attempted fix for mantis issue# 66 2007-12-01 15:20:49 +00:00
MW 7bc28e0571 the fix, so that trunk works again 2007-12-01 14:25:46 +00:00
MW 27f182ac54 Part 1 of a commit. This revision will not compile, part 2 will be added in a couple of minutes that should fix that.
Some work towards persisting Avatar Appearance (what is being worn).
Added OnAvatarNowWearing event to IClientAPI that is triggered by AgentIsNowWearing packets.
stub code to subscribe to this event in AvatarFactoryModule. 
Todo: code needs to be added to AvatarFactoryModule to save the uuids to a database and then read them back when that modules TryGetIntialAvatarAppearance() method is called.
Done some changes to Scene to make it easier to subclass it: including changed some private fields to protected and made some methods virtual.
2007-12-01 14:20:37 +00:00
Teravus Ovares 95c68a316a *Refactored the initial raytracer so it doesn't use the Parent reference.
*Fixed a 'statement out of order' error in the setting of the permissions that are sent to the client.
2007-11-30 16:29:23 +00:00
MW c1d66a8564 small change to OnSceneGroupMove event (in SceneEvents.cs) 2007-11-30 12:10:12 +00:00
lbsa71 6e22faf73e * Refactored away permissions and physics flag duplications 2007-11-30 09:42:36 +00:00
lbsa71 d2b1b54f49 * Removed permissions flag appliance from Xml deserialization
* Various code convention compliance
2007-11-30 08:08:14 +00:00
Teravus Ovares 31cec30aa0 * Extended our semi-stupid implementation of in world object permissions to show a user's client that it can't edit a prim if it doesn't have permission.
* Permissions is due for a big revamp. The current way it's done is a hack at best.
2007-11-30 04:54:15 +00:00
Teravus Ovares 5eb091ceee * Temporary fix for 'User already online' issue in standalone mode.
* Revert this once we get a working logoff.
2007-11-30 01:20:31 +00:00
lbsa71 7704bb6f63 * Fixed neighbour range bug
* Various refactorings
2007-11-29 15:27:57 +00:00
Teravus Ovares 4bd38fc65a * Thanks to _SomeOne_, Server side permissions on object editing. Be aware, that if you're editing an object on your client that you're not allowed to, it'll appear that it's moving to you, but won't actually be moving on the sim. 2007-11-29 15:24:31 +00:00
Teravus Ovares 4738fead21 * Added a 50 second restart notify timer that gets reset when new regions come up to give servers that host a lot of sims a long time to start listening. 2007-11-29 07:25:58 +00:00
lbsa71 a32bb91675 * minor refactorings 2007-11-29 06:07:48 +00:00
lbsa71 d05b121dff * Locking on local scope variable does not make sense - every thread will have its own
* Locking on value, then changing it does not make sense - lock will happen on old reference
* Taking a local copy of the shared resource then locking on the copy does not make sense - lock will happen on copy
2007-11-29 06:06:42 +00:00
Brian McBee b0c5693c02 Changed to doing only 1 request to the grid server from main map. Hopefully we are not requesting too much in one gulp. 2007-11-29 02:30:11 +00:00
Teravus Ovares 81ba94fde8 * Fixed about 7 issues with restarting sims and resolved interRegion comms issues. This includes the issue that MW described this morning.
There's a lot of little nit picky changes that make a world of difference.
2007-11-29 02:07:19 +00:00
MW ac77c50ba9 Moved the m_sceneGridService.RegisterRegion(RegionInfo); call out of LoadWorldMap and into its own public method (which is called during region creation). We shouldn't have things like that in methods like LoadWorldMap as some regions might not being having a worldmap loaded via the LoadWorldMap method (like in custom applications).
Deleted the CreateTerrainTextureInitial Method which was a 99% duplicate of CreateTerrainTexture, with just a bool field setting difference. That bool is now passed to CreateTerrainTexture as a param.
2007-11-28 12:36:09 +00:00
Teravus Ovares c021bfe191 * Disambiguation in the 'sim is restarting message' that tells you 'which' sim is restarting in the area. 2007-11-28 06:31:27 +00:00
Teravus Ovares b7d596a6af * Restaring the sim works fine in grid mode now. Sims announce themselves to their neighbors when they start up. Neighbors get this message and tell their agents that there's a new sim up.
* Certain unrecoverable physics based crashes in ODE are now hooked up to the 'restart the sim' routine.
2007-11-28 06:18:07 +00:00
MW b916d5b112 Fixed bug, where the clients in a region weren't told to kill a user's avatar when that user teleported to a different region. 2007-11-27 15:44:39 +00:00
Teravus Ovares 082f2baebe Fixed an event in the events chain in inter-region communications.
As a consequence, restarting sims in the same process instance now shows them when they come back up in grid mode and standalone mode.
2007-11-27 13:46:52 +00:00
Brian McBee 959084f885 MainMap workaround. Map still does not fill in automatically, but one click on map should return a decent portion of it. 2007-11-26 16:40:08 +00:00
Adam Frisby 011ad46960 * Disabled primitive count updates on Parcels for the moment, until we can move parcels into a module. 2007-11-26 15:06:51 +00:00
Teravus Ovares 175b6115f1 * Restarting regions with the estate tools works in sandbox mode. I'm still working on grid mode, however. It doesn't break anything, but that feature doesn't work in grid mode yet either. 2007-11-26 05:02:18 +00:00
Brian McBee c710525b48 Added Region name to the terrain texture description that gets sent to the asset server 2007-11-25 22:27:42 +00:00
Brian McBee 7720be5a39 Rez new prims ON the ground, not halfway buried. Mantis 33. 2007-11-25 17:53:16 +00:00
Teravus Ovares d263a044b1 * Added the ability to restart your individual sims from within them using the estate tools.
* The sims properly restart, however they don't yet notify the existing avatars that they are up.  To see the sim again, you'll need to log-out and back in until I can figure out how to get the proper data to the sims and to the avatar so they reconnect again.
2007-11-25 04:52:14 +00:00
Brian McBee 21ce2b0979 Ignore nullreferenceexception in removeclient. The avatar is already gone. 2007-11-25 04:33:18 +00:00
Adam Frisby 0951f895ef * Removed references to "new LLUUID()", replaced with LLUUID.Zero. 2007-11-24 10:36:54 +00:00
Teravus Ovares 18e1e62f26 * Changed reference to NullReferenceException to System.NullReferenceException for Linux 2007-11-24 04:12:55 +00:00
Brian McBee 892f942523 Test storing terrain texture to grid assetserver on startup. Needed for main map functionality. 2007-11-24 03:55:35 +00:00
Teravus Ovares 944b118c62 * Added a way for the Region master user to kick individual users from their sim with a custom message. Their client says, "You've been logged off of secondlife, <Your custom message here> and logs them off.
* Added a way for the Region master user to kick *ALL* users from *ALL* their regions in the estate with a custom message.
2007-11-24 03:28:42 +00:00
Teravus Ovares 52714c339e * Hanling RequestGodlikePowers. On Request.. sends the sim owner's client the appropriate messages to make it think it's got god status. Will be used for finding more unimplemented packets.... 2007-11-24 01:38:36 +00:00
Teravus Ovares d7ec786244 * Added a nice 'The Region is going down.' message to the user when the sim owner issues 'shutdown' on the console. 2007-11-24 00:19:48 +00:00
mingchen 51d4d88985 *Fixed bug causing parcel prim counts to stop updating. 2007-11-23 20:17:49 +00:00
mingchen e7edd02019 *Fixed bug that resulted in most land settings being sent to the client. Media settings/parcel name are now correctly sent. 2007-11-23 19:07:41 +00:00
Teravus Ovares 1ecd803e87 * added some functions for use in raytracing. They're kind of crappy now, so they only display 'guesses' on the console when you rez a prim.
* any math gurus who'd like to improve rezzing need only to make the raytracer in SceneObjectPart work :D
2007-11-23 05:56:35 +00:00
Teravus Ovares e69c810486 * Added code to capture the draw distance setting from the client.
* Added a support function to InnerScene to calculate the distance between two vectors.
2007-11-22 01:32:13 +00:00
MW e5a0049c16 Fixed bug that can lead to infinitive loops 2007-11-21 12:00:28 +00:00
Teravus Ovares 7cb38712d5 * Did some initial work for prim crossing. Just glue so far.
* Added the child_get_tasks OpenSim.ini flag for testing the UDP packet sending code and packet throttler.   This flag gets purposely disabled in grid mode.  This flag also has the consequence that you can see the prim in neighboring regions without going into them.  Be warned, this causes tons of dropped packets.
2007-11-21 02:17:24 +00:00
Sean Dague 7b09800d5b fix for mantis #2 from Justin Casey (IBM) 2007-11-20 21:25:27 +00:00
Teravus Ovares 5a71d03b7a *Huge* structural changes in ODE/OdePrim to get all of the calls in threadlocked code. ODEPrim was almost completely re-written.
Copy/Space test needed.
2007-11-20 04:38:08 +00:00
Teravus Ovares 615b40b68b * Refactored IClientAPI.OutPacket to require a second mandatory parameter. This parameter has an enum:int ThrottleOutPacketType and contains types; Resend, Land, Wind, Cloud, Task, Texture, and Asset. 2007-11-18 15:54:05 +00:00
Jeff Ames 924026d01c cleaned up some mono compiler warnings 2007-11-18 15:14:37 +00:00
Jeff Ames d10c79d421 first stab at implementation of CopyInventoryItem 2007-11-18 13:50:46 +00:00
Teravus Ovares 46ccfa1741 * Found several cases where prim set physical were not subscribing to physics events. 2007-11-18 13:37:02 +00:00
MW f71fa731f5 Made the background (ie empty space) colour of the exported map image blue. 2007-11-18 12:18:56 +00:00
MW 87b07c19ef Added "export-map <filename>" console command to the region server that will export a jpg image of the world map covering a 20 X 20 regions area centred on the current active region (ie the one set with change-region). While this should work in grid mode (if using the grid asset server and if my last commit did fix the world map), you might need to call the "export-map" command then wait a little while (60 seconds?) and then call it again so that you make sure the region has got all the texture assets from the asset server. 2007-11-18 12:04:21 +00:00
MW 7f99644864 Attempt to get World Map working in Grid mode, will need to be using the grid asset server for it to work correctly and has only been quickly tested in a three region grid.
Moved PermissionManager creation out of the Scene constructor and instead a PermissionManager is passed to the constructor as a param. So that we could create and use custom permissionsManagers.
Added AllowMovement property to ScenePresence which can be used to stop movement of avatars (for example in a custom region that wanted avatars always in one place).
Added PermissionManager call when copying objects, although currently the call will always return true so that it allows copying in places like Wright Plaza. 
A few other changes/fixes.
2007-11-18 11:11:44 +00:00
Dalien Talbot 2cd00f46b9 For every problem there's a solution that is simple, neat and wrong.
Looks like it has nothing to do with childregions - reverting and will 
try to debug after the sleep. Sorry for the noise :)
2007-11-18 07:58:04 +00:00
Dalien Talbot 0d8a2cccfd Looks like we're requesting the mapblocks for every agent - including
childagents. The infrastructure is not robust enough to handle it at 
this time - so ignore all the MapBlock requests for childagents.
2007-11-18 07:40:30 +00:00
Dalien Talbot f7b5c6550b Second try at having a bandaid for the multiple logins crash 2007-11-18 07:16:17 +00:00
MW a4a1ff3d9b Added ClickAction property to SceneObjectPart (and the relevant changes in IClientAPI so its used), so that the default click action (ie touch, sit, etc) can be set on a prim. Note: Sill need to handle the incoming packets that set this, from the client. 2007-11-17 12:03:20 +00:00
Jeff Ames a473289738 minor cleanup of some dodgy bits 2007-11-17 08:14:17 +00:00
Teravus Ovares 5fd2fa687e * Resolved the situation where prim is loaded from storage and when pushed never stops. 2007-11-16 22:13:13 +00:00
mingchen eb2f626561 *Added the TimeDilation property to Scene 2007-11-16 22:02:16 +00:00
Teravus Ovares b2243079ea * Trying a space/collision optimization technique in ODE. Let me know if you see a difference. 2007-11-16 18:30:25 +00:00
MW 483377adae More cleaning up when deleting regions from a instance. NOTE: IGridServices.DeregisterRegion() method needs implementing for grid mode. 2007-11-16 13:39:11 +00:00
Teravus Ovares b63076c303 * ODE step two on the way to separate dynamic space allocation ( One more to go ) 2007-11-16 08:53:37 +00:00
Teravus Ovares 9020ec5af9 * Fixed object edit movements causing full object updates instead of terse object updates since unlinking. 2007-11-16 08:52:03 +00:00