本文整理匯總了C#中OpenSim.Region.Framework.Scenes.ScenePresence.HandleAgentRequestSit方法的典型用法代碼示例。如果您正苦於以下問題:C# ScenePresence.HandleAgentRequestSit方法的具體用法?C# ScenePresence.HandleAgentRequestSit怎麽用?C# ScenePresence.HandleAgentRequestSit使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類OpenSim.Region.Framework.Scenes.ScenePresence
的用法示例。
在下文中一共展示了ScenePresence.HandleAgentRequestSit方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: SetPropertyValue
private void SetPropertyValue(ScenePresence sp, SyncableProperties.Type property, SyncedProperty pSyncInfo)
{
if (sp == null || pSyncInfo == null) return;
Object pValue = pSyncInfo.LastUpdateValue;
switch (property)
{
case SyncableProperties.Type.LocalId:
sp.LocalId = (uint)pValue;
break;
case SyncableProperties.Type.AbsolutePosition:
sp.AbsolutePosition = (Vector3)pValue;
break;
case SyncableProperties.Type.AgentCircuitData:
DebugLog.WarnFormat("{0}: Received updated AgentCircuitData. Not implemented", LogHeader);
break;
case SyncableProperties.Type.ParentId:
uint localID = (uint)pValue;
if (localID == 0)
{
// DebugLog.DebugFormat("{0}: SetPropertyValue:ParentID. Standup. Input={1}", LogHeader, localID); // DEBUG DEBUG
sp.StandUp();
}
else
{
SceneObjectPart parentPart = Scene.GetSceneObjectPart(localID);
if (parentPart != null) // TODO ??
{
sp.HandleAgentRequestSit(sp.ControllingClient, sp.ControllingClient.AgentId, parentPart.UUID, Vector3.Zero);
// DebugLog.DebugFormat("{0}: SetPropertyValue:ParentID. SitRequest. Input={1},sp={2},newParentID={3}",
// LogHeader, localID, (string)(sp == null ? "NULL" : sp.Name), sp.ParentID); // DEBUG DEBUG
}
}
//sp.ParentID = (uint)pValue;
break;
case SyncableProperties.Type.AgentControlFlags:
sp.AgentControlFlags = (uint)pValue;
break;
case SyncableProperties.Type.AllowMovement:
sp.AllowMovement = (bool)pValue;
break;
case SyncableProperties.Type.AvatarAppearance:
sp.Appearance.Unpack((OSDMap)pValue);
sp.SendAppearanceToAllOtherAgents();
DebugLog.DebugFormat("{0} Received updated AvatarAppearance for uuid {1}.", LogHeader, sp.UUID);
break;
case SyncableProperties.Type.Animations:
UpdateAvatarAnimations(sp, (OSDArray)pValue);
break;
case SyncableProperties.Type.Rotation:
sp.Rotation = (Quaternion)pValue;
break;
case SyncableProperties.Type.PA_Velocity:
if (sp.PhysicsActor != null)
sp.PhysicsActor.Velocity = (Vector3)pValue;
break;
case SyncableProperties.Type.RealRegion:
////// NOP //////
break;
case SyncableProperties.Type.PA_TargetVelocity:
if(sp.PhysicsActor != null)
sp.PhysicsActor.TargetVelocity = (Vector3)pValue;
break;
case SyncableProperties.Type.Flying:
sp.Flying = (bool)pValue;
break;
case SyncableProperties.Type.PresenceType:
DebugLog.WarnFormat("{0} Received updated PresenceType for uuid {1}. Not implemented", LogHeader, sp.UUID);
break;
case SyncableProperties.Type.IsColliding:
if(sp.PhysicsActor != null)
sp.IsColliding = (bool)pValue;
break;
}
// When presence values are changed, we tell the simulator with an event
GenerateAgentUpdated(sp);
}