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];
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue