diff options
author | John Hurliman | 2010-09-16 17:30:46 -0700 |
---|---|---|
committer | John Hurliman | 2010-09-16 17:30:46 -0700 |
commit | 860b2a502f797e5822c6705d4639f370f3ac5861 (patch) | |
tree | 5a74ddbd626142e27f6c3439ea267b8ea348ce9c /OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs | |
parent | Add the modules include line back that i dropped by mistake (diff) | |
download | opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.zip opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.gz opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.bz2 opensim-SC_OLD-860b2a502f797e5822c6705d4639f370f3ac5861.tar.xz |
Changed SceneObjectGroup to store parts with the fast and thread-safe MapAndArray collection
Diffstat (limited to 'OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs')
-rw-r--r-- | OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs index 0b02a9f..3a6996e 100644 --- a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs +++ b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs | |||
@@ -167,11 +167,11 @@ namespace OpenSim.Region.OptionalModules.ContentManagement | |||
167 | public void RemoveOrUpdateDeletedEntity(SceneObjectGroup group) | 167 | public void RemoveOrUpdateDeletedEntity(SceneObjectGroup group) |
168 | { | 168 | { |
169 | // Deal with new parts not revisioned that have been deleted. | 169 | // Deal with new parts not revisioned that have been deleted. |
170 | lock (group.Children) | 170 | SceneObjectPart[] parts = group.Parts; |
171 | for (int i = 0; i < parts.Length; i++) | ||
171 | { | 172 | { |
172 | foreach (SceneObjectPart part in group.Children.Values) | 173 | if (m_MetaEntityCollection.Auras.ContainsKey(parts[i].UUID)) |
173 | if (m_MetaEntityCollection.Auras.ContainsKey(part.UUID)) | 174 | m_MetaEntityCollection.RemoveNewlyCreatedEntityAura(parts[i].UUID); |
174 | m_MetaEntityCollection.RemoveNewlyCreatedEntityAura(part.UUID); | ||
175 | } | 175 | } |
176 | } | 176 | } |
177 | 177 | ||
@@ -210,12 +210,10 @@ namespace OpenSim.Region.OptionalModules.ContentManagement | |||
210 | { | 210 | { |
211 | temp = SceneObjectSerializer.FromXml2Format(xml); | 211 | temp = SceneObjectSerializer.FromXml2Format(xml); |
212 | temp.SetScene(scene); | 212 | temp.SetScene(scene); |
213 | 213 | ||
214 | lock (temp.Children) | 214 | SceneObjectPart[] parts = temp.Parts; |
215 | { | 215 | for (int i = 0; i < parts.Length; i++) |
216 | foreach (SceneObjectPart part in temp.Children.Values) | 216 | parts[i].RegionHandle = scene.RegionInfo.RegionHandle; |
217 | part.RegionHandle = scene.RegionInfo.RegionHandle; | ||
218 | } | ||
219 | 217 | ||
220 | ReplacementList.Add(temp.UUID, (EntityBase)temp); | 218 | ReplacementList.Add(temp.UUID, (EntityBase)temp); |
221 | } | 219 | } |
@@ -346,17 +344,16 @@ namespace OpenSim.Region.OptionalModules.ContentManagement | |||
346 | System.Collections.ArrayList auraList = new System.Collections.ArrayList(); | 344 | System.Collections.ArrayList auraList = new System.Collections.ArrayList(); |
347 | if (group == null) | 345 | if (group == null) |
348 | return null; | 346 | return null; |
349 | 347 | ||
350 | lock (group.Children) | 348 | SceneObjectPart[] parts = group.Parts; |
349 | for (int i = 0; i < parts.Length; i++) | ||
351 | { | 350 | { |
352 | foreach (SceneObjectPart part in group.Children.Values) | 351 | SceneObjectPart part = parts[i]; |
352 | if (m_MetaEntityCollection.Auras.ContainsKey(part.UUID)) | ||
353 | { | 353 | { |
354 | if (m_MetaEntityCollection.Auras.ContainsKey(part.UUID)) | 354 | ((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]).SetAura(new Vector3(0, 254, 0), part.Scale); |
355 | { | 355 | ((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]).RootPart.GroupPosition = part.GetWorldPosition(); |
356 | ((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]).SetAura(new Vector3(0,254,0), part.Scale); | 356 | auraList.Add((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]); |
357 | ((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]).RootPart.GroupPosition = part.GetWorldPosition(); | ||
358 | auraList.Add((AuraMetaEntity)m_MetaEntityCollection.Auras[part.UUID]); | ||
359 | } | ||
360 | } | 357 | } |
361 | } | 358 | } |
362 | 359 | ||