#ifndef EDITSCENE_PROCEDURALMATERIALEDITOR_HPP
#define EDITSCENE_PROCEDURALMATERIALEDITOR_HPP
#pragma once

#include "ComponentEditor.hpp"
#include "../components/ProceduralMaterial.hpp"
#include <OgreSceneManager.h>
#include <flecs.h>

/**
 * Editor for ProceduralMaterialComponent
 */
class ProceduralMaterialEditor : public ComponentEditor<ProceduralMaterialComponent> {
public:
	ProceduralMaterialEditor(Ogre::SceneManager* sceneMgr = nullptr);
	bool renderComponent(flecs::entity entity, ProceduralMaterialComponent &material) override;
	const char *getName() const override { return "Procedural Material"; }

private:
	void renderTextureSelector(flecs::entity entity, ProceduralMaterialComponent &material);
	
	Ogre::SceneManager* m_sceneMgr;
};

#endif // EDITSCENE_PROCEDURALMATERIALEDITOR_HPP
