|
Brunot
|
#include <SceneManager.h>
Public Member Functions | |
| SceneManager () | |
| ~SceneManager () override=default | |
| SceneManager (const SceneManager &other) | |
| SceneManager (SceneManager &&other) noexcept | |
| auto | operator= (const SceneManager &other) -> SceneManager & |
| auto | operator= (SceneManager &&other) noexcept -> SceneManager & |
| auto | clone () const -> std::unique_ptr< GameObject > override |
| makes a copy a GameObject even if it's held polymorphically | |
| auto | onUpdate (float dt) -> void override |
| called once every frame. | |
| auto | endWindow () -> void override |
| currently unused, but intended to but was assumed to be necessary for a proper ImGui editor | |
| auto | onRender () -> void override |
| called every frame after update has been called for every object. | |
| auto | load (Stream &stream) -> void override |
| Implementations will load the state of a GameObject from a th::Json Object. | |
| auto | save (Stream &stream) const -> void override |
| Implementations will load the state of a GameObject to a th::Json object. | |
| auto | saveScene (Stream &stream) const -> void |
| auto | addChild (std::unique_ptr< GameObject > newChild) -> bool override |
| loads a scene | |
| auto | loadScene (std::unique_ptr< Node > scene) -> void |
| loads a scene by taking the scene directly | |
| auto | loadScene (const std::string &name) -> void |
| load a scene based on it's name | |
| auto | getCurrentScene () const -> GameObject * |
| auto | registerScene (Scene &scene) -> void |
| auto | deregisterScene (Scene &scene) -> void |
| auto | linkMessages () -> void |
| auto | receiveResetKeyPressed (const Message *message) -> Message |
| Public Member Functions inherited from System | |
| auto | showMenu () -> void override |
| Called before update each frame, for calling ImGui editor code relevant to the gameObject. | |
| auto | getKey () const -> Key override |
| Generates a unique Key that corresponds to the GameObject. | |
| auto | getParent () const -> GameObject *override |
| Gets the parent of a GameObject. | |
| Public Member Functions inherited from GameObject | |
| GameObject (std::string typeName, gobj::Type parentType, gobj::Type type) | |
| constructor for gameobject. | |
| virtual | ~GameObject () |
| destructor for GameObject. | |
| GameObject (const GameObject &other) | |
| Copy Constructor. | |
| auto | operator= (const GameObject &other) -> GameObject & |
| copy assignment operator | |
| GameObject (GameObject &&other) noexcept | |
| Move constructor. | |
| auto | operator= (GameObject &&other) noexcept -> GameObject & |
| Move assignment operator. | |
| virtual auto | update (float dt) -> void |
| called once every frame. | |
| virtual auto | render () -> void |
| called every frame after update has been called for every object. | |
| virtual auto | destroy () -> void |
| Marks an GameObject to be destroyed. | |
| virtual auto | onEnterEngine () -> void |
| hook that is called when a GameObject enters the Engine tree. | |
| virtual auto | for_each (std::function< void(GameObject &)> func) -> void |
| applies a function to every child. | |
| virtual auto | for_each (std::function< void(const GameObject &)> func) const -> void |
| applies a const function to every child. | |
| virtual auto | parentTo (GameObject *newParent) -> bool |
| Sets the GameObject as a child of another GameObject. | |
| auto | getInternalParent () const -> GameObject * |
| returns the actual owning parent of the GameObject | |
| auto | destroyed () const -> bool |
| auto | getUUID () const -> gobj::UUID |
| auto | isUUID (gobj::UUID compareUUID) const -> bool |
| auto | getName () const -> const std::string & |
| Gets the type of the object as a string. | |
| auto | getNickname () const -> const std::string & |
| Gets the nickname (custom, writable name) of a GameObject. | |
| void | calculateFormattedName () const |
| auto | getFormattedName () const -> const std::string & |
| combines a GameObjects Type, Nickname, and UUID into one string, for use with logging. | |
| auto | nameEquals (const std::string &compareString) const -> bool |
| check whether a GameObjects typeName is equivilent to a given string. | |
| auto | isType (gobj::Type otherType) const -> bool |
| check whether the GameObject is the same as a given type. | |
| auto | getObjectType () const -> gobj::Type |
| gets the internal type of the GameObject, as an enum | |
| auto | setNickname (const std::string &newNickname) -> void |
| sets the GameObjects nickname. | |
| auto | updates () const -> bool |
| auto | renders () const -> bool |
| auto | receivesMessages () const -> bool |
| auto | isActive () const -> bool |
| virtual auto | setShouldUpdate (const bool _shouldUpdate) -> void |
| set whether the GameObject should update every frame, and whether all of it's children should update every frame | |
| virtual auto | setShouldRender (const bool _shouldRender) -> void |
| set whether the GameObject should render every frame, and whether all of it's children should render every frame | |
| virtual auto | setShouldReceiveMessages (const bool _shouldReceiveMessages) -> void |
| set whether the GameObject should Receive Messags, and whether all of it's children should receive messages | |
| auto | setActive (const bool shouldBeActive) -> void |
| set the GameObject should update, render, and receive messages | |
Static Public Member Functions | |
| static auto | getEnum () -> Type |
| function required by all systems | |
| static auto | LoadScene (std::unique_ptr< Node > scene) -> void |
| loads a scene by taking the scene directly | |
| static auto | LoadScene (const std::string &name) -> void |
| load a scene based on it's name | |
Public Attributes | |
| friend | Scene |
| Public Attributes inherited from GameObject | |
| friend | Entity |
| friend | Node |
| friend | ChildrenHandeler |
| friend | Engine |
Protected Member Functions | |
| auto | systemShowMenu () -> void override |
| Specific systems should override this function to show their specific menu for the system. | |
| Protected Member Functions inherited from System | |
| System (const std::string &typeName, Type systemType) | |
| Protected Member Functions inherited from GameObject | |
| auto | setInternalParent (GameObject *parent) -> bool |
| sets the internal parent of a GameObject directly, avoiding abstractions provided by ParentTo(). | |
| auto | getGameObjectJson () const -> json |
| Used for serializing GameObjects. | |
| auto | setGameObjectJson (const json &stream) -> void |
| used for deserializing GameObjects | |
| virtual auto | getChildren () const -> std::shared_ptr< std::vector< GameObject * > > |
| gets a vector of a GameObjects public (i.e. | |
| auto | checkAddToSceneHook () -> void |
| Determine if the GameObject was recently added to the engine, and if it was, call onEngineEnter. | |
Private Member Functions | |
| auto | pushCorrectState (const Scene &sceneToKeep, SceneState newState, SceneState keepSceneState, std::vector< Scene * >::iterator::value_type scene) -> void |
| Helper function for pushStateToOtherScenes. | |
| auto | toAllSceneChildren (Scene *parent, std::function< void(Scene *)> func) -> void |
| apply a function to all children of a specific scene | |
| auto | pushStateToOtherScenes (const Scene &sceneToKeep, SceneState othersState, SceneState keepSceneState) -> void |
| auto | popAllScenes (const Scene &sceneToKeep) -> void |
Private Attributes | |
| std::vector< Scene * > | scenes |
Additional Inherited Members | |
| Public Types inherited from System | |
| enum class | Type : unsigned short { system_error_type = 0 , newSystemStub = 100 , OpenGL = 200 , Input = 300 , Editor = 400 , Messaging = 500 , Camera = 600 , Logging = 700 , AudioSystem = 750 , Scoring = 800 , HandSystem = 900 , SceneManager = 1000 , ActionList = 1100 , DebugDraw = 1150 , TestRunner = 1200 , ColliderSystem = 1300 } |
| sys::SceneManager::SceneManager | ( | ) |
|
overridedefault |
| sys::SceneManager::SceneManager | ( | const SceneManager & | other | ) |
|
noexcept |
|
nodiscardoverridevirtual |
loads a scene
| newChild | a unique pointer to the scene to load(a node). it must have a top level entity that has a scene component |
Reimplemented from GameObject.
|
inlineoverridevirtual |
makes a copy a GameObject even if it's held polymorphically
Implements GameObject.
| auto sys::SceneManager::deregisterScene | ( | Scene & | scene | ) | ->void |
|
inlineoverridevirtual |
currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
Implements GameObject.
| auto sys::SceneManager::getCurrentScene | ( | ) | const->GameObject * |
|
inlinestatic |
function required by all systems
| auto sys::SceneManager::linkMessages | ( | ) | ->void |
|
overridevirtual |
Implementations will load the state of a GameObject from a th::Json Object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
|
static |
load a scene based on it's name
| name | the name of the scene to load. Scene/ will be prepended |
|
static |
loads a scene by taking the scene directly
| scene | a unique pointer to the root node. The entity on the root node MUST have a scene component. |
| auto sys::SceneManager::loadScene | ( | const std::string & | name | ) | ->void |
load a scene based on it's name
| name | the name of the scene to load. Scene/ will be prepended |
| auto sys::SceneManager::loadScene | ( | std::unique_ptr< Node > | scene | ) | ->void |
loads a scene by taking the scene directly
| scene | a unique pointer to the root node. The entity on the root node MUST have a scene component. |
|
overridevirtual |
called every frame after update has been called for every object.
Generally used for rendering an object to the screen, when applicable. Unimplemented in GameObject
Implements GameObject.
|
overridevirtual |
called once every frame.
Generally used for timers, movement, condition checks, etc. Unimplemented in GameObject
| dt | the time in seconds that has elapsed |
Implements GameObject.
| auto sys::SceneManager::operator= | ( | const SceneManager & | other | ) | ->SceneManager & |
TODO: make this a real copy swap
|
noexcept |
|
private |
|
private |
Helper function for pushStateToOtherScenes.
|
private |
| auto sys::SceneManager::registerScene | ( | Scene & | scene | ) | ->void |
|
overridevirtual |
Implementations will load the state of a GameObject to a th::Json object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
| auto sys::SceneManager::saveScene | ( | Stream & | stream | ) | const->void |
|
overrideprotectedvirtual |
Specific systems should override this function to show their specific menu for the system.
Reimplemented from System.
|
private |
apply a function to all children of a specific scene
| friend sys::SceneManager::Scene |
|
private |