User:Hidenori Glushenko/FaceTextureSetter
Face Texture Setter
You can change/toggle the texture/alpha setting on a specified face only touching on its face.
- blank texture and alpha 0%
- blank texture and alpha 100%
- transparent texture and alpha 0%
- invisible texture and alpha 0%
NOTE : Server 1.24 or later / Viewer 1.21 or later are required.
<lsl> ///////////////////////////////////////////////////////////////////// // FaceTextureSetter string VERSION = "1.1"; // 2008/08/30 // Updated 2008/10/17 (add support 1.20 viewer) ///////////////////////////////////////////////////////////////////// // Released into the public domain by Hidenori Glushenko /////////////////////////////////////////////////////////////////////
//=================================================================== // GLOBAL VARIABLES //=================================================================== list TEXTURE_SETTINGS;
//=================================================================== // LOCAL FUNCTIONS //=================================================================== init() {
integer i; integer max = 9; TEXTURE_SETTINGS = []; for ( i = 0; i < max; ++i ) { TEXTURE_SETTINGS += 0; TEXTURE_SETTINGS += llGetTexture( i ); TEXTURE_SETTINGS += llGetAlpha( i ); }
}
//=================================================================== // MAIN PROCEDURE //=================================================================== default {
state_entry() { init(); } touch_start(integer total_number) { // only owner if ( llDetectedKey( 0 ) != llGetOwner() ) { return; } integer face = llDetectedTouchFace( 0 ); if ( face < 0 ) { llOwnerSay( "1.21 or later version only." ); return; // not 1.21 viewer } integer setting = llList2Integer( TEXTURE_SETTINGS, face * 3 ); ++setting; if ( setting > 4 ) { setting = 0; } if ( setting == 0 ) { // original texture and alpha llOwnerSay( "face " + (string)face + ": set to original texture and alpha." ); llSetTexture( llList2Key( TEXTURE_SETTINGS, face * 3 + 1 ), face ); llSetAlpha( llList2Float( TEXTURE_SETTINGS, face * 3 + 2 ), face ); } else if ( setting == 1 ) { // set alpha 0% & blank texture llOwnerSay( "face " + (string)face + ": set to blank texture and alpha 0%." ); llSetTexture( TEXTURE_BLANK , face ); llSetAlpha( 1.0, face ); } else if ( setting == 2 ) { // set alpha 100% & blank texture llOwnerSay( "face " + (string)face + ": set to blank texture and alpha 100%." ); llSetTexture( TEXTURE_BLANK , face ); llSetAlpha( 0.0, face ); } else if ( setting == 3 ) { // set alpha 0% & transparent texture llOwnerSay( "face " + (string)face + ": set to transparent texture and alpha 0%." ); llSetTexture( TEXTURE_TRANSPARENT , face ); llSetAlpha( 1.0, face ); } else if ( setting == 4 ) { // set alpha 0% & invisible texture llOwnerSay( "face " + (string)face + ": set to invisible texture and alpha 0%." ); llSetTexture( "e97cf410-8e61-7005-ec06-629eba4cd1fb" , face ); llSetAlpha( 1.0, face ); } TEXTURE_SETTINGS = llListReplaceList( TEXTURE_SETTINGS, [ setting ], face * 3, face * 3 ); }
} </lsl>