1
0
KF2-Dev-Scripts/BaseAI/Classes/AITickablePlugin.uc
2020-12-13 18:01:13 +03:00

57 lines
1.6 KiB
Ucode

//=============================================================================
// AITickablePlugin
//=============================================================================
// this plugin type introduces tickable states functionality to deriving plugins
//
// NOTE: currently every plugin used is ticked directly by owner (only movement plugins
// implemented so far). If more plugins are created and need to be ticked a simple //
// registration mechanism should be implemented to store all plugins to be ticked in
// some array in owning BaseAIController (much like BaseAISubsystem.SmartObjects for example)
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
//=============================================================================
class AITickablePlugin extends AIPlugin within BaseAIController
native(Plugin)
abstract;
var const float LatentTime; // Internal latent function use.
var const private{private} bool bTickingEnabled;
cpptext
{
void TickPlugin(FLOAT DeltaTime);
virtual void ProcessState(FLOAT DeltaSeconds);
virtual EGotoState GotoState( FName State, UBOOL bForceEvents = 0, UBOOL bKeepStack = 0 );
void SetEnableTicking(UBOOL bEnable)
{
bTickingEnabled = bEnable;
}
UBOOL IsTickingEnabled() const
{
return bTickingEnabled;
}
}
final native latent function Sleep(float Seconds);
event ScriptTick( float DeltaTime )
{
}
function bool NotifyNpcTerminallyStuck()
{
return false;
}
function bool NotifyNpcInGrannyMode()
{
return false;
}
defaultproperties
{
bTickingEnabled=true
}