[Opensim-users] Proposal for a new OSSL function
Chris
mewtwo0641 at gmail.com
Fri Mar 13 19:00:12 UTC 2015
Hello all,
I have a proposal for a new OSSL function that could possibly prove
useful: osGetObjectNameDetails()
I would have sent this to the opensim-dev mailing list but I'm unsure
now of where this is located and how to sign up for that list since the
old mailing list locations are now gone. Can someone please point me in
the right direction? :)
This proposal has also been posted at
http://opensimulator.org/wiki/OSSL_Proposals
Thank you in advance for the consideration!
----------
Function:
----------
list osGetObjectNameDetails(list names, list params);
list osGetObjectNameDetails(list names, float range, list params);
-------------
Description:
-------------
Would work similarly to llGetObjectDetails() but has the advantage of
specifying for an object's name (or list of names) instead of by key. If
more than one name match is found then the return list will have those
matches (or groups of matches if more than one parameter is supplied)
sorted in order from nearest to furthest from the prim calling
osGetObjectNameDetails. By default this would scan the entire region but
optionally a range can be specified to only search within a certain
radius similar to llSensor().
This has potential, for most single item situations at least, eliminate
the need for an llSensor() call and also eliminate the need for a sensor
event thus reducing code complexity and make for very easy and very
quick data collection to be further processed upon.
---------
Example:
---------
list objDetails;
default
{
state_entry()
{
//Example 1:
//For this example assume this prim is located at <128, 125,
30> and we have two objects named 'Chair'.
//'Chair' #1 is located at <128, 128, 30> and owned by avatar
UUID 5f9c7c6c-f2c9-4196-8d8d-07cdeb71821a
//'Chair' #2 is located at <128, 130, 30> and owned by avatar
UUID 1c612fb2-748c-4a1a-ad57-27f488210c06
objDetails = osGetObjectNameDetails(["Chair"], OBJECT_NAME |
OBJECT_POS | OBJECT_OWNER);
llOwnerSay(llDumpList2String(objDetails, ", "));
//llOwnerSay() output should be: Chair, <128, 128, 30>,
5f9c7c6c-f2c9-4196-8d8d-07cdeb71821a, Chair, <128, 130, 30>,
1c612fb2-748c-4a1a-ad57-27f488210c06
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Example 2:
//For this example assume everything stays the same as in
Example 1 except that we're specifying a range.
objDetails = osGetObjectNameDetails(["Chair"], 5.0, OBJECT_NAME
| OBJECT_POS | OBJECT_OWNER);
llOwnerSay(llDumpList2String(objDetails, ", "));
//llOwnerSay() output should be: Chair, <128, 128, 30>,
5f9c7c6c-f2c9-4196-8d8d-07cdeb71821a
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Example 3:
//For this example assume this prim is located at <128, 125,
30> and we have two objects: 'Chair 1' and 'Chair 2'.
//'Chair 1' is located at <128, 128, 30> and owned by avatar
UUID 5f9c7c6c-f2c9-4196-8d8d-07cdeb71821a
//'Chair 2' is located at <128, 130, 30> and owned by avatar
UUID 1c612fb2-748c-4a1a-ad57-27f488210c06
objDetails = osGetObjectNameDetails(["Chair 1", "Chair 2"],
OBJECT_NAME | OBJECT_POS | OBJECT_OWNER);
llOwnerSay(llDumpList2String(objDetails, ", "));
//llOwnerSay() output should be: Chair 1, <128, 128, 30>,
5f9c7c6c-f2c9-4196-8d8d-07cdeb71821a, Chair 2, <128, 130, 30>,
1c612fb2-748c-4a1a-ad57-27f488210c06
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Example 4:
//For this example assume everything stays the same as in
Example 3 except that we're specifying a range.
objDetails = osGetObjectNameDetails(["Chair 1", "Chair 2"],
5.0, OBJECT_NAME | OBJECT_POS | OBJECT_OWNER);
llOwnerSay(llDumpList2String(objDetails, ", "));
//llOwnerSay() output should be: Chair 1, <128, 128, 30>,
5f9c7c6c-f2c9-4196-8d8d-07cdeb71821a
}
}
--
OpenSim: 10 Region Standalone on 0.8.1 Dev
Physics: Open Dynamics Engine
OS: Windows 7 (x64)
CPU: AMD FX 8320 8-Core 3.5 GHz
Memory: 16 GB DDR3
Database: MySQL 5.1.63 (x64)
More information about the Opensim-users
mailing list