diff --git a/OpenSim/Framework/ConfigSettings.cs b/OpenSim/Framework/ConfigSettings.cs index b0bdebe7fc..6ee7feeaa3 100644 --- a/OpenSim/Framework/ConfigSettings.cs +++ b/OpenSim/Framework/ConfigSettings.cs @@ -34,7 +34,13 @@ namespace OpenSim.Framework public bool See_into_region_from_neighbor { get; set; } public string StorageDll { get; set; } public string ClientstackDll { get; set; } + + /// + /// Controls whether physics can be applied to prims. Even if false, prims still have entries in a + /// PhysicsScene in order to perform collision detection + /// public bool PhysicalPrim { get; set; } + public string LibrariesXMLFile { get; set; } public const uint DefaultRegionHttpPort = 9000; diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index dbd599e930..5abf9ddcb1 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -1603,7 +1603,9 @@ namespace OpenSim.Region.Framework.Scenes /// public void ApplyPhysics(uint rootObjectFlags, bool VolumeDetectActive, bool m_physicalPrim) { -// m_log.DebugFormat("[SCENE OBJECT PART]: Applying physics to {0} {1} {2}", Name, LocalId, UUID); +// m_log.DebugFormat( +// "[SCENE OBJECT PART]: Applying physics to {0} {1}, m_physicalPrim {2}", +// Name, LocalId, UUID, m_physicalPrim); bool isPhysical = (((rootObjectFlags & (uint) PrimFlags.Physics) != 0) && m_physicalPrim); bool isPhantom = ((rootObjectFlags & (uint) PrimFlags.Phantom) != 0); @@ -1871,6 +1873,9 @@ namespace OpenSim.Region.Framework.Scenes /// public void DoPhysicsPropertyUpdate(bool UsePhysics, bool isNew) { + if (!ParentGroup.Scene.m_physicalPrim && UsePhysics) + return; + if (IsJoint()) { DoPhysicsPropertyUpdateForNinjaJoint(UsePhysics, isNew); diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index 962b736900..cda5c97c35 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini @@ -177,7 +177,8 @@ ; ## PHYSICS ; ## - ; if you would like to allow prims to be physical and move by physics with the physical checkbox in the client set this to true. + ; If true then prims can be made subject to physics (gravity, pushing, etc.). + ; If false then physics flag can be set but it is not honoured. However, prims are still solid for the purposes of collision direction physical_prim = true ; Select a mesher here.