Legacy:VariableTimedMover - Unreal Wiki

# Legacy:VariableTimedMover

### From Unreal Wiki, The Unreal Engine Documentation Site

UT2004 :: Actor >> Mover >> VariableTimedMover (custom)

This version is for use with any number of Keys and in all Mover InitialStates. Mover -> MoveTime becomes a multiplier for the VariableTimedMover -> KeyMoveTime array, so keep MoveTime at 1.0 to allow the KeyMoveTime values to represent seconds.

A test map file with this actor is available on this UnrealPlayground Forum thread: VariableTimedMover

## Properties

### Main

bool bActAsClientMover
  This mover will be disabled on Servers, just as ClientMover.
array<float> KeyMoveTime
  The time (multiplier of `MoveTime`) it takes to go from this key number to the next. (Tip: Keep `MoveTime` at 1.0 to allow the `KeyMoveTime` values to represent seconds.)

### Hidden

array<float> KeyMoveSpeed
  The actual time in seconds it takes to go from this key number to the next.

## Source Code

    //=============================================================================</span><div class="hidden">// VariableTimedMover
    // Allows custom MoveTimes per key (modified from a version by Fataloverdose)
    // by SuperApe -- Sept 2005
    //=============================================================================
    class VariableTimedMover extends Mover;

    var()                bool                           bActAsClientMover;
    var()                array<float>              KeyMoveTime;
    var                    array<float>              KeyMoveSpeed;

    function PostBeginPlay()
    {
            local  int            n;

            for ( n = 0; n < KeyMoveTime.length; n++ )
                    KeyMoveSpeed[n] = KeyMoveTime[n] * MoveTime;

            Super.PostBeginPlay();

            MoveTime = KeyMoveSpeed[ KeyNum ];

            if ( bActAsClientMover && Level.NetMode == NM_DedicatedServer )
            {
                    SetTimer( 0, false );
                    SetPhysics( PHYS_None );
                    GotoState('ServerIdle');
            }
    }

    simulated event KeyFrameReached()
    {
            MoveTime = KeyMoveSpeed[ KeyNum ];
            Super.KeyFrameReached();
    }

    function DoOpen()
    {
            MoveTime = KeyMoveSpeed[ KeyNum ];
            Super.DoOpen();
    }

    function DoClose()
    {
            MoveTime = KeyMoveSpeed[ KeyNum ];
            Super.DoClose();
    }

    state ServerIdle
    {
            // Do nothing on the Server
    }

    state() LoopMove
    {
            event KeyFrameReached()
            {
                    MoveTime = KeyMoveSpeed[ KeyNum ];
                    Super.KeyFrameReached();
            }
    }

    state() ConstantLoop
    {
            event KeyFrameReached()
            {
                    MoveTime = KeyMoveSpeed[ KeyNum ];
                    Super.KeyFrameReached();
            }
    }

    state() LeadInOutLooper
    {
            event KeyFrameReached()
            {
                    MoveTime = KeyMoveSpeed[ KeyNum ];
                    Super.KeyFrameReached();
            }
    }

    state LeadInOutLooping
    {
            event KeyFrameReached()
            {
                    MoveTime = KeyMoveSpeed[ KeyNum ];
                    Super.KeyFrameReached();
            }
    }

## Related Topics

- Mover Topics
- Mover
- Dynamic Array
- Scripting Movers
- Third-Party Components

## Discussion

Category: Legacy Custom Class (UT2004)

##### Views

- Legacy
- Discussion
- Current revision

##### Search