Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
ECS_Components.h File Reference

Core ECS component definitions. More...

#include "Ecs_Entity.h"
#include <string>
#include <unordered_map>
#include "vector.h"
#include <SDL3/SDL.h>
#include "DataManager.h"
#include "SDL_rect.h"
+ Include dependency graph for ECS_Components.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Identity_data
 Identity component for entity identification. More...
 
struct  Position_data
 Position component for spatial location. More...
 
struct  BoundingBox_data
 Bounding box component for collision detection. More...
 
struct  TriggerZone_data
 
struct  Movement_data
 
struct  PhysicsBody_data
 
struct  Health_data
 
struct  AIBehavior_data
 
struct  Inventory_data
 
struct  VisualSprite_data
 
struct  VisualEditor_data
 
struct  Animation_data
 
struct  VisualAnimation_data
 ECS component for animated sprites. More...
 
struct  FX_data
 
struct  AudioSource_data
 
struct  Controller_data
 
struct  PlayerController_data
 
struct  PlayerBinding_data
 
struct  NPC_data
 
struct  InputMapping_data
 
struct  GridSettings_data
 
struct  Camera_data
 
struct  CameraTarget_data
 
struct  CameraEffects_data
 
struct  CameraBounds_data
 
struct  CameraInputBinding_data
 
struct  CollisionZone_data
 
struct  NavigationAgent_data
 
struct  EditorContext_st
 

Namespaces

namespace  OlympeAnimation
 
namespace  Olympe
 

Enumerations

enum class  EntityType : int {
  None = 0 , Player , NPC , Collectible ,
  Trigger , Projectile , Count , None = 0 ,
  Player , NPC , Enemy , Item ,
  Collectible , Effect , Particle , UIElement ,
  Background , Trigger , Waypoint , Static ,
  Dynamic
}
 Entity type classification. More...
 
enum class  RenderLayer : int {
  Background_Far = -2 , Background_Near = -1 , Ground = 0 , Objects = 1 ,
  Characters = 2 , Flying = 3 , Effects = 4 , UI_Near = 5 ,
  Foreground_Near = 10 , Foreground_Far = 20
}
 Render layer enumeration for Z-ordering. More...
 
enum class  GridProjection : uint8_t { Ortho = 0 , Iso = 1 , HexAxial = 2 }
 
enum class  CameraType : uint8_t { CameraType_2D = 0 , CameraType_2_5D = 1 , CameraType_Isometric = 2 }
 
enum class  CameraControlMode : uint8_t { Mode_Free , Mode_Follow , Mode_FollowWithControl }
 

Functions

float LayerToZ (RenderLayer layer)
 Convert layer enum to z-coordinate value.
 
RenderLayer ZToLayer (float z)
 Convert z-coordinate to layer enum (rounds to nearest integer) Note: z-coordinates should exactly match RenderLayer integer values for proper layer mapping.
 

Detailed Description

Core ECS component definitions.

Author
Nicolas Chereau
Date
2025

This file contains all component data structures used in the Entity Component System architecture.

Components purpose: Include all component definitions used in the ECS architecture.

Definition in file ECS_Components.h.

Enumeration Type Documentation

◆ CameraControlMode

Enumerator
Mode_Free 
Mode_Follow 
Mode_FollowWithControl 

Definition at line 590 of file ECS_Components.h.

◆ CameraType

Enumerator
CameraType_2D 
CameraType_2_5D 
CameraType_Isometric 

Definition at line 583 of file ECS_Components.h.

◆ EntityType

Entity type classification.

Used to categorize entities for gameplay and rendering purposes.

Enumerator
None 
Player 
NPC 
Collectible 
Trigger 
Projectile 
Count 
None 
Player 
NPC 
Enemy 
Item 
Collectible 
Effect 
Particle 
UIElement 
Background 
Trigger 
Waypoint 
Static 
Dynamic 

Definition at line 35 of file ECS_Components.h.

◆ GridProjection

Enumerator
Ortho 
Iso 
HexAxial 

Definition at line 519 of file ECS_Components.h.

◆ RenderLayer

Render layer enumeration for Z-ordering.

Defines rendering order with lower values rendered first (background) and higher values rendered last (foreground).

Enumerator
Background_Far 
Background_Near 
Ground 
Objects 
Characters 
Flying 
Effects 
UI_Near 
Foreground_Near 
Foreground_Far 

Definition at line 63 of file ECS_Components.h.

Function Documentation

◆ LayerToZ()

float LayerToZ ( RenderLayer  layer)
inline

Convert layer enum to z-coordinate value.

Definition at line 78 of file ECS_Components.h.

Referenced by World::SetEntityLayer().

+ Here is the caller graph for this function:

◆ ZToLayer()

RenderLayer ZToLayer ( float  z)
inline

Convert z-coordinate to layer enum (rounds to nearest integer) Note: z-coordinates should exactly match RenderLayer integer values for proper layer mapping.

Definition at line 85 of file ECS_Components.h.

Referenced by World::GetEntityLayer().

+ Here is the caller graph for this function: