1. Minecraft-RUS » Основной раздел » Гайды и описания » Урок по программированию в MineTweaker 3. Урок №3 - СЛОВАРЬ РУД

Урок по программированию в MineTweaker 3. Урок №3 - СЛОВАРЬ РУД

Активный участник
  1. Оффлайн
  2. Администраторы
  3. 147 сообщений
  4. Сообщение
  5. Личные данные
    Полезность: 0 | сообщение № 1 отправлено 23:12, 06.11.2015

    Урок по программированию в MineTweaker 3
    ссылка на мод

    УРОК №3
    СЛОВАРЬ РУД (ORE DICTIONARY)


    Словарь руд
    Теперь, когда мы получили достаточно знаний (вы ведь изучили предыдущие уроки, верно?), Давайте попробуем вот такой рецепт: (требуется установленный мод Industrial Craft 2)

    val copper = <IC2:itemIngotCopper>;
    val tin = <IC2:itemIngotTin>;
    val iron = <minecraft:iron_ingot>;

    // Актуальная на сегодняшний день версия IC2 использует вместо бронзы медь. Правда, это не имеет значения, так как данный пример лишь демонстрация скрипта
    recipes.addShaped(<IC2:itemPartAlloy>, [[iron, iron, iron], [copper, copper, copper], [tin, tin, tin]]);


    Если Вы используете этот рецепт, то проблем не будет и все будет работать ... но если Вы в данном рецепте будете использовать медные слитки, скажем, из мода Thermal Expansion или Tinker Construct, то ничего не получится т.к. медь, железо и олово из разных модов отличается названием! Обратите внимание на приставку IC2 в <IC2:itemIngotCopper>. т.е. данный слиток меди (copper) принадлежит к моду Industrial Craft 2 и никакой другой слиток меди из других модов использовать в рецепте нельзя!

    К счастью, данная проблема существует довольно долго! Решена она путем использования словаря руд. По сути, словарь руд - это группа предметов с общим смыслом. Таким образом, моды могут добавлять свои собственные элементы к словарю руд. Например, в словаре руд, медная руда имеет название <ore:ingotCopper>. Обратите внимание на приставку ore!

    Словарь руд легко использовать в рецептах:

    val copper = <ore:ingotCopper>;
    val tin = <ore:ingotTin>;
    val iron = <ore:ingotIron>;

    // Актуальная на сегодняшний день версия IC2 использует вместо бронзы медь. Правда, это не имеет значения, так как данный пример лишь демонстрация скрипта
    recipes.addShaped(<IC2:itemPartAlloy>, [[iron, iron, iron], [copper, copper, copper], [tin, tin, tin]]);


    Теперь, попробуйте установить несколько модов, которые добавляют медную руду и вы увидите, что все слитки будут совместимыми.

    Словарь руд используется не только для руд и слитков. Многие ингредиенты имеют свою собственную запись в словарь руд, что позволяет объединить несколько ингредиентов из разных модов (общего смысла) для конкретного рецепта.

    Изменение словаря руд
    Вас не устраивает какие изменения вносят моды в словарь руд? Может какой-то мод забыл добавить элемент в словарь руд? Или же Вы считаете, что какой-то компонент из словаря руд делает рецепт слишком легким? MineTweaker позволяет изменять содержимое словаря руд.

    После того, как Вы извлекли запись руды из словаря руд, Вы можете изменить словарь добавив или удалив руду. Давайте, немного изменим наш скрипт:

    val copper = <ore:ingotCopper>;
    val tin = <ore:ingotTin>;
    val iron = <ore:ingotIron>;
    iron.add(<minecraft:coal>);

    // Актуальная на сегодняшний день версия IC2 использует вместо бронзы медь. Правда, это не имеет значения, так как данный пример лишь демонстрация скрипта
    recipes.addShaped(<IC2:itemPartAlloy>, [[iron, iron, iron], [copper, copper, copper], [tin, tin, tin]]);


    Если Вы перезагрузите скрипт и проверите рецепт, то заметите, что железо может быть замещено углем.

    Кроме того, Вы можете из словаря руд удалить железо:

    val copper = <ore:ingotCopper>;
    val tin = <ore:ingotTin>;
    val iron = <ore:ingotIron>;
    iron.add(<minecraft:coal>);
    iron.remove(<minecraft:iron_ingot>);

    // Актуальная на сегодняшний день версия IC2 использует вместо бронзы медь. Правда, это не имеет значения, так как данный пример лишь демонстрация скрипта
    recipes.addShaped(<IC2:itemPartAlloy>, [[iron, iron, iron], [copper, copper, copper], [tin, tin, tin]]);


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

    Если Вам попадется мод в котором руда должна приравниваться к другой руде, то это можно сделать с помощью "зеркала" в словаре руд:

    <ore:ingotIron>.mirror(<ore:ingotTin>);

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

    Последний раз редактировал ipv2007 01:09, 07.11.2015
    Priest
    1. Гости
      Полезность: 0 | сообщение № 2 отправлено 13:44, 28.12.2015
      Хотелось бы понять, когда уже появится 4-й урок, в котором, как я понимаю, должна как раз освещаться тема насчет изменений рецептов для машин? Также хотелось бы в качестве примера какой-нибудь рецепт для центрифуги с несколькими исходными (какая-либо пыль и жидкость/газ) и с выходом основного продукта, нескольких дополнительных, а также жидкости или газа. Пример с печкой на wiki мода вообще не воодушевляет.

      Последний раз редактировал Priest 13:52, 28.12.2015
       
      Перейти
      Найти

      Доступ закрыт.

      1. Вам запрещено отвечать в темах данного форума.