Skip to content

Руководство для создателей наборов

RPF добаляет некоторые дополнительные параметры к моделям предметов, чтобы создатели наборов смогли манипулировать процессом делигации

Oбратите внимание

Эти параметры будут работать как описанно ниже только со стратегией rpf:v1! ( по состоянию версии 1.х.x )

minecraft:select и minecraft:range_dispatch

Обе модели имеют параметр delegate. по умолчанию его значение true. Если выставить его на false, то цепочка проверки прервётся ДО проверки дочерних моделей, и данная модель обновится

json
{
    "model": {
        "type": "select",
        "property": "component",
        "components": "custom_name",
        "delegate": false, 
        "cases" : [
            {
                "when": [...], 
                "model": {
                    "type" : ...
                }
            }, 
            {...}
        ]
    }
}

minecraft:composite

Композитная модель проверяет на делигацию все её модели. То, как сама композитная модель распорядиться информацие о том, делегируют ли её дети или нет, можно настроить параметра delegate_strategy. всего стратегий делегации 3:

  • one_do_delegate (по умолчанию) - если одна из дочерних моделей делегирует - то вся копомозитная модель делегирует
  • one_cancle_delegate - если одна из дочерних моделей делегирует - то вся композитная модель НЕ делегирует
  • not_delegate - вся модель НЕ будет делегировать не при каких условия

Некоторые неочевидные поведения

  • Если модель conditional является корневой, то её модель on_false будет считаться fallback
  • Модель empty никогда не делегируется
  • Модель model будет делегироваться, если:
    1. модель является fallback
    2. пространство имён ссылки модели и пространство имён идентификатора модели элемента из компонента item_model равны (Это значит что в ванильной игре не стоит в своих наборах хранить модели в minecraft:)
    3. путь ссылки модели содержит путь идентификатора модели элемента из компонента item_model

Выпущено под лицензией MIT.