CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
Forward.hpp
Go to the documentation of this file.
1//
2// CeresEngine - A game development framework
3//
4// Created by Rogiel Sulzbach.
5// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6//
7
8#pragma once
9
11
12namespace CeresEngine {
13
14 class World;
15 class EntityManager;
16
17 // ---------------------------------------------------------------------------------------------
18
19 using EntityIndex = UInt32;
20 using EntityVersion = UInt32;
21 struct EntityID;
22
23 struct EntityChange;
24 struct EntityChangeSet;
25
26 class Entity;
27
28 template<typename T, typename Component> struct ComponentFieldMutator;
29
30 // ---------------------------------------------------------------------------------------------
31
32 template<typename P> class EntityQuery;
33
34 // ---------------------------------------------------------------------------------------------
35
36 using ComponentID = unsigned int;
37
38 struct AbstractComponent;
39 template<typename C> struct Component;
40
42
43 class ComponentType;
44 template<typename C> class TComponentType;
45
46 // ---------------------------------------------------------------------------------------------
47
48 using EntityActionID = unsigned int;
49
51 template<typename T, typename R> struct EntityAction;
52
53 class EntityActionType;
54 template<typename C> class TEntityActionType;
55
57 template<typename A> class EntityActionHandler;
58
60
61 // ---------------------------------------------------------------------------------------------
62
63 using EntityEventID = unsigned int;
64
66 template<typename T> struct EntityEvent;
67
68 class EntityEventType;
69 template<typename C> class TEntityEventType;
70
72 template<typename E> class EntityEventDispatcher;
73
75
76 // ---------------------------------------------------------------------------------------------
77
78 using SystemID = unsigned int;
79
80 class AbstractSystem;
81 // template<typename T, typename... EOs, typename... Cs, typename... As> class System;
82
83 class SystemManager;
84
85} // namespace CeresEngine
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Definition ActionHandler.hpp:17
The component store class is responsible for managing and organizing component data storage in memory...
Definition ComponentStore.hpp:28
The event dispatcher is a class responsible for forwarding events to their respective listeners.
Definition EventDispatcher.hpp:20
A abstract class that provides a trait that allows checking for system implementations.
Definition System.hpp:35
A type that describes and provides type-erased operations on a component.
Definition Component.hpp:456
Definition ActionHandler.hpp:23
Definition ActionManager.hpp:26
A type that describes and provides type-erased operations on a entity action.
Definition Action.hpp:100
A type-safe event dispatcher implementation for events of type E.
Definition EventDispatcher.hpp:28
Definition EventManager.hpp:24
A type that describes and provides type-erased operations on a entity event.
Definition Event.hpp:103
Definition EntityQuery.hpp:16
The system manager is responsible for keeping track and dispatching updates to all attached systems.
Definition SystemManager.hpp:22
An implementation of the ComponentType interface that implements type-erased operations for component...
Definition Component.hpp:529
An implementation of the EntityActionType interface that implements type-erased operations for action...
Definition Action.hpp:143
An implementation of the EntityEventType interface that implements type-erased operations for events.
Definition Event.hpp:146
Definition Application.hpp:19
unsigned int SystemID
A numeric type that represents a system.
Definition Forward.hpp:78
unsigned int EntityActionID
A numeric type that represents a action.
Definition Action.hpp:19
UInt32 EntityVersion
Definition EntityID.hpp:23
@ World
Specifies that the normal map is in world space.
std::uint32_t UInt32
Definition DataTypes.hpp:23
unsigned int ComponentID
A numeric type that represents a component.
Definition Component.hpp:32
UInt32 EntityIndex
Definition EntityID.hpp:22
unsigned int EntityEventID
A numeric type that represents a event.
Definition Event.hpp:22
A abstract class that provides a trait that allows checking for component implementations.
Definition Component.hpp:39
A base class shared by all actions triggered by an entity.
Definition Action.hpp:22
A abstract class that provides a trait that allows checking for event implementations.
Definition Event.hpp:26
Definition Forward.hpp:28
Components serve as the base for data storage for an entity.
Definition Component.hpp:68
A class that must be inherited by concrete action types.
Definition Action.hpp:33
A template class that wraps a event.
Definition Event.hpp:43