* Fixed a bug with Terragen loader where it would do bad things on a non 256x256 sized terrain. Now loads the array correctly.
* Moved MapImageModule.cs to Modules/World/WorldMap
* Changed Location.RegionHandle to use Helpers.GetUlong instead of doing it ourselves.
* Each module directory is currently inside one of the following category folders: Agent (Anything relating to do with Client<->Server communications.), Avatar (Anything to do with the avatar or presence inworld), Framework (Classes modules can use), Grid (Grid traffic, new OGS2 grid comms), Scripting (Scripting functions, etc), World (The enrivonment/scene, IE Sun/Tree modules.)
* This should be moved into a seperate project file.
* Interfaces and methods have been defined for basic operation, however a replacement grid module is required to share region URIs with neighbours for this module to work.
* Tackling that next.
* From reading the code, the cause must be that a 'show objects on my parcel' is performed when there are objects belonging to more than 32 people
* I'm not sure why there is a hardcoded 32 limit but I'm leaving it in place for now. I don't regard this mantis as resolved.
Note: This is the first part of some changes from Dr Scofield to support console-less operation of an OpenSim region server.
The changes are not yet complete.
* refactors OpenSimMain into two classes: OpenSimMain and
OpenSimMainConsole. OpenSimMainConsole derives from OpenSimMain
and basically is the "old" OpenSimMain
* drops StartConsole from RegionApplicationBase (was only called
from the "old" OpenSimMain anyhow)
* reverts the changes to TryGetScene(string, out scene) as that
seems to work perfectly fine
* adds a check to region-remove to see whether
m_sceneManger.CurrentScene is non-null before comparing it against
the region-to-be-removed
* Added ITerrainLoader import capability to Terrain Plugins module - this allows you to write new terrain format plugins without modifying the terrain module directly.
* Detaching from right clicking in world, detaches to your inventory.
* If you go up to a prim and attach it from in world, it appears in your inventory.
* Attachment placement is saved when you detach them.
* Choosing wear remembers your last attachment point from inventory.
* Wrote a method to update an inventory item's asset and sends the updated inventory item to the Client
* Wrote a recursive method to find the folder of a known existing inventory item.
* Removed a block on physics object position on creation. This might crash a region or two, let us know via Mantis if your region crashes because of a physics out of bounds error.
* Drop doesn't work. The menu item doesn't even come up. Don't know why :P.
* Now, if you own an item in a prim, you should be able to successfully drag it back into your inventory
* Temporarily, users which are not owners of the item cannot copy it, even if 'everyone can copy' is set
* This is pending fixes/implementation of upstream permission implementation
* Temporarily hacked things to bring our protocol data flow to be pretty much completely identical to the Linden's for this - to absolutely no avail.
* Leaving commented code in as a springboard for some future attempt
* Your friends can see your attachments now. People who appear in the sim after you've attached something can also see your attachments.
* You can position & rotate your attachments now. Positions do *not* save.
* You can detach attachments now the regular way.
* Attachments do not cross into other regions with you..(this isn't too far off)
* Updated ODE to not request terse updates on child prim.
* Currently if you apply that to only one or two axis you get unpredictable and sometimes explosive results.
* Three axis works well enough to play with it anyway. More work is needed here.
* Fixed an incorrectly named method in ODE.NET
the attached patch fixes http://opensimulator.org/mantis/view.php?id=936
aka load-xml/load-xml2 crashing. problem lies with basic physics not
creating physics actors. the solution was already present in
SceneObjectPart.cs.
Attached is a patch for adding the llGetSunDirection functionality. It was implemented by adding a parameter to estate settings for storing the sun position. The sun position is calculated and stored via the sun module everytime the client's sun position is updated. It was tested with several different srcipts on Linux and Windows
the attached patch set is centered around RemoteAdminPlugin and focuses
mainly on making it more robust (i.e. more parameter checking and better
error reporting) but also we've re-implemented the LoadTerrain stuff that
got disabled during the terrain code reworking:
* missing PostInitialize() calls on region modules that were loaded
for regions created via RemoteAdmin's CreateRegion XmlRpc call
* re-implements RemoteAdmin's LoadTerrain XmlRpc call (probably lost
during the TerrainModule rework)
* adds lots more parameter checking and error reporting to RemoteAdmin
* adds a read-only property to RegionApplicationBase so that we can
access the CommsManager
* adds Exceptions to TerrainModule so that we get better error case
feedback (and can report more meaningful errors in turn)
* adds a CheckForTerrainUpdate() call to
TerrainModule.LoadFromFile() to make terrain changes effective
* adds TryGetCurrentScene(LLUUID) to SceneManager so that we can
retrieve Scenes not only by name but also by LLUUID
cheers,
dr scofield
* Added a form of GZip compression support to object.xml files produced by exportserialiser. Will look towards standard GZip support. File compression seems to be highly worthwhile reducing a 1.5mb sim state to 62kb.
* This now outputs properly indented XML, that is sorted before construction. This produces a file which proper .diffs can be generated from - the end result being smaller more compact revisions when saving to SVN.
* Files are a little heavy still however, compression looks like a good method for packing sim-states for transport outside of SVN. Zip seems to be a good candidate and is on the TODO.
* A much more significant fix is required to clean up the cache when a user moves out of a region, but really better handling of delayed inventory cache updates needs to be
written first, and possibly better affinity to cut down agent inventory requests when the move is between two regions hosted on the same server.
* All objects are not touchable by default now
* When a script listens for one of the touch events in the state, an object becomes touchable.
* All LSL scripts report which events they consume now
** This uses semi-complicated Regex to discover the events, stick them in a dictionary, and then write a method call into each script state's state_entry() event.
** Tedd may figure out a better way to do this in the future. For now, this works for LSL.
Linked objects won't scale together properly, only the root object scales.
This happens with scaling both up and down or inputting numbers in the edit dialog.
* Temporarily disabling click+drag+move for non physical things until more experimenting is done to figure out how to get a sideways hand cursor in the client.
* See OpenSim.ini.example settings for how to use
* Only compatible with svn:// and http:// authentication for the moment (and only using simple authentication). SSL/SSH key support is supported by the library used (SvnDotNet), but is not yet supported in OpenSim.
* Use the command "svn save" to make a copy of your regions to SVN. Presently this is not an automatic process, but such a feature is on the todo list.
* It will in your repository create a subdirectory for each region with the regions UUID, inside there it will create a 'terrain load' compatible 'heightmap.r32', and a load-xml2 compatible 'objects.xml' plus information files.
* Untested on Linux, some compatibility work may be needed by Linux peoples. The dependencies will be the same as for SvnDotNet which is supposedly mono-compatible.
This is a module which allows you to periodically export a serialised version of your region to a SVN repository and store it there. It is still a work in progress and is currently disabled and incomplete, but some of the functionality is demonstratable.
* Enjoy.
* Implements 'Teleport Home'
* User Server has to be updated for it to save your home in grid mode
* home position accuracy is in int because the grid comms ExpectUser method tries to convert to Uint and crashes if it gets a float. Added a convert to decimal in ExpectUser but to avoid a breaking change with old revisions, kept the save value in int for now. Eventually it needs to be a float, but lets release another incremental version before doing that.
* To make a landmark, you currently have to enable admin options in the advanced menu first. We're working on this.. however use the admin options solution in the mean time.
convinced that timer.Enabled modification is thread safe.
I suspect the statsHeartBeat call to be one of our hot spots
because is tries to synchronize not with a lock, but by
disabling and enabling itself. I've replaced that with a lock
in the hopes that this affects either the 100% bug, or the
invoke_void bugs.
This patch makes the "Show in Search" checkbox on the viewer work. Additionally, I also discovered that show-in-search objects use the JointWheel flag, so this patch currently uses that flag. LibSL needs to add a flag to enum LLObject.ObjectFlags, "IncludeSearch = 32768" so we aren't using a legacy flag.
Additionally this patch also contains a small fix to BaseHTTPServer that lets the response content-type to be something other than text/html. For some reason this didn't get submitted with the DataSnapshot merge.
* This allows caps requests to be routed to regions where the agent is currently a root agent instead of the region that they logged into as it did previously.
* This fixes a wide variety of bugs related to 'can't do X once i've crossed a border'.
* The first seed cap request fails, the second one works. (this generates an error message on the console)
* Experimental.
ansgar and i have been working on an asterisk voice module that will allow
us to couple opensim with an asterisk VoIP gateway.
the patch below consists of
* AsteriskVoiceModule region module: alternative to the plain-vanilla
VoiceModule, will make XmlRpc calls out to an asterisk-opensim
frontend
* asterisk-opensim.py frontend, living in share/python/asterisk, takes
XmlRpc calls from the AsteriskVoiceModule
* account_update: to update/create a new SIP account (on
ProvisionVoiceAccountRequest)
* region_update: to update/create a new "region" conference call
(on ParcelVoiceInfo)
* a asterisk-opensim test client, living in share/python/asterisk, to
exercise astersik-opensim.py
this still does not give us voice in OpenSim, but it's another step on
this path...
attached is a patch set that
* adds further robustness checks for the CreateUser and CreateRegion
XmlRpc
* fixes SceneManager.TryGetScene(IPEndPoint, Scene) --- contrary to my
expectation IPEndPoint.Address is not sufficient for a comparision,
IPEndPoint.Address.Address (the long representation) does work
however.
* add [RemoteAdmin] section to OpenSim.ini.example
* fixes XML doc comments
good night,
dirk
* This is very early support which would only be triggered in a rather unlikely case (if the user server correctly received an inventory skeleton, but later on failed to return the whole inventory in a timely manner. Also, this only applies to the 1.19.1.4 client onwards
* Code cleanup and support for other failure cases (failure of inventory caching on region crossing, failure to actually add a folder/item, etc, should follow.
* Added license info to a few files it was missing from.
* Fleshed out the landbuy interfaces
* If you add '-helperuri http://127.0.0.1:9000/' to your list of parameters you tell the client to use when you start it up you can transfer ownership of parcels now in standalone. Structured gridmode requires a lot more work, see the documentation in the example money module. The example money module is not secure especially in standalone mode.
* A few things for testing.
* This makes a modification to the region registration with the grid server so that the region can send it a chosen password to identify itself. It will not cause any errors, if either one are not updated.
* This patch adds support for saving a dynamically generated region to the filesystem (as a region xml file)
* Also adds some error checknig to make sure the dynamically generated region name, id or location are not already taken.
* Thanks Dr Scofield
* Several people have asked for a way to limit uploads, so I've decided to show people how to do this in the BetaGridLikeMoneyModule.
* Configure it in OpenSim.ini using the [Economy] header. See the bottom of the OpenSim.ini.example for more information.
* This also fleshes out the Economy API a bit more.
* Now properly dealing with prims which don't contain items - thanks to thomas for the patch which gave insight into this situation
* Also, an xml exception no longer crahes the client session
* Leaving in debugging lines in case there are further problems
* Not yet tested on Linux, though I'm just about to.
* Now you can drag an object from your inventory and give it to another avatar
* !!! Use at your own risk !!! Many things are unimplemented as of yet, including permissions (the person receiving your item can probably do absolutely everything with it)
* Also, items for the receiving end up in their root folder rather than the objects folder
* Currently the grid server sticks you at 128x128x128.. so that means it'll use whatever parcel is at that location to get this information. This allows greater customization of where people log-into and teleport-to if done right.
* Sets the default estate parentID to 1.. which means that all regions are treated like private estates in the client as opposed to Linden Mainland. (no space server hiccup message). If that message annoys you and you want to get rid of it, set your parentEstateID to 1.
* This patch removes voice code into a region module. This required the implementation of events and other code to allow region modules to register their own caps handlers, and should allow different voice module implementations.
* CAVEAT: This does not provide complete voice support, it merely provides the hooks so that it can be plugged in.
* (and Ansgar/Ansi)
* Fleshes out the voice stubs to better interact with the viewer CAPS requests - no actual voice support yet!
* In his own words
"the attached patch enhances the existing voice support by returning a proper voice account user and password and is preparing the config file so that we can specify a SIP server (not yet working). currently the SIP is hardcoded. the next step is to refactor voice support into a region module. working on that. "
* Renamed plugin console message, to send a message to a plugin, use either "plugin <message>", or any unrecognised message will be sent ("plugin" sends explicitly) This replaces the old "script <message>".
* Terrain commands - "terrain <command>" now works again. "Script terrain <command>" does not. Many of the commands have now been reimplemented, eg load-tile. However some have new syntax.
* New console command handler, you can now use things like "terrain help" or "terrain save help". See TerrainModule.cs for an example of how to use the new "Commander" class.
* Commander class - advanced processing of console input and also enables a script API to be generated from registered console commands.
* This update breaks inter-region communications, sorry.
* You will need to run prebuild.
Next, the good;
* This update solves the unexpected binary element when Linux simulators inform windows simulators and vice versa. So Linux Simulators and Windows simulators are 100% compatible again.
* This update introduces an Integer in the prim crossing method to tell the receiving simulator which XML method to use to load the prim that crossed the border. If the receiving prim doesn't support the method, the prim crossing fails and no prims are lost.
That being said, it's best to update all your simulators to this revision at once.
Most likely doesn't really work in grid mode as the generated textures are marked as temporary and I don't think they are updated to the asset server. We have to either live with these textures being sent to the asset server, and manually clean them out from time to time or wait until there is some asset management system in place.
Also currently the texture is only generated at region startup, it is not updated after terraforming.
This patch implements llMessageLinked.
I had to make a change to llGetLinkNumber to return m_host.LinkNum + 1 for
link sets of more than 1 prim, or 0 for a single object, since according
to:
http://rpgstats.com/wiki/index.php?title=LlMessageLinked
linksets with 2 or more prims start the link numbering at 1, but a single
prims link number is 0.
* It doesn't generate at_target events, because they don't exist yet in the script engine.
* The Tau is different, however, compatible with scripts I tested.
* Not perfect... but pretty good.
* This means that caps methods (editing scripts, poss map functions, etc) on non-home regions should now work with servers which are listening for http ports on a non default
(9000) port.
* If you are running a region server, this may only work properly once your grid server upgrades to this revision
* PLEASE NOTE: This shouldn't cause inter-region problems if one end of the connection hasn't upgraded to this revision. However if it does, the instability will persist until
the grid and region (and possibly all the region's neighbours) have upgraded to this revision.
* This revision also adds extra login related messages, both for success and failure conditions
* It's not perfect, but it's good enough. (rarely erroneously returns a backface collision)
* After updating to this revision, rez a prim on another prim and watch it appear where you'd expect it to appear.