aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/TaskInventoryItem.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-01-16 18:35:34 +0000
committerJustin Clarke Casey2008-01-16 18:35:34 +0000
commit57519b6dba97d7e7a2de71af9d58c93b4750bde8 (patch)
tree9597647ee1e70e50215b90bb116fede1ca7f8e27 /OpenSim/Framework/TaskInventoryItem.cs
parentFirst part of changing prim's permission flags to use the correct enum (libsl... (diff)
downloadopensim-SC_OLD-57519b6dba97d7e7a2de71af9d58c93b4750bde8.zip
opensim-SC_OLD-57519b6dba97d7e7a2de71af9d58c93b4750bde8.tar.gz
opensim-SC_OLD-57519b6dba97d7e7a2de71af9d58c93b4750bde8.tar.bz2
opensim-SC_OLD-57519b6dba97d7e7a2de71af9d58c93b4750bde8.tar.xz
* Store task inventory when an object is taken into agent inventory
* This means that you can take an object from a region and rez it somewhere else, with its inventory intact. * As for earlier, at this stage only scripts can be placed in inventory * This isn't an efficient implementation, a better one will probably need to come along soonish
Diffstat (limited to 'OpenSim/Framework/TaskInventoryItem.cs')
-rw-r--r--OpenSim/Framework/TaskInventoryItem.cs115
1 files changed, 96 insertions, 19 deletions
diff --git a/OpenSim/Framework/TaskInventoryItem.cs b/OpenSim/Framework/TaskInventoryItem.cs
index 107993b..6e163a9 100644
--- a/OpenSim/Framework/TaskInventoryItem.cs
+++ b/OpenSim/Framework/TaskInventoryItem.cs
@@ -26,11 +26,78 @@
26* 26*
27*/ 27*/
28 28
29using System.Collections.Generic;
30using System.Xml;
31using System.Xml.Schema;
32using System.Xml.Serialization;
33
29using libsecondlife; 34using libsecondlife;
30using System; 35using System;
31 36
32namespace OpenSim.Framework 37namespace OpenSim.Framework
33{ 38{
39 public class TaskInventoryDictionary : Dictionary<LLUUID, TaskInventoryItem>, IXmlSerializable
40 {
41 private static XmlSerializer tiiSerializer = new XmlSerializer(typeof(TaskInventoryItem));
42
43 // The alternative of simply serializing the list doesn't appear to work on mono, since
44 // we get a
45 //
46 // System.TypeInitializationException: An exception was thrown by the type initializer for OpenSim.Framework.TaskInventoryDictionary ---> System.ArgumentOutOfRangeException: < 0
47 // Parameter name: length
48 // at System.String.Substring (Int32 startIndex, Int32 length) [0x00088] in /build/buildd/mono-1.2.4/mcs/class/corlib/System/String.cs:381
49 // at System.Xml.Serialization.TypeTranslator.GetTypeData (System.Type runtimeType, System.String xmlDataType) [0x001f6] in /build/buildd/mono-1.2.4/mcs/class/System.XML/System.Xml.Serialization/TypeTranslator.cs:217
50 // ...
51// private static XmlSerializer tiiSerializer
52// = new XmlSerializer(typeof(Dictionary<LLUUID, TaskInventoryItem>.ValueCollection));
53
54 // see IXmlSerializable
55 public XmlSchema GetSchema()
56 {
57 return null;
58 }
59
60 // see IXmlSerializable
61 public void ReadXml(XmlReader reader)
62 {
63 reader.Read();
64 while (tiiSerializer.CanDeserialize(reader))
65 {
66 TaskInventoryItem item = (TaskInventoryItem)tiiSerializer.Deserialize(reader);
67 Add(item.ItemID, item);
68 }
69
70// reader.Read();
71// while (reader.Name.Equals("TaskInventoryItem"))
72// {
73// TaskInventoryItem item = (TaskInventoryItem)tiiSerializer.Deserialize(reader);
74// Add(item.ItemID, item);
75// }
76
77// ICollection<TaskInventoryItem> items
78// = (ICollection<TaskInventoryItem>)tiiSerializer.Deserialize(reader);
79//
80// foreach (TaskInventoryItem item in items)
81// {
82// Add(item.ItemID, item);
83// }
84 }
85
86 // see IXmlSerializable
87 public void WriteXml(XmlWriter writer)
88 {
89 foreach (TaskInventoryItem item in Values)
90 {
91 tiiSerializer.Serialize(writer, item);
92 }
93
94 //tiiSerializer.Serialize(writer, Values);
95 }
96 }
97
98 /// <summary>
99 /// Represents an item in a task inventory
100 /// </summary>
34 public class TaskInventoryItem 101 public class TaskInventoryItem
35 { 102 {
36 /// <summary> 103 /// <summary>
@@ -75,27 +142,37 @@ namespace OpenSim.Framework
75 "lsltext", 142 "lsltext",
76 String.Empty 143 String.Empty
77 }; 144 };
145
146 /// <summary>
147 /// Reset the LLUUIDs for this item.
148 /// </summary>
149 /// <param name="partID">The new part ID to which this item belongs</param>
150 public void ResetIDs(LLUUID partID)
151 {
152 ItemID = LLUUID.Random();
153 ParentPartID = partID;
154 }
78 155
79 public LLUUID item_id = LLUUID.Zero; 156 public LLUUID ItemID = LLUUID.Zero;
80 public LLUUID parent_id = LLUUID.Zero; //parent folder id 157 public LLUUID ParentID = LLUUID.Zero; //parent folder id
81 158
82 public uint base_mask = FULL_MASK_PERMISSIONS_GENERAL; 159 public uint BaseMask = FULL_MASK_PERMISSIONS_GENERAL;
83 public uint owner_mask = FULL_MASK_PERMISSIONS_GENERAL; 160 public uint OwnerMask = FULL_MASK_PERMISSIONS_GENERAL;
84 public uint group_mask = FULL_MASK_PERMISSIONS_GENERAL; 161 public uint GroupMask = FULL_MASK_PERMISSIONS_GENERAL;
85 public uint everyone_mask = FULL_MASK_PERMISSIONS_GENERAL; 162 public uint EveryoneMask = FULL_MASK_PERMISSIONS_GENERAL;
86 public uint next_owner_mask = FULL_MASK_PERMISSIONS_GENERAL; 163 public uint NextOwnerMask = FULL_MASK_PERMISSIONS_GENERAL;
87 public LLUUID creator_id = LLUUID.Zero; 164 public LLUUID CreatorID = LLUUID.Zero;
88 public LLUUID owner_id = LLUUID.Zero; 165 public LLUUID OwnerID = LLUUID.Zero;
89 public LLUUID last_owner_id = LLUUID.Zero; 166 public LLUUID LastOwnerID = LLUUID.Zero;
90 public LLUUID group_id = LLUUID.Zero; 167 public LLUUID GroupID = LLUUID.Zero;
91 168
92 public LLUUID asset_id = LLUUID.Zero; 169 public LLUUID AssetID = LLUUID.Zero;
93 public int type = 0; 170 public int Type = 0;
94 public int inv_type = 0; 171 public int InvType = 0;
95 public uint flags = 0; 172 public uint Flags = 0;
96 public string name = String.Empty; 173 public string Name = String.Empty;
97 public string desc = String.Empty; 174 public string Description = String.Empty;
98 public uint creation_date = 0; 175 public uint CreationDate = 0;
99 176
100 public LLUUID ParentPartID = LLUUID.Zero; 177 public LLUUID ParentPartID = LLUUID.Zero;
101 } 178 }