Replace the ZenProxyFramework dependency (broken on 1.29) with @YAProxy, our
self-contained proxy framework. Actions now extend YAProxyActionBase:
- Search / RepairSink / GatherWater resolve the targeted furniture proxy by
keyword and use the synced world position from YAProxy
- Confirmed proxy names from live test: case_sink_a, fridge, lekarnicka
(vending defaulted to 'sodamachine' pending confirmation)
- Registry lookup matches proxy names as substrings (handles '.001' suffix)
- Sink repaired-state + search/water cooldowns tracked server-side, keyed by
proxy world position / player UID (in-memory, reset on restart per v1 spec)
- Repair on Wrench/PipeWrench, GatherWater on Bottle_Base (item-based, load-
order safe); Search on PlayerBase
requiredAddons: YAProxy. Loot tables / settings JSON unchanged.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>
Searchable furniture (med cabinet, fridge, vending machine) with weighted,
config-driven loot tables, and a two-stage repairable sink (repair then gather
water). Data-driven registry, in-memory cooldowns/repair state with v2 CF hooks.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>