Словарь руд предназначен в первую очередь для обеспечения лучшей совместимости между модами, решая проблему дублирующихся руд и других предметов. Чуть ли не каждый технический мод считает своим долгом добавить в игру оловянную и медную руду, в результате в сборке появляется с десяток видов одной и той же руды. Словарь руд решает эту проблему, делая руды из различных модификаций взаимозаменяемыми.
Предметы, зарегистрированные в OreDictionary , становятся эквивалентны другим предметам, входящим в ту же группу словаря, что и зарегистрированный. Это позволяет использовать в рецептах словаря любой предмет из группы, указав её имя, для получения одного и того же результата.
Несмотря на свое название, OreDictionary используется не только для руд. Любой предмет, похожий на другой предмет (например, красители), может быть зарегистрирован в OreDictionary .
Именование групп#
Старайтесь использовать имена существующих групп словаря, прежде чем придумывать свою, иначе смысл от использования словаря стремится к нулю.
Подробный обзор : Thermal Foundation (Thermal expansion)
Forge явно не требует, чтобы имена были в каком-либо определенном формате, но следующее стало популярным стандартом для имен OreDictionary:
- Имя группы должно использовать camelCase и должно начинаться со строчной буквы (пример: oreHello ).
- Первое слово указывает на тип элемента.
- ore – руды (блок)
- wood – древесина (блок)
- gem – драгоценные камни (предмет)
- ingot – слитки (предмет)
- block – Различные блоки
- dust – Пыль (предмет)
- wires – Провода
- nuggets – Самородки (предмет)
- crops – Семена и растения без семян (предмет)
- material – Предметы из определённого вида материала
- Второе указывает материал предмета. Для уникальных предметов (таких, как record , dirt , egg и vine ) материал не требуется.
- Третьим указывается цвет блока/предмета, если предметы имеют разновидности по цвету (пример: blockGlassLightGray ).
Когда два слова недостаточно конкретны, можно добавить третье слово. Например, кирпич зарегистрировано как ingotBrick , в то время как адский кирпич зарегистрировано как ingotBrickNether .
Регистрация предметов в словаре руд#
Доступно три метода для регистрации предмета в словаре руд. Первым параметром идёт имя группы, вторым — предмет, который мы хотим добавить в группу. При отсутствии группы с указанным именем, она будет создана автоматически.
- OreDictionary#registerOre(String, Item) — регистрация предмета, когда damage неважен.
- OreDictionary#registerOre(String, Block) — регистрация блока, когда meta неважна.
- 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 .
Источник: 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 используется в режиме превращений, открывается интерфейс, который позволяет пользователю вручную конвертировать предметы в их эквиваленты.
Как ингредиент при крафте
Примечания
- ↑ Лексикон 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