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

#include <ColliderSystem.h>

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

Public Member Functions

 ColliderSystem ()
 ~ColliderSystem () override=default
 ColliderSystem (const ColliderSystem &other)=default
 ColliderSystem (ColliderSystem &&other) noexcept
auto operator= (const ColliderSystem &other) -> ColliderSystem &
auto operator= (ColliderSystem &&other) noexcept -> ColliderSystem &=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 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 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 addNewCollider (Collider *collider) -> void
 Adds a new collider to the collider multimap so it can be checked for collisions later.
auto checkMouseCollision () -> void
 Checks if the current mouse position lands on any buttons inside the multimap.
auto removeCollider (const Collider *collider) -> void
 Removes a collider from the multimap, typically called after it is deleted.
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 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.
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

Static Public Member Functions

static auto getEnum () -> Type
 function required by all systems

Private Member Functions

auto receiveSelectClick (const Message *message) -> Message
 Calls checkMouseCollision when a player clicks.
auto linkMessages () -> void

Private Attributes

std::vector< std::vector< Collider * > > colliders

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 , SceneManager = 1000 ,
  ActionList = 1100 , DebugDraw = 1150 , TestRunner = 1200 , ColliderSystem = 1300
}
Public Attributes inherited from GameObject
friend Entity
friend Node
friend ChildrenHandeler
friend Engine
Protected Member Functions inherited from System
virtual auto systemShowMenu () -> void
 Specific systems should override this function to show their specific menu for the 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.

Constructor & Destructor Documentation

◆ ColliderSystem() [1/3]

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

◆ ~ColliderSystem()

sys::ColliderSystem::~ColliderSystem ( )
overridedefault

◆ ColliderSystem() [2/3]

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

◆ ColliderSystem() [3/3]

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

Member Function Documentation

◆ addNewCollider()

auto sys::ColliderSystem::addNewCollider ( Collider * collider) ->void

Adds a new collider to the collider multimap so it can be checked for collisions later.

Parameters
colliderThe collider you want to add to the system

◆ checkMouseCollision()

auto sys::ColliderSystem::checkMouseCollision ( ) ->void

Checks if the current mouse position lands on any buttons inside the multimap.

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

◆ clone()

auto sys::ColliderSystem::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:

◆ endWindow()

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

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

Implements GameObject.

◆ getEnum()

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

function required by all systems

◆ linkMessages()

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

◆ load()

auto sys::ColliderSystem::load ( 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.

◆ onEnterEngine()

void sys::ColliderSystem::onEnterEngine ( ) ->void
overridevirtual

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.

Here is the call graph for this function:

◆ onRender()

auto sys::ColliderSystem::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.

◆ onUpdate()

auto sys::ColliderSystem::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::ColliderSystem::operator= ( ColliderSystem && other) ->ColliderSystem &=default
defaultnoexcept
Here is the call graph for this function:

◆ operator=() [2/2]

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

◆ receiveSelectClick()

auto sys::ColliderSystem::receiveSelectClick ( const Message * message) ->Message
private

Calls checkMouseCollision when a player clicks.

Parameters
messageDefault message, contains no data
Returns
An empty message
Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeCollider()

auto sys::ColliderSystem::removeCollider ( const Collider * collider) ->void

Removes a collider from the multimap, typically called after it is deleted.

Parameters
colliderThe collider that you want to remove
Here is the call graph for this function:

◆ save()

auto sys::ColliderSystem::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.

Member Data Documentation

◆ colliders

std::vector<std::vector<Collider*> > sys::ColliderSystem::colliders
private

The documentation for this class was generated from the following files: