Initial commit: Item Interaction Ecosystem plugin (UE5.7)

Server-authoritative, data-driven item/inventory/interaction/carry/equipment/
world-slot/placement/crafting framework. 8 modules, compiles against UE 5.7.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bonchellon
2026-06-22 20:49:56 +03:00
commit 7f7e043a88
98 changed files with 9328 additions and 0 deletions

View File

@ -0,0 +1,22 @@
// Copyright ExByte Studios. Item Interaction Ecosystem.
#include "ItemCoreModule.h"
#include "ItemCoreLog.h"
DEFINE_LOG_CATEGORY(LogItemCore);
#define LOCTEXT_NAMESPACE "FItemCoreModule"
void FItemCoreModule::StartupModule()
{
UE_LOG(LogItemCore, Log, TEXT("ItemCore module started."));
}
void FItemCoreModule::ShutdownModule()
{
UE_LOG(LogItemCore, Log, TEXT("ItemCore module shut down."));
}
#undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE(FItemCoreModule, ItemCore)

View File

@ -0,0 +1,77 @@
// 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");
}

View File

@ -0,0 +1,7 @@
// Copyright ExByte Studios. Item Interaction Ecosystem.
// FItemRuntimeProperties now stores its values in replicable TArrays (see header),
// so no custom net serializer is required - this translation unit is intentionally
// left empty and kept only to preserve the module's file layout.
#include "ItemRuntimeProperties.h"