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)
|
public static sbyte ContentTypeToSLAssetType(string contentType)
|
||||||
{
|
{
|
||||||
switch (contentType)
|
switch (contentType)
|
||||||
|
|
|
@ -583,6 +583,14 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
||||||
{ "Permissions", permissions }
|
{ "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
|
NameValueCollection requestArgs = new NameValueCollection
|
||||||
{
|
{
|
||||||
{ "RequestMethod", "AddInventoryItem" },
|
{ "RequestMethod", "AddInventoryItem" },
|
||||||
|
@ -593,6 +601,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
||||||
{ "Name", item.Name },
|
{ "Name", item.Name },
|
||||||
{ "Description", item.Description },
|
{ "Description", item.Description },
|
||||||
{ "CreatorID", item.CreatorId },
|
{ "CreatorID", item.CreatorId },
|
||||||
|
{ "ContentType", invContentType },
|
||||||
{ "ExtraData", OSDParser.SerializeJsonString(extraData) }
|
{ "ExtraData", OSDParser.SerializeJsonString(extraData) }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -781,6 +790,9 @@ namespace OpenSim.Services.Connectors.SimianGrid
|
||||||
invItem.GroupPermissions = perms["GroupMask"].AsUInteger();
|
invItem.GroupPermissions = perms["GroupMask"].AsUInteger();
|
||||||
invItem.NextPermissions = perms["NextOwnerMask"].AsUInteger();
|
invItem.NextPermissions = perms["NextOwnerMask"].AsUInteger();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (extraData.ContainsKey("LinkedItemType"))
|
||||||
|
invItem.AssetType = extraData["LinkedItemType"].AsInteger();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (invItem.BasePermissions == 0)
|
if (invItem.BasePermissions == 0)
|
||||||
|
|
Loading…
Reference in New Issue