Add a OS_NPC_LAND_AT_TARGET option to osMoveToTarget()

Default for this function is now not to automatically land.
This allows better control by scripts when an avatar is going to be landing on a prim rather than the ground.
Stopping the avatar involves faking a collision, to avoid the pid controller making it overshoot.
A better approach would be to gradually slow the avatar as we near the target
This commit is contained in:
Justin Clark-Casey (justincc)
2011-08-10 23:56:19 +01:00
parent fb92678b83
commit 7f499ff3f3
7 changed files with 45 additions and 18 deletions

View File

@@ -113,7 +113,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
Vector3 targetPos = startPos + new Vector3(0, 0, 10);
npcModule.MoveToTarget(npc.UUID, scene, targetPos, false);
npcModule.MoveToTarget(npc.UUID, scene, targetPos, false, false);
Assert.That(npc.AbsolutePosition, Is.EqualTo(startPos));
@@ -135,7 +135,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC.Tests
// Try a second movement
startPos = npc.AbsolutePosition;
targetPos = startPos + new Vector3(10, 0, 0);
npcModule.MoveToTarget(npc.UUID, scene, targetPos, false);
npcModule.MoveToTarget(npc.UUID, scene, targetPos, false, false);
scene.Update();