12#ifndef TT_INCLUDE__HARVESTERCLASS_H
13#define TT_INCLUDE__HARVESTERCLASS_H
16#include "engine_string.h"
17#include "OBBoxClass.h"
18#include "RefineryGameObj.h"
19#include "VehicleGameObj.h"
22class HarvesterClass :
public GameObjObserverClass
30 StateGoingToHarvest = 1,
32 StateGoingToUnload = 3,
39 RefineryGameObj* refinery;
43 OBBoxClass tiberiumRegion;
44 VehicleGameObj* harvester;
45 StringClass harvestAnimation;
46 float harvestRelocateTime;
54 virtual ~HarvesterClass();
56 virtual const char* Get_Name ()
58 return "HarvesterClass";
60 virtual void Attach (GameObject*
object);
61 virtual void Detach (GameObject*
object);
62 virtual void Created (GameObject*
object)
65 virtual void Destroyed (GameObject*
object);
66 virtual void Killed (GameObject*
object, GameObject*)
69 virtual void Damaged (GameObject*
object, GameObject*,
float);
70 virtual void Custom (GameObject*
object,
int message,
int, GameObject*);
71 virtual void Sound_Heard (GameObject*
object,
const CombatSound&)
74 virtual void Enemy_Seen (GameObject*
object, GameObject*)
77 virtual void Action_Complete (GameObject*
object,
int id, ActionCompleteReason reason);
78 virtual void Timer_Expired (GameObject*
object,
int)
81 virtual void Animation_Complete (GameObject*
object,
const char*)
84 virtual void Poked (GameObject*
object, GameObject*)
87 virtual void Entered (GameObject*
object, GameObject*)
90 virtual void Exited (GameObject*
object, GameObject*)
96 void Go_Unload_Tiberium ();
97 VehicleGameObj* Get_Vehicle ()
101 State Get_State() {
return state;}
102 void Harvest_Tiberium ();
103 void Play_Harvest_Animation (
bool play);
105 void Unload_Tiberium ();
106 void Set_Refinery(RefineryGameObj *obj) {refinery = obj;}
107 void Set_Dock_Location(Vector3 &location) {dockLocation = location;}
108 void Set_Dock_Entrance(Vector3 &location) {dockEntrance = location;}
109 void Set_Tiberium_Region(OBBoxClass ®ion) {tiberiumRegion = region;}
110 void Set_Harvest_Anim(
const char *anim) {harvestAnimation = anim;}