#pragma once class IModuleInterface { public: /** * Virtual destructor. */ virtual ~IModuleInterface() = default; public: /** * Called after the module has been loaded. */ virtual void StartupModule() = 0; /** * Called before the module is unloaded. */ virtual void ShutdownModule() = 0; public: /** * Gets the name of the module. * * @return The name of the module. */ virtual const char* GetName() = 0; public: /** * Checks to see if the module is a game module. * * @return Whether or not the module is a game module. */ virtual bool IsGameModule() const { return false; } };