Files
FC1/CryGame/ScriptObjectBoids.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

105 lines
2.5 KiB
C++

////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
// File name: scriptobjectboids.h
// Version: v1.00
// Created: 17/5/2002 by Timur.
// Compilers: Visual Studio.NET
// Description:
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef __scriptobjectboids_h__
#define __scriptobjectboids_h__
#if _MSC_VER > 1000
#pragma once
#endif
#include <IScriptSystem.h>
#include <_ScriptableEx.h>
// forward declarations.
class CFlockManager;
struct SBoidsCreateContext;
/** Script object providing LUA acess to FlockManager.
*/
class CScriptObjectBoids : public _ScriptableEx<CScriptObjectBoids>
{
public:
CScriptObjectBoids(void);
virtual ~CScriptObjectBoids(void);
void Init(IScriptSystem *pScriptSystem, ISystem *pSystem, CFlockManager *flockMgr);
/** Create new birds flock.
params: name,pos,params_table
return: flock_handle
*/
int CreateBirdsFlock(IFunctionHandler *pH);
/** Create new fishes flock.
params: name,pos,params_table
return: flock_handle
*/
int CreateFishFlock(IFunctionHandler *pH);
/** Create new flock of bugs.
params: name,pos,params_table
return: flock_handle
*/
int CreateBugsFlock(IFunctionHandler *pH);
/** Move flock to a new position.
params: flock_handle,pos
return: void
*/
int SetFlockPos(IFunctionHandler *pH);
/** Assign to flock a new name.
params: flock_handle,name
return: void
*/
int SetFlockName(IFunctionHandler *pH);
/** Change parameters of flock.
params: flock_handle,params_table
return: void
*/
int SetFlockParams(IFunctionHandler *pH);
/** Remove flock.
params: flock_handle
return: void
*/
int RemoveFlock(IFunctionHandler *pH);
/** Enables/Disables flock.
params: flock_handle,bEnable
return: void
*/
int EnableFlock(IFunctionHandler *pH);
/** Set flock percentage of visibility.
params: flock_handle,percent (0-100)
return: void
*/
int SetFlockPercentEnabled(IFunctionHandler *pH);
static void InitializeTemplate(IScriptSystem *pSS);
private:
bool ReadParamsTable( IScriptObject *pTable, struct SBoidContext &bc,SBoidsCreateContext &ctx );
int CommonCreateFlock( IFunctionHandler *pH,int type );
ISystem *m_pSystem;
IScriptSystem *m_pScriptSystem;
CFlockManager *m_flockMgr;
};
#endif // __scriptobjectboids_h__