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