Commit Graph

156 Commits

Author SHA1 Message Date
Teravus Ovares
ae9a98ceb1 * Added proper handling of llSetStatus(STATUS_PHYSICS,BOOL) 2008-03-14 06:20:50 +00:00
Teravus Ovares
abacfba287 * Preliminary work with the ODEPlugin to collect collision data. 2008-03-14 05:22:52 +00:00
Justin Clarke Casey
67a59b62e3 * Very minor comment change to reflect the fact that eliminating spurious delink prim updates is low priority 2008-03-13 12:35:59 +00:00
Justin Clarke Casey
a4304fb9e6 * Fix Mantis 761 (linking and delinking prims rapidly caused prims to 'disappear')
* Root cause was that if two updates occurred in the same second of time, the second one was never sent
* Linking/delinking appears to be okay now
2008-03-13 00:22:38 +00:00
Justin Clarke Casey
bbb9a21eb5 * Fix mantis 757.
* DelinkFromGroup was removing the parts from the delinked group, which later upset the update thread when it tried to do a queued update for that object
* Temporary fix is to stop deleting the parts, though it would be good later to stop sending out the now spurious updates
* This fix actually reveals another bug, where rapid linking and delinking will cause the non root prims to disappear (though they're actually still there if you relog).  This is the next bug to tackle.
2008-03-12 18:59:50 +00:00
Sean Dague
4ea52b2105 Change SceneObjectPart.LocalID to .LocalId to be case matching
with SceneObjectGroup.LocalId (and hence reduce confusion).
2008-03-05 18:57:13 +00:00
Sean Dague
92e54bdd17 this is probably just a band aid, but should at least
help figure out where my last crash came from by being
extra careful arround Add for scene object group.
2008-03-04 18:49:44 +00:00
Charles Krinke
7794fc3766 Change handler001 through handler009 to more
appropriate names consisten with their use.
All done with all 94 handlers from handler001
through handler094. Hopefully we can move 
forward without numbered handlers.
2008-03-02 22:28:48 +00:00
Teravus Ovares
0a5c48b1c8 * This is a very icky implementation of physical linkset prim using fixed joints. This will change quite drastically, however it's fun to play with.
* To play with this you must link your prim before setting it physical, otherwise they won't link in the physics engine properly.  This will also be fixed.
* Currently the linked prim are extremely unstable because I have yet to implement combining of forces with the same normal. This will also be fixed.   In fact, the whole PhysicsActor, ODEPrim relationship will be reworked to consider groups from the get-go.
* This implementation is better then it crashing your sim, so I'm commiting it for now.
2008-03-02 09:31:39 +00:00
Teravus Ovares
27508c1ad8 * Added Support within the ODEPlugin for Selected. Which means that;
* When you select a physical prim, it stops while you've got it selected.
* When you move or alter a prim in some manner, it doesn't become collidable until you de-select it
* When you select a prim, it doesn't become temporarily 'phantom' until you make some change to it while it's selected. (this prevents accidental selections in prim floor from causing it to go phantom on you(but don't move it or you'll fall))
* There's one major difference, and that's a physical object won't stop if you don't have permission to edit it.  This prevents people who don't have edit permissions on a prim from stopping it while it's moving.
2008-02-23 11:42:55 +00:00
Teravus Ovares
582964800c * Moved all events except gridcomms and regioncomms over to Event Delegate instances to prevent event race conditions 2008-02-22 19:44:46 +00:00
Jeff Ames
a8cfbbe963 Minor cleanup. 2008-02-20 18:38:20 +00:00
lbsa71
9be5f9d6cc * Fixed xml loading bug (the xml was scheduled for update before added to a scene)
* Fixed ClickAction situation on the same note (properties shouldn't cause big changes)
* Added some more debug output to AssetCache
2008-02-20 09:38:45 +00:00
Teravus Ovares
932a132116 * Made a quickupdate method to run through only entities that have scheduled themselves for updates looking for changes. This runs 10 times a second.
* Set the massively slow UpdateEntities method to run every 2 seconds instead of 10 times a second.  This method runs through *all* of the entities can calls the virtual update().  
* Documented some of the code in the scene.Update method.
2008-02-20 00:08:04 +00:00
Teravus Ovares
be6edefcfb * ODE Stability update 4 :D
* Changed the way meshing requests get sent to the ODEPlugin
* Numerous other fixes
2008-02-15 21:35:52 +00:00
Adam Frisby
f3afa68a2a * Made new Framework.Constants class, added RegionSize member.
* Converted all instances of "256" spotted to use RegionSize instead. Some approximations used for border crossings (ie 255.9f) are still using that value, but should be updated to use something based on RegionSize.
* Moving Terrain to a RegionModule, implemented ITerrainChannel and TerrainModule - nonfunctional, but will be soon.
2008-02-14 12:16:33 +00:00
Justin Clarke Casey
3624efde85 * Make code fix to address prim rotation unlink issues (mantis 383, 454. 369)
* Many thanks to alex_carnell for the necessary information for this
2008-02-13 14:45:32 +00:00
Teravus Ovares
e5ede36f0c * Physical prim cross borders and continue from where the left off on the other side now, assuming the region on the other side has physical prim enabled. 2008-02-12 07:32:32 +00:00
Teravus Ovares
6e01769bcf * A bunch of updates to make things more smooth.
** Sending the actual TimeDilation to the client now instead of the 62455 constant.  The client is *supposed* to use that value to sync with the simulator.    (actually sending ushort.maxvalue * TimeDilation)
** Disabling prim that inter-penetrate instead of just not attaching a joint
** Reduced prim spin a 'little' bit, but not *enough* 
** Tweaked the TimeDilation algorithm to be closer to 1.0 by default and various changes to the sim stats reporter 
** Created a .SetValues method to PhysicsVector so we can simply call the setvalues function instead of .x, .y, .z sets.
** Experimented with a .GetBytes Method on PhysicsActor to be able to use the LLVector3.FromBytes() method.   
** Upped the Inter-penetration depth to 0.25 instead of .08.
2008-02-12 04:27:20 +00:00
Teravus Ovares
c926962862 * This resolves the null exceptions when a script is manipulating a physical object in ODE and you delete the object. The script is still running and trying to add force, but the object reference is null. 2008-02-12 00:01:55 +00:00
lbsa71
e399141dfb * Added some connection debugging 2008-02-11 14:09:35 +00:00
lbsa71
c927928245 * some refactoring on permissions
* temporary re-introduced the weird 'flip-back' behaviour, but debugging it; will remove it if I don't find anything.
2008-02-11 13:26:55 +00:00
Teravus Ovares
e6453d9b9d * Changed child_get_tasks to see_into_this_sim_from_neighbor.
* Turned on see_into_this_sim_from_neighbor by default.
* Fix Race Condition with parts being added to a group while the simulator is starting up.
2008-02-11 05:19:54 +00:00
Teravus Ovares
a56664cf59 * um, Prim crossings? Experimental.
* Backup your database just in case.
2008-02-11 01:43:54 +00:00
Teravus Ovares
38f0615ffe * This updates adds locking capability. Thanks, lbsa71 for pointing out my bitmasking error of the objectflags! It's still a little bit wonky when you check the checkbox, however it 'takes' and doesn't break anything. 2008-02-10 21:27:32 +00:00
Teravus Ovares
b4a19a4fb4 * Added support for delinking individual prim from a linkset. 2008-02-10 18:56:34 +00:00
Teravus Ovares
85a9834ed8 * A lot of ugly permissions updates.
** Created SendFullUpdateToAllClientsExcept(LLUUID) so that permission updates /appear/ to apply immediately
** Separated out the ObjectFlags and the Permission Flags.  They're related but not the same
** Added a hack routine to add *back* the objectflags to the client flags because the client hates the way we're doing object permissions
** Updated the clientflags routine to properly tell the client when they can't edit admin objects (objects owned by the sim administrator) even when they're an estate manager(why? >.<  argh!)
** Fixed a null sim administrator/estate manager/user from causing permissions to return false even when it should return true.
** Re-added ObjectModify hack to allow collaboration with the allow anyone to move checkbox until we get group permissions done.
2008-02-10 10:55:57 +00:00
Jeff Ames
e207284fef Clean up logging calls using String.Format explicitly 2008-02-10 01:57:59 +00:00
Justin Clarke Casey
e6cd420f19 refactor - remove unused m_children from EntityBase 2008-02-08 20:11:45 +00:00
Teravus Ovares
9cd9e90e7f * Added Active Scripts to report the number of scripts running to Sim Stats
* Added Script Performance to report the number of functions run per second to Sim Stats.
* Removed a few warnings (@.@ up to 50 now)
2008-02-06 08:03:22 +00:00
Jeff Ames
6ed5283bc0 Converted logging to use log4net.
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
2008-02-05 19:44:27 +00:00
Teravus Ovares
c4687116ad * Implemented grab and throw in ODE. It's a little strong still so toss gently at first to test the waters or you'll lose prim to the pit at the edge of the sim. Make sure the object is physical before trying to toss it or it'll just move to the new location. 2008-01-29 15:10:18 +00:00
lbsa71
8d0364e228 * changed nonsensical PermissionMask and ObjectFlags mixup; if this causes perms weirdness, let's all work together to find the real cause. 2008-01-22 15:07:30 +00:00
Justin Clarke Casey
504ae63669 * Make object persistence more granular by separating prim and prim inventory persistence 2008-01-21 15:06:49 +00:00
Justin Clarke Casey
8df4774830 On reflection, HasGroupChanged is more appropriate 2008-01-18 18:57:28 +00:00
Justin Clarke Casey
be50fa76ee Change SOP.HasChanged to HasPrimChanged in preparation for further changes 2008-01-18 18:43:16 +00:00
Teravus Ovares
18c959df12 * Added llApplyImpulse in the global frame. The object must be physical before this'll do anything. Be careful with this function as it's easy to loose prim. 2008-01-17 14:59:05 +00:00
lbsa71
344b4d92f5 * added ForEachPart helper
* added SetOwnerId that... sets.. OwnerId... on all parts.
2008-01-17 09:32:02 +00:00
Justin Clarke Casey
b33da2538e * Fix mantis 345 - it is now possible to duplicate prims directly in the region again without breakage
* This includes their inventories
* Also, this revision properly synchronizes prim inventory crud.
2008-01-16 20:27:12 +00:00
Justin Clarke Casey
57519b6dba * Store task inventory when an object is taken into agent inventory
* This means that you can take an object from a region and rez it somewhere else, with its inventory intact.
* As for earlier, at this stage only scripts can be placed in inventory
* This isn't an efficient implementation, a better one will probably need to come along soonish
2008-01-16 18:35:34 +00:00
Teravus Ovares
492e72b21a * Delinking doesn't leave invisible physical objects behind anymore 2008-01-15 04:27:02 +00:00
Teravus Ovares
45e945616b * Pass 2 of collidable (non physical) linksets
* Linkset status is now persistent
* Tweaked a physics child prim positioning hack to generate less database saves
* Re-factored physics object creation calls into ApplyPhysics.  To create a new physics representation of an object or linkset, it's only necessary to call *group*.ApplyPhysics(bool m_physicalPrim).  *lbsa has been waiting for this refactoring*
* We have collidable linksets now. (they don't become phantom anymore)
2008-01-15 04:14:27 +00:00
Adam Frisby
b25f9f322c * Mother of all commits:
* Cleaned up copyright notices in AssemblyInfo.cs's
* Added Copyright headers to a bunch of files missing them
* Replaced several common string instances with a static constant to prevent reallocation of the same strings thousands of times. "" -> String.Empty is the first such candidate.
2008-01-15 02:09:55 +00:00
Teravus Ovares
a522d7844b * First pass at collidable linksets
* There will be bugs, you can count on that. To avoid them, set the linksets phantom
* After region restart, the linksets restore in a non collidable state.
* Linksets can but shouldn't be made physical with the physical checkbox or when you unlink them, they tend to explode.
* After creating a linkset, you have to move the linkset or set it phantom and not phantom for it to become collidable.   
* There's a few ParentGroup references that need to be refactored.
2008-01-14 18:29:04 +00:00
Justin Clarke Casey
c9ad862aab Remove unused SOG constructor 2008-01-14 15:46:42 +00:00
Justin Clarke Casey
b0904f471d Fix r2959 - last letter was being sliced off region prim renames 2008-01-10 01:39:49 +00:00
Justin Clarke Casey
796ae57bea Prim inventory script saving phase 2.
* It is now possible to edit and save scripts directly from prim inventories
* On saving, the script will be restarted in the region
* Doesn't appear that it's yet possible to drag inventory contents back to agent inventory.  Not quite sure why this is yet - the perms all look very permissive.
2008-01-09 15:46:45 +00:00
Justin Clarke Casey
286802558e Factor out inventory code in SceneObjectGroup into seperate class.
As was true for the previous update, this might require nant users to re-run prebuild.[sh|bat]
2008-01-06 22:55:45 +00:00
Justin Clarke Casey
679923ec87 Factor out TaskInventoryItem 2008-01-06 01:56:29 +00:00
Justin Clarke Casey
7cedb09869 Prim inventory phase 4. Properly recover the prim folder ID from storage. Scripts now show up in prim inventories after region restart.
Probably doesn't yet work for any items other than scripts.
Still some work to do.  No user functionality exposed.  Not yet user tieable into normal code.
2008-01-06 01:16:06 +00:00