1
0
forked from 0ad/0ad
0ad/source/simulation/ProductionQueue.h
Ykkrosh a553182f6a More header-file rejigging.
This was SVN commit r3993.
2006-06-09 18:32:00 +00:00

50 lines
1.1 KiB
C++

#ifndef __PRODUCTIONQUEUE_H__
#define __PRODUCTIONQUEUE_H__
#include "EntityHandles.h"
#include "scripting/ScriptableObject.h"
#include <vector>
class CEntity;
class CProductionItem : public CJSObject<CProductionItem>
{
public:
int m_type;
CStrW m_name;
float m_totalTime; // how long this production takes
float m_elapsedTime; // how long we've been working on this production
CProductionItem( int type, const CStrW& name, float totalTime );
~CProductionItem();
void Update( size_t timestep );
bool IsComplete();
float GetProgress();
jsval JSI_GetProgress( JSContext* cx );
static void ScriptingInit();
};
class CProductionQueue : public CJSObject<CProductionQueue>
{
CEntity* m_owner;
std::vector<CProductionItem*> m_items;
public:
CProductionQueue( CEntity* owner );
~CProductionQueue();
void AddItem( int type, const CStrW& name, float totalTime );
void Update( size_t timestep );
jsval JSI_GetLength( JSContext* cx );
jsval JSI_Get( JSContext* cx, uintN argc, jsval* argv );
bool JSI_Cancel( JSContext* cx, uintN argc, jsval* argv );
static void ScriptingInit();
};
#endif