#pragma once #include "Server/Abstract.hpp" namespace LV::Server { struct DefVoxel { }; struct DefNode { }; struct DefWorld { }; struct DefPortal { }; struct DefEntity { }; struct DefItem { }; class ContentManager { // Профили зарегистрированные модами // Изменения, накладываемые на профили // Следующие идентификаторы регистрации контента ResourceId_t NextId[(int) EnumDefContent::MAX_ENUM] = {0}; // Домен -> {ключ -> идентификатор} std::unordered_map> ContentKeyToId[(int) EnumDefContent::MAX_ENUM]; template struct TableEntry { static constexpr size_t ChunkSize = 4096; std::array, ChunkSize> Entries; }; // Конечные профили контента std::vector>> Profiles_Voxel; std::vector>> Profiles_Node; std::vector>> Profiles_World; std::vector>> Profiles_Portal; std::vector>> Profiles_Entity; std::vector>> Profiles_Item; public: ContentManager(asio::io_context& ioc); ~ContentManager(); }; }