Текущая версия |
Ваш текст |
Строка 6: |
Строка 6: |
| <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"> |
| == Загрузка == | | == Загрузка == |
Строка 41: |
Строка 38: |
| *Удален метод getTickResipes | | *Удален метод getTickResipes |
| *Исправлена смена крафта у печей | | *Исправлена смена крафта у печей |
− |
| |
− | |-
| |
− | | style="text-align: center; width: 63px;" | '''2.0'''
| |
− | | style="text-align: center; width: 57px;" |
| |
− | | 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)
| |
| | | |
| |- | | |- |
Строка 75: |
Строка 57: |
| <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> == | |
| | | |
| === Инициализация === | | === Инициализация === |
Строка 83: |
Строка 63: |
| Импортируйте библиотеку. | | Импортируйте библиотеку. |
| <syntaxhighlight lang="JavaScript">IMPORT("RecipeTileEntityLib")</syntaxhighlight> | | <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;">'''ВАЖНО!: '''Слоты, в которые нужно ложить предмет нужно называть "'''''inputSlot'''''"+ '''порядковое число''' слота, начиная с нуля, иначе указать имена слотов(или имя, если используются порядковые числа) при регистрации.<br/> Слот результата должен иметь название "'''''outputSlot'''''", иначе указать имя слота при регистрации.</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">
| |
− | ==== Добавление рецептов для верстака ====
| |
− |
| |
− | Создание рецептов для верстака с сеткой происходит через метод '''''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"> </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;">'''ВАЖНО!: '''Слоты, в которые нужно ложить предмет нужно называть "'''''inputSlot'''''"+ '''порядковое число''' слота, начиная с нуля, иначе указать имена слотов(или имя, если используются порядковые числа) при регистрации.<br/> Слот результата должен иметь название "'''''outputSlot'''''", иначе указать имя слота при регистрации.</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">
| |
− | ==== Добавление рецептов для печи ====
| |
− |
| |
− | Создание бесформенных рецептов для верстака происходит через метод '''''RecipeTE.addRecipe(name_workbench, result, ingredients)''''', где:
| |
− |
| |
− | *name_workbench - имя верстака
| |
− | *result - объект результата
| |
− | **id - ID предмета
| |
− | **count - Кол-во предмета
| |
− | **data - Дата предмета
| |
− | *ingredients - Массив ингредиентов
| |
− | <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">
| |
− | {
| |
− | type: "bitmap",
| |
− | bitmap: "arrow",
| |
− | x: 600,
| |
− | y: 170,
| |
− | RV:true,
| |
− | scale: 4
| |
− | }</syntaxhighlight></pre>
| |
− |
| |
− | <p>Для задания своего интерфейса в RecipeViewer прототип должен иметь поле 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>. </div></p>
| |
− |
| |
− | <div class="mw-parser-output"> </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 || cols - кол-ыо столбцов сетки
| |
− | **int rows - кол-во строк сетки
| |
− | **int slots - кол-во слотов(В место cols и rows)
| |
− | **UIWindow gui - Окно для TileEntity
| |
− | **int time - Кол-во тиков, нужное для крафта
| |
− | **string output - имя слота для результата(По стандарту outputSlot)
| |
− | **string input - префикс слотов входных предметов(По стандарту inputSlot)
| |
− | **string[] input - массив имен входных слотов.
| |
− | **string 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 || cols - кол-ыо столбцов сетки
| |
− | **int rows - кол-во строк сетки
| |
− | **int slots - кол-во слотов(В место cols и rows)
| |
− | **UIWindow gui - Окно для TileEntity
| |
− | **int time - Кол-во тиков, нужное для крафта
| |
− | **string output - имя слота для результата(По стандарту outputSlot)
| |
− | **string input - префикс слотов входных предметов(По стандарту inputSlot)
| |
− | **string[] input - массив имен входных слотов.
| |
− | **string scale - Имя шкалы используемое для отображения прогресса
| |
− | **function 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 RecipeTE.isRegistered(string block_sid)
| |
− | | style="vertical-align: top;" |
| |
− | *block_sid - Строковый 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 - Строковый 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)
| |
− |
| |
− | | 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 - Строковый ID блока
| |
− | *result - результат крафта
| |
− | **int id - ID предмета
| |
− | **int data - дата предмета(По стандарту 0)
| |
− | **int count - Кол-во предметоа(По стандарту 1)
| |
− | *recipe - Строка символов, формирующих рецепт(Предметы разложены в слотак в порядке от 0 к N)
| |
− | *ingridients - Объект описывающий символы рецепта как ингредиент<br/> Объект ингредиента:
| |
− | **int id - ID предмета
| |
− | **int count - Кол-во предметоа(По стандарту 1)
| |
− | **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 - Строковый ID блока
| |
− | *result - результат крафта
| |
− | **int id - ID предмета
| |
− | **int data - дата предмета(По стандарту 0)
| |
− | **int count - Кол-во предметоа(По стандарту 1)
| |
− | *recipe - Массив строка символов, формирующих рецепт(элемент массива - строка сетки, элемент строки - столбец сетки)
| |
− | *ingridients - Объект описывающий символы рецепта как ингредиент<br/> Объект ингредиента:
| |
− | **int id - ID предмета
| |
− | **int count - Кол-во предметоа(По стандарту 1)
| |
− | **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> | | </div> |
| | | |