// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "util/DawnTool.hpp" #include "util/Directory.hpp" #include "util/XmlParser.hpp" #include "util/CodeGen.hpp" #include "util/string.hpp" #include namespace Dawn { struct SceneItemComponentRuleset { std::string name; std::string include; std::map selfOptional; std::map innerXml; std::map optional; std::vector extends; }; struct SceneItemComponentRegistry { std::string sources; std::map rulesets; struct SceneItemComponentRuleset parseFile( File *file, std::string clazz ); /** * Gets a prefab component ruleset for a specific scene item component type. * * @param type Scene Item Component Type to get ruleset for. * @return The found ruleset, or an empty ruleset if not found. */ struct SceneItemComponentRuleset getRuleset(std::string type); }; }