User:Toady Nakamura/Two States Light

From Second Life Wiki
< User:Toady Nakamura
Revision as of 20:23, 28 April 2012 by Toady Nakamura (talk | contribs) (added two state on/off)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Using two states can sometimes be an elegant solution to on/off.

<lsl>

vector color = <1,1,1>; // Use to change the color of the light float intensity = 1.000; // Use to change the intensity of the light, from 0 up to 1 float radius = 10.000; // Use to change the Radius of the light, from 0 up to 20 float falloff = 0.750; // Use to set the falloff of the light, from 0 up to 2

default {

   on_rez(integer param)
   {
       llResetScript();
   }
      
   touch_start(integer total_number) 
   { 
       llSetPrimitiveParams([PRIM_POINT_LIGHT, TRUE, color, intensity, radius, falloff]);
       llSetPrimitiveParams([PRIM_FULLBRIGHT, ALL_SIDES, TRUE]);
       state unlit; 
   } 

}

state unlit {

   touch_start(integer total_number) 
   { 
       llSetPrimitiveParams([PRIM_POINT_LIGHT, FALSE, llSetPrimitiveParams([PRIM_POINT_LIGHT, FALSE,   // when this is false, light is off,
                                    color, intensity, radius, falloff]);                               // rest of params don't matter
       llSetPrimitiveParams([PRIM_FULLBRIGHT, ALL_SIDES, FALSE]);
       state default; 
   } 

}


</lsl>