|
Brunot
|
The system responsible for facilitating communication between gameplay components (Players, Deck, and Board). More...
#include <Table.h>
Public Member Functions | |
| Table () | |
| Table (const Table &) | |
| Table (Table &&other) noexcept | |
| auto | operator= (const Table &) -> Table &=default |
| auto | operator= (Table &&other) noexcept -> Table &=default |
| ~Table () override=default | |
| auto | clone () const -> std::unique_ptr< GameObject > override |
| makes a copy a GameObject even if it's held polymorphically | |
| auto | systemShowMenu () -> void override |
| Specific systems should override this function to show their specific menu for the system. | |
| 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 | onSceneStart (const std::string &sceneName) -> void override |
| 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. | |
| auto | onSceneExit (const std::string &sceneName) -> void override |
| Hook that is called right before a scene is unloaded To receive the hook, simply override the function in your class. | |
| 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. | |
| auto | reloadCache () -> void |
| Re-gets the players, board, and deck pointers. | |
| auto | dealCardToPlayer (int playerNumber) const -> void |
| Draws a card from the deck and gives it to the player. | |
| auto | dealCardToPlayer (Player *player) const -> void |
| Draws a card from the deck and gives it to the player. | |
| auto | fillPlayerHand (int playerNumber) const -> void |
| Tells a player to draw cards until their hand is full. | |
| auto | fillPlayerHand (Player *player) -> void |
| Tells a player to draw cards until their hand is full. | |
| auto | fillAllPlayerHands () -> void |
| Tells all players to fill their hands until they reach the limit. | |
| auto | setPlayerSize (int count) -> void |
| Sets player size, intended for PlayerCountScene to use. | |
| auto | setInputID (int id) const -> void |
| Updates the filter in the selector in the scene to a new value. | |
| 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 | |
| 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 | |
Static Public Member Functions | |
| static auto | getEnum () -> Type |
| function required by all systems | |
Private Member Functions | |
| auto | moveSelectorToBoard () -> void |
| Moves selector to the board. Used when a card is selected in a players hand. | |
| auto | moveSelectorToPlayer (int playerNumber) const -> void |
| Moves the selector to a player based on their index in the players vector. | |
| auto | moveSelectorToPlayer (Player *player) const -> void |
| Moves the selector to a specified player. | |
| auto | moveSelectorToLastPlayedCard () const -> void |
| Moves the selector to lastSelectedCard, which is set every time a card is selected in a players hand. | |
| auto | moveSelectorToLastSelectedTile () const -> void |
| Moves the selector to the last selected tile, which is set every time a card is played on the board. | |
| auto | updatePlayerScoreText (int playerNumber) -> void |
| Updates the text displayed for a players score. | |
| auto | updateCardsPlayedText () -> void |
| Sets the text on screen to match the "numberOfCardsPlayedThisTurn" variable. | |
| auto | updateCardsInDeckText () -> void |
| Updates the text on screen to be the size of the Deck. | |
| auto | adjustPlayers () -> void |
| Automatically adds and adjusts player positions according to the count given in PlayerCountScene. | |
| auto | reloadPlayers () -> void |
| Gets all the pointers of the Player components for "players" in the cache. | |
| auto | reloadBoard () -> void |
| Gets the pointer to the board component for "board" in the cache. | |
| auto | reloadDeck () -> void |
| Gets the pointer to the deck component for "deck" in the cache. | |
| auto | reloadSelector () -> void |
| Gets the pointer to the selector entity being used for gameplay for the cache Currently checks player1 for the selector. | |
| auto | resetTable () -> void |
| Resets everything on the table to the start of a new round. | |
| auto | receiveResetTable (const Message *message) -> Message |
| Resets the table to prepare it for a new game. | |
| auto | receiveCardSelected (const Message *message) -> Message |
| Moves the selector from the player hand to the board. | |
| auto | receiveCardDeselected (const Message *message) -> Message |
| Moves the selector from the board to the player hand. | |
| auto | receiveCardPlayedOnBoard (const Message *message) -> Message |
| Moves the selector back to the player hand, unless it is the next players turn. | |
| auto | receiveEndTurn (const Message *message) -> Message |
| Ends the current player's turn. | |
| auto | receiveAddScore (const Message *message) -> Message |
| Cheat code that adds score to the current player. | |
| auto | receiveDrawCard (const Message *message) -> Message |
| Cheat code that draws a card to the current player. | |
| auto | receiveGoToWinScreen (const Message *message) -> Message |
| Cheat code that ends the game immediately and goes to the win screen. | |
| auto | linkMessages () -> void |
Private Attributes | |
| PlayerTurn * | playerTurn = nullptr |
| A cache of PlayerTurn so we can call its functions. | |
| std::vector< Player * > | players |
| We cache the players so we don't need to get it all the time. | |
| Board * | board |
| We cache the board so we don't need to get it all the time. | |
| Deck * | deck |
| We cache the deck so we don't need to get it all the time. | |
| Entity * | selector |
| We cache the Selector so we don't need to get it all the time. | |
| Entity * | lastSelectedTile |
| Tracker of the last selected board tile, so the player doesn't start in the bottom left every time. | |
| GameRules | gameRules |
| Ruleset to follow for things like cards in hand, size of board, etc. | |
Friends | |
| class | PlayerTurn |
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 , Particles = 1050 , ActionList = 1100 , DebugDraw = 1150 , ColliderSystem = 1300 , Options = 1400 , TestRunner = 64'000 } |
| Public Attributes inherited from GameObject | |
| friend | Entity |
| friend | Node |
| friend | ChildrenHandeler |
| friend | Engine |
| 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. | |
The system responsible for facilitating communication between gameplay components (Players, Deck, and Board).
@Table.h
| sys::Table::Table | ( | ) |
| sys::Table::Table | ( | const Table & | other | ) |
|
noexcept |
|
overridedefault |
|
private |
Automatically adds and adjusts player positions according to the count given in PlayerCountScene.
|
inlineoverridevirtual |
makes a copy a GameObject even if it's held polymorphically
Implements GameObject.
| auto sys::Table::dealCardToPlayer | ( | int | playerNumber | ) | const->void |
Draws a card from the deck and gives it to the player.
| playerNumber | The index of the player in the "players" vector that should draw a card |
| auto sys::Table::dealCardToPlayer | ( | Player * | player | ) | const->void |
Draws a card from the deck and gives it to the player.
| player | The player who should draw a card |
|
inlineoverridevirtual |
currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
Implements GameObject.
| auto sys::Table::fillAllPlayerHands | ( | ) | ->void |
Tells all players to fill their hands until they reach the limit.
| auto sys::Table::fillPlayerHand | ( | int | playerNumber | ) | const->void |
Tells a player to draw cards until their hand is full.
| playerNumber | The index of the player in the "players" vector that should draw cards |
| auto sys::Table::fillPlayerHand | ( | Player * | player | ) | ->void |
Tells a player to draw cards until their hand is full.
| player | The player that should draw the cards |
|
inlinestatic |
function required by all systems
|
private |
|
overridevirtual |
Implementations will load the state of a GameObject from a th::Json Object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
|
private |
Moves selector to the board. Used when a card is selected in a players hand.
|
private |
Moves the selector to lastSelectedCard, which is set every time a card is selected in a players hand.
|
private |
Moves the selector to the last selected tile, which is set every time a card is played on the board.
|
private |
Moves the selector to a player based on their index in the players vector.
| playerNumber | The index of the player in the players vector. Needs to a valid index |
|
private |
Moves the selector to a specified player.
| player | The player to move the selector to |
|
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 |
Hook that is called right before a scene is unloaded To receive the hook, simply override the function in your class.
| sceneName | the name of the root node of the old scene |
Reimplemented from GameObject.
|
overridevirtual |
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.
| sceneName | the name of the root node of the new scene |
Prepare the board for a new round
Reimplemented from 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.
Cheat code that adds score to the current player.
Moves the selector from the board to the player hand.
Moves the selector back to the player hand, unless it is the next players turn.
Moves the selector from the player hand to the board.
Cheat code that draws a card to the current player.
Ends the current player's turn.
Cheat code that ends the game immediately and goes to the win screen.
Resets the table to prepare it for a new game.
|
private |
Gets the pointer to the board component for "board" in the cache.
| auto sys::Table::reloadCache | ( | ) | ->void |
Re-gets the players, board, and deck pointers.
|
private |
Gets the pointer to the deck component for "deck" in the cache.
|
private |
Gets all the pointers of the Player components for "players" in the cache.
|
private |
Gets the pointer to the selector entity being used for gameplay for the cache Currently checks player1 for the selector.
This needs to be updated if/when we move the default location of the selector
|
private |
Resets everything on the table to the start of a new round.
|
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::Table::setInputID | ( | int | id | ) | const->void |
Updates the filter in the selector in the scene to a new value.
| id | The new ID to be set |
| auto sys::Table::setPlayerSize | ( | int | count | ) | ->void |
Sets player size, intended for PlayerCountScene to use.
|
overridevirtual |
Specific systems should override this function to show their specific menu for the system.
Reimplemented from System.
|
private |
|
private |
Sets the text on screen to match the "numberOfCardsPlayedThisTurn" variable.
|
private |
Updates the text displayed for a players score.
Should be called every time score changes
| playerNumber | The player who's score you want to update |
|
friend |
|
private |
We cache the board so we don't need to get it all the time.
|
private |
We cache the deck so we don't need to get it all the time.
|
private |
Ruleset to follow for things like cards in hand, size of board, etc.
|
private |
Tracker of the last selected board tile, so the player doesn't start in the bottom left every time.
|
private |
We cache the players so we don't need to get it all the time.
|
private |
A cache of PlayerTurn so we can call its functions.