// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "util/parser/SceneItemParser.hpp" #include "util/parser/SceneCodeParser.hpp" namespace Dawn { struct Scene { std::string name; std::string extend; std::vector<struct SceneItem> items; std::vector<struct SceneCode> code; std::vector<struct SceneAsset> assets; struct SceneItemComponentRegistry *registry; std::vector<struct SceneItemDependency> dependencies; }; class SceneParser : public XmlParser<struct Scene> { protected: std::vector<std::string> getRequiredAttributes() override; std::map<std::string, std::string> getOptionalAttributes() override; int32_t onParse( Xml *node, std::map<std::string, std::string> values, struct Scene *out, std::string *error ) override; }; }