Ore Dictionary

Forge’s «Ore Dictionary» система предоставляет API, который создатели модификаций могут использовать для обозначения элементов / блоков как эквивалентных друг другу. Это было первоначально создано, потому что несколько модов добавляли свои собственные версии тех же руд и слитков (медь, олово и так далее). Эта система работает так: каждый пакет ItemStack представляет собой список связанных с ним имен String «Ore Dictionary».

Давайте создадим класс ItemOre , который расширяет ItemBase и имеет метод initOreDict для обработки регистрации «Ore Dictionary». Это даст нам хороший полностью реализованный класс для ore-dictionaried(рудодикционированных) предметов.

package net.shadowfacts.tutorial.item; import net.minecraftforge.oredict.OreDictionary; public class ItemOre extends ItemBase < private String oreName; public ItemOre(String name, String oreName) < super(name); this.oreName = oreName; >public void initOreDict() < OreDictionary.registerOre(oreName, this); >>

Этот класс просто принимает второй String параметр в своем конструкторе, который является именем ore-dictionary, а затем использует его в методе initOreDict .

[1] Обзор мода Ore Dictionary Converter [1.6.4]

Мы также обновим наш класс BlockOre , чтобы предоставить аналогичный метод initOreDict .

Теперь, когда у нас есть все наши базовые классы, мы собираемся изменить некоторые из наших элементов и блоков, чтобы дать имена «Ore Dictionary»!

Единственный блок, который будет иметь имя «Ore Dictionary» это блок медной руды. Следуя соглашениям для названий «Ore Dictionary» (если вы посмотрите в классе OreDictionary , вы можете получить общее представление о том, что это за соглашения), наш блок медной руды будет иметь имя «Ore Dictionary» oreCopper .

Мы просто изменим наш регистрационный вызов для блока медной руды на второй параметр, который также является «oreCopper» , сообщая классу BlockOre использовать oreCopper в качестве имени словаря для этого блока.

// . public class ModBlocks < // . public static BlockOre oreCopper = new BlockOre(«ore_copper», «oreCopper»); // . >

Теперь мы заменим оба элемента ingotCopper и cropCorn , чтобы иметь названия «Ore Dictionary» ingotCopper и cropCorn соответственно. Все это требует изменения экземпляров ItemBase для экземпляров ItemOre и передачи искомого имени «Ore Dictionary» в качестве второго параметра конструктора.

// . public class ModItems < // . public static ItemOre ingotCopper = new ItemOre(«ingot_copper», «ingotCopper»); public static ItemOre corn = new ItemOre(«corn», «cropCorn»); // . >

Читайте также:  Как сделать фармилку кактусов в Майнкрафте

Наконец, мы обновим наш класс ModRecipes , чтобы вызвать различные методы initOreDict .

// . public class ModRecipes < public static void init() < // Ore Dict ModBlocks.oreCopper.initOreDict(); ModItems.ingotCopper.initOreDict(); ModItems.corn.initOreDict(); // . >>

Рецепты_________________________________________________________ _________________

Теперь, когда у нас есть названия «Ore Dictionary» для некоторых наших предметов и блоков, давайте добавим рецепты, которые их используют. «Forge» предоставляет два новых типа рецептов специально для использования «Ore Dictionary»: forge:ore_shaped и forge: ore_shapeless .

Мы создадим новый файл в подпапке recipes нашей папки assets под названием bucket.json . В корневом объекте будет пара свойств, похожих на другой рецепт формы, который мы добавили. На этот раз Тип рецепта будет forge:ore_shaped , результатом будет minecraft:bucket , а входной ингредиент будет немного отличаться, так что он использует «Ore Dictionary».

Вместо указания параметра предмета для ингредиента мы укажем тип как forge:ore_dict , поэтому используется ингредиент «Ore Dictionary», и мы укажем руду как ingotCopper , чтобы любой медный слиток был принят.

< «type»: «forge:ore_shaped», «pattern»: [ «I I», » I » ], «key»: < «I»: < «type»: «forge:ore_dict», «ore»: «ingotCopper» >>, «result»: < «item»: «minecraft:bucket» >>

OICDDTJ.png

Ore Dictionary
Создание «Forge» модификаций для 1.10.2
Август 8, 2016

Forge’s «Ore Dictionary» система предоставляет API, который создатели модификаций могут использовать для обозначения элементов / блоков как эквивалентных друг другу. Это было первоначально создано, потому что несколько модов добавляли свои собственные версии тех же руд и слитков (медь, олово и так далее). Эта система работает так: каждый пакет ItemStackпредставляет собой список связанных с ним имен String «Ore Dictionary».

Давайте создадим интерфейс ItemOreDict в пакете item нашего мода. Этот интерфейс будет использоваться для обозначения наших элементов/блоков, которые будут зарегистрированы в «Ore Dictionary». Этот интерфейс будет иметь один абстрактный метод, называемый initOreDict , который будет выполнять регистрацию.

package net.shadowfacts.tutorial.item; public interface ItemOreDict

Мы также создадим класс ItemOre , который расширяет ItemBase и реализует ItemOreDict , чтобы дать нам хороший полностью реализованный класс для элементов ore-dictionaried.

Этот класс просто принимает второй String параметр в своем конструкторе, который является именем ore-dictionary, а затем использует его в методе initOreDict .

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

Мы будем делать что-то подобное для нашего класса BlockOre , то есть реализуем ItemOreDict и initOreDict и будем иметь второй параметр для имени «Ore Dictionary».

Нам нужно внести некоторые изменения в классы ModItems и ModBlocks , чтобы они вызывали метод initOreDict после регистрации элемента/блока в GameRegistry .

Сначала мы проверим, реализует ли элемент наш интерфейс ItemOreDict (потому что не все наши элементы будут использовать «Ore Dictionary»), и если да, то вызывает на нем метод initOreDict .

// . public class ModItems < // . private static T register(T item) < GameRegistry.register(item); if (item instanceof ItemModelProvider) < ((ItemModelProvider)item).registerItemModel(item); >if (item instanceof ItemOreDict) < ((ItemOreDict)item).initOreDict(); >return item; > >

Мы будем делать это аналогично в классе ModBlocks , за исключением того, что мы проверим экземпляр ItemOreDict и визовым initOreDict как для самого блока, так и для связанного с ним ItemBlock .

// . public class ModBlocks < // . private static T register(T block, ItemBlock itemBlock) < GameRegistry.register(block); if (itemBlock != null) < GameRegistry.register(itemBlock); if (block instanceof ItemModelProvider) < ((ItemModelProvider)block).registerItemModel(itemBlock); >if (block instanceof ItemOreDict) < ((ItemOreDict)block).initOreDict(); >if (itemBlock instanceof ItemOreDict) < ((ItemOreDict)itemBlock).initOreDict(); >> > >

Теперь, когда у нас есть все наши базовые классы, мы собираемся изменить некоторые из наших элементов и блоков, чтобы получить названия «Ore Dictionary»!

Единственным блоком, который будет иметь название «Ore Dictionary», является блок медной руды. Следуя соглашениям о названиях «Ore Dictionary» (если вы посмотрите в классе OreDictionary , вы можете получить общее представление о том, что представляют собой эти соглашения), наш блок медной руды будет иметь в качестве «Ore Dictionary» имени имя: oreCopper .

Мы просто изменим наш регистрационный вызов для блока медной руды, чтобы иметь второй параметр, который также является «oreCopper» , сообщая классу BlockOre использовать oreCopper в качестве названия «Ore Dictionary» для этого блока.

// . public class ModBlocks < // . public static void init() < oreCopper = register(new BlockOre(«oreCopper», «oreCopper»)); // . >>

Теперь мы заменим оба элемента ingotCopper и cropCorn , чтобы иметь названия «Ore Dictionary» ingotCopper и cropCornсоответственно. Все это требует изменения экземпляров ItemBase для экземпляров ItemOre и передачи искомого имени «Ore Dictionary» в качестве второго параметра конструктора.

Читайте также:  Майнкрафт прохождение карт на острове

// . public class ModItems < // . public static void init() < ingotCopper = register(new ItemOre(«ingotCopper», «ingotCopper»)); corn = register(new ItemOre(«corn», «cropCorn»)); // . >>

Рецепты_________________________________________________________ _________________

Теперь, когда у нас есть «Ore Dictionary» имена для некоторых наших элементов и блоков, давайте добавим рецепты, которые их используют. «Forge» добавляет классы ShapedOreRecipe и ShapelessOreRecipe , которые идентичны рецептам ванильной формы и бесформенности, за исключением того, что вместо того, чтобы просто принимать элемент/блок/стек для ввода, они также могут принимать строку имени «Ore Dictionary» которая будет соответствовать чему-либо с этим именем.

Эти рецепты должны быть созданы вручную и зарегистрированы с использованием GameRegistry.addRecipe в отличие от рецептов нормальной формы/бесформенности, которые имеют удобные методы в GameRegistry .

// . public class ModRecipes < public static void init() < // . GameRegistry.addRecipe(new ShapedOreRecipe(Items.BUCKET, «I I», » I «, ‘I’, «ingotCopper»)); // . >>

Этот рецепт такой же, как рецепт ванильного ведра, за исключением того, что вместо железа используется любой предмет с «Ore Dictionary» именем ingotCopper , а не только железные слитки.

OICDDTJ.png

Автор Garik Просмотры 4,389 Первый выпуск 25 Мар 2018 Обновление 25 Мар 2018 Оценка 5.00 звёзд 3 оценок

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

Auto Ore Dictionary Converter [1.18.2] [1.16.5] [1.12.2] [1.11.2] [1.10.2] [1.8.9] [1.7.10]

Auto Ore Dictionary Converter [1.18.2] [1.16.5] [1.12.2] [1.11.2] [1.10.2] [1.8.9] [1.7.10]

Мод Ore Dictionary Converter добавляет в майнкрафт 3 новых вещи для сортировки предметов. Один из них, похожий на верстак по текстурам, однако он позволит сразу переплавлять и крафтить. Другой механизм позволит перерабатывать одну руду в другую.

Как установить мод:

  1. Установи Forge
  2. Установи MattDahEpic Core (MDECore)
  3. Установи все дополнительные моды если указано.
  4. Скачай мод и скопируй в .minecraft/mods
  5. В лаунчере запускай версию игры с форджем.

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

Мод Auto Ore Dictionary Converter 1.18.2/1.16.5 (Быстрая сортировка)

Мод Auto Ore Dictionary Converter 1.18.2/1.16.5 (Быстрая сортировка)

Auto Ore Dictionary Converter — мод на Майнкрафт 1.18.2/ 1.16.5, который автоматически сортирует руды в их настроенные эквиваленты словаря руды.

Особенности моды:

Меняем конфиг

# для преобразования всех элементов из тега в конкретный элемент (например, forge:ores/iron=minecraft:iron_ore)
namespace:tag=modid:item

# чтобы преобразовать один конкретный элемент в другой (например, minecraft:diamond>minecraft:netherite_ingot)
modid:item>modid:item

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