//============================================================================= // 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 }