User:Decimus Schomer/Scripts/Toggling rotate

From The SchomEmunity Wiki
< User:Decimus Schomer‎ | Scripts
Revision as of 09:45, 21 August 2007 by Decimus Schomer (talk | contribs) (Headers)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Decimus' user page | Decimus' talk page | Decimus' scripts | Decimus' script libraries | Decimus' projects
Main scripts page | Toggling Rotate script | UUID-getter scripts | Texture changer | Channel spier | Chatbot | Jump slab | Emailer | Fractal viewer | Grammar analyser | SPD viewer


The toggling rotate script is an extended version of the normal rotate script. Here is the code:

// Toggling rotate script
// Copyright (C) 2007 Decimus Schomer
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

// (you can find version 2 of the GPL at http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

integer spinning = 1;
default
{
    touch_start(integer total_number)
    {
    if (! spinning)
        llTargetOmega( < 0, 0, 0 >, 0, 0);
    else if (spinning == 2)
        llTargetOmega( < 0, 0, 0 >, 0, 0);
    else if (spinning == 1)
        llTargetOmega( < 0, 0, 1 >, PI, 1.0);
    else
        llTargetOmega( < 0, 0, 1 >, -PI, 1.0);
    spinning = spinning + 1;
    if (spinning == 4)
        spinning = 0;
    }
}

What this does is makes the object do this, advancing one item each time it is pressed:

  1. Start turning one direction
  2. Stop
  3. Turn the opposite direction to number 1
  4. Stop

After step 4, the next press starts the loop again.

--Decimus 13:22, 18 March 2007 (GMT)


Very nice Decimus, thanks for putting this up. I'm off to try it out! --Mark Cabaret 13:16, 25 March 2007 (BST)