/// <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))); }
/// <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)); }
/// <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); }