diff --git a/OpenSim.RegionServer/AgentAssetUpload.cs b/OpenSim.RegionServer/AgentAssetUpload.cs index bf8531aa44..f6b388d61c 100644 --- a/OpenSim.RegionServer/AgentAssetUpload.cs +++ b/OpenSim.RegionServer/AgentAssetUpload.cs @@ -84,14 +84,14 @@ namespace OpenSim } - else if (pack.AssetBlock.Type == 13 | pack.AssetBlock.Type == 5) + else if (pack.AssetBlock.Type == 13 | pack.AssetBlock.Type == 5 | pack.AssetBlock.Type == 7) { asset = new AssetBase(); asset.FullID = assetID; // Console.WriteLine("skin asset id is " + assetID.ToStringHyphenated()); asset.Type = pack.AssetBlock.Type; - asset.InvType = asset.Type; + asset.InvType = asset.Type ; asset.Name = "NewClothing" + Util.RandomClass.Next(1, 1000).ToString("000"); asset.Data = pack.AssetBlock.AssetData; diff --git a/OpenSim.RegionServer/Assets/AssetCache.cs b/OpenSim.RegionServer/Assets/AssetCache.cs index 244f562098..196fb57f04 100644 --- a/OpenSim.RegionServer/Assets/AssetCache.cs +++ b/OpenSim.RegionServer/Assets/AssetCache.cs @@ -329,6 +329,7 @@ namespace OpenSim.Assets /// public void AddAssetRequest(SimClient userInfo, TransferRequestPacket transferRequest) { + Console.WriteLine("AssetCache- got asset request: " + transferRequest.TransferInfo.TransferID.ToString()); LLUUID requestID = new LLUUID(transferRequest.TransferInfo.Params, 0); //check to see if asset is in local cache, if not we need to request it from asset server. if (!this.Assets.ContainsKey(requestID)) @@ -337,6 +338,7 @@ namespace OpenSim.Assets // so request from asset server if (!this.RequestedAssets.ContainsKey(requestID)) { + Console.WriteLine("which isn't in our cache, so requesting from asset server"); AssetRequest request = new AssetRequest(); request.RequestUser = userInfo; request.RequestAssetID = requestID; @@ -347,6 +349,7 @@ namespace OpenSim.Assets return; } //it is in our cache + Console.WriteLine("which is in our cache so will be sending it"); AssetInfo asset = this.Assets[requestID]; //work out how many packets it should be sent in diff --git a/OpenSim.RegionServer/SimClient.cs b/OpenSim.RegionServer/SimClient.cs index ec6d3dcb6c..9411dac70a 100644 --- a/OpenSim.RegionServer/SimClient.cs +++ b/OpenSim.RegionServer/SimClient.cs @@ -341,6 +341,10 @@ namespace OpenSim { this.UploadAssets.CreateInventoryItem(createItem); } + else + { + this.CreateInventoryItem(createItem); + } break; case PacketType.FetchInventory: //Console.WriteLine("fetch item packet"); @@ -735,5 +739,26 @@ namespace OpenSim } return inventory; } + + private void CreateInventoryItem(CreateInventoryItemPacket packet) + { + if (packet.InventoryBlock.Type == 7) + { + Console.WriteLine(packet.ToString()); + this.debug = true; + //lets try this out with creating a notecard + AssetBase asset = new AssetBase(); + asset.Name = Helpers.FieldToString(packet.InventoryBlock.Name); + asset.Description = Helpers.FieldToString(packet.InventoryBlock.Description); + asset.InvType = packet.InventoryBlock.InvType; + asset.Type = packet.InventoryBlock.Type; + asset.FullID = LLUUID.Random(); + asset.Data = new byte[0]; + Console.WriteLine("created new notecard with asset : " + asset.FullID.ToStringHyphenated()); + + m_assetCache.AddAsset(asset); + m_inventoryCache.AddNewInventoryItem(this, packet.InventoryBlock.FolderID, asset); + } + } } }