<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://wiki.mineprogramming.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=YztGrifYT</id>
		<title>mineprogramming wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.mineprogramming.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=YztGrifYT"/>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/YztGrifYT"/>
		<updated>2026-04-28T16:05:29Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/RecipeTELib&amp;diff=2614</id>
		<title>InnerCore/Libs/RecipeTELib</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/RecipeTELib&amp;diff=2614"/>
				<updated>2022-12-03T21:39:37Z</updated>
		
		<summary type="html">&lt;p&gt;YztGrifYT: исправленные&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;'''RecipeTELib'''''&amp;amp;nbsp;''- библиотека, упрощающая создание верстаков и печей.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 63px;&amp;quot; | '''Версия'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 57px;&amp;quot; | '''Ссылка'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 362px;&amp;quot; | '''Изменения'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 63px;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 57px;&amp;quot; | [https://vk.com/wolf___team?w=wall-80513593_2247 Скачать]&lt;br /&gt;
| style=&amp;quot;width: 362px;&amp;quot; | &lt;br /&gt;
*Первая версия &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 63px;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 57px;&amp;quot; | [https://vk.com/wall-80513593_2248 Скачать]&lt;br /&gt;
| style=&amp;quot;width: 362px;&amp;quot; | &lt;br /&gt;
*Слияние методов&amp;amp;nbsp;registerGridCraftTable and registerTimerGridCraftTable &lt;br /&gt;
*Слияние методов&amp;amp;nbsp;registerCraftTable and registerTimerCraftTable &lt;br /&gt;
*Исправлено имя метода с&amp;amp;nbsp;getTickResipes на getTickRecipes &lt;br /&gt;
*Добавлена возможность использовать свои идентификаторы элементов &lt;br /&gt;
*Для рецептов добавлен параметр множителя времени крафта &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 63px;&amp;quot; | '''1.2'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 57px;&amp;quot; | [https://vk.com/wall-80513593_2253 Скачать]&lt;br /&gt;
| style=&amp;quot;width: 362px;&amp;quot; | &lt;br /&gt;
*Удален метод registerTimerGridCraftTable&amp;amp;nbsp; &lt;br /&gt;
*Удален метод registerTimerCraftTable&amp;amp;nbsp; &lt;br /&gt;
*Удален метод getTickResipes &lt;br /&gt;
*Исправлена смена крафта у печей &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 63px;&amp;quot; | '''2.0'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 57px;&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;width: 362px;&amp;quot; | &lt;br /&gt;
*Библиотека переписана &lt;br /&gt;
*Добавлена возможность создавать бесформенные рецепты &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 63px;&amp;quot; | '''2.1'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 57px;&amp;quot; | [https://github.com/Wolf-Team/Libraries/blob/master/RecipeTileEntityLib.js GitHub]&lt;br /&gt;
| style=&amp;quot;width: 362px;&amp;quot; | &lt;br /&gt;
*Исправление ошибок &lt;br /&gt;
*Поддержка RecipeViewer &lt;br /&gt;
*В TileEntity верстака добавлен метод setWorkbench(sid) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 63px;&amp;quot; | '''GitHub'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 57px;&amp;quot; | [https://github.com/Wolf-Team/Libraries/blob/master/RecipeTileEntityLib.js GitHub]&lt;br /&gt;
| style=&amp;quot;width: 362px;&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Условия использования ==&lt;br /&gt;
&lt;br /&gt;
*Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество &lt;br /&gt;
*Запрещено изменение кода библиотеки &lt;br /&gt;
*Запрещено явное копирование кода в другие библиотеки или моды&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Используя данный продукт&amp;amp;nbsp;вы автоматически соглашаетесь с этими правилами&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Документация &amp;lt;span style=&amp;quot;color:#dddddd;&amp;quot;&amp;gt;(2.0 и выше)&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== Инициализация ===&lt;br /&gt;
&lt;br /&gt;
Импортируйте библиотеку.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IMPORT(&amp;quot;RecipeTileEntityLib&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Верстак ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
==== Регистрация верстака ====&lt;br /&gt;
&lt;br /&gt;
Для начала создаем блок:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IDRegistry.genBlockID(&amp;quot;Workbench_Grid&amp;quot;);&lt;br /&gt;
Block.createBlock(&amp;quot;Workbench_Grid&amp;quot;, [{&lt;br /&gt;
    name: &amp;quot;Workbench Grid&amp;quot;, &lt;br /&gt;
    texture: [&lt;br /&gt;
        [&amp;quot;work_table_bottom&amp;quot;, 0], // bottom&lt;br /&gt;
        [&amp;quot;work_table_top&amp;quot;, 0], // top&lt;br /&gt;
        [&amp;quot;work_table_side&amp;quot;, 0], // back&lt;br /&gt;
        [&amp;quot;work_table_side&amp;quot;, 1], // front&lt;br /&gt;
        [&amp;quot;work_table_side&amp;quot;, 0], // left&lt;br /&gt;
        [&amp;quot;work_table_side&amp;quot;, 0]  // right&lt;br /&gt;
    ], &lt;br /&gt;
    inCreative: true &lt;br /&gt;
}]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем создаем наш интерфейс:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: rgb(204, 0, 0);&amp;quot; | &amp;lt;span style=&amp;quot;color:#ffffff;&amp;quot;&amp;gt;'''ВАЖНО!:&amp;amp;nbsp;'''Слоты, в которые нужно ложить предмет нужно&amp;amp;nbsp;называть &amp;quot;'''''inputSlot'''''&amp;quot;+&amp;amp;nbsp;'''порядковое число'''&amp;amp;nbsp;слота, начиная с нуля, иначе указать имена слотов(или имя, если используются порядковые числа) при регистрации.&amp;lt;br/&amp;gt; Слот результата должен иметь название &amp;quot;'''''outputSlot'''''&amp;quot;,&amp;amp;nbsp;иначе указать имя слота при регистрации.&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;var Workbench_Grid = new UI.StandartWindow({&lt;br /&gt;
    standart: {&lt;br /&gt;
        header: {text: {text: &amp;quot;Workbench Grid 4x4&amp;quot;}},&lt;br /&gt;
        inventory: {standart:true},&lt;br /&gt;
        background: {standart: true}&lt;br /&gt;
    },&lt;br /&gt;
    drawing: [{&lt;br /&gt;
        type: &amp;quot;bitmap&amp;quot;,&lt;br /&gt;
        bitmap: &amp;quot;arrow&amp;quot;,&lt;br /&gt;
        x: 600,&lt;br /&gt;
        y: 170,&lt;br /&gt;
        scale: 4&lt;br /&gt;
    }],&lt;br /&gt;
    elements:{&lt;br /&gt;
        &amp;quot;inputSlot0&amp;quot;:{x:350, y:80, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot1&amp;quot;:{x:410, y:80, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot2&amp;quot;:{x:470, y:80, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot3&amp;quot;:{x:530, y:80, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;inputSlot4&amp;quot;:{x:350, y:140, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot5&amp;quot;:{x:410, y:140, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot6&amp;quot;:{x:470, y:140, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot7&amp;quot;:{x:530, y:140, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;inputSlot8&amp;quot;:{x:350, y:200, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot9&amp;quot;:{x:410, y:200, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot10&amp;quot;:{x:470, y:200, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot11&amp;quot;:{x:530, y:200, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;inputSlot12&amp;quot;:{x:350, y:260, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot13&amp;quot;:{x:410, y:260, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot14&amp;quot;:{x:470, y:260, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot15&amp;quot;:{x:530, y:260, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;outputSlot&amp;quot;:{x:698, y:170, type:&amp;quot;slot&amp;quot;}&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем регистрируем наш верстак:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.registerWorkbench(&amp;quot;Workbench_Grid&amp;quot;,//SID блока&lt;br /&gt;
{&lt;br /&gt;
    rows:4,//Кол-во строк сетки&lt;br /&gt;
    cols:4,//Кол-во столбцов сетки&lt;br /&gt;
    GuiScreen:Workbench_Grid //Интерфейс верстака&lt;br /&gt;
    //Так же тут можно(И нужно) описать поля TileEntity&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
==== Добавление рецептов для&amp;amp;nbsp;верстака ====&lt;br /&gt;
&lt;br /&gt;
Создание рецептов для верстака с сеткой происходит через метод&amp;amp;nbsp;'''''RecipeTE.addShapeRecipe(name_workbench, result, recipe, ingredients)''''', где:&lt;br /&gt;
&lt;br /&gt;
*name_workbench - имя верстака &lt;br /&gt;
*result - объект результата &lt;br /&gt;
**id - ID предмета &lt;br /&gt;
**count - Кол-во предмета &lt;br /&gt;
**data - Дата предмета   &lt;br /&gt;
*recipe - Массив строк крафта &lt;br /&gt;
*ingredients - объект ингредиентов &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.addShapeRecipe(&amp;quot;Workbench_Grid&amp;quot;, {&lt;br /&gt;
    id:280,&lt;br /&gt;
    count:1&lt;br /&gt;
    }, [&lt;br /&gt;
    &amp;quot;aa&amp;quot;,&lt;br /&gt;
    &amp;quot;aa&amp;quot;&lt;br /&gt;
    ], {&lt;br /&gt;
    a:{&lt;br /&gt;
        id:5&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
RecipeTE.addShapeRecipe(&amp;quot;Workbench_Grid&amp;quot;, {&lt;br /&gt;
    id:280,&lt;br /&gt;
    count:1&lt;br /&gt;
    }, [&lt;br /&gt;
    &amp;quot;aaaa&amp;quot;,&lt;br /&gt;
    &amp;quot;a  a&amp;quot;,&lt;br /&gt;
    &amp;quot;a  a&amp;quot;,&lt;br /&gt;
    &amp;quot;aaaa&amp;quot;&lt;br /&gt;
    ], {&lt;br /&gt;
    a:{&lt;br /&gt;
        id:1&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Электрическая печь(Редстоун сигнал) ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
==== Регистрация печи ====&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
Для начала создаем блок:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IDRegistry.genBlockID(&amp;quot;Furnace&amp;quot;);&lt;br /&gt;
Block.createBlockWithRotation(&amp;quot;Furnace&amp;quot;, [{&lt;br /&gt;
    name: &amp;quot;Furnace&amp;quot;, &lt;br /&gt;
    texture: [&lt;br /&gt;
        [&amp;quot;iron_furnace_bottom&amp;quot;, 0], // bottom&lt;br /&gt;
        [&amp;quot;iron_furnace_top&amp;quot;, 0], // top&lt;br /&gt;
        [&amp;quot;iron_furnace_side&amp;quot;, 0], // back&lt;br /&gt;
        [&amp;quot;iron_furnace_front&amp;quot;, 0], // front&lt;br /&gt;
        [&amp;quot;iron_furnace_side&amp;quot;, 0], // left&lt;br /&gt;
        [&amp;quot;iron_furnace_side&amp;quot;, 0]  // right&lt;br /&gt;
    ], &lt;br /&gt;
    inCreative: true &lt;br /&gt;
}]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем создаем наш интерфейс:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color: rgb(204, 0, 0);&amp;quot; | &amp;lt;span style=&amp;quot;color:#ffffff;&amp;quot;&amp;gt;'''ВАЖНО!:&amp;amp;nbsp;'''Слоты, в которые нужно ложить предмет нужно&amp;amp;nbsp;называть &amp;quot;'''''inputSlot'''''&amp;quot;+&amp;amp;nbsp;'''порядковое число'''&amp;amp;nbsp;слота, начиная с нуля, иначе указать имена слотов(или имя, если используются порядковые числа) при регистрации.&amp;lt;br/&amp;gt; Слот результата должен иметь название &amp;quot;'''''outputSlot'''''&amp;quot;,&amp;amp;nbsp;иначе указать имя слота при регистрации.&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;var Furnace = new UI.StandartWindow({&lt;br /&gt;
    standart: {&lt;br /&gt;
        header: {text: {text: &amp;quot;Furnace&amp;quot;}},&lt;br /&gt;
        inventory: {standart:true},&lt;br /&gt;
        background: {standart: true}&lt;br /&gt;
    },&lt;br /&gt;
    drawing: [{&lt;br /&gt;
        type: &amp;quot;bitmap&amp;quot;,&lt;br /&gt;
        bitmap: &amp;quot;arrow&amp;quot;,&lt;br /&gt;
        x: 600,&lt;br /&gt;
        y: 170,&lt;br /&gt;
        scale: 4&lt;br /&gt;
    }],&lt;br /&gt;
    elements:{&lt;br /&gt;
        &amp;quot;myInputSlot&amp;quot;:{x:530, y:170, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;myOutputSlot&amp;quot;:{x:698, y:170, type:&amp;quot;slot&amp;quot;, isValid:RecipeTE.outputSlotValid },&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;timerScale&amp;quot;:{&lt;br /&gt;
            type: &amp;quot;scale&amp;quot;,&lt;br /&gt;
            x: 600,&lt;br /&gt;
            y: 170,&lt;br /&gt;
            direction:0,&lt;br /&gt;
            bitmap: &amp;quot;arrow_scale&amp;quot;,&lt;br /&gt;
            scale: 4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем регистрируем наш верстак:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.registerWorkbench(&amp;quot;Furnace&amp;quot;, {&lt;br /&gt;
    time:5 * 20, //Время крафта&lt;br /&gt;
    slots:1, //Кол-во слотов&lt;br /&gt;
    GuiScreen:Furnace, //Интерфейс печи&lt;br /&gt;
    input:[&amp;quot;myInputSlot&amp;quot;], //Входные слоты&lt;br /&gt;
    output:&amp;quot;myOutputSlot&amp;quot;, //Слот результата&lt;br /&gt;
    scale:&amp;quot;timerScale&amp;quot;, //Шкала прогресса&lt;br /&gt;
    condition:function(){ //Условие работы верстака&lt;br /&gt;
        return this.data.power&lt;br /&gt;
    },&lt;br /&gt;
    //Параметры TileEntity&lt;br /&gt;
    defaultValues:{&lt;br /&gt;
        power:false,&lt;br /&gt;
    },&lt;br /&gt;
    redstone: function(params){&lt;br /&gt;
        if(params.power &amp;lt; 10)&lt;br /&gt;
            this.data.power = false;&lt;br /&gt;
        else&lt;br /&gt;
            this.data.power = true;&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
==== Добавление рецептов для&amp;amp;nbsp;печи ====&lt;br /&gt;
&lt;br /&gt;
Создание бесформенных рецептов для верстака происходит через метод&amp;amp;nbsp;'''''RecipeTE.addRecipe(name_workbench, result,&amp;amp;nbsp; ingredients)''''', где:&lt;br /&gt;
&lt;br /&gt;
*name_workbench - имя верстака &lt;br /&gt;
*result - объект результата &lt;br /&gt;
**id - ID предмета &lt;br /&gt;
**count - Кол-во предмета &lt;br /&gt;
**data - Дата предмета   &lt;br /&gt;
*ingredients - Массив&amp;amp;nbsp;ингредиентов &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.addRecipe(&amp;quot;Furnace&amp;quot;, {id:280}, [{id:5}]);&lt;br /&gt;
RecipeTE.addRecipe(&amp;quot;Furnace&amp;quot;, {id:281}, [{id:1}], .2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Интеграция с RecipeViewer ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Добавление ваших крафтов происходит автоматически.&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;В RecipeViewer переносятся только входные слоты и слот-результат. Для отображения дополнительных элементов, нужно добавить к элементу параметр RV.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;fck_mw_syntaxhighlight&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; type: &amp;amp;quot;bitmap&amp;amp;quot;,&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; bitmap: &amp;amp;quot;arrow&amp;amp;quot;,&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; x: 600,&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; y: 170,&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; RV:true,&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; scale: 4&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Для задания своего интерфейса в RecipeViewer прототип должен иметь поле&amp;amp;nbsp;RVGuiScreen с полями drawable и elements.&amp;lt;br /&amp;gt;&lt;br /&gt;
Входные слоты имеют имя input+index, выходные - output+index.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Подробнее об элементах на странице &amp;lt;a href=&amp;quot;InnerCore%2F%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B2%20GUI&amp;quot;&amp;gt;Введение в GUI&amp;lt;/a&amp;gt;. &amp;amp;lt;/div&amp;amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Полная документация ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''Версия'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''Метод'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''Аргументы'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''Описание'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | '''2.0'''&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | void RecipeTE.addWorkbench(string name, object Info)&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | &lt;br /&gt;
*name - Имя верстака &lt;br /&gt;
*TE_Prototype - объект прототипа TE &lt;br /&gt;
**int columns &amp;amp;#124;&amp;amp;#124; cols - кол-ыо столбцов сетки &lt;br /&gt;
**int rows - кол-во строк сетки &lt;br /&gt;
**int slots - кол-во слотов(В место cols и rows) &lt;br /&gt;
**UIWindow gui - Окно для TileEntity &lt;br /&gt;
**int&amp;amp;nbsp;time - Кол-во тиков, нужное для крафта &lt;br /&gt;
**string output - имя слота для результата(По стандарту outputSlot) &lt;br /&gt;
**string&amp;amp;nbsp;input - префикс слотов&amp;amp;nbsp;входных предметов(По стандарту inputSlot) &lt;br /&gt;
**string[]&amp;amp;nbsp;input - массив имен входных слотов. &lt;br /&gt;
**string&amp;amp;nbsp;scale - Имя шкалы используемое для отображения прогресса   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | Регистрирует верстак с именем name не привязывая его к блоку&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | '''2.0'''&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | void RecipeTE.registerWorkbench(string block_sid, object TE_Prototype)&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | &lt;br /&gt;
*block_sid - Строковый ID блока &lt;br /&gt;
*TE_Prototype - объект прототипа TE &lt;br /&gt;
**int columns &amp;amp;#124;&amp;amp;#124; cols - кол-ыо столбцов сетки &lt;br /&gt;
**int rows - кол-во строк сетки &lt;br /&gt;
**int slots - кол-во слотов(В место cols и rows) &lt;br /&gt;
**UIWindow gui - Окно для TileEntity &lt;br /&gt;
**int&amp;amp;nbsp;time - Кол-во тиков, нужное для крафта &lt;br /&gt;
**string output - имя слота для результата(По стандарту outputSlot) &lt;br /&gt;
**string&amp;amp;nbsp;input - префикс слотов&amp;amp;nbsp;входных предметов(По стандарту inputSlot) &lt;br /&gt;
**string[]&amp;amp;nbsp;input - массив имен входных слотов. &lt;br /&gt;
**string&amp;amp;nbsp;scale - Имя шкалы используемое для отображения прогресса &lt;br /&gt;
**function&amp;amp;nbsp;condition - функция-условие функционирования верстака   &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | Регистрирует верстак для блока с SID block_sid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | '''2.0'''&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | bool&amp;amp;nbsp;RecipeTE.isRegistered(string block_sid)&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | &lt;br /&gt;
*block_sid -&amp;amp;nbsp;Строковый ID блока &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | Вернет true, если верстак с строковым ID block_sid был зарегистрирован, иначе false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | '''2.0'''&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | void RecipeTE.addRecipe(string block_sid, object result, object[] ingridients, int time_multiplier, function craft)&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | &lt;br /&gt;
*block_sid -&amp;amp;nbsp;Строковый ID блока &lt;br /&gt;
*result - результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int data - дата предмета(По стандарту 0) &lt;br /&gt;
**int count - Кол-во предметоа(По стандарту 1)   &lt;br /&gt;
*ingridients - Массив объектов ингредиента &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во предметоа(По стандарту 1)&amp;amp;nbsp; &lt;br /&gt;
**int data - дата предмета(По стандарту 0)   &lt;br /&gt;
*time_multiplier - множитель времени крафта(По стандарту 1) &lt;br /&gt;
*craft - Функция крафта(По стандарту RecipeTE.defaultCraftEvent) &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | Добавлет безформенный рецепт для верстака block_sid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | '''2.0'''&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | void RecipeTE.addShapeRecipe(string block_sid, object result, string recipe, object ingridients, int time_multiplier, function craft)&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | &lt;br /&gt;
*block_sid -&amp;amp;nbsp;Строковый ID блока &lt;br /&gt;
*result - результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int data - дата предмета(По стандарту 0) &lt;br /&gt;
**int count - Кол-во предметоа(По стандарту 1)   &lt;br /&gt;
*recipe - Строка символов, формирующих рецепт(Предметы разложены в слотак в порядке от 0 к N) &lt;br /&gt;
*ingridients - Объект описывающий символы рецепта как ингредиент&amp;lt;br/&amp;gt; Объект ингредиента: &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во предметоа(По стандарту 1)&amp;amp;nbsp; &lt;br /&gt;
**int data - дата предмета(По стандарту 0)   &lt;br /&gt;
*time_multiplier - множитель времени крафта(По стандарту 1) &lt;br /&gt;
*craft - Функция крафта(По стандарту RecipeTE.defaultCraftEvent) &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | Добавляет крафт для верстака block_sid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | '''2.0'''&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | void RecipeTE.addShapeRecipe(string block_sid, object result, string[] recipe, object ingridients, int time_multiplier, function craft)&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | &lt;br /&gt;
*block_sid -&amp;amp;nbsp;Строковый ID блока &lt;br /&gt;
*result - результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int data - дата предмета(По стандарту 0) &lt;br /&gt;
**int count - Кол-во предметоа(По стандарту 1)   &lt;br /&gt;
*recipe - Массив строка символов, формирующих рецепт(элемент массива - строка сетки, элемент строки - столбец сетки) &lt;br /&gt;
*ingridients - Объект описывающий символы рецепта как ингредиент&amp;lt;br/&amp;gt; Объект ингредиента: &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во предметоа(По стандарту 1)&amp;amp;nbsp; &lt;br /&gt;
**int data - дата предмета(По стандарту 0)   &lt;br /&gt;
*time_multiplier - множитель времени крафта(По стандарту 1) &lt;br /&gt;
*craft - Функция крафта(По стандарту RecipeTE.defaultCraftEvent) &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | Добавляет крафт для верстака block_sid&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | '''2.0'''&lt;br /&gt;
| style=&amp;quot;text-align: center; vertical-align: top;&amp;quot; | void RecipeTE.defaultCraftEvent(TileEntity TE)&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | &lt;br /&gt;
*TE - TileEntity верстака &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;vertical-align: top;&amp;quot; | Стандартная функция крафта&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Документация &amp;lt;span style=&amp;quot;color:#95a5a6;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:smaller;&amp;quot;&amp;gt;(до версии 2.0)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Инициализация ===&lt;br /&gt;
&lt;br /&gt;
Импортируйте библиотеку.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IMPORT(&amp;quot;RecipeTileEntityLib&amp;quot;)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
=== Верстак ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
==== Создание верстака ====&lt;br /&gt;
&lt;br /&gt;
Для начала создаем блок:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IDRegistry.genBlockID(&amp;quot;Workbench_Grid&amp;quot;);&lt;br /&gt;
Block.createBlock(&amp;quot;Workbench_Grid&amp;quot;, [{&lt;br /&gt;
    name: &amp;quot;Workbench Grid&amp;quot;, &lt;br /&gt;
    texture: [&lt;br /&gt;
        [&amp;quot;work_table_bottom&amp;quot;, 0], // bottom&lt;br /&gt;
        [&amp;quot;work_table_top&amp;quot;, 0], // top&lt;br /&gt;
        [&amp;quot;work_table_side&amp;quot;, 0], // back&lt;br /&gt;
        [&amp;quot;work_table_side&amp;quot;, 1], // front&lt;br /&gt;
        [&amp;quot;work_table_side&amp;quot;, 0], // left&lt;br /&gt;
        [&amp;quot;work_table_side&amp;quot;, 0]  // right&lt;br /&gt;
    ], &lt;br /&gt;
    inCreative: true &lt;br /&gt;
}]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем создаем наш интерфейс:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:small;&amp;quot;&amp;gt;'''!ВАЖНО!:&amp;amp;nbsp;'''Слоты, в которые нужно ложить предмет нужна ОБЯЗАТЕЛЬНО называть &amp;quot;'''''inputSlot'''''&amp;quot;+ '''порядковое число''' слота, начиная с нуля. Слот результата должен иметь название &amp;quot;'''''outputSlot'''''&amp;quot;, так же стоит задавать '''''isValid''''' для outputSlot как&amp;amp;nbsp;'''''RecipeTE.outputSlotValid'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;var Workbench_Grid = new UI.StandartWindow({&lt;br /&gt;
    standart: {&lt;br /&gt;
        header: {text: {text: &amp;quot;Workbench Grid 4x4&amp;quot;}},&lt;br /&gt;
        inventory: {standart:true},&lt;br /&gt;
        background: {standart: true}&lt;br /&gt;
    },&lt;br /&gt;
    drawing: [{&lt;br /&gt;
        type: &amp;quot;bitmap&amp;quot;,&lt;br /&gt;
        bitmap: &amp;quot;arrow&amp;quot;,&lt;br /&gt;
        x: 600,&lt;br /&gt;
        y: 170, scale: 4&lt;br /&gt;
    }],&lt;br /&gt;
    elements:{&lt;br /&gt;
        &amp;quot;inputSlot0&amp;quot;:{x:350, y:80, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot1&amp;quot;:{x:410, y:80, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot2&amp;quot;:{x:470, y:80, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot3&amp;quot;:{x:530, y:80, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;inputSlot4&amp;quot;:{x:350, y:140, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot5&amp;quot;:{x:410, y:140, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot6&amp;quot;:{x:470, y:140, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot7&amp;quot;:{x:530, y:140, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;inputSlot8&amp;quot;:{x:350, y:200, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot9&amp;quot;:{x:410, y:200, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot10&amp;quot;:{x:470, y:200, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot11&amp;quot;:{x:530, y:200, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;inputSlot12&amp;quot;:{x:350, y:260, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot13&amp;quot;:{x:410, y:260, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot14&amp;quot;:{x:470, y:260, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &amp;quot;inputSlot15&amp;quot;:{x:530, y:260, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;outputSlot&amp;quot;:{x:698, y:170, type:&amp;quot;slot&amp;quot;, isValid:RecipeTE.outputSlotValid }&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем регистрируем наш верстак, есть два способа:&lt;br /&gt;
&lt;br /&gt;
*'''''RecipeTE.registerGridCraftTable(description);''''' &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.registerGridCraftTable({&lt;br /&gt;
    name:&amp;quot;Workbench_Grid&amp;quot;,&lt;br /&gt;
    rows:4,&lt;br /&gt;
    cols:4&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*​​'''''RecipeTE.registerGridCraftTable(name, columns, rows);''''' &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.registerGridCraftTable(&amp;quot;Workbench_Grid&amp;quot;, 4, 4);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам следует зарегистрировать TileEntity. В getGuiScreen мы возвращаем наше окно. В методе тика мы вызываем&amp;amp;nbsp;'''''RecipeTE.getTickResipes(name, TileEntity)&amp;amp;nbsp;''''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;TileEntity.registerPrototype(BlockID[&amp;quot;Workbench_Grid&amp;quot;], {&lt;br /&gt;
    getGuiScreen: function(){&lt;br /&gt;
        return Workbench_Grid;&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    tick:function(){&lt;br /&gt;
        RecipeTE.getTickResipes(&amp;quot;Workbench_Grid&amp;quot;, this);&lt;br /&gt;
    }  &lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
==== Создание рецептов для верстака ====&lt;br /&gt;
&lt;br /&gt;
Создание рецептов для верстака с сеткой происходит через метод&amp;amp;nbsp;'''''RecipeTE.addGridRecipe(name_workbench, result, recipe, ingredients)''''', где:&lt;br /&gt;
&lt;br /&gt;
*name_workbench - имя верстака &lt;br /&gt;
*result - объект результата &lt;br /&gt;
**id - ID предмета &lt;br /&gt;
**count - Кол-во предмета &lt;br /&gt;
**data - Дата предмета   &lt;br /&gt;
*recipe - Массив строк крафта &lt;br /&gt;
*ingredients - объект ингредиентов &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.addGridRecipe(&amp;quot;Workbench_Grid&amp;quot;, {&lt;br /&gt;
    id:280,&lt;br /&gt;
    count:1&lt;br /&gt;
},&lt;br /&gt;
[   &amp;quot;aa&amp;quot;,&lt;br /&gt;
    &amp;quot;aa&amp;quot;&lt;br /&gt;
], {&lt;br /&gt;
    a:{&lt;br /&gt;
        id:5&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
RecipeTE.addGridRecipe(&amp;quot;Workbench_Grid&amp;quot;, {&lt;br /&gt;
    id: 281,&lt;br /&gt;
    count: 1&lt;br /&gt;
},&lt;br /&gt;
[   &amp;quot;aaaa&amp;quot;,&lt;br /&gt;
    &amp;quot;a  a&amp;quot;,&lt;br /&gt;
    &amp;quot;a  a&amp;quot;,&lt;br /&gt;
    &amp;quot;aaaa&amp;quot;&lt;br /&gt;
], {&lt;br /&gt;
    a: {&lt;br /&gt;
        id: 1,&lt;br /&gt;
        data:0&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Электрическая(редстоун сигнал) печь ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
==== Создание печи ====&lt;br /&gt;
&lt;br /&gt;
Для начала создаем блок:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IDRegistry.genBlockID(&amp;quot;Furnace&amp;quot;);&lt;br /&gt;
Block.createBlockWithRotation(&amp;quot;Furnace&amp;quot;, [{&lt;br /&gt;
    name: &amp;quot;Furnace&amp;quot;, &lt;br /&gt;
    texture: [&lt;br /&gt;
        [&amp;quot;iron_furnace_bottom&amp;quot;, 0], // bottom&lt;br /&gt;
        [&amp;quot;iron_furnace_top&amp;quot;, 0], // top&lt;br /&gt;
        [&amp;quot;iron_furnace_side&amp;quot;, 0], // back&lt;br /&gt;
        [&amp;quot;iron_furnace_front&amp;quot;, 0], // front&lt;br /&gt;
        [&amp;quot;iron_furnace_side&amp;quot;, 0], // left&lt;br /&gt;
        [&amp;quot;iron_furnace_side&amp;quot;, 0]  // right&lt;br /&gt;
    ], &lt;br /&gt;
    inCreative: true &lt;br /&gt;
}]);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем создаем наш интерфейс:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:small;&amp;quot;&amp;gt;'''!ВАЖНО!:''' Слоты, в которые нужно ложить предмет нужна ОБЯЗАТЕЛЬНО называть ''&amp;quot;'''inputSlot'''&amp;quot;''+ '''порядковое число '''слота, начиная с нуля. Слот результата должен иметь название &amp;quot;'''''outputSlot'''''&amp;quot;, так же стоит задавть '''''isValid'''''для outputSlot как '''''RecipeTE.outputSlotValid''''', для шкалы процесса использовать имя '''''&amp;quot;timerScale&amp;quot;'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;var Furnace = new UI.StandartWindow({&lt;br /&gt;
    standart: {&lt;br /&gt;
        header: {text: {text: &amp;quot;Furnace&amp;quot;}},&lt;br /&gt;
        inventory: {standart:true},&lt;br /&gt;
        background: {standart: true}&lt;br /&gt;
    },&lt;br /&gt;
    drawing: [{&lt;br /&gt;
        type: &amp;quot;bitmap&amp;quot;,&lt;br /&gt;
        bitmap: &amp;quot;arrow&amp;quot;,&lt;br /&gt;
        x: 600,&lt;br /&gt;
        y: 170,&lt;br /&gt;
        scale: 4&lt;br /&gt;
    }],&lt;br /&gt;
    elements:{&lt;br /&gt;
        &amp;quot;inputSlot0&amp;quot;:{x:530, y:170, type:&amp;quot;slot&amp;quot;},&lt;br /&gt;
        &lt;br /&gt;
        &amp;quot;outputSlot&amp;quot;:{x:698, y:170, type:&amp;quot;slot&amp;quot;, isValid:RecipeTE.outputSlotValid },&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;timerScale&amp;quot;:{&lt;br /&gt;
            type: &amp;quot;scale&amp;quot;,&lt;br /&gt;
            x: 600,&lt;br /&gt;
            y: 170,&lt;br /&gt;
            direction:0,&lt;br /&gt;
            bitmap: &amp;quot;arrow_scale&amp;quot;,&lt;br /&gt;
            scale: 4&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем регистрируем наш верстак(печь), есть два способа:&lt;br /&gt;
&lt;br /&gt;
*'''RecipeTE.registerTimerCraftTable(description);''' &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.registerTimerCraftTable({&lt;br /&gt;
    name:&amp;quot;Furnace&amp;quot;,&lt;br /&gt;
    cols:1,&lt;br /&gt;
    timer:5*20&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''​​RecipeTE.registerTimerCraftTable(name, columns, timer);''' &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.registerTimerCraftTable(&amp;quot;Furnace&amp;quot;, 1, 5*20);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам следует зарегистрировать TileEntity. В getGuiScreen мы возвращаем наше окно. В методе ''redstone ''мы будем проверять, сльный ли редстоун-сигнал и включать машину. В методе тика мы вызываем '''''RecipeTE.getTickResipes(name, TileEntity, condition)''''' с нашим условием:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;TileEntity.registerPrototype(BlockID[&amp;quot;Furnace&amp;quot;], {&lt;br /&gt;
    getGuiScreen: function(){&lt;br /&gt;
        return Furnace;&lt;br /&gt;
    },&lt;br /&gt;
    redstone: function(params){&lt;br /&gt;
        if(params.power &amp;lt; 10)&lt;br /&gt;
            this.data.power = false;&lt;br /&gt;
        else&lt;br /&gt;
            this.data.power = true;&lt;br /&gt;
    },&lt;br /&gt;
    tick:function(){&lt;br /&gt;
        RecipeTE.getTickResipes(&amp;quot;Furnace&amp;quot;, this, function(TE){&lt;br /&gt;
            return TE.data.power;&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
==== Создание рецептов для печи ====&lt;br /&gt;
&lt;br /&gt;
Создание рецептов для верстака(печи) без сетки происходит через метод&amp;amp;nbsp;'''''RecipeTE.addRecipe(name_workbench, result, recipe, ingredients)''''', где:&lt;br /&gt;
&lt;br /&gt;
*name_workbench - имя верстака &lt;br /&gt;
*result - объект результата &lt;br /&gt;
**id - ID предмета &lt;br /&gt;
**count - Кол-во предмета &lt;br /&gt;
**data - Дата предмета   &lt;br /&gt;
*recipe - Строка крафта &lt;br /&gt;
*ingredients - объект ингредиентов &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;RecipeTE.addRecipe(&amp;quot;Furnace&amp;quot;, {id:280, count:1}, &amp;quot;a&amp;quot;, {a:{id:5}});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Полная документация ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''Версия'''&lt;br /&gt;
| style=&amp;quot;width: 326px; text-align: center;&amp;quot; | '''Метод'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 379px;&amp;quot; | '''Аргументы'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | '''Описание'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerGridCraftTable(object description)&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 379px;&amp;quot; | &lt;br /&gt;
*description- Описание верстака &lt;br /&gt;
**name - Идентификатор/имя верстака &lt;br /&gt;
**columns/cols - Кол-во колонок &lt;br /&gt;
**rows - Кол-во строк &lt;br /&gt;
**elements - Объект с названиями элементов(С версии 1.1, не обязательный) &lt;br /&gt;
***input - Массив строк(Кол-во жлементов должно быть равно ''columns * row'') или строка(Слоты должны иметь название ''elements.input'' + индекс)&amp;amp;nbsp;названия входных слотов &lt;br /&gt;
***output - Строка названия выходного слото &lt;br /&gt;
***progress - Строка названия шкалы прогресса   &lt;br /&gt;
**time -&amp;amp;nbsp;Длительность производства(С версии 1.1, не обязательный)   &lt;br /&gt;
&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot; style=&amp;quot;width: 200px;&amp;quot; | Регистрация верстака с сеткой&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerGridCraftTable(string name, int columns, int rows)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*columns - Кол-во колонок &lt;br /&gt;
*rows - Кол-во строк &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerGridCraftTable(string name, int columns, int rows, object elements)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*columns - Кол-во колонок &lt;br /&gt;
*rows - Кол-во строк &lt;br /&gt;
*elements - Объект с названиями элементов &lt;br /&gt;
**input - Массив строк(Кол-во жлементов должно быть равно ''columns * row'') или строка(Слоты должны иметь название ''elements.input'' + индекс)&amp;amp;nbsp;названия входных слотов &lt;br /&gt;
**output - Строка названия выходного слото &lt;br /&gt;
**progress - Строка названия шкалы прогресса   &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerGridCraftTable(string name, int columns, int rows, int time)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*columns - Кол-во колонок &lt;br /&gt;
*rows - Кол-во строк &lt;br /&gt;
*time - Длительность производства &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerGridCraftTable(string name, int columns, int rows, object elements, int time)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*columns - Кол-во колонок &lt;br /&gt;
*rows - Кол-во строк &lt;br /&gt;
*elements - Объект с названиями элементов &lt;br /&gt;
**input - Массив строк(Кол-во жлементов должно быть равно ''columns * row'') или строка(Слоты должны иметь название ''elements.input'' + индекс)&amp;amp;nbsp;названия входных слотов &lt;br /&gt;
**output - Строка названия выходного слото &lt;br /&gt;
**progress - Строка названия шкалы прогресса   &lt;br /&gt;
*time - Длительность производства &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerCraftTable(object description)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*description- Описание верстака &lt;br /&gt;
**name - Идентификатор/имя верстака &lt;br /&gt;
**columns/cols - Кол-во слотов(Версия 1) &lt;br /&gt;
**slots - Кол-во слотов(С версии 1.1) &lt;br /&gt;
**elements - Объект с названиями элементов(С версии 1.1, не обязательный) &lt;br /&gt;
***input - Массив строк(Кол-во жлементов должно быть равно ''columns * row'') или строка(Слоты должны иметь название ''elements.input'' + индекс)&amp;amp;nbsp;названия входных слотов &lt;br /&gt;
***output - Строка названия выходного слото &lt;br /&gt;
***progress - Строка названия шкалы прогресса   &lt;br /&gt;
**time -&amp;amp;nbsp;Длительность производства(С версии 1.1, не обязательный)   &lt;br /&gt;
&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot; style=&amp;quot;width: 200px;&amp;quot; | Регистрация верстака без сетки&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerCraftTable(string name, int slots)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*slots&amp;amp;nbsp;- Кол-во слотов &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerCraftTable(string name, int slots, int time)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*slots&amp;amp;nbsp;- Кол-во слотов &lt;br /&gt;
*time - Длительность производства &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerCraftTable(string name, int slots, object elements)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*slots&amp;amp;nbsp;- Кол-во слотов &lt;br /&gt;
*elements - Объект с названиями элементов &lt;br /&gt;
**input - Массив строк(Кол-во жлементов должно быть равно ''columns * row'') или строка(Слоты должны иметь название ''elements.input'' + индекс)&amp;amp;nbsp;названия входных слотов &lt;br /&gt;
**output - Строка названия выходного слото &lt;br /&gt;
**progress - Строка названия шкалы прогресса   &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerCraftTable(string name, int slots, object elements, int time)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*slots&amp;amp;nbsp;- Кол-во слотов &lt;br /&gt;
*elements - Объект с названиями элементов &lt;br /&gt;
**input - Массив строк(Кол-во жлементов должно быть равно ''columns * row'') или строка(Слоты должны иметь название ''elements.input'' + индекс)&amp;amp;nbsp;названия входных слотов &lt;br /&gt;
**output - Строка названия выходного слото &lt;br /&gt;
**progress - Строка названия шкалы прогресса   &lt;br /&gt;
*time - Длительность производства &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | &lt;br /&gt;
'''1'''&amp;lt;br/&amp;gt; ''Устаревшее в 1.1&amp;lt;br/&amp;gt; &amp;lt;span style=&amp;quot;color:#e74c3c;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;Удалено в 1.2&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerTimerGridCraftTable(object description)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*description- Описание верстака &lt;br /&gt;
**name - Идентификатор/имя верстака &lt;br /&gt;
**columns/cols - Кол-во колонок &lt;br /&gt;
**rows - Кол-во строк &lt;br /&gt;
**timer - Время производства в тиках   &lt;br /&gt;
&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 200px;&amp;quot; | Регистрация верстака с сеткой, требующий время на производство&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | &lt;br /&gt;
'''1'''&amp;lt;br/&amp;gt; ''Устаревшее в 1.1''&amp;lt;br/&amp;gt; ''&amp;lt;span style=&amp;quot;color:#e74c3c;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;Удалено в 1.2&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerTimerGridCraftTable(string name, int columns, int rows, int timer)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*columns - Кол-во колонок &lt;br /&gt;
*rows - Кол-во строк &lt;br /&gt;
*timer - Время производства в тиках &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerTimerCraftTable(object description)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*description- Описание верстака &lt;br /&gt;
**name - Идентификатор/имя верстака &lt;br /&gt;
**columns/cols - Кол-во слотов &lt;br /&gt;
**timer - Время производства в тиках   &lt;br /&gt;
&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 200px;&amp;quot; | Регистрация верстака без сетки, требующий время на производство&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.registerTimerCraftTable(string name, int slots, int timer)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*slots&amp;amp;nbsp;- Кол-во слотов &lt;br /&gt;
*timer - Время производства в тиках &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.isRegistered(string name)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name -&amp;amp;nbsp;Идентификатор/имя верстака &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px;&amp;quot; | Вернет true, если верстак зарегистрирован, иначе false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.getMechanism(string name)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name -&amp;amp;nbsp;Идентификатор/имя верстака &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px;&amp;quot; | Вернет описание верстака если он сущечтвует, иначе false&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.addRecipe(string name, object result, string recipe, object ingridients)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*result&amp;amp;nbsp;- Результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во &lt;br /&gt;
**int data - Дата предмета   &lt;br /&gt;
*recipe&amp;amp;nbsp;- Строка, образующая&amp;amp;nbsp;рецепт &lt;br /&gt;
*ingridients&amp;amp;nbsp;- Объект ингридиентов &lt;br /&gt;
&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; style=&amp;quot;width: 200px;&amp;quot; | Добавить крафт для верстака ''name''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.addRecipe(string name, object result, string recipe, object ingridients, function craft)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*result&amp;amp;nbsp;- Результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во &lt;br /&gt;
**int data - Дата предмета   &lt;br /&gt;
*recipe&amp;amp;nbsp;- Строка, образующая&amp;amp;nbsp;рецепт &lt;br /&gt;
*ingridients&amp;amp;nbsp;- Объект ингридиентов &lt;br /&gt;
*craft - функция крафта &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.addRecipe(string name, object result, string recipe, object ingridients, int time_multiplier)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*result&amp;amp;nbsp;- Результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во &lt;br /&gt;
**int data - Дата предмета   &lt;br /&gt;
*recipe&amp;amp;nbsp;- Строка, образующая&amp;amp;nbsp;рецепт &lt;br /&gt;
*ingridients&amp;amp;nbsp;- Объект ингридиентов &lt;br /&gt;
*time_multiplier - Множитель времения(Только для верстаков с временем производства) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.addRecipe(string name, object result, string recipe, object ingridients, int time_multiplier, function craft)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*result&amp;amp;nbsp;- Результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во &lt;br /&gt;
**int data - Дата предмета   &lt;br /&gt;
*recipe&amp;amp;nbsp;- Строка, образующая&amp;amp;nbsp;рецепт &lt;br /&gt;
*ingridients&amp;amp;nbsp;- Объект ингридиентов &lt;br /&gt;
*time_multiplier - Множитель времения(Только для верстаков с временем производства) &lt;br /&gt;
*craft - функция крафта &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.addGridRecipe(string name, object result, string[] recipe, object ingridients)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*result&amp;amp;nbsp;- Результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во &lt;br /&gt;
**int data - Дата предмета   &lt;br /&gt;
*recipe&amp;amp;nbsp;- Массив строк, образующие рецепт &lt;br /&gt;
*ingridients&amp;amp;nbsp;- Объект ингридиентов &lt;br /&gt;
&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot; style=&amp;quot;width: 200px;&amp;quot; | Добавить крафт для верстака с сеткой ''name''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.addGridRecipe(string name, object result, string[] recipe, object ingridients, function craft)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*result&amp;amp;nbsp;- Результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во &lt;br /&gt;
**int data - Дата предмета   &lt;br /&gt;
*recipe&amp;amp;nbsp;- Массив строк, образующие рецепт &lt;br /&gt;
*ingridients&amp;amp;nbsp;- Объект ингридиентов &lt;br /&gt;
*craft - Функция крафта &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.addGridRecipe(string name, object result, string[] recipe, object ingridients, int time_multiplier)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*result&amp;amp;nbsp;- Результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во &lt;br /&gt;
**int data - Дата предмета   &lt;br /&gt;
*recipe&amp;amp;nbsp;- Массив строк, образующие рецепт &lt;br /&gt;
*ingridients&amp;amp;nbsp;- Объект ингридиентов &lt;br /&gt;
*time_multiplier&amp;amp;nbsp;- Множитель времения(Только для верстаков с временем производства) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.addGridRecipe(string name, object result, string[] recipe, object ingridients, int time_multiplier, function craft)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*result&amp;amp;nbsp;- Результат крафта &lt;br /&gt;
**int id - ID предмета &lt;br /&gt;
**int count - Кол-во &lt;br /&gt;
**int data - Дата предмета   &lt;br /&gt;
*recipe&amp;amp;nbsp;- Массив строк, образующие рецепт &lt;br /&gt;
*ingridients&amp;amp;nbsp;- Объект ингридиентов &lt;br /&gt;
*time_multiplier&amp;amp;nbsp;- Множитель времения(Только для верстаков с временем производства) &lt;br /&gt;
*craft - функция крафта &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&amp;lt;br/&amp;gt; ''Устаревшее в 1.1''&amp;lt;br/&amp;gt; ''&amp;lt;span style=&amp;quot;color:#e74c3c;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#ffffff;&amp;quot;&amp;gt;Удалено в 1.2&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.getTickResipes(string name, TileEntity TE, function condition)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*name - Идентификатор/имя верстака &lt;br /&gt;
*TE&amp;amp;nbsp;- TileEntity &lt;br /&gt;
*condition -&amp;amp;nbsp;Функция условия (Не обязательный) &lt;br /&gt;
&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot; style=&amp;quot;width: 200px;&amp;quot; | Обработчик тика для TileEntity&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1.1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.getTickReсipes(string name, TileEntity TE, function condition)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; rowspan=&amp;quot;1&amp;quot; style=&amp;quot;width: 709px;&amp;quot; | RecipeTE.outputSlotValid()&lt;br /&gt;
| style=&amp;quot;width: 200px;&amp;quot; | Функция проверки слота результата&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 121px; text-align: center;&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;width: 326px;&amp;quot; | RecipeTE.defaultCraftEvent(TileEntity TE, object workbench)&lt;br /&gt;
| style=&amp;quot;width: 379px;&amp;quot; | &lt;br /&gt;
*TE&amp;amp;nbsp;- TileEntity &lt;br /&gt;
*workbench - Объект описания верстака &lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 200px;&amp;quot; | Стандартная функция крафта (Для методов RecipeTE.addRecipe и RecipeTE.addGridRecipe)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>YztGrifYT</name></author>	</entry>

	</feed>