Applying patch from lkalif to add support for inventory links to the SimianGrid connectors
							parent
							
								
									54a5b6f434
								
							
						
					
					
						commit
						6892fc41f7
					
				| 
						 | 
				
			
			@ -106,6 +106,39 @@ namespace OpenSim.Framework
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static string SLInvTypeToContentType(int invType)
 | 
			
		||||
        {
 | 
			
		||||
            switch ((InventoryType)invType)
 | 
			
		||||
            {
 | 
			
		||||
                case InventoryType.Animation:
 | 
			
		||||
                    return "application/vnd.ll.animation";
 | 
			
		||||
                case InventoryType.CallingCard:
 | 
			
		||||
                    return "application/vnd.ll.callingcard";
 | 
			
		||||
                case InventoryType.Folder:
 | 
			
		||||
                    return "application/vnd.ll.folder";
 | 
			
		||||
                case InventoryType.Gesture:
 | 
			
		||||
                    return "application/vnd.ll.gesture";
 | 
			
		||||
                case InventoryType.Landmark:
 | 
			
		||||
                    return "application/vnd.ll.landmark";
 | 
			
		||||
                case InventoryType.LSL:
 | 
			
		||||
                    return "application/vnd.ll.lsltext";
 | 
			
		||||
                case InventoryType.Notecard:
 | 
			
		||||
                    return "application/vnd.ll.notecard";
 | 
			
		||||
                case InventoryType.Attachment:
 | 
			
		||||
                case InventoryType.Object:
 | 
			
		||||
                    return "application/vnd.ll.primitive";
 | 
			
		||||
                case InventoryType.Sound:
 | 
			
		||||
                    return "application/ogg";
 | 
			
		||||
                case InventoryType.Snapshot:
 | 
			
		||||
                case InventoryType.Texture:
 | 
			
		||||
                    return "image/x-j2c";
 | 
			
		||||
                case InventoryType.Wearable:
 | 
			
		||||
                    return "application/vnd.ll.clothing";
 | 
			
		||||
                default:
 | 
			
		||||
                    return "application/octet-stream";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static sbyte ContentTypeToSLAssetType(string contentType)
 | 
			
		||||
        {
 | 
			
		||||
            switch (contentType)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -583,6 +583,14 @@ namespace OpenSim.Services.Connectors.SimianGrid
 | 
			
		|||
                { "Permissions", permissions }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            // Add different asset type only if it differs from inventory type
 | 
			
		||||
            // (needed for links)
 | 
			
		||||
            string invContentType = SLUtil.SLInvTypeToContentType(item.InvType);
 | 
			
		||||
            string assetContentType = SLUtil.SLAssetTypeToContentType(item.AssetType);
 | 
			
		||||
 | 
			
		||||
            if (invContentType != assetContentType)
 | 
			
		||||
                extraData["LinkedItemType"] = OSD.FromString(assetContentType);
 | 
			
		||||
 | 
			
		||||
            NameValueCollection requestArgs = new NameValueCollection
 | 
			
		||||
            {
 | 
			
		||||
                { "RequestMethod", "AddInventoryItem" },
 | 
			
		||||
| 
						 | 
				
			
			@ -593,6 +601,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
 | 
			
		|||
                { "Name", item.Name },
 | 
			
		||||
                { "Description", item.Description },
 | 
			
		||||
                { "CreatorID", item.CreatorId },
 | 
			
		||||
                { "ContentType", invContentType },
 | 
			
		||||
                { "ExtraData", OSDParser.SerializeJsonString(extraData) }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -781,6 +790,9 @@ namespace OpenSim.Services.Connectors.SimianGrid
 | 
			
		|||
                            invItem.GroupPermissions = perms["GroupMask"].AsUInteger();
 | 
			
		||||
                            invItem.NextPermissions = perms["NextOwnerMask"].AsUInteger();
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        if (extraData.ContainsKey("LinkedItemType"))
 | 
			
		||||
                            invItem.AssetType = extraData["LinkedItemType"].AsInteger();
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    if (invItem.BasePermissions == 0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue