/// <summary>
        /// Add a scene object item to the given part.
        /// </summary>
        /// <remarks>
        /// TODO: Accept input for item and asset IDs to avoid mysterious script failures that try to use any of these
        /// functions more than once in a test.
        /// </remarks>
        ///
        /// <param name="assetService"></param>
        /// <param name="sop"></param>
        /// <param name="itemName"></param>
        /// <param name="id"></param>
        /// <param name="userId"></param>
        public static TaskInventoryItem AddSceneObject(
            IAssetService assetService, SceneObjectPart sop, string itemName, UUID itemId, UUID userId)
        {
            SceneObjectGroup taskSceneObject = SceneHelpers.CreateSceneObject(1, userId);

            return(TaskInventoryHelpers.AddSceneObject(
                       assetService, sop, itemName, itemId, taskSceneObject, TestHelpers.ParseTail(0x10)));
        }
Esempio n. 2
0
        /// <summary>
        /// Add a scene object item to the given part.
        /// </summary>
        /// <param name="scene"></param>
        /// <param name="sop"></param>
        /// <param name="itemName"></param>
        /// <param name="id"></param>
        public static TaskInventoryItem AddSceneObject(Scene scene, SceneObjectPart sop, string itemName, UUID id)
        {
            SceneObjectGroup taskSceneObject      = SceneHelpers.CreateSceneObject(1, UUID.Zero);
            AssetBase        taskSceneObjectAsset = AssetHelpers.CreateAsset(0x10, taskSceneObject);

            scene.AssetService.Store(taskSceneObjectAsset);
            TaskInventoryItem taskSceneObjectItem
                = new TaskInventoryItem
                {
                Name = itemName, AssetID = taskSceneObjectAsset.FullID, ItemID = id,
                Type = (int)AssetType.Object, InvType = (int)InventoryType.Object
                };

            sop.Inventory.AddInventoryItem(taskSceneObjectItem, true);

            return(taskSceneObjectItem);
        }
        /// <summary>
        /// Creates a notecard in the objects folder and specify an item id.
        /// </summary>
        /// <param name="scene"></param>
        /// <param name="itemName"></param>
        /// <param name="itemId"></param>
        /// <param name="assetId"></param>
        /// <param name="userId"></param>
        /// <param name="type">Type of item to create</param>
        /// <returns></returns>
        public static InventoryItemBase CreateInventoryItem(
            Scene scene, string itemName, UUID itemId, UUID assetId, UUID userId, InventoryType itemType)
        {
            AssetBase asset = null;

            if (itemType == InventoryType.Notecard)
            {
                asset           = AssetHelpers.CreateNotecardAsset();
                asset.CreatorID = userId.ToString();
            }
            else if (itemType == InventoryType.Object)
            {
                asset = AssetHelpers.CreateAsset(assetId, SceneHelpers.CreateSceneObject(1, userId));
            }
            else
            {
                throw new Exception(string.Format("Inventory type {0} not supported", itemType));
            }

            return(AddInventoryItem(scene, itemName, itemId, itemType, asset, userId));
        }
Esempio n. 4
0
        /// <summary>
        /// Creates a notecard in the objects folder and specify an item id.
        /// </summary>
        /// <param name="scene"></param>
        /// <param name="itemName"></param>
        /// <param name="itemId"></param>
        /// <param name="assetId"></param>
        /// <param name="userId"></param>
        /// <param name="type">Type of item to create</param>
        /// <returns></returns>
        public static InventoryItemBase CreateInventoryItem(
            Scene scene, string itemName, UUID itemId, UUID assetId, UUID userId, InventoryType type)
        {
            AssetBase asset = null;

            if (type == InventoryType.Notecard)
            {
                asset           = AssetHelpers.CreateNotecardAsset();
                asset.CreatorID = userId.ToString();
            }
            else if (type == InventoryType.Object)
            {
                asset = AssetHelpers.CreateAsset(assetId, SceneHelpers.CreateSceneObject(1, userId));
            }
            else
            {
                throw new Exception(string.Format("Inventory type {0} not supported", type));
            }

            scene.AssetService.Store(asset);

            InventoryItemBase item = new InventoryItemBase();

            item.Name      = itemName;
            item.AssetID   = asset.FullID;
            item.ID        = itemId;
            item.Owner     = userId;
            item.AssetType = asset.Type;
            item.InvType   = (int)type;

            InventoryFolderBase folder = scene.InventoryService.GetFolderForType(userId, AssetType.Notecard);

            item.Folder = folder.ID;
            scene.AddInventoryItem(item);

            return(item);
        }