Advertisement
salahzar

Untitled

Mar 16th, 2024
576
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Constants
  2. integer LINK_ROOT = 0;
  3. string  SOUND_NAME = llGetInventoryName(INVENTORY_SOUND, 0);
  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.     llSetLinkPrimitiveParamsFast(linkNumber, [PRIM_GLOW, ALL_SIDES, glowIntensity]);
  21. }
  22.  
  23. default {
  24.     state_entry() {
  25.        
  26.         integer i;
  27.         for (i = 0; i < MAX_TEXTURES; ++i) {
  28.             string textureName = llGetInventoryName(INVENTORY_TEXTURE, i);
  29.             if (textureName != "") {
  30.                 gTextures += [textureName];
  31.             }
  32.         }
  33.         gTextures = llListRandomize(gTextures, 1);
  34.  
  35.         for (i = 2; i <= llGetNumberOfPrims(); ++i) {
  36.             string texture = llList2String(gTextures, i - 2);
  37.             setTexture(i, texture);
  38.             setGlow(i, NORMAL_GLOW);
  39.         }
  40.     }
  41.  
  42.     touch_start(integer total_number) {
  43.         integer i;
  44.         for (i = 0; i < total_number; ++i) {
  45.             integer linkNum = llDetectedLinkNumber(i);
  46.  
  47.             if (linkNum > 1 && linkNum <= (MAX_TEXTURES + 1)) {
  48.                 if (gSelectedCard1 == -1) {
  49.                     gSelectedCard1 = linkNum;
  50.                     setGlow(linkNum, HIGHLIGHT_GLOW);
  51.                 } else if (gSelectedCard2 == -1 && linkNum != gSelectedCard1) {
  52.                     gSelectedCard2 = linkNum;
  53.                     setGlow(linkNum, HIGHLIGHT_GLOW);
  54.  
  55.                     swapTextures();
  56.                     resetSelection();
  57.                 }
  58.  
  59.                 if (SOUND_NAME != "") {
  60.                     llPlaySound(SOUND_NAME, SOUND_VOLUME);
  61.                 }
  62.             }
  63.         }
  64.     }
  65. }
  66.  
  67. swapTextures() {
  68.     string texture1 = llList2String(gTextures, gSelectedCard1 - 2);
  69.     string texture2 = llList2String(gTextures, gSelectedCard2 - 2);
  70.     setTexture(gSelectedCard1, texture2);
  71.     setTexture(gSelectedCard2, texture1);
  72.     gTextures = llListReplaceList(gTextures, [texture2], gSelectedCard1 - 2, gSelectedCard1 - 2);
  73.     gTextures = llListReplaceList(gTextures, [texture1], gSelectedCard2 - 2, gSelectedCard2 - 2);
  74. }
  75.  
  76. resetSelection() {
  77.     llSleep(SELECTION_DELAY);
  78.     setGlow(gSelectedCard1, NORMAL_GLOW);
  79.     setGlow(gSelectedCard2, NORMAL_GLOW);
  80.     gSelectedCard1 = -1;
  81.     gSelectedCard2 = -1;
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement