diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 4b4e4ba..f16a8e6 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -118,6 +118,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
118 | private bool m_hasGroupChanged = false; | 118 | private bool m_hasGroupChanged = false; |
119 | private long timeFirstChanged; | 119 | private long timeFirstChanged; |
120 | private long timeLastChanged; | 120 | private long timeLastChanged; |
121 | private List<ScenePresence> m_linkedAvatars = new List<ScenePresence>(); | ||
121 | 122 | ||
122 | /// <summary> | 123 | /// <summary> |
123 | /// This indicates whether the object has changed such that it needs to be repersisted to permenant storage | 124 | /// This indicates whether the object has changed such that it needs to be repersisted to permenant storage |
@@ -1096,6 +1097,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1096 | } | 1097 | } |
1097 | } | 1098 | } |
1098 | 1099 | ||
1100 | |||
1099 | /// <summary> | 1101 | /// <summary> |
1100 | /// | 1102 | /// |
1101 | /// </summary> | 1103 | /// </summary> |
@@ -1105,6 +1107,46 @@ namespace OpenSim.Region.Framework.Scenes | |||
1105 | part.ParentID = m_rootPart.LocalId; | 1107 | part.ParentID = m_rootPart.LocalId; |
1106 | part.ClearUndoState(); | 1108 | part.ClearUndoState(); |
1107 | } | 1109 | } |
1110 | /// <summary> | ||
1111 | /// Add the avatar to this linkset (avatar is sat). | ||
1112 | /// </summary> | ||
1113 | /// <param name="agentID"></param> | ||
1114 | public void AddAvatar(UUID agentID) | ||
1115 | { | ||
1116 | ScenePresence presence; | ||
1117 | if (m_scene.TryGetScenePresence(agentID, out presence)) | ||
1118 | { | ||
1119 | if (!m_linkedAvatars.Contains(presence)) | ||
1120 | { | ||
1121 | m_linkedAvatars.Add(presence); | ||
1122 | } | ||
1123 | } | ||
1124 | } | ||
1125 | |||
1126 | /// <summary> | ||
1127 | /// Delete the avatar from this linkset (avatar is unsat). | ||
1128 | /// </summary> | ||
1129 | /// <param name="agentID"></param> | ||
1130 | public void DeleteAvatar(UUID agentID) | ||
1131 | { | ||
1132 | ScenePresence presence; | ||
1133 | if (m_scene.TryGetScenePresence(agentID, out presence)) | ||
1134 | { | ||
1135 | if (m_linkedAvatars.Contains(presence)) | ||
1136 | { | ||
1137 | m_linkedAvatars.Remove(presence); | ||
1138 | } | ||
1139 | } | ||
1140 | } | ||
1141 | |||
1142 | /// <summary> | ||
1143 | /// Returns the list of linked presences (avatars sat on this group) | ||
1144 | /// </summary> | ||
1145 | /// <param name="agentID"></param> | ||
1146 | public List<ScenePresence> GetLinkedAvatars() | ||
1147 | { | ||
1148 | return m_linkedAvatars; | ||
1149 | } | ||
1108 | 1150 | ||
1109 | public ushort GetTimeDilation() | 1151 | public ushort GetTimeDilation() |
1110 | { | 1152 | { |