#pragma once #include #include #include #include "ecs.h" struct Keyframe { int time = 0; glm::vec3 valueVec3 = glm::vec3(0); int valueInt = 0; }; enum class AnimationProperty { Position, Target, FoV }; struct Animation { EntityID target; std::string targetName, targetComponent; AnimationProperty property = AnimationProperty::Position; std::vector keyframes; }; struct CinematicEntity { nlohmann::json data; }; struct Shot { int start = 0, end = 0; bool loaded = false; std::string world; std::vector entities; std::vector loadedEntities; std::vector animations; }; class Cinematic { public: std::vector shots; };