Core.Object | +--Engine.Actor | +--Engine.Light | +--UMSEffects.MovingLight
name
FollowActor
vector
FollowOffset
Actor
Following
bool
bFollowing
FindActor(name ActorName)
void
PreBeginPlay()
Tick(float DeltaTime)
00001 //============================================================================= 00002 // 00003 // MovingLight.uc 00004 // 00005 // by Hugh Macdonald 00006 // 00007 //============================================================================= 00008 00009 class MovingLight extends Light; 00010 00011 var() name FollowActor; 00012 var() vector FollowOffset; 00013 var actor Following; 00014 var bool bFollowing; 00015 00016 function PreBeginPlay() 00017 { 00018 Following = FindActor(FollowActor); 00019 if(Following != NONE && bMovable && !bStatic) 00020 bFollowing = true; 00021 } 00022 00023 function Tick(float DeltaTime) 00024 { 00025 if(bFollowing) 00026 { 00027 SetLocation(Following.Location + FollowOffset); 00028 } 00029 } 00030 00031 function Actor FindActor(name ActorName) 00032 { 00033 local Actor A; 00034 00035 foreach AllActors(class 'Actor', A) 00036 if (ActorName == A.Tag || ActorName == A.Name) 00037 return A; 00038 //If there is no matching actor, return none. 00039 return NONE; 00040 } 00041 00042 defaultproperties 00043 { 00044 }