diff options
author | hnOsmium0001 <[email protected]> | 2022-04-18 17:54:29 -0700 |
---|---|---|
committer | hnOsmium0001 <[email protected]> | 2022-04-18 17:54:29 -0700 |
commit | 4b57fe1fb1401bab9439a639bd842ca61386fe22 (patch) | |
tree | ce06c1fc38b65e8f74acf36d1e3ecfa7e56b367a /source/Ires.hpp | |
parent | d43508ba4843801cbbf1f42a27af260d4eef5701 (diff) |
Implement IresSpritesheet
Diffstat (limited to 'source/Ires.hpp')
-rw-r--r-- | source/Ires.hpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/Ires.hpp b/source/Ires.hpp index 66a931e..9b055af 100644 --- a/source/Ires.hpp +++ b/source/Ires.hpp @@ -11,7 +11,7 @@ #include <string_view> // Forward declarations -class IresObject; +class EditorInstance; class IresManager; class IresObject : public RefCounted { @@ -43,12 +43,16 @@ public: IresManager* GetAssociatedManager() const { return mMan; } bool IsAnnoymous() const; const std::string& GetName() const { return mName; } + void SetName(std::string name); + + virtual void ShowEditor(EditorInstance& editor); EditorAttachment* GetEditorAttachment() const { return mEditorAttachment.get(); } void SetEditorAttachment(EditorAttachment* attachment) { mEditorAttachment.reset(attachment); } - static rapidjson::Value WriteFull(const IresObject& ires, rapidjson::Document& root); + static void WriteFull(IresObject* ires, rapidjson::Value& value, rapidjson::Document& root); static std::unique_ptr<IresObject> ReadFull(const rapidjson::Value& value); + static bool ReadPartial(IresObject* ires, const rapidjson::Value& value); virtual void Write(rapidjson::Value& value, rapidjson::Document& root) const = 0; virtual void Read(const rapidjson::Value& value) = 0; }; @@ -58,7 +62,7 @@ public: static inline IresManager* instance = nullptr; private: - robin_hood::unordered_map<std::string_view, RcPtr<IresObject>, StringHash, StringEqual> mObjects; + robin_hood::unordered_map<std::string_view, RcPtr<IresObject>> mObjects; public: void DiscoverFilesDesignatedLocation(); @@ -68,6 +72,11 @@ public: void Delete(IresObject* ires); bool Rename(IresObject* ires, std::string newName); + IresObject* Load(const std::filesystem::path& path); + void Reload(IresObject* ires); + void Save(IresObject* ires); + void Save(IresObject* ires, const std::filesystem::path& filePath); + const auto& GetObjects() const { return mObjects; } IresObject* FindIres(std::string_view path); }; |