Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- integer intSwing =30;
- rotation rotSwing;
- vector vOffset;
- default
- {
- state_entry()
- {
- rotSwing = llEuler2Rot(<-(float)intSwing,0.0,0.0>*DEG_TO_RAD); //30 degress on the x axis
- vector size = llGetScale();
- 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)
- }
- changed(integer change){
- if (change & CHANGED_SCALE){
- llResetScript();
- }
- }
- touch_start(integer total_number)
- {
- list l = llGetPrimitiveParams([PRIM_POS_LOCAL,PRIM_ROT_LOCAL]);
- vector v = llList2Vector(l,0);
- rotation r = llList2Rot(l,1);
- llSetPrimitiveParams([PRIM_POS_LOCAL,v+(vOffset-vOffset * rotSwing)*r,
- PRIM_ROT_LOCAL,rotSwing*r]);
- rotSwing.s*=-1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment