public static CreateAsset ( |
||
scene | ||
creatorId | UUID | |
return | OpenSim.Framework.AssetBase |
/// <summary> /// Add a simple script to the given part. /// </summary> /// <remarks> /// TODO: Accept input for item and asset IDs so that we have completely replicatable regression tests rather /// than a random component. /// </remarks> /// <param name="assetService"></param> /// <param name="part"></param> /// <param name="itemId">Item UUID for the script</param> /// <param name="assetId">Asset UUID for the script</param> /// <param name="scriptName">Name of the script to add</param> /// <param name="scriptSource">LSL script source</param> /// <returns>The item that was added</returns> public static TaskInventoryItem AddScript( IAssetService assetService, SceneObjectPart part, UUID itemId, UUID assetId, string scriptName, string scriptSource) { AssetScriptText ast = new AssetScriptText(); ast.Source = scriptSource; ast.Encode(); AssetBase asset = AssetHelpers.CreateAsset(assetId, AssetType.LSLText, ast.AssetData, UUID.Zero); assetService.Store(asset); TaskInventoryItem item = new TaskInventoryItem { Name = scriptName, AssetID = assetId, ItemID = itemId, Type = (int)AssetType.LSLText, InvType = (int)InventoryType.LSL }; part.Inventory.AddInventoryItem(item, true); return(item); }
/// <summary> /// Add a notecard item to the given part. /// </summary> /// <param name="assetService"></param> /// <param name="part"></param> /// <param name="itemName"></param> /// <param name="itemID"></param> /// <param name="assetID"></param> /// <param name="text">The tex to put in the notecard.</param> /// <returns>The item that was added</returns> public static TaskInventoryItem AddNotecard( IAssetService assetService, SceneObjectPart part, string itemName, UUID itemID, UUID assetID, string text) { AssetNotecard nc = new AssetNotecard(); nc.BodyText = text; nc.Encode(); AssetBase ncAsset = AssetHelpers.CreateAsset(assetID, AssetType.Notecard, nc.AssetData, UUID.Zero); assetService.Store(ncAsset); TaskInventoryItem ncItem = new TaskInventoryItem { Name = itemName, AssetID = assetID, ItemID = itemID, Type = (int)AssetType.Notecard, InvType = (int)InventoryType.Notecard }; part.Inventory.AddInventoryItem(ncItem, true); return(ncItem); }
/// <summary> /// Add an existing scene object as an item in the user's inventory. /// </summary> /// <remarks> /// Will be added to the system Objects folder. /// </remarks> /// <param name='scene'></param> /// <param name='so'></param> /// <param name='inventoryIdTail'></param> /// <param name='assetIdTail'></param> /// <returns>The inventory item created.</returns> public static InventoryItemBase AddInventoryItem( Scene scene, SceneObjectGroup so, int inventoryIdTail, int assetIdTail) { return(AddInventoryItem( scene, so.Name, TestHelpers.ParseTail(inventoryIdTail), InventoryType.Object, AssetHelpers.CreateAsset(TestHelpers.ParseTail(assetIdTail), so), so.OwnerID)); }
/// <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); }
public static InventoryItemBase CreateInventoryItem( Scene scene, string itemName, UUID itemId, string folderPath, UUID userId) { InventoryItemBase item = new InventoryItemBase(); item.Name = itemName; item.AssetID = AssetHelpers.CreateAsset(scene, userId).FullID; item.ID = itemId; // Really quite bad since the objs folder could be moved in the future and confuse the tests InventoryFolderBase objsFolder = scene.InventoryService.GetFolderForType(userId, AssetType.Object); item.Folder = objsFolder.ID; scene.AddInventoryItem(item); return(item); }
/// <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="itemId"></param> /// <param name="soToAdd"></param> /// <param name="soAssetId"></param> public static TaskInventoryItem AddSceneObject( IAssetService assetService, SceneObjectPart sop, string itemName, UUID itemId, SceneObjectGroup soToAdd, UUID soAssetId) { AssetBase taskSceneObjectAsset = AssetHelpers.CreateAsset(soAssetId, soToAdd); assetService.Store(taskSceneObjectAsset); TaskInventoryItem taskSceneObjectItem = new TaskInventoryItem { Name = itemName, AssetID = taskSceneObjectAsset.FullID, ItemID = itemId, OwnerID = soToAdd.OwnerID, 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> /// Add a notecard item to the given part. /// </summary> /// <param name="scene"></param> /// <param name="part"></param> /// <returns>The item that was added</returns> public static TaskInventoryItem AddNotecard(Scene scene, SceneObjectPart part) { AssetNotecard nc = new AssetNotecard(); nc.BodyText = "Hello World!"; nc.Encode(); UUID ncAssetUuid = new UUID("00000000-0000-0000-1000-000000000000"); UUID ncItemUuid = new UUID("00000000-0000-0000-1100-000000000000"); AssetBase ncAsset = AssetHelpers.CreateAsset(ncAssetUuid, AssetType.Notecard, nc.AssetData, UUID.Zero); scene.AssetService.Store(ncAsset); TaskInventoryItem ncItem = new TaskInventoryItem { Name = "ncItem", AssetID = ncAssetUuid, ItemID = ncItemUuid, Type = (int)AssetType.Notecard, InvType = (int)InventoryType.Notecard }; part.Inventory.AddInventoryItem(ncItem, true); return(ncItem); }
/// <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); }