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

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

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
<div class="mw-parser-output">
 
=== Регистрация ID ===
 
  
ID - уникальный идентификатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry.
+
== РЕГИСТРАЦИЯ ID ==
 +
 
 +
ID - уникальный идентефикатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry.
  
 
Для регистрации ID блока используется метод IDRegistry.genBlockID("строковый ID") - после вызова этой функции сгенерируется новый уникальный ID для блока, доступ к числовому значению которого может быть произведен как BlockID.<строковый ID>
 
Для регистрации ID блока используется метод IDRegistry.genBlockID("строковый ID") - после вызова этой функции сгенерируется новый уникальный ID для блока, доступ к числовому значению которого может быть произведен как BlockID.<строковый ID>
Строка 9: Строка 9:
  
 
Примеры:
 
Примеры:
<syntaxhighlight lang="Javascript">IDRegistry.genBlockID("testBlock"); // доступ BlockID.testBlock
+
<blockquote>
IDRegistry.genItemID("testItem"); // доступ ItemID.testItem</syntaxhighlight>
+
''IDRegistry.genBlockID("testBlock");'' // доступ BlockID.testBlock
<div class="mw-parser-output">
+
</blockquote> <blockquote>
=== Текстуры ===
+
''IDRegistry.genItemID("testItem");'' // доступ ItemID.testItem
 +
</blockquote>  
 +
== ТЕКСТУРЫ ==
  
 
В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.
 
В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.
  
Текстуры блоков в ресурспаке располагаются по адресу res/terrain-atlas/
+
Текстуры блоков в ресурспаке располагаются по адресу images/terrain-atlas/
  
Текстуры предметов&nbsp;в ресурспаке располагаются по адресу res/items-opaque/
+
Текстуры блоков в ресурспаке располагаются по адресу images/items-opaque/
  
Текстуры брони в ресурспаке располагаются по адресу res/armor
+
== СОЗДАНИЕ БЛОКОВ ==
</div>
 
=== Создание блоков ===
 
  
 
После регистрации ID для блока, создается сам блок на этом ID. На одном ID может быть создано несколько вариаций блока, каждая из которых обладает своим именем и текстурой, разные вариации одного блока в мире будут иметь один ID, но разные значения metadata, подробнее об этом будет позднее. Для создания блоков используется модуль Block.
 
После регистрации ID для блока, создается сам блок на этом ID. На одном ID может быть создано несколько вариаций блока, каждая из которых обладает своим именем и текстурой, разные вариации одного блока в мире будут иметь один ID, но разные значения metadata, подробнее об этом будет позднее. Для создания блоков используется модуль Block.
Строка 28: Строка 28:
 
Метод Block.createBlock("строковый ID", [вариация1, вариация2, ...]) - создает блок и все его вариации на ранее зарегистрированном ID, если вариация 1, то просто создает данный блок.
 
Метод 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.
<syntaxhighlight lang="Javascript">{
+
 
   name: "имя вариации",  
+
'''Пример''':
    texture: [
+
<blockquote>
        ["название1", индекс1], // bottom
+
I''DRegistry.genBlockID("testBlock");'' // регистрация
        ["название2", индекс2], // top
+
 
        ["название3", индекс3], // back
+
''Block.createBlock("testBlock", [''
        ["название4", индекс4], // front
+
 
        ["название5", индекс5], // left
+
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{name: "test block", texture: [["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0], ["planks", 0]], inCreative: true}''
        ["название6", индекс6] // right
+
 
    ],  
+
'']) ''// создание простого блока на ID "testBlock" с текстурой досок на всех сторонах, будет добавлен в креатив
   inCreative: true/false //(добавлять ли данную вариацию блока в креатив)
+
</blockquote>  
}</syntaxhighlight>
 
  
Если текстур указано меньше, чем 6, то последняя из них будет дублирована несколько раз, чтобы дополнить их кол-во до 6.
+
&nbsp;
  
'''Пример''':
+
=== СОЗДАНИЕ БЛОКА С ПОВОРОТОМ ===
<syntaxhighlight lang="Javascript">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" с текстурой досок на всех сторонах, будет добавлен в креатив</syntaxhighlight>
 
<div class="mw-parser-output"><div class="mw-parser-output">
 
==== Создание блоков с поворотом ====
 
  
 
Метод Block.createBlockWithRotation -&nbsp;&nbsp;принимает те же аргументы, что и Block.createBlock, но для каждой вариации блока создает 4 вариации, которые реализуют поворот, блок, созданный этим методом, автоматически будет ставиться с нужным поворотом.
 
Метод Block.createBlockWithRotation -&nbsp;&nbsp;принимает те же аргументы, что и Block.createBlock, но для каждой вариации блока создает 4 вариации, которые реализуют поворот, блок, созданный этим методом, автоматически будет ставиться с нужным поворотом.
</div> </div>
+
 
=== Создание предметов ===
+
== СОЗДАНИЕ ПРЕДМЕТОВ ==
  
 
После регистрации ID предмета, создается сам предмет на этом ID. Предметы могут быть разных типов: обычный, броня, еда и кидаемый, для каждого из них существует свой метод. Для создания предметов используется модуль Item. Каждый предмет имеет текстуру, которая задается в формате {name: "имя текстуры", meta: <номер текстуры>}, если номер текстуры 0, его можно не указывать.
 
После регистрации ID предмета, создается сам предмет на этом ID. Предметы могут быть разных типов: обычный, броня, еда и кидаемый, для каждого из них существует свой метод. Для создания предметов используется модуль Item. Каждый предмет имеет текстуру, которая задается в формате {name: "имя текстуры", meta: <номер текстуры>}, если номер текстуры 0, его можно не указывать.
 +
<blockquote>
 +
''Item.createItem("строковый ID", "имя предмета", текстура, параметры)&nbsp;''- создает обычный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
 +
</blockquote>
 +
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
 +
<blockquote>
 +
''{''
 +
 +
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTech: false, ''// если true, не добавляет предмет в креатив
 +
 +
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack: 64 ''// размер стака
 +
 +
''}&nbsp;''
 +
</blockquote>
 +
== Создание еды ==
 +
<blockquote>
 +
''Item.createFoodItem("строковый ID", "имя предмета", текстура, параметры) ''- создает съедобный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
 +
</blockquote>
 +
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
 +
<blockquote>
 +
''{''
 +
 +
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTech: false'',''// если true, не добавляет предмет в креатив''
 +
 +
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack: 64'', // размер стака
 +
 +
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;food: 1''&nbsp;// восполнение здоровья едой
  
Item.createItem("строковый ID", "имя предмета", текстура, параметры) - создает обычный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
+
''}''
 +
</blockquote>
 +
== Создание кидаемого предмета ==
 +
<blockquote>
 +
''Item.createThrowableItem("строковый ID", "имя предмета", текстура, параметры) ''- создает кидаемый предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
 +
</blockquote>
 +
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
 +
<blockquote>
 +
''{''
  
Параметры имеют формат, если вы не хотите изменять значения по умолчанию, просто не пишите их:
+
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTech: false'', // если true, не добавляет предмет в креатив
<syntaxhighlight lang="Javascript">{
 
     isTech: false, // если true, не добавляет предмет в креатив
 
     stack: 64 // размер стака
 
} </syntaxhighlight>
 
  
'''Пример''':
+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;''stack: 64'' // размер стака
<syntaxhighlight lang="JavaScript">IDRegistry.genItemID("testItem");
 
Item.createItem("testItem", "test item", {name: "stick", meta: 0}, {}); // создаем обычный предмет на ID testItem с текстурой палки и стандартными параметрами</syntaxhighlight>
 
  
==== Создание еды ====
+
''}''
 +
</blockquote>
 +
== Создание брони ==
 +
<blockquote>
 +
''Item.createArmorItem("строковый ID", "имя предмета", текстура, параметры) ''- создает предмет брони на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
 +
</blockquote>
 +
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
 +
<blockquote>
 +
''{''
  
Item.createFoodItem("строковый ID", "имя предмета", текстура, параметры) - создает съедобный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
+
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isTech: false'', // если true, не добавляет предмет в креатив
  
Параметры имеют формат, если вы не хотите изменять значения по умолчанию, просто не пишите их:
+
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;armor: 1'', // значение брони
<syntaxhighlight lang="Javascript">{
 
     isTech: false,// если true, не добавляет предмет в креатив
 
     stack: 64, // размер стака
 
     food: 1 // восполнение здоровья едой
 
}</syntaxhighlight>
 
  
==== Создание кидаемого предмета ====
+
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: <обязательное значение>'', // тип предмета "helmet"/"chestplate"/"leggings"/"boots"
  
Item.createThrowableItem("строковый ID", "имя предмета", текстура, параметры) - создает кидаемый предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
+
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;texture: <обязательное значение>'', // текстура модели данного предмета брони
  
Параметры имеют формат, если вы не хотите изменять значения по умолчанию, просто не пишите их:
+
''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;durability: 1'' // прочность
<syntaxhighlight lang="Javascript">{
 
     isTech: false, // если true, не добавляет предмет в креатив
 
     stack: 64 // сколько предметов будет в одном стаке, максимум 64.
 
}</syntaxhighlight>
 
<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.genItemID("throwableItem");&nbsp;
 
Item.createThrowableItem("throwableItem", "Throwable Item", { name: "throwable_item", meta: 0}, {})
 
</syntaxhighlight>
 
</div> </div> </div> </div> </div> </div>
 
==== Создание брони ====
 
<pre>Item.createArmorItem(&quot;строковый ID&quot;, &quot;имя предмета&quot;, текстура, параметры) - создает предмет брони на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</pre>
 
  
Параметры имеют формат, если вы не хотите изменять значения по умолчанию, просто не пишите их:
+
''}''
<syntaxhighlight lang="Javascript">{
+
</blockquote>  
     isTech: false, // если true, не добавляет предмет в креатив
+
== Пример ==
     armor: 1, // количество добавляемой брони в шкале защиты
+
<blockquote>
     type: <обязательное значение>, // тип предмета "helmet"/"chestplate"/"leggings"/"boots"
+
''IDRegistry.genItemID("testItem");''
     texture: <обязательное значение>, // текстура модели данной брони
 
     durability: 1 // прочность брони
 
}</syntaxhighlight>
 
<div class="mw-parser-output"><div class="mw-parser-output">
 
'''Пример брони''':
 
<syntaxhighlight lang="Javascript">IDRegistry.genItemID("myHelmet"); // регистрируем ID шлема
 
IDRegistry.genItemID("myChestplate"); // регистрируем ID нагрудника
 
IDRegistry.genItemID("myLeggings"); // регистрируем ID понож
 
IDRegistry.genItemID("myBoots"); // регистрируем ID ботинок
 
  
Item.createArmorItem("myHelmet", "Helmet", {name: "helmet"}, {type: "helmet", armor: 2, durability: 149, texture: "armor/lay_1.png"}); // создаём шлем с ID myHelmet
+
''Item.createItem("testItem", "test item", {name: "stick", meta: 0}, {}); ''// создаем обычный предмет на ID testItem с текстурой палки и стандартными параметрами
Item.createArmorItem("myChestplate", "Chestplate", {name: "chestplate"}, {type: "chestplate", armor: 6, durability: 216, texture: "armor/lay_1.png"}); // создаём нагрудник с ID myChestplate
+
</blockquote>
Item.createArmorItem("myLeggings", "Leggings", {name: "leggings"}, {type: "leggings", armor: 5, durability: 203, texture: "armor/lay_2.png"}); // создаём поножи с ID myLeggings
 
Item.createArmorItem("myBoots", "Boots", {name: "boots"}, {type: "boots", armor: 2, durability: 176, texture: "armor/lay_1.png"}); // создаём ботинки с ID myBoots
 
</syntaxhighlight>
 
</div> </div> </div>
 

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