#pragma once #include #define GLM_ENABLE_EXPERIMENTAL #include #include #include "typedefs.hpp" #include "presets/NotePreset.hpp" class Level; class Chunks; class Camera; class Assets; class Player; struct Block; class Engine; class LevelController; class WorldRenderer; class Decorator { Engine& engine; const Level& level; const Assets& assets; Player& player; WorldRenderer& renderer; std::unordered_map blockEmitters; std::unordered_map playerTexts; int currentIndex = 0; NotePreset playerNamePreset {}; void update( float delta, const glm::ivec3& areaStart, const glm::ivec3& areaCenter ); void addParticles(const Block& def, const glm::ivec3& pos); public: Decorator( Engine& engine, LevelController& level, WorldRenderer& renderer, const Assets& assets ); void update(float delta, const Camera& camera); };