// Copyright (c) 2023 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "util/XmlParser.hpp"

namespace Dawn {
  struct SceneInformation {
    std::string type;
    std::string name;
  };

  class SceneParser : public XmlParser<struct SceneInformation> {
    protected:
      std::vector<std::string> getRequiredAttributes() {
        return std::vector<std::string>{
          "name",
        };
      }

      std::map<std::string, std::string> getOptionalAttributes() {
        return std::map<std::string, std::string>{
          { "type", "SimpleVNScene" }
        };
      }

      int32_t onParse(
        Xml *node,
        std::map<std::string, std::string> values,
        struct SceneInformation *out,
        std::string *error
      ) {
        out->name = values["name"];
        out->type = values["type"];
        return 0;
      }
  };
}