* adds flag in OpenSim.ini for disabling physical prim. Look at OpenSim.ini.example in the bin folder for an example.

afrisby
Teravus Ovares 2007-11-11 00:08:18 +00:00
parent 9a4b4dae5e
commit ec77e1eb17
8 changed files with 87 additions and 79 deletions

View File

@ -73,6 +73,7 @@ namespace OpenSim
protected List<RegionInfo> m_regionData = new List<RegionInfo>(); protected List<RegionInfo> m_regionData = new List<RegionInfo>();
private bool m_verbose; private bool m_verbose;
private bool m_physicalPrim;
private readonly string m_logFilename = ("region-console.log"); private readonly string m_logFilename = ("region-console.log");
private bool m_permissions = false; private bool m_permissions = false;
@ -154,6 +155,7 @@ namespace OpenSim
config.Set("gridmode", false); config.Set("gridmode", false);
config.Set("physics", "basicphysics"); config.Set("physics", "basicphysics");
config.Set("verbose", true); config.Set("verbose", true);
config.Set("physical_prim", true);
config.Set("serverside_object_permissions", false); config.Set("serverside_object_permissions", false);
config.Set("storage_plugin", "OpenSim.DataStore.NullStorage.dll"); config.Set("storage_plugin", "OpenSim.DataStore.NullStorage.dll");
@ -213,6 +215,7 @@ namespace OpenSim
m_physicsEngine = startupConfig.GetString("physics", "basicphysics"); m_physicsEngine = startupConfig.GetString("physics", "basicphysics");
m_meshEngineName = startupConfig.GetString("meshing", "Meshmerizer"); m_meshEngineName = startupConfig.GetString("meshing", "Meshmerizer");
m_verbose = startupConfig.GetBoolean("verbose", true); m_verbose = startupConfig.GetBoolean("verbose", true);
m_physicalPrim = startupConfig.GetBoolean("physical_prim", true);
m_permissions = startupConfig.GetBoolean("serverside_object_permissions", false); m_permissions = startupConfig.GetBoolean("serverside_object_permissions", false);
m_storageDLL = startupConfig.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"); m_storageDLL = startupConfig.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll");
@ -365,7 +368,7 @@ namespace OpenSim
SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager); SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager);
return return
new Scene(regionInfo, circuitManager, m_commsManager, sceneGridService, m_assetCache, storageManager, m_httpServer, new Scene(regionInfo, circuitManager, m_commsManager, sceneGridService, m_assetCache, storageManager, m_httpServer,
m_moduleLoader, m_dumpAssetsToFile); m_moduleLoader, m_dumpAssetsToFile, m_physicalPrim);
} }
protected override void Initialize() protected override void Initialize()

View File

@ -446,7 +446,7 @@ namespace OpenSim.Region.Environment.Scenes
AddEntity(group); AddEntity(group);
group.AbsolutePosition = pos; group.AbsolutePosition = pos;
SceneObjectPart rootPart = group.GetChildPart(group.UUID); SceneObjectPart rootPart = group.GetChildPart(group.UUID);
bool UsePhysics = ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0); bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0)&& m_physicalPrim);
if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
{ {
PrimitiveBaseShape pbs = rootPart.Shape; PrimitiveBaseShape pbs = rootPart.Shape;

View File

@ -68,7 +68,7 @@ namespace OpenSim.Region.Environment.Scenes
private int m_timeUpdateCount; private int m_timeUpdateCount;
private readonly Mutex updateLock; private readonly Mutex updateLock;
public bool m_physicalPrim;
protected ModuleLoader m_moduleLoader; protected ModuleLoader m_moduleLoader;
protected StorageManager m_storageManager; protected StorageManager m_storageManager;
protected AgentCircuitManager m_authenticateHandler; protected AgentCircuitManager m_authenticateHandler;
@ -192,7 +192,7 @@ namespace OpenSim.Region.Environment.Scenes
public Scene(RegionInfo regInfo, AgentCircuitManager authen, CommunicationsManager commsMan, SceneCommunicationService sceneGridService, public Scene(RegionInfo regInfo, AgentCircuitManager authen, CommunicationsManager commsMan, SceneCommunicationService sceneGridService,
AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer, AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer,
ModuleLoader moduleLoader, bool dumpAssetsToFile) ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim)
{ {
updateLock = new Mutex(false); updateLock = new Mutex(false);
@ -207,6 +207,7 @@ namespace OpenSim.Region.Environment.Scenes
m_regionName = m_regInfo.RegionName; m_regionName = m_regInfo.RegionName;
m_datastore = m_regInfo.DataStore; m_datastore = m_regInfo.DataStore;
RegisterRegionWithComms(); RegisterRegionWithComms();
m_physicalPrim = physicalPrim;
m_LandManager = new LandManager(this, m_regInfo); m_LandManager = new LandManager(this, m_regInfo);
m_estateManager = new EstateManager(this, m_regInfo); m_estateManager = new EstateManager(this, m_regInfo);
@ -522,7 +523,7 @@ namespace OpenSim.Region.Environment.Scenes
{ {
AddEntityFromStorage(prim); AddEntityFromStorage(prim);
SceneObjectPart rootPart = prim.GetChildPart(prim.UUID); SceneObjectPart rootPart = prim.GetChildPart(prim.UUID);
bool UsePhysics = ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0); bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim);
if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
rootPart.PhysActor = phyScene.AddPrimShape( rootPart.PhysActor = phyScene.AddPrimShape(
rootPart.Name, rootPart.Name,
@ -572,7 +573,7 @@ namespace OpenSim.Region.Environment.Scenes
rootPart.ObjectFlags += (uint) LLObject.ObjectFlags.Phantom; rootPart.ObjectFlags += (uint) LLObject.ObjectFlags.Phantom;
} }
// if not phantom, add to physics // if not phantom, add to physics
bool UsePhysics = ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0); bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim);
if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
rootPart.PhysActor = rootPart.PhysActor =
phyScene.AddPrimShape( phyScene.AddPrimShape(

View File

@ -770,7 +770,7 @@ namespace OpenSim.Region.Environment.Scenes
{ {
i += 46; i += 46;
//IsLocked = (data[i++] != 0) ? true : false; //IsLocked = (data[i++] != 0) ? true : false;
UsePhysics = (data[i++] != 0) ? true : false; UsePhysics = ((data[i++] != 0) && m_parentGroup.m_scene.m_physicalPrim) ? true : false;
//System.Console.WriteLine("U" + packet.ToBytes().Length.ToString()); //System.Console.WriteLine("U" + packet.ToBytes().Length.ToString());
IsTemporary = (data[i++] != 0) ? true : false; IsTemporary = (data[i++] != 0) ? true : false;
IsPhantom = (data[i++] != 0) ? true : false; IsPhantom = (data[i++] != 0) ? true : false;
@ -782,7 +782,7 @@ namespace OpenSim.Region.Environment.Scenes
//Silently ignore it - TODO: FIXME Quick //Silently ignore it - TODO: FIXME Quick
} }
if (UsePhysics) if (UsePhysics )
{ {
AddFlag(LLObject.ObjectFlags.Physics); AddFlag(LLObject.ObjectFlags.Physics);
if (PhysActor != null) if (PhysActor != null)
@ -791,9 +791,12 @@ namespace OpenSim.Region.Environment.Scenes
} }
else else
{ {
RemFlag(LLObject.ObjectFlags.Physics); if (m_parentGroup.m_scene.m_physicalPrim)
if (PhysActor != null) {
PhysActor.OnRequestTerseUpdate -= PhysicsRequestingTerseUpdate; RemFlag(LLObject.ObjectFlags.Physics);
if (PhysActor != null)
PhysActor.OnRequestTerseUpdate -= PhysicsRequestingTerseUpdate;
}
} }
if (IsPhantom) if (IsPhantom)

View File

@ -44,7 +44,7 @@ namespace OpenSim.Region.Environment.Scenes
m_innerScene.AddEntity(obj); m_innerScene.AddEntity(obj);
SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); SceneObjectPart rootPart = obj.GetChildPart(obj.UUID);
bool UsePhysics = ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0); bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_parentScene.m_physicalPrim);
if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
rootPart.PhysActor = m_innerScene.PhyScene.AddPrimShape( rootPart.PhysActor = m_innerScene.PhyScene.AddPrimShape(
rootPart.Name, rootPart.Name,
@ -110,7 +110,7 @@ namespace OpenSim.Region.Environment.Scenes
m_innerScene.AddEntityFromStorage(obj); m_innerScene.AddEntityFromStorage(obj);
SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); SceneObjectPart rootPart = obj.GetChildPart(obj.UUID);
bool UsePhysics = ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0); bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_parentScene.m_physicalPrim);
if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
rootPart.PhysActor = m_innerScene.PhyScene.AddPrimShape( rootPart.PhysActor = m_innerScene.PhyScene.AddPrimShape(
rootPart.Name, rootPart.Name,

View File

@ -44,8 +44,8 @@ namespace SimpleApp
public MyWorld(RegionInfo regionInfo, AgentCircuitManager authen, CommunicationsManager commsMan, SceneCommunicationService sceneGridService, public MyWorld(RegionInfo regionInfo, AgentCircuitManager authen, CommunicationsManager commsMan, SceneCommunicationService sceneGridService,
AssetCache assetCach, StorageManager storeMan, BaseHttpServer httpServer, AssetCache assetCach, StorageManager storeMan, BaseHttpServer httpServer,
ModuleLoader moduleLoader) ModuleLoader moduleLoader, bool physicalPrim)
: base(regionInfo, authen, commsMan, sceneGridService, assetCach, storeMan, httpServer, moduleLoader, false) : base(regionInfo, authen, commsMan, sceneGridService, assetCach, storeMan, httpServer, moduleLoader, false, true)
{ {
m_avatars = new List<Avatar>(); m_avatars = new List<Avatar>();
} }

View File

@ -172,7 +172,7 @@ namespace SimpleApp
SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager); SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager);
return return
new MyWorld(regionInfo, circuitManager, m_commsManager, sceneGridService, m_assetCache, storageManager, m_httpServer, new MyWorld(regionInfo, circuitManager, m_commsManager, sceneGridService, m_assetCache, storageManager, m_httpServer,
new ModuleLoader(m_log, m_config)); new ModuleLoader(m_log, m_config), true);
} }
protected override StorageManager CreateStorageManager(RegionInfo regionInfo) protected override StorageManager CreateStorageManager(RegionInfo regionInfo)

View File

@ -14,6 +14,7 @@ serverside_object_permissions = false
; to try sqlite as the asset database , comment out the above line, and uncomment following one ; to try sqlite as the asset database , comment out the above line, and uncomment following one
asset_database = "sqlite" asset_database = "sqlite"
verbose = true verbose = true
physical_prim = true
[StandAlone] [StandAlone]
accounts_authenticate = true accounts_authenticate = true