MQEngine
载入中...
搜索中...
未找到
Scene.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/8/20.
3//
4
5#ifndef SCENE_H
6#define SCENE_H
7
8#include "../EnginePCH.h"
9#include "../Thirdparty/thirdparty.h"
10#include "DataError.h"
11#include "SceneTrunk.h"
12#include <string>
13#include <vector>
14#include <memory>
15#include <fstream>
16#include <filesystem>
17
18namespace MQEngine {
19 class DataManager;
20
22 {
23 public:
24 Scene(DataManager* dataManager, const std::string& uuid);
25 void init();
26 void saveTrunk(const std::string& trunkName);
27 void loadTrunk(const std::string& trunkName);
28 void save();
29 void load();
30 void onLoad()
31 {
32 if (m_isChunked)
33 {
34
35 } else
36 {
37
38 }
39 }
40 std::string getName();
41 void updateTrunkList();
43 std::vector<std::string> getTrunkList()
44 {
46 return m_sceneTrunk;
47 }
48 bool isLoad(std::string trunkName)
49 {
50 return m_loadedSceneTrunks.find(trunkName)!= m_loadedSceneTrunks.end();
51 }
52 entt::registry& getRegistry() { return m_registry; }
53 SceneTrunk* getLoadedTrunk(const std::string& trunkName)
54 {
55 auto it = m_loadedSceneTrunks.find(trunkName);
56 if (it!= m_loadedSceneTrunks.end())
57 {
58 return it->second.get();
59 }
60 return nullptr;
61 }
62 private:
63 friend class boost::serialization::access;
64 template<class Archive>
65 void serialize(Archive & ar, const unsigned int version) {
66 ar & m_isChunked;
67 }
69 bool m_isChunked = false;
70 std::vector<std::string> m_sceneTrunk;
71 std::map<std::string,std::unique_ptr<SceneTrunk>> m_loadedSceneTrunks;
72 entt::registry m_registry;
73 std::string m_uuid;
74 };
75
76} // namespace MQEngine
77
78#endif //SCENE_H
79
#define ENGINE_API
定义 EnginePCH.h:14
定义 DataManager.h:58
void save()
定义 Scene.cpp:74
void load()
定义 Scene.cpp:117
entt::registry & getRegistry()
定义 Scene.h:52
std::map< std::string, std::unique_ptr< SceneTrunk > > m_loadedSceneTrunks
定义 Scene.h:71
DataManager * m_dataManager
定义 Scene.h:68
void serialize(Archive &ar, const unsigned int version)
定义 Scene.h:65
void init()
定义 Scene.cpp:16
SceneTrunk * getLoadedTrunk(const std::string &trunkName)
定义 Scene.h:53
void updateTrunkList()
定义 Scene.cpp:174
void loadTrunk(const std::string &trunkName)
定义 Scene.cpp:38
std::vector< std::string > getTrunkList()
定义 Scene.h:43
std::string m_uuid
定义 Scene.h:73
std::vector< std::string > m_sceneTrunk
定义 Scene.h:70
entt::registry m_registry
定义 Scene.h:72
bool isLoad(std::string trunkName)
定义 Scene.h:48
DataManager * getDataManager()
定义 Scene.h:42
void saveTrunk(const std::string &trunkName)
定义 Scene.cpp:23
void onLoad()
定义 Scene.h:30
Scene(DataManager *dataManager, const std::string &uuid)
定义 Scene.cpp:10
bool m_isChunked
定义 Scene.h:69
定义 SceneTrunk.h:23
定义 application.h:5