#pragma once

#include "game/scenes/scene.hpp"

namespace Scenes {

    // Escena de boot que conduix la càrrega incremental del Resource::Cache.
    // tick() crida loadStep amb un pressupost de ~8ms i pinta una barra
    // de progrés mentre dura. Quan el Cache marca isLoadDone, l'escena
    // marca done() i el Director passa al següent state (intro = 255).
    class BootLoaderScene : public Scene {
       public:
        BootLoaderScene();
        ~BootLoaderScene() override = default;

        void onEnter() override;
        void tick(int delta_ms) override;
        [[nodiscard]] auto done() const -> bool override { return done_; }

       private:
        static void render();

        bool done_{false};
    };

}  // namespace Scenes
