From c487df6d4f8847471d56c47e699516ea77476710 Mon Sep 17 00:00:00 2001 From: Casper Warden <216465704+casperwardensl@users.noreply.github.com> Date: Wed, 22 Nov 2023 00:05:51 +0000 Subject: [PATCH] Ensure task copied inventory is named correctly --- lib/classes/commands/RegionCommands.ts | 48 ++++++-------------------- lib/classes/public/GameObject.ts | 4 +-- package-lock.json | 4 +-- package.json | 2 +- 4 files changed, 15 insertions(+), 43 deletions(-) diff --git a/lib/classes/commands/RegionCommands.ts b/lib/classes/commands/RegionCommands.ts index 75f5bf0..5461644 100644 --- a/lib/classes/commands/RegionCommands.ts +++ b/lib/classes/commands/RegionCommands.ts @@ -845,7 +845,7 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.clothing[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item); + await object.dropInventoryIntoContents(item, invItem.name); } } break; @@ -857,7 +857,7 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.settings[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item); + await object.dropInventoryIntoContents(item, invItem.name); } } break; @@ -870,7 +870,7 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.bodyparts[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item); + await object.dropInventoryIntoContents(item, invItem.name); } } break; @@ -882,7 +882,7 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.notecards[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item); + await object.dropInventoryIntoContents(item, invItem.name); } } break; @@ -894,7 +894,7 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.sounds[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item); + await object.dropInventoryIntoContents(item, invItem.name); } } break; @@ -906,7 +906,7 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.gestures[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item); + await object.dropInventoryIntoContents(item, invItem.name); } } break; @@ -919,7 +919,7 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.scripts[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item); + await object.dropInventoryIntoContents(item, invItem.name); } } break; @@ -931,7 +931,7 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.animations[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item); + await object.dropInventoryIntoContents(item, invItem.name); } } break; @@ -943,7 +943,7 @@ export class RegionCommands extends CommandsBase const inventoryItem = buildMap.assetMap.objects[invItem.itemID.toString()]; if (inventoryItem !== null) { - await object.dropInventoryIntoContents(inventoryItem); + await object.dropInventoryIntoContents(inventoryItem, invItem.name); } else { @@ -960,7 +960,7 @@ export class RegionCommands extends CommandsBase const texItem = buildMap.assetMap.textures[invItem.assetID.toString()]; if (texItem.item !== null) { - await object.dropInventoryIntoContents(texItem.item); + await object.dropInventoryIntoContents(texItem.item, invItem.name); } else { @@ -1268,34 +1268,6 @@ export class RegionCommands extends CommandsBase buildMap.primReservoir = await this.createPrims(buildMap.primsNeeded, agentPos); } - /* - const parts = []; - parts.push(this.buildPart(obj, Vector3.getZero(), Quaternion.getIdentity(), buildMap, skipMove)); - - if (obj.children) - { - if (obj.Position === undefined) - { - obj.Position = Vector3.getZero(); - } - if (obj.Rotation === undefined) - { - obj.Rotation = Quaternion.getIdentity(); - } - let childNumber = 0; - for (const child of obj.children) - { - if (child.Position !== undefined && child.Rotation !== undefined) - { - const objPos = new Vector3(obj.Position); - const objRot = new Quaternion(obj.Rotation); - parts.push(this.buildPart(child, objPos, objRot, buildMap, skipMove)); - console.log(' ... Building child ' + String(++childNumber)); - } - } - } - const results: GameObject[] = await Promise.all(parts); - */ let storedPosition: Vector3 | undefined = undefined; if (skipMove) { diff --git a/lib/classes/public/GameObject.ts b/lib/classes/public/GameObject.ts index 43c66cb..1a4a11e 100644 --- a/lib/classes/public/GameObject.ts +++ b/lib/classes/public/GameObject.ts @@ -2000,7 +2000,7 @@ export class GameObject implements IGameObjectData return GameObject.takeManyToInventory(this.region, [this], folder); } - async dropInventoryIntoContents(inventoryItem: InventoryItem | UUID): Promise + async dropInventoryIntoContents(inventoryItem: InventoryItem | UUID, newName?: string): Promise { const transactionID = UUID.zero(); @@ -2043,7 +2043,7 @@ export class GameObject implements IGameObjectData Flags: inventoryItem.flags, SaleType: inventoryItem.saleType, SalePrice: inventoryItem.salePrice, - Name: Utils.StringToBuffer(inventoryItem.name), + Name: Utils.StringToBuffer(newName ?? inventoryItem.name), Description: Utils.StringToBuffer(inventoryItem.description), CreationDate: inventoryItem.created.getTime() / 1000, CRC: inventoryItem.getCRC() diff --git a/package-lock.json b/package-lock.json index b1e2165..558e1b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@caspertech/node-metaverse", - "version": "0.7.6", + "version": "0.7.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@caspertech/node-metaverse", - "version": "0.7.6", + "version": "0.7.7", "license": "MIT", "dependencies": { "@caspertech/llsd": "^1.0.5", diff --git a/package.json b/package.json index fa72839..7883dcf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@caspertech/node-metaverse", - "version": "0.7.6", + "version": "0.7.7", "description": "A node.js interface for Second Life.", "main": "dist/lib/index.js", "types": "dist/lib/index.d.ts",