#ifndef EDITSCENE_SMART_OBJECT_EDITOR_HPP
#define EDITSCENE_SMART_OBJECT_EDITOR_HPP
#pragma once

#include "ComponentEditor.hpp"
#include "../components/SmartObject.hpp"
#include "../components/ActionDatabase.hpp"

/**
 * Editor for SmartObjectComponent.
 *
 * Allows editing radius, height, and selecting GOAP actions
 * from the ActionDatabase.
 */
class SmartObjectEditor : public ComponentEditor<SmartObjectComponent> {
public:
	const char *getName() const override
	{
		return "Smart Object";
	}

protected:
	bool renderComponent(flecs::entity entity,
			     SmartObjectComponent &so) override;

private:
	ActionDatabase *findDatabase(flecs::entity entity);
};

#endif // EDITSCENE_SMART_OBJECT_EDITOR_HPP
