Brunot
Loading...
Searching...
No Matches
Component Class Reference

#include <Component.h>

Inheritance diagram for Component:
[legend]
Collaboration diagram for Component:
[legend]

Public Types

enum  ComponentTypeEnum : unsigned short {
  cErrorType = 0 , cPhysics = 100 , cAnimation = 200 , cTransform = 300 ,
  cCollider = 400 , cSprite = 500 , cBehavior = 600 , cTable = 650 ,
  cCard = 700 , cDeck = 750 , cPlayer = 800 , cBoard = 850 ,
  cScene = 900 , cPauseScene = 915 , cMainScene = 920 , cMainMenuScene = 925 ,
  cConfirmDestructiveActionScene = 930 , cOptionsScene = 935 , cCreditsScene = 940 , cTutorialScene = 945 ,
  cBackground = 950 , cSplashScreenScene = 955 , cWinScreenScene = 960 , cFlags = 1000 ,
  cSelectable = 1100 , cMenu = 1200 , cActionProxy = 1300 , cEntityMover = 1400 ,
  cMenuItem = 1500 , cMenuPosition = 1525 , cSelector = 1600 , cButton = 1700
}
 This enum lists out every type of component we have. More...

Public Member Functions

auto getType () const -> ComponentTypeEnum
auto getKey () const -> Key override
 Generates a unique Key that corresponds to the GameObject.
auto showMenu () -> void override
 Called before update each frame, for calling ImGui editor code relevant to the gameObject.
virtual auto componentShowMenu () -> void
auto getEntityParent () const -> Entity *
 gets the parent as an Entity.
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 (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 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 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.
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

Protected Member Functions

 Component (ComponentTypeEnum type, const char *typeName)
auto getComponentJson () const -> json
auto getChildren () const -> std::shared_ptr< std::vector< GameObject * > > override
 override for component to return a vector of no children
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.

Private Attributes

ComponentTypeEnum type

Friends

auto to_json (json &j, const Component &obj) ->void

Additional Inherited Members

Public Attributes inherited from GameObject
friend Entity
friend Node
friend ChildrenHandeler
friend Engine

Member Enumeration Documentation

◆ ComponentTypeEnum

enum Component::ComponentTypeEnum : unsigned short

This enum lists out every type of component we have.

The order of it decides the order in which components are updated.

Enumerator
cErrorType 
cPhysics 
cAnimation 
cTransform 
cCollider 
cSprite 
cBehavior 
cTable 
cCard 
cDeck 
cPlayer 
cBoard 
cScene 
cPauseScene 
cMainScene 
cMainMenuScene 
cConfirmDestructiveActionScene 
cOptionsScene 
cCreditsScene 
cTutorialScene 
cBackground 
cSplashScreenScene 
cWinScreenScene 
cFlags 
cSelectable 
cMenu 
cActionProxy 
cEntityMover 
cMenuItem 
cMenuPosition 
cSelector 
cButton 

Constructor & Destructor Documentation

◆ Component()

Component::Component ( ComponentTypeEnum type,
const char * typeName )
protected
Here is the call graph for this function:

Member Function Documentation

◆ componentShowMenu()

virtual auto Component::componentShowMenu ( ) ->void
inlinevirtual

Reimplemented in ActionProxy, Background, Board, Button, Card, Collider, ConfirmDestructiveActionScene, CreditsScene, Deck, MainMenuScene, MainScene, Menu, MenuPosition, OptionsScene, PauseScene, Physics, Player, Scene, Selector, SplashScreenScene, Sprite, Table, Transform, TutorialScene, and WinScreenScene.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getChildren()

auto Component::getChildren ( ) const->std::shared_ptr< std::vector< GameObject * > >
overrideprotectedvirtual

override for component to return a vector of no children

Returns
a shared pointer to an empty vector

Reimplemented from GameObject.

Here is the call graph for this function:

◆ getComponentJson()

auto Component::getComponentJson ( ) const->json
protected

some components required this function to save or load component files but it didn't end up being used for now, it probably will be used later for some to_json's that might need it

Returns
a json with all component variables into json file

◆ getEntityParent()

auto Component::getEntityParent ( ) const->Entity *

gets the parent as an Entity.

This is always valid, because components can only be children of Entities.

Returns
pointer to parent, cast to a Entity.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getKey()

auto Component::getKey ( ) const->Key
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.

Returns
A GameObject::Key, which can be used to sort GameObjects

Reimplemented from GameObject.

Here is the call graph for this function:

◆ getType()

auto Component::getType ( ) const->ComponentTypeEnum
inline

◆ showMenu()

auto Component::showMenu ( ) ->void
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.

Here is the call graph for this function:

◆ to_json

auto to_json ( json & j,
const Component & obj )->void
friend

Member Data Documentation

◆ type

ComponentTypeEnum Component::type
private

The documentation for this class was generated from the following files:
  • /home/egrazil/sites/Brunot/The House/source/Framework/Component.h
  • /home/egrazil/sites/Brunot/The House/source/Framework/Component.cpp