Создание Модов(В Ручную)

19.06.2013 12:21

Давайте сядем в круг, и я вам расскажу все секреты моддинга minebuilder.

Ну начнем.

Давайте рассмотрим xml файл - workbench.xml. сейчас я вам все распишу.

Координаты блоков строятся по координатной сетке x y. Проблем не должно быть.

<layout>
<slot type = "input" тип клетки крафта, ввод или вывод (input и output) x="94" y="73" //расположение клетки крафта на экране// size="48" //размер клетки// >item11 //обозначение клетки в дальнейших рецептах </slot>
<slot type = "output" x="286" y="121" size="64">result</slot>
<alias>
<slot orig = "item11">item21</slot>
<slot orig = "item12">item22</slot>
<slot orig = "item21">item31</slot>
<slot orig = "item22">item32</slot> - //эти строчки определяют независимость поставленного блока крафта на сетку. т.е. например, у нас рецепт состоит из одного блока и мы можем ставить этот один блок в любую клетку. за это как раз и отвечает этот раздел. Я называю это - Маска сетки
</alias>
</layout>

Обычно, чтобы не путаться в рецептах, я пишу название рецепта:
<!-- имя-->. И удобно, и билдер не читает эту строку.

<item11 //1 координата х, 2 у //>1 //id блока, который нужно поставить//</item11 //завершаем код//>
Это мы разобрали.

В конце вы пишете результат - result. Это мы тоже разберем.
<result //начинаем код// count="10" //пишем кол-тво получаемого предмета//>2//id получаемого блока//</result//завершаем код//>
С этим разобрались. Идем дальше.

Перейдем к blocks.xml

<block id="2"> //id блока, не должно повторяться//>
<name> //имя, которое будет высвечиваться в инвентаре при перетаскивании этого предмета
<solid//твердый ли блок или нет//>true</solid>
<transparent//прозрачный ли он, или нет//>false</transparent>
<opaque//пропускает ли свет//>false</opaque>
<visible//видимый ли блок//>true</visible>
<special//неизвестно//>false</special>
<removable//собираемый ли блок//>true</removable>
<liquid//жидкий ли блок//>false</liquid>
<valuable//несет ли блок смысловую нагрузку(так и не понял зачем)//>false</valuable>
<active//можно ли блок активировать//>false</active>
<emittance//количество света, излучаемого блоком//>0</emittance>
<rotatаble//Поворачивается ли объект, или нет (актуально только для прописанной двери)//>0</emittance>
<recipes name="имя xml с рецептами"//к этому мы вернемся ниже//>Имя, которое показывается в верстаке</emittance>

<tool id="0" drop="3"//id предмета, которым ломают, и какой дроп//>700//скорость разрушения//</tool>
<tool id="269" drop="3">450</tool>
<tool id="273" drop="3">250</tool>
<tool id="256" drop="3">150</tool>
<tool id="277" drop="3">150</tool>
<tool id="284" drop="3">100</tool>

//текстуры пишутся так же по координатной плоскости х,у
<textures>
<top x="0" y="0"/>
<bottom x="2" y="0"/>
<default x="3" y="0"/>
</textures>
<category>Пишем то, из чего состоит блок (для определения звука при ударе по блоку, хождению и т.п.) - stone, wood, glass, leaves, sand - больше не видел

Можно добавить свои теги со своими звуками. Нужно создать подобный список аудиофайлов и положить в audio:
тегmine1.wav
тегmine2.wav
тегmine3.wav
тегwalk1.wav
тегwalk2.wav
тегwalk3.wav
тегwalk4.wav
тегwalk5.wav
Внимание! Должны присутствовать все файлы вместе, иначе тег не будет работать!

</category>
</block>

И это мы разобрали, но это не все.

В версии 1.10 была добавлена функция 2 и более верстаков. Рассмотрим на примере моего варочного аппарата.

</block>
<block id="122">

<solid>true</solid>
<transparent>false</transparent>
<opaque>false</opaque>
<visible>true</visible>
<special>false</special>
<removable>true</removable>
<liquid>false</liquid>
<valuable>false</valuable>
<active>true</active>
<emittance>0</emittance>

<tool id="0" drop="0">17500</tool>
<tool id="270" drop="122">5250</tool>
<tool id="274" drop="122">5250</tool>
<tool id="257" drop="122">5250</tool>
<tool id="278" drop="122">5250</tool>
<tool id="285" drop="122">5250</tool>

//вот эта строчка меняет все дело.
<recipes name="varka">zel'e</recipes>

<textures>
<front x="7" y="11"/>
<top x="6" y="10"/>
<bottom x="7" y="11"/>
<left x="7" y="11"/>
<right x="7" y="11"/>
<back x="7" y="11"/>
</textures>


<recipes name="varka">zel'e //название xml файла с рецптами//</recipes> - ссылка кода на рецепты, где должен брать этот блок. Рецепты пишутся как и в обычном верстаке.

Теперь посмотрим items.xml

здесь ничего сложного:
<item id="63"> id картинки, которая лежит в папке items
<name>sign</name> Тоже что и в blocks.xml - имя при перетаскивании
</item>

С этим разобрались. Перейдем к следующему файлу - ores.xml
<ore id=//id руды//"16">
<deepest>//самое низкая точка нахождения руды, считается от бедрока в слоях//=12</deepest>
<highest>//самая высокая точка//75</highest>
<smallest>//минимальное кол-во спавна руды в одной точке//4</smallest>
<largest>//самое максимальное кол-во руды//10</largest>
<rarity>//редкость руды, чем больше значение тем меньше вероятность спавна//50</rarity>
</ore>

Поняли? Едем дальше. Теперь рассмотрим help.xml. Он не настолько важен, поэтому можете пропустить.
Рассмотрим на примере из моего мода.

<faqs>
<category name="General"> //Большими жирными буквами пишет название топика
<faq>//Открываем "список", состоящий только из одного вопроса (<q>) и ответа (<a>)
<q>Who made this mod?</q> //Вопросец, буквами поменьше
<a>This mod was made by Kot from 4pda. (thanks Dviker for Interface and Krip585 for textures.)</a> //Ответ, буквами еще меньше
</faq> //Закрываем. Только так может выглядеть один faq. в category может находиться более одного faq, но в faq не больше одного <a> и <q>
</faqs>

Источник: Kotketa (4pda.ru/forum/index.php?s=&showtopic=408747&view=findpost&p=21783115)