From e89f0b3f71dc8bd439fcfc23d12b305369eac36b Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 13 Aug 2010 22:29:42 +0100
Subject: refactor: move Scene.PerformObjectBuy into BuySellModule
---
OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 2 +-
OpenSim/Region/Framework/Scenes/Scene.cs | 159 ---------------------
2 files changed, 1 insertion(+), 160 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 01edf51..4f5a65e 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -670,7 +670,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// Create a new asset data structure.
///
- private AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data, UUID creatorID)
+ public AssetBase CreateAsset(string name, string description, sbyte assetType, byte[] data, UUID creatorID)
{
AssetBase asset = new AssetBase(UUID.Random(), name, assetType, creatorID.ToString());
asset.Description = description;
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index b6def14..5f6748e 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -4486,165 +4486,6 @@ namespace OpenSim.Region.Framework.Scenes
return inv.NeedSceneCacheClear(agentID, this);
}
- public bool PerformObjectBuy(IClientAPI remoteClient, UUID categoryID,
- uint localID, byte saleType)
- {
- SceneObjectPart part = GetSceneObjectPart(localID);
-
- if (part == null)
- return false;
-
- if (part.ParentGroup == null)
- return false;
-
- SceneObjectGroup group = part.ParentGroup;
-
- switch (saleType)
- {
- case 1: // Sell as original (in-place sale)
- uint effectivePerms=group.GetEffectivePermissions();
-
- if ((effectivePerms & (uint)PermissionMask.Transfer) == 0)
- {
- m_dialogModule.SendAlertToUser(remoteClient, "This item doesn't appear to be for sale");
- return false;
- }
-
- group.SetOwnerId(remoteClient.AgentId);
- group.SetRootPartOwner(part, remoteClient.AgentId,
- remoteClient.ActiveGroupId);
-
- List partList =
- new List(group.Children.Values);
-
- if (Permissions.PropagatePermissions())
- {
- foreach (SceneObjectPart child in partList)
- {
- child.Inventory.ChangeInventoryOwner(remoteClient.AgentId);
- child.TriggerScriptChangedEvent(Changed.OWNER);
- child.ApplyNextOwnerPermissions();
- }
- }
-
- part.ObjectSaleType = 0;
- part.SalePrice = 10;
-
- group.HasGroupChanged = true;
- part.GetProperties(remoteClient);
- part.TriggerScriptChangedEvent(Changed.OWNER);
- group.ResumeScripts();
- part.ScheduleFullUpdate();
-
- break;
-
- case 2: // Sell a copy
-
-
- Vector3 inventoryStoredPosition = new Vector3
- (((group.AbsolutePosition.X > (int)Constants.RegionSize)
- ? 250
- : group.AbsolutePosition.X)
- ,
- (group.AbsolutePosition.X > (int)Constants.RegionSize)
- ? 250
- : group.AbsolutePosition.X,
- group.AbsolutePosition.Z);
-
- Vector3 originalPosition = group.AbsolutePosition;
-
- group.AbsolutePosition = inventoryStoredPosition;
-
- string sceneObjectXml = SceneObjectSerializer.ToOriginalXmlFormat(group);
- group.AbsolutePosition = originalPosition;
-
- uint perms=group.GetEffectivePermissions();
-
- if ((perms & (uint)PermissionMask.Transfer) == 0)
- {
- m_dialogModule.SendAlertToUser(remoteClient, "This item doesn't appear to be for sale");
- return false;
- }
-
- AssetBase asset = CreateAsset(
- group.GetPartName(localID),
- group.GetPartDescription(localID),
- (sbyte)AssetType.Object,
- Utils.StringToBytes(sceneObjectXml),
- group.OwnerID);
- AssetService.Store(asset);
-
- InventoryItemBase item = new InventoryItemBase();
- item.CreatorId = part.CreatorID.ToString();
-
- item.ID = UUID.Random();
- item.Owner = remoteClient.AgentId;
- item.AssetID = asset.FullID;
- item.Description = asset.Description;
- item.Name = asset.Name;
- item.AssetType = asset.Type;
- item.InvType = (int)InventoryType.Object;
- item.Folder = categoryID;
-
- uint nextPerms=(perms & 7) << 13;
- if ((nextPerms & (uint)PermissionMask.Copy) == 0)
- perms &= ~(uint)PermissionMask.Copy;
- if ((nextPerms & (uint)PermissionMask.Transfer) == 0)
- perms &= ~(uint)PermissionMask.Transfer;
- if ((nextPerms & (uint)PermissionMask.Modify) == 0)
- perms &= ~(uint)PermissionMask.Modify;
-
- item.BasePermissions = perms & part.NextOwnerMask;
- item.CurrentPermissions = perms & part.NextOwnerMask;
- item.NextPermissions = part.NextOwnerMask;
- item.EveryOnePermissions = part.EveryoneMask &
- part.NextOwnerMask;
- item.GroupPermissions = part.GroupMask &
- part.NextOwnerMask;
- item.CurrentPermissions |= 16; // Slam!
- item.CreationDate = Util.UnixTimeSinceEpoch();
-
- if (InventoryService.AddItem(item))
- remoteClient.SendInventoryItemCreateUpdate(item, 0);
- else
- {
- m_dialogModule.SendAlertToUser(remoteClient, "Cannot buy now. Your inventory is unavailable");
- return false;
- }
- break;
-
- case 3: // Sell contents
- List invList = part.Inventory.GetInventoryList();
-
- bool okToSell = true;
-
- foreach (UUID invID in invList)
- {
- TaskInventoryItem item1 = part.Inventory.GetInventoryItem(invID);
- if ((item1.CurrentPermissions &
- (uint)PermissionMask.Transfer) == 0)
- {
- okToSell = false;
- break;
- }
- }
-
- if (!okToSell)
- {
- m_dialogModule.SendAlertToUser(
- remoteClient, "This item's inventory doesn't appear to be for sale");
- return false;
- }
-
- if (invList.Count > 0)
- MoveTaskInventoryItems(remoteClient.AgentId, part.Name,
- part, invList);
- break;
- }
-
- return true;
- }
-
public void CleanTempObjects()
{
List objs = GetEntities();
--
cgit v1.1