Core.Object | +--Engine.Actor | +--Engine.Brush | +--Engine.Mover | +--UnrealI.LoopMover
int
NextKeyNum
void
BeginPlay()
BeginState()
DoOpen()
InterpolateEnd(Actor Other)
Trigger(Actor Other, Pawn EventInstigator)
UnTrigger(Actor Other, Pawn EventInstigator)
00001 //============================================================================= 00002 // LoopMover. 00003 //============================================================================= 00004 class LoopMover extends Mover; 00005 00006 // When the last keyframe position is reached, this mover 00007 // interpolates to the first keyframe (directly, not through 00008 // the intermediate frames), and repeats the movement forever. 00009 00010 var int NextKeyNum; 00011 00012 function BeginPlay() 00013 { 00014 KeyNum = 0; 00015 Super.BeginPlay(); 00016 } 00017 00018 00019 function DoOpen() 00020 { 00021 // Move to the next keyframe. 00022 // 00023 bOpening = true; 00024 bDelaying = false; 00025 InterpolateTo( NextKeyNum, MoveTime ); 00026 PlaySound( OpeningSound ); 00027 AmbientSound = MoveAmbientSound; 00028 } 00029 00030 state() LoopMove 00031 { 00032 function Trigger( actor Other, pawn EventInstigator ) 00033 { 00034 SavedTrigger = Other; 00035 Instigator = EventInstigator; 00036 SavedTrigger.BeginEvent(); 00037 GotoState( 'LoopMove', 'Open' ); 00038 } 00039 00040 function UnTrigger( actor Other, pawn EventInstigator ) 00041 { 00042 Enable( 'Trigger' ); 00043 SavedTrigger = Other; 00044 Instigator = EventInstigator; 00045 GotoState( 'LoopMove', 'InactiveState' ); 00046 } 00047 00048 function InterpolateEnd(actor Other) 00049 { 00050 } 00051 00052 function BeginState() 00053 { 00054 bOpening = false; 00055 } 00056 00057 Open: 00058 Disable ('Trigger'); 00059 NextKeyNum = KeyNum + 1; 00060 if( NextKeyNum >= NumKeys ) NextKeyNum = 0; 00061 DoOpen(); 00062 FinishInterpolation(); 00063 FinishedOpening(); 00064 00065 // Loop forever 00066 GotoState( 'LoopMove', 'Open' ); 00067 InactiveState: 00068 FinishInterpolation(); 00069 FinishedOpening(); 00070 Stop; 00071 } 00072 00073 defaultproperties 00074 { 00075 }