Difference between revisions of "LlWater"

From Second Life Wiki
Jump to: navigation, search
 
m (Replaced old <LSL> block with <source lang="lsl2">)
 
(21 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{LSLFunctionAll|func_id=153|func_sleep=0.0|func_energy=10.0|func=llWater|return_type=float|p1_type=vector|p1_name=v|func_footnote=returns the water height below the object position + v|return_text|spec|caveats|examples|helpers|related|also|notes}}[[Category:LSL_Functions]][[Category:LSL_Stub]]
+
{{LSL_Function
 +
|inject-2={{LSL Function/offset|offset|noZ=*|sim=*}}
 +
|func=llWater
 +
|func_id=153|func_sleep=0.0|func_energy=10.0
 +
|func_footnote=
 +
Water height is constant across each entire sim and is typically 20 meters but not always.
 +
|func_desc
 +
|p1_type=vector|p1_name=offset
 +
|return_type=float
 +
|return_text=that is the water height below the prim's [[llGetPos|position]] + {{LSLP|offset}}
 +
|spec
 +
|caveats
 +
|constants
 +
|examples=
 +
<source lang="lsl2">// Makes the object land on ground or on water
 +
 
 +
FindGroundOrWater()
 +
{
 +
    vector vTarget = llGetPos();
 +
    vTarget.z = llGround( ZERO_VECTOR );
 +
    float fWaterLevel = llWater( ZERO_VECTOR );
 +
    if( vTarget.z < fWaterLevel )
 +
        vTarget.z = fWaterLevel;
 +
    llSetRegionPos(vTarget);
 +
}
 +
 
 +
default
 +
{
 +
    touch_start(integer total_number)
 +
    {
 +
        FindGroundOrWater();
 +
    }
 +
}
 +
</source>
 +
|helpers
 +
|also_functions={{LSL DefineRow||[[llGround]]|Gets the ground height}}
 +
{{LSL DefineRow||[[llWind]]|Gets the wind velocity}}
 +
{{LSL DefineRow||[[llCloud]]|Gets the cloud density}}
 +
|also_tests
 +
|also_events
 +
|also_articles
 +
|notes
 +
|cat1=Region
 +
|cat2=Ground
 +
|cat3
 +
|cat4
 +
}}

Latest revision as of 10:54, 22 January 2015

Summary

Function: float llWater( vector offset );

Returns a float that is the water height below the prim's position + offset

• vector offset offset relative to the prim's position and expressed in local coordinates

The requested position needs to be in the same region. Only the x and y coordinates in offset are important, the z component is ignored. Water height is constant across each entire sim and is typically 20 meters but not always.

Examples

// Makes the object land on ground or on water
 
FindGroundOrWater()
{
    vector vTarget = llGetPos();
    vTarget.z = llGround( ZERO_VECTOR );
    float fWaterLevel = llWater( ZERO_VECTOR );
    if( vTarget.z < fWaterLevel )
        vTarget.z = fWaterLevel;
    llSetRegionPos(vTarget);
}
 
default
{
    touch_start(integer total_number)
    {
        FindGroundOrWater();
    }
}

See Also

Functions

•  llGround Gets the ground height
•  llWind Gets the wind velocity
•  llCloud Gets the cloud density

Deep Notes

Search JIRA for related Issues

Signature

function float llWater( vector offset );