Fixed the problem of non-recoganized localID in PhysicsCollision -- if it is 0,
it means it's land collision, not errors.dsg
parent
06d002cc3b
commit
8ab8969d82
|
@ -2188,6 +2188,14 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
||||||
OSD arg = collisionUUIDs[i];
|
OSD arg = collisionUUIDs[i];
|
||||||
UUID collidingUUID = arg.AsUUID();
|
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);
|
SceneObjectPart collidingPart = m_scene.GetSceneObjectPart(collidingUUID);
|
||||||
if (collidingPart == null)
|
if (collidingPart == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5308,6 +5308,14 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
OSDArray collisionUUIDs = new OSDArray();
|
OSDArray collisionUUIDs = new OSDArray();
|
||||||
foreach (uint collisionObject in collisionswith.Keys)
|
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);
|
SceneObjectPart part = m_parentGroup.Scene.GetSceneObjectPart(collisionObject);
|
||||||
if (part == null)
|
if (part == null)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue