Merge branch 'master' into httptests
commit
68e9baf2e0
|
@ -803,12 +803,15 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
else
|
else
|
||||||
so = m_scene.GetSceneObjectGroup(localId);
|
so = m_scene.GetSceneObjectGroup(localId);
|
||||||
|
|
||||||
if (so!= null && !so.IsAttachment)
|
if (so!= null)
|
||||||
deletes.Add(so);
|
{
|
||||||
|
deletes.Add(so);
|
||||||
// if (deletes.Count == 0)
|
if(so.IsAttachment)
|
||||||
// m_console.OutputFormat("No objects were found with uuid {0}", match);
|
{
|
||||||
|
requireConfirmation = true;
|
||||||
|
m_console.OutputFormat("Warning: object with uuid {0} is a attachment", uuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "name":
|
case "name":
|
||||||
|
@ -904,11 +907,11 @@ namespace OpenSim.Region.CoreModules.World.Objects.Commands
|
||||||
if (useRegex)
|
if (useRegex)
|
||||||
{
|
{
|
||||||
Regex nameRegex = new Regex(name);
|
Regex nameRegex = new Regex(name);
|
||||||
searchAction = so => { if (nameRegex.IsMatch(so.Name)) { sceneObjects.Add(so); }};
|
searchAction = so => { if (nameRegex.IsMatch(so.Name)) {if(!so.IsAttachment) sceneObjects.Add(so);}};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
searchAction = so => { if (so.Name == name) { sceneObjects.Add(so); }};
|
searchAction = so => { if (so.Name == name) {if(!so.IsAttachment) sceneObjects.Add(so);}};
|
||||||
}
|
}
|
||||||
|
|
||||||
m_scene.ForEachSOG(searchAction);
|
m_scene.ForEachSOG(searchAction);
|
||||||
|
|
|
@ -306,14 +306,14 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
// If the touched prim handles touches, deliver it
|
// If the touched prim handles touches, deliver it
|
||||||
if ((part.ScriptEvents & scriptEvents.touch_start) != 0)
|
if ((part.ScriptEvents & scriptEvents.touch_start) != 0)
|
||||||
EventManager.TriggerObjectGrab(part.LocalId, 0, part.OffsetPosition, remoteClient, surfaceArg);
|
EventManager.TriggerObjectGrab(part.LocalId, 0, offsetPos, remoteClient, surfaceArg);
|
||||||
|
|
||||||
// Deliver to the root prim if the touched prim doesn't handle touches
|
// Deliver to the root prim if the touched prim doesn't handle touches
|
||||||
// or if we're meant to pass on touches anyway.
|
// or if we're meant to pass on touches anyway.
|
||||||
if (((part.ScriptEvents & scriptEvents.touch_start) == 0) ||
|
if (((part.ScriptEvents & scriptEvents.touch_start) == 0) ||
|
||||||
(part.PassTouches && (part.LocalId != obj.RootPart.LocalId)))
|
(part.PassTouches && (part.LocalId != obj.RootPart.LocalId)))
|
||||||
{
|
{
|
||||||
EventManager.TriggerObjectGrab(obj.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg);
|
EventManager.TriggerObjectGrab(obj.RootPart.LocalId, part.LocalId, offsetPos, remoteClient, surfaceArg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -343,15 +343,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (surfaceArgs != null && surfaceArgs.Count > 0)
|
if (surfaceArgs != null && surfaceArgs.Count > 0)
|
||||||
surfaceArg = surfaceArgs[0];
|
surfaceArg = surfaceArgs[0];
|
||||||
|
|
||||||
|
Vector3 grabOffset = pos - part.AbsolutePosition;
|
||||||
// If the touched prim handles touches, deliver it
|
// If the touched prim handles touches, deliver it
|
||||||
if ((part.ScriptEvents & scriptEvents.touch) != 0)
|
if ((part.ScriptEvents & scriptEvents.touch) != 0)
|
||||||
EventManager.TriggerObjectGrabbing(part.LocalId, 0, part.OffsetPosition, remoteClient, surfaceArg);
|
// EventManager.TriggerObjectGrabbing(part.LocalId, 0, part.OffsetPosition, remoteClient, surfaceArg);
|
||||||
|
EventManager.TriggerObjectGrabbing(part.LocalId, 0, grabOffset, remoteClient, surfaceArg);
|
||||||
// Deliver to the root prim if the touched prim doesn't handle touches
|
// Deliver to the root prim if the touched prim doesn't handle touches
|
||||||
// or if we're meant to pass on touches anyway.
|
// or if we're meant to pass on touches anyway.
|
||||||
if (((part.ScriptEvents & scriptEvents.touch) == 0) ||
|
if (((part.ScriptEvents & scriptEvents.touch) == 0) ||
|
||||||
(part.PassTouches && (part.LocalId != group.RootPart.LocalId)))
|
(part.PassTouches && (part.LocalId != group.RootPart.LocalId)))
|
||||||
{
|
{
|
||||||
EventManager.TriggerObjectGrabbing(group.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg);
|
// EventManager.TriggerObjectGrabbing(group.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg);
|
||||||
|
EventManager.TriggerObjectGrabbing(group.RootPart.LocalId, part.LocalId, grabOffset, remoteClient, surfaceArg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -460,13 +460,19 @@ public sealed class BSCharacter : BSPhysObject
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
DetailLog("{0},BSCharacter.setTargetVelocity,call,vel={1}", LocalID, value);
|
DetailLog("{0},BSCharacter.setTargetVelocity,call,vel={1}", LocalID, value);
|
||||||
base.m_targetVelocity = value;
|
|
||||||
OMV.Vector3 targetVel = value;
|
OMV.Vector3 targetVel = value;
|
||||||
if (_setAlwaysRun && !_flying)
|
if (!_flying)
|
||||||
targetVel *= new OMV.Vector3(BSParam.AvatarAlwaysRunFactor, BSParam.AvatarAlwaysRunFactor, 1f);
|
{
|
||||||
|
if (_setAlwaysRun)
|
||||||
|
targetVel *= new OMV.Vector3(BSParam.AvatarAlwaysRunFactor, BSParam.AvatarAlwaysRunFactor, 1f);
|
||||||
|
else
|
||||||
|
if (BSParam.AvatarWalkVelocityFactor != 1f)
|
||||||
|
targetVel *= new OMV.Vector3(BSParam.AvatarWalkVelocityFactor, BSParam.AvatarWalkVelocityFactor, 1f);
|
||||||
|
}
|
||||||
|
base.m_targetVelocity = targetVel;
|
||||||
|
|
||||||
if (m_moveActor != null)
|
if (m_moveActor != null)
|
||||||
m_moveActor.SetVelocityAndTarget(RawVelocity, targetVel, false /* inTaintTime */);
|
m_moveActor.SetVelocityAndTarget(RawVelocity, base.m_targetVelocity, false /* inTaintTime */);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Directly setting velocity means this is what the user really wants now.
|
// Directly setting velocity means this is what the user really wants now.
|
||||||
|
|
|
@ -135,6 +135,7 @@ public static class BSParam
|
||||||
public static bool AvatarToAvatarCollisionsByDefault { get; private set; }
|
public static bool AvatarToAvatarCollisionsByDefault { get; private set; }
|
||||||
public static float AvatarFriction { get; private set; }
|
public static float AvatarFriction { get; private set; }
|
||||||
public static float AvatarStandingFriction { get; private set; }
|
public static float AvatarStandingFriction { get; private set; }
|
||||||
|
public static float AvatarWalkVelocityFactor { get; private set; }
|
||||||
public static float AvatarAlwaysRunFactor { get; private set; }
|
public static float AvatarAlwaysRunFactor { get; private set; }
|
||||||
public static float AvatarDensity { get; private set; }
|
public static float AvatarDensity { get; private set; }
|
||||||
public static float AvatarRestitution { get; private set; }
|
public static float AvatarRestitution { get; private set; }
|
||||||
|
@ -604,6 +605,8 @@ public static class BSParam
|
||||||
0.2f ),
|
0.2f ),
|
||||||
new ParameterDefn<float>("AvatarStandingFriction", "Avatar friction when standing. Changed on avatar recreation.",
|
new ParameterDefn<float>("AvatarStandingFriction", "Avatar friction when standing. Changed on avatar recreation.",
|
||||||
0.95f ),
|
0.95f ),
|
||||||
|
new ParameterDefn<float>("AvatarWalkVelocityFactor", "Speed multiplier if avatar is walking",
|
||||||
|
1.0f ),
|
||||||
new ParameterDefn<float>("AvatarAlwaysRunFactor", "Speed multiplier if avatar is set to always run",
|
new ParameterDefn<float>("AvatarAlwaysRunFactor", "Speed multiplier if avatar is set to always run",
|
||||||
1.3f ),
|
1.3f ),
|
||||||
// For historical reasons, density is reported * 100
|
// For historical reasons, density is reported * 100
|
||||||
|
|
Loading…
Reference in New Issue