Thank you kindly, MPallari for a patch that:
This patch adds few properties to ScenePresence and thus allows region module or MRM script: 1. Force flying for avatar or, 2. Disable flying from avatar0.6.5-rc1
parent
13f5dd5f35
commit
6bd8e1eb99
|
@ -121,6 +121,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
private bool m_allowFalling = false;
|
private bool m_allowFalling = false;
|
||||||
private bool m_useFlySlow = false;
|
private bool m_useFlySlow = false;
|
||||||
private bool m_usePreJump = false;
|
private bool m_usePreJump = false;
|
||||||
|
private bool m_forceFly = false;
|
||||||
|
private bool m_flyDisabled = false;
|
||||||
|
|
||||||
private float m_speedModifier = 1.0f;
|
private float m_speedModifier = 1.0f;
|
||||||
|
|
||||||
|
@ -571,6 +573,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
set { m_speedModifier = value; }
|
set { m_speedModifier = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool ForceFly
|
||||||
|
{
|
||||||
|
get { return m_forceFly; }
|
||||||
|
set { m_forceFly = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool FlyDisabled
|
||||||
|
{
|
||||||
|
get { return m_flyDisabled; }
|
||||||
|
set { m_flyDisabled = value; }
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Constructor(s)
|
#region Constructor(s)
|
||||||
|
@ -880,6 +894,16 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
AbsolutePosition = pos;
|
AbsolutePosition = pos;
|
||||||
|
|
||||||
AddToPhysicalScene(isFlying);
|
AddToPhysicalScene(isFlying);
|
||||||
|
|
||||||
|
if (m_forceFly)
|
||||||
|
{
|
||||||
|
m_physicsActor.Flying = true;
|
||||||
|
}
|
||||||
|
else if (m_flyDisabled)
|
||||||
|
{
|
||||||
|
m_physicsActor.Flying = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_appearance != null)
|
if (m_appearance != null)
|
||||||
{
|
{
|
||||||
if (m_appearance.AvatarHeight > 0)
|
if (m_appearance.AvatarHeight > 0)
|
||||||
|
@ -1223,6 +1247,11 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
bool oldflying = PhysicsActor.Flying;
|
bool oldflying = PhysicsActor.Flying;
|
||||||
|
|
||||||
|
if (m_forceFly)
|
||||||
|
PhysicsActor.Flying = true;
|
||||||
|
else if (m_flyDisabled)
|
||||||
|
PhysicsActor.Flying = false;
|
||||||
|
else
|
||||||
PhysicsActor.Flying = ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
|
PhysicsActor.Flying = ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0);
|
||||||
|
|
||||||
if (PhysicsActor.Flying != oldflying)
|
if (PhysicsActor.Flying != oldflying)
|
||||||
|
@ -1380,7 +1409,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// with something with the down arrow pressed.
|
// with something with the down arrow pressed.
|
||||||
|
|
||||||
// Only do this if we're flying
|
// Only do this if we're flying
|
||||||
if (m_physicsActor != null && m_physicsActor.Flying)
|
if (m_physicsActor != null && m_physicsActor.Flying && !m_forceFly)
|
||||||
{
|
{
|
||||||
// Are the landing controls requirements filled?
|
// Are the landing controls requirements filled?
|
||||||
bool controlland = (((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) ||
|
bool controlland = (((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) ||
|
||||||
|
|
Loading…
Reference in New Issue