Engine²
Open-source game engine written in C++.
Loading...
Searching...
No Matches
Engine Namespace Reference

Namespaces

namespace  Exception
namespace  Resource
namespace  Scheduler

Classes

class  Core
 The core is the place where all the data of the engine is stored. It contains the registry (entities), the resources and the schedulers(+systems). It allows to manage entities so to create, delete them. It also allows to manage dependencies between schedulers. It also allows to aggregate plugins to it, and then plugins will be able to add resources and systems to the core. More...
class  Entity
 Wrapper class providing a convenient interface for entity manipulation with the Core. Entity acts as a handle to an entity in the registry, combining a Core reference with an EntityId. It provides utility methods to add, remove, and query components, and maintains context relative to the Core it belongs to. More...
struct  EntityId
 Represents a unique identifier for an entity in the Engine's entity-component system. An EntityId is just Id with utility methods to manage components associated with the entity but not the core. More...
struct  BasicId
 An Id class for creating strongly-typed ID wrappers. This template provides a common interface for ID types by wrapping a value type with type-safe operations. Derived classes should implement static NullValue() and Null() methods to define null/invalid ID semantics. More...
struct  Id
 A strongly-typed identifier wrapper based on entt::id_type. This structure provides a type-safe wrapper around EnTT's id_type, offering implicit conversion to the underlying type for seamless integration with EnTT components. It inherits from BasicId to provide null checking and other common ID operations. More...
struct  StringId
 Static assertion to ensure that the size of Id matches the size of entt::id_type, guaranteeing that there is no additional overhead from the wrapper and that it can be used interchangeably with entt::id_type without penalties. More...
class  APlugin
 Abstract plugin class that add some utility functions to make it easier to register systems and resources. More...
class  IPlugin
 Interface for plugins that can be added to the engine. More...
class  SchedulerError
 Custom exception class for scheduler-related errors. More...
class  SchedulerContainer
 Manages a collection of schedulers, allowing addition, retrieval, and deletion of schedulers. More...
class  SystemContainer
 Container class for managing multiple systems. More...
class  WrappedSystem
 Wrapper around a system that allows to add an error callback to it. More...

Concepts

concept  CScheduler
concept  CPlugin

Typedefs

using SystemBase = FunctionUtils::BaseFunction<void, Core &>
template<typename TCallable>
using System = FunctionUtils::CallableFunction<TCallable, void, Core &>

Typedef Documentation

◆ System

template<typename TCallable>
using Engine::System = FunctionUtils::CallableFunction<TCallable, void, Core &>

◆ SystemBase