#ifndef AVH_BUILDABLE_H #define AVH_BUILDABLE_H #include "AvHTechID.h" #include "AvHConstants.h" // Interface type class, don't inherit off anything class AvHBuildable { public: AvHBuildable(AvHTechID inTechID); virtual int GetBuilder() const; virtual bool GetHasBeenBuilt() const; virtual bool GetIsTechActive() const = 0; virtual bool GetSupportsTechID(AvHTechID inTechID) const; virtual AvHTeamNumber GetTeamNumber() const = 0; virtual AvHTechID GetTechID() const; virtual void SetTechID(AvHTechID inTechID); virtual void SetConstructionComplete(bool inForce = false) = 0; virtual void SetHasBeenKilled(); virtual void SetBuilder(int inEntIndex); virtual void SetHasBeenBuilt(); virtual void SetResearching(bool inState); virtual void TriggerAddTech() const; virtual void TriggerRemoveTech() const; private: AvHTechID mTechID; int mBuilder; bool mHasBeenBuilt; }; #endif