Brunot
Loading...
Searching...
No Matches
sys::Table Class Reference

The system responsible for facilitating communication between gameplay components (Players, Deck, and Board). More...

#include <Table.h>

Inheritance diagram for sys::Table:
[legend]
Collaboration diagram for sys::Table:
[legend]

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

PlayerTurnplayerTurn = 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.
Boardboard
 We cache the board so we don't need to get it all the time.
Deckdeck
 We cache the deck so we don't need to get it all the time.
Entityselector
 We cache the Selector so we don't need to get it all the time.
EntitylastSelectedTile
 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.

Detailed Description

The system responsible for facilitating communication between gameplay components (Players, Deck, and Board).

@Table.h

Constructor & Destructor Documentation

◆ Table() [1/3]

sys::Table::Table ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Table() [2/3]

sys::Table::Table ( const Table & other)
Here is the call graph for this function:

◆ Table() [3/3]

sys::Table::Table ( Table && other)
noexcept
Here is the call graph for this function:

◆ ~Table()

sys::Table::~Table ( )
overridedefault

Member Function Documentation

◆ adjustPlayers()

auto sys::Table::adjustPlayers ( ) ->void
private

Automatically adds and adjusts player positions according to the count given in PlayerCountScene.

Here is the caller graph for this function:

◆ clone()

auto sys::Table::clone ( ) const->std::unique_ptr< GameObject >
inlineoverridevirtual

makes a copy a GameObject even if it's held polymorphically

Warning
When overriding this function, make sure to set the parents object to this
Returns
a unique_ptr to a new stack allocated object that is a copy of the object

Implements GameObject.

Here is the call graph for this function:

◆ dealCardToPlayer() [1/2]

auto sys::Table::dealCardToPlayer ( int playerNumber) const->void

Draws a card from the deck and gives it to the player.

Parameters
playerNumberThe index of the player in the "players" vector that should draw a card
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dealCardToPlayer() [2/2]

auto sys::Table::dealCardToPlayer ( Player * player) const->void

Draws a card from the deck and gives it to the player.

Parameters
playerThe player who should draw a card

◆ endWindow()

auto sys::Table::endWindow ( ) ->void
inlineoverridevirtual

currently unused, but intended to but was assumed to be necessary for a proper ImGui editor

Implements GameObject.

◆ fillAllPlayerHands()

auto sys::Table::fillAllPlayerHands ( ) ->void

Tells all players to fill their hands until they reach the limit.

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

◆ fillPlayerHand() [1/2]

auto sys::Table::fillPlayerHand ( int playerNumber) const->void

Tells a player to draw cards until their hand is full.

Parameters
playerNumberThe index of the player in the "players" vector that should draw cards
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fillPlayerHand() [2/2]

auto sys::Table::fillPlayerHand ( Player * player) ->void

Tells a player to draw cards until their hand is full.

Parameters
playerThe player that should draw the cards
Here is the call graph for this function:

◆ getEnum()

auto sys::Table::getEnum ( ) ->Type
inlinestatic

function required by all systems

◆ linkMessages()

auto sys::Table::linkMessages ( ) ->void
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load()

auto sys::Table::load ( const Stream & stream) ->void
overridevirtual

Implementations will load the state of a GameObject from a th::Json Object.

Unimplemented in GameObject

Parameters
streamth::Json Object

Implements GameObject.

◆ moveSelectorToBoard()

auto sys::Table::moveSelectorToBoard ( ) ->void
private

Moves selector to the board. Used when a card is selected in a players hand.

◆ moveSelectorToLastPlayedCard()

auto sys::Table::moveSelectorToLastPlayedCard ( ) const->void
private

Moves the selector to lastSelectedCard, which is set every time a card is selected in a players hand.

Here is the call graph for this function:

◆ moveSelectorToLastSelectedTile()

auto sys::Table::moveSelectorToLastSelectedTile ( ) const->void
private

Moves the selector to the last selected tile, which is set every time a card is played on the board.

Here is the call graph for this function:

◆ moveSelectorToPlayer() [1/2]

auto sys::Table::moveSelectorToPlayer ( int playerNumber) const->void
private

Moves the selector to a player based on their index in the players vector.

Parameters
playerNumberThe index of the player in the players vector. Needs to a valid index
Here is the call graph for this function:
Here is the caller graph for this function:

◆ moveSelectorToPlayer() [2/2]

auto sys::Table::moveSelectorToPlayer ( Player * player) const->void
private

Moves the selector to a specified player.

Parameters
playerThe player to move the selector to

◆ onRender()

auto sys::Table::onRender ( ) ->void
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.

◆ onSceneExit()

auto sys::Table::onSceneExit ( const std::string & sceneName) ->void
overridevirtual

Hook that is called right before a scene is unloaded To receive the hook, simply override the function in your class.

Parameters
sceneNamethe name of the root node of the old scene

Reimplemented from GameObject.

◆ onSceneStart()

auto sys::Table::onSceneStart ( const std::string & sceneName) ->void
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.

Parameters
sceneNamethe name of the root node of the new scene

Prepare the board for a new round

Reimplemented from GameObject.

Here is the call graph for this function:

◆ onUpdate()

auto sys::Table::onUpdate ( float dt) ->void
overridevirtual

called once every frame.

Generally used for timers, movement, condition checks, etc. Unimplemented in GameObject

Parameters
dtthe time in seconds that has elapsed

Implements GameObject.

◆ operator=() [1/2]

auto sys::Table::operator= ( const Table & ) ->Table &=default
default
Here is the call graph for this function:

◆ operator=() [2/2]

auto sys::Table::operator= ( Table && other) ->Table &=default
defaultnoexcept
Here is the call graph for this function:

◆ receiveAddScore()

auto sys::Table::receiveAddScore ( const Message * message) ->Message
private

Cheat code that adds score to the current player.

Here is the caller graph for this function:

◆ receiveCardDeselected()

auto sys::Table::receiveCardDeselected ( const Message * message) ->Message
private

Moves the selector from the board to the player hand.

Here is the caller graph for this function:

◆ receiveCardPlayedOnBoard()

auto sys::Table::receiveCardPlayedOnBoard ( const Message * message) ->Message
private

Moves the selector back to the player hand, unless it is the next players turn.

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

◆ receiveCardSelected()

auto sys::Table::receiveCardSelected ( const Message * message) ->Message
private

Moves the selector from the player hand to the board.

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

◆ receiveDrawCard()

auto sys::Table::receiveDrawCard ( const Message * message) ->Message
private

Cheat code that draws a card to the current player.

Here is the caller graph for this function:

◆ receiveEndTurn()

auto sys::Table::receiveEndTurn ( const Message * message) ->Message
private

Ends the current player's turn.

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

◆ receiveGoToWinScreen()

auto sys::Table::receiveGoToWinScreen ( const Message * message) ->Message
private

Cheat code that ends the game immediately and goes to the win screen.

Here is the caller graph for this function:

◆ receiveResetTable()

auto sys::Table::receiveResetTable ( const Message * message) ->Message
private

Resets the table to prepare it for a new game.

Here is the caller graph for this function:

◆ reloadBoard()

auto sys::Table::reloadBoard ( ) ->void
private

Gets the pointer to the board component for "board" in the cache.

Here is the caller graph for this function:

◆ reloadCache()

auto sys::Table::reloadCache ( ) ->void

Re-gets the players, board, and deck pointers.

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

◆ reloadDeck()

auto sys::Table::reloadDeck ( ) ->void
private

Gets the pointer to the deck component for "deck" in the cache.

Here is the caller graph for this function:

◆ reloadPlayers()

auto sys::Table::reloadPlayers ( ) ->void
private

Gets all the pointers of the Player components for "players" in the cache.

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

◆ reloadSelector()

auto sys::Table::reloadSelector ( ) ->void
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

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

◆ resetTable()

auto sys::Table::resetTable ( ) ->void
private

Resets everything on the table to the start of a new round.

Here is the call graph for this function:

◆ save()

auto sys::Table::save ( Stream & stream) const->void
overridevirtual

Implementations will load the state of a GameObject to a th::Json object.

Unimplemented in GameObject

Parameters
streamth::Json Object

Implements GameObject.

◆ setInputID()

auto sys::Table::setInputID ( int id) const->void

Updates the filter in the selector in the scene to a new value.

Parameters
idThe new ID to be set

◆ setPlayerSize()

auto sys::Table::setPlayerSize ( int count) ->void

Sets player size, intended for PlayerCountScene to use.

◆ systemShowMenu()

auto sys::Table::systemShowMenu ( ) ->void
overridevirtual

Specific systems should override this function to show their specific menu for the system.

Reimplemented from System.

◆ updateCardsInDeckText()

auto sys::Table::updateCardsInDeckText ( ) ->void
private

Updates the text on screen to be the size of the Deck.

Here is the caller graph for this function:

◆ updateCardsPlayedText()

auto sys::Table::updateCardsPlayedText ( ) ->void
private

Sets the text on screen to match the "numberOfCardsPlayedThisTurn" variable.

◆ updatePlayerScoreText()

auto sys::Table::updatePlayerScoreText ( int playerNumber) ->void
private

Updates the text displayed for a players score.

Should be called every time score changes

Parameters
playerNumberThe player who's score you want to update

◆ PlayerTurn

friend class PlayerTurn
friend

Member Data Documentation

◆ board

Board* sys::Table::board
private

We cache the board so we don't need to get it all the time.

◆ deck

Deck* sys::Table::deck
private

We cache the deck so we don't need to get it all the time.

◆ gameRules

GameRules sys::Table::gameRules
private

Ruleset to follow for things like cards in hand, size of board, etc.

◆ lastSelectedTile

Entity* sys::Table::lastSelectedTile
private

Tracker of the last selected board tile, so the player doesn't start in the bottom left every time.

◆ players

std::vector<Player*> sys::Table::players
private

We cache the players so we don't need to get it all the time.

◆ playerTurn

PlayerTurn* sys::Table::playerTurn = nullptr
private

A cache of PlayerTurn so we can call its functions.

◆ selector

Entity* sys::Table::selector
private

We cache the Selector so we don't need to get it all the time.


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