// 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 items; std::vector code; std::vector assets; struct SceneItemComponentRegistry *registry; std::vector dependencies; }; class SceneParser : public XmlParser { protected: std::vector getRequiredAttributes() override; std::map getOptionalAttributes() override; int32_t onParse( Xml *node, std::map values, struct Scene *out, std::string *error ) override; }; }