// Copyright ExByte Studios. Item Interaction Ecosystem.

#include "ItemNativeTags.h"

namespace ItemEcosystemTags
{
	// --- Runtime property tags ---
	UE_DEFINE_GAMEPLAY_TAG(Property_Durability,    "Property.Durability");
	UE_DEFINE_GAMEPLAY_TAG(Property_Freshness,     "Property.Freshness");
	UE_DEFINE_GAMEPLAY_TAG(Property_RotProgress,   "Property.RotProgress");
	UE_DEFINE_GAMEPLAY_TAG(Property_Temperature,   "Property.Temperature");
	UE_DEFINE_GAMEPLAY_TAG(Property_Wetness,       "Property.Wetness");
	UE_DEFINE_GAMEPLAY_TAG(Property_FuelAmount,    "Property.FuelAmount");
	UE_DEFINE_GAMEPLAY_TAG(Property_MaxFuel,       "Property.MaxFuel");
	UE_DEFINE_GAMEPLAY_TAG(Property_BatteryCharge, "Property.BatteryCharge");
	UE_DEFINE_GAMEPLAY_TAG(Property_Contamination, "Property.Contamination");
	UE_DEFINE_GAMEPLAY_TAG(Property_NoiseLevel,    "Property.NoiseLevel");
	UE_DEFINE_GAMEPLAY_TAG(Property_SmellIntensity,"Property.SmellIntensity");
	UE_DEFINE_GAMEPLAY_TAG(Property_BloodLevel,    "Property.BloodLevel");
	UE_DEFINE_GAMEPLAY_TAG(Property_Radiation,     "Property.Radiation");
	UE_DEFINE_GAMEPLAY_TAG(Property_Poison,        "Property.Poison");
	UE_DEFINE_GAMEPLAY_TAG(Property_CookedLevel,   "Property.CookedLevel");
	UE_DEFINE_GAMEPLAY_TAG(Property_BurnLevel,     "Property.BurnLevel");
	UE_DEFINE_GAMEPLAY_TAG(Property_Quality,       "Property.Quality");
	UE_DEFINE_GAMEPLAY_TAG(Property_Charge,        "Property.Charge");
	UE_DEFINE_GAMEPLAY_TAG(Property_LastUpdateTime,"Property.LastUpdateTime");

	// --- State tags ---
	UE_DEFINE_GAMEPLAY_TAG(State_Broken,       "Item.State.Broken");
	UE_DEFINE_GAMEPLAY_TAG(State_Rotten,       "Item.State.Rotten");
	UE_DEFINE_GAMEPLAY_TAG(State_Wet,          "Item.State.Wet");
	UE_DEFINE_GAMEPLAY_TAG(State_Contaminated, "Item.State.Contaminated");
	UE_DEFINE_GAMEPLAY_TAG(State_Empty,        "Item.State.Empty");

	// --- Lock reasons ---
	UE_DEFINE_GAMEPLAY_TAG(Lock_Carrying,     "Lock.Carrying");
	UE_DEFINE_GAMEPLAY_TAG(Lock_Using,        "Lock.Using");
	UE_DEFINE_GAMEPLAY_TAG(Lock_Transferring, "Lock.Transferring");
	UE_DEFINE_GAMEPLAY_TAG(Lock_Crafting,     "Lock.Crafting");
	UE_DEFINE_GAMEPLAY_TAG(Lock_Installing,   "Lock.Installing");
	UE_DEFINE_GAMEPLAY_TAG(Lock_Replicating,  "Lock.Replicating");
	UE_DEFINE_GAMEPLAY_TAG(Lock_Placement,    "Lock.Placement");

	// --- Action verbs ---
	UE_DEFINE_GAMEPLAY_TAG(Action_Pickup_Instant,   "Action.Pickup.Instant");
	UE_DEFINE_GAMEPLAY_TAG(Action_Pickup,           "Action.Pickup");
	UE_DEFINE_GAMEPLAY_TAG(Action_Open,             "Action.Open");
	UE_DEFINE_GAMEPLAY_TAG(Action_Carry,            "Action.Carry");
	UE_DEFINE_GAMEPLAY_TAG(Action_Drop,             "Action.Drop");
	UE_DEFINE_GAMEPLAY_TAG(Action_Equip,            "Action.Equip");
	UE_DEFINE_GAMEPLAY_TAG(Action_Inspect,          "Action.Inspect");
	UE_DEFINE_GAMEPLAY_TAG(Action_Use,              "Action.Use");
	UE_DEFINE_GAMEPLAY_TAG(Action_Install,          "Action.Install");
	UE_DEFINE_GAMEPLAY_TAG(Action_Remove,           "Action.Remove");
	UE_DEFINE_GAMEPLAY_TAG(Action_Place,            "Action.Place");
	UE_DEFINE_GAMEPLAY_TAG(Action_UseHeldOnTarget,  "Action.UseHeldOnTarget");

	// --- Feature tags ---
	UE_DEFINE_GAMEPLAY_TAG(Feature_Consumable,  "Feature.Consumable");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Rotting,     "Feature.Rotting");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Durability,  "Feature.Durability");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Battery,     "Feature.Battery");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Fuel,        "Feature.Fuel");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Wetness,     "Feature.Wetness");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Temperature, "Feature.Temperature");
	UE_DEFINE_GAMEPLAY_TAG(Feature_NoiseOnDrop, "Feature.NoiseOnDrop");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Smell,       "Feature.Smell");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Container,   "Feature.Container");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Equippable,  "Feature.Equippable");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Throwing,    "Feature.Throwing");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Breakable,   "Feature.Breakable");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Flammable,   "Feature.Flammable");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Placeable,   "Feature.Placeable");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Installable, "Feature.Installable");
	UE_DEFINE_GAMEPLAY_TAG(Feature_QuestItem,   "Feature.QuestItem");
	UE_DEFINE_GAMEPLAY_TAG(Feature_Cursed,      "Feature.Cursed");
}
