<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://wiki.mineprogramming.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%9A%D1%80%D0%B5%D0%B3</id>
		<title>mineprogramming wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.mineprogramming.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%9A%D1%80%D0%B5%D0%B3"/>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/%D0%9A%D1%80%D0%B5%D0%B3"/>
		<updated>2026-04-28T16:55:13Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2_%D0%B8_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BE%D0%B2&amp;diff=2181</id>
		<title>InnerCore/Создание блоков и предметов</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2_%D0%B8_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BE%D0%B2&amp;diff=2181"/>
				<updated>2019-07-18T21:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Крег: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Регистрация ID ===&lt;br /&gt;
&lt;br /&gt;
ID - уникальный идентефикатор блока\предмета, задается строкой и натуральным числом, которое сопоставляется этой строке. Чтобы зарегистрировать ID, используется модуль IDRegistry.&lt;br /&gt;
&lt;br /&gt;
Для регистрации ID блока используется метод IDRegistry.genBlockID(&amp;quot;строковый ID&amp;quot;) - после вызова этой функции сгенерируется новый уникальный ID для блока, доступ к числовому значению которого может быть произведен как BlockID.&amp;lt;строковый ID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для регистрации ID предмета используется метод IDRegistry.genItemID(&amp;quot;строковый ID&amp;quot;) - после вызова этой функции сгенерируется новый уникальный ID для предмета, доступ к числовому значению которого может быть произведен как ItemID.&amp;lt;строковый ID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;IDRegistry.genBlockID(&amp;quot;testBlock&amp;quot;); // доступ BlockID.testBlock&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;testItem&amp;quot;); // доступ ItemID.testItem&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Текстуры ===&lt;br /&gt;
&lt;br /&gt;
В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.&lt;br /&gt;
&lt;br /&gt;
Текстуры блоков в ресурспаке располагаются по адресу images/terrain-atlas/&lt;br /&gt;
&lt;br /&gt;
Текстуры предметов&amp;amp;nbsp;в ресурспаке располагаются по адресу images/items-opaque/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Создание блоков ===&lt;br /&gt;
&lt;br /&gt;
После регистрации ID для блока, создается сам блок на этом ID. На одном ID может быть создано несколько вариаций блока, каждая из которых обладает своим именем и текстурой, разные вариации одного блока в мире будут иметь один ID, но разные значения metadata, подробнее об этом будет позднее. Для создания блоков используется модуль Block.&lt;br /&gt;
&lt;br /&gt;
Метод Block.createBlock(&amp;quot;строковый ID&amp;quot;, [вариация1, вариация2, ...]) - создает блок и все его вариации на ранее зарегистрированном ID, если вариация 1, то просто создает данный блок.&lt;br /&gt;
&lt;br /&gt;
Каждая вариация в массиве имеет формат&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
    name: &amp;quot;имя вариации&amp;quot;, &lt;br /&gt;
    texture: [&lt;br /&gt;
        [&amp;quot;название1&amp;quot;, индекс1], // низ&lt;br /&gt;
        [&amp;quot;название2&amp;quot;, индекс2], // вверх&lt;br /&gt;
        [&amp;quot;название3&amp;quot;, индекс3], // зад&lt;br /&gt;
        [&amp;quot;название4&amp;quot;, индекс4], // перед&lt;br /&gt;
        [&amp;quot;название5&amp;quot;, индекс5], // левая сторона&lt;br /&gt;
        [&amp;quot;название6&amp;quot;, индекс6]  // правая сторона&lt;br /&gt;
    ], &lt;br /&gt;
    inCreative: true/false //(добавлять ли данную вариацию блока в креатив)&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если текстур указано меньше, чем 6, то последняя из них будет дублирована несколько раз, чтобы дополнить их кол-во до 6.&lt;br /&gt;
&lt;br /&gt;
'''Пример''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;IDRegistry.genBlockID(&amp;quot;testBlock&amp;quot;); // регистрация&lt;br /&gt;
Block.createBlock(&amp;quot;testBlock&amp;quot;, [&lt;br /&gt;
     {name: &amp;quot;test block&amp;quot;, texture: [[&amp;quot;planks&amp;quot;, 0], [&amp;quot;planks&amp;quot;, 0], [&amp;quot;planks&amp;quot;, 0], [&amp;quot;planks&amp;quot;, 0], [&amp;quot;planks&amp;quot;, 0], [&amp;quot;planks&amp;quot;, 0]], inCreative: true}&lt;br /&gt;
]) // создание простого блока на ID &amp;quot;testBlock&amp;quot; с текстурой досок на всех сторонах, будет добавлен в креатив&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создание блоков с поворотом ====&lt;br /&gt;
&lt;br /&gt;
Метод Block.createBlockWithRotation -&amp;amp;nbsp;&amp;amp;nbsp;принимает те же аргументы, что и Block.createBlock, но для каждой вариации блока создает 4 вариации, которые реализуют поворот, блок, созданный этим методом, автоматически будет ставиться с нужным поворотом. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Создание предметов ===&lt;br /&gt;
&lt;br /&gt;
После регистрации ID предмета, создается сам предмет на этом ID. Предметы могут быть разных типов: обычный, броня, еда и кидаемый, для каждого из них существует свой метод. Для создания предметов используется модуль Item. Каждый предмет имеет текстуру, которая задается в формате {name: &amp;quot;имя текстуры&amp;quot;, meta: &amp;lt;номер текстуры&amp;gt;}, если номер текстуры 0, его можно не указывать.&lt;br /&gt;
&lt;br /&gt;
Item.createItem(&amp;quot;строковый ID&amp;quot;, &amp;quot;имя предмета&amp;quot;, текстура, параметры) - создает обычный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.&lt;br /&gt;
&lt;br /&gt;
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
     isTech: false, // если true, не добавляет предмет в креатив&lt;br /&gt;
     stack: 64 // размер стака&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создание еды ====&lt;br /&gt;
&lt;br /&gt;
Item.createFoodItem(&amp;quot;строковый ID&amp;quot;, &amp;quot;имя предмета&amp;quot;, текстура, параметры) - создает съедобный предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.&lt;br /&gt;
&lt;br /&gt;
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
     isTech: false,// если true, не добавляет предмет в креатив&lt;br /&gt;
     stack: 64, // размер стака&lt;br /&gt;
     food: 1 // восполнение здоровья едой&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создание кидаемого предмета ====&lt;br /&gt;
&lt;br /&gt;
Item.createThrowableItem(&amp;quot;строковый ID&amp;quot;, &amp;quot;имя предмета&amp;quot;, текстура, параметры) - создает кидаемый предмет на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.&lt;br /&gt;
&lt;br /&gt;
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
     isTech: false, // если true, не добавляет предмет в креатив&lt;br /&gt;
     stack: 64 // сколько предметов будет в одном стаке, максимум 64.&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Пример кидаемого предмета.&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;fck_mw_syntaxhighlight&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;//TODO&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Создание брони ====&lt;br /&gt;
&amp;lt;pre&amp;gt;Item.createArmorItem(&amp;amp;quot;строковый ID&amp;amp;quot;, &amp;amp;quot;имя предмета&amp;amp;quot;, текстура, параметры) - создает предмет брони на ранее зарегистрированном строковом ID, с данным именем, текстурой и параметрами.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры имеют формат, если вы не хотите изменять значения по-умолчанию, просто не пишите их:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
     isTech: false, // если true, не добавляет предмет в креатив&lt;br /&gt;
     armor: 1, // количество добавляемой брони в шкале защиты&lt;br /&gt;
     type: &amp;lt;обязательное значение&amp;gt;, // тип предмета &amp;quot;helmet&amp;quot;/&amp;quot;chestplate&amp;quot;/&amp;quot;leggings&amp;quot;/&amp;quot;boots&amp;quot;&lt;br /&gt;
     texture: &amp;lt;обязательное значение&amp;gt;, // текстура модели данной брони&lt;br /&gt;
     durability: 1 // прочность брони&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Пример брони ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;IDRegistry.genItemID(&amp;quot;helmet&amp;quot;);//создаем новый ID для шлема&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;chestplate&amp;quot;);//создаем новый ID для нагрудника&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;leggings&amp;quot;);//создаем новый ID для понож&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;boots&amp;quot;);//создаем новый ID для ботинок&lt;br /&gt;
&lt;br /&gt;
Item.createArmorItem(&amp;quot;helmet&amp;quot;, &amp;quot;Helmet&amp;quot;, {name: &amp;quot;helmet&amp;quot;}, {type: &amp;quot;helmet&amp;quot;, armor: 2, durability: 149, texture: &amp;quot;armor/lay_1.png&amp;quot;});//применяем наш ID helmet, добавляем имя Helmet, задаем текстуру предмета и объект описания.&lt;br /&gt;
Item.createArmorItem(&amp;quot;chestplate&amp;quot;, &amp;quot;Chestplate&amp;quot;, {name: &amp;quot;chestplate&amp;quot;}, {type: &amp;quot;chestplate&amp;quot;, armor: 6, durability: 216, texture: &amp;quot;armor/lay_1.png&amp;quot;});//применяем наш ID chestplate, добавляем имя ChestPlate, задаем текстуру предмета и объект описания.&lt;br /&gt;
Item.createArmorItem(&amp;quot;leggings&amp;quot;, &amp;quot;Leggings&amp;quot;, {name: &amp;quot;leggings&amp;quot;}, {type: &amp;quot;leggings&amp;quot;, armor: 5, durability: 203, texture: &amp;quot;armor/lay_2.png&amp;quot;});//применяем наш ID leggins, добавляем имя Leggins, задаем текстуру предмета и объект описания.&lt;br /&gt;
Item.createArmorItem(&amp;quot;boots&amp;quot;, &amp;quot;Boots&amp;quot;, {name: &amp;quot;boots&amp;quot;}, {type: &amp;quot;boots&amp;quot;, armor: 2, durability: 176, texture: &amp;quot;armor/lay_1.png&amp;quot;});//применяем наш ID boots, добавляем имя Boots, задаем текстуру предмета и объект описания.&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Пример предмета ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;IDRegistry.genItemID(&amp;quot;testItem&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;testItem&amp;quot;, &amp;quot;test item&amp;quot;, {name: &amp;quot;stick&amp;quot;, meta: 0}, {}); // создаем обычный предмет на ID testItem с текстурой палки и стандартными параметрами&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Крег</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D0%BD%D0%B4%D0%B5%D1%80_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2&amp;diff=2180</id>
		<title>InnerCore/Рендер блоков</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D0%BD%D0%B4%D0%B5%D1%80_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2&amp;diff=2180"/>
				<updated>2019-07-18T21:23:01Z</updated>
		
		<summary type="html">&lt;p&gt;Крег: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
= Введение в рендер блоков =&lt;br /&gt;
&lt;br /&gt;
Кроме формы из одного параллелепипеда, которой обладает большинство блоков, Inner Core позволяет задать им почти любой внешний вид.&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Формат описания текстуры и ее наложение на блок ==&lt;br /&gt;
&lt;br /&gt;
Хоть наложение текстур и было описано ранее, оно имеет непосредственное отношение к дальнейшему описанию.&lt;br /&gt;
&lt;br /&gt;
Ссылка на каждую отдельную текстуру блока состоит из двух элементов - ее названия и индекса, напомню, что название и индекс задаются для файла текстуры в ресурсах в формате &amp;quot;имя_индекс.png&amp;quot;, где имя - произвольная строка, а индекс - неотрицательное целое число.&lt;br /&gt;
&lt;br /&gt;
Текстура целого блока может быть описана либо двумя параметрами - именем и индексом текстуры, в таком случае весь блок будет иметь одну и ту же текстуру, либо массивом текстур, формат которого приведен ниже.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;[&lt;br /&gt;
    [&amp;quot;название1&amp;quot;, индекс1], // низ&lt;br /&gt;
    [&amp;quot;название2&amp;quot;, индекс2], // вверх&lt;br /&gt;
    [&amp;quot;название3&amp;quot;, индекс3], // зад&lt;br /&gt;
    [&amp;quot;название4&amp;quot;, индекс4], // перед&lt;br /&gt;
    [&amp;quot;название5&amp;quot;, индекс5], // левая сторона&lt;br /&gt;
    [&amp;quot;название6&amp;quot;, индекс6]  // правая сторона&lt;br /&gt;
]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Каждый из элементов массива отвечает за одну текстуру, если элементов меньше 6, то текстуры недостающих сторон скопируют последний элемент массива.&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Статичная модель блока ==&lt;br /&gt;
&lt;br /&gt;
Статичная модель является самым простым типом рендера блока и представляет из себя набор различных элементов внешнего вида блока, которые могут быть отрисованы на произвольных координатах. Внешний вид статичной модели не зависит от того, что ее окружает.&lt;br /&gt;
&lt;br /&gt;
Основной, хоть и не единственный элемент модели - бокс - является текстурированным параллелепипедом с заданными начальными и конечными координатами x1, y1, z1, x2, y2, z2 в пространстве конкретного блока (0 означает начало блока, 1 - конец по данной координате, координаты могут выходить за пределы 0-1).&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Пустая статичная модель создается с помощью конструктора ''new BlockRenderer.Model()'' и обладает следующими методами:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;model.addBox(x1, y1, z1, x2, y2, z2, id, data) - добавляет бокс с текстурой блока с данными id, data&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;model.addBox(x1, y1, z1, x2, y2, z2, &amp;quot;name&amp;quot;, index) - добавляет бокс с текстурой с именем name и индексом index на всех сторонах&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;model.addBox(x1, y1, z1, x2, y2, z2, [… texture set ...]) - добавляет бокс с заданным массивом текстур (формат см. выше)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;model.addMesh(mesh) - добавляет в модель объект RenderMesh - произвольную полигональную 3D модель, о которых будет рассказано позднее&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Существуют так же другие конструкторы, упрощающие быстрое создание простых моделей:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new BlockRenderer.Model(mesh) - создает модель, которая содержит в себе данный объект RenderMesh&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, [… texture set ...]) - создает модель, которая является одним боксом с данным массивом текстур&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new BlockRenderer.Model([… texture set ...]) - создает модель, которая является полным блоком с данным массивом текстур&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, &amp;quot;name&amp;quot;, index) - создает модель, которая является одним боксом с данной текстурой на всех сторонах&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new BlockRenderer.Model(&amp;quot;name&amp;quot;, index) - создает модель, которая является полным блоком с данной текстурой на всех сторонах&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new BlockRenderer.Model(x1, y1, z1, x2, y2, z2, id, data) - создает модель, которая является одним боксом, копирующим текстуру из блока с данными id, data&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new BlockRenderer.Model(id, data) -&amp;amp;nbsp; создает модель, которая является полным блоком, копирующим текстуру из блока с данными id, data&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Основы ICRender ==&lt;br /&gt;
&lt;br /&gt;
ICRender является системой, позволяющей заранее задать блоку внешний вид в зависимости от внешних условий. Основным объектом для рендера блоков является модель ICRender, которая является набором статических моделей и условий, при которых они будут отрисовываться.&lt;br /&gt;
&lt;br /&gt;
Для создания модели ICRender используется конструктор ''new ICRender.Model(), ''для добавления статичной модели в модель ICRender используется метод ''addEntry(model)'':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;var staticModel = new BlockRenderer.Model(); // модификация модели staticModel &lt;br /&gt;
var icRenderModel = new ICRender.Model(); &lt;br /&gt;
icRenderModel.addEntry(staticModel); &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы установить блоку модель ICRender используется метод&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin-top:0cm; margin-right:3.2pt; margin-bottom:7.85pt; margin-left:0cm; text-align:justify&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;text-justify:inter-ideograph&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''BlockRenderer.setStaticICRender(id, data, model) - ''где id и data - целевой блок (если надо установить для любого значения data, вместо него нужно передать -1), а model - модель ICRender.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;BlockRenderer.setStaticICRender(BlockID.testRenderBlock, -1, icRenderModel); // после этого требуемый блок будет иметь созданную ранее модель&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Маппинг рендера'' ==&lt;br /&gt;
&lt;br /&gt;
Кроме обычной установки ICRender блокам, им можно так же включить режим ''маппинга рендера''. Он позволяет устанавливать любые модели ICRender конкретным блокам в мире, для которых маппинг включен, не затрагивая остальные блоки.&lt;br /&gt;
&lt;br /&gt;
Для включения маппинга используется метод ''BlockRenderer.enableCoordMapping(id, data, model) - ''где id и data - целевой блок, а model - модель ICRender, которая будет использована для данного блока по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Без дополнительных действий такой вызов ничем не будет отличаться по действию от вызова ''BlockRenderer.setStaticICRender. ''Для маппинга используются следующие методы:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;BlockRenderer.mapAtCoords(x, y, z, model) - устанавливает данную модель ICRender на данные координаты, любой блок, для которого включен маппинг и который стоит на этих координатах, будет иметь эту модель.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;BlockRender.unmapAtCoords(x, y, z) - отменяет действие предыдущей функции на данных координатах, возвращая стандартную модель любого блока.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;Важно отметить:&amp;lt;/u&amp;gt; ''&amp;amp;nbsp;''&lt;br /&gt;
&lt;br /&gt;
#Все установленные на координатах модели очищаются при выходе из мира. &lt;br /&gt;
#Наличие блока никак не связано с тем, что на данных координатах установлена модель, это значит, что если сломать блок, подверженный маппингу, у которого была изменена модель и поставить на его место другой блок, тоже подверженный маппингу, то модель сохранится. Потому важно следить, на какой именно блок вызывается mapAtCoords и обязательно вызывать unmapAtCoords при уничтожении блока. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Крег</name></author>	</entry>

	</feed>