From de243802334c44967273be2d1455a5f191f75955 Mon Sep 17 00:00:00 2001
From: Justin Clarke Casey
Date: Mon, 23 Jun 2008 18:01:58 +0000
Subject: * Remove all use of asset.InvType, as outlined in mailing list
discussion * This is stage 1, the field will be removed from AssetType and
the assets table if this change doesn't prove problematic
---
.../Modules/World/Archiver/AssetsArchiver.cs | 1 -
.../Modules/World/Archiver/AssetsDearchiver.cs | 3 -
OpenSim/Region/Environment/Scenes/InnerScene.cs | 2 +-
.../Region/Environment/Scenes/Scene.Inventory.cs | 87 +++++++++++++---------
4 files changed, 53 insertions(+), 40 deletions(-)
(limited to 'OpenSim/Region/Environment')
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs
index 4f4a3c3..8b4708c 100644
--- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs
@@ -96,7 +96,6 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
xtw.WriteElementString("name", asset.Name);
xtw.WriteElementString("description", asset.Description);
xtw.WriteElementString("asset-type", asset.Type.ToString());
- xtw.WriteElementString("inventory-type", asset.InvType.ToString());
xtw.WriteEndElement();
}
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs
index 98364d3..527d544 100644
--- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs
@@ -109,7 +109,6 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
metadata.Name = reader.ReadElementString("name");
metadata.Description = reader.ReadElementString("description");
metadata.AssetType = Convert.ToSByte(reader.ReadElementString("asset-type"));
- metadata.AssetType = Convert.ToSByte(reader.ReadElementString("inventory-type"));
m_metadata[filename] = metadata;
@@ -161,7 +160,6 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
AssetBase asset = new AssetBase(new LLUUID(filename), metadata.Name);
asset.Description = metadata.Description;
asset.Type = metadata.AssetType;
- asset.InvType = metadata.InventoryType;
asset.Data = data;
m_cache.AddAsset(asset);
@@ -182,7 +180,6 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
public string Name;
public string Description;
public sbyte AssetType;
- public sbyte InventoryType;
}
}
}
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index 7529d77..c0edaba 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -433,7 +433,7 @@ namespace OpenSim.Region.Environment.Scenes
SceneObjectGroup group = (SceneObjectGroup)obj;
group.DetachToInventoryPrep();
m_log.Debug("[DETACH]: Saving attachpoint: " + ((uint)group.GetAttachmentPoint()).ToString());
- m_parentScene.updateKnownAsset(remoteClient, group, group.GetFromAssetID(),group.OwnerID);
+ m_parentScene.updateKnownAsset(remoteClient, group, group.GetFromAssetID(), group.OwnerID);
m_parentScene.DeleteSceneObject(group);
}
}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index ff62a3b..e6bae4c 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -164,8 +164,7 @@ namespace OpenSim.Region.Environment.Scenes
if (item != null)
{
AssetBase asset =
- CreateAsset(item.Name, item.Description, (sbyte) item.InvType,
- (sbyte) item.AssetType, data);
+ CreateAsset(item.Name, item.Description, (sbyte)item.AssetType, data);
AssetCache.AddAsset(asset);
item.AssetID = asset.FullID;
@@ -241,10 +240,7 @@ namespace OpenSim.Region.Environment.Scenes
return;
}
- // Create new asset
- // XXX Hardcoding the numbers is a temporary measure - need an enumeration for this
- // There may well be one in libsecondlife
- AssetBase asset = CreateAsset(item.Name, item.Description, 10, 10, data);
+ AssetBase asset = CreateAsset(item.Name, item.Description, (sbyte)AssetType.LSLText, data);
AssetCache.AddAsset(asset);
// Update item with new asset
@@ -521,12 +517,14 @@ namespace OpenSim.Region.Environment.Scenes
if (remoteClient.AgentId == oldAgentID)
{
CreateNewInventoryItem(
- remoteClient, newFolderID, callbackID, asset, item.BasePermissions, item.CurrentPermissions, item.EveryOnePermissions, item.NextPermissions);
+ remoteClient, newFolderID, callbackID, asset, (sbyte)item.InvType,
+ item.BasePermissions, item.CurrentPermissions, item.EveryOnePermissions, item.NextPermissions);
}
else
{
CreateNewInventoryItem(
- remoteClient, newFolderID, callbackID, asset, item.NextPermissions, item.NextPermissions, item.EveryOnePermissions & item.NextPermissions, item.NextPermissions);
+ remoteClient, newFolderID, callbackID, asset, (sbyte)item.InvType,
+ item.NextPermissions, item.NextPermissions, item.EveryOnePermissions & item.NextPermissions, item.NextPermissions);
}
}
else
@@ -537,15 +535,24 @@ namespace OpenSim.Region.Environment.Scenes
}
}
- private AssetBase CreateAsset(string name, string description, sbyte invType, sbyte assetType, byte[] data)
+ ///
+ /// Create a new asset data structure.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data)
{
AssetBase asset = new AssetBase();
asset.Name = name;
asset.Description = description;
- asset.InvType = invType;
asset.Type = assetType;
asset.FullID = LLUUID.Random();
asset.Data = (data == null) ? new byte[1] : data;
+
return asset;
}
@@ -603,10 +610,21 @@ namespace OpenSim.Region.Environment.Scenes
}
}
+ ///
+ /// Create a new inventory item.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
private void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID folderID, uint callbackID,
- AssetBase asset, uint nextOwnerMask)
+ AssetBase asset, sbyte invType, uint nextOwnerMask)
{
- CreateNewInventoryItem(remoteClient, folderID, callbackID, asset, (uint)PermissionMask.All, (uint)PermissionMask.All, 0, nextOwnerMask);
+ CreateNewInventoryItem(
+ remoteClient, folderID, callbackID, asset, invType,
+ (uint)PermissionMask.All, (uint)PermissionMask.All, 0, nextOwnerMask);
}
///
@@ -616,9 +634,11 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
+ ///
///
- private void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID folderID, uint callbackID,
- AssetBase asset, uint baseMask, uint currentMask, uint everyoneMask, uint nextOwnerMask)
+ private void CreateNewInventoryItem(
+ IClientAPI remoteClient, LLUUID folderID, uint callbackID, AssetBase asset, sbyte invType,
+ uint baseMask, uint currentMask, uint everyoneMask, uint nextOwnerMask)
{
CachedUserInfo userInfo
= CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
@@ -633,7 +653,7 @@ namespace OpenSim.Region.Environment.Scenes
item.Description = asset.Description;
item.Name = asset.Name;
item.AssetType = asset.Type;
- item.InvType = asset.InvType;
+ item.InvType = invType;
item.Folder = folderID;
item.CurrentPermissions = currentMask;
item.NextPermissions = nextOwnerMask;
@@ -692,10 +712,10 @@ namespace OpenSim.Region.Environment.Scenes
data=Encoding.ASCII.GetBytes(strdata);
}
- AssetBase asset = CreateAsset(name, description, invType, assetType, data);
+ AssetBase asset = CreateAsset(name, description, assetType, data);
AssetCache.AddAsset(asset);
- CreateNewInventoryItem(remoteClient, folderID, callbackID, asset, nextOwnerMask);
+ CreateNewInventoryItem(remoteClient, folderID, callbackID, asset, invType, nextOwnerMask);
}
else
{
@@ -926,8 +946,7 @@ namespace OpenSim.Region.Environment.Scenes
public void UpdateTaskInventory(IClientAPI remoteClient, LLUUID transactionID, TaskInventoryItem itemInfo,
uint primLocalID)
{
- LLUUID itemID=itemInfo.ItemID;
- LLUUID folderID=itemInfo.ParentID;
+ LLUUID itemID = itemInfo.ItemID;
// Find the prim we're dealing with
SceneObjectPart part = GetSceneObjectPart(primLocalID);
@@ -1057,7 +1076,7 @@ namespace OpenSim.Region.Environment.Scenes
if (part == null)
return;
- AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.InvType, (sbyte)itemBase.AssetType, Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}"));
+ AssetBase asset = CreateAsset(itemBase.Name, itemBase.Description, (sbyte)itemBase.AssetType, Encoding.ASCII.GetBytes("default\n{\n state_entry()\n {\n llSay(0, \"Script running\");\n }\n}"));
AssetCache.AddAsset(asset);
TaskInventoryItem taskItem=new TaskInventoryItem();
@@ -1084,6 +1103,7 @@ namespace OpenSim.Region.Environment.Scenes
part.AddInventoryItem(taskItem);
part.GetProperties(remoteClient);
+
if (ExternalChecks.ExternalChecksCanRunScript(taskItem.AssetID, part.UUID, remoteClient.AgentId))
{
part.StartScript(taskItem);
@@ -1160,12 +1180,12 @@ namespace OpenSim.Region.Environment.Scenes
CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
if (userInfo != null)
{
- string searchFolder = "";
+// string searchFolder = "";
- if (DeRezPacket.AgentBlock.Destination == 6)
- searchFolder = "Trash";
- else if (DeRezPacket.AgentBlock.Destination == 9)
- searchFolder = "Lost And Found";
+// if (DeRezPacket.AgentBlock.Destination == 6)
+// searchFolder = "Trash";
+// else if (DeRezPacket.AgentBlock.Destination == 9)
+// searchFolder = "Lost And Found";
// If we're deleting someone else's item, it goes back to their deleted items folder
// If we're returning someone's item, it goes back to the owner's Lost And Found folder.
@@ -1196,8 +1216,7 @@ namespace OpenSim.Region.Environment.Scenes
AssetBase asset = CreateAsset(
((SceneObjectGroup) selectedEnt).GetPartName(selectedEnt.LocalId),
((SceneObjectGroup) selectedEnt).GetPartDescription(selectedEnt.LocalId),
- (sbyte) InventoryType.Object,
- (sbyte) AssetType.Object,
+ (sbyte)AssetType.Object,
Helpers.StringToField(sceneObjectXml));
AssetCache.AddAsset(asset);
@@ -1214,7 +1233,7 @@ namespace OpenSim.Region.Environment.Scenes
item.Description = asset.Description;
item.Name = asset.Name;
item.AssetType = asset.Type;
- item.InvType = asset.InvType;
+ item.InvType = (int)InventoryType.Object;
item.Folder = folderID;
if ((remoteClient.AgentId != objectGroup.RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions())
{
@@ -1286,7 +1305,6 @@ namespace OpenSim.Region.Environment.Scenes
// search through folders to find the asset.
while (searchfolders.Count > 0)
{
-
InventoryFolderImpl fld = searchfolders.Dequeue();
lock (fld)
{
@@ -1308,10 +1326,10 @@ namespace OpenSim.Region.Environment.Scenes
}
}
}
+
AssetBase asset = CreateAsset(
objectGroup.GetPartName(objectGroup.LocalId),
objectGroup.GetPartDescription(objectGroup.LocalId),
- (sbyte)InventoryType.Object,
(sbyte)AssetType.Object,
Helpers.StringToField(sceneObjectXml));
AssetCache.AddAsset(asset);
@@ -1324,7 +1342,7 @@ namespace OpenSim.Region.Environment.Scenes
item.Description = asset.Description;
item.Name = asset.Name;
item.AssetType = asset.Type;
- item.InvType = asset.InvType;
+ item.InvType = (int)InventoryType.Object;
// Sticking it in root folder for now.. objects folder later?
@@ -1369,7 +1387,6 @@ namespace OpenSim.Region.Environment.Scenes
AssetBase asset = CreateAsset(
objectGroup.GetPartName(objectGroup.LocalId),
objectGroup.GetPartDescription(objectGroup.LocalId),
- (sbyte)InventoryType.Object,
(sbyte)AssetType.Object,
Helpers.StringToField(sceneObjectXml));
AssetCache.AddAsset(asset);
@@ -1382,7 +1399,7 @@ namespace OpenSim.Region.Environment.Scenes
item.Description = asset.Description;
item.Name = asset.Name;
item.AssetType = asset.Type;
- item.InvType = asset.InvType;
+ item.InvType = (int)InventoryType.Object;
// Sticking it in root folder for now.. objects folder later?
@@ -1748,7 +1765,6 @@ namespace OpenSim.Region.Environment.Scenes
AssetBase asset = CreateAsset(
returnobjects[i].GetPartName(returnobjects[i].LocalId),
returnobjects[i].GetPartDescription(returnobjects[i].LocalId),
- (sbyte)InventoryType.Object,
(sbyte)AssetType.Object,
Helpers.StringToField(sceneObjectXml));
AssetCache.AddAsset(asset);
@@ -1761,8 +1777,9 @@ namespace OpenSim.Region.Environment.Scenes
item.Description = asset.Description;
item.Name = asset.Name;
item.AssetType = asset.Type;
- item.InvType = asset.InvType;
+ item.InvType = (int)InventoryType.Object;
item.Folder = folderID;
+
if ((AgentId != returnobjects[i].RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions())
{
uint perms = returnobjects[i].GetEffectivePermissions();
--
cgit v1.1