#pragma once

#include <cstdint>

#include "features/items/contracts/ItemCatalogTypes.h"

namespace ta::features::world
{
    struct WorldSettings
    {
        float item_teleport_circle_radius = 2.5f;
        float item_teleport_height_offset = 0.5f;
        std::uint32_t normal_category_mask = ta::features::items::contracts::all_item_category_mask;

        bool operator==(const WorldSettings&) const = default;
    };

    enum class WorldCommandType
    {
        UnlockDoors,
        TeleportNormalItems,
        TeleportWishlistItems,
        TeleportQuestItems,
        TeleportCorpses
    };

    struct WorldCommand
    {
        WorldCommandType type = WorldCommandType::UnlockDoors;
        std::uint64_t trace_id = 0;
    };
}
