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

#include "SceneGen.hpp"

using namespace Dawn;

void SceneGen::generate(
  std::vector<std::string> *out,
  struct Scene *scene,
  std::string tabs
) {
  struct ClassGenInfo classInfo;
  struct MethodGenInfo methodAssets;
  struct MethodGenInfo methodInit;

  SceneGenerator::generate(
    scene,
    classInfo,
    methodAssets,
    methodInit
  );

  // Add in methods
  CodeGen::methodGen(&classInfo.publicCode, methodAssets);
  line(&classInfo.publicCode, "", "");
  CodeGen::methodGen(&classInfo.publicCode, methodInit);

  CodeGen::classGen(out, classInfo);
}