Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Roz's llSetLinkPrimitiveParams Texture Info Sender.
- //Set up to work with Texture Info HUD and Receiver
- //FIXED: Deleted comma in overflow string 4-15-19
- //WARNING: YOU MUST HAVE FULL PERMISSIONS ON TEXTURES
- //AND THE OBJECTS YOU'RE TEXTURING FOR THIS TO WORK.
- //PRIM_TEXTURE DOES NOT RETURN A UUID FOR OBJECTS THAT
- //ARE NOT FULL PERM.
- //Change textures on multilinked objects and get the
- //llSetLinkPrimitiveParamsFast and llSetPrimitiveParams
- //PRIM_TEXTURE and PRIM_COLOR information back in local
- //chat to cut and paste into texture change scripts.
- //Texture your model the way you want it, pop in the
- //script, and get the LSL settings for recreating your
- //texture information in a script friendly format.
- //THIS IS THE CREATOR'S SCRIPT, DON'T PUT THIS SCRIPT
- //IN AN ACTUAL PRODUCT TO BE SOLD. Rez a copy of the
- //clothing item you will use to test your textures on.
- //Put this script in the test version to record your
- //texture and color edits. The information you see in
- //chat will be what you want to paste into your customer
- //script.
- //Change the object description in your test model to
- //what you want your texture preset to be called. Using
- //user-defined functions to store texture information
- //avoids the hassle with notecard and dataserver events.
- integer primFaces;
- integer primz;
- integer primLoop;
- integer faceLoop;
- integer facez;
- integer spamzy;
- primLink()
- {
- primz = llGetObjectPrimCount(llGetKey());
- list textureInfo;
- list colorInfo;
- string infochat;
- string colorchat;
- string overflow;
- string fName = llGetObjectDesc( );
- integer colorCheck;
- integer textureOverflow;
- integer multiPrim = FALSE;
- integer OFi; //overflow index
- if (primz > 1) multiPrim = TRUE;
- //llSay (0, fName + "( ) {");
- for (primLoop=multiPrim; primLoop<=(primz * multiPrim); primLoop++)
- //Gets information for every link
- {
- primFaces = llGetLinkNumberOfSides(primLoop);
- if (primFaces > 6) textureOverflow = TRUE;
- else textureOverflow = FALSE;
- colorchat = overflow = infochat = "llSetLinkPrimitiveParamsFast (" + (string)primLoop + ", [";
- if (!multiPrim) colorchat = overflow = infochat = "llSetPrimitiveParams([";
- colorchat = "llSetLinkPrimitiveParamsFast (" + (string)primLoop + ", [";
- colorCheck = FALSE;
- for (faceLoop=0; faceLoop<primFaces; faceLoop++)
- //Gets information for every face
- {
- textureInfo = llGetLinkPrimitiveParams(primLoop,[PRIM_TEXTURE,faceLoop]);
- textureInfo = llListReplaceList(textureInfo, ["\"" + llList2String(textureInfo,0) + "\""],0,0);
- colorInfo = llGetLinkPrimitiveParams(primLoop,[PRIM_COLOR,faceLoop]);
- if (faceLoop > 0)
- {
- colorchat = colorchat + ", ";
- infochat = infochat + ", ";//Adds commas except at the end
- }
- infochat = infochat + "PRIM_TEXTURE, " + (string)faceLoop + ", " + llList2CSV(textureInfo);
- colorchat = colorchat + "PRIM_COLOR, " + (string)faceLoop + ", " + llList2CSV(colorInfo);
- if (llList2Vector(colorInfo,0) != <1.00,1.00,1.00>) colorCheck=TRUE;
- }
- if (textureOverflow) //Split the information in chat
- {
- //Don't let chat character limits render the code
- //useless, it should still be able to be cut and
- //pasted into a script with as little editing as
- //possible.
- OFi = llSubStringIndex(infochat, ", PRIM_TEXTURE, 4");
- overflow = overflow + llGetSubString(infochat, OFi + 2, -1);
- infochat = llDeleteSubString(infochat, OFi, -1);
- }
- infochat = infochat + "] );";
- colorchat = colorchat + "] );";
- //The next part sends the information into local chat
- //from your editing copy to be used in a script for
- //to put into your finished product.
- //if you need an extra set of eyes....
- llSay(0, infochat); //llSay instead of llOwnerSay, should you need an extra set of eyes.
- if (textureOverflow) llSay(0, overflow + "] );");
- if (colorCheck) llSay(0, colorchat);
- //or, if you don't need help...
- //llOwnerSay(infochat);
- //if (textureOverflow) llOwnerSay(0, overflow + "] );");
- //if (colorCheck) llOwnerSay(0, colorchat);
- }
- //llSay(0, "} //End "+ fName);
- }
- default
- {
- state_entry()
- {
- primLink();
- }
- changed(integer change)
- {
- //If multiple changes to link order are made, there's no
- //need to continuously spam the owner with updates.
- if (spamzy == FALSE)
- {
- if (change & (CHANGED_COLOR|CHANGED_TEXTURE))
- {
- llOwnerSay ("Touch me, once you're finished editing, to update the object's texture information.");
- //llSay (0, "Touch me, once you're finished editing, to update the object's texture information.");
- spamzy = TRUE;
- }
- }
- }
- touch_start(integer total_number)
- {
- //Let's update the information for all links
- llResetScript();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement