Files
FC1/Editor/AI/AiBehaviorLibrary.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

72 lines
1.9 KiB
C++

////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2001.
// -------------------------------------------------------------------------
// File name: aiBehaviorLibrary.h
// Version: v1.00
// Created: 21/3/2002 by Timur.
// Compilers: Visual C++ 7.0
// Description:
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef __aibehaviorlibrary_h__
#define __aibehaviorlibrary_h__
#if _MSC_VER > 1000
#pragma once
#endif
#include "AiBehavior.h"
/*!
* CAIBehaviorLibrary is collection of global AI behaviors.
*/
class CAIBehaviorLibrary
{
public:
CAIBehaviorLibrary();
~CAIBehaviorLibrary() {};
//! Add new behavior to the library.
void AddBehavior( CAIBehavior* behavior );
//! Remove behavior from the library.
void RemoveBehavior( CAIBehavior* behavior );
CAIBehavior* FindBehavior( const CString &name ) const;
//! Clear all behaviors from library.
void ClearBehaviors();
//! Get all stored behaviors as a vector.
void GetBehaviors( std::vector<CAIBehaviorPtr> &behaviors );
//! Load all behaviors from givven path and add them to library.
void LoadBehaviors( const CString &path );
//! Reload behavior scripts.
void ReloadScripts();
//! Get all available characters in system.
void GetCharacters( std::vector<CAICharacterPtr> &characters );
//! Add new behavior to the library.
void AddCharacter( CAICharacter* chr );
//! Remove behavior from the library.
void RemoveCharacter( CAICharacter* chr );
// Finds specified character.
CAICharacter* FindCharacter( const CString &name ) const;
private:
void LoadCharacters();
StdMap<CString,TSmartPtr<CAIBehavior> > m_behaviors;
StdMap<CString,TSmartPtr<CAICharacter> > m_characters;
CString m_scriptsPath;
};
#endif // __aibehaviorlibrary_h__