texture-mod_installer.lsl

how to use

  1. download this source code
  2. rewrite each UUID
    » each UUID described is that of the original texture
    » rewrite just the part you made
  3. drop it into your M28 or sell this script

installing

  1. drop the installer script into your M28
  2. choose “YES” or “NO” from the dialog
    » YES … the installer runs and self-extinguishes
    » NO … does nothing

source code

texture-mod_installer.lsl
// -------------------------------------------------------------------------------- TextureMod Installer for M28
// In most cases, this script SHOULD NOT be distributed or sold with FULL PERMISSION. The valuable asset texture
// UUID is intercepted.
//
// rewrite the necessary UUID
key BOD = "268609e0-74d5-166b-7fa8-319f7996501f";
key CC  = "5b21c2d2-53f0-3f7a-8030-b4a3ba748dd0";
key CS  = "ff2d14dc-7e59-be3c-d111-9f3260e26269";
key FC  = "0fb35125-ff14-7a55-9795-916a7f8b7a72";
key FSM = "2a490b69-5a1c-1f63-64c0-aefe9ec0bea8"; // <--- for metal parts of FS
key FSW = "ce044afa-eee9-0597-b808-6c14b1dad20c"; // <--- for wood parts of FS
key LL  = "0f135360-f598-9685-0243-4f63f9bc078b";
key NP  = "1b0b66e2-0cf9-cd04-b0d0-c15dbb763a44";
key R   = "6f5445af-9c9b-c617-a098-3768de982a23";
key RE  = "386f27ef-4959-2ebf-72c0-977b71d77bf6";
key RT  = "c0ac66a2-5786-57ca-81e7-89ce7adebbe0";
// --------------------------------------------------------------------------- you do not need to fix below this
default{
    state_entry(){
        if (llGetObjectPrimCount(llGetKey()) > 10){
            string str = llGetSubString((string)llGetKey(), 0, 3);
            integer ch = -1 - (integer)("0x" + str);
            llListen(ch, "", llGetOwner(), "");
            llDialog(llGetOwner(), "Install ?", ["YES", "NO"], ch);
        }
    }
 
    listen(integer channel, string name, key id, string str){
        if (str == "YES"){
            integer i;
            integer end = llGetObjectPrimCount(llGetKey()) + 1;
            string name;
            list params;
            vector repeat = <1.0, 1.0, 0.0>;
            for (i=2; i<end; i++){
                name = llGetLinkName(i);
                if (name == "BOD"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, 1, BOD, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, 1, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "CC"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, 0, CC, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_TEXTURE, 1, CS, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, ALL_SIDES, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "CS"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, 0, CS, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, 0, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "FC"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, 0, FC, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, 0, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "FS"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, 0, FSM, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_TEXTURE, 1, FSW, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, ALL_SIDES, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "LL"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, ALL_SIDES, LL, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, ALL_SIDES, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "LR"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, ALL_SIDES, LL, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, ALL_SIDES, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "NP"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, 1, NP, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, 1, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "R"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, ALL_SIDES, R, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, ALL_SIDES, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "RE"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, ALL_SIDES, RE, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, ALL_SIDES, PRIM_ALPHA_MODE_NONE, 0];
                }
                else if (name == "RT"){
                    params += [PRIM_LINK_TARGET, i, PRIM_TEXTURE, 0, RT, repeat, ZERO_VECTOR, 0.0];
                    params += [PRIM_ALPHA_MODE, 0, PRIM_ALPHA_MODE_NONE, 0];
                }
            }
            llSetLinkPrimitiveParamsFast(1, params);
            llRemoveInventory(llGetScriptName());
        }
    }
 
    on_rez(integer start_param){
        llResetScript();
    }
}