15#include "Ecs_Entity.h"
17#include <unordered_map>
80 return static_cast<float>(
static_cast<int>(layer));
87 return static_cast<RenderLayer>(
static_cast<int>(z + (z >= 0 ? 0.5f : -0.5f)));
104 std::string
tag =
"Untagged";
107 std::string
type =
"UnknownType";
336 class AnimationGraph;
341namespace Olympe {
struct AnimationSequence; }
555 { 150, 50, 200, 150 },
556 { 50, 150, 255, 150 },
557 { 100, 50, 50, 150 },
558 { 255, 200, 50, 150 },
559 { 200, 200, 200, 150 },
560 { 180, 180, 180, 150 },
561 { 160, 160, 160, 150 },
562 { 140, 140, 140, 150 }
566 { 50, 200, 100, 150 },
567 { 100, 200, 255, 150 },
568 { 200, 100, 50, 150 },
569 { 255, 255, 100, 150 },
570 { 150, 255, 150, 150 },
571 { 120, 235, 120, 150 },
572 { 90, 215, 90, 150 },
617 static constexpr float ZOOM_LEVELS[] = { 0.0125f, 0.025f, 0.05f, 0.1f, 0.15f, 0.25f, 0.5f, 0.75f, 1.0f, 1.25f, 1.5f, 2.0f, 2.5f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f };
622 static_assert(
sizeof(
ZOOM_LEVELS) /
sizeof(
ZOOM_LEVELS[0]) >= 4,
"ZOOM_LEVELS must contain at least 4 entries for default index 3");
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 mat...
RenderLayer
Render layer enumeration for Z-ordering.
EntityType
Entity type classification.
ComponentTypeID GetComponentTypeID_Static()
const EntityID INVALID_ENTITY_ID
AIBehavior_data & operator=(const AIBehavior_data &)=default
AIBehavior_data(const AIBehavior_data &)=default
AIBehavior_data()=default
Animation_data(const Animation_data &)=default
Animation_data & operator=(const Animation_data &)=default
std::string soundEffectID
AudioSource_data()=default
AudioSource_data(const AudioSource_data &)=default
AudioSource_data & operator=(const AudioSource_data &)=default
Bounding box component for collision detection.
BoundingBox_data & operator=(const BoundingBox_data &)=default
Copy assignment operator.
BoundingBox_data()=default
Default constructor.
BoundingBox_data(SDL_FRect rect)
Construct with bounding box.
SDL_FRect boundingBox
Collision rectangle.
BoundingBox_data(const BoundingBox_data &)=default
Copy constructor.
CameraBounds_data & operator=(const CameraBounds_data &)=default
CameraBounds_data(const CameraBounds_data &)=default
CameraBounds_data()=default
CameraEffects_data()=default
CameraEffects_data & operator=(const CameraEffects_data &)=default
CameraEffects_data(const CameraEffects_data &)=default
CameraTarget_data & operator=(const CameraTarget_data &)=default
CameraTarget_data()=default
CameraTarget_data(const CameraTarget_data &)=default
static constexpr int ROTATION_LEVELS
static constexpr float ZOOM_LEVELS[]
static constexpr float ROTATION_STEP
CameraControlMode controlMode
Camera_data & operator=(const Camera_data &)=default
int currentZoomLevelIndex
static constexpr float GetRotationFromLevel(int level)
Camera_data(const Camera_data &)=default
static constexpr size_t ZOOM_LEVEL_COUNT
CollisionZone_data & operator=(const CollisionZone_data &)=default
CollisionZone_data(SDL_FRect rect, bool isStatic_)
CollisionZone_data()=default
CollisionZone_data(const CollisionZone_data &)=default
bool buttons[MAX_BUTTONS]
static constexpr int MAX_BUTTONS
Controller_data(const Controller_data &)=default
Controller_data & operator=(const Controller_data &)=default
Controller_data()=default
EditorContext_st(const EditorContext_st &)=default
EditorContext_st & operator=(const EditorContext_st &)=default
EditorContext_st()=default
FX_data(const FX_data &)=default
FX_data & operator=(const FX_data &)=default
GridProjection projection
GridSettings_data()=default
bool showCollisionOverlay
bool showNavigationOverlay
GridSettings_data(const GridSettings_data &)=default
uint8_t activeCollisionLayer
uint8_t activeNavigationLayer
SDL_Color collisionColors[8]
SDL_Color navigationColors[8]
GridSettings_data & operator=(const GridSettings_data &)=default
Health_data(int current, int max)
Health_data & operator=(const Health_data &)=default
Health_data(const Health_data &)=default
Identity component for entity identification.
EntityType entityType
Entity type enum (for layer management)
Identity_data(std::string n, std::string t, std::string et)
Construct with name, tag, and type.
Identity_data(const Identity_data &)=default
Copy constructor.
std::string name
Entity name identifier.
Identity_data & operator=(const Identity_data &)=default
Copy assignment operator.
Identity_data()=default
Default constructor.
std::string type
Entity type string (for backward compatibility)
bool isPersistent
Should the entity persist across levels?
std::string tag
Entity tag/category for grouping.
Inventory_data(const Inventory_data &)=default
std::vector< std::string > items
Inventory_data & operator=(const Inventory_data &)=default
Movement_data & operator=(const Movement_data &)=default
Movement_data(const Movement_data &)=default
NPC_data(const NPC_data &)=default
NPC_data & operator=(const NPC_data &)=default
NavigationAgent_data()=default
NavigationAgent_data & operator=(const NavigationAgent_data &)=default
std::vector< Vector > currentPath
NavigationAgent_data(const NavigationAgent_data &)=default
Defines a complete animation sequence.
PhysicsBody_data(float m, float s)
PhysicsBody_data(const PhysicsBody_data &)=default
PhysicsBody_data()=default
PhysicsBody_data & operator=(const PhysicsBody_data &)=default
PlayerBinding_data()=default
PlayerBinding_data & operator=(const PlayerBinding_data &)=default
PlayerBinding_data(const PlayerBinding_data &)=default
PlayerController_data(const PlayerController_data &)=default
PlayerController_data & operator=(const PlayerController_data &)=default
PlayerController_data()=default
Position component for spatial location.
Vector position
2D/3D position vector
Position_data(Vector pos)
Construct with position.
Position_data()=default
Default constructor.
Position_data & operator=(const Position_data &)=default
Copy assignment operator.
Position_data(const Position_data &)=default
Copy constructor.
TriggerZone_data & operator=(const TriggerZone_data &)=default
TriggerZone_data()=default
TriggerZone_data(const TriggerZone_data &)=default
ECS component for animated sprites.
VisualAnimation_data & operator=(const VisualAnimation_data &)=default
const Olympe::AnimationSequence * currentSequence
VisualAnimation_data(const VisualAnimation_data &)=default
std::unordered_map< std::string, bool > boolParams
std::unordered_map< std::string, float > floatParams
std::string animGraphPath
std::unordered_map< std::string, int > intParams
std::string currentAnimName
bool animationJustFinished
VisualAnimation_data()=default
VisualEditor_data(SDL_FRect rect, Sprite *spr, Vector hotspot)
VisualEditor_data & operator=(const VisualEditor_data &)=default
VisualEditor_data(const VisualEditor_data &)=default
VisualEditor_data()=default
VisualSprite_data & operator=(const VisualSprite_data &)=default
VisualSprite_data(SDL_FRect rect, Sprite *spr, Vector hotspot)
VisualSprite_data(const VisualSprite_data &)=default
VisualSprite_data()=default