Словарь руд предназначен в первую очередь для обеспечения лучшей совместимости между модами, решая проблему дублирующихся руд и других предметов. Чуть ли не каждый технический мод считает своим долгом добавить в игру оловянную и медную руду, в результате в сборке появляется с десяток видов одной и той же руды. Словарь руд решает эту проблему, делая руды из различных модификаций взаимозаменяемыми.

Предметы, зарегистрированные в OreDictionary , становятся эквивалентны другим предметам, входящим в ту же группу словаря, что и зарегистрированный. Это позволяет использовать в рецептах словаря любой предмет из группы, указав её имя, для получения одного и того же результата.

Несмотря на свое название, OreDictionary используется не только для руд. Любой предмет, похожий на другой предмет (например, красители), может быть зарегистрирован в OreDictionary .

Именование групп#

Старайтесь использовать имена существующих групп словаря, прежде чем придумывать свою, иначе смысл от использования словаря стремится к нулю.

Подробный обзор : Thermal Foundation (Thermal expansion)

Forge явно не требует, чтобы имена были в каком-либо определенном формате, но следующее стало популярным стандартом для имен OreDictionary:

  1. Имя группы должно использовать camelCase и должно начинаться со строчной буквы (пример: oreHello ).
  2. Первое слово указывает на тип элемента.
    • ore – руды (блок)
    • wood – древесина (блок)
    • gem – драгоценные камни (предмет)
    • ingot – слитки (предмет)
    • block – Различные блоки
    • dust – Пыль (предмет)
    • wires – Провода
    • nuggets – Самородки (предмет)
    • crops – Семена и растения без семян (предмет)
    • material – Предметы из определённого вида материала
    • Второе указывает материал предмета. Для уникальных предметов (таких, как record , dirt , egg и vine ) материал не требуется.
    • Третьим указывается цвет блока/предмета, если предметы имеют разновидности по цвету (пример: blockGlassLightGray ).
    Читайте также:  Minecraft launcher не устанавливается из Microsoft store

    Когда два слова недостаточно конкретны, можно добавить третье слово. Например, кирпич зарегистрировано как ingotBrick , в то время как адский кирпич зарегистрировано как ingotBrickNether .

    Регистрация предметов в словаре руд#

    Доступно три метода для регистрации предмета в словаре руд. Первым параметром идёт имя группы, вторым — предмет, который мы хотим добавить в группу. При отсутствии группы с указанным именем, она будет создана автоматически.

    1. OreDictionary#registerOre(String, Item) — регистрация предмета, когда damage неважен.
    2. OreDictionary#registerOre(String, Block) — регистрация блока, когда meta неважна.
    3. OreDictionary#registerOre(String, ItemStack) — регистрирует предмет/блок с конкретным значением damage.

    Для ItemStack можно задать магическое значение damage WILDCARD_VALUE , для указания на то, что damage предмета не важен. Методы регистрации Item и Block используют данный подход.

    КАК УСТАНОВИТЬ И СКАЧАТЬ FORGE НА ЛИЦЕНЗИЮ МАЙНКРАФТ?

    Зарегистрируем рубин, рубиновый блок и воздушные шарики в словаре руд.

    package ru.mcmodding.tutorial.common.handler; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; public class ModRecipes public static void registerRecipes() // . > public static void registerOres() OreDictionary.registerOre(«blockRuby», ModBlocks.RUBY); OreDictionary.registerOre(«gemRuby», ModItems.RUBY); OreDictionary.registerOre(«balloon», new ItemStack(ModItems.BALLOON, 1, OreDictionary.WILDCARD_VALUE)); > >

    Затем необходимо вызвать метод ModRecipes#registerOres в CommonProxy#postInit , до регистрации основных рецептов.

    package ru.mcmodding.tutorial.common; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import ru.mcmodding.tutorial.common.handler.*; public class CommonProxy implements IGuiHandler public void postInit(FMLPostInitializationEvent event) ModRecipes.registerOres(); ModRecipes.registerRecipes(); > >

    API OreDictionary#

    В классе OreDictionary существуют вспомогательные методы:

    • getOreID(String) — возвращает ID указанной группы. Если группы не существует, будет создана новая и возвращён её ID.
    • getOreName(int) — возвращает имя группы по ID.
    • getOreID(ItemStack) — Возвращает первое имя группы в которую входит предмет. Данный метод объявлен устаревшим так как возвращает всего одно имя группы, в то время как предмет может входить сразу в несколько групп. Используйте следующий метод.
    • getOreIDs(ItemStack) — Возвращает список имён групп словаря в которые входит предмет. Если предмет нигде не числится, вернёт пустой список.
    • getOres(Integer) — Возвращает список предметов, входящих в указанную группу (по ID). При отсутствии будет создана новая группа.
    • getOres(String) — Эквивалент предыдущего метода, принимающий имя группы вместо её ID.
    • getOres(String, boolean) — Эквивалент двух предыдущих методов, с возможностью отключить автоматическое создание группы при её отсутствии. Опция должна использоваться разработчиками модификаций, которые выполняют полное сканирование в postInit . Это значительно уменьшает беспорядок в словаре руд и является правильным способом использования словаря в большинстве случаев.
    • doesOreNameExist(String) — Проверяет существование группы с указанным именем. Может быть использован для безопасного запроса словаря руд без добавления ненужного беспорядка в базовую структуру карты. Пожалуйста, используйте этот метод, когда это возможно и уместно.
    • getOreNames() — Возвращает массив всех имён групп, зарегистрированных в словаре.
    • itemMatches(ItemStack, ItemStack, boolean) — Проверяет совпадение входящего предмета с целевым по item и damage. Имеет параметр strict, который отвечает за строгую проверку itemDamage предмета без использования WILDCARD_VALUE .
    Читайте также:  Голосование minecraft live когда

    Источник: mcmodding.ru

    Thermal Foundation 2/Лексикон Forge

    Лексикон Forge [1] (от англ. Forge Lexicon) — это предмет, который преобразует предметы в другие предметы, которые считаются эквивалентными. Примерами эквивалентных предметов являются различные версии медных и оловянных слитков, добавленные различными модификациями.

    • 1 Создание
    • 2 Использование
    • 2.1 Режимы
    • 2.2 Знания
    • 2.3 Превращения
    • 2.4 Как ингредиент при крафте

    Создание

    Использование

    Режимы

    Лексикон Forge может быть в одном из двух режимов: «Знания» и «Превращения». Изначально он находится в режиме знания. Режим можно сменить нажатием кнопки V .

    Знания

    Когда лексикон Forge используется и переключен в режим знаний, открывается интерфейс, который позволяет пользователю изучить доступные группы эквивалентных предметов и установить, какие элементы в этих группах они предпочитают. Эти предпочтения используются, когда лексикон находится в режиме превращений.

    Превращения

    Лексикон Forge в режиме превращений, находясь в инвентаре пользователя преобразует любые взаимозаменяемые подобранные предметы, в предпочтительные эквиваленты пользователя. Если пользователь не установил предпочтительный эквивалент для предмета, то предмет преобразуется в первый из доступных эквивалентов.

    Когда лексикон Forge используется в режиме превращений, открывается интерфейс, который позволяет пользователю вручную конвертировать предметы в их эквиваленты.

    Как ингредиент при крафте

    Примечания

    1. ↑ Лексикон Forge назван в честь Minecraft Forge modding API, который предоставляет систему регистрации взаимозаменяемых предметов для совместимости между модами.

    Источник: wiki-minecraft.ru

    Лексикон Forge не работает.

    AL0NE

    Игрок

    22 Фев 2020 44 2 18

    Недавно я писал тему на форуме про oredict, мне предложили использовать лексикон, но он не работает на эти руды, потому-что он способен менять руды только которые имеют oreDict, заменить руду из IC2 в руду TF не выйдет. Нужен фикс.

    Последнее редактирование модератором: 2 Мар 2020

    Читайте также:  Как выдать свет в Майнкрафте

    Big_Energy

    root

    Команда проекта
    Гл. Администратор
    14 Сен 2018 4,943 177 198

    Унификатор руд не пробовали?

    AL0NE

    Игрок

    22 Фев 2020 44 2 18
    Унификатор руд не пробовали?

    это полумера, крафт дорогущий для новичка, просто написать 3 строчки в minetweaker на руду. Плюс у вас из-за каши в рудах происходит каскад, можно было бы дубли руд выключить, это бы генерацию разгрузило, следовательно меньше лагов. Либо заставьте вашего кодера смещение сделать к центру чанков.

    Big_Energy

    root

    Команда проекта
    Гл. Администратор
    14 Сен 2018 4,943 177 198

    Нет никакой каши, некоторые руды намеренно удалены из oreDict для баланса. Смотрите скрипты в клиенте.

    Источник: forum.gamepoint.su