|
Brunot
|
Component that is responsible for managing the gameplay board, where cards are placed by Players. More...
#include <Messaging.h>
Public Member Functions | |
| Messaging () | |
| ~Messaging () override=default | |
| Messaging (const Messaging &other)=default | |
| Messaging (Messaging &&other) noexcept | |
| auto | operator= (const Messaging &other) -> Messaging & |
| auto | operator= (Messaging &&other) noexcept -> Messaging &=default |
| 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 | onRender () -> void override |
| called every frame after update has been called for every object. | |
| auto | endWindow () -> void override |
| currently unused, but intended to but was assumed to be necessary for a proper ImGui editor | |
| auto | load (const 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. | |
| template<typename classType> | |
| auto | connect (const std::string &eventName, Message(classType::*functionToLink)(const Message *), const std::string &functionName, classType *pointerToSelf) -> void |
| Attaches a member function to a specific event. | |
| auto | remove (const std::string &functionToRemove, GameObject *owner) -> void |
| Removes all functions with the given name that belong to the given owner Example Call: messagingSystem->remove("updatePlayerScore",scoringSystemInstance2);. | |
| auto | removeAll (const GameObject *owner) -> void |
| auto | broadcast (std::string eventName, const Message *message) -> std::vector< Message > |
| Calls all functions linked to eventName with the parameter message Example Call: messagingSystem->broadcast("PlayerScored",playerScoredMessage); note: if you broadcast an event that will destoy you (example: switching scenes) make sure you return immediatly after broadcasting. | |
| auto | forceBroadcast (std::string eventName, const Message *message) -> std::vector< Message > |
| Calls all functions linked to eventName with the parameter message, just like broadcast does, but also broadcasts to entities that are disabled. | |
| 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 | 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 | addChildLua (std::unique_ptr< GameObject > &newChild) -> bool |
| for lua | |
| auto | destroyed () const -> bool |
| auto | getUUID () const -> gobj::UUID |
| auto | coolerGetUUID () const -> unsigned int |
| 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 | |
| auto | getGameObjectJson () const -> json |
| Used for serializing GameObjects. | |
| auto | setGameObjectJson (const json &stream) -> void |
| used for deserializing GameObjects | |
Static Public Member Functions | |
| static auto | getEnum () -> Type |
| function required by all systems | |
| static auto | Broadcast (const std::string &eventName, const Message *message) -> std::vector< Message > |
| A helper function that gets the messaging system and calls broadcast on it for you. | |
| static auto | bindLuaTypes (sol::state &lua) -> void |
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(). | |
| 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 | getFunctionsToCall (const std::string &eventName, bool broadcastToNonReceiving) -> std::vector< th::MemberFunction< Message, const Message * > * > |
| helper function for broadcast and forceBroadcast, to collect all functions that will be called | |
| auto | broadcastToFunctions (const std::string &eventName, const Message *message, const std::vector< th::MemberFunction< Message, const Message * > * > &functionsToCall) -> std::vector< Message > |
| helper function that takes a list of functions to call, and broadcasts an event with a message to them | |
Private Attributes | |
| std::unordered_multimap< std::string, th::MemberFunction< Message, const Message * > > | functionMap |
Static Private Attributes | |
| static auto | HasParentExpired |
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 , PlayerTurn = 950 , Table = 960 , SceneManager = 1000 , ScriptingManager = 1050 , Particles = 1075 , ActionList = 1100 , DebugDraw = 1150 , ColliderSystem = 1300 , Options = 1400 , GameRules = 1500 , TestRunner = 64'000 } |
| Public Attributes inherited from GameObject | |
| friend | Entity |
| friend | Node |
| friend | Engine |
Component that is responsible for managing the gameplay board, where cards are placed by Players.
Keeps an internal tracker of where the cards are placed on the board for the sake of scoring
| sys::Messaging::Messaging | ( | ) |
|
overridedefault |
|
default |
|
noexcept |
|
static |
|
static |
A helper function that gets the messaging system and calls broadcast on it for you.
| eventName | The event that you want to occur |
| message | The information that you want to send to the functions |
| auto sys::Messaging::broadcast | ( | std::string | eventName, |
| const Message * | message )->std::vector< Message > |
Calls all functions linked to eventName with the parameter message
Example Call: messagingSystem->broadcast("PlayerScored",playerScoredMessage); note: if you broadcast an event that will destoy you (example: switching scenes) make sure you return immediatly after broadcasting.
| eventName | The event that you want to occur |
| message | The information that you want to send to the functions @retun A vector of all messages returned by the functions |
|
private |
helper function that takes a list of functions to call, and broadcasts an event with a message to them
| eventName | pass through value from broadcast |
| message | pass through value from broadcast |
| functionsToCall | vector fo memberFunctions to call, generated by Messaging::getFunctionsToCall |
|
inlineoverridevirtual |
makes a copy a GameObject even if it's held polymorphically
Implements GameObject.
|
inline |
Attaches a member function to a specific event.
The member function is associated with an instance of the class and a name.
Note: you need to pass in the class the function belongs to inside of the <> or else it will error
Example Call: messagingSystem->connect<ScoringSystem>("PlayerScored", &ScoringSystem::updateScore, "updatePlayerScore",scoringSystemInstance);
| classType | The Class that the base function is associated with |
| eventName | The event that you want the function to be linked to |
| functionToLink | A pointer to the function you want to be called |
| functionName | The name of the function that you want to be called |
| pointerToSelf | A pointer to the class instance that is associated with the function |
|
inlineoverridevirtual |
currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
Implements GameObject.
| auto sys::Messaging::forceBroadcast | ( | std::string | eventName, |
| const Message * | message )->std::vector< Message > |
Calls all functions linked to eventName with the parameter message, just like broadcast does, but also broadcasts to entities that are disabled.
Example Call: messagingSystem->forceBroadcast("PlayerScored",playerScoredMessage);
note: if you broadcast an event that will destroy you (example: switching scenes) make sure you return immediatly after broadcasting
| eventName | The event that you want to occur |
| message | The information that you want to send to the functions @retun A vector of all messages returned by the functions |
|
inlinestatic |
function required by all systems
|
private |
helper function for broadcast and forceBroadcast, to collect all functions that will be called
| eventName | the event to search for functions in |
| broadcastToNonReceiving | whether to override GameObject's receiveMessages flag, and broadcast anyway |
|
overridevirtual |
Implementations will load the state of a GameObject from a th::Json Object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
|
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::Messaging::remove | ( | const std::string & | functionToRemove, |
| GameObject * | owner )->void |
Removes all functions with the given name that belong to the given owner
Example Call: messagingSystem->remove("updatePlayerScore",scoringSystemInstance2);.
| functionToRemove | The name of the function you want to remove |
| owner | The owner of the function you want to remove |
| auto sys::Messaging::removeAll | ( | const GameObject * | owner | ) | ->void |
|
overridevirtual |
Implementations will load the state of a GameObject to a th::Json object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
|
overrideprotectedvirtual |
Specific systems should override this function to show their specific menu for the system.
Reimplemented from System.
|
private |
|
inlinestaticprivate |