secondlife / jira-archive

2 stars 0 forks source link

[BUG-231867] LSL Feature Request list llGetLinkedInventoryDetails(integer link,integer Inventory_Type,integer index,list Type_Details); #9243

Closed sl-service-account closed 8 months ago

sl-service-account commented 2 years ago

How would you like the feature to work?

llGetLinkedInventoryDetails should return a list of values respective of the Inventory_Type. Sounds would include options such as Sound_Length, Sound_Radius, Sound_Volume. Animations would return values like Animation_Length, Animation_Priority, Animation_Ease_In, Animation_Ease_out, Animation_Is_Looped and so on for each of the Inventory Types.

Most if not all of this information already exists for all of these inventory types when you inspect them. This information already exists on the server. We should be able to access this information using LSL

Example:

float animation_length = llList2Float(llGetLinkedInventoryDetails(LINK_THIS,INVENTORY_ANIMATION,Anim_index,INVENTORY_ANIMATION_LENGTH),0);

 

This function would work along side my previous LSL feature request for expanding the get inventory functions here. https://jira.secondlife.com/browse/BUG-231848

llGetInventoryName() would be expanded to llGetLinkInventoryName(); and so on for each of the get inventory functions. 

 

llGetObjectDetails Should also include options for getting the contents of objects.

Example:

list llGetObjectDetails(key id,[integer INVENTORY_TYPE, INVENTORY_NAME,integer index]);

 

Animations:

ANIMATION_NAME - string

ANIMATION_DESC - string

ANIMATION_CREATOR - key

ANIMATION_LENGTH - float

ANIMATION_PRIORITY - integer 

ANIMATION_EASE_IN - float

ANIMATION_EASE_OUT - float

ANIMATION_IS_LOOPED - integer

ANIMATION_JOINTS - integer 

ANIMATION_PERMISSION - integer

 

Sounds:

SOUND_NAME - string

SOUND_DESC - string

SOUND_CREATOR - key

SOUND_CREATION_DATE - string

SOUND_LENGTH - float

SOUND_VOLUME - float

SOUND_IS_LOOPED - integer

SOUND_PERMISSION - integer

 

Textures:

TEXTURE_NAME - string

TEXTURE_DESC - string

TEXTURE_CREATOR - key

TEXTURE_DATE - string

TEXTURE_SIZE - vector

TEXTURE_ASPECT_RATIO - float

TEXTURE_IS_LOSSLESS - integer

TEXTURE_HAS_ALPHA - integer

TEXTUIRE_PERMISSOIN - integer

 

objects:

OBJECT_NAME - string

OBJECT_DESCRIPTION - string

OBJECT_CREATOR - key

OBJECT_CREATION_DATE - string

OBJECT_TYPE - integer ( MESH, PRIM or SCULPT )

OBJECT_IS_TEMP - interger

OBJECT_IS_PHYSICAL - integer

OBJECT_IS_SCRIPTED - integer

OBJECT_PHYS_SHAPE - integer (none, prim or convex)

OBJECT_GRAVITY - float

OBJECT_FRICTION - float

OBJECT_DENSITY - float

OBJECT_ANIMESH_ENABLED - integer

OBJECT_LIGHT_ENABLED - integer

OBJECT_POINT_LIGHT_ENABLED - integer

OBJECT_LIGHT_COLOR - vector

OBJECT_FLEXABLE_ENABLED - integer

OBJECT_MATERIAL_TYPE - integer

OBJECT_SCRIPT_ENABLED - integer ( is the script inside the object set to running or not)

OBJECT_IS_PHANTOM - integer

OBJECT_PERMISSOIN - integer

 

scripts:

SCRIPT_NAME - string

SCRIPT_DESC - string

SCRIPT_CREATOR - key

SCRIPT_CREATION_DATE - string

SCRIPT_MEMORY - float

SCRIPT_LINE_COUNT - integer

SCRIPT_PERMISSION - integer

 

Landmarks:

LANDMARK_REGION - string

LANDMARK_SLURL - string

LANDMARK_RESTRICTIONS - integer

LANDMARK_MATURITY - integer

LANDMARK_CREATOR - key

LANDMARK_CREATION_DATE - string

LANDMARK_INFO -  string

LANDMARK_TITLE - string

LANDMARK_NOTES - string

LANDMARK_PERMISSION - integer

 

Notecards: 

NOTECARD_NAME - string

NOTECARD_DESC - string

NOTECARD_CREATOR - key

NOTECARD_CREATION_DATE - string

NOTECARD_NUMBER_OF_LINES - integer

NOTECARD_NUMBER_OF_CHARACTERS - integer

NOTECARD_INCLUDES_CONTENTS - integer (notecard has items in it TRUE / FALSE)

NOTECARD_CONTENT_TYPES - integer (Returns the different types if contents contained within the notecard.)

NOTECARD_PERMISSION - integer

 

Gestures:

GESTURE_NAME - string

GESTURE_DESC - string

GESTURE_TRIGGER - string

GESTURE_REPLACED_TRIGGER - string

GESTURE_SHORTCUT_KEY - string  ( should return  string valueA, string valueB.  for example CTRL , A) 

GESTURE_STEPS - integer (number of steps)

GESTURE_PERMISSION - integer

 

Bodyparts:

BODYPART_NAME - string

BODYPART_DESC - string

BODYPART_CREATOR - key

BODYPART_CREATION_DATE - string

BODYPART_TYPE - integer (eyes, body, legs, arms, hair etc.)

BODYPART_COLOR - vector ( returns the color value  for a seclted body part)

BODYPART_PERMISSION - integer

 

Settings: (Env \ Windlight)

SETTINGS_NAME - string

SETTINGS_DESC - string

SETTINGS_CREATOR - key

SETTINGS_CREATION_DATE - string

SETTINGS_PERMISSION - integer

SETTINGS_AMBIENT_COLOR - vector

SETTINGS_HORIZON_COLOR - vector

SETTINGS_DENSITY_COLOR - vector

SETTINGS_HAZE_HORIZON - float

SETTINGS_HAZE_DENSITY - float

SETTINGS_MOISTURE_LEVEL - float

SETTINGS_DROPLET_RADIUS - float

SETTINGS_ICE_LEVEL - float

SETTINGS_DENSITY_MULTIPLIER - float

SETTINGS_DISTANCE_MULTIPLIR - float

SETTINGS_SCENE_GAMMA - float

SETTINGS_CLOUD_COVERAGE - float

SETTINGS_CLOUD_SCALE - float

SETTINGS_CLOUD_VARIANCE - float

SETTINGS_CLOUD_SCROLL - vector

SETTINGS_CLOUD_IMAGE - key

SETTINGS_CLOUD_COLOR - vector

SETTINGS_CLOUD_DENSITY - vector

SETTINGS_DETAIL - vector

SETTINGS_SUN_POSITOIN - vector

SETTINGS_SUN_TEXTURE - key

SETTINGS_SUN_AZIMUTH - float

SETTINGS_SUN_ELEVATION - float

SETTINGS_SUN_FOCUS - float

SETTINGS_SUN_SCALE - vector

SETTINGS_SUN_GLOW - float

SETTINGS_STAR_BRIGHTNESS - float

SETTINGS_MOON_POSITOIN - vector

SETTINGS_MOON_TEXTURE - key

SETTINGS_MOON_SCALE - vector

SETTINGS_MOON_AZIMUTH - float

SETTINGS_MOON_ELEVATION - float

SETTINGS_MOON_BRIGHTNESS - float

Why is this feature important to you? How would it benefit the community?

This feature would allow us to make cleaner running more accurate triggers in our scripts for sound players, Animation triggers and overrides. For instance if I knew how long an animation was I could put a bunch of random animation in a box and play them one after the other without them overriding the last one just by knowing how long it was. the same would apply for everything else including sounds.

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-231867 | | Summary | LSL Feature Request list llGetLinkedInventoryDetails(integer link,integer Inventory_Type,integer index,list Type_Details); | | Type | New Feature Request | | Priority | Unset | | Status | Closed | | Resolution | Unactionable | | Reporter | dantia Gothly (dantia.gothly) | | Created at | 2022-03-01T20:38:37Z | | Updated at | 2022-03-02T19:09:06Z | ``` { 'Build Id': 'unset', 'Business Unit': ['Platform'], 'Date of First Response': '2022-03-01T19:06:15.164-0600', 'How would you like the feature to work?': 'llGetLinkedInventoryDetails should return a list of values respective of the Inventory_Type. \r\nSounds would include options such as Sound_Length, Sound_Radius, Sound_Volume.\r\nAnimations would return values like Animation_Length, Animation_Priority, Animation_Ease_In, Animation_Ease_out, Animation_Is_Looped and so on for each of the Inventory Types. ', 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': 'This feature would allow us to make cleaner running more accurate triggers in our scripts for sound players, Animation triggers and overrides. For instance if I knew how long an animation was I could put a bunch of random animation in a box and play them one after the other without them overriding the last one just by knowing how long it was. the same would apply for everything else including sounds. ', } ```
sl-service-account commented 2 years ago

bubblecannon commented at 2022-03-02T01:06:15Z

This would be incredibly useful.

sl-service-account commented 2 years ago

Moy Loon commented at 2022-03-02T02:03:46Z

Seems like the inventory details could be very expensive and more dataserver-like.  Just because there's an asset in an object, doesn't mean that the sim has it stored locally.

 

I think there may be privacy concerns if you can just get loads of information about objects outside of the linkset too.

sl-service-account commented 2 years ago

dantia Gothly commented at 2022-03-02T11:03:16Z, updated at 2022-03-02T11:27:36Z

I don't think it would be expensive at all, I also do get the impression that the conents of objects are cached in the sim so those details should be accessable.

calls more likely be more limited to only returning details about a given type so small calls like 

float animation_length = llList2Float(llGetLinkedInventoryDetails(LINK_THIS,INVENTORY_ANIMATION,Anim_index,INVENTORY_ANIMATION_LENGTH),0);

I do agree that adding it to llGetObjectDetails might have security risk but if implemented correctly with permissions checks should be fine. 

I don't know what the server code looks like nor do I work on the client. I'm just a content creator. This function would allow me to make better things. 

sl-service-account commented 2 years ago

Kyle Linden commented at 2022-03-02T19:09:06Z

Hello, and thank you for your feature request.

Incoming suggestions are reviewed in the order they are received by a team of Lindens with diverse areas of expertise. We consider a number of factors: Is this change possible? Will it increase lag? Will it break existing content? Is it likely that the number of residents using this feature will justify the time to develop it? This wiki page further describes the reasoning we use: http://wiki.secondlife.com/wiki/Feature_Requests

This particular suggestion, unfortunately, cannot be tackled at this time. However, we regularly review previously deferred suggestions when circumstances change or resources become available.

We are grateful for the time you took to submit this feature request. We hope that you are not discouraged from submitting others in the future. Many excellent ideas to improve Second Life come from you, our residents. We can’t do it alone.

Thank you for your continued commitment to Second Life.