Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim
commit
e4fad4a09d
|
@ -856,6 +856,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin
|
|||
// The movement computed in the linear motor is relative to the vehicle
|
||||
// coordinates. Rotate the movement to world coordinates.
|
||||
linearMotorContribution *= VehicleOrientation;
|
||||
// All the contributions after this are world relative (mostly Z modifications)
|
||||
|
||||
// ==================================================================
|
||||
// Buoyancy: force to overcome gravity.
|
||||
|
@ -982,14 +983,11 @@ namespace OpenSim.Region.Physics.BulletSPlugin
|
|||
float verticalCorrectionVelocity = verticalError / m_VhoverTimescale;
|
||||
|
||||
// TODO: implement m_VhoverEfficiency correctly
|
||||
if (Math.Abs(verticalError) > m_VhoverEfficiency)
|
||||
{
|
||||
ret = new Vector3(0f, 0f, verticalCorrectionVelocity);
|
||||
}
|
||||
ret = new Vector3(0f, 0f, verticalCorrectionVelocity);
|
||||
}
|
||||
|
||||
VDetailLog("{0}, MoveLinear,hover,pos={1},ret={2},hoverTS={3},height={4},target={5}",
|
||||
Prim.LocalID, VehiclePosition, ret, m_VhoverTimescale, m_VhoverHeight, m_VhoverTargetHeight);
|
||||
VDetailLog("{0}, MoveLinear,hover,pos={1},eff={2},hoverTS={3},height={4},target={5},ret={6}",
|
||||
Prim.LocalID, VehiclePosition, m_VhoverEfficiency, m_VhoverTimescale, m_VhoverHeight, m_VhoverTargetHeight, ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -1238,6 +1236,9 @@ namespace OpenSim.Region.Physics.BulletSPlugin
|
|||
Vector3 movingDirection = VehicleVelocity;
|
||||
movingDirection.Normalize();
|
||||
|
||||
// If the vehicle is going backward, it is still pointing forward
|
||||
movingDirection *= Math.Sign(VehicleForwardSpeed);
|
||||
|
||||
// The direction the vehicle is pointing
|
||||
Vector3 pointingDirection = Vector3.UnitX * VehicleOrientation;
|
||||
pointingDirection.Normalize();
|
||||
|
@ -1246,6 +1247,9 @@ namespace OpenSim.Region.Physics.BulletSPlugin
|
|||
Vector3 deflectionError = movingDirection - pointingDirection;
|
||||
|
||||
// Don't try to correct very large errors (not our job)
|
||||
// if (Math.Abs(deflectionError.X) > PIOverFour) deflectionError.X = PIOverTwo * Math.Sign(deflectionError.X);
|
||||
// if (Math.Abs(deflectionError.Y) > PIOverFour) deflectionError.Y = PIOverTwo * Math.Sign(deflectionError.Y);
|
||||
// if (Math.Abs(deflectionError.Z) > PIOverFour) deflectionError.Z = PIOverTwo * Math.Sign(deflectionError.Z);
|
||||
if (Math.Abs(deflectionError.X) > PIOverFour) deflectionError.X = 0f;
|
||||
if (Math.Abs(deflectionError.Y) > PIOverFour) deflectionError.Y = 0f;
|
||||
if (Math.Abs(deflectionError.Z) > PIOverFour) deflectionError.Z = 0f;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
CURRENT PRIORITIES
|
||||
=================================================
|
||||
Avatars walking up stairs
|
||||
Avatars walking up stairs (HALF DONE)
|
||||
Vehicle movement on terrain smoothness
|
||||
limitMotorUp calibration (more down?)
|
||||
Preferred orientatino angular correction fix
|
||||
Preferred orientation angular correction fix
|
||||
Surfboard go wonky when turning
|
||||
Angular motor direction is global coordinates rather than local coordinates?
|
||||
Boats float low in the water
|
||||
|
|
|
@ -324,44 +324,44 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
HandleShowStatus);
|
||||
|
||||
MainConsole.Instance.Commands.AddCommand(
|
||||
"Scripts", false, "scripts show", "scripts show [<script-item-uuid>]", "Show script information",
|
||||
"Scripts", false, "scripts show", "scripts show [<script-item-uuid>+]", "Show script information",
|
||||
"Show information on all scripts known to the script engine.\n"
|
||||
+ "If a <script-item-uuid> is given then only information on that script will be shown.",
|
||||
+ "If one or more <script-item-uuid>s are given then only information on that script will be shown.",
|
||||
HandleShowScripts);
|
||||
|
||||
MainConsole.Instance.Commands.AddCommand(
|
||||
"Scripts", false, "show scripts", "show scripts [<script-item-uuid>]", "Show script information",
|
||||
"Scripts", false, "show scripts", "show scripts [<script-item-uuid>+]", "Show script information",
|
||||
"Synonym for scripts show command", HandleShowScripts);
|
||||
|
||||
MainConsole.Instance.Commands.AddCommand(
|
||||
"Scripts", false, "scripts suspend", "scripts suspend [<script-item-uuid>]", "Suspends all running scripts",
|
||||
"Scripts", false, "scripts suspend", "scripts suspend [<script-item-uuid>+]", "Suspends all running scripts",
|
||||
"Suspends all currently running scripts. This only suspends event delivery, it will not suspend a"
|
||||
+ " script that is currently processing an event.\n"
|
||||
+ "Suspended scripts will continue to accumulate events but won't process them.\n"
|
||||
+ "If a <script-item-uuid> is given then only that script will be suspended. Otherwise, all suitable scripts are suspended.",
|
||||
+ "If one or more <script-item-uuid>s are given then only that script will be suspended. Otherwise, all suitable scripts are suspended.",
|
||||
(module, cmdparams) => HandleScriptsAction(cmdparams, HandleSuspendScript));
|
||||
|
||||
MainConsole.Instance.Commands.AddCommand(
|
||||
"Scripts", false, "scripts resume", "scripts resume [<script-item-uuid>]", "Resumes all suspended scripts",
|
||||
"Scripts", false, "scripts resume", "scripts resume [<script-item-uuid>+]", "Resumes all suspended scripts",
|
||||
"Resumes all currently suspended scripts.\n"
|
||||
+ "Resumed scripts will process all events accumulated whilst suspended.\n"
|
||||
+ "If a <script-item-uuid> is given then only that script will be resumed. Otherwise, all suitable scripts are resumed.",
|
||||
+ "If one or more <script-item-uuid>s are given then only that script will be resumed. Otherwise, all suitable scripts are resumed.",
|
||||
(module, cmdparams) => HandleScriptsAction(cmdparams, HandleResumeScript));
|
||||
|
||||
MainConsole.Instance.Commands.AddCommand(
|
||||
"Scripts", false, "scripts stop", "scripts stop [<script-item-uuid>]", "Stops all running scripts",
|
||||
"Scripts", false, "scripts stop", "scripts stop [<script-item-uuid>+]", "Stops all running scripts",
|
||||
"Stops all running scripts.\n"
|
||||
+ "If a <script-item-uuid> is given then only that script will be stopped. Otherwise, all suitable scripts are stopped.",
|
||||
+ "If one or more <script-item-uuid>s are given then only that script will be stopped. Otherwise, all suitable scripts are stopped.",
|
||||
(module, cmdparams) => HandleScriptsAction(cmdparams, HandleStopScript));
|
||||
|
||||
MainConsole.Instance.Commands.AddCommand(
|
||||
"Scripts", false, "scripts start", "scripts start [<script-item-uuid>]", "Starts all stopped scripts",
|
||||
"Scripts", false, "scripts start", "scripts start [<script-item-uuid>+]", "Starts all stopped scripts",
|
||||
"Starts all stopped scripts.\n"
|
||||
+ "If a <script-item-uuid> is given then only that script will be started. Otherwise, all suitable scripts are started.",
|
||||
+ "If one or more <script-item-uuid>s are given then only that script will be started. Otherwise, all suitable scripts are started.",
|
||||
(module, cmdparams) => HandleScriptsAction(cmdparams, HandleStartScript));
|
||||
|
||||
MainConsole.Instance.Commands.AddCommand(
|
||||
"Scripts", false, "debug script log", "debug scripts log <item-id> <log-level>", "Extra debug logging for a script",
|
||||
"Scripts", false, "debug scripts log", "debug scripts log <item-id> <log-level>", "Extra debug logging for a script",
|
||||
"Activates or deactivates extra debug logging for the given script.\n"
|
||||
+ "Level == 0, deactivate extra debug logging.\n"
|
||||
+ "Level >= 1, log state changes.\n"
|
||||
|
@ -478,29 +478,31 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
|||
return;
|
||||
}
|
||||
|
||||
rawItemId = cmdparams[2];
|
||||
|
||||
if (!UUID.TryParse(rawItemId, out itemId))
|
||||
for (int i = 2; i < cmdparams.Length; i++)
|
||||
{
|
||||
MainConsole.Instance.OutputFormat("ERROR: {0} is not a valid UUID", rawItemId);
|
||||
return;
|
||||
}
|
||||
|
||||
if (itemId != UUID.Zero)
|
||||
{
|
||||
IScriptInstance instance = GetInstance(itemId);
|
||||
if (instance == null)
|
||||
rawItemId = cmdparams[i];
|
||||
|
||||
if (!UUID.TryParse(rawItemId, out itemId))
|
||||
{
|
||||
// Commented out for now since this will cause false reports on simulators with more than
|
||||
// one scene where the current command line set region is 'root' (which causes commands to
|
||||
// go to both regions... (sigh)
|
||||
// MainConsole.Instance.OutputFormat("Error - No item found with id {0}", itemId);
|
||||
return;
|
||||
MainConsole.Instance.OutputFormat("ERROR: {0} is not a valid UUID", rawItemId);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
|
||||
if (itemId != UUID.Zero)
|
||||
{
|
||||
action(instance);
|
||||
return;
|
||||
IScriptInstance instance = GetInstance(itemId);
|
||||
if (instance == null)
|
||||
{
|
||||
// Commented out for now since this will cause false reports on simulators with more than
|
||||
// one scene where the current command line set region is 'root' (which causes commands to
|
||||
// go to both regions... (sigh)
|
||||
// MainConsole.Instance.OutputFormat("Error - No item found with id {0}", itemId);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
action(instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue