Advertisement
salahzar

lineSegment script

Mar 13th, 2016
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // The code below is made for use with
  2. // SCRATCH FOR SECOND LIFE (S4SL)
  3. // alpha release July 14, 2008
  4. //
  5. // by Eric Rosenbaum (ericr@media.mit.edu)
  6. // MIT Media Lab
  7. // Lifelong Kindergarten group
  8. //
  9. // S4SL is available for free from
  10. // http://web.mit.edu/~eric_r/Public/S4SL/
  11. //
  12. // S4SL is a modified version of Scratch,
  13. // a graphical programming language for kids
  14. // see scratch.mit.edu
  15. // Modified by Salahzar for OpenSim
  16.  
  17. integer myID;
  18.  
  19. vector hueToRGB(float h)
  20. {
  21.     integer i;
  22.     float f;
  23.     float p;
  24.     float q;
  25.     float t;
  26.     float r;
  27.     float g;
  28.     float b;
  29.     float s = 1;
  30.     float v = 1;
  31.     h *= 5;            // sector 0 to 5
  32.     i = llFloor(h);
  33.     f = h - i;            // factorial part of h
  34.     p = v * ( 1 - s );
  35.     q = v * ( 1 - s * f );
  36.     t = v * ( 1 - s * ( 1 - f ) );
  37.  
  38.     if (i == 0) {
  39.             r = v;
  40.             g = t;
  41.             b = p;
  42.     } else if (i == 1) {
  43.             r = q;
  44.             g = v;
  45.             b = p;
  46.      } else if (i == 2) {
  47.             r = p;
  48.             g = v;
  49.             b = t;
  50.     } else if (i == 3) {
  51.             r = p;
  52.             g = q;
  53.             b = v;
  54.     } else if (i == 4) {
  55.             r = t;
  56.             g = p;
  57.             b = v;
  58.     } else {
  59.             r = v;
  60.             g = p;
  61.             b = q;
  62.     }
  63.     return <r,g,b>;
  64. }
  65. setColor(float color)
  66. {
  67.       llSetColor(hueToRGB(color / 100), ALL_SIDES);
  68. }
  69. startListening() {
  70.     llListen(1, "", "", "");
  71. }    
  72. default
  73. {
  74.     state_entry()
  75.     {
  76.     }
  77.     on_rez(integer start_param)
  78.     {
  79.         myID = start_param;
  80.         startListening();
  81.     }
  82.     listen(integer channel, string name, key id, string msg)
  83.     {
  84.         if (msg == "clear") {
  85.             llDie();
  86.         }
  87.         integer indexOfColon = llSubStringIndex(msg, ":");
  88.         integer IDreceived = (integer)llGetSubString(msg, 0, indexOfColon-1);
  89.         if (IDreceived == myID)
  90.         {
  91.             msg = llGetSubString(msg,indexOfColon+1, -1);
  92.             indexOfColon = llSubStringIndex(msg, ":");
  93.             string command = llToLower(llGetSubString(msg,0,indexOfColon-1));
  94.             if(command == "set length")
  95.             {
  96.                 indexOfColon = llSubStringIndex(msg, ":");
  97.                 float length = (float)llGetSubString(msg,indexOfColon+1,-1);
  98.                 llSetScale(<length,.1,.1>);
  99.             }
  100.             if(command == "set color")
  101.             {
  102.                 indexOfColon = llSubStringIndex(msg, ":");
  103.                 float color = (float)llGetSubString(msg,indexOfColon+1,-1);
  104.                 setColor(color);
  105.             }
  106.         }
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement