From c9139577e690baff59da1b1edf13ef209c00ee40 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 18 Aug 2025 18:50:04 -0400 Subject: Added the_repetitive --- tools/util/godot_scene.h | 58 ++++++++++++++++++++---------------------------- 1 file changed, 24 insertions(+), 34 deletions(-) (limited to 'tools/util/godot_scene.h') diff --git a/tools/util/godot_scene.h b/tools/util/godot_scene.h index 529e38e..17f3f50 100644 --- a/tools/util/godot_scene.h +++ b/tools/util/godot_scene.h @@ -1,13 +1,12 @@ #ifndef TOOLS_UTIL_TSCN_H_ #define TOOLS_UTIL_TSCN_H_ -#include - #include #include #include -#include +#include #include +#include namespace com::fourisland::lingo2_archipelago { @@ -22,45 +21,36 @@ struct GodotExtResourceRef { using GodotInstanceType = std::variant; -class GodotNode { - public: - GodotNode(std::string name, GodotInstanceType instance_type) - : name_(std::move(name)), instance_type_(std::move(instance_type)) {} - - const std::string& GetName() const { return name_; } - - const GodotInstanceType& GetInstanceType() const { return instance_type_; } - - const GodotNode* GetParent() const { return parent_; } - GodotNode* GetParent() { return parent_; } +struct GodotNode { + std::string name; + std::string parent; + GodotInstanceType instance_type; std::string GetPath() const; - - void AddChild(GodotNode& child); - - const GodotNode* GetNode(absl::string_view path) const; - GodotNode* GetNode(absl::string_view path); - - const std::map GetChildren() const { - return children_; - } - - private: - std::string name_; - GodotInstanceType instance_type_; - - GodotNode* parent_ = nullptr; - std::map children_; }; class GodotScene { public: - virtual const GodotExtResource* GetExtResource( - const std::string& id) const = 0; - virtual const GodotNode& GetRoot() const = 0; + GodotScene(std::map ext_resources, + std::vector nodes) + : ext_resources_(std::move(ext_resources)), nodes_(std::move(nodes)) {} + + const GodotExtResource* GetExtResource(const std::string& id) const { + auto it = ext_resources_.find(id); + if (it != ext_resources_.end()) { + return &it->second; + } else { + return nullptr; + } + } + const std::vector& GetNodes() const { return nodes_; } + + private: + std::map ext_resources_; + std::vector nodes_; }; -std::unique_ptr ReadGodotSceneFromFile(const std::string& path); +GodotScene ReadGodotSceneFromFile(const std::string& path); } // namespace com::fourisland::lingo2_archipelago -- cgit 1.4.1