aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectPart.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs67
1 files changed, 48 insertions, 19 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 888643e..250c803 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -28,20 +28,20 @@
28using System; 28using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using System.Drawing; 30using System.Drawing;
31using System.Reflection;
31using System.Runtime.Serialization; 32using System.Runtime.Serialization;
32using System.Security.Permissions; 33using System.Security.Permissions;
33using System.Xml; 34using System.Xml;
34using System.Xml.Serialization; 35using System.Xml.Serialization;
35 36using log4net;
36using OpenMetaverse; 37using OpenMetaverse;
37using OpenMetaverse.Packets; 38using OpenMetaverse.Packets;
38
39using OpenSim.Framework; 39using OpenSim.Framework;
40using OpenSim.Region.Environment.Scenes.Scripting; 40using OpenSim.Region.Environment.Scenes.Scripting;
41using OpenSim.Region.Physics.Manager; 41using OpenSim.Region.Physics.Manager;
42 42
43namespace OpenSim.Region.Environment.Scenes 43namespace OpenSim.Region.Environment.Scenes
44{ 44{
45 #region Enumerations 45 #region Enumerations
46 46
47 [Flags] 47 [Flags]
@@ -92,8 +92,10 @@ namespace OpenSim.Region.Environment.Scenes
92 #endregion Enumerations 92 #endregion Enumerations
93 93
94 [Serializable] 94 [Serializable]
95 public partial class SceneObjectPart : IScriptHost, ISerializable 95 public class SceneObjectPart : IScriptHost, ISerializable
96 { 96 {
97 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
98
97 #region Fields 99 #region Fields
98 100
99 [XmlIgnore] 101 [XmlIgnore]
@@ -140,6 +142,12 @@ namespace OpenSim.Region.Environment.Scenes
140 public uint AttachmentPoint = (byte)0; 142 public uint AttachmentPoint = (byte)0;
141 [XmlIgnore] 143 [XmlIgnore]
142 public PhysicsVector RotationAxis = new PhysicsVector(1f,1f,1f); 144 public PhysicsVector RotationAxis = new PhysicsVector(1f,1f,1f);
145
146 /// <summary>
147 /// This part's inventory
148 /// </summary>
149 [XmlIgnore]
150 public readonly SceneObjectPartInventory Inventory;
143 151
144 [XmlIgnore] 152 [XmlIgnore]
145 public bool Undoing = false; 153 public bool Undoing = false;
@@ -218,6 +226,8 @@ namespace OpenSim.Region.Environment.Scenes
218 m_TextureAnimation = new byte[0]; 226 m_TextureAnimation = new byte[0];
219 m_particleSystem = new byte[0]; 227 m_particleSystem = new byte[0];
220 Rezzed = DateTime.Now; 228 Rezzed = DateTime.Now;
229
230 Inventory = new SceneObjectPartInventory(this);
221 } 231 }
222 232
223 /// <summary> 233 /// <summary>
@@ -266,6 +276,8 @@ namespace OpenSim.Region.Environment.Scenes
266 276
267 TrimPermissions(); 277 TrimPermissions();
268 //m_undo = new UndoStack<UndoState>(ParentGroup.GetSceneMaxUndo()); 278 //m_undo = new UndoStack<UndoState>(ParentGroup.GetSceneMaxUndo());
279
280 Inventory = new SceneObjectPartInventory(this);
269 } 281 }
270 282
271 protected SceneObjectPart(SerializationInfo info, StreamingContext context) 283 protected SceneObjectPart(SerializationInfo info, StreamingContext context)
@@ -285,6 +297,8 @@ namespace OpenSim.Region.Environment.Scenes
285 297
286 //System.Console.WriteLine("SceneObjectPart Deserialize END"); 298 //System.Console.WriteLine("SceneObjectPart Deserialize END");
287 Rezzed = DateTime.Now; 299 Rezzed = DateTime.Now;
300
301 Inventory = new SceneObjectPartInventory(this);
288 } 302 }
289 303
290 #endregion Constructors 304 #endregion Constructors
@@ -332,16 +346,22 @@ namespace OpenSim.Region.Environment.Scenes
332 set { } // Don't allow assignment, or legacy prims wil b0rk 346 set { } // Don't allow assignment, or legacy prims wil b0rk
333 } 347 }
334 348
349 /// <value>
350 /// Access should be via Inventory directly - this property temporarily remains for xml serialization purposes
351 /// </value>
335 public uint InventorySerial 352 public uint InventorySerial
336 { 353 {
337 get { return m_inventorySerial; } 354 get { return Inventory.Serial; }
338 set { m_inventorySerial = value; } 355 set { Inventory.Serial = value; }
339 } 356 }
340 357
358 /// <value>
359 /// Access should be via Inventory directly - this property temporarily remains for xml serialization purposes
360 /// </value>
341 public TaskInventoryDictionary TaskInventory 361 public TaskInventoryDictionary TaskInventory
342 { 362 {
343 get { return m_taskInventory; } 363 get { return Inventory.Items; }
344 set { m_taskInventory = value; } 364 set { Inventory.Items = value; }
345 } 365 }
346 366
347 public uint ObjectFlags 367 public uint ObjectFlags
@@ -1239,7 +1259,7 @@ if (m_shape != null) {
1239 dupe._category = _category; 1259 dupe._category = _category;
1240 dupe.m_rezzed = m_rezzed; 1260 dupe.m_rezzed = m_rezzed;
1241 1261
1242 dupe.TaskInventory = (TaskInventoryDictionary)dupe.TaskInventory.Clone(); 1262 dupe.Inventory.Items = (TaskInventoryDictionary)dupe.Inventory.Items.Clone();
1243 1263
1244 if (userExposed) 1264 if (userExposed)
1245 dupe.ResetIDs(linkNum); 1265 dupe.ResetIDs(linkNum);
@@ -1412,7 +1432,7 @@ if (m_shape != null) {
1412 throw new ArgumentNullException("info"); 1432 throw new ArgumentNullException("info");
1413 } 1433 }
1414 1434
1415 info.AddValue("m_inventoryFileName", GetInventoryFileName()); 1435 info.AddValue("m_inventoryFileName", Inventory.GetInventoryFileName());
1416 info.AddValue("m_folderID", UUID); 1436 info.AddValue("m_folderID", UUID);
1417 info.AddValue("PhysActor", PhysActor); 1437 info.AddValue("PhysActor", PhysActor);
1418 1438
@@ -1452,7 +1472,7 @@ if (m_shape != null) {
1452 info.AddValue("m_updateFlag", m_updateFlag); 1472 info.AddValue("m_updateFlag", m_updateFlag);
1453 info.AddValue("CreatorID", _creatorID.Guid); 1473 info.AddValue("CreatorID", _creatorID.Guid);
1454 1474
1455 info.AddValue("m_inventorySerial", m_inventorySerial); 1475 info.AddValue("m_inventorySerial", Inventory.Serial);
1456 info.AddValue("m_uuid", m_uuid.Guid); 1476 info.AddValue("m_uuid", m_uuid.Guid);
1457 info.AddValue("m_localID", m_localId); 1477 info.AddValue("m_localID", m_localId);
1458 info.AddValue("m_name", m_name); 1478 info.AddValue("m_name", m_name);
@@ -1929,8 +1949,7 @@ if (m_shape != null) {
1929 UUID = UUID.Random(); 1949 UUID = UUID.Random();
1930 LinkNum = linkNum; 1950 LinkNum = linkNum;
1931 LocalId = 0; 1951 LocalId = 0;
1932 1952 Inventory.ResetInventoryIDs();
1933 ResetInventoryIDs();
1934 } 1953 }
1935 1954
1936 /// <summary> 1955 /// <summary>
@@ -2993,7 +3012,7 @@ if (m_shape != null) {
2993 if (god) 3012 if (god)
2994 { 3013 {
2995 _baseMask = ApplyMask(_baseMask, set, mask); 3014 _baseMask = ApplyMask(_baseMask, set, mask);
2996 ApplyGodPermissions(_baseMask); 3015 Inventory.ApplyGodPermissions(_baseMask);
2997 } 3016 }
2998 3017
2999 break; 3018 break;
@@ -3394,9 +3413,19 @@ if (m_shape != null) {
3394 RotationalVelocity, state, FromAssetID, 3413 RotationalVelocity, state, FromAssetID,
3395 OwnerID, (int)AttachmentPoint); 3414 OwnerID, (int)AttachmentPoint);
3396 } 3415 }
3397 } 3416
3398} 3417 public void AddScriptLPS(int count)
3399 3418 {
3400 3419 m_parentGroup.AddScriptLPS(count);
3401 3420 }
3421
3422 public void ApplyNextOwnerPermissions()
3423 {
3424 _baseMask &= _nextOwnerMask;
3425 _ownerMask &= _nextOwnerMask;
3426 _everyoneMask &= _nextOwnerMask;
3402 3427
3428 Inventory.ApplyNextOwnerPermissions();
3429 }
3430 }
3431}