Commit Graph

140 Commits

Author SHA1 Message Date
John Hurliman
241b480320 [Simian]
* Created an LLUDP folder to hold extensions that are purely LLUDP packet handlers. This is not a complete abstraction away from transport protocols, but it's a start
* Moved physics code from Movement.cs into PhysicsSimple.cs, and moved the physics loop into a thread in SceneManager
* Simian.ini cleanup


git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2490 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-17 22:33:22 +00:00
John Hurliman
3c5d40402f [Simian]
* Added region flags to the region config files
* Implemented grid map support (still acts weird until MapLayerReply is properly implemented)
* Temporarily disabling HyperGrid teleport until proper HyperGrid config file support is added

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2489 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-17 01:26:59 +00:00
John Hurliman
d4e07b8c4d * Few more tweaks to event queue server to improve performance and thread safety
[Simian]
* Made default assets for map water overlay and HyperGrid portals
* Fixed asset store loading regression
* Start synchronization after RegionHandshakeReply instead of CompleteAgentMovement (allows the sync function to be called for child agents as well)
* Start informing clients of neighbor regions when AgentThrottle is received (prevents client crashes, and this will become necessary data in the future)
* Minor fixes in map handling

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2488 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-17 00:17:07 +00:00
John Hurliman
cb4e07b6c1 [Simian]
* Make sure ISceneProvider.IPAndPort gets set to a valid IP address
* Send circuit_code in enable_client cap so the existing circuit code is reused for child agent connections

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2487 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-16 21:38:23 +00:00
John Hurliman
e69157a4af [Simian]
* Sim to sim caps for establishing child agents
* Still working out a bug in the libomv event queue, committing what is done for now

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2485 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-16 18:02:48 +00:00
John Hurliman
1506846d36 * All nine regions in Simian come online at startup now (one step at a time)
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2484 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-13 08:57:52 +00:00
John Hurliman
7b2154cd89 Go away little file
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2483 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-12 23:51:52 +00:00
John Hurliman
70fe1f8f2a [Simian]
* Initial framework support for multiple simulators. Currently only the first region config is loaded, but the framework is there
* Big reorganization of config and data files
* Started renaming extensions that handle LLUDP packets to start with the LL prefix. Work in progress
* Initial SSL support

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2482 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-12 23:02:42 +00:00
Latif Khalifa
627e0dbef7 * Added DoubleDictionary.FindAll and DoubleDictionary.RemoveAll
[Simian]
* Fixed several Periscope regressions
* OAR file writing works now (from Periscope only, this will change soon)
* Added /objectkill [on/off] to Periscope, useful when saving OAR files
* Fixed miscellaneous issues (mostly with adding/removing agents in a scene)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2481 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-11 20:38:35 +00:00
John Hurliman
00ded81d19 * Sanity check that we are connected to a simulator before teleporting
* Gracefully handle zero length layers in JPEG2000 decoding
[Simian]
* Adding OAR file archive writing (untested)
* Add a /save command to Periscope to save an OAR archive of a scene

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2480 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-11 00:09:47 +00:00
John Hurliman
342008176e [Simian]
* Added IPhysicsProvider.TimeDilation (not functional yet)
* Completed ObjectUpdateCompressed implementation

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2479 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-10 18:40:11 +00:00
John Hurliman
8106fccdd2 * Changed Primitive.TextureEntry.ToBytes() to GetBytes() to follow naming conventions
* Added Primitive.TreeSpecies and Primitive.ScratchPad
* Converted Primitive.SoundFlags to the new SoundFlags enum
* Added a Utils.BytesToString() overload that accepts index and count parameters
* Added Utils.FloatToUInt16()
[Simian]
* Lots of changes in Simian to use the new unified ISceneProvider.ObjectAddOrUpdate() function
* Update flags are checked to determine the minimum sized packet that needs to be sent out for an update. ImprovedTerseObjectUpdate is working, and started work on ObjectUpdateCached (updates using this will currently not send)
* Adding three new variables to SimulationObject to store attachment-related state

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2478 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-10 01:54:45 +00:00
John Hurliman
692d2927a9 * Add a copy constructor to IRendering.SimpleMesh
[Simian]
* Avoid remeshing whenever possible by reverting back to using the untransformed mesh for the world mesh generation
* Add forceMeshing and forceTransform booleans to SimulationObject to specify when a new untransformed mesh needs to be generated and when the transformation needs to be reapplied

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2477 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-09 18:20:19 +00:00
John Hurliman
7e0529d58d [Simian]
* SimulationObject.GetWorldMesh() now has an option to force rebuild
* RayTriangleIntersection returns the actual collision point
* PhysicsSimple regenerates meshes when objects are moved or edited

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2476 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-09 03:01:34 +00:00
6f7df8ea1b [Simian]
* Tweaked inertia values for falling avatars
* First pass at avatar/object collision physics

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2474 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-06 16:32:03 +00:00
John Hurliman
a464b54dd1 [Simian]
* Added an IPhysicsProvider and a PhysicsSimple implementation that provides basic physics-related functionality. Currently only ray/prim intersection and getting a prim's mass
* Initial prim CRC handling
* Porting some LSL fixes from OpenSim

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2473 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-06 02:10:52 +00:00
193a7c531b Simian:
* Fixed avatar rotation not being locked while sitting
* Fixed owner info being lost on link/unlink
* First pass at attachment support

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2468 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-05 22:09:58 +00:00
John Hurliman
96acab524b [Simian]
* Fixed object duplication regression
* Cleaned up the mess that was adding an agent to the scene
* Sitting kind of works ("proper" sitting is extremely complex and requires a lot of computation)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2466 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-03 22:25:29 +00:00
John Hurliman
871ffb42a6 [Simian]
* Clearing up confusion with Agent.Avatar by making it a SimulationObject that is passed in through the constructor. This should prevent duplicate notions of an avatar in the scene
* Fixed the "you don't own this object" issue after moving a prim. The fix is rather hacky and will be replaced when we stop sending full object updates for every change

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2465 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-03 21:01:57 +00:00
c8312a0777 Simian: Committing first pass at sit/unsit support (offset is still incorrect)
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2464 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-03 19:08:04 +00:00
John Hurliman
18b5f70e53 [Simian]
* (Untested) implementation of ObjectExtraParamsHandler
* Fixed several mono compiler warnings and one compiler error
* Converted to a non-deprecated method of fetching the local IP address

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2463 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-02 23:43:12 +00:00
John Hurliman
abf0c15384 [Simian]
* Completed a partial port of OpenSim's LSL API. Thank you to everyone on the OpenSim team for their hard work on this incredibly large feature
* Added Agent.GetSimulatorPosition()
* Corrected default PrimFlags for agents and prims
* Stubs for encoding/decoding prim linkset assets
* Route chat through the scene
* Stub for grid messaging (IM and email)
* Add GetTerrainHeightAt(), removed duplicate heightmap storage in Movement.cs
* Added a permissions manager stub
* Store wind speeds, added functions to get wind speed
* Make sure all of the important prim properties are set before creating an object
* Lots of new object manipulation functions in scene
* Properly clean up event queues on agent exit
* Stubbed out a space for a scripting engine
* Stubbed out task inventory
* Added ScriptingConsole, which allows you to run LSL functions from the chat console
* Added new PacketCategory, Messaging, for chat-related packets
* Fixed InventoryObject overrides
* Added a NotecardCache, useful for the scripting engine and may become generally useful later
* Added several helper functions and new members to SimulationObject

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2462 52acb1d6-8a22-11de-b505-999d5b087335
2009-03-02 23:00:28 +00:00
John Hurliman
939d120059 * Added a CircularQueue to OpenMetaverseTypes
[Simian]
* Fixed a regression with ViewerEffect packet handling
* Added undo and redo support
* Changed ISceneProvider interfaces to be more consistent and avoid duplicate lookups
* Attempting to unify avatar and prim handling by storing agents as both a SimulationObject and an Agent in the scene
* Comment out noisy resend logging and catch broken packets in the resend queue
* Improved the README
* Avoid generating two meshes when a world-transformed mesh is generated (are these even necessary?)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2456 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-25 20:32:48 +00:00
John Hurliman
3b3946244a * Updating OpenMetaverse.Http and Simian to new HttpServer.HttpListener.Create() requirement for an ILogWriter
* Move more state updates into ISceneProvider
* Lazy initialization of mesh data for SimulationObjects

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2436 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-13 22:21:01 +00:00
John Hurliman
71f3ff77ca Switched HttpServer.dll to the "lite" branch in the official C# WebServer repository. The fork maintained by libopenmetaverse will be removed soon
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2432 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-09 07:26:50 +00:00
John Hurliman
06404ab4e4 * Fixed endianness for OSD handling of uint, long, and ulong (big endian byte arrays are used)
* Fixed CapsServer to handle all content types (old SL clients were sending application/xml, new ones send application/llsd+xml)
* Start the EventQueue ID at 1 (seems to help)
* HyperGrid teleporting is now working in Simian

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2428 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-05 03:12:41 +00:00
John Hurliman
808b681b83 * Fixed a nasty OSD->JSON bug that was producing invalid JSON for empty arrays or dictionaries
* Several fixes in OpenMetaverse.Http.CapsServer and OpenMetaverse.Http.EventQueueServer (this is the first time they've been tested)
[Simian]
* Initial capabilities and EventQueue support (appears to be working)
* HyperGrid is almost working
* More cleanup with how agents are removed from the scene

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2427 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-04 23:00:33 +00:00
John Hurliman
875aa0b6e8 * Some changes that should have gone in the previous commit
[Simian]
* Adding MapLocal extension to Simian, adds very basic world map, local teleporting, and a stub for HyperGrid teleports
* A few more small additions to ISceneProvider

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2426 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-03 18:49:00 +00:00
John Hurliman
1ab82e4f17 * Removed Agent.CurrentPosition in favor of Agent.Avatar.Position
* Stubbed out the UDP teleport request handler
* Removed some redundancies in the ISceneProvider interface between objects and agents, and fixed SceneManager to operate on both agent and object stores where needed

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2424 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-03 01:59:46 +00:00
John Hurliman
81048b1010 Fixed a bug in coarse location packet sending
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2423 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-02 22:46:44 +00:00
29738e5ff8 * Added new TerrainCompressor overloads
[Simian]
* Moved RegionID, RegionX, RegionY, RegionHandle to ISceneProvider
* Converted to a patch-based terrain interface

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2422 52acb1d6-8a22-11de-b505-999d5b087335
2009-02-02 21:33:21 +00:00
John Hurliman
54c4ae80fd * Default Primitive.Rotation to Quaternion.Identity
* Quaternion.Conjugate() was accidentally set private, fixed
[Simian]
* Move login code to LindenLogin extension
* Move avatar tracking to ISceneProvider (Simian class is now "pure" and contains no implementation code)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2421 52acb1d6-8a22-11de-b505-999d5b087335
2009-01-30 19:24:38 +00:00
John Hurliman
2c0ba2346a * Added a log4netLogWriter to OpenMetaverse.Http
* Started on capabilities support for Simian

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2404 52acb1d6-8a22-11de-b505-999d5b087335
2009-01-05 22:59:29 +00:00
John Hurliman
364c2c26d9 * Moved all capabilities code to the new library, OpenMetaverse.Http
* OpenMetaverse.Http contains a CAPS client + server, event queue client + server, SSL certificate generation (root CA, server certs, client certs), and client certificate authentication
* HttpServer.dll and Mono.Security.dll are new dependencies for OpenMetaverse.Http.dll

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2400 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-29 20:44:28 +00:00
John Hurliman
e611558add * Adding the first (of many to come) unit tests for Simian
* Removed Simian's Agent.AgentID, it was redundant with Agent.Avatar.ID
* Added IUDPProvider.OnOutgoingPacket to hook all outgoing Simian packets (for testing)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2386 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-21 02:09:54 +00:00
John Hurliman
1df78cb074 * Split up asset store and transfer manager in Simian into two extensions
* Added PeriscopeTransferManager to handle animation and sound transfers
* Misc. transfer bugfixes in libomv
* Misc. improvement to TexturePipeline and some numbers tweaking
* Attempted to pass object touch events through to foreign grid in Periscope, may not be working
* Added new chat commands in Periscope

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2385 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-19 03:39:29 +00:00
John Hurliman
344d327a15 * Removed all strings from _Packets_.cs, including warning messages for null arrays and Packet.ToString(). GridProxy needs a new Packet.ToString() method that uses reflection now
* Fixed foliage decoding and removed OnNewFoliage in favor of OnNewPrim only
* Flexi, light, sculpt, and object properties (all inside of Primitive) are now classes that can be null instead of structs
* Added Primitive.GetExtraParamsBytes()
* Massive improvements to Simian and periscope

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2384 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-18 21:45:38 +00:00
John Hurliman
194752abc1 * Moved TexturePipeline into libOpenMetaverse (still needs to be instantiated separately)
* Moved TextureCache into its own file
* New version of Periscope, major improvements. Check the Simian.ini file for usage, and change the const values in Periscope.cs
* Lots of miscellaneous cleanups and improvements in Simian

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2383 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-17 03:49:42 +00:00
John Hurliman
ee6211550e * Initial commit of Periscope, an experimental Simian plugin that uses a libomv bot to proxy a foreign simulator
* Small cleanups and bugfixes in Simian

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2382 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-16 08:43:27 +00:00
John Hurliman
5fbcd0c4d6 * Moved OpenMetaverse.StructuredData to a separate library
* Added experimental JSON serialization/deserialization to OSD using LitJSON (works, but subject to change soon)
* Moved packet handling code out of Simian.cs

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2361 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-18 03:16:38 +00:00
John Hurliman
f11dd21677 * Forced struct alignment to 4-bytes for openjpeg-dotnet on Windows
* Removed padding hack from openjpeg
* Added sanity check to Simian when copying texture data
* Ignore common unused login parameters in Simian

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2357 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-17 19:08:50 +00:00
John Hurliman
f6628a86e7 * Sanity checks in DoubleDictionary.Add()
* Added DoubleDictionary indexing operators
* ExtensionLoader now prints out compile errors for .cs files
* ExtensionLoader silently skips assemblies that fail to load instead of throwing an exception

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2351 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-14 20:10:41 +00:00
John Hurliman
99b3b74cd6 * More cleanup to acking and resending in libomv and Simian
* Fixed typo in Simian.ini that was disabling connection management
* Replaced several unnecessary foreach loops in Simian with dictionary lookups
* Simian now uses the last detected system IP address instead of the first

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2342 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-10 18:00:05 +00:00
John Hurliman
126ccc79bb * Added a List<string> extensionList param to ExtensionLoader.LoadAllExtensions() to only load whitelisted extensions (used in conjunction with .ini file support)
* Modified ExtensionLoader .ini support to allow values with no keys by default
* Added Simian .ini file config support
* Merged Simian's CoarseLocationUpdates extension into AvatarManager

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2328 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-06 23:41:07 +00:00
John Hurliman
61c8451fac * Allow HttpServer AddHandler() and RemoveHandler() while the server is running
* Simplified HttpServer calback exception handling
* Fixed a recently introduced typo in LLSD binary serialization
* Allow LLSD binary serialization to work with any Stream instead of only MemoryStream
* Improved Utils.HexStringToBytes(), changed function signature
* Added an efficient Utils.EnumTryParse<T>()

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2323 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-05 01:50:24 +00:00
John Hurliman
f53aee6fa8 Renaming LLSDParser to OSDParser since it will encompass more than just LLSD parsing in the future
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2322 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-30 16:54:17 +00:00
John Hurliman
bad3108ddf * Renamed LLSD to OSD. The LLSD-specific (de)serialization functions have been renamed to specify they use LLSD. Other serialization formats will be added in the future, along with better native support for vectors and unsigned integers
* Added Utils.SHA1()

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2321 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-30 01:50:59 +00:00
John Hurliman
dad28f767a * HttpRequestSignature uses regular expressions for the path now
* Added a simplified HttpListener.AddHandler() overload
* Lots of improvements in ExtensionLoader, simplified interface
* Updated Simian to latest ExtensionLoader

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2316 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-29 20:11:28 +00:00
8b2875f0d7 Simian: Fixed "bouncing" when jump button is held. A new jump is now started each time the avatar lands.
git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2297 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-12 16:17:45 +00:00
d68cc44214 Simian: Fixed link/unlink math by using Vector3.Transform
git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2296 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-12 14:49:23 +00:00