Создание блоков и предметов — различия между версиями

Строка 1: Строка 1:
  
== РЕГИСТРАЦИЯ ID ==
+
=== Регистрация ID ===
  
 
ID - уникальный идентефикатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry.
 
ID - уникальный идентефикатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry.
Строка 9: Строка 9:
  
 
Примеры:
 
Примеры:
<blockquote>
+
<pre>IDRegistry.genBlockID("testBlock"); // доступ BlockID.testBlock
''IDRegistry.genBlockID("testBlock");'' // доступ BlockID.testBlock
+
IDRegistry.genItemID("testItem"); // доступ ItemID.testItem</pre>
</blockquote> <blockquote>
+
 
''IDRegistry.genItemID("testItem");'' // доступ ItemID.testItem
+
=== Текстуры ===
</blockquote>  
 
== ТЕКСТУРЫ ==
 
  
 
В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.
 
В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.
Строка 22: Строка 20:
 
Текстуры блоков в ресурспаке располагаются по адресу images/items-opaque/
 
Текстуры блоков в ресурспаке располагаются по адресу images/items-opaque/
  
== СОЗДАНИЕ БЛОКОВ ==
+
=== Создание блоков ===
  
 
После регистрации ID для блока, создается сам блок на этом ID. На одном ID может быть создано несколько вариаций блока, каждая из которых обладает своим именем и текстурой, разные вариации одного блока в мире будут иметь один ID, но разные значения metadata, подробнее об этом будет позднее. Для создания блоков используется модуль Block.
 
После регистрации ID для блока, создается сам блок на этом ID. На одном ID может быть создано несколько вариаций блока, каждая из которых обладает своим именем и текстурой, разные вариации одного блока в мире будут иметь один ID, но разные значения metadata, подробнее об этом будет позднее. Для создания блоков используется модуль Block.
Строка 31: Строка 29:
  
 
'''Пример''':
 
'''Пример''':
<blockquote>
+
<pre>IDRegistry.genBlockID("testBlock"); // регистрация
I''DRegistry.genBlockID("testBlock");'' // регистрация
+
Block.createBlock("testBlock", [
 
+
    {name: "test block", texture: [["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0]], inCreative: true}
''Block.createBlock("testBlock", [''
+
]) // создание простого блока на ID "testBlock" с текстурой досок на всех сторонах, будет добавлен в креатив
 
+
</pre>
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name: "test block", texture: [["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0]], inCreative: true}''
 
 
 
'']) ''// создание простого блока на ID "testBlock" с текстурой досок на всех сторонах, будет добавлен в креатив
 
</blockquote>  
 
&nbsp;
 
  
=== СОЗДАНИЕ БЛОКА С ПОВОРОТОМ ===
+
==== Создание блоков с поворотом ====
  
 
Метод Block.createBlockWithRotation -&nbsp;&nbsp;принимает те же аргументы, что и Block.createBlock, но для каждой вариации блока создает 4 вариации, которые реализуют поворот, блок, созданный этим методом, автоматически будет ставиться с нужным поворотом.
 
Метод Block.createBlockWithRotation -&nbsp;&nbsp;принимает те же аргументы, что и Block.createBlock, но для каждой вариации блока создает 4 вариации, которые реализуют поворот, блок, созданный этим методом, автоматически будет ставиться с нужным поворотом.
  
== СОЗДАНИЕ ПРЕДМЕТОВ ==
+
=== Создание предметов ===
  
 
После регистрации ID предмета, создается сам предмет на этом ID. Предметы могут быть разных типов: обычный, броня, еда и кидаемый, для каждого из них существует свой метод. Для создания предметов используется модуль Item. Каждый предмет имеет текстуру, которая задается в формате {name: "имя текстуры", meta: <номер текстуры>}, если номер текстуры 0, его можно не указывать.
 
После регистрации ID предмета, создается сам предмет на этом ID. Предметы могут быть разных типов: обычный, броня, еда и кидаемый, для каждого из них существует свой метод. Для создания предметов используется модуль Item. Каждый предмет имеет текстуру, которая задается в формате {name: "имя текстуры", meta: <номер текстуры>}, если номер текстуры 0, его можно не указывать.
<blockquote>
+
<pre>Item.createItem("строковый ID", "имя предмета", текстура, параметры) - создает обычный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</pre>
''Item.createItem("строковый ID", "имя предмета", текстура, параметры)&nbsp;''- создает обычный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
+
 
</blockquote>  
 
 
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
 
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
<blockquote>
+
<pre>{
''{''
+
    isTech: false, // если true, не добавляет предмет в креатив
 
+
    stack: 64 // размер стака
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTech: false, ''// если true, не добавляет предмет в креатив
+
} </pre>
  
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack: 64 ''// размер стака
+
==== Создание еды ====
 +
<pre>Item.createFoodItem("строковый ID", "имя предмета", текстура, параметры) - создает съедобный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</pre>
  
''}&nbsp;''
 
</blockquote>
 
=== Создание еды ===
 
<blockquote>
 
''Item.createFoodItem("строковый ID", "имя предмета", текстура, параметры) ''- создает съедобный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
 
</blockquote>
 
 
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
 
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
<blockquote>
+
<pre>{
''{''
+
    isTech: false,// если true, не добавляет предмет в креатив
 
+
    stack: 64, // размер стака
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTech: false'',''// если true, не добавляет предмет в креатив''
+
    food: 1 // восполнение здоровья едой
 +
}</pre>
  
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack: 64'', // размер стака
+
==== Создание кидаемого предмета ====
 +
<pre>Item.createThrowableItem("строковый ID", "имя предмета", текстура, параметры) - создает кидаемый предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</pre>
  
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;food: 1''&nbsp;// восполнение здоровья едой
 
 
''}''
 
</blockquote>
 
=== Создание кидаемого предмета ===
 
<blockquote>
 
''Item.createThrowableItem("строковый ID", "имя предмета", текстура, параметры) ''- создает кидаемый предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
 
</blockquote>
 
 
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
 
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
<blockquote>
+
<pre>{
''{''
+
    isTech: false, // если true, не добавляет предмет в креатив
 +
    stack: 64 // размер стака
 +
}</pre>
  
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTech: false'', // если true, не добавляет предмет в креатив
+
==== Создание брони ====
 +
<pre>Item.createArmorItem("строковый ID", "имя предмета", текстура, параметры) - создает предмет брони на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</pre>
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;''stack: 64'' // размер стака
 
 
''}''
 
</blockquote>
 
=== Создание брони ===
 
<blockquote>
 
''Item.createArmorItem("строковый ID", "имя предмета", текстура, параметры) ''- создает предмет брони на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
 
</blockquote>
 
 
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
 
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
<blockquote>
+
<pre>{
''{''
+
    isTech: false, // если true, не добавляет предмет в креатив
 
+
    armor: 1, // значение брони
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTech: false'', // если true, не добавляет предмет в креатив
+
    type: <обязательное значение>, // тип предмета "helmet"/"chestplate"/"leggings"/"boots"
 
+
    texture: <обязательное значение>, // текстура модели данного предмета брони
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;armor: 1'', // значение брони
+
    durability: 1 // прочность
 
+
}</pre>
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: <обязательное значение>'', // тип предмета "helmet"/"chestplate"/"leggings"/"boots"
 
 
 
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;texture: <обязательное значение>'', // текстура модели данного предмета брони
 
 
 
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;durability: 1'' // прочность
 
 
 
''}''
 
</blockquote>  
 
== Пример ==
 
<blockquote>
 
''IDRegistry.genItemID("testItem");''
 
  
''Item.createItem("testItem", "test item", {name: "stick", meta: 0}, {}); ''// создаем обычный предмет на ID testItem с текстурой палки и стандартными параметрами
+
=== Пример ===
</blockquote>
+
<pre>IDRegistry.genItemID("testItem");
 +
Item.createItem("testItem", "test item", {name: "stick", meta: 0}, {}); // создаем обычный предмет на ID testItem с текстурой палки и стандартными параметрами</pre>

Версия 21:20, 7 июля 2017

Регистрация ID

ID - уникальный идентефикатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry.

Для регистрации ID блока используется метод IDRegistry.genBlockID("строковый ID") - после вызова этой функции сгенерируется новый уникальный ID для блока, доступ к числовому значению которого может быть произведен как BlockID.<строковый ID>

Для регистрации ID предмета используется метод IDRegistry.genItemID("строковый ID") - после вызова этой функции сгенерируется новый уникальный ID для предмета, доступ к числовому значению которого может быть произведен как ItemID.<строковый ID>

Примеры:

IDRegistry.genBlockID("testBlock"); // доступ BlockID.testBlock
IDRegistry.genItemID("testItem"); // доступ ItemID.testItem

Текстуры

В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.

Текстуры блоков в ресурспаке располагаются по адресу images/terrain-atlas/

Текстуры блоков в ресурспаке располагаются по адресу images/items-opaque/

Создание блоков

После регистрации ID для блока, создается сам блок на этом ID. На одном ID может быть создано несколько вариаций блока, каждая из которых обладает своим именем и текстурой, разные вариации одного блока в мире будут иметь один ID, но разные значения metadata, подробнее об этом будет позднее. Для создания блоков используется модуль Block.

Метод Block.createBlock("строковый ID", [вариация1, вариация2, ...]) - создает блок и все его вариации на ранее зарегистрированном ID, если вариация 1, то просто создает данный блок.

Каждая вариация в массиве имеет формат {name: "имя вариации", texture: [["текстура 1", <номер текстуры 1>], ["текстура 2", <номер текстуры 2>], ["текстура 3", <номер текстуры 3>], ["текстура 4", <номер текстуры 4>], ["текстура 5", <номер текстуры 5>], ["текстура 6", <номер текстуры 6>]], inCreative: true/false (добавлять ли данную вариацию блока в креатив)}. Если текстур указано меньше, чем 6, то последняя из них будет дублирована несколько раз, чтобы дополнить их кол-во до 6.

Пример:

IDRegistry.genBlockID("testBlock"); // регистрация
Block.createBlock("testBlock", [
     {name: "test block", texture: [["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0]], inCreative: true}
]) // создание простого блока на ID "testBlock" с текстурой досок на всех сторонах, будет добавлен в креатив

Создание блоков с поворотом

Метод Block.createBlockWithRotation -  принимает те же аргументы, что и Block.createBlock, но для каждой вариации блока создает 4 вариации, которые реализуют поворот, блок, созданный этим методом, автоматически будет ставиться с нужным поворотом.

Создание предметов

После регистрации ID предмета, создается сам предмет на этом ID. Предметы могут быть разных типов: обычный, броня, еда и кидаемый, для каждого из них существует свой метод. Для создания предметов используется модуль Item. Каждый предмет имеет текстуру, которая задается в формате {name: "имя текстуры", meta: <номер текстуры>}, если номер текстуры 0, его можно не указывать.

Item.createItem("строковый ID", "имя предмета", текстура, параметры) - создает обычный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.

Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:

{
     isTech: false, // если true, не добавляет предмет в креатив
     stack: 64 // размер стака
} 

Создание еды

Item.createFoodItem("строковый ID", "имя предмета", текстура, параметры) - создает съедобный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.

Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:

{
     isTech: false,// если true, не добавляет предмет в креатив
     stack: 64, // размер стака
     food: 1 // восполнение здоровья едой
}

Создание кидаемого предмета

Item.createThrowableItem("строковый ID", "имя предмета", текстура, параметры) - создает кидаемый предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.

Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:

{
     isTech: false, // если true, не добавляет предмет в креатив
     stack: 64 // размер стака
}

Создание брони

Item.createArmorItem("строковый ID", "имя предмета", текстура, параметры) - создает предмет брони на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.

Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:

{
     isTech: false, // если true, не добавляет предмет в креатив
     armor: 1, // значение брони
     type: <обязательное значение>, // тип предмета "helmet"/"chestplate"/"leggings"/"boots"
     texture: <обязательное значение>, // текстура модели данного предмета брони
     durability: 1 // прочность
}

Пример

IDRegistry.genItemID("testItem");
Item.createItem("testItem", "test item", {name: "stick", meta: 0}, {}); // создаем обычный предмет на ID testItem с текстурой палки и стандартными параметрами