Fixed the problem of non-recoganized localID in PhysicsCollision -- if it is 0,

it means it's land collision, not errors.
dsg
Huaiyu (Kitty) Liu 2011-06-03 12:06:58 -07:00
parent 06d002cc3b
commit 8ab8969d82
2 changed files with 16 additions and 0 deletions

View File

@ -2188,6 +2188,14 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
OSD arg = collisionUUIDs[i];
UUID collidingUUID = arg.AsUUID();
//check if it's land collision first.
if (collidingUUID == UUID.Zero)
{
uint localID = 0;
e.addCollider(localID, new ContactPoint(Vector3.Zero, Vector3.UnitX, 0.03f));
continue;
}
SceneObjectPart collidingPart = m_scene.GetSceneObjectPart(collidingUUID);
if (collidingPart == null)
{

View File

@ -5308,6 +5308,14 @@ namespace OpenSim.Region.Framework.Scenes
OSDArray collisionUUIDs = new OSDArray();
foreach (uint collisionObject in collisionswith.Keys)
{
//check if it's land collision first
if (collisionObject == 0)
{
//land_collision, we'll use UUID.ZERO to indicate that
collisionUUIDs.Add(UUID.Zero);
continue;
}
SceneObjectPart part = m_parentGroup.Scene.GetSceneObjectPart(collisionObject);
if (part == null)
{