#include "property_editor_npc.h"

namespace ECS
{
namespace Items
{

bool PropertyEditorNPC::_matches(const std::string &itemName,
                 const nlohmann::json::json_pointer &ptr,
                 const nlohmann::json &j)
{
    if (ptr.empty())
        return false;
    if (!ptr.parent_pointer().empty() &&
        ptr.parent_pointer().back() == "npcs") {
        return true;
    }
    return false;
}

void PropertyEditorNPC::_render(flecs::entity entity,
                const nlohmann::json::json_pointer &ptr,
                nlohmann::json &j)
{
    ImGui::TableSetColumnIndex(1);
    ImGui::TextWrapped("%s", j[ptr].dump(4).c_str());
}

PropertyEditorNPC::PropertyEditorNPC()
    : DPropertyEditor(EditNPC, "NPC Editor")
{
}

} // namespace Items
} // namespace ECS
