Path Under Gates
Модификация для Minecraft, которая позволяет создавать тропинки под калитками.
Новая улучшенная версия для 1.18.2, 1.19.2/1.19.3 и 1.20.1/1.20.2! Теперь с улучшенной совместимостью с модами!
Формат белых/черных списков
Формат записи:
modid:name:properties
Имя (name) может быть оператором подстановки *. Если имя не указано, это равносильно использованию подстановки.
Не все свойства блока должны быть определены. Белые/черные списки будут сопоставляться с любыми указанными свойствами, игнорируя те, которые не заданы. Свойства разделяются запятой ,, каждое свойство представляет собой пару ключ-значение в формате key=value. Свойства также могут быть оператором подстановки *. Если свойства не определены, это равносильно использованию подстановки.
Если modid указан как ore, будут сопоставляться ванильные и Forge теги, где name будет путем к тегу. Если мод использует собственное пространство имен для тегов, оно должно быть указано как modid для корректного сопоставления. Часть пути тега указывается как name. В этом случае свойства не применяются, и их использование приведет к неудачному сопоставлению с тегом.
Когда определены только modid и name, сначала будет предпринята попытка сопоставления с тегами. В случае неудачи запись будет пытаться сопоставиться с блоком.
Примеры записей:
"minecraft:*"— все блоки в доменеminecraft"minecraft"— все блоки в доменеminecraft"minecraft:stone"— соответствуетminecraft:stone"minecraft:jungle_log"— все разновидностиminecraft:jungle_log"minecraft:jungle_log:*"— все разновидностиminecraft:jungle_log"minecraft:jungle_log:axis=x"— все разновидностиminecraft:jungle_logсо свойством axis=x, другие свойства игнорируются"minecraft:oak_stairs:facing=east"— все разновидностиminecraft:oak_stairsсо свойствомfacing=east, другие свойства игнорируются"minecraft:oak_stairs:half=top"— все разновидностиminecraft:oak_stairsсо свойствомhalf=top, другие свойства игнорируются"minecraft:oak_stairs:facing=east,half=top"— все разновидностиminecraft:oak_stairsсо свойствамиfacing=eastиhalf=top, другие свойства игнорируются"ore:spruce_logs"— все блоки под ванильным тегомspruce_logs"ore:fences/wooden"— все блоки под Forge тегомfences/wooden"minecraft:logs"— все блоки под ванильным тегомlogs(это тег, хотя выглядит как блок)
Новая функция: Совместимость с модифицированными тропинками
При нажатии ПКМ лопатой на блок выполняется код, который определяет, можно ли его превратить в тропинку. Этот код проверяет, не находится ли блок под чем-либо и имеет ли блок возможное преобразование в тропинку. Данный мод работает, предваряя этот код и выполняя проверку и преобразование самостоятельно. С тропинками, добавленными модами, возникает проблема с частью "возможное преобразование". У ванильных блоков эта информация хранится в известном месте, но у блоков, добавленных модами, она может находиться где угодно. Для выполнения преобразования этому моду необходимо знать, во что блок должен превратиться. В связи с этим, теперь мод имеет возможность получать эту информацию. Это реализовано двумя способами:
Файл конфигурации
Форматирование похоже на белые/черные списки. Формат записи:
modid:name|modid:name:properties
Первая часть имеет тот же формат, но не позволяет указывать свойства. Вторая часть, как и в формате списков, позволяет это делать. Любые неуказанные свойства считаются значениями по умолчанию. Основные различия между форматом списка и этим заключаются в том, что запись представлена парой, разделенной символом |, и что теги/подстановки НЕ разрешены. Эта настройка конфигурации может быть использована владельцем сервера для непредусмотренных действий, например, превращения блока угля в блок алмаза, но, конечно, никто не настолько порочен.
Примеры записей:
minecraft:snow_block|morepaths:snow_path— Снежный блок будет превращен в снежную тропинку из модаmorepathundergarden:deepsoil|ugpaths:deepsoil_path— Блок deepsoil из модаundergardenбудет превращен в тропинку deepsoil из модаugpathsminecraft:stone|minecraft:stone_slab:type=top— Каменный блок будет превращен в каменную плиту (верхнюю половину)minecraft:coal_block|minecraft:diamond_block— Угольный блок будет "превращен" в алмазный блок, хотя никто бы так не поступил
InterModComms
Теперь авторы модов смогут сообщать этому моду, во что должен превращаться блок при попытке его выравнивания лопатой. Это предполагает использование функции InterModComms, предоставляемой Forge.
Сообщения, отправленные этому моду, будут обработаны в пару Block-BlockState. Это делается путем отправки сообщения с методом "registerpath" и массивом Object[] длиной 2, содержащим объект Block на первой позиции и объект BlockState на второй. Примеры смотрите в README на GitHub.
