67 lines
1.9 KiB
Ucode
67 lines
1.9 KiB
Ucode
//=============================================================================
|
|
// Volume: a bounding volume
|
|
// touch() and untouch() notifications to the volume as actors enter or leave it
|
|
// enteredvolume() and leftvolume() notifications when center of actor enters the volume
|
|
// pawns with bIsPlayer==true cause playerenteredvolume notifications instead of actorenteredvolume()
|
|
// This is a built-in Unreal class and it shouldn't be modified.
|
|
//=============================================================================
|
|
class Volume extends Brush
|
|
native;
|
|
|
|
var Actor AssociatedActor; // this actor gets touch() and untouch notifications as the volume is entered or left
|
|
var() name AssociatedActorTag; // Used by L.D. to specify tag of associated actor
|
|
var() int LocationPriority;
|
|
var() localized string LocationName;
|
|
var() edfindable decorationlist DecoList; // A list of decorations to be spawned inside the volume when the level starts
|
|
|
|
native function bool Encompasses(Actor Other); // returns true if center of actor is within volume
|
|
|
|
function PostBeginPlay()
|
|
{
|
|
Super.PostBeginPlay();
|
|
|
|
if ( AssociatedActorTag != '' )
|
|
ForEach AllActors(class'Actor',AssociatedActor, AssociatedActorTag)
|
|
break;
|
|
if ( AssociatedActor != None )
|
|
{
|
|
GotoState('AssociatedTouch');
|
|
InitialState = GetStateName();
|
|
}
|
|
}
|
|
|
|
function DisplayDebug(Canvas Canvas, out float YL, out float YPos)
|
|
{
|
|
Super.DisplayDebug(Canvas,YL,YPos);
|
|
Canvas.DrawText("AssociatedActor "$AssociatedActor, false);
|
|
YPos += YL;
|
|
Canvas.SetPos(4,YPos);
|
|
}
|
|
|
|
State AssociatedTouch
|
|
{
|
|
event touch( Actor Other )
|
|
{
|
|
AssociatedActor.touch(Other);
|
|
}
|
|
|
|
event untouch( Actor Other )
|
|
{
|
|
AssociatedActor.untouch(Other);
|
|
}
|
|
|
|
function BeginState()
|
|
{
|
|
local Actor A;
|
|
|
|
ForEach TouchingActors(class'Actor', A)
|
|
Touch(A);
|
|
}
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
bCollideActors=True
|
|
LocationName="unspecified"
|
|
bSkipActorPropertyReplication=true
|
|
} |