|
Brunot
|
A container for child objects. More...
#include <ChildrenHandeler.h>
Public Member Functions | |
| ChildrenHandeler () | |
| default constructor for ChildrenHandeler | |
| ChildrenHandeler (const ChildrenHandeler &other) | |
| deep copy of ChildrenHandeler | |
| auto | operator= (const ChildrenHandeler &other) -> ChildrenHandeler & |
| Copy assignment operator. | |
| ChildrenHandeler (ChildrenHandeler &&other) noexcept | |
| Move Constructor. | |
| auto | operator= (ChildrenHandeler &&other) noexcept -> ChildrenHandeler & |
| move assignment operator | |
| ~ChildrenHandeler () override=default | |
| default dtor. | |
| auto | showMenu () -> void override |
| Called before update each frame, for calling ImGui editor code relevant to the gameObject. | |
| auto | update (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 | render () -> void override |
| called every frame after update has been called for every object. | |
| auto | onRender () -> void override |
| called every frame after update has been called for every object. | |
| auto | onEnterEngine () -> void override |
| hook that is called when a GameObject enters the Engine tree. | |
| 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 | clone () const -> std::unique_ptr< GameObject > override |
| makes a copy a GameObject even if it's held polymorphically | |
| auto | setShouldUpdate (const bool _shouldUpdate) -> void override |
| set whether the GameObject should update every frame, and whether all of it's children should update every frame | |
| auto | setShouldRender (const bool _shouldRender) -> void override |
| set whether the GameObject should render every frame, and whether all of it's children should render every frame | |
| auto | setShouldReceiveMessages (const bool _shouldReceiveMessages) -> void override |
| set whether the GameObject should Receive Messags, and whether all of it's children should receive messages | |
| auto | add (std::unique_ptr< C > newChild) -> void |
| auto | for_each (std::function< void(C &)> func) -> void |
| applies a function to every child. | |
| auto | for_each (std::function< void(const C &)> func) const -> void |
| applies a function to every child. | |
| auto | for_each (std::function< void(GameObject &)> func) -> void |
| applies a function to every child. | |
| auto | for_each (std::function< void(const GameObject &)> func) const -> void override |
| applies a function to every child. | |
| auto | find (std::function< bool(C &)> predicate) -> C * |
| Returns pointer to child object. | |
| auto | count () -> size_t |
| auto | getChildren () const -> std::shared_ptr< std::vector< GameObject * > > override |
| gets a vector of a GameObjects public (i.e. | |
| auto | getChildrenRange () const -> std::shared_ptr< std::vector< GameObject * > > |
| A function designed for Paths to use, for getting a list of all children, in a manageable format. | |
| auto | pop (Key key) -> std::unique_ptr< C > |
| Removes a Child from the list, transferring ownership to the Caller. | |
| auto | setParents (GameObject &parent) -> void |
| Set's all managed objects parent to one passed in. | |
| 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 | destroy () -> void |
| Marks an GameObject to be destroyed. | |
| virtual auto | getParent () const -> GameObject * |
| Gets the parent of a GameObject. | |
| 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. | |
| virtual auto | getKey () const -> Key |
| Generates a unique Key that corresponds to 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 |
| auto | setActive (const bool shouldBeActive) -> void |
| set the GameObject should update, render, and receive messages | |
Private Member Functions | |
| auto | onUpdate (float dt) -> void override |
| called once every frame. | |
Private Attributes | |
| std::map< Key, std::unique_ptr< C > > | children |
| A map that olds unique pointers to child objects, and a key that organizes them. | |
Friends | |
| template<typename C> | |
| auto | to_json (json &j, const ChildrenHandeler< C > &ch) ->void |
| template<typename C> | |
| auto | from_json (const json &j, ChildrenHandeler< C > &ch) ->void |
| auto | from_json (const json &j, ChildrenHandeler< C > &ch) ->void |
Additional Inherited Members | |
| Public Attributes inherited from GameObject | |
| friend | Entity |
| friend | Node |
| friend | ChildrenHandeler |
| friend | Engine |
| 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 | |
| auto | checkAddToSceneHook () -> void |
| Determine if the GameObject was recently added to the engine, and if it was, call onEngineEnter. | |
A container for child objects.
ChildrenHandeler provides functionality for adding, removing, finding, etc. to children. contextually, children means a child in the node graph specifically children in the Node graph. Currently, the two places where ChildrenHandeler is used are by Entity and Node
| C | The type that ChildrenHandeler holds |
|
inline |
|
inline |
deep copy of ChildrenHandeler
| other | object to copy |
|
inlinenoexcept |
Move Constructor.
| other | Childrenhandeler to move |
|
overridedefault |
default dtor.
Overridden to ensure proper destruction
|
inline |
|
inlineoverridevirtual |
makes a copy a GameObject even if it's held polymorphically
Implements GameObject.
|
inline |
|
inlineoverridevirtual |
currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
Implements GameObject.
|
inline |
Returns pointer to child object.
| function | that returns true for object defined |
|
inline |
applies a function to every child.
| func | a function that takes a C reference, and does some operation on it |
|
inline |
applies a function to every child.
| func | a function that takes a C reference, and does some operation on it |
|
inlineoverridevirtual |
applies a function to every child.
| func | a function that takes a C reference, and does some operation on it |
Reimplemented from GameObject.
|
inlinevirtual |
applies a function to every child.
| func | a function that takes a C reference, and does some operation on it |
Reimplemented from GameObject.
|
inlineoverridevirtual |
gets a vector of a GameObjects public (i.e.
Entity s Entity and Component children)
Reimplemented from GameObject.
|
inline |
A function designed for Paths to use, for getting a list of all children, in a manageable format.
@TODO if this hits performance too much, optimize it by setting a dirty flag
|
inlineoverridevirtual |
Implementations will load the state of a GameObject from a th::Json Object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
|
inlineoverridevirtual |
hook that is called when a GameObject enters the Engine tree.
The hook is called immedietly after a gameobject's parent is called. Functionality may not be correct if an object was removed from the engine then re-added
Reimplemented from GameObject.
|
inlineoverridevirtual |
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.
|
inlineoverrideprivatevirtual |
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.
|
inlinenoexcept |
move assignment operator
| other | ChildrenHandeler to move |
|
inline |
Copy assignment operator.
Deep copies everything in the other ChildrenHandeler
| other | ChildrenHandeler to copy |
|
inline |
Removes a Child from the list, transferring ownership to the Caller.
| key | the Key of the Child to remove |
|
inlineoverridevirtual |
called every frame after update has been called for every object.
Generally used for rendering an object to the screen, when applicable. override to ensure proper rendering of children that may be active calls onRender for implementation by concrete classes make sure you call GameObject::Update() when overriding
Reimplemented from GameObject.
|
inlineoverridevirtual |
Implementations will load the state of a GameObject to a th::Json object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
|
inline |
Set's all managed objects parent to one passed in.
| parent | the parent to set |
|
inlineoverridevirtual |
set whether the GameObject should Receive Messags, and whether all of it's children should receive messages
| _shouldReceiveMessages | whether the GameObject should receive messages |
Reimplemented from GameObject.
|
inlineoverridevirtual |
set whether the GameObject should render every frame, and whether all of it's children should render every frame
| _shouldRender | whether the GameObject should Render |
Reimplemented from GameObject.
|
inlineoverridevirtual |
set whether the GameObject should update every frame, and whether all of it's children should update every frame
| _shouldUpdate | whether the object should update |
Reimplemented from GameObject.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
called once every frame.
Generally used for timers, movement, condition checks, etc. calls onUpdate for implementation by concrete classes. override to properly call children make sure you call GameObject::Update() when overriding
| dt | the time in seconds that has elapsed |
Reimplemented from GameObject.
|
friend |
there should be no default implementation for this template needs to the cpp from_json
|
friend |
there should be no default implementation for this template needs to the cpp from_json
|
friend |
|
private |
A map that olds unique pointers to child objects, and a key that organizes them.