#pragma once namespace TSE { class Transformable; class BehaviourScript { public: BehaviourScript(); virtual ~BehaviourScript() = default; inline virtual void OnUpdate() { }; inline virtual void OnEnable() { }; inline virtual void OnDisable() { }; inline virtual void Start() { }; virtual const char* GetName() = 0; inline virtual void CustomDraw(const bool& debug) { }; void SetEnabled(bool v); bool IsEnabled() const; void SetBaseObject(Transformable* obj); Transformable* GetTransform() const; Transformable* baseObject; protected: bool enabled = true; }; } // namespace TSE