Nui Engine
A game engine framework
|
World class - the main context for the engine. More...
#include <World.h>
Public Member Functions | |
World () | |
World constructor - initializes the ECS context. | |
~World ()=default | |
Default destructor. | |
World (const World &)=delete | |
World (World &&)=delete | |
World | operator= (const World &)=delete |
World | operator= (World &&)=delete |
![]() | |
Context () | |
Constructs a new ECS context. | |
virtual | ~Context () |
Destroys the ECS context. | |
U64 | GetEntityCount () const noexcept |
Gets the total count of entities in the ECS context. | |
Entity * | GetEntityById (U64 id) |
Retrieves an entity by its unique identifier. | |
Entity * | GetEntityByIndex (U64 index) |
Retrieves an entity by its index. | |
Entity * | CreateEntity () |
Creates a new entity in the ECS context. | |
void | DestroyEntity (Entity *e, bool immediate=false) |
Destroys an entity in the ECS context. | |
bool | ClearPending () |
Clears all entities pending destruction in the ECS context. | |
void | Reset () |
Resets the ECS context, clearing all entities but keeping the systems. | |
template<typename T , typename... Args> requires IsSystem<T> | |
T * | RegisterSystem (Args &&... args) |
Registers a new system in the ECS context. | |
template<typename T > requires IsSystem<T> | |
void | UnregisterSystem () |
Unregisters a system from the ECS context. | |
void | UnregisterAllSystems () |
Un-registers all systems from the ECS context. | |
template<typename T > requires IsSystem<T> | |
T * | GetSystem () |
Gets a system from the ECS context. | |
template<typename T > requires IsSystem<T> | |
void | EnableSystem () |
Enables a system in the ECS context. | |
template<typename T > requires IsSystem<T> | |
void | DisableSystem () |
Disables a system in the ECS context. | |
template<typename T > requires IsSystem<T> | |
bool | IsSystmEnabled () |
Checks if a system is enabled in the ECS context. | |
template<typename T > | |
void | SubscribeEvent (EventSubscriber< T > *subscriber) |
Subscribes to an event in the ECS context. | |
template<typename T > | |
void | UnsubscribeEvent (EventSubscriber< T > *subscriber) |
Unsubscribes from an event in the ECS context. | |
void | UnsubscribeAll (void *subscriber) |
Un-subscribes from all events in the ECS context (usually called in the system destructor) | |
template<typename T > | |
void | EmitEvent (const T &event) |
Emits an event in the ECS context to all subscribers. | |
template<typename... Types> | |
Internal::EntityComponentView< Types... > | Each (bool includePendingDestroy=false) |
Iterates over all entities in the ECS context (used in ranged loops) | |
template<typename... Types> | |
void | Each (typename std::common_type< std::function< void(Entity *, ComponentHandle< Types >...)> >::type viewFunc, bool includePendingDestroy=false) |
Iterates over all entities in the ECS context (using a lambda/function) | |
Internal::EntityView | All (bool includePendingDestroy=false) |
Iterates over all entities in the ECS context (used in ranged loops) | |
void | All (std::function< void(Entity *)> viewFunc, bool includePendingDestroy=false) |
Iterates over all entities in the ECS context (using a lambda/function) | |
void | Tick (const F64 dt) |
Updates the ECS context (updates all the systems) | |
Friends | |
class | AppBase |
Additional Inherited Members | |
![]() | |
using | SubscriberMap = std::unordered_map<TypeIndex, std::vector<Internal::EventSubscriberBase*>, std::hash<TypeIndex>, std::equal_to<TypeIndex>> |
Unordered map of subscribers to array of events subscriber base pointers. | |
World class - the main context for the engine.