|
Brunot
|
#include <System.h>
Public Types | |
| 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 , PlayerTurn = 950 , Table = 960 , SceneManager = 1000 , Particles = 1050 , ActionList = 1100 , DebugDraw = 1150 , ColliderSystem = 1300 , Options = 1400 , TestRunner = 64'000 } |
Public Member Functions | |
| 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 | clone () const -> std::unique_ptr< GameObject >=0 |
| makes a copy a GameObject even if it's held polymorphically | |
| virtual auto | update (float dt) -> void |
| called once every frame. | |
| virtual auto | endWindow () -> void=0 |
| currently unused, but intended to but was assumed to be necessary for a proper ImGui editor | |
| virtual auto | render () -> void |
| called every frame after update has been called for every object. | |
| virtual auto | load (const Stream &stream) -> void=0 |
| Implementations will load the state of a GameObject from a th::Json Object. | |
| virtual auto | save (Stream &stream) const -> void=0 |
| Implementations will load the state of a GameObject to a th::Json 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 | onSceneStart (const std::string &sceneName) -> void |
| Hook that is called before the first frame a scene is run, but after the entire scene is loaded into the engine To receive the hook, simply override the function in your class. | |
| virtual auto | onSceneExit (const std::string &sceneName) -> void |
| Hook that is called right before a scene is unloaded To receive the hook, simply override the function in your class. | |
| 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 | |
| virtual auto | addChild (std::unique_ptr< GameObject > newChild) -> bool |
| Adds a child to a 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. | |
| 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 (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 (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 (bool _shouldReceiveMessages) -> void |
| set whether the GameObject should Receive Messags, and whether all of it's children should receive messages | |
| auto | setActive (bool shouldBeActive) -> void |
| set the GameObject should update, render, and receive messages | |
Protected Member Functions | |
| virtual auto | systemShowMenu () -> void |
| Specific systems should override this function to show their specific menu for the 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 Attributes | |
| Type | type |
Additional Inherited Members | |
| Public Attributes inherited from GameObject | |
| friend | Entity |
| friend | Node |
| friend | ChildrenHandeler |
| friend | Engine |
|
strong |
|
protected |
|
nodiscardoverridevirtual |
Generates a unique Key that corresponds to the GameObject.
Unique per GameObject, not per call. Virtual so that GameObjects with subtypes (like System s and Component s) can override it to return a Key with a subtype.
Reimplemented from GameObject.
|
overridevirtual |
Gets the parent of a GameObject.
Implementations differs depending on what the GameObject is, but using getParent will do the same thing for all GameObjects: get whatever is higher up than the GameObject on the Node tree.
The default implementation calls getInternalParent(), but many classes override this for more complex parent requirements, like with Entity, or Node
Reimplemented from GameObject.
|
overridevirtual |
Called before update each frame, for calling ImGui editor code relevant to the gameObject.
virtual because we might need to destroy other things too, like parent node for entity Has a empty definition in GameObject, so it may be overriden, but doesn't have to be.
Reimplemented from GameObject.
|
inlineprotectedvirtual |
Specific systems should override this function to show their specific menu for the system.
Reimplemented in sys::AudioSystem, sys::ColliderSystem, sys::DebugDraw, sys::Input, sys::Messaging, sys::OpenGL, sys::Options, sys::ParticleManager, sys::PlayerTurn, sys::SceneManager, sys::Table, and sys::TestRunner.
|
private |