YAInteraction/scripts/4_World/YAInteraction/Config/YAInteractionConfig.c
smthspec e4cb0e4009 Rework interaction layer onto ZenProxyFramework proxy API
Furniture (sink/fridge/lekarnicka/vending) are house proxies, not entities, so
actions are now driven by ZenProxyFramework: actions target proxies by name
(GetZenProxyNameTarget), the proxy world position is synced to the server via
ActionData, repair spawns an invisible ZenProxySinkTest marker (presence =
repaired), and gather-water checks for it. Registry is keyed by proxy name;
loot tables / cooldowns / settings JSON kept.

NOTE: superseded approach - ZenProxyFramework does not compile on DayZ 1.29
(HouseType type-name collision). Next: a self-contained @YAProxy framework
(based on ZenProxyFramework + ShowMeInfoV2's geometry-LOD proxy scan) that
YAInteraction will depend on instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:07:02 +03:00

31 lines
1.4 KiB
C

// ============================================================================
// YAInteractionConfig - compile-time constants only
// ----------------------------------------------------------------------------
// Registry, loot tables and scalar tunables live in JSON (YAInteractionSettings
// + YAInteractionData via YAInteractionConfigLoader). These are the engine-side
// constants that aren't user-tunable.
// ============================================================================
class YAInteractionConfig
{
// Action type ids - must match YAInteractableEntry.ActionType in the JSON.
static const string ACTION_SEARCH = "search";
static const string ACTION_REPAIR_WATER = "repair_water";
// Loot table name ids - must match YALootTable.Name in the JSON.
static const string TABLE_MED = "MedTable";
static const string TABLE_FOOD = "FoodTable";
static const string TABLE_VENDING = "VendingTable";
// ZenProxyFramework entity reused as the sink "repaired" marker.
static const string SINK_PROXY_ENTITY = "ZenProxySinkTest";
// Non-JSON engine constants.
static const int WATER_LIQUID_TYPE = LIQUID_WATER;
static const int SEARCH_ROLLS_MIN = 1;
static const int SEARCH_ROLLS_MAX = 2;
// Progress-bar durations (seconds).
static const float SEARCH_TIME = 3.0;
static const float GATHER_WATER_TIME = 4.0;
static const float REPAIR_TIME = 5.0;
}