6#include "hellfire/serializers/Serializer.h"
7#include "hellfire/core/Project.h"
13 if (!obj)
return false;
17 {
"version", obj->version},
18 {
"engine_version", obj->engine_version},
19 {
"created", obj->created_at},
20 {
"last_opened", obj->last_opened},
23 {
"default_scene", obj->default_scene.string()},
24 {
"renderer_settings", obj->renderer_settings.string()}
29 if (obj->last_scene.has_value()) {
30 j[
"last_scene"] = obj->last_scene.value();
39 if (!obj)
return false;
44 obj
->name = j.at(
"name").get<std::string>();
45 obj
->version = j.value(
"version",
"1.0.0");
50 if (j.contains(
"last_scene")) {
51 obj->last_scene = j[
"last_scene"].get<AssetID>();
54 if (j.contains(
"settings")) {
55 const auto& settings = j[
"settings"];
61 }
catch (
const std::exception& e) {
62 std::cerr <<
"ProjectMetadata deserialize error: " << e.what() << std::endl;
void import_all_pending()
Import all unprocessed assets in registry.
Registry for storing assets.
const std::string & get_name() const
std::unique_ptr< AssetManager > asset_manager_
const ProjectMetadata & get_metadata() const
ProjectMetadata & get_metadata()
std::filesystem::path get_assets_path() const
std::filesystem::path get_settings_path() const
AssetRegistry * get_asset_registry() const
std::unique_ptr< SceneManager > scene_manager_
std::vector< std::filesystem::path > recent_scenes_
void initialize_default_assets()
static std::unique_ptr< Project > create(const std::string &name, const std::filesystem::path &location)
const std::string & get_version() const
static std::unique_ptr< Project > load_data(const std::filesystem::path &project_file)
std::unique_ptr< Renderer > scene_renderer_
std::unique_ptr< AssetRegistry > asset_registry_
Project(const ProjectMetadata &metadata)
SceneManager * get_scene_manager() const
ProjectMetadata metadata_
void create_directory_structure() const
std::filesystem::path project_root_path_
std::filesystem::path project_file_path_
Project(const std::string &name)
void initialize_managers()
std::filesystem::path get_scenes_path() const
std::filesystem::path get_project_root() const
static std::string get_current_timestamp()