RecipeTELib — различия между версиями

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

Текущая версия на 23:39, 3 декабря 2022

RecipeTELib - библиотека, упрощающая создание верстаков и печей.

Загрузка[править]

Версия Ссылка Изменения
1 Скачать
  • Первая версия
1.1 Скачать
  • Слияние методов registerGridCraftTable and registerTimerGridCraftTable
  • Слияние методов registerCraftTable and registerTimerCraftTable
  • Исправлено имя метода с getTickResipes на getTickRecipes
  • Добавлена возможность использовать свои идентификаторы элементов
  • Для рецептов добавлен параметр множителя времени крафта
1.2 Скачать
  • Удален метод registerTimerGridCraftTable 
  • Удален метод registerTimerCraftTable 
  • Удален метод getTickResipes
  • Исправлена смена крафта у печей
2.0  
  • Библиотека переписана
  • Добавлена возможность создавать бесформенные рецепты
2.1 GitHub
  • Исправление ошибок
  • Поддержка RecipeViewer
  • В TileEntity верстака добавлен метод setWorkbench(sid)
GitHub GitHub  

Условия использования[править]

  • Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество
  • Запрещено изменение кода библиотеки
  • Запрещено явное копирование кода в другие библиотеки или моды 

Используя данный продукт вы автоматически соглашаетесь с этими правилами

Документация (2.0 и выше)[править]

Инициализация[править]

Импортируйте библиотеку.

IMPORT("RecipeTileEntityLib")

Верстак[править]

Регистрация верстака[править]

Для начала создаем блок:

IDRegistry.genBlockID("Workbench_Grid");
Block.createBlock("Workbench_Grid", [{
    name: "Workbench Grid", 
    texture: [
        ["work_table_bottom", 0], // bottom
        ["work_table_top", 0], // top
        ["work_table_side", 0], // back
        ["work_table_side", 1], // front
        ["work_table_side", 0], // left
        ["work_table_side", 0]  // right
    ], 
    inCreative: true 
}]);

Затем создаем наш интерфейс:

ВАЖНО!: Слоты, в которые нужно ложить предмет нужно называть "inputSlot"+ порядковое число слота, начиная с нуля, иначе указать имена слотов(или имя, если используются порядковые числа) при регистрации.
Слот результата должен иметь название "outputSlot", иначе указать имя слота при регистрации.
var Workbench_Grid = new UI.StandartWindow({
    standart: {
        header: {text: {text: "Workbench Grid 4x4"}},
        inventory: {standart:true},
        background: {standart: true}
    },
    drawing: [{
        type: "bitmap",
        bitmap: "arrow",
        x: 600,
        y: 170,
        scale: 4
    }],
    elements:{
        "inputSlot0":{x:350, y:80, type:"slot"},
        "inputSlot1":{x:410, y:80, type:"slot"},
        "inputSlot2":{x:470, y:80, type:"slot"},
        "inputSlot3":{x:530, y:80, type:"slot"},

        "inputSlot4":{x:350, y:140, type:"slot"},
        "inputSlot5":{x:410, y:140, type:"slot"},
        "inputSlot6":{x:470, y:140, type:"slot"},
        "inputSlot7":{x:530, y:140, type:"slot"},

        "inputSlot8":{x:350, y:200, type:"slot"},
        "inputSlot9":{x:410, y:200, type:"slot"},
        "inputSlot10":{x:470, y:200, type:"slot"},
        "inputSlot11":{x:530, y:200, type:"slot"},

        "inputSlot12":{x:350, y:260, type:"slot"},
        "inputSlot13":{x:410, y:260, type:"slot"},
        "inputSlot14":{x:470, y:260, type:"slot"},
        "inputSlot15":{x:530, y:260, type:"slot"},

        "outputSlot":{x:698, y:170, type:"slot"}
    }
});

Затем регистрируем наш верстак:

RecipeTE.registerWorkbench("Workbench_Grid",//SID блока
{
    rows:4,//Кол-во строк сетки
    cols:4,//Кол-во столбцов сетки
    GuiScreen:Workbench_Grid //Интерфейс верстака
    //Так же тут можно(И нужно) описать поля TileEntity
});

Добавление рецептов для верстака[править]

Создание рецептов для верстака с сеткой происходит через метод RecipeTE.addShapeRecipe(name_workbench, result, recipe, ingredients), где:

  • name_workbench - имя верстака
  • result - объект результата
    • id - ID предмета
    • count - Кол-во предмета
    • data - Дата предмета
  • recipe - Массив строк крафта
  • ingredients - объект ингредиентов
RecipeTE.addShapeRecipe("Workbench_Grid", {
    id:280,
    count:1
    }, [
    "aa",
    "aa"
    ], {
    a:{
        id:5
    }
});

RecipeTE.addShapeRecipe("Workbench_Grid", {
    id:280,
    count:1
    }, [
    "aaaa",
    "a  a",
    "a  a",
    "aaaa"
    ], {
    a:{
        id:1
    }
});
 

Электрическая печь(Редстоун сигнал)[править]

Регистрация печи[править]

Для начала создаем блок:

IDRegistry.genBlockID("Furnace");
Block.createBlockWithRotation("Furnace", [{
    name: "Furnace", 
    texture: [
        ["iron_furnace_bottom", 0], // bottom
        ["iron_furnace_top", 0], // top
        ["iron_furnace_side", 0], // back
        ["iron_furnace_front", 0], // front
        ["iron_furnace_side", 0], // left
        ["iron_furnace_side", 0]  // right
    ], 
    inCreative: true 
}]);

Затем создаем наш интерфейс:

ВАЖНО!: Слоты, в которые нужно ложить предмет нужно называть "inputSlot"+ порядковое число слота, начиная с нуля, иначе указать имена слотов(или имя, если используются порядковые числа) при регистрации.
Слот результата должен иметь название "outputSlot", иначе указать имя слота при регистрации.
var Furnace = new UI.StandartWindow({
    standart: {
        header: {text: {text: "Furnace"}},
        inventory: {standart:true},
        background: {standart: true}
    },
    drawing: [{
        type: "bitmap",
        bitmap: "arrow",
        x: 600,
        y: 170,
        scale: 4
    }],
    elements:{
        "myInputSlot":{x:530, y:170, type:"slot"},
        
        "myOutputSlot":{x:698, y:170, type:"slot", isValid:RecipeTE.outputSlotValid },

        "timerScale":{
            type: "scale",
            x: 600,
            y: 170,
            direction:0,
            bitmap: "arrow_scale",
            scale: 4
        }
    }
});

Затем регистрируем наш верстак:

RecipeTE.registerWorkbench("Furnace", {
    time:5 * 20, //Время крафта
    slots:1, //Кол-во слотов
    GuiScreen:Furnace, //Интерфейс печи
    input:["myInputSlot"], //Входные слоты
    output:"myOutputSlot", //Слот результата
    scale:"timerScale", //Шкала прогресса
    condition:function(){ //Условие работы верстака
        return this.data.power
    },
    //Параметры TileEntity
    defaultValues:{
        power:false,
    },
    redstone: function(params){
        if(params.power < 10)
            this.data.power = false;
        else
            this.data.power = true;
    }
});

Добавление рецептов для печи[править]

Создание бесформенных рецептов для верстака происходит через метод RecipeTE.addRecipe(name_workbench, result,  ingredients), где:

  • name_workbench - имя верстака
  • result - объект результата
    • id - ID предмета
    • count - Кол-во предмета
    • data - Дата предмета
  • ingredients - Массив ингредиентов
RecipeTE.addRecipe("Furnace", {id:280}, [{id:5}]);
RecipeTE.addRecipe("Furnace", {id:281}, [{id:1}], .2);

Интеграция с RecipeViewer[править]

Добавление ваших крафтов происходит автоматически.

В RecipeViewer переносятся только входные слоты и слот-результат. Для отображения дополнительных элементов, нужно добавить к элементу параметр RV.

<syntaxhighlight lang="JavaScript">
{
    type: "bitmap",
    bitmap: "arrow",
    x: 600,
    y: 170,
    RV:true,
    scale: 4
}</syntaxhighlight>

Для задания своего интерфейса в RecipeViewer прототип должен иметь поле RVGuiScreen с полями drawable и elements.
Входные слоты имеют имя input+index, выходные - output+index.

Подробнее об элементах на странице <a href="InnerCore%2F%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B2%20GUI">Введение в GUI</a>. </div>

 

Полная документация[править]

Версия Метод Аргументы Описание
2.0 void RecipeTE.addWorkbench(string name, object Info)
  • name - Имя верстака
  • TE_Prototype - объект прототипа TE
    • int columns || cols - кол-ыо столбцов сетки
    • int rows - кол-во строк сетки
    • int slots - кол-во слотов(В место cols и rows)
    • UIWindow gui - Окно для TileEntity
    • int time - Кол-во тиков, нужное для крафта
    • string output - имя слота для результата(По стандарту outputSlot)
    • string input - префикс слотов входных предметов(По стандарту inputSlot)
    • string[] input - массив имен входных слотов.
    • string scale - Имя шкалы используемое для отображения прогресса
Регистрирует верстак с именем name не привязывая его к блоку
2.0 void RecipeTE.registerWorkbench(string block_sid, object TE_Prototype)
  • block_sid - Строковый ID блока
  • TE_Prototype - объект прототипа TE
    • int columns || cols - кол-ыо столбцов сетки
    • int rows - кол-во строк сетки
    • int slots - кол-во слотов(В место cols и rows)
    • UIWindow gui - Окно для TileEntity
    • int time - Кол-во тиков, нужное для крафта
    • string output - имя слота для результата(По стандарту outputSlot)
    • string input - префикс слотов входных предметов(По стандарту inputSlot)
    • string[] input - массив имен входных слотов.
    • string scale - Имя шкалы используемое для отображения прогресса
    • function condition - функция-условие функционирования верстака
Регистрирует верстак для блока с SID block_sid
2.0 bool RecipeTE.isRegistered(string block_sid)
  • block_sid - Строковый ID блока
Вернет true, если верстак с строковым ID block_sid был зарегистрирован, иначе false
2.0 void RecipeTE.addRecipe(string block_sid, object result, object[] ingridients, int time_multiplier, function craft)
  • block_sid - Строковый ID блока
  • result - результат крафта
    • int id - ID предмета
    • int data - дата предмета(По стандарту 0)
    • int count - Кол-во предметоа(По стандарту 1)
  • ingridients - Массив объектов ингредиента
    • int id - ID предмета
    • int count - Кол-во предметоа(По стандарту 1) 
    • int data - дата предмета(По стандарту 0)
  • time_multiplier - множитель времени крафта(По стандарту 1)
  • craft - Функция крафта(По стандарту RecipeTE.defaultCraftEvent)
Добавлет безформенный рецепт для верстака block_sid
2.0 void RecipeTE.addShapeRecipe(string block_sid, object result, string recipe, object ingridients, int time_multiplier, function craft)
  • block_sid - Строковый ID блока
  • result - результат крафта
    • int id - ID предмета
    • int data - дата предмета(По стандарту 0)
    • int count - Кол-во предметоа(По стандарту 1)
  • recipe - Строка символов, формирующих рецепт(Предметы разложены в слотак в порядке от 0 к N)
  • ingridients - Объект описывающий символы рецепта как ингредиент
    Объект ингредиента:
    • int id - ID предмета
    • int count - Кол-во предметоа(По стандарту 1) 
    • int data - дата предмета(По стандарту 0)
  • time_multiplier - множитель времени крафта(По стандарту 1)
  • craft - Функция крафта(По стандарту RecipeTE.defaultCraftEvent)
Добавляет крафт для верстака block_sid
2.0 void RecipeTE.addShapeRecipe(string block_sid, object result, string[] recipe, object ingridients, int time_multiplier, function craft)
  • block_sid - Строковый ID блока
  • result - результат крафта
    • int id - ID предмета
    • int data - дата предмета(По стандарту 0)
    • int count - Кол-во предметоа(По стандарту 1)
  • recipe - Массив строка символов, формирующих рецепт(элемент массива - строка сетки, элемент строки - столбец сетки)
  • ingridients - Объект описывающий символы рецепта как ингредиент
    Объект ингредиента:
    • int id - ID предмета
    • int count - Кол-во предметоа(По стандарту 1) 
    • int data - дата предмета(По стандарту 0)
  • time_multiplier - множитель времени крафта(По стандарту 1)
  • craft - Функция крафта(По стандарту RecipeTE.defaultCraftEvent)
Добавляет крафт для верстака block_sid
2.0 void RecipeTE.defaultCraftEvent(TileEntity TE)
  • TE - TileEntity верстака
Стандартная функция крафта

Документация (до версии 2.0)[править]

Инициализация[править]

Импортируйте библиотеку.

IMPORT("RecipeTileEntityLib")

Верстак[править]

Создание верстака[править]

Для начала создаем блок:

IDRegistry.genBlockID("Workbench_Grid");
Block.createBlock("Workbench_Grid", [{
    name: "Workbench Grid", 
    texture: [
        ["work_table_bottom", 0], // bottom
        ["work_table_top", 0], // top
        ["work_table_side", 0], // back
        ["work_table_side", 1], // front
        ["work_table_side", 0], // left
        ["work_table_side", 0]  // right
    ], 
    inCreative: true 
}]);

Затем создаем наш интерфейс:

!ВАЖНО!: Слоты, в которые нужно ложить предмет нужна ОБЯЗАТЕЛЬНО называть "inputSlot"+ порядковое число слота, начиная с нуля. Слот результата должен иметь название "outputSlot", так же стоит задавать isValid для outputSlot как RecipeTE.outputSlotValid

var Workbench_Grid = new UI.StandartWindow({
    standart: {
        header: {text: {text: "Workbench Grid 4x4"}},
        inventory: {standart:true},
        background: {standart: true}
    },
    drawing: [{
        type: "bitmap",
        bitmap: "arrow",
        x: 600,
        y: 170, scale: 4
    }],
    elements:{
        "inputSlot0":{x:350, y:80, type:"slot"},
        "inputSlot1":{x:410, y:80, type:"slot"},
        "inputSlot2":{x:470, y:80, type:"slot"},
        "inputSlot3":{x:530, y:80, type:"slot"},

        "inputSlot4":{x:350, y:140, type:"slot"},
        "inputSlot5":{x:410, y:140, type:"slot"},
        "inputSlot6":{x:470, y:140, type:"slot"},
        "inputSlot7":{x:530, y:140, type:"slot"},

        "inputSlot8":{x:350, y:200, type:"slot"},
        "inputSlot9":{x:410, y:200, type:"slot"},
        "inputSlot10":{x:470, y:200, type:"slot"},
        "inputSlot11":{x:530, y:200, type:"slot"},

        "inputSlot12":{x:350, y:260, type:"slot"},
        "inputSlot13":{x:410, y:260, type:"slot"},
        "inputSlot14":{x:470, y:260, type:"slot"},
        "inputSlot15":{x:530, y:260, type:"slot"},

        "outputSlot":{x:698, y:170, type:"slot", isValid:RecipeTE.outputSlotValid }
    }
});

Затем регистрируем наш верстак, есть два способа:

  • RecipeTE.registerGridCraftTable(description);

 

RecipeTE.registerGridCraftTable({
    name:"Workbench_Grid",
    rows:4,
    cols:4
});
  • ​​RecipeTE.registerGridCraftTable(name, columns, rows);

 

RecipeTE.registerGridCraftTable("Workbench_Grid", 4, 4);

Теперь нам следует зарегистрировать TileEntity. В getGuiScreen мы возвращаем наше окно. В методе тика мы вызываем RecipeTE.getTickResipes(name, TileEntity) :

TileEntity.registerPrototype(BlockID["Workbench_Grid"], {
    getGuiScreen: function(){
        return Workbench_Grid;
    },
    
    tick:function(){
        RecipeTE.getTickResipes("Workbench_Grid", this);
    }  
});

Создание рецептов для верстака[править]

Создание рецептов для верстака с сеткой происходит через метод RecipeTE.addGridRecipe(name_workbench, result, recipe, ingredients), где:

  • name_workbench - имя верстака
  • result - объект результата
    • id - ID предмета
    • count - Кол-во предмета
    • data - Дата предмета
  • recipe - Массив строк крафта
  • ingredients - объект ингредиентов

 

RecipeTE.addGridRecipe("Workbench_Grid", {
    id:280,
    count:1
},
[   "aa",
    "aa"
], {
    a:{
        id:5
    }
});

RecipeTE.addGridRecipe("Workbench_Grid", {
    id: 281,
    count: 1
},
[   "aaaa",
    "a  a",
    "a  a",
    "aaaa"
], {
    a: {
        id: 1,
        data:0
    }
});

Электрическая(редстоун сигнал) печь[править]

Создание печи[править]

Для начала создаем блок:

IDRegistry.genBlockID("Furnace");
Block.createBlockWithRotation("Furnace", [{
    name: "Furnace", 
    texture: [
        ["iron_furnace_bottom", 0], // bottom
        ["iron_furnace_top", 0], // top
        ["iron_furnace_side", 0], // back
        ["iron_furnace_front", 0], // front
        ["iron_furnace_side", 0], // left
        ["iron_furnace_side", 0]  // right
    ], 
    inCreative: true 
}]);

Затем создаем наш интерфейс:

!ВАЖНО!: Слоты, в которые нужно ложить предмет нужна ОБЯЗАТЕЛЬНО называть "inputSlot"+ порядковое число слота, начиная с нуля. Слот результата должен иметь название "outputSlot", так же стоит задавть isValidдля outputSlot как RecipeTE.outputSlotValid, для шкалы процесса использовать имя "timerScale"

var Furnace = new UI.StandartWindow({
    standart: {
        header: {text: {text: "Furnace"}},
        inventory: {standart:true},
        background: {standart: true}
    },
    drawing: [{
        type: "bitmap",
        bitmap: "arrow",
        x: 600,
        y: 170,
        scale: 4
    }],
    elements:{
        "inputSlot0":{x:530, y:170, type:"slot"},
        
        "outputSlot":{x:698, y:170, type:"slot", isValid:RecipeTE.outputSlotValid },

        "timerScale":{
            type: "scale",
            x: 600,
            y: 170,
            direction:0,
            bitmap: "arrow_scale",
            scale: 4
        }
    }
});

Затем регистрируем наш верстак(печь), есть два способа:

  • RecipeTE.registerTimerCraftTable(description);

 

RecipeTE.registerTimerCraftTable({
    name:"Furnace",
    cols:1,
    timer:5*20
});
  • ​​RecipeTE.registerTimerCraftTable(name, columns, timer);

 

RecipeTE.registerTimerCraftTable("Furnace", 1, 5*20);

Теперь нам следует зарегистрировать TileEntity. В getGuiScreen мы возвращаем наше окно. В методе redstone мы будем проверять, сльный ли редстоун-сигнал и включать машину. В методе тика мы вызываем RecipeTE.getTickResipes(name, TileEntity, condition) с нашим условием:

TileEntity.registerPrototype(BlockID["Furnace"], {
    getGuiScreen: function(){
        return Furnace;
    },
    redstone: function(params){
        if(params.power < 10)
            this.data.power = false;
        else
            this.data.power = true;
    },
    tick:function(){
        RecipeTE.getTickResipes("Furnace", this, function(TE){
            return TE.data.power;
        });
    }
});

Создание рецептов для печи[править]

Создание рецептов для верстака(печи) без сетки происходит через метод RecipeTE.addRecipe(name_workbench, result, recipe, ingredients), где:

  • name_workbench - имя верстака
  • result - объект результата
    • id - ID предмета
    • count - Кол-во предмета
    • data - Дата предмета
  • recipe - Строка крафта
  • ingredients - объект ингредиентов

 

RecipeTE.addRecipe("Furnace", {id:280, count:1}, "a", {a:{id:5}});
 

Полная документация[править]

Версия Метод Аргументы Описание
1 RecipeTE.registerGridCraftTable(object description)
  • description- Описание верстака
    • name - Идентификатор/имя верстака
    • columns/cols - Кол-во колонок
    • rows - Кол-во строк
    • elements - Объект с названиями элементов(С версии 1.1, не обязательный)
      • input - Массив строк(Кол-во жлементов должно быть равно columns * row) или строка(Слоты должны иметь название elements.input + индекс) названия входных слотов
      • output - Строка названия выходного слото
      • progress - Строка названия шкалы прогресса
    • time - Длительность производства(С версии 1.1, не обязательный)
Регистрация верстака с сеткой
1 RecipeTE.registerGridCraftTable(string name, int columns, int rows)
  • name - Идентификатор/имя верстака
  • columns - Кол-во колонок
  • rows - Кол-во строк
1.1 RecipeTE.registerGridCraftTable(string name, int columns, int rows, object elements)
  • name - Идентификатор/имя верстака
  • columns - Кол-во колонок
  • rows - Кол-во строк
  • elements - Объект с названиями элементов
    • input - Массив строк(Кол-во жлементов должно быть равно columns * row) или строка(Слоты должны иметь название elements.input + индекс) названия входных слотов
    • output - Строка названия выходного слото
    • progress - Строка названия шкалы прогресса
1.1 RecipeTE.registerGridCraftTable(string name, int columns, int rows, int time)
  • name - Идентификатор/имя верстака
  • columns - Кол-во колонок
  • rows - Кол-во строк
  • time - Длительность производства
1.1 RecipeTE.registerGridCraftTable(string name, int columns, int rows, object elements, int time)
  • name - Идентификатор/имя верстака
  • columns - Кол-во колонок
  • rows - Кол-во строк
  • elements - Объект с названиями элементов
    • input - Массив строк(Кол-во жлементов должно быть равно columns * row) или строка(Слоты должны иметь название elements.input + индекс) названия входных слотов
    • output - Строка названия выходного слото
    • progress - Строка названия шкалы прогресса
  • time - Длительность производства
1 RecipeTE.registerCraftTable(object description)
  • description- Описание верстака
    • name - Идентификатор/имя верстака
    • columns/cols - Кол-во слотов(Версия 1)
    • slots - Кол-во слотов(С версии 1.1)
    • elements - Объект с названиями элементов(С версии 1.1, не обязательный)
      • input - Массив строк(Кол-во жлементов должно быть равно columns * row) или строка(Слоты должны иметь название elements.input + индекс) названия входных слотов
      • output - Строка названия выходного слото
      • progress - Строка названия шкалы прогресса
    • time - Длительность производства(С версии 1.1, не обязательный)
Регистрация верстака без сетки
1 RecipeTE.registerCraftTable(string name, int slots)
  • name - Идентификатор/имя верстака
  • slots - Кол-во слотов
1.1 RecipeTE.registerCraftTable(string name, int slots, int time)
  • name - Идентификатор/имя верстака
  • slots - Кол-во слотов
  • time - Длительность производства
1.1 RecipeTE.registerCraftTable(string name, int slots, object elements)
  • name - Идентификатор/имя верстака
  • slots - Кол-во слотов
  • elements - Объект с названиями элементов
    • input - Массив строк(Кол-во жлементов должно быть равно columns * row) или строка(Слоты должны иметь название elements.input + индекс) названия входных слотов
    • output - Строка названия выходного слото
    • progress - Строка названия шкалы прогресса
1.1 RecipeTE.registerCraftTable(string name, int slots, object elements, int time)
  • name - Идентификатор/имя верстака
  • slots - Кол-во слотов
  • elements - Объект с названиями элементов
    • input - Массив строк(Кол-во жлементов должно быть равно columns * row) или строка(Слоты должны иметь название elements.input + индекс) названия входных слотов
    • output - Строка названия выходного слото
    • progress - Строка названия шкалы прогресса
  • time - Длительность производства

1
Устаревшее в 1.1
Удалено в 1.2

RecipeTE.registerTimerGridCraftTable(object description)
  • description- Описание верстака
    • name - Идентификатор/имя верстака
    • columns/cols - Кол-во колонок
    • rows - Кол-во строк
    • timer - Время производства в тиках
Регистрация верстака с сеткой, требующий время на производство

1
Устаревшее в 1.1
Удалено в 1.2

RecipeTE.registerTimerGridCraftTable(string name, int columns, int rows, int timer)
  • name - Идентификатор/имя верстака
  • columns - Кол-во колонок
  • rows - Кол-во строк
  • timer - Время производства в тиках
1 RecipeTE.registerTimerCraftTable(object description)
  • description- Описание верстака
    • name - Идентификатор/имя верстака
    • columns/cols - Кол-во слотов
    • timer - Время производства в тиках
Регистрация верстака без сетки, требующий время на производство
1 RecipeTE.registerTimerCraftTable(string name, int slots, int timer)
  • name - Идентификатор/имя верстака
  • slots - Кол-во слотов
  • timer - Время производства в тиках
1 RecipeTE.isRegistered(string name)
  • name - Идентификатор/имя верстака
Вернет true, если верстак зарегистрирован, иначе false
1 RecipeTE.getMechanism(string name)
  • name - Идентификатор/имя верстака
Вернет описание верстака если он сущечтвует, иначе false
1 RecipeTE.addRecipe(string name, object result, string recipe, object ingridients)
  • name - Идентификатор/имя верстака
  • result - Результат крафта
    • int id - ID предмета
    • int count - Кол-во
    • int data - Дата предмета
  • recipe - Строка, образующая рецепт
  • ingridients - Объект ингридиентов
Добавить крафт для верстака name
1 RecipeTE.addRecipe(string name, object result, string recipe, object ingridients, function craft)
  • name - Идентификатор/имя верстака
  • result - Результат крафта
    • int id - ID предмета
    • int count - Кол-во
    • int data - Дата предмета
  • recipe - Строка, образующая рецепт
  • ingridients - Объект ингридиентов
  • craft - функция крафта
1.1 RecipeTE.addRecipe(string name, object result, string recipe, object ingridients, int time_multiplier)
  • name - Идентификатор/имя верстака
  • result - Результат крафта
    • int id - ID предмета
    • int count - Кол-во
    • int data - Дата предмета
  • recipe - Строка, образующая рецепт
  • ingridients - Объект ингридиентов
  • time_multiplier - Множитель времения(Только для верстаков с временем производства)
1.1 RecipeTE.addRecipe(string name, object result, string recipe, object ingridients, int time_multiplier, function craft)
  • name - Идентификатор/имя верстака
  • result - Результат крафта
    • int id - ID предмета
    • int count - Кол-во
    • int data - Дата предмета
  • recipe - Строка, образующая рецепт
  • ingridients - Объект ингридиентов
  • time_multiplier - Множитель времения(Только для верстаков с временем производства)
  • craft - функция крафта
1 RecipeTE.addGridRecipe(string name, object result, string[] recipe, object ingridients)
  • name - Идентификатор/имя верстака
  • result - Результат крафта
    • int id - ID предмета
    • int count - Кол-во
    • int data - Дата предмета
  • recipe - Массив строк, образующие рецепт
  • ingridients - Объект ингридиентов
Добавить крафт для верстака с сеткой name
1 RecipeTE.addGridRecipe(string name, object result, string[] recipe, object ingridients, function craft)
  • name - Идентификатор/имя верстака
  • result - Результат крафта
    • int id - ID предмета
    • int count - Кол-во
    • int data - Дата предмета
  • recipe - Массив строк, образующие рецепт
  • ingridients - Объект ингридиентов
  • craft - Функция крафта
1.1 RecipeTE.addGridRecipe(string name, object result, string[] recipe, object ingridients, int time_multiplier)
  • name - Идентификатор/имя верстака
  • result - Результат крафта
    • int id - ID предмета
    • int count - Кол-во
    • int data - Дата предмета
  • recipe - Массив строк, образующие рецепт
  • ingridients - Объект ингридиентов
  • time_multiplier - Множитель времения(Только для верстаков с временем производства)
1.1 RecipeTE.addGridRecipe(string name, object result, string[] recipe, object ingridients, int time_multiplier, function craft)
  • name - Идентификатор/имя верстака
  • result - Результат крафта
    • int id - ID предмета
    • int count - Кол-во
    • int data - Дата предмета
  • recipe - Массив строк, образующие рецепт
  • ingridients - Объект ингридиентов
  • time_multiplier - Множитель времения(Только для верстаков с временем производства)
  • craft - функция крафта
1
Устаревшее в 1.1
Удалено в 1.2
RecipeTE.getTickResipes(string name, TileEntity TE, function condition)
  • name - Идентификатор/имя верстака
  • TE - TileEntity
  • condition - Функция условия (Не обязательный)
Обработчик тика для TileEntity
1.1 RecipeTE.getTickReсipes(string name, TileEntity TE, function condition)
1 RecipeTE.outputSlotValid() Функция проверки слота результата
1 RecipeTE.defaultCraftEvent(TileEntity TE, object workbench)
  • TE - TileEntity
  • workbench - Объект описания верстака
Стандартная функция крафта (Для методов RecipeTE.addRecipe и RecipeTE.addGridRecipe)