As with prim sitting avatars, make an avatar phantom when it sits on the ground and solid again when it stands.
This is to avoid http://opensimulator.org/mantis/view.php?id=5783 when a collision with a ground sitting avatar causes that avatar to automatically stand and sometimes not be able to move A better solution may be to keep gound sitting avatars solid but remove their collision status. However, this requires some physics code work.0.7.2-post-fixes
							parent
							
								
									3c9654d5d6
								
							
						
					
					
						commit
						b527901556
					
				|  | @ -1351,6 +1351,7 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|                 // to use.  Or we could add a m_isSitting variable. |                 // to use.  Or we could add a m_isSitting variable. | ||||||
|                 //Animator.TrySetMovementAnimation("SIT_GROUND_CONSTRAINED"); |                 //Animator.TrySetMovementAnimation("SIT_GROUND_CONSTRAINED"); | ||||||
|                 SitGround = true; |                 SitGround = true; | ||||||
|  |                 RemoveFromPhysicalScene(); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             // In the future, these values might need to go global. |             // In the future, these values might need to go global. | ||||||
|  | @ -1811,12 +1812,16 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         public void StandUp() |         public void StandUp() | ||||||
|         { |         { | ||||||
|  | //            m_log.DebugFormat("[SCENE PRESENCE]: StandUp() for {0}", Name); | ||||||
|  | 
 | ||||||
|             SitGround = false; |             SitGround = false; | ||||||
|  |             if (PhysicsActor == null) | ||||||
|  |                 AddToPhysicalScene(false); | ||||||
| 
 | 
 | ||||||
|             if (m_parentID != 0) |             if (m_parentID != 0) | ||||||
|             { |             { | ||||||
|                 m_log.Debug("StandupCode Executed"); |                 SceneObjectPart part = m_scene.GetSceneObjectPart(ParentID); | ||||||
|                 SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); | 
 | ||||||
|                 if (part != null) |                 if (part != null) | ||||||
|                 { |                 { | ||||||
|                     TaskInventoryDictionary taskIDict = part.TaskInventory; |                     TaskInventoryDictionary taskIDict = part.TaskInventory; | ||||||
|  | @ -1844,13 +1849,8 @@ namespace OpenSim.Region.Framework.Scenes | ||||||
|                     ControllingClient.SendClearFollowCamProperties(part.ParentUUID); |                     ControllingClient.SendClearFollowCamProperties(part.ParentUUID); | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 if (m_physicsActor == null) |                 m_pos += ParentPosition + new Vector3(0.0f, 0.0f, 2.0f * m_sitAvatarHeight); | ||||||
|                 { |                 ParentPosition = Vector3.Zero; | ||||||
|                     AddToPhysicalScene(false); |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 m_pos += m_parentPosition + new Vector3(0.0f, 0.0f, 2.0f*m_sitAvatarHeight); |  | ||||||
|                 m_parentPosition = Vector3.Zero; |  | ||||||
| 
 | 
 | ||||||
|                 m_parentID = 0; |                 m_parentID = 0; | ||||||
|                 SendAvatarDataToAllAgents(); |                 SendAvatarDataToAllAgents(); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Justin Clark-Casey (justincc)
						Justin Clark-Casey (justincc)