aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/General/AgentInventory.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/General/AgentInventory.cs')
-rw-r--r--OpenSim/Framework/General/AgentInventory.cs71
1 files changed, 34 insertions, 37 deletions
diff --git a/OpenSim/Framework/General/AgentInventory.cs b/OpenSim/Framework/General/AgentInventory.cs
index cf110cb..7a1174a 100644
--- a/OpenSim/Framework/General/AgentInventory.cs
+++ b/OpenSim/Framework/General/AgentInventory.cs
@@ -28,8 +28,6 @@
28using System.Collections.Generic; 28using System.Collections.Generic;
29using libsecondlife; 29using libsecondlife;
30using libsecondlife.Packets; 30using libsecondlife.Packets;
31using OpenSim.Framework;
32
33 31
34namespace OpenSim.Framework 32namespace OpenSim.Framework
35{ 33{
@@ -39,7 +37,7 @@ namespace OpenSim.Framework
39 public Dictionary<LLUUID, InventoryFolder> InventoryFolders; 37 public Dictionary<LLUUID, InventoryFolder> InventoryFolders;
40 public Dictionary<LLUUID, InventoryItem> InventoryItems; 38 public Dictionary<LLUUID, InventoryItem> InventoryItems;
41 public InventoryFolder InventoryRoot; 39 public InventoryFolder InventoryRoot;
42 public int LastCached; //maybe used by opensim app, time this was last stored/compared to user server 40 public int LastCached; //maybe used by opensim app, time this was last stored/compared to user server
43 public LLUUID AgentID; 41 public LLUUID AgentID;
44 public AvatarWearable[] Wearables; 42 public AvatarWearable[] Wearables;
45 43
@@ -47,12 +45,12 @@ namespace OpenSim.Framework
47 { 45 {
48 InventoryFolders = new Dictionary<LLUUID, InventoryFolder>(); 46 InventoryFolders = new Dictionary<LLUUID, InventoryFolder>();
49 InventoryItems = new Dictionary<LLUUID, InventoryItem>(); 47 InventoryItems = new Dictionary<LLUUID, InventoryItem>();
50 this.Initialise(); 48 Initialise();
51 } 49 }
52 50
53 public virtual void Initialise() 51 public virtual void Initialise()
54 { 52 {
55 Wearables = new AvatarWearable[13]; 53 Wearables = new AvatarWearable[13];
56 for (int i = 0; i < 13; i++) 54 for (int i = 0; i < 13; i++)
57 { 55 {
58 Wearables[i] = new AvatarWearable(); 56 Wearables[i] = new AvatarWearable();
@@ -63,27 +61,27 @@ namespace OpenSim.Framework
63 { 61 {
64 InventoryFolder Folder = new InventoryFolder(); 62 InventoryFolder Folder = new InventoryFolder();
65 Folder.FolderID = folderID; 63 Folder.FolderID = folderID;
66 Folder.OwnerID = this.AgentID; 64 Folder.OwnerID = AgentID;
67 Folder.DefaultType = type; 65 Folder.DefaultType = type;
68 this.InventoryFolders.Add(Folder.FolderID, Folder); 66 InventoryFolders.Add(Folder.FolderID, Folder);
69 return (true); 67 return (true);
70 } 68 }
71 69
72 public void CreateRootFolder(LLUUID newAgentID, bool createTextures) 70 public void CreateRootFolder(LLUUID newAgentID, bool createTextures)
73 { 71 {
74 this.AgentID = newAgentID; 72 AgentID = newAgentID;
75 InventoryRoot = new InventoryFolder(); 73 InventoryRoot = new InventoryFolder();
76 InventoryRoot.FolderID = LLUUID.Random(); 74 InventoryRoot.FolderID = LLUUID.Random();
77 InventoryRoot.ParentID = new LLUUID(); 75 InventoryRoot.ParentID = new LLUUID();
78 InventoryRoot.Version = 1; 76 InventoryRoot.Version = 1;
79 InventoryRoot.DefaultType = 8; 77 InventoryRoot.DefaultType = 8;
80 InventoryRoot.OwnerID = this.AgentID; 78 InventoryRoot.OwnerID = AgentID;
81 InventoryRoot.FolderName = "My Inventory"; 79 InventoryRoot.FolderName = "My Inventory";
82 InventoryFolders.Add(InventoryRoot.FolderID, InventoryRoot); 80 InventoryFolders.Add(InventoryRoot.FolderID, InventoryRoot);
83 InventoryRoot.OwnerID = this.AgentID; 81 InventoryRoot.OwnerID = AgentID;
84 if (createTextures) 82 if (createTextures)
85 { 83 {
86 this.CreateNewFolder(LLUUID.Random(), 0, "Textures", InventoryRoot.FolderID); 84 CreateNewFolder(LLUUID.Random(), 0, "Textures", InventoryRoot.FolderID);
87 } 85 }
88 } 86 }
89 87
@@ -91,32 +89,32 @@ namespace OpenSim.Framework
91 { 89 {
92 InventoryFolder Folder = new InventoryFolder(); 90 InventoryFolder Folder = new InventoryFolder();
93 Folder.FolderID = folderID; 91 Folder.FolderID = folderID;
94 Folder.OwnerID = this.AgentID; 92 Folder.OwnerID = AgentID;
95 Folder.DefaultType = type; 93 Folder.DefaultType = type;
96 Folder.FolderName = folderName; 94 Folder.FolderName = folderName;
97 this.InventoryFolders.Add(Folder.FolderID, Folder); 95 InventoryFolders.Add(Folder.FolderID, Folder);
98 return (true); 96 return (true);
99 } 97 }
100 98
101 public bool CreateNewFolder(LLUUID folderID, ushort type, string folderName, LLUUID parentID) 99 public bool CreateNewFolder(LLUUID folderID, ushort type, string folderName, LLUUID parentID)
102 { 100 {
103 if (!this.InventoryFolders.ContainsKey(folderID)) 101 if (!InventoryFolders.ContainsKey(folderID))
104 { 102 {
105 System.Console.WriteLine("creating new folder called " + folderName + " in agents inventory"); 103 System.Console.WriteLine("creating new folder called " + folderName + " in agents inventory");
106 InventoryFolder Folder = new InventoryFolder(); 104 InventoryFolder Folder = new InventoryFolder();
107 Folder.FolderID = folderID; 105 Folder.FolderID = folderID;
108 Folder.OwnerID = this.AgentID; 106 Folder.OwnerID = AgentID;
109 Folder.DefaultType = type; 107 Folder.DefaultType = type;
110 Folder.FolderName = folderName; 108 Folder.FolderName = folderName;
111 Folder.ParentID = parentID; 109 Folder.ParentID = parentID;
112 this.InventoryFolders.Add(Folder.FolderID, Folder); 110 InventoryFolders.Add(Folder.FolderID, Folder);
113 } 111 }
114 return (true); 112 return (true);
115 } 113 }
116 114
117 public bool HasFolder(LLUUID folderID) 115 public bool HasFolder(LLUUID folderID)
118 { 116 {
119 if (this.InventoryFolders.ContainsKey(folderID)) 117 if (InventoryFolders.ContainsKey(folderID))
120 { 118 {
121 return true; 119 return true;
122 } 120 }
@@ -125,7 +123,7 @@ namespace OpenSim.Framework
125 123
126 public LLUUID GetFolderID(string folderName) 124 public LLUUID GetFolderID(string folderName)
127 { 125 {
128 foreach (InventoryFolder inv in this.InventoryFolders.Values) 126 foreach (InventoryFolder inv in InventoryFolders.Values)
129 { 127 {
130 if (inv.FolderName == folderName) 128 if (inv.FolderName == folderName)
131 { 129 {
@@ -137,11 +135,12 @@ namespace OpenSim.Framework
137 135
138 public bool UpdateItemAsset(LLUUID itemID, AssetBase asset) 136 public bool UpdateItemAsset(LLUUID itemID, AssetBase asset)
139 { 137 {
140 if(this.InventoryItems.ContainsKey(itemID)) 138 if (InventoryItems.ContainsKey(itemID))
141 { 139 {
142 InventoryItem Item = this.InventoryItems[itemID]; 140 InventoryItem Item = InventoryItems[itemID];
143 Item.AssetID = asset.FullID; 141 Item.AssetID = asset.FullID;
144 System.Console.WriteLine("updated inventory item " + itemID.ToStringHyphenated() + " so it now is set to asset " + asset.FullID.ToStringHyphenated()); 142 System.Console.WriteLine("updated inventory item " + itemID.ToStringHyphenated() +
143 " so it now is set to asset " + asset.FullID.ToStringHyphenated());
145 //TODO need to update the rest of the info 144 //TODO need to update the rest of the info
146 } 145 }
147 return true; 146 return true;
@@ -150,10 +149,10 @@ namespace OpenSim.Framework
150 public bool UpdateItemDetails(LLUUID itemID, UpdateInventoryItemPacket.InventoryDataBlock packet) 149 public bool UpdateItemDetails(LLUUID itemID, UpdateInventoryItemPacket.InventoryDataBlock packet)
151 { 150 {
152 System.Console.WriteLine("updating inventory item details"); 151 System.Console.WriteLine("updating inventory item details");
153 if (this.InventoryItems.ContainsKey(itemID)) 152 if (InventoryItems.ContainsKey(itemID))
154 { 153 {
155 System.Console.WriteLine("changing name to "+ Util.FieldToString(packet.Name)); 154 System.Console.WriteLine("changing name to " + Util.FieldToString(packet.Name));
156 InventoryItem Item = this.InventoryItems[itemID]; 155 InventoryItem Item = InventoryItems[itemID];
157 Item.Name = Util.FieldToString(packet.Name); 156 Item.Name = Util.FieldToString(packet.Name);
158 System.Console.WriteLine("updated inventory item " + itemID.ToStringHyphenated()); 157 System.Console.WriteLine("updated inventory item " + itemID.ToStringHyphenated());
159 //TODO need to update the rest of the info 158 //TODO need to update the rest of the info
@@ -163,7 +162,7 @@ namespace OpenSim.Framework
163 162
164 public LLUUID AddToInventory(LLUUID folderID, AssetBase asset) 163 public LLUUID AddToInventory(LLUUID folderID, AssetBase asset)
165 { 164 {
166 if (this.InventoryFolders.ContainsKey(folderID)) 165 if (InventoryFolders.ContainsKey(folderID))
167 { 166 {
168 LLUUID NewItemID = LLUUID.Random(); 167 LLUUID NewItemID = LLUUID.Random();
169 168
@@ -176,7 +175,7 @@ namespace OpenSim.Framework
176 Item.Name = asset.Name; 175 Item.Name = asset.Name;
177 Item.Description = asset.Description; 176 Item.Description = asset.Description;
178 Item.InvType = asset.InvType; 177 Item.InvType = asset.InvType;
179 this.InventoryItems.Add(Item.ItemID, Item); 178 InventoryItems.Add(Item.ItemID, Item);
180 InventoryFolder Folder = InventoryFolders[Item.FolderID]; 179 InventoryFolder Folder = InventoryFolders[Item.FolderID];
181 Folder.Items.Add(Item); 180 Folder.Items.Add(Item);
182 return (Item.ItemID); 181 return (Item.ItemID);
@@ -190,10 +189,10 @@ namespace OpenSim.Framework
190 public bool DeleteFromInventory(LLUUID itemID) 189 public bool DeleteFromInventory(LLUUID itemID)
191 { 190 {
192 bool res = false; 191 bool res = false;
193 if (this.InventoryItems.ContainsKey(itemID)) 192 if (InventoryItems.ContainsKey(itemID))
194 { 193 {
195 InventoryItem item = this.InventoryItems[itemID]; 194 InventoryItem item = InventoryItems[itemID];
196 this.InventoryItems.Remove(itemID); 195 InventoryItems.Remove(itemID);
197 foreach (InventoryFolder fold in InventoryFolders.Values) 196 foreach (InventoryFolder fold in InventoryFolders.Values)
198 { 197 {
199 if (fold.Items.Contains(item)) 198 if (fold.Items.Contains(item))
@@ -203,7 +202,6 @@ namespace OpenSim.Framework
203 } 202 }
204 } 203 }
205 res = true; 204 res = true;
206
207 } 205 }
208 return res; 206 return res;
209 } 207 }
@@ -225,7 +223,6 @@ namespace OpenSim.Framework
225 Items = new List<InventoryItem>(); 223 Items = new List<InventoryItem>();
226 //Subfolders = new List<InventoryFolder>(); 224 //Subfolders = new List<InventoryFolder>();
227 } 225 }
228
229 } 226 }
230 227
231 public class InventoryItem 228 public class InventoryItem
@@ -237,12 +234,12 @@ namespace OpenSim.Framework
237 public LLUUID CreatorID; 234 public LLUUID CreatorID;
238 public sbyte InvType; 235 public sbyte InvType;
239 public sbyte Type; 236 public sbyte Type;
240 public string Name =""; 237 public string Name = "";
241 public string Description; 238 public string Description;
242 239
243 public InventoryItem() 240 public InventoryItem()
244 { 241 {
245 this.CreatorID = LLUUID.Zero; 242 CreatorID = LLUUID.Zero;
246 } 243 }
247 244
248 public string ExportString() 245 public string ExportString()
@@ -251,11 +248,11 @@ namespace OpenSim.Framework
251 string result = ""; 248 string result = "";
252 result += "\tinv_object\t0\n\t{\n"; 249 result += "\tinv_object\t0\n\t{\n";
253 result += "\t\tobj_id\t%s\n"; 250 result += "\t\tobj_id\t%s\n";
254 result += "\t\tparent_id\t"+ ItemID.ToString() +"\n"; 251 result += "\t\tparent_id\t" + ItemID.ToString() + "\n";
255 result += "\t\ttype\t"+ typ +"\n"; 252 result += "\t\ttype\t" + typ + "\n";
256 result += "\t\tname\t" + Name+"|\n"; 253 result += "\t\tname\t" + Name + "|\n";
257 result += "\t}\n"; 254 result += "\t}\n";
258 return result; 255 return result;
259 } 256 }
260 } 257 }
261} 258} \ No newline at end of file