Свёрток-«коробочка на бечёвке» (parcelGenericPrefab + HoldType=31,
унаследованные от Петли вора) для браслета выглядел нелепо. Теперь в
руке не видно ничего, только кулак, повёрнутый вниз.
Связка списана с ванильного vehicleMinibikePlaceable (items.xml:13385),
где те же две строки стоят подряд: HoldType="7" + HoldingItemHidden="true".
Найдено декомпиляцией Assembly-CSharp 3.2.0 через Mono.Cecil, который
лежит прямо в игре (Mods/0_TFP_Harmony/Mono.Cecil.dll):
- HoldType=7 - это и есть блочный хват: его ставит ItemClassBlock..ctor,
а в blocks.xml свойство HoldType не встречается ни разу, то есть каждый
блок в игре держится именно этим значением. Костет - это 70, запасной
вариант не понадобился.
- HoldingItemHidden - штатное свойство ItemClass (PropHoldingItemHidden в
.cctor, ParseBool в Init), а Inventory.setHoldingItemTransform в конце
делает SetActive(!HoldingItemHidden). Гаснет только модель в руке -
иконка инвентаря и предмет на земле не трогаются.
- Пустой меш поставить нельзя: ItemClass.CloneModel подставляет заглушку
leather.fbx, если ассет не загрузился. Поэтому Meshfile оставлен
затычкой, а DropMeshfile - ванильный мешок, как у минибайка.
- Действия предмета не задеты: ItemActionEat читает HoldType только ради
AnimationDelay[HoldType].RayCast, который равен 0f и у 31, и у 7;
ExecuteAction, за которую держится SpatialVaultPatch, его не читает.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FEXvXg1FSAQJHrvYbeAKqq