aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs39
1 files changed, 8 insertions, 31 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 90ad34e..a0e87d0 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -261,12 +261,9 @@ namespace OpenSim.Region.Framework.Scenes
261 } 261 }
262 protected SceneObjectPartInventory m_inventory; 262 protected SceneObjectPartInventory m_inventory;
263 263
264
265 public bool Undoing; 264 public bool Undoing;
266
267 265
268 public bool IgnoreUndoUpdate = false; 266 public bool IgnoreUndoUpdate = false;
269
270 267
271 private PrimFlags LocalFlags; 268 private PrimFlags LocalFlags;
272 269
@@ -1606,7 +1603,6 @@ namespace OpenSim.Region.Framework.Scenes
1606 RotationOffset, 1603 RotationOffset,
1607 RigidBody, 1604 RigidBody,
1608 m_localId); 1605 m_localId);
1609 PhysActor.SetMaterial(Material);
1610 } 1606 }
1611 catch 1607 catch
1612 { 1608 {
@@ -1618,6 +1614,7 @@ namespace OpenSim.Region.Framework.Scenes
1618 { 1614 {
1619 PhysActor.SOPName = this.Name; // save object name and desc into the PhysActor so ODE internals know the joint/body info 1615 PhysActor.SOPName = this.Name; // save object name and desc into the PhysActor so ODE internals know the joint/body info
1620 PhysActor.SOPDescription = this.Description; 1616 PhysActor.SOPDescription = this.Description;
1617 PhysActor.SetMaterial(Material);
1621 DoPhysicsPropertyUpdate(RigidBody, true); 1618 DoPhysicsPropertyUpdate(RigidBody, true);
1622 PhysActor.SetVolumeDetect(VolumeDetectActive ? 1 : 0); 1619 PhysActor.SetVolumeDetect(VolumeDetectActive ? 1 : 0);
1623 } 1620 }
@@ -2970,22 +2967,6 @@ namespace OpenSim.Region.Framework.Scenes
2970 } 2967 }
2971 } 2968 }
2972 2969
2973 public void ScriptSetPhantomStatus(bool Phantom)
2974 {
2975 if (m_parentGroup != null)
2976 {
2977 m_parentGroup.ScriptSetPhantomStatus(Phantom);
2978 }
2979 }
2980
2981 public void ScriptSetTemporaryStatus(bool Temporary)
2982 {
2983 if (m_parentGroup != null)
2984 {
2985 m_parentGroup.ScriptSetTemporaryStatus(Temporary);
2986 }
2987 }
2988
2989 public void ScriptSetPhysicsStatus(bool UsePhysics) 2970 public void ScriptSetPhysicsStatus(bool UsePhysics)
2990 { 2971 {
2991 if (m_parentGroup == null) 2972 if (m_parentGroup == null)
@@ -2994,15 +2975,6 @@ namespace OpenSim.Region.Framework.Scenes
2994 m_parentGroup.ScriptSetPhysicsStatus(UsePhysics); 2975 m_parentGroup.ScriptSetPhysicsStatus(UsePhysics);
2995 } 2976 }
2996 2977
2997 public void ScriptSetVolumeDetect(bool SetVD)
2998 {
2999
3000 if (m_parentGroup != null)
3001 {
3002 m_parentGroup.ScriptSetVolumeDetect(SetVD);
3003 }
3004 }
3005
3006 /// <summary> 2978 /// <summary>
3007 /// Set sculpt and mesh data, and tell the physics engine to process the change. 2979 /// Set sculpt and mesh data, and tell the physics engine to process the change.
3008 /// </summary> 2980 /// </summary>
@@ -4542,6 +4514,9 @@ namespace OpenSim.Region.Framework.Scenes
4542 { 4514 {
4543 RemFlag(PrimFlags.Phantom); 4515 RemFlag(PrimFlags.Phantom);
4544 4516
4517 if (ParentGroup.Scene == null)
4518 return;
4519
4545 PhysicsActor pa = PhysActor; 4520 PhysicsActor pa = PhysActor;
4546 4521
4547 if (pa == null) 4522 if (pa == null)
@@ -4555,11 +4530,11 @@ namespace OpenSim.Region.Framework.Scenes
4555 RotationOffset, 4530 RotationOffset,
4556 UsePhysics, 4531 UsePhysics,
4557 m_localId); 4532 m_localId);
4558 PhysActor.SetMaterial(Material);
4559 4533
4560 pa = PhysActor; 4534 pa = PhysActor;
4561 if (pa != null) 4535 if (pa != null)
4562 { 4536 {
4537 PhysActor.SetMaterial(Material);
4563 DoPhysicsPropertyUpdate(UsePhysics, true); 4538 DoPhysicsPropertyUpdate(UsePhysics, true);
4564 4539
4565 if (m_parentGroup != null) 4540 if (m_parentGroup != null)
@@ -4645,6 +4620,8 @@ namespace OpenSim.Region.Framework.Scenes
4645 4620
4646 ParentGroup.HasGroupChanged = true; 4621 ParentGroup.HasGroupChanged = true;
4647 ScheduleFullUpdate(); 4622 ScheduleFullUpdate();
4623
4624// m_log.DebugFormat("[SCENE OBJECT PART]: Updated PrimFlags on {0} {1} to {2}", Name, LocalId, Flags);
4648 } 4625 }
4649 4626
4650 public void UpdateRotation(Quaternion rot) 4627 public void UpdateRotation(Quaternion rot)
@@ -4864,7 +4841,7 @@ namespace OpenSim.Region.Framework.Scenes
4864 // m_parentGroup.Scene.EventManager.OnScriptTimerEvent -= handleTimerAccounting; 4841 // m_parentGroup.Scene.EventManager.OnScriptTimerEvent -= handleTimerAccounting;
4865 //} 4842 //}
4866 4843
4867 LocalFlags=(PrimFlags)objectflagupdate; 4844 LocalFlags = (PrimFlags)objectflagupdate;
4868 4845
4869 if (m_parentGroup != null && m_parentGroup.RootPart == this) 4846 if (m_parentGroup != null && m_parentGroup.RootPart == this)
4870 { 4847 {