#pragma once #include "Entity.hpp" // Placeholder component definitions inspired by the GDD. Logic will be filled // in later, but the types exist now so other modules can include them and build. struct TransformComponent : public Component { float x = 0.0f; float y = 0.0f; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct PhysicsComponent : public Component { float vx = 0.0f; float vy = 0.0f; float speedCap = 400.0f; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct GravityWellComponent : public Component { float mass = 150000.0f; float minDist = 30.0f; bool active = false; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct GravityReceiverComponent : public Component { Entity *well = nullptr; bool inVoid = false; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct ColliderComponent : public Component { float radius = 8.0f; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct ScrollComponent : public Component { float scrollX = 0.0f; float speed = 2.0f; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct ScrollableComponent : public Component { float worldX = 0.0f; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct SpawnComponent : public Component { float cursorWX = 0.0f; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct TrailComponent : public Component { void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct ProjectionComponent : public Component { void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct MeterComponent : public Component { float value = 60.0f; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct HudComponent : public Component { void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct RenderComponent : public Component { virtual void Draw() {} void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct NullZoneComponent : public Component { float width = 70.0f; void Setup() override {} void Update(float) override {} void Cleanup() override {} }; struct CollectibleComponent : public Component { bool collected = false; void Setup() override {} void Update(float) override {} void Cleanup() override {} };