72 lines
1.3 KiB
Ucode
72 lines
1.3 KiB
Ucode
class TexOscillatorTriggered extends TexOscillator
|
|
native;
|
|
|
|
cpptext
|
|
{
|
|
// UTexModifier interface
|
|
virtual FMatrix* GetMatrix(FLOAT TimeSeconds);
|
|
}
|
|
|
|
enum ERetriggerAction
|
|
{
|
|
RTA_Reverse,
|
|
RTA_Reset,
|
|
RTA_Ignore,
|
|
RTA_Retrigger,
|
|
};
|
|
|
|
var() ERetriggerAction RetriggerAction;
|
|
var() float StopAfterPeriod;
|
|
var transient float TriggeredTime;
|
|
var transient bool Reverse;
|
|
var transient bool Triggered;
|
|
|
|
function Trigger( Actor Other, Actor EventInstigator )
|
|
{
|
|
if( Triggered )
|
|
{
|
|
switch( RetriggerAction )
|
|
{
|
|
case RTA_Reverse:
|
|
Triggered = False;
|
|
TriggeredTime = Other.Level.TimeSeconds;
|
|
Reverse = True;
|
|
break;
|
|
case RTA_Reset:
|
|
Triggered = False;
|
|
TriggeredTime = -1.0;
|
|
Reverse = True;
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if( RetriggerAction != RTA_Retrigger )
|
|
Triggered = True;
|
|
TriggeredTime = Other.Level.TimeSeconds;
|
|
Reverse = False;
|
|
}
|
|
}
|
|
|
|
function Reset()
|
|
{
|
|
Triggered = False;
|
|
TriggeredTime = -1.0;
|
|
Reverse = False;
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
RetriggerAction=RTA_Retrigger
|
|
StopAfterPeriod=0.5
|
|
TriggeredTime=-1.0
|
|
Reverse=False
|
|
Triggered=False
|
|
UOscillationPhase=0
|
|
VOscillationPhase=0.25
|
|
UOscillationRate=0
|
|
VOscillationRate=0.5
|
|
UOscillationAmplitude=0
|
|
VOscillationAmplitude=0.5
|
|
}
|