Строка 1: | Строка 1: | ||
− | <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"> | ||
+ | <h3>Регистрация ID</h3> | ||
− | ID - уникальный идентефикатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry. | + | <p>ID - уникальный идентефикатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry.</p> |
− | Для регистрации ID блока используется метод IDRegistry.genBlockID( | + | <p>Для регистрации ID блока используется метод IDRegistry.genBlockID("строковый ID") - после вызова этой функции сгенерируется новый уникальный ID для блока, доступ к числовому значению которого может быть произведен как BlockID.<строковый ID></p> |
− | Для регистрации ID предмета используется метод IDRegistry.genItemID( | + | <p>Для регистрации ID предмета используется метод IDRegistry.genItemID("строковый ID") - после вызова этой функции сгенерируется новый уникальный ID для предмета, доступ к числовому значению которого может быть произведен как ItemID.<строковый ID></p> |
− | Примеры: | + | <p>Примеры:</p> |
− | < | ||
− | |||
− | |||
− | |||
− | + | <pre class="fck_mw_syntaxhighlight"> | |
+ | <syntaxhighlight lang="Javascript">IDRegistry.genBlockID("testBlock"); // доступ BlockID.testBlock | ||
+ | IDRegistry.genItemID("testItem"); // доступ ItemID.testItem</syntaxhighlight></pre> | ||
+ | </div> | ||
− | Текстуры | + | <div class="mw-parser-output"> |
+ | <h3>Текстуры</h3> | ||
− | + | <p>В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.</p> | |
− | Текстуры | + | <p>Текстуры блоков в ресурспаке располагаются по адресу res/terrain-atlas/</p> |
− | </ | ||
− | |||
− | + | <p>Текстуры предметов в ресурспаке располагаются по адресу res/items-opaque/</p> | |
− | + | <p>Текстуры брони в ресурспаке распологаются по адресу res/armor</p> | |
+ | </div> | ||
− | Каждая вариация в массиве имеет формат | + | <h3>Создание блоков</h3> |
+ | |||
+ | <p>После регистрации ID для блока, создается сам блок на этом ID. На одном ID может быть создано несколько вариаций блока, каждая из которых обладает своим именем и текстурой, разные вариации одного блока в мире будут иметь один ID, но разные значения metadata, подробнее об этом будет позднее. Для создания блоков используется модуль Block.</p> | ||
+ | |||
+ | <p>Метод Block.createBlock("строковый ID", [вариация1, вариация2, ...]) - создает блок и все его вариации на ранее зарегистрированном ID, если вариация 1, то просто создает данный блок.</p> | ||
+ | |||
+ | <p>Каждая вариация в массиве имеет формат</p> | ||
+ | |||
+ | <pre class="fck_mw_syntaxhighlight"> | ||
<syntaxhighlight lang="Javascript">{ | <syntaxhighlight lang="Javascript">{ | ||
− | + | name: "имя вариации", | |
texture: [ | texture: [ | ||
− | [ | + | ["название1", индекс1], // bottom |
− | [ | + | ["название2", индекс2], // top |
− | [ | + | ["название3", индекс3], // back |
− | [ | + | ["название4", индекс4], // front |
− | [ | + | ["название5", индекс5], // left |
− | [ | + | ["название6", индекс6] // right |
], | ], | ||
− | + | inCreative: true/false //(добавлять ли данную вариацию блока в креатив) | |
− | }</syntaxhighlight> | + | }</syntaxhighlight></pre> |
− | Если текстур указано меньше, чем 6, то последняя из них будет дублирована несколько раз, чтобы дополнить их кол-во до 6. | + | <p>Если текстур указано меньше, чем 6, то последняя из них будет дублирована несколько раз, чтобы дополнить их кол-во до 6.</p> |
− | + | <p><b>Пример</b>:</p> | |
− | < | ||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | + | <pre class="fck_mw_syntaxhighlight"> | |
− | </ | + | <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></pre> | ||
− | + | <div class="mw-parser-output"> | |
+ | <div class="mw-parser-output"> | ||
+ | <h4>Создание блоков с поворотом</h4> | ||
− | + | <p>Метод Block.createBlockWithRotation - принимает те же аргументы, что и Block.createBlock, но для каждой вариации блока создает 4 вариации, которые реализуют поворот, блок, созданный этим методом, автоматически будет ставиться с нужным поворотом.</p> | |
+ | </div> | ||
+ | </div> | ||
− | Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их: | + | <h3>Создание предметов</h3> |
+ | |||
+ | <p>После регистрации ID предмета, создается сам предмет на этом ID. Предметы могут быть разных типов: обычный, броня, еда и кидаемый, для каждого из них существует свой метод. Для создания предметов используется модуль Item. Каждый предмет имеет текстуру, которая задается в формате {name: "имя текстуры", meta: <номер текстуры>}, если номер текстуры 0, его можно не указывать.</p> | ||
+ | |||
+ | <p>Item.createItem("строковый ID", "имя предмета", текстура, параметры) - создает обычный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</p> | ||
+ | |||
+ | <p>Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:</p> | ||
+ | |||
+ | <pre class="fck_mw_syntaxhighlight"> | ||
<syntaxhighlight lang="Javascript">{ | <syntaxhighlight lang="Javascript">{ | ||
− | + | isTech: false, // если true, не добавляет предмет в креатив | |
− | + | stack: 64 // размер стака | |
− | } | + | } </syntaxhighlight></pre> |
− | + | <h4>Создание еды</h4> | |
− | Item.createFoodItem( | + | <p>Item.createFoodItem("строковый ID", "имя предмета", текстура, параметры) - создает съедобный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</p> |
− | Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их: | + | <p>Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:</p> |
+ | |||
+ | <pre class="fck_mw_syntaxhighlight"> | ||
<syntaxhighlight lang="Javascript">{ | <syntaxhighlight lang="Javascript">{ | ||
− | + | isTech: false,// если true, не добавляет предмет в креатив | |
− | + | stack: 64, // размер стака | |
− | + | food: 1 // восполнение здоровья едой | |
− | }</syntaxhighlight> | + | }</syntaxhighlight></pre> |
− | + | <h4>Создание кидаемого предмета</h4> | |
− | Item.createThrowableItem( | + | <p>Item.createThrowableItem("строковый ID", "имя предмета", текстура, параметры) - создает кидаемый предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</p> |
− | Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их: | + | <p>Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:</p> |
+ | |||
+ | <pre class="fck_mw_syntaxhighlight"> | ||
<syntaxhighlight lang="Javascript">{ | <syntaxhighlight lang="Javascript">{ | ||
− | + | isTech: false, // если true, не добавляет предмет в креатив | |
− | + | stack: 64 // сколько предметов будет в одном стаке, максимум 64. | |
− | }</syntaxhighlight> | + | }</syntaxhighlight></pre> |
− | <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"> | |
− | <pre>IDRegistry.genItemID( | + | <div class="mw-parser-output"> |
− | Item.createThrowableItem( | + | <div class="mw-parser-output"> |
+ | <div class="mw-parser-output"> | ||
+ | <div class="mw-parser-output"> | ||
+ | <div class="mw-parser-output"> | ||
+ | <h4>Пример кидаемого предмета.</h4> | ||
+ | |||
+ | <pre> | ||
+ | IDRegistry.genItemID("throwableItem");&nbsp; | ||
+ | Item.createThrowableItem("throwableItem", "Throwable Item", { name: "throwable_item", meta: 0}, {}) | ||
</pre> | </pre> | ||
− | </div> </div> </div> </div> </div> </div | + | </div> |
− | + | </div> | |
− | + | </div> | |
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
− | Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их: | + | <h4>Создание брони</h4> |
+ | |||
+ | <pre> | ||
+ | Item.createArmorItem(&quot;строковый ID&quot;, &quot;имя предмета&quot;, текстура, параметры) - создает предмет брони на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.</pre> | ||
+ | |||
+ | <p>Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:</p> | ||
+ | |||
+ | <pre class="fck_mw_syntaxhighlight"> | ||
<syntaxhighlight lang="Javascript">{ | <syntaxhighlight lang="Javascript">{ | ||
− | + | isTech: false, // если true, не добавляет предмет в креатив | |
− | + | armor: 1, // количество добавляемой брони в шкале защиты | |
− | + | type: <обязательное значение>, // тип предмета "helmet"/"chestplate"/"leggings"/"boots" | |
− | + | texture: <обязательное значение>, // текстура модели данной брони | |
− | + | durability: 1 // прочность брони | |
− | }</syntaxhighlight> | + | }</syntaxhighlight></pre> |
− | <div class="mw-parser-output"><div class="mw-parser-output"> | + | |
− | + | <div class="mw-parser-output"> | |
− | <syntaxhighlight lang="Javascript">IDRegistry.genItemID( | + | <div class="mw-parser-output"> |
− | IDRegistry.genItemID( | + | <h3>Пример брони</h3> |
− | IDRegistry.genItemID( | + | |
− | IDRegistry.genItemID( | + | <p> </p> |
+ | |||
+ | <pre class="fck_mw_syntaxhighlight"> | ||
+ | <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.createArmorItem("myChestplate", "Chestplate", {name: "chestplate"}, {type: "chestplate", armor: 6, durability: 216, texture: "armor/lay_1.png"}); // создаём нагрудник с ID myChestplate | ||
+ | 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></pre> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | <h3>Пример предмета</h3> | ||
+ | |||
+ | <p> </p> | ||
− | + | <pre class="fck_mw_syntaxhighlight"> | |
− | + | <syntaxhighlight lang="Javascript">IDRegistry.genItemID("testItem"); | |
− | + | Item.createItem("testItem", "test item", {name: "stick", meta: 0}, {}); // создаем обычный предмет на ID testItem с текстурой палки и стандартными параметрами</syntaxhighlight></pre> | |
− | + | </div> | |
− | + | </div> | |
− | + | </div> | |
− | + | </div> | |
− | <syntaxhighlight lang="Javascript">IDRegistry.genItemID( | + | </div> |
− | Item.createItem( | + | </div> |
− | </div> </div> </div> </div> </div> </div> | + | </div> |
ID - уникальный идентефикатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry.
Для регистрации ID блока используется метод IDRegistry.genBlockID("строковый ID") - после вызова этой функции сгенерируется новый уникальный ID для блока, доступ к числовому значению которого может быть произведен как BlockID.<строковый ID>
Для регистрации ID предмета используется метод IDRegistry.genItemID("строковый ID") - после вызова этой функции сгенерируется новый уникальный ID для предмета, доступ к числовому значению которого может быть произведен как ItemID.<строковый ID>
Примеры:
<syntaxhighlight lang="Javascript">IDRegistry.genBlockID("testBlock"); // доступ BlockID.testBlock IDRegistry.genItemID("testItem"); // доступ ItemID.testItem</syntaxhighlight>
В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.
Текстуры блоков в ресурспаке располагаются по адресу res/terrain-atlas/
Текстуры предметов в ресурспаке располагаются по адресу res/items-opaque/
Текстуры брони в ресурспаке распологаются по адресу res/armor
После регистрации ID для блока, создается сам блок на этом ID. На одном ID может быть создано несколько вариаций блока, каждая из которых обладает своим именем и текстурой, разные вариации одного блока в мире будут иметь один ID, но разные значения metadata, подробнее об этом будет позднее. Для создания блоков используется модуль Block.
Метод Block.createBlock("строковый ID", [вариация1, вариация2, ...]) - создает блок и все его вариации на ранее зарегистрированном ID, если вариация 1, то просто создает данный блок.
Каждая вариация в массиве имеет формат
<syntaxhighlight lang="Javascript">{ name: "имя вариации", texture: [ ["название1", индекс1], // bottom ["название2", индекс2], // top ["название3", индекс3], // back ["название4", индекс4], // front ["название5", индекс5], // left ["название6", индекс6] // right ], inCreative: true/false //(добавлять ли данную вариацию блока в креатив) }</syntaxhighlight>
Если текстур указано меньше, чем 6, то последняя из них будет дублирована несколько раз, чтобы дополнить их кол-во до 6.
Пример:
<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>
Метод Block.createBlockWithRotation - принимает те же аргументы, что и Block.createBlock, но для каждой вариации блока создает 4 вариации, которые реализуют поворот, блок, созданный этим методом, автоматически будет ставиться с нужным поворотом.
После регистрации ID предмета, создается сам предмет на этом ID. Предметы могут быть разных типов: обычный, броня, еда и кидаемый, для каждого из них существует свой метод. Для создания предметов используется модуль Item. Каждый предмет имеет текстуру, которая задается в формате {name: "имя текстуры", meta: <номер текстуры>}, если номер текстуры 0, его можно не указывать.
Item.createItem("строковый ID", "имя предмета", текстура, параметры) - создает обычный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
<syntaxhighlight lang="Javascript">{ isTech: false, // если true, не добавляет предмет в креатив stack: 64 // размер стака } </syntaxhighlight>
Item.createFoodItem("строковый ID", "имя предмета", текстура, параметры) - создает съедобный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
<syntaxhighlight lang="Javascript">{ isTech: false,// если true, не добавляет предмет в креатив stack: 64, // размер стака food: 1 // восполнение здоровья едой }</syntaxhighlight>
Item.createThrowableItem("строковый ID", "имя предмета", текстура, параметры) - создает кидаемый предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
<syntaxhighlight lang="Javascript">{ isTech: false, // если true, не добавляет предмет в креатив stack: 64 // сколько предметов будет в одном стаке, максимум 64. }</syntaxhighlight>
IDRegistry.genItemID("throwableItem"); Item.createThrowableItem("throwableItem", "Throwable Item", { name: "throwable_item", meta: 0}, {})
Item.createArmorItem("строковый ID", "имя предмета", текстура, параметры) - создает предмет брони на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:
<syntaxhighlight lang="Javascript">{ isTech: false, // если true, не добавляет предмет в креатив armor: 1, // количество добавляемой брони в шкале защиты type: <обязательное значение>, // тип предмета "helmet"/"chestplate"/"leggings"/"boots" texture: <обязательное значение>, // текстура модели данной брони durability: 1 // прочность брони }</syntaxhighlight>
<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.createArmorItem("myChestplate", "Chestplate", {name: "chestplate"}, {type: "chestplate", armor: 6, durability: 216, texture: "armor/lay_1.png"}); // создаём нагрудник с ID myChestplate 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>
<syntaxhighlight lang="Javascript">IDRegistry.genItemID("testItem"); Item.createItem("testItem", "test item", {name: "stick", meta: 0}, {}); // создаем обычный предмет на ID testItem с текстурой палки и стандартными параметрами</syntaxhighlight>