Редактирование:RecipeTELib

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 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">
 
<div class="mw-parser-output">
Строка 48: Строка 46:
 
*Библиотека переписана  
 
*Библиотека переписана  
 
*Добавлена возможность создавать бесформенные рецепты  
 
*Добавлена возможность создавать бесформенные рецепты  
 
|-
 
| 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)
 
  
 
|-
 
|-
Строка 76: Строка 66:
 
<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> ==
 
  
 
=== Инициализация ===
 
=== Инициализация ===
Строка 85: Строка 74:
  
 
=== Верстак ===
 
=== Верстак ===
<div class="mw-parser-output"><div class="mw-parser-output">
+
 
 
<div class="mw-parser-output">
 
<div class="mw-parser-output">
 
==== Регистрация верстака ====
 
==== Регистрация верстака ====
Строка 155: Строка 144:
 
    GuiScreen:Workbench_Grid //Интерфейс верстака
 
    GuiScreen:Workbench_Grid //Интерфейс верстака
 
    //Так же тут можно(И нужно) описать поля TileEntity
 
    //Так же тут можно(И нужно) описать поля TileEntity
});</syntaxhighlight>
+
});
 +
</syntaxhighlight>
 
</div>
 
</div>
  
Строка 195: Строка 185:
 
    }
 
    }
 
});</syntaxhighlight>
 
});</syntaxhighlight>
<div class="mw-parser-output">&nbsp;</div> </div>
+
 
 +
&nbsp;
 +
</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;печи ====
  
Создание бесформенных рецептов для верстака происходит через метод&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">
 
<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>
 
 
 
=== Полная документация ===
 
=== Полная документация ===
  
Строка 330: Строка 206:
 
|-
 
|-
 
| style="text-align: center; vertical-align: top;" | '''2.0'''
 
| 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;" | void RecipeTE.registerWorkbench(string name, object Info)
 
| style="text-align: center; vertical-align: top;" |  
 
| style="text-align: center; vertical-align: top;" |  
 
*name - Имя верстака  
 
*name - Имя верстака  
Строка 431: Строка 307:
 
| style="vertical-align: top;" | Стандартная функция крафта
 
| style="vertical-align: top;" | Стандартная функция крафта
 
|}
 
|}
 
</div> </div> </div> </div> </div> </div> </div> </div> </div>
 
 
</div>
 
</div>
  

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 или более поздняя (см. Mineprogramming wiki:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!