parent
4bd38fc65a
commit
7704bb6f63
|
@ -115,8 +115,8 @@ namespace OpenSim.Region.ClientStack
|
||||||
scene.LoadWorldMap();
|
scene.LoadWorldMap();
|
||||||
scene.RegisterRegionWithGrid();
|
scene.RegisterRegionWithGrid();
|
||||||
|
|
||||||
scene.PhysScene = GetPhysicsScene();
|
scene.PhysicsScene = GetPhysicsScene();
|
||||||
scene.PhysScene.SetTerrain(scene.Terrain.GetHeights1D());
|
scene.PhysicsScene.SetTerrain(scene.Terrain.GetHeights1D());
|
||||||
|
|
||||||
//Master Avatar Setup
|
//Master Avatar Setup
|
||||||
UserProfileData masterAvatar;
|
UserProfileData masterAvatar;
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
public PhysicsScene PhyScene
|
public PhysicsScene PhysicsScene
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{ return _PhyScene; }
|
{ return _PhyScene; }
|
||||||
|
|
|
@ -429,7 +429,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
SceneObjectPart rootPart = (group).GetChildPart(group.UUID);
|
SceneObjectPart rootPart = (group).GetChildPart(group.UUID);
|
||||||
if (rootPart.PhysActor != null)
|
if (rootPart.PhysActor != null)
|
||||||
{
|
{
|
||||||
phyScene.RemovePrim(rootPart.PhysActor);
|
PhysicsScene.RemovePrim(rootPart.PhysActor);
|
||||||
rootPart.PhysActor = null;
|
rootPart.PhysActor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -482,7 +482,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
|
if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
|
||||||
{
|
{
|
||||||
PrimitiveBaseShape pbs = rootPart.Shape;
|
PrimitiveBaseShape pbs = rootPart.Shape;
|
||||||
rootPart.PhysActor = phyScene.AddPrimShape(
|
rootPart.PhysActor = PhysicsScene.AddPrimShape(
|
||||||
rootPart.Name,
|
rootPart.Name,
|
||||||
pbs,
|
pbs,
|
||||||
new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
|
new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
|
||||||
|
|
|
@ -74,7 +74,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public bool m_physicalPrim;
|
public bool m_physicalPrim;
|
||||||
public bool m_sendTasksToChild;
|
public bool m_sendTasksToChild;
|
||||||
private int m_RestartTimerCounter;
|
private int m_RestartTimerCounter;
|
||||||
private Timer t_restartTimer = new Timer(15000); // Wait before firing
|
private readonly Timer m_restartTimer = new Timer(15000); // Wait before firing
|
||||||
private int m_incrementsof15seconds = 0;
|
private int m_incrementsof15seconds = 0;
|
||||||
|
|
||||||
protected ModuleLoader m_moduleLoader;
|
protected ModuleLoader m_moduleLoader;
|
||||||
|
@ -137,16 +137,10 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
private readonly EstateManager m_estateManager;
|
private readonly EstateManager m_estateManager;
|
||||||
|
|
||||||
private PhysicsScene phyScene
|
public PhysicsScene PhysicsScene
|
||||||
{
|
{
|
||||||
set { m_innerScene.PhyScene = value; }
|
set { m_innerScene.PhysicsScene = value; }
|
||||||
get { return (m_innerScene.PhyScene); }
|
get { return (m_innerScene.PhysicsScene); }
|
||||||
}
|
|
||||||
|
|
||||||
public PhysicsScene PhysScene
|
|
||||||
{
|
|
||||||
set { m_innerScene.PhyScene = value; }
|
|
||||||
get { return (m_innerScene.PhyScene); }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public object SyncRoot
|
public object SyncRoot
|
||||||
|
@ -239,7 +233,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
//
|
//
|
||||||
// Out of memory
|
// Out of memory
|
||||||
// Operating system has killed the plugin
|
// Operating system has killed the plugin
|
||||||
m_innerScene.UnRecoverableError += restartNOW;
|
m_innerScene.UnRecoverableError += RestartNow;
|
||||||
|
|
||||||
m_sceneXmlLoader = new SceneXmlLoader(this, m_innerScene, m_regInfo);
|
m_sceneXmlLoader = new SceneXmlLoader(this, m_innerScene, m_regInfo);
|
||||||
|
|
||||||
|
@ -275,9 +269,10 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
// Another region is up. We have to tell all our ScenePresences about it
|
// Another region is up. We have to tell all our ScenePresences about it
|
||||||
// This fails to get the desired effect and needs further work.
|
// This fails to get the desired effect and needs further work.
|
||||||
|
|
||||||
if (RegionInfo.RegionHandle != otherRegion.RegionHandle)
|
if (RegionInfo.RegionHandle != otherRegion.RegionHandle)
|
||||||
{
|
{
|
||||||
if (Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1 || Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1)
|
if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1))
|
||||||
{
|
{
|
||||||
if (!(m_regionRestartNotifyList.Contains(otherRegion)))
|
if (!(m_regionRestartNotifyList.Contains(otherRegion)))
|
||||||
{
|
{
|
||||||
|
@ -285,7 +280,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
m_restartWaitTimer.Interval= 50000;
|
m_restartWaitTimer.Interval= 50000;
|
||||||
m_restartWaitTimer.AutoReset = false;
|
m_restartWaitTimer.AutoReset = false;
|
||||||
m_restartWaitTimer.Elapsed += new ElapsedEventHandler(restart_Notify_Wait_Elapsed);
|
m_restartWaitTimer.Elapsed += new ElapsedEventHandler(RestartNotifyWaitElapsed);
|
||||||
m_restartWaitTimer.Start();
|
m_restartWaitTimer.Start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -302,25 +297,25 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
if (seconds < 15)
|
if (seconds < 15)
|
||||||
{
|
{
|
||||||
t_restartTimer.Stop();
|
m_restartTimer.Stop();
|
||||||
SendGeneralAlert("Restart Aborted");
|
SendGeneralAlert("Restart Aborted");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
t_restartTimer.Interval = 15000;
|
m_restartTimer.Interval = 15000;
|
||||||
m_incrementsof15seconds = (int) seconds/15;
|
m_incrementsof15seconds = (int) seconds/15;
|
||||||
m_RestartTimerCounter = 0;
|
m_RestartTimerCounter = 0;
|
||||||
t_restartTimer.AutoReset = true;
|
m_restartTimer.AutoReset = true;
|
||||||
t_restartTimer.Elapsed += new ElapsedEventHandler(restartTimer_Elapsed);
|
m_restartTimer.Elapsed += new ElapsedEventHandler(RestartTimer_Elapsed);
|
||||||
MainLog.Instance.Error("REGION", "Restarting Region in " + (seconds / 60) + " minutes");
|
MainLog.Instance.Error("REGION", "Restarting Region in " + (seconds / 60) + " minutes");
|
||||||
t_restartTimer.Start();
|
m_restartTimer.Start();
|
||||||
SendGeneralAlert(RegionInfo.RegionName + ": Restarting in 2 Minutes");
|
SendGeneralAlert(RegionInfo.RegionName + ": Restarting in 2 Minutes");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restartTimer_Elapsed(object sender, ElapsedEventArgs e)
|
public void RestartTimer_Elapsed(object sender, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
m_RestartTimerCounter++;
|
m_RestartTimerCounter++;
|
||||||
if (m_RestartTimerCounter <= m_incrementsof15seconds)
|
if (m_RestartTimerCounter <= m_incrementsof15seconds)
|
||||||
|
@ -330,14 +325,14 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
t_restartTimer.Stop();
|
m_restartTimer.Stop();
|
||||||
t_restartTimer.AutoReset = false;
|
m_restartTimer.AutoReset = false;
|
||||||
restartNOW();
|
RestartNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restartNOW()
|
public void RestartNow()
|
||||||
{
|
{
|
||||||
MainLog.Instance.Error("REGION", "Closing");
|
MainLog.Instance.Error("REGION", "Closing");
|
||||||
Close();
|
Close();
|
||||||
|
@ -345,7 +340,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
base.Restart(0);
|
base.Restart(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restart_Notify_Wait_Elapsed(object sender, ElapsedEventArgs e)
|
public void RestartNotifyWaitElapsed(object sender, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
m_restartWaitTimer.Stop();
|
m_restartWaitTimer.Stop();
|
||||||
foreach (RegionInfo region in m_regionRestartNotifyList)
|
foreach (RegionInfo region in m_regionRestartNotifyList)
|
||||||
|
@ -551,7 +546,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
lock (SyncRoot)
|
lock (SyncRoot)
|
||||||
{
|
{
|
||||||
phyScene.SetTerrain(Terrain.GetHeights1D());
|
PhysicsScene.SetTerrain(Terrain.GetHeights1D());
|
||||||
}
|
}
|
||||||
|
|
||||||
m_storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(), RegionInfo.RegionID);
|
m_storageManager.DataStore.StoreTerrain(Terrain.GetHeights2DD(), RegionInfo.RegionID);
|
||||||
|
@ -748,7 +743,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
SceneObjectPart rootPart = prim.GetChildPart(prim.UUID);
|
SceneObjectPart rootPart = prim.GetChildPart(prim.UUID);
|
||||||
bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim);
|
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 = PhysicsScene.AddPrimShape(
|
||||||
rootPart.Name,
|
rootPart.Name,
|
||||||
rootPart.Shape,
|
rootPart.Shape,
|
||||||
new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
|
new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
|
||||||
|
@ -852,7 +847,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
|
|
||||||
rootPart.PhysActor =
|
rootPart.PhysActor =
|
||||||
phyScene.AddPrimShape(
|
PhysicsScene.AddPrimShape(
|
||||||
rootPart.Name,
|
rootPart.Name,
|
||||||
rootPart.Shape,
|
rootPart.Shape,
|
||||||
new PhysicsVector(pos.X, pos.Y, pos.Z),
|
new PhysicsVector(pos.X, pos.Y, pos.Z),
|
||||||
|
|
|
@ -93,12 +93,12 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
public void Add(Scene scene)
|
public void Add(Scene scene)
|
||||||
{
|
{
|
||||||
scene.OnRestart += handleRestart;
|
scene.OnRestart += HandleRestart;
|
||||||
m_localScenes.Add(scene);
|
m_localScenes.Add(scene);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleRestart(RegionInfo rdata)
|
public void HandleRestart(RegionInfo rdata)
|
||||||
{
|
{
|
||||||
MainLog.Instance.Error("SCENEMANAGER", "Got Restart message for region:" + rdata.RegionName +" Sending up to main");
|
MainLog.Instance.Error("SCENEMANAGER", "Got Restart message for region:" + rdata.RegionName +" Sending up to main");
|
||||||
int RegionSceneElement = -1;
|
int RegionSceneElement = -1;
|
||||||
|
@ -106,14 +106,18 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
|
|
||||||
if (rdata.RegionName == m_localScenes[i].RegionInfo.RegionName)
|
if (rdata.RegionName == m_localScenes[i].RegionInfo.RegionName)
|
||||||
|
{
|
||||||
RegionSceneElement = i;
|
RegionSceneElement = i;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Now we make sure the region is no longer known about by the SceneManager
|
// Now we make sure the region is no longer known about by the SceneManager
|
||||||
// Prevents Duplicates.
|
// Prevents Duplicates.
|
||||||
|
|
||||||
if (RegionSceneElement >= 0)
|
if (RegionSceneElement >= 0)
|
||||||
|
{
|
||||||
m_localScenes.RemoveAt(RegionSceneElement);
|
m_localScenes.RemoveAt(RegionSceneElement);
|
||||||
|
}
|
||||||
|
|
||||||
// Send signal to main that we're restarting this sim.
|
// Send signal to main that we're restarting this sim.
|
||||||
OnReStartSim(rdata);
|
OnReStartSim(rdata);
|
||||||
|
@ -216,7 +220,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
public void RestartCurrentScene()
|
public void RestartCurrentScene()
|
||||||
{
|
{
|
||||||
ForEachCurrentScene(delegate(Scene scene) { scene.restartNOW(); });
|
ForEachCurrentScene(delegate(Scene scene) { scene.RestartNow(); });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -150,7 +150,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
m_rootPart.PhysActor.Position =
|
m_rootPart.PhysActor.Position =
|
||||||
new PhysicsVector(m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y,
|
new PhysicsVector(m_rootPart.GroupPosition.X, m_rootPart.GroupPosition.Y,
|
||||||
m_rootPart.GroupPosition.Z);
|
m_rootPart.GroupPosition.Z);
|
||||||
m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -515,7 +515,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
PrimitiveBaseShape pbs = dupe.RootPart.Shape;
|
PrimitiveBaseShape pbs = dupe.RootPart.Shape;
|
||||||
|
|
||||||
dupe.RootPart.PhysActor = m_scene.PhysScene.AddPrimShape(
|
dupe.RootPart.PhysActor = m_scene.PhysicsScene.AddPrimShape(
|
||||||
dupe.RootPart.Name,
|
dupe.RootPart.Name,
|
||||||
pbs,
|
pbs,
|
||||||
new PhysicsVector(dupe.RootPart.AbsolutePosition.X, dupe.RootPart.AbsolutePosition.Y,
|
new PhysicsVector(dupe.RootPart.AbsolutePosition.X, dupe.RootPart.AbsolutePosition.Y,
|
||||||
|
@ -827,7 +827,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
if (linkPart.PhysActor != null)
|
if (linkPart.PhysActor != null)
|
||||||
{
|
{
|
||||||
m_scene.PhysScene.RemovePrim(linkPart.PhysActor);
|
m_scene.PhysicsScene.RemovePrim(linkPart.PhysActor);
|
||||||
|
|
||||||
linkPart.PhysActor = null;
|
linkPart.PhysActor = null;
|
||||||
}
|
}
|
||||||
|
@ -897,7 +897,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
// SceneObjectPart.UpdatePrimFlags()
|
// SceneObjectPart.UpdatePrimFlags()
|
||||||
if (m_rootPart.PhysActor != null)
|
if (m_rootPart.PhysActor != null)
|
||||||
{
|
{
|
||||||
linkPart.PhysActor = m_scene.PhysScene.AddPrimShape(
|
linkPart.PhysActor = m_scene.PhysicsScene.AddPrimShape(
|
||||||
linkPart.Name,
|
linkPart.Name,
|
||||||
linkPart.Shape,
|
linkPart.Shape,
|
||||||
new PhysicsVector(linkPart.AbsolutePosition.X, linkPart.AbsolutePosition.Y,
|
new PhysicsVector(linkPart.AbsolutePosition.X, linkPart.AbsolutePosition.Y,
|
||||||
|
@ -1205,8 +1205,8 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
if (m_rootPart.PhysActor != null)
|
if (m_rootPart.PhysActor != null)
|
||||||
{
|
{
|
||||||
m_scene.PhysScene.RemovePrim(m_rootPart.PhysActor);
|
m_scene.PhysicsScene.RemovePrim(m_rootPart.PhysActor);
|
||||||
m_rootPart.PhysActor = m_scene.PhysScene.AddPrimShape(
|
m_rootPart.PhysActor = m_scene.PhysicsScene.AddPrimShape(
|
||||||
m_rootPart.Name,
|
m_rootPart.Name,
|
||||||
m_rootPart.Shape,
|
m_rootPart.Shape,
|
||||||
new PhysicsVector(m_rootPart.AbsolutePosition.X, m_rootPart.AbsolutePosition.Y,
|
new PhysicsVector(m_rootPart.AbsolutePosition.X, m_rootPart.AbsolutePosition.Y,
|
||||||
|
@ -1242,7 +1242,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
m_rootPart.PhysActor.Size =
|
m_rootPart.PhysActor.Size =
|
||||||
new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z);
|
new PhysicsVector(m_rootPart.Scale.X, m_rootPart.Scale.Y, m_rootPart.Scale.Z);
|
||||||
m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1333,7 +1333,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
m_rootPart.PhysActor.Orientation =
|
m_rootPart.PhysActor.Orientation =
|
||||||
new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
|
new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
|
||||||
m_rootPart.RotationOffset.Z);
|
m_rootPart.RotationOffset.Z);
|
||||||
m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
||||||
}
|
}
|
||||||
ScheduleGroupForTerseUpdate();
|
ScheduleGroupForTerseUpdate();
|
||||||
}
|
}
|
||||||
|
@ -1351,7 +1351,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
m_rootPart.PhysActor.Orientation =
|
m_rootPart.PhysActor.Orientation =
|
||||||
new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
|
new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
|
||||||
m_rootPart.RotationOffset.Z);
|
m_rootPart.RotationOffset.Z);
|
||||||
m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
||||||
}
|
}
|
||||||
AbsolutePosition = pos;
|
AbsolutePosition = pos;
|
||||||
ScheduleGroupForTerseUpdate();
|
ScheduleGroupForTerseUpdate();
|
||||||
|
@ -1395,7 +1395,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
m_rootPart.PhysActor.Orientation =
|
m_rootPart.PhysActor.Orientation =
|
||||||
new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
|
new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y,
|
||||||
m_rootPart.RotationOffset.Z);
|
m_rootPart.RotationOffset.Z);
|
||||||
m_scene.PhysScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (SceneObjectPart prim in m_parts.Values)
|
foreach (SceneObjectPart prim in m_parts.Values)
|
||||||
|
|
|
@ -173,7 +173,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
//lock (m_parentGroup.m_scene.SyncRoot)
|
//lock (m_parentGroup.m_scene.SyncRoot)
|
||||||
//{
|
//{
|
||||||
PhysActor.Position = new PhysicsVector(value.X, value.Y, value.Z);
|
PhysActor.Position = new PhysicsVector(value.X, value.Y, value.Z);
|
||||||
m_parentGroup.m_scene.PhysScene.AddPhysicsActorTaint(PhysActor);
|
m_parentGroup.m_scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
@ -226,7 +226,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
//lock (m_scene.SyncRoot)
|
//lock (m_scene.SyncRoot)
|
||||||
//{
|
//{
|
||||||
PhysActor.Orientation = new Quaternion(value.W, value.X, value.Y, value.Z);
|
PhysActor.Orientation = new Quaternion(value.W, value.X, value.Y, value.Z);
|
||||||
m_parentGroup.m_scene.PhysScene.AddPhysicsActorTaint(PhysActor);
|
m_parentGroup.m_scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -961,7 +961,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
AddFlag(LLObject.ObjectFlags.Phantom);
|
AddFlag(LLObject.ObjectFlags.Phantom);
|
||||||
if (PhysActor != null)
|
if (PhysActor != null)
|
||||||
{
|
{
|
||||||
m_parentGroup.m_scene.PhysScene.RemovePrim(PhysActor);
|
m_parentGroup.m_scene.PhysicsScene.RemovePrim(PhysActor);
|
||||||
/// that's not wholesome. Had to make m_scene public
|
/// that's not wholesome. Had to make m_scene public
|
||||||
PhysActor = null;
|
PhysActor = null;
|
||||||
}
|
}
|
||||||
|
@ -971,7 +971,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
RemFlag(LLObject.ObjectFlags.Phantom);
|
RemFlag(LLObject.ObjectFlags.Phantom);
|
||||||
if (PhysActor == null)
|
if (PhysActor == null)
|
||||||
{
|
{
|
||||||
PhysActor = m_parentGroup.m_scene.PhysScene.AddPrimShape(
|
PhysActor = m_parentGroup.m_scene.PhysicsScene.AddPrimShape(
|
||||||
Name,
|
Name,
|
||||||
Shape,
|
Shape,
|
||||||
new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
|
new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
|
||||||
|
@ -1015,14 +1015,14 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
PhysActor.IsPhysical = UsePhysics;
|
PhysActor.IsPhysical = UsePhysics;
|
||||||
// If we're not what we're supposed to be in the physics scene, recreate ourselves.
|
// If we're not what we're supposed to be in the physics scene, recreate ourselves.
|
||||||
//m_parentGroup.m_scene.PhysScene.RemovePrim(PhysActor);
|
//m_parentGroup.m_scene.PhysicsScene.RemovePrim(PhysActor);
|
||||||
/// that's not wholesome. Had to make m_scene public
|
/// that's not wholesome. Had to make m_scene public
|
||||||
//PhysActor = null;
|
//PhysActor = null;
|
||||||
|
|
||||||
|
|
||||||
if ((ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
|
if ((ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0)
|
||||||
{
|
{
|
||||||
//PhysActor = m_parentGroup.m_scene.PhysScene.AddPrimShape(
|
//PhysActor = m_parentGroup.m_scene.PhysicsScene.AddPrimShape(
|
||||||
//Name,
|
//Name,
|
||||||
//Shape,
|
//Shape,
|
||||||
//new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
|
//new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
|
||||||
|
@ -1037,7 +1037,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_parentGroup.m_scene.PhysScene.AddPhysicsActorTaint(PhysActor);
|
m_parentGroup.m_scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1293,7 +1293,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
OpenSim.Framework.Console.MainLog.Instance.Verbose("PHYSICS", "Physical Object went out of bounds.");
|
OpenSim.Framework.Console.MainLog.Instance.Verbose("PHYSICS", "Physical Object went out of bounds.");
|
||||||
RemFlag(LLObject.ObjectFlags.Physics);
|
RemFlag(LLObject.ObjectFlags.Physics);
|
||||||
doPhysicsPropertyUpdate(false,true);
|
doPhysicsPropertyUpdate(false,true);
|
||||||
m_parentGroup.m_scene.PhysScene.AddPhysicsActorTaint(PhysActor);
|
m_parentGroup.m_scene.PhysicsScene.AddPhysicsActorTaint(PhysActor);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -453,7 +453,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
if (PhysicsActor != null)
|
if (PhysicsActor != null)
|
||||||
{
|
{
|
||||||
m_scene.PhysScene.RemoveAvatar(PhysicsActor);
|
m_scene.PhysicsScene.RemoveAvatar(PhysicsActor);
|
||||||
m_physicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients;
|
m_physicsActor.OnRequestTerseUpdate -= SendTerseUpdateToAllClients;
|
||||||
m_physicsActor.OnCollisionUpdate -= PhysicsCollisionUpdate;
|
m_physicsActor.OnCollisionUpdate -= PhysicsCollisionUpdate;
|
||||||
PhysicsActor = null;
|
PhysicsActor = null;
|
||||||
|
@ -1320,7 +1320,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
public void AddToPhysicalScene()
|
public void AddToPhysicalScene()
|
||||||
{
|
{
|
||||||
PhysicsScene scene = m_scene.PhysScene;
|
PhysicsScene scene = m_scene.PhysicsScene;
|
||||||
|
|
||||||
PhysicsVector pVec =
|
PhysicsVector pVec =
|
||||||
new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
|
new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
|
@ -47,7 +47,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_parentScene.m_physicalPrim);
|
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.PhysicsScene.AddPrimShape(
|
||||||
rootPart.Name,
|
rootPart.Name,
|
||||||
rootPart.Shape,
|
rootPart.Shape,
|
||||||
new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
|
new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
|
||||||
|
@ -117,7 +117,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_parentScene.m_physicalPrim);
|
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.PhysicsScene.AddPrimShape(
|
||||||
rootPart.Name,
|
rootPart.Name,
|
||||||
rootPart.Shape,
|
rootPart.Shape,
|
||||||
new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
|
new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y,
|
||||||
|
|
Loading…
Reference in New Issue