innula

Untitled

Feb 15th, 2013
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. integer intSwing =30;
  2. rotation rotSwing;
  3. vector vOffset;
  4.  
  5. default
  6. {
  7.     state_entry()
  8.     {
  9.  
  10.        rotSwing = llEuler2Rot(<-(float)intSwing,0.0,0.0>*DEG_TO_RAD);  //30 degress on the x axis
  11.        vector size = llGetScale();
  12.        vOffset = <0.0,(size.y*0.5),(-size.z*0.5)>;//opening on the prim's greater Y side, and hinged on the lesser Z (i.e. the edge between faces 3 & 5)
  13.     }
  14.    
  15.     changed(integer change){
  16.         if (change & CHANGED_SCALE){
  17.             llResetScript();
  18.         }
  19.     }
  20.        
  21.  
  22.  
  23.     touch_start(integer total_number)
  24.     {
  25.             list l = llGetPrimitiveParams([PRIM_POS_LOCAL,PRIM_ROT_LOCAL]);
  26.          vector v = llList2Vector(l,0);
  27.          rotation r = llList2Rot(l,1);
  28.          llSetPrimitiveParams([PRIM_POS_LOCAL,v+(vOffset-vOffset * rotSwing)*r,
  29.          PRIM_ROT_LOCAL,rotSwing*r]);
  30.          rotSwing.s*=-1;
  31.          
  32.     }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment