aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authorTeravus Ovares2008-05-04 22:55:52 +0000
committerTeravus Ovares2008-05-04 22:55:52 +0000
commit7b446aba9174aac68c62ec40c2115a1e1f012191 (patch)
treec30d8ef2bf6c3e66f5601043352accbe4613c669 /OpenSim/Region/Environment
parentUpdate svn properties. (diff)
downloadopensim-SC-7b446aba9174aac68c62ec40c2115a1e1f012191.zip
opensim-SC-7b446aba9174aac68c62ec40c2115a1e1f012191.tar.gz
opensim-SC-7b446aba9174aac68c62ec40c2115a1e1f012191.tar.bz2
opensim-SC-7b446aba9174aac68c62ec40c2115a1e1f012191.tar.xz
* Implemented DIE_AT_EDGE and Temporary objects don't save to the database.
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs19
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs20
2 files changed, 39 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 3cc2cbc..33a9102 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1352,6 +1352,25 @@ namespace OpenSim.Region.Environment.Scenes
1352 1352
1353 public void CrossPrimGroupIntoNewRegion(LLVector3 position, SceneObjectGroup grp) 1353 public void CrossPrimGroupIntoNewRegion(LLVector3 position, SceneObjectGroup grp)
1354 { 1354 {
1355 if (grp == null)
1356 return;
1357 if (grp.RootPart == null)
1358 return;
1359
1360 if (grp.RootPart.DIE_AT_EDGE)
1361 {
1362 // We remove the object here
1363 try
1364 {
1365 DeleteSceneObjectGroup(grp);
1366 }
1367 catch (Exception)
1368 {
1369 m_log.Warn("[DATABASE]: exception when trying to remove the prim that crossed the border.");
1370 }
1371 return;
1372 }
1373
1355 m_log.Warn("Prim crossing: " + grp.UUID.ToString()); 1374 m_log.Warn("Prim crossing: " + grp.UUID.ToString());
1356 int thisx = (int)RegionInfo.RegionLocX; 1375 int thisx = (int)RegionInfo.RegionLocX;
1357 int thisy = (int)RegionInfo.RegionLocY; 1376 int thisy = (int)RegionInfo.RegionLocY;
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 9b4f9af..9311904 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -101,6 +101,7 @@ namespace OpenSim.Region.Environment.Scenes
101 [XmlIgnore] private Dictionary<LLUUID, scriptEvents> m_scriptEvents = new Dictionary<LLUUID, scriptEvents>(); 101 [XmlIgnore] private Dictionary<LLUUID, scriptEvents> m_scriptEvents = new Dictionary<LLUUID, scriptEvents>();
102 [XmlIgnore] public scriptEvents m_aggregateScriptEvents=0; 102 [XmlIgnore] public scriptEvents m_aggregateScriptEvents=0;
103 [XmlIgnore] private LLObject.ObjectFlags LocalFlags = LLObject.ObjectFlags.None; 103 [XmlIgnore] private LLObject.ObjectFlags LocalFlags = LLObject.ObjectFlags.None;
104 [XmlIgnore] public bool DIE_AT_EDGE = false;
104 105
105 106
106 [XmlIgnore] public bool m_IsAttachment = false; 107 [XmlIgnore] public bool m_IsAttachment = false;
@@ -2733,6 +2734,25 @@ namespace OpenSim.Region.Environment.Scenes
2733 //} 2734 //}
2734 2735
2735 } 2736 }
2737
2738 public void SetDieAtEdge(bool p)
2739 {
2740 if (m_parentGroup == null)
2741 return;
2742 if (m_parentGroup.RootPart == null)
2743 return;
2744
2745 m_parentGroup.RootPart.DIE_AT_EDGE = p;
2746 }
2747 public bool GetDieAtEdge()
2748 {
2749 if (m_parentGroup == null)
2750 return false;
2751 if (m_parentGroup.RootPart == null)
2752 return false;
2753
2754 return m_parentGroup.RootPart.DIE_AT_EDGE;
2755 }
2736 } 2756 }
2737 2757
2738} 2758}