Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 01.02.2015 во всех областях

  1. 1 балл
    Minecraft Mods #1 Обзор обновлений MoarPeripherals 1.5 #1. Computer Controlled Crafter. Приветствую Вас в первой части обзора обновлений аддона к CC MoarPeripherals версии 1.5. Мы рассмотрим один из новых блоков, именуемый Computer Controlled Crafter, или, в моём русском переводе, крафтер. :P I. Что это и с чем его едят? Крафтер — это блок, позволяющий крафтить с компьютера! В принципе, всё =) II. API. Крафтер имеет несколько функций: getInventorySize() :: numberВозвращает кол-во слотов для крафта (их девять ) [*]craft() :: boolean Собственно, тот самый рычаг, и если за него дёрнуть, то начнётся крафт! Если всё пройдёт успешно, положит рядом с ингредиентами и завизжит отрадости: true! Если же нет... то где-то Вы ошиблись =) [*]getStackInSlot(slot) :: table Некоторый аналог Item Dictionary. Позволяет узнавать доскональную инфу о блоке/предмете. Возвращает таблицу, к которой, я обещаю, мы скоро вернёмся. [*]isRecipeValid() :: boolean Суть ясна из названия функции. Возвращает true, если можно скрафтить загадочную хрень, и false, если рецепт не существует. [*]getCraftingSlot(slot) :: table То же, что и getStackInSlot(), но для предметов в сетке крафта. [*]setCraftingSlot(slot, item) :: boolean Аккуратно укладывает на верстак... скорее, дисплей, так как взаимодействовать напрямую нельзя, предмет в нужный слот (к этому мы скоро вернёмся). [*]clearCraftingSlot(slot) Недвусмысленная функция. Очищает слот в сетке крафта. [*]clearCraftingGrid() Менее аккуратный собратец предыдущей функции. Очищает всё скопом. Итак, порцию страшилок Вы получили... Теперь перейдём к самому весёлому: к кодингу! III. Крафтим! Начнём с ГУИ. В мой инвентарь Вам заглядывать смысла нет, так что показываю только верхнюю часть. Верхняя часть делится ещё на 3 части! Нет, не пугайтесь преждевременно. Первая часть — сетка крафта, вторая — клетка результата, а третья часть — это инвентарь. Инвентарь можно пополнять или забирать из него с помощью труб, роботов, компьютеров. Но не об этом речь. Предположим, мне позарез нужны Raw Circuit Board. Крафтятся они из блока глины, кактуса пережаренного и золотого зубчика. Кладём в инвентарь ингредиенты. Я написал маленькую программу test, в которой показывается код и он же выполняется. Разбираем! Во-первых, подключаем перефиральное устройство. Затем получаем инфу об айтемах. Для того, чтобы не париться, возьмём готовую ф-ию "getStackInSlot". Что это за цифры? Слоты в инвентаре и в верстаке нуммеруются слева направо, сверзу вниз, то есть так: 1 2 3 4 5 6 7 8 9, или, в случае инвентаря: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18. В слоте 1 лежит кактус пережаренный. Потому в переменную cactus_green заносится та самая таблица с инфой об айтеме... Её состав рассмотрим попозже =) Теперь сеттинг рецепта. Пользуемся ф-ей setCraftingSlot(). В первом аргументе передаём слот, куда хотим положить предмет (не забыли ещё нумерацию?). А во втором — предмет. На самом деле, не обязательно иметь предмет в инвентаре. Можно написать из головы, но об этом — чуть позже. Теперь, если мы откроем ГУИ, он будет выглядеть так: Но просто так Вы плату сырую не возьмёте, опять нужен комп. Помните, я говорил о волшебном рычажке? А вот и он! Последняя строка. Мы крафтим сам предмет! И если мы опять заглянем в столик, то обнаружим такую картину: Скрафченный предмет лежит вместе с остальными, так что вытащить его можно только с помощью фильтра. IV. Убираем за собой. Намусорили, а убирать кто будет? Мы, конечно же =) Пользуемся свякой clearCraftingSlot() и clearCraftingGrid(). Суть понятна из названия. Скриншоты: V. Автономный режим activated! И напоследок о том, что из себя представляет таблица. mod_idID мода. [*]raw_name Сырое имя. То есть класс предмета/блока. [*]max_size Максимальный размер стека. [*]max_dmg Максимальная metadata. Имеет место быть только у ломающихся инструментов. [*]dmg Значение metadata (то есть числа s: ID:s). В метадате содержатся данные, например, о цвете шерсти или красителя. [*]qty Количество в данный момент. [*]id ID айтема по новым стандартам (modID:itemName) [*]display_name Имя, какое мы видим, наводя на предмет. [*]name Тип айтема (блок/предмет) gold_nugget = {}gold_nugget["id"] = "minecraft:gold_nugget"gold_nugget["dmg"] = 0ccc.setCrafttingSlot(1, gold_nugget) Для составления "личного дела" айтема достаточно 2 значений: это id и dmg.После этого система сможет понять, какой именно айтем Вы просите. VI. Заключение. Теперь Вы знаете, что такое CCC и как им управляться =) Надеюсь на "пятаки", "лайки", комментарии. Ждите новых записей в моём блоге!
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...