// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "SceneItemComponentGenerator.hpp" #include "SceneAssetGenerator.hpp" #include "util/parser/SceneItemParser.hpp" #include "util/generator/SceneCodeGenerator.hpp" namespace Dawn { class SceneItemGenerator : public CodeGen { public: static void generateDependency( int32_t &assetNumber, int32_t &componentNumber, int32_t &childNumber, std::map &assetMap, std::vector &includes, std::vector *publicProperties, std::vector *initBody, std::vector *assetBody, std::string name, std::string sceneRef, std::vector &components, std::vector &children, std::vector &code, struct SceneItemDependency dep ); static void generate( int32_t &assetNumber, int32_t &componentNumber, int32_t &childNumber, std::map &assetMap, std::vector &includes, std::vector *publicProperties, std::vector *initBody, std::vector *assetBody, std::string parentRef, std::string sceneRef, struct SceneItem *item, std::string tabs ); }; }