Advertisement
salahzar

CARDS VERSION SL

Mar 19th, 2024
661
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Constants
  2.  
  3. string  SOUND_NAME;
  4. integer MAX_TEXTURES = 12;
  5. float HIGHLIGHT_GLOW = 0.2;
  6. float NORMAL_GLOW = 0.0;
  7. float SOUND_VOLUME = 1.0;
  8. float SELECTION_DELAY = 0.5;
  9.  
  10. // Global variables
  11. list gTextures;
  12. integer gSelectedCard1 = -1;
  13. integer gSelectedCard2 = -1;
  14.  
  15. setTexture(integer linkNumber, string textureUUID) {
  16.     llSetLinkPrimitiveParamsFast(linkNumber, [PRIM_TEXTURE, ALL_SIDES, textureUUID, <1.0, 1.0, 1.0>, ZERO_VECTOR, 0.0]);
  17. }
  18.  
  19. setGlow(integer linkNumber, float glowIntensity) {
  20.     //llOwnerSay("LinkNumber:"+(string)linkNumber+", glowIntensity:"+(string)glowIntensity);
  21.     llSetLinkPrimitiveParamsFast(linkNumber, [PRIM_GLOW, ALL_SIDES, glowIntensity]);
  22. }
  23. swapTextures() {
  24.     string texture1 = llList2String(gTextures, gSelectedCard1 - 2);
  25.     string texture2 = llList2String(gTextures, gSelectedCard2 - 2);
  26.     setTexture(gSelectedCard1, texture2);
  27.     setTexture(gSelectedCard2, texture1);
  28.     gTextures = llListReplaceList(gTextures, [texture2], gSelectedCard1 - 2, gSelectedCard1 - 2);
  29.     gTextures = llListReplaceList(gTextures, [texture1], gSelectedCard2 - 2, gSelectedCard2 - 2);
  30. }
  31.  
  32. resetSelection() {
  33.     llSleep(SELECTION_DELAY);
  34.     setGlow(gSelectedCard1, NORMAL_GLOW);
  35.     setGlow(gSelectedCard2, NORMAL_GLOW);
  36.     gSelectedCard1 = -1;
  37.     gSelectedCard2 = -1;
  38. }
  39.  
  40. default {
  41.     state_entry() {
  42.         SOUND_NAME = llGetInventoryName(INVENTORY_SOUND, 0);
  43.         integer i;
  44.         for (i = 0; i < MAX_TEXTURES; ++i) {
  45.             string textureName = llGetInventoryName(INVENTORY_TEXTURE, i);
  46.             if (textureName != "") {
  47.                 gTextures += [textureName];
  48.             }
  49.         }
  50.         gTextures = llListRandomize(gTextures, 1);
  51.  
  52.         for (i = 2; i <= llGetNumberOfPrims(); ++i) {
  53.             string texture = llList2String(gTextures, i - 2);
  54.             setTexture(i, texture);
  55.             setGlow(i, NORMAL_GLOW);
  56.         }
  57.     }
  58.  
  59.     touch_start(integer total_number) {
  60.         integer i;
  61.         //llOwnerSay("pk touch");
  62.         for (i = 0; i < total_number; ++i) {
  63.             integer linkNum = llDetectedLinkNumber(i);
  64.  
  65.             if (linkNum > 1 && linkNum <= (MAX_TEXTURES + 1)) {
  66.                 if (gSelectedCard1 == -1) {
  67.                     gSelectedCard1 = linkNum;
  68.                     setGlow(linkNum, HIGHLIGHT_GLOW);
  69.                 } else if (gSelectedCard2 == -1 && linkNum != gSelectedCard1) {
  70.                     gSelectedCard2 = linkNum;
  71.                     setGlow(linkNum, HIGHLIGHT_GLOW);
  72.  
  73.                     swapTextures();
  74.                     resetSelection();
  75.                 }
  76.  
  77.                 if (SOUND_NAME != "") {
  78.                     llPlaySound(SOUND_NAME, SOUND_VOLUME);
  79.                 }
  80.             }
  81.         }
  82.     }
  83. }
  84.  
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement