#ifndef UTILS_GAME_MODE_HPP #define UTILS_GAME_MODE_HPP #include #include namespace gd = godot; namespace utils { /*! Stores session-relevant data. * * Contains any data that is only needed for the duration of the current session/match. Use GameState instead if you want data to be saved between sessions. * Will be destroyed when a level is loaded that does not match the same game mode class. */ class GameMode : public gd::Resource { GDCLASS(GameMode, gd::Resource); static void _bind_methods(); public: virtual void _begin(); //!< Called when the match begins. virtual void _end(); //!< Called when the match is ending. void set_player_scene(gd::Ref scene); gd::Ref get_player_scene() const; private: gd::Ref player_scene{}; //!< The scene to instantiate when spawning a player. }; } #endif // !UTILS_GAME_MODE_HPP