Commit Graph

642 Commits (07b04213d7fe39fa51ff0b1ce435d66fbed8da36)

Author SHA1 Message Date
MW c9fe500212 Added "save-prims-xml2 <PrimName> <FileName>", as we were lacking a method to save a single primitive or small group of them. This command will save all prims in the current scene that name matches the "PrimName" parameter. The saved file is in standard xml2 format, so can be loaded using load-xml2 2008-07-01 19:23:45 +00:00
Charles Krinke b8a3a27221 Mantis#1641. Thank you, Lulurun for a patch that addresses:
The 1st "GetAvatarAppearance" *always* fails and returns default 
avatarappearance. Avatarappearance seems to be working well because 
the 2nd "GetAvatarAppearance" gets the right appearance.
2008-07-01 13:34:05 +00:00
Charles Krinke bf34f65125 Mantis#1639. Thank you, Melanie for a patch that:
Reads estate_settings.xml and populates the database from it. 
If there is no record, just passes the defaults to the application.
2008-07-01 02:16:58 +00:00
Charles Krinke 4cb42d4c35 Mantis#1637. Thank you kindly, Melanie for a patch that:
Make each region load it's settings from the database on startup. 
No user functionality yet.
2008-06-30 14:09:19 +00:00
Charles Krinke 9a0ef22ed9 Mantis#1616. Applied Melanie's patch. This may or may
not break trunk.
2008-06-28 16:08:12 +00:00
Dr Scofield 748f72326d last round of warning squashing. calling it a day now. 2008-06-27 23:03:39 +00:00
Dr Scofield 3d26e6ede0 move along, nothing to see here. just a couple of lazy variables. 2008-06-27 19:57:06 +00:00
Justin Clarke Casey 836557a2f7 * refactor: fission InnerScene.AddSceneObject() 2008-06-27 14:25:36 +00:00
Justin Clarke Casey c9b41bdc4e * Add extra backup parameter to InnerScene.AddRestoredSceneObject() 2008-06-27 14:15:14 +00:00
MW 7a9922af27 Added support for terrain map to be serialised to xml(as base64 binary). useful for places that the terrain map is needed in a serialised form. Also could add console commands to save and load from files, which should be faster than .raw files (these load/save commands are not included/implemented)
Add util functions to compress and uncompress strings. 
Fixed a couple of modules so they use SceneCommunicationService rather than directly call functions on the CommsManager.
2008-06-25 19:33:19 +00:00
Charles Krinke f6bf4c39be Mantis#1587. Thank you kindly, Melanie for a patch that:
Add permissions magling to llGiveInventoryItem, 
correct some corner case functionality
2008-06-24 23:55:33 +00:00
Justin Clarke Casey 908d91be78 * refactor: Making some of the serialization names consistent, both within their pairings and with the others
* This does make some of the names less ideal than others - this should change in the future
2008-06-21 21:20:59 +00:00
Justin Clarke Casey e19a76377c * Refactor: Fold sog.DeleteParts() functionality into existing sog.DeleteGroup() 2008-06-21 20:12:01 +00:00
Justin Clarke Casey b290ce405f * Remove a bug I created in r5171 where taking an object would terminate the client session
* change code to use an explicit state variable instead of using SOG.Name = null to signal deletion
2008-06-21 19:56:19 +00:00
Teravus Ovares a5860ad438 * Adds Region ban capability to Regions. You access this by going to World->Region/Estate. Then on the Estate tab, at the lower right hand corner, clicking the 'Add' button and picking an avatar.
* It only persists across reboots for the mySQL datastore currently.
* Currently have stubs in the other datastores.
2008-06-21 03:29:08 +00:00
Justin Clarke Casey f69f696181 * Temporary workaround for mantis 1568. If the avatar apperance factory now throws any exception, we will carry on with the default appearance rather than terminating the client login 2008-06-19 17:03:59 +00:00
Teravus Ovares 1fcb7c2db4 * By popular demand, skipping trees from the map tile generation routine. Skipping these because we have no good representation, they just appear as blocks that obscure the rest of the map items. 2008-06-18 16:27:27 +00:00
Jeff Ames a728417eda Minor formatting cleanup. 2008-06-18 03:50:39 +00:00
Justin Clarke Casey 16d0a895cb * Refactor: Move the responsibility for applying physics and sending the initial client update to Scene.AddSceneObject() from some of the SceneObjectGroup constructors
* I think this has been done cleanly from inspection and testing, but if prim creation or load suddenly starts playing up more than usual, please open a mantis
* This also has the effect of stopping the archiver generating ghost in-world prims
* Some code dupliction also removed
2008-06-17 20:36:21 +00:00
Justin Clarke Casey 33d32355a1 * refactor: Remove largely duplicate code from SceneXmlLoader.CreatePrimFromXml2() 2008-06-17 17:23:00 +00:00
Justin Clarke Casey ba69cc31e5 * Refactor: Break out AssetsRequest to a separate file in the Archiver module 2008-06-16 15:36:01 +00:00
Teravus Ovares 5cccd4f6e5 * Vintage 2, a good year. 2008-06-14 20:33:03 +00:00
Teravus Ovares 7ca868dca5 * Fixes: 0001554: r5106 update fails to load on some regions with NullRef error on volume portion of maptile drawing routine. 2008-06-14 20:04:48 +00:00
Teravus Ovares 6bea792436 * Enables maptile display in grid mode for simulators that are not on the same instance.
* Only generates a new maptile after a refresh interval
* Maptile names have the UnixTimeSinceEpoch that they were generated and the regionUUID they're from, so you can know which ones are no longer necessary.
* Updates RegionInfo, so backup your /bin/Region/*.xml files.
2008-06-14 02:39:27 +00:00
Jeff Ames 64f01ade04 Update svn properties, clean up formatting, refactor out duplicate hard-coded port numbers. 2008-06-13 00:21:53 +00:00
Teravus Ovares 5219eb7420 * Split the World Map code into a module.
* Implemented a hack so regions beyond the 10,000m range will show the map without having to click on the map before they'll start to show.   The hack shows regions around the one you're in, but it won't show the one you're in..  you still need to click on the map to get that (not sure why yet).   Additionally, the map still only shows pictures for regions that are hosted on the same instance (no change).
2008-06-12 20:19:42 +00:00
Justin Clarke Casey 8714833986 * refactor: For new objects, move attach to backup to occur when adding to a scene, rather than on creation of the group
* Adding to a scene is now parameterized such that one can choose not to actually persist that group
* This is to support a use case where a module wants a scene which consists of both objects which are persisted, and ones which are just temporary for the lifetime of that server instance
2008-06-12 17:49:08 +00:00
Teravus Ovares 049cfe80e4 * Insulate maptile volume draw routine against TextureEntry oddities. 2008-06-12 11:06:31 +00:00
Teravus Ovares 2b6487c832 * Added Prim drawing to the mainmap tile generation.. you can see blocks representing the prim now on the mainmap.
* It isn't perfect since the blocks are square, however it's pretty good.
* Performance is also pretty good, however, if it takes too long for you, you can disable it in the OpenSim.ini 
* You can see how long it takes in milliseconds on the console when it finishes.
2008-06-12 01:11:57 +00:00
Teravus Ovares 2883656bbc For people receiving: Exception: System.ArgumentException: Value of -2147483648 is not valid for red, I've added the following message;
[MAPIMAGE]: Your terrain is corrupted in region {0}, it might take a few minutes to generate the map image depending on the corruption level
And, I've also kept it from crashing...
2008-06-11 19:45:17 +00:00
Teravus Ovares 8a93358405 * This completes ObjectDuplicateOnRay.
* In English, that means that Copy Selection works now, including Copy Centers and Copy Rotates.
2008-06-10 00:18:00 +00:00
mingchen 5ab5991676 *Fixing another object counting bug 2008-06-07 00:24:43 +00:00
mingchen 0fe363ba65 *Made Object Counting correct with linked objects and turned the previously protected functions that only return object counts to public so it can be easily used by outside classes. 2008-06-06 23:20:02 +00:00
Teravus Ovares c892ddcd20 * This wraps the autopilot request to the client's sit response. An interesting, but successful way to do it.
* This also takes care of a few error situations that were previously never seen.
2008-06-06 12:51:20 +00:00
Jeff Ames fbd37c420f Minor formatting cleanup. 2008-06-06 01:19:15 +00:00
Charles Krinke bc32395775 Mantis#1446. Thank you kindly, Grumly57 for a patch
that solves "trees are too small when rezzed"
2008-06-04 14:34:35 +00:00
Jeff Ames 4ec4e16c80 Formatting cleanup, minor refactoring, svn properties. 2008-06-04 09:59:27 +00:00
Teravus Ovares febe78d062 * Implements UserServer logoff in a few situations
* User tries to log-in but is already logged in.  Userserver will send message to simulator user was in to log the user out there.
* From the UserServer, admin types 'logoff-user firstname lastname message'.
* Some regions may not get the message because they're not updated yet.
2008-05-31 12:18:29 +00:00
Justin Clarke Casey 83f390e421 * Refactor: Change multiple requests for a module interface to use a stored reference instead. 2008-05-30 18:01:28 +00:00
Justin Clarke Casey 4f237f3ae3 * Crudely migrate SceneXmlLoader into the Serializer module 2008-05-30 17:52:14 +00:00
Dr Scofield 9590e671e6 while investigating why IRCBridgeModule.Close() was having no effect, i
noticed that Scene.Close() will only call Close on non-shared region
modules. i've now added code to SceneManager.Close() to collect all
shared region module from each scene before calling Scene.Close()
on it and then, once, all Scenes are closed, go through the list of
collected shared region modules and close them as well. SceneManager.Close()
is only called when we initiate a shutdown --- i've verified that a
Scene restart does not trigger the shutdown of shared modules :-)

also, this adds a couple of bug fixes to the IRCBridgeModule (which
after all didn't take kindly to being closed) as well as a check to
InterregionModule's Close() call.

finally, this fixes the RestPlugin's XmlWriter so that it no longer
includes the "xsd=..." and "xsi=..." junk.
2008-05-30 12:29:30 +00:00
Charles Krinke a84456c239 Mantis#1411. Thank you kindly for Dataserver.cs and a patch
that adds function stub to request region info by name and
adds llRequestSimulatorData() and the dataserver event
2008-05-29 13:55:02 +00:00
Jeff Ames 5752c1f5c2 Formatting cleanup. 2008-05-28 03:44:49 +00:00
Charles Krinke ed717ec181 Thank you kindly, Melanie for a patch for script reset
that creates the event handler chain ready to hook by script engines
2008-05-26 16:16:48 +00:00
Dr Scofield 1bb1d5d9b0 This cleans up a merge mess from the earlier checkin and implements llOwnerSay()
via the newly created Scene.SimBroadcast() call.
2008-05-26 15:37:31 +00:00
Justin Clarke Casey 5c8a93c426 * Extract and boil down necessary texture UUIDs for an archive of the scene prims
* no user functionality yet
2008-05-26 01:50:40 +00:00
Justin Clarke Casey d500209da0 * Refactor: Where possible, change visibility on InnerScene methods to protected internal on the basis that they shouldn't be manipulated by outsiders 2008-05-26 01:06:50 +00:00
Justin Clarke Casey a28ca7b78b * Refactor: remove code duplication between add ScenePresence methods in InnerScene 2008-05-26 00:47:36 +00:00
Justin Clarke Casey 73a28a56da * Refactor: Separate out RemoveScenePresence and add into InnerScene to match existing AddScenePresence 2008-05-26 00:38:04 +00:00
Jeff Ames 5d77625e9a Update svn properties. Formatting cleanup. 2008-05-25 23:27:38 +00:00
Justin Clarke Casey bc92d72828 * Refactor: Collapses parts of different code paths in scene used when deleting and unlinking an object 2008-05-25 00:09:08 +00:00
Justin Clarke Casey 0ee69707ea * Refactor: Collapse some multiple remove object paths
* Push some delete functionality into InnerScene to match what's already there for adding objects
2008-05-24 23:11:07 +00:00
Justin Clarke Casey 10564469c8 * Refactor: Remove some unused methods in Scene/InnerScene 2008-05-24 22:48:21 +00:00
Justin Clarke Casey f3067ce6f9 * Refactor: Change previous commits Object methods to SceneObject methods instead, on the basis that this is less likely to cause confusion with c#'s base object type 2008-05-24 22:45:13 +00:00
Justin Clarke Casey 79eecd3d25 * Refactor: Renaming various *Entity*() methods to *Object*() methods on the basis that they all take SOG parameters to improve code readability for now 2008-05-24 22:10:14 +00:00
Justin Clarke Casey 42693f3b20 * Refactor: Push some dictionary initialization down from Scene into InnerScene 2008-05-24 21:57:00 +00:00
Justin Clarke Casey dd4100db4c * Get the xml2 entities serialization representation in the archiver module
* Not yet reusing serialization module - this will happen in the future
* No user functionality yet
2008-05-24 19:21:57 +00:00
Teravus Ovares 375673ec90 This enables return from the parcel object owner display.
There's some oddness with the parcel counts, but if you can get past the oddness, you can return objects under an owner that you have permission to return.
2008-05-24 11:10:21 +00:00
Dr Scofield 09188d5d10 IRCBridgeModule (and ChatModule before the refactoring) didn't succeed in
finding out which region a new avatar was logging in to; the same problem
occurred when the client/avatar logged out. the reason was mani-fold:

- Scene.AddNewClient(...) would call SubscribeToClientEvents(client)
  which would subscribe to all client events and then call 
  TriggerOnNewClient(...) BEFORE the ScenePresence object had even been
  created and added. i've moved the TriggerOnNewClient() call to the
  end of Scene.AddNewClient()
- Scene.AddNewClient(...) is called with child == true; a later call
  to ScenePresence.MakeRootAgent() will turn child to false. When
  OnNewClient is triggered, child is still true, causing IRCBridgeModule's
  FindClientRegion to ignore the ScenePresence of the new avatar.

i've changed IRCBridgeModule to still use OnNewClient and also OnLogout
and OnConnectionClosed but only to signal that the avatar has logged on
(logged off respectively). to track whether an avatar has actually entered
a region i've added EventManager.OnMakeRootAgent (complementing 
OnMakeChildAgent). 

also, i've cleaned up the internal IRCModule code a bit. currently it 
still uses IClientAPI.SendChatMessage() which replicates the code in
ChatModule, that needs to be changed to use TriggerOnChatFromWorld().
2008-05-23 16:07:47 +00:00
mingchen d04443b4fe *Refactor of the LandManagementModule that allows OpenSim to run without it 2008-05-23 15:12:15 +00:00
Charles Krinke 7dcaa409b3 Thank you kindly, Melanie, for a patch which:
Previously, upload charging was possible only for UPD uploads. 
This is because UDP uploads are charged by the viewer, while in CAPS, 
this was changed to be server side, so hackers couldn't avoid 
paying the upload charge. This patch adds a method to allow 
implementation of this serverside charge.
2008-05-23 01:38:20 +00:00
Justin Clarke Casey 8cde4a1c28 * minor: Remove unused variables causing warnings in Scene 2008-05-22 22:31:42 +00:00
Justin Clarke Casey 0c94da8305 * Plug in stubbed out archiver module 2008-05-22 22:21:58 +00:00
Sean Dague b27ae0e8dc make VS compile Scene.cs 2008-05-22 20:59:40 +00:00
Sean Dague 1c49752a44 don't trust appearance assetid, instead do an inventory
lookup any time we get it from the server.  This should
preventent unwearable appearance.
2008-05-22 20:07:31 +00:00
Justin Clarke Casey 203017f554 * Refactor: Move enhancement of version string with operating system information from Scene to OpenSimMain
* This also means the operating system info will show up in the region console (and hence the logs)
2008-05-22 00:32:04 +00:00
Justin Clarke Casey 2e758172f0 * Fix circular dependency from last checkin by passing version as a parameter to Scene rather than referencing VersionInfo directly
* Butt ugly solution
2008-05-22 00:18:33 +00:00
Justin Clarke Casey 9263f07d70 * Send VersionInfo string instead of the hardcoded Scene string to the "About Second Life" box
* This is the same string as printed out on the opensim region console at startup, so it should now include the svn revision number (if available)
* This dialog box takes an awful long time to come up on my local system - no idea why that is.  However, that also seems to have been the case before this revision.
2008-05-21 23:52:02 +00:00
Teravus Ovares 8afd93c943 * Sets backup bool volatile for extra protection against two backup processes running. 2008-05-21 21:47:03 +00:00
Teravus Ovares 5af108a029 * This update causes the backup process to run in a separate thread.
* Concurrency issues are resolved because each object makes a memory-only copy of itself and backs up the copy.
* Because of the way this is done, the latest at the time of the backup gets backed up (no functionality change)
* You can move *thousands of objects at a time* and the sim doesn't freeze and wait for the backup to complete.
* This can be enhanced more by dedicating the thread as opposed to starting it when the backup process starts.
2008-05-21 21:22:56 +00:00
Sean Dague 185eff8d0d From: Jeremy Bongio <jbongio@us.ibm.com>
House cleaning ...

Rather than using the variable name EntityList, the variable name
EntitieList was being used. Here's a patch to fix it.
2008-05-20 16:19:35 +00:00
Sean Dague 7a52b35c57 fix crash in standalone mode for initial appearance setup 2008-05-19 20:33:54 +00:00
Sean Dague 9808f39b6f i can haz pantz?
You sure can.  This change set restores pants (and the rest of the
default appearance) in grid mode.  The 
root issue had to do with serializing multi-faced textures to the 
grid server.  This also restores the lookup path through the avatar
factory module, as that seems the reasonable place to have it live.
Some clean up patches are coming later as well, plus testing on 
standalone, but this should be in a good kicking around state for 
grid users.
2008-05-19 19:08:59 +00:00
Jeff Ames 6ec680918b Formatting cleanup, minor refactoring. Fixed some comparisons of value types and null. 2008-05-18 23:06:50 +00:00
Teravus Ovares 2bd03b7c8c * Group type stuff. Nothing spectacular. two packets, sorta almost semi half tiny amount implemented. 2008-05-18 03:21:22 +00:00
Sean Dague 06b1535ec5 while this doesn't fix the initial no pants issue in grid (which still baffles me)
it does make setting appearance in grid stick.
2008-05-17 12:45:43 +00:00
Jeff Ames 7fefb80abb Minor cleanup. 2008-05-16 13:33:57 +00:00
Jeff Ames 65c5efe43b Formatting cleanup. 2008-05-16 01:22:11 +00:00
Sean Dague 4a9ee9f870 testing avatar appearance as a user service 2008-05-15 20:25:42 +00:00
Teravus Ovares a4efa93993 * Comitting 0001271: [PATCH] Refactor permissions to fully allow stacking permissions modules. From Melanie. Thanks Melanie! 2008-05-14 23:25:07 +00:00
Teravus Ovares 2a988f187e * Refactored IConfigSource into Physics plug-ins and Scene. We can get rid of some of the parameters we pass to it's constructor now like, 'm_allowPhysicalPrim', 'seeIntoOtherRegions', etc.. so on
* The main purpose of this is to provide configuration options for ODE and other physics plug-ins that are advanced enough to be able to be configured.
2008-05-14 23:15:25 +00:00
Justin Clarke Casey 587f6ab645 * Refactor: Remove SceneObjectGroup.GetScenePresences() in favour of a direct call to Scene 2008-05-14 21:09:41 +00:00
Justin Clarke Casey 3025dafa92 * Refactor: Stop exposing the inner scene's ScenePresence dictionary directly to the world 2008-05-13 18:25:15 +00:00
mingchen 32785921d0 *Complete redo of the permissions module
*Removed hardcoded permissions checks
*Added permissions checks where needed
2008-05-13 16:22:57 +00:00
Teravus Ovares bfce23dcf4 * Implemented ChildAgentDataUpdate throttle multiplier based on an inaccurate count of neighbors.
* The neighbor count is always lower then the actual number of neighbors unless your region was up the longest.
* The region you're in is un-affected by this, though, you'll get less packet loss, maybe not get logged off immediately when you log in, and possibly see more prim if your internet connection is semi-unreliable.
2008-05-13 06:05:45 +00:00
Justin Clarke Casey d3fb6039ca * If a region running in grid mode fails to login to the grid service, startup will now terminate instead of carrying on (and thus burying the error message) 2008-05-12 16:57:56 +00:00
Adam Frisby ee352ebc79 * Added NPCModule and NPCAvatar classes for NPCs. Primitive, but we can grow them out.
* Fix for Scene.Inventory.cs - It assumes every entity at startup is a SceneObjectGroup. (Actually, this shouldn't have compiled[!] without a warning.)
* Fix for LandManager at startup - it assumes there's a land channel when perhaps there isnt. (Bug that needs another refactor to fix. [Mike - I've assigned a ticket to you about this])
2008-05-11 04:32:43 +00:00
Teravus Ovares 1ba51dd2fd * More OutPacket refactors.
* Added back a sleep to the kick routine so users get a 'you have been logged off message' when they get kicked from the simulator for various reasons (like 'the simulator is going down')
2008-05-10 13:11:09 +00:00
Teravus Ovares b7baa3cd2a * Valid Sculpted prim now collide properly.
* The first time you set the sculpted texture of a prim you might have to futz with it to get it to generate a sculpted physics proxy
* Note that there are already issues in Trunk, (such as the prim scaling issue and prim jumping issue.  Essentially editing is difficult right now)
* This just adds to the experimental nature of trunk. :D
2008-05-09 07:50:00 +00:00
mingchen 6c71a04da8 *Added all the permission checks to the sceneexternalchecks and modified permission module to follow this.
*This makes permission checking much more modular; allows restrictive and granting module to be made without modifying the existing permission module
2008-05-08 19:37:57 +00:00
Justin Clarke Casey be02107ea8 * Increasing ScenePresences locking to prevent race conditions such as those seen in one of the crashes of mantis 1163
* It's not impossible that this could lead to deadlock where sessions simply appear to freeze, even though the region console still responds.
* If this is the case, please file a mantis
2008-05-07 22:59:30 +00:00
mingchen 6551f17966 *Added SceneExternalChecks.cs that is used to manage checking the results of multiple functions that register with the class and return the result (usually true/false) based on those results. This is useful for module wanting to put their opinion in decisions such as 'can the user rez this object?' 2008-05-07 17:33:57 +00:00
Adam Frisby 31cd162d34 * Cleaning up code, making it conform to OpenSim standards. 2008-05-06 04:56:48 +00:00
Justin Clarke Casey 9655cf2807 * Refactor: Break out permissions code into a separate region PermissionsModule 2008-05-05 20:14:53 +00:00
Justin Clarke Casey 60a83574f4 * Just some tidy up and documentation before I make my first ever attempt to extract a lump of code out to a region module 2008-05-05 18:53:07 +00:00
Teravus Ovares 7b446aba91 * Implemented DIE_AT_EDGE and Temporary objects don't save to the database. 2008-05-04 22:55:52 +00:00
mingchen 63c104efde *Fixed up EstateManagementModule to the module standard - no more packets allowed!
*Started cleaning up the land module
2008-05-04 18:59:18 +00:00
mingchen 4a87d96c17 *Moved EstateManager into a region module 2008-05-03 17:11:21 +00:00
Teravus Ovares 07167c9a3f * Committing some collision stuffs that I'm working on.
* Nothing user facing yet.
2008-05-03 04:33:17 +00:00
Adam Frisby 776b4cedf6 * Small fixes to Scene.cs 2008-05-02 18:36:41 +00:00