<?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=2A05%3A480%3A0%3A9B57%3A0%3A0%3A0%3A2</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=2A05%3A480%3A0%3A9B57%3A0%3A0%3A0%3A2"/>
		<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/2A05:480:0:9B57:0:0:0:2"/>
		<updated>2026-04-30T11:41:26Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=Addon&amp;diff=2549</id>
		<title>Addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=Addon&amp;diff=2549"/>
				<updated>2020-12-25T06:04:25Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;'''''&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;TẠO RA THỰC TẾ TẬP THỂ XYZ QUA ADDON MINECRAFT&amp;amp;nbsp;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;'''''&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;Entity.spawnAddon (crds.x, crds.y, crds.z, &amp;quot;addon name: id thực thể&amp;quot;);&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;: &amp;lt;/font&amp;gt;'''''&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;Áp dụng cho lõi bên trong&amp;amp;nbsp;&amp;lt;/font&amp;gt;'''''&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;'''''&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;Ko thể cho chân trời&amp;amp;nbsp;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;'''''&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=Addon&amp;diff=2548</id>
		<title>Addon</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=Addon&amp;diff=2548"/>
				<updated>2020-12-25T05:32:01Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Test paper addon inner core&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;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;'''''&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;TẠO RA THỰC TẾ TẬP THỂ XYZ QUA ADDON MINECRAFT&amp;amp;nbsp;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;'''''&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;Entity.spawnAddon (crds.x, crds.y, crds.z, &amp;quot;addon tên: id thực thể&amp;quot;);&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;:''​​​​​'''​​​​'''​​​''​​​​​​'''''Áp dụng cho inner core&amp;amp;nbsp;'''''&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;&amp;lt;font style=&amp;quot;vertical-align: inherit;&amp;quot;&amp;gt;'''''Ko thể cho horizon&amp;amp;nbsp;'''''&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F_%D0%BC%D0%BE%D0%B4%D0%BE%D0%BC_audit&amp;diff=2525</id>
		<title>Как пользоваться модом audit</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F_%D0%BC%D0%BE%D0%B4%D0%BE%D0%BC_audit&amp;diff=2525"/>
				<updated>2020-10-04T12:36:26Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Новая страница: «&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;&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;…»&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;&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
= Начало работы =&lt;br /&gt;
&lt;br /&gt;
Прежде всего, вам потребуется какая-либо среда для просмотра баз данных. Так как audit использует SQLite, я рекомендую&amp;amp;nbsp;[https://sqlitebrowser.org/dl/ DB Browser for SQLite].&lt;br /&gt;
&lt;br /&gt;
Кроме того, вам пригодятся файлы audit.db, user.db,&amp;amp;nbsp;audit.db-shm и&amp;amp;nbsp;audit.db-wal (если присутствуют). Если сервер запущен на удаленной машине, вам стоит скопировать&amp;amp;nbsp;эти файлы на ваш компьютер.&lt;br /&gt;
&lt;br /&gt;
Так же audit должен быть включен. Для этого проверьте, что в файле конфигурации (custom.yaml) следующие значения установлены как true.&lt;br /&gt;
&amp;lt;pre&amp;gt;mod-enabled: true&lt;br /&gt;
mod-default-enabled: true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;mods:&lt;br /&gt;
  Audit:&lt;br /&gt;
    enabled: true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Имена файлов баз данных могут отличаться в зависимости от установленных вами в файле конфигурации.&lt;br /&gt;
&lt;br /&gt;
= Поля баз данных =&lt;br /&gt;
&lt;br /&gt;
Мы будем рассматривать базы данных audit.db и user.db. Чтобы открыть их, просто нажмите кнопку Open Database (Открыть базу данных) и выберите нужный файл. Также можно просто дважды нажать левой кнопкой мыши по файлу .db.&amp;amp;nbsp;¯\_(ツ)_/¯&lt;br /&gt;
&lt;br /&gt;
== user.db ==&lt;br /&gt;
&lt;br /&gt;
Эта база данных содержит три таблицы.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== user ===&lt;br /&gt;
&lt;br /&gt;
Таблица со всеми когда-либо входившими игроками. Содержит три поля. К этой таблице мы будем обращаться каждый раз, когда нам потребуется связать uuid во всех остальных таблицах с конкретным человеком&lt;br /&gt;
&lt;br /&gt;
uuid - Универсальный уникальный идентификатор. Используется внутри баз данных, к нему мы будем обращаться почти всегда. Хранится в бинарной форме, никак не расшифровывается, всегда имеет длину 16 байт.&lt;br /&gt;
&lt;br /&gt;
xuid - Уникальный идентификатор аккаунта xbox. Используется для идентификации игрока в whitelist и в моде ban. Всегда имеет длину в 16 десятичных цифр.&lt;br /&gt;
&lt;br /&gt;
name - Читабельный никнейм игрока. Именно он отображается в игре.&lt;br /&gt;
&lt;br /&gt;
=== login ===&lt;br /&gt;
&lt;br /&gt;
Таблица с логами входов игроков. Имеет три поля.&lt;br /&gt;
&lt;br /&gt;
uuid - Тот самый идентификатор.&lt;br /&gt;
&lt;br /&gt;
address - Запись&amp;amp;nbsp;ip адреса и порта, с которого был вход. Хранится в форме 255.255.255.255|65535.&lt;br /&gt;
&lt;br /&gt;
time - Дата и время входа игрока. В формате&amp;amp;nbsp;2020-09-18 19:51:34.771&lt;br /&gt;
&lt;br /&gt;
=== logout ===&lt;br /&gt;
&lt;br /&gt;
Таблица с логами выходов игроков. Имеет всего два поля.&lt;br /&gt;
&lt;br /&gt;
uuid - Без комментариев&lt;br /&gt;
&lt;br /&gt;
time - Дата и время выхода игрока.&lt;br /&gt;
&lt;br /&gt;
Больше ничего интересного в этой базе данных нет, перейдем к audit.db.&lt;br /&gt;
&lt;br /&gt;
== audit.db ==&lt;br /&gt;
&lt;br /&gt;
Содержит три таблицы.&lt;br /&gt;
&lt;br /&gt;
=== audit_action ===&lt;br /&gt;
&lt;br /&gt;
Содержит 10 полей. Сюда записывается содержание пакета&amp;amp;nbsp;PlayerActionPacket.&lt;br /&gt;
&lt;br /&gt;
time - Дата действия. В формате&amp;amp;nbsp;2020-09-28 17:25:23.548&lt;br /&gt;
&lt;br /&gt;
session - uuid сессии игрока. В бинарном формате, всегда длиной 16 байтов.&lt;br /&gt;
&lt;br /&gt;
player - uuid игрока. Все так же блоб длиной 16 байтов.&lt;br /&gt;
&lt;br /&gt;
dimension - Измерение, в котором произошло событие.&amp;amp;nbsp;&amp;lt;br/&amp;gt; 0 - Верхний мир&amp;lt;br/&amp;gt; 1 - Нижний мир (ад)&amp;lt;br/&amp;gt; 2 - Край (The end)&lt;br /&gt;
&lt;br /&gt;
blocked - Нет информации&lt;br /&gt;
&lt;br /&gt;
type - Тип события. Выражается числом от 0 до 25, означает код события. Расшифровывается по таблице.&lt;br /&gt;
&lt;br /&gt;
x - Координата по x места в мире, где произошло событие&lt;br /&gt;
&lt;br /&gt;
y - Координата по y.&lt;br /&gt;
&lt;br /&gt;
z - Координата по оси z.&lt;br /&gt;
&lt;br /&gt;
face - Вероятно направление события, нет информации. Предположительно число от&amp;amp;nbsp;-1 до 99.&lt;br /&gt;
&lt;br /&gt;
=== audit_item_frame ===&lt;br /&gt;
&lt;br /&gt;
Структура аналогична audit_action за исключением того, что отсутствуют поля type и face. Записывается содержание пакета&amp;amp;nbsp;ItemFrameDropItemPacket. Скорее всего хранит данные об изъятиях предметов из рамки.&lt;br /&gt;
&lt;br /&gt;
=== audit_transaction ===&lt;br /&gt;
&lt;br /&gt;
Структура аналогична вышеприведенным таблицам за исключением того, что содержит только поля time, session, player, dimension и blocked. Кроме них есть уникальное поле data, которое хранит бинарные данные действия с инвентарем. Хранит пакеты&amp;amp;nbsp;InventoryTransactionPacket.&amp;amp;nbsp; Код пакета&amp;amp;nbsp;0x1e. Документацию&amp;amp;nbsp;к пакету можно найти в [https://github.com/NiclasOlofsson/MiNET/blob/master/src/MiNET/MiNET/Net/MCPE%20Protocol%20Documentation.md репозитории MiNET]&lt;br /&gt;
&lt;br /&gt;
== Расшифровка Type в audit_action ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Код&lt;br /&gt;
! Событие&lt;br /&gt;
! Комментарий&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| ACTION_START_BREAK&lt;br /&gt;
| Начат процесс копания блока&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| ACTION_ABORT_BREAK&lt;br /&gt;
| Процесс копания блока прерван&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| ACTION_STOP_BREAK&lt;br /&gt;
| Блок выкопан&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| ACTION_GET_UPDATED_BLOCK&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| ACTION_DROP_ITEM&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| ACTION_START_SLEEPING&lt;br /&gt;
| Игрок начал спать&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| ACTION_STOP_SLEEPING&lt;br /&gt;
| Игрок перестал спать&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| ACTION_RESPAWN&lt;br /&gt;
| Игрок возродился&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| ACTION_JUMP&lt;br /&gt;
| Игрок прыгнул&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| ACTION_START_SPRINT&lt;br /&gt;
| Игрок перешел на бег&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| ACTION_STOP_SPRINT&lt;br /&gt;
| Игрок прекратил бег&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| ACTION_START_SNEAK&lt;br /&gt;
| Игрок начал красться&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| ACTION_STOP_SNEAK&lt;br /&gt;
| Игрок прекратил красться&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| ACTION_DIMENSION_CHANGE_REQUEST&lt;br /&gt;
| Отправляется при смерти в другом измерении&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| ACTION_DIMENSION_CHANGE_ACK&lt;br /&gt;
| Отправляется при возрождении в другом измерении, чтобы сообщить серверу, что игрок возродился&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| ACTION_START_GLIDE&lt;br /&gt;
| Игрок начал скользить&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| ACTION_STOP_GLIDE&lt;br /&gt;
| Игрок прекратил скользить&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| ACTION_BUILD_DENIED&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| ACTION_CONTINUE_BREAK&lt;br /&gt;
| Игрок продолжил ломать&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| ACTION_CHANGE_SKIN&lt;br /&gt;
| Игрок изменил скин&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| ACTION_SET_ENCHANTMENT_SEED&lt;br /&gt;
| Не используется&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| ACTION_START_SWIMMING&lt;br /&gt;
| Игрок начал плавать&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| ACTION_STOP_SWIMMING&lt;br /&gt;
| Игрок перестал плавать&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| ACTION_START_SPIN_ATTACK&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| ACTION_STOP_SPIN_ATTACK&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| ACTION_INTERACT_BLOCK&lt;br /&gt;
| Игрок взаимодействует с блоком&lt;br /&gt;
|}&lt;br /&gt;
&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; &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;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=Element_Zero&amp;diff=2523</id>
		<title>Element Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=Element_Zero&amp;diff=2523"/>
				<updated>2020-10-04T10:47:52Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
[https://github.com/Element-0/ElementZero Репозиторий Element Zero]&lt;br /&gt;
&lt;br /&gt;
[[Установка_Element_Zero_в_Windows|Установка&amp;amp;nbsp;Element Zero в Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Установка_Element_Zero_в_Docker.|Установка Element Zero в Docker.]]&lt;br /&gt;
&lt;br /&gt;
[[Как_пользоваться_модом_audit]]&lt;br /&gt;
&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Element_Zero_%D0%B2_Docker.&amp;diff=2521</id>
		<title>Установка Element Zero в Docker.</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Element_Zero_%D0%B2_Docker.&amp;diff=2521"/>
				<updated>2020-10-03T12:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Новая страница: «&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Для начала убедитесь, что ваша система готова для установки ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;0. Убедитесь, что ваш user id равен 1000. Из-за ограничений Docker user id должен совпадать. В дистрибутивах, основанных на Debian можно проверить это командой&amp;amp;nbsp;id -u &amp;lt;username&amp;gt;.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;0.1. Убедитесь, что у вас установлен Docker. Инструкция по установке Docker по линукс [https://docs.docker.com/engine/install/ находится здесь]&amp;lt;/div&amp;gt; &lt;br /&gt;
== Установка ==&lt;br /&gt;
&amp;lt;div&amp;gt;1. Скачайте [https://www.minecraft.net/en-us/download/server/bedrock официальное ядро сервера] (обязательно версию для Windows).&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;2. Распакуйте его в любом месте.&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;3. Скачайте Element Zero со&amp;amp;nbsp;[https://github.com/codehz/wine-bdlauncher/releases/latest страницы релизов].&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;4. Распакуйте его в том же месте.&amp;lt;/div&amp;gt; &lt;br /&gt;
== Запуск ==&lt;br /&gt;
&lt;br /&gt;
Для запуска существует несколько способов. Простейший способ запустить сервер - сделать это с помощью Docker CLI. Если вы испытываете подобную потребность, вы можете сделать свой собственный Dockerfile.&lt;br /&gt;
&lt;br /&gt;
=== Docker cli ===&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить сервер, введите команду&lt;br /&gt;
&amp;lt;pre&amp;gt;docker run --rm -ti --name elementzero -p 19132:19132/udp -v &amp;lt;bds folder&amp;gt;:/data codehz/wine:bdlauncher-runtime&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;Не забудьте заменить&amp;amp;nbsp;&amp;lt;bds folder&amp;gt; на свой адрес папки, содержащей официальное ядро и Element Zero.&amp;lt;br/&amp;gt; Если вы хотите использовать docker restart element zero, то удалите флаг --rm.&amp;amp;nbsp;&amp;lt;br/&amp;gt; Не забывайте, что перезапускать можно только остановленный сервер.&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;Никогда не используйте docker stop и что-то подобное, поскольку сервер не сохранит мир должным образом и это может привести к разрушению сохранения.&amp;amp;nbsp;&amp;lt;br/&amp;gt; Каждый раз, когда хотите остановить сервер, используйте docker attach elementzero и после этого вводите stop в консоли сервера.&amp;lt;/div&amp;gt; &amp;lt;div&amp;gt;Чтобы отсоединиться от контейнера используйте сочетание клавиш Ctrl+P, а затем Ctrl+Q.&amp;amp;nbsp;&amp;lt;br/&amp;gt; Если вы хотите запускать контейнер в открепленном состоянии, замените флаг -ti на -tid.&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Docker compose ===&lt;br /&gt;
&amp;lt;div&amp;gt;Используйте&amp;amp;nbsp; &amp;lt;pre&amp;gt;version: &amp;quot;2&amp;quot;&lt;br /&gt;
services:&lt;br /&gt;
  bedrockmod:&lt;br /&gt;
    image: codehz/wine:bdlauncher-runtime&lt;br /&gt;
    container_name: bedrockmod&lt;br /&gt;
    volumes:&lt;br /&gt;
      - &amp;lt;bds folder&amp;gt;:/data&lt;br /&gt;
    network_mode: host&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    stdin_open: true&lt;br /&gt;
    tty: true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
Q: Зачем использовать volime вместо упаковки всего этого в образ?&amp;lt;br/&amp;gt; A: Потому что файлы конфигов и данных сервера изменчивы и не могут быть просто смонтированы. Но если вы действительно хотите этого и понимаете, что делаете, просто создайте свой dockerfile.&lt;br /&gt;
&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;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Element_Zero_%D0%B2_Windows&amp;diff=2520</id>
		<title>Установка Element Zero в Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Element_Zero_%D0%B2_Windows&amp;diff=2520"/>
				<updated>2020-10-03T11:47:50Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;1. Скачайте [https://www.minecraft.net/en-us/download/server/bedrock ванильное ядро]&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;2. Распакуйте ядро в отдельную папку&amp;lt;br/&amp;gt; 3. Скачайте Element Zero (ElementZero-*-win64.zip) со [https://github.com/codehz/wine-bdlauncher/releases/latest страницы релизов]&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;4. Распакуйте Element Zero в ту же папку. Файлы *_mod.exe и&amp;amp;nbsp;bedrock_server.exe должны находиться в одной папке.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;5. Запустите файл&amp;amp;nbsp;bedrock_server_mod.exe.&amp;lt;br/&amp;gt; 6. В случае возникновения ошибки отсутствующих dll файлов, [https://aka.ms/vs/16/release/VC_redist.x64.exe скачайте оные и установите].&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=Element_Zero&amp;diff=2519</id>
		<title>Element Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=Element_Zero&amp;diff=2519"/>
				<updated>2020-10-03T11:33:24Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;
[https://github.com/Element-0/ElementZero Репозиторий Element Zero]&lt;br /&gt;
&lt;br /&gt;
[[Установка_Element_Zero_в_Windows|Установка&amp;amp;nbsp;Element Zero в Windows]].&lt;br /&gt;
&lt;br /&gt;
[[Установка_Element_Zero_в_Docker.|Установка Element Zero в Docker.]]&lt;br /&gt;
&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; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Element_Zero_%D0%B2_Windows&amp;diff=2517</id>
		<title>Установка Element Zero в Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Element_Zero_%D0%B2_Windows&amp;diff=2517"/>
				<updated>2020-10-03T11:32:28Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Новая страница: «&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;1. Скачайте [https://www.minecraft.net/en-us/download/server/bedrock ванильное ядр…»&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;1. Скачайте [https://www.minecraft.net/en-us/download/server/bedrock ванильное ядро]&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;2. Распакуйте ядро в отдельную папку&amp;lt;br/&amp;gt; 3. Скачайте Element Zero (ElementZero-*-win64.zip) со [https://github.com/Element-0/ElementZero/releases/tag/v0.1.0-6 страницы релизов]&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;4. Распакуйте Element Zero в ту же папку. Файлы *_mod.exe и&amp;amp;nbsp;bedrock_server.exe должны находиться в одной папке.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;5. Запустите файл&amp;amp;nbsp;bedrock_server_mod.exe.&amp;lt;br/&amp;gt; 6. В случае возникновения ошибки отсутствующих dll файлов, [https://aka.ms/vs/16/release/VC_redist.x64.exe скачайте оные и установите].&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=Element_Zero&amp;diff=2516</id>
		<title>Element Zero</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=Element_Zero&amp;diff=2516"/>
				<updated>2020-10-03T11:21:47Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
[https://github.com/Element-0/ElementZero Репозиторий Element Zero]&lt;br /&gt;
&lt;br /&gt;
[[Установка_Element_Zero_в_Windows|Установка&amp;amp;nbsp;Element Zero в Windows]].&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=2514</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=2514"/>
				<updated>2020-10-03T11:14:46Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;Mineprogramming Wiki - уникальный проект на основе [https://www.mineprogramming.org/ mineprogramming ], на котором собрано все, что нужно для программирования в среде Minecraft. Здесь вы сможете найти информацию о таких языках и технологиях, как [[InnerCore|InnerCore ]], [[ModPE|ModPE ]], [[CoreEngine|CoreEngine ]] , [[PocketMine|PocketMine ]], [[Forge|Forge ]], [[Minecraft_add-ons|Minecraft add-ons ]] и многим другим. &lt;br /&gt;
[https://www.mineprogramming.org/ Mineprogramming ]- еще более уникальный проект, посвященный программированию в Майнкрафте, при чем если на wiki вы найдете информацию по конкретным языкам и технологиям, то на&amp;amp;nbsp;[https://www.mineprogramming.org/ Mineprogramming ]расположены наши программы для создания модов, наши моды, а так же различные интересные статьи, посвященные программированию в Майнкрафте!&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;&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Технологии Minecraft ==&lt;br /&gt;
&lt;br /&gt;
*[[Element_Zero|Element Zero]] - революционный мод над Vanilla Bedrock Dedicated Server ядром. Позволяет использовать плагины, Scripting API и имеет расширенные возможности администрирования. &lt;br /&gt;
*[[Horizon|Horizon ]]- универсальная платформа для запуска мобильных игр с модами. &lt;br /&gt;
*[[InnerCore|InnerCore ]] - революционный загрузчик модов для MinecraftPocket Edition. Имеет схожий с [[CoreEngine|CoreEngine ]]API &lt;br /&gt;
*[[Minecraft_add-ons|Minecraft add-ons ]]- официальное API для моддинга Minecraft PE. &lt;br /&gt;
*[[Minecraft_Script_Engine|Minecraft Script Engine]] - новый движок от [https://mojang.com/ Mojang], позволяющий создавать дополнения к игре без установки вспомагательного программного обеспечения. &lt;br /&gt;
*[[ModPE|ModPE ]]- простейшее линейное API моддинга MCPE. Поддерживает создание предметов и блоков, работу с мобами, окружением, игроком. &lt;br /&gt;
*[[CoreEngine|CoreEngine ]]- движок, существенно расширяющий возможности [[ModPE|ModPE ]]. Может создавать интерфейс, контейнеры, обновляемые обьекты, сжимает блоки в мнимые id. &lt;br /&gt;
*[[Forge|Forge ]]- открытое API для моддинга Minecraft Java Edition. &lt;br /&gt;
*[[Командные_блоки|Командные блоки ]]- блоки-терминалы, работающие от редстоуна. Простейший способ запрограммировать что-либо в Minecraft. &lt;br /&gt;
*[[PocketMine|PocketMine ]]- серверное ядро для Minecraft PE. . Является основой для большинства современных серверных движков на ПЕ, сам по себе устарел и не обновляется. &lt;br /&gt;
*[[Nukkit|Nukkit ]] - серверное ядро для Minecraft PE, разработанное на Java. &lt;br /&gt;
*[[Bukkit|Bukkit ]]- серверное ядро для Minecraft PC. Является основой для большинства современных серверных движков на ПК, сам по себе устарел и не обновляется. &lt;br /&gt;
*[[Vanillia|Vanilla ]]- официальное серверное ядро Minecraft PC. &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Програмное обеспечение ==&lt;br /&gt;
&lt;br /&gt;
*[[NIDE|NIDE ]]- интегрированная среда разработки для разработки модов под Inner Core, Core Engine и ModPE &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Теория и практика программирования в Minecraft ==&lt;br /&gt;
&lt;br /&gt;
*[[ID_блоков_и_предметов|ID блоков и предметов]] &lt;br /&gt;
*[[Форматирование_текста|Форматирование текста в чате]] &lt;br /&gt;
*[https://minecraft-ru.gamepedia.com/Цикл_дня_и_ночи Время] &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/VanillaRecipe&amp;diff=2510</id>
		<title>InnerCore/Libs/VanillaRecipe</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/VanillaRecipe&amp;diff=2510"/>
				<updated>2020-09-28T12:08:24Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Установка библиотеки ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Версия&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Ссылка на утановку&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;color:#e74c3c;&amp;quot;&amp;gt;nil&amp;lt;/span&amp;gt;&lt;br /&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;h3&amp;gt;Документация&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;В настоящий момент документации нет&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/VanillaRecipe&amp;diff=2509</id>
		<title>InnerCore/Libs/VanillaRecipe</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/VanillaRecipe&amp;diff=2509"/>
				<updated>2020-09-28T12:03:01Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Новая страница: « === Установка библиотеки ===  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot; |- | style=&amp;quot;text-align: center;&amp;quot; | Верси…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Установка библиотеки ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Версия&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Ссылка на утановку&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;color:#e74c3c;&amp;quot;&amp;gt;nil&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Документация ===&lt;br /&gt;
&lt;br /&gt;
В настоящий момент документации нет&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<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=2504</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=2504"/>
				<updated>2020-09-17T20:02:21Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Текстуры ===&lt;br /&gt;
&lt;br /&gt;
В ресурсах мода текстуры блоков и предметов задаются в определенном формате: каждая текстура должна быть в формате .png и имеет имя и номер, название любой текстуры выглядит так: имя_номер.png и никак иначе. Номера текстур с одним именем должны идти последовательно и начинаться с 0.&lt;br /&gt;
&lt;br /&gt;
Текстуры блоков в ресурспаке располагаются по адресу res/terrain-atlas/&lt;br /&gt;
&lt;br /&gt;
Текстуры предметов&amp;amp;nbsp;в ресурспаке располагаются по адресу res/items-opaque/&lt;br /&gt;
&lt;br /&gt;
Текстуры брони в ресурспаке распологаются по адресу res/armor&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;&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;amp;nbsp;&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;
После регистрации 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], // bottom&lt;br /&gt;
        [&amp;quot;название2&amp;quot;, индекс2], // top&lt;br /&gt;
        [&amp;quot;название3&amp;quot;, индекс3], // back&lt;br /&gt;
        [&amp;quot;название4&amp;quot;, индекс4], // front&lt;br /&gt;
        [&amp;quot;название5&amp;quot;, индекс5], // left&lt;br /&gt;
        [&amp;quot;название6&amp;quot;, индекс6]  // right&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; &amp;lt;/div&amp;gt; &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;
&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
==== Пример кидаемого предмета. ====&lt;br /&gt;
&amp;lt;pre&amp;gt;IDRegistry.genItemID(&amp;quot;throwableItem&amp;quot;);&amp;amp;nbsp;&lt;br /&gt;
Item.createThrowableItem(&amp;quot;throwableItem&amp;quot;, &amp;quot;Throwable Item&amp;quot;, { name: &amp;quot;throwable_item&amp;quot;, meta: 0}, {})&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&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;
&lt;br /&gt;
&amp;amp;nbsp;&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;
&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0&amp;diff=2502</id>
		<title>InnerCore/Дополнительные данные предмета</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%B0&amp;diff=2502"/>
				<updated>2020-09-15T10:11:56Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;span style=&amp;quot;font-size:18.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;Работа с дополнительными данными предметов&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Кроме id, кол-ва и data предмет может иметь еще и дополнительные данные, такие как зачарования, измененное имя и прочее. Далее будет описан интерфейс для работы с ними.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&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;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== &amp;lt;span style=&amp;quot;font-size:large;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;Доступ к дополнительным&amp;amp;nbsp;данным&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Методы Inner Core отдают предметы в виде объектов, содержащих 3 поля - id, count и data, описывающие соответствующие параметры предметов. В дополнение к ним может существовать (только в случае, если предмет имеет доп. данные) поле extra, которое содержит в себе интерфейс для доступа к дополнительным данным предмета&amp;lt;ref&amp;gt;На момент версии 1.1.1.X некоторые методы не поддерживают этот 4 параметр, для получения полностью рабочих методов можно использовать ModAPI.requireGlobal('имя метода')&amp;lt;/ref&amp;gt;.&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Важно:&amp;amp;nbsp;'''''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Объект предмета, изменение основных параметров которого поведет изменение реального предмета (например, предметы, полученные из контейнера или в каллбеках брони) обладает таким же качеством при изменении доп. данных (т.е. их изменения изменят доп. данные реального предмета).&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;И наоборот, объект предмета, который не привязан к реальному предмету (большая часть методов работы с инвентарем, к примеру Player.getCarriedItem()) при изменении доп. данных не изменит сам предмет, потому измененные или новые доп. данные для их применения передаются после параметров id, count, data в устанавливающие методы&amp;lt;font color=&amp;quot;#000000&amp;quot; face=&amp;quot;Calibri, sans-serif&amp;quot;&amp;gt;.&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;font-size:large;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;Класс ItemExtraData&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Объект доп. данных является объектом типа ItemExtraData, реализующим интерфейс для работы с ними.&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&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:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Объект ItemExtraData является сохраняемым объектом, что значит, он может присутствовать в любых сохраняемых данных, автоматически преобразовываться в JSON и загружаться из него.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Конструкторы&amp;amp;nbsp; ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''new ItemExtraData() - создает новые пустые доп. данные''&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;new ItemExtraData(extraData) - принимает другой объект доп. данных и создает его копию, если передан null, аналогичен первому конструктору&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&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;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.isEnchanted() - возвращает true, если предмет зачарован.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.addEnchant(id, level) - добавляет зачарование типа id и уровня level предмету, если зачарование такого типа уже имеется, то изменяет его уровень.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:148%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:148%&amp;quot;&amp;gt;extra.getEnchantLevel(id) - возвращает уровень зачарования типа id или 0, если такого нет extra.removeEnchant(id) - удаляет зачарование данного типа, если оно есть extra.removeAllEnchants() - удаляет все зачарования&amp;amp;nbsp; extra.getEnchantCount() - возвращает кол-во зачарований&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:135%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:135%&amp;quot;&amp;gt;extra.getEnchants() - возвращает объект, содержащий все зачарования, где ключи это типы зачарований, а значения - их уровни extra.getEnchantName(id, level) - возвращает имя зачарования по его типу и уровню&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.getEnchantName(id) - возвращает имя зачарования по его типу и уровню, который сохранен в доп. данных на данный момент&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.getAllEnchantNames() - возвращает имена всех присутствующих зачарований, разделенные символом перевода строки (так же, как они отображаются под предметом)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&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;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.getCustomName() - возвращает измененное имя предмета или null, если оно не изменено&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.setCustomName(name) - изменяет имя предмета или убирает измененное имя, если передан null&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:103%&amp;quot;&amp;gt;Произвольные данные нужны чтобы сохранять в конкретном предмете что-то нужное конкретному моду для выполнения функций данного предмета (к примеру, там можно хранить какие-то данные о внутреннем инвентаре, режим инструмента, данные вида пчелы и т.п.)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&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;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Работа с произвольными данными ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;Методы сохранения сохраняют значение какого-то типа под данным именем, чтобы в последствии к нему можно было осуществить доступ:&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;extra.putInt(name, value) - целое число&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;extra.putLong(name, value) - большое целое число, больше 32 бит (более 2х миллиардов по модулю)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;extra.putFloat(name, value) - 64 битное дробное число&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.putString(name, value) - строка&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.putBoolean(name, value) - булева переменная (true/false)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;Методы доступа отдают значение, сохраненное под данным именем или значение по умолчанию, которое может быть передано вторым параметром (если оно не передано, то значение по умолчанию это null/false/0 в зависимости от типа)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.getInt(name, fallback)&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.getLong(name, fallback)&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.getFloat(name, fallback)&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.getString(name, fallback)&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.getBoolean(name, fallback)&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;extra.removeCustomData() - удаляет все произвольные данные&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt; &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;
&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:162%&amp;quot;&amp;gt;''copy() - создает копию объекта''&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;''&amp;lt;span style=&amp;quot;font-size:12.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:108%&amp;quot;&amp;gt;isEmpty() - возвращает true, если не содержит никаких доп. данных (такой объект аналогичен null, т.е. доп. данных нет)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/Baubles&amp;diff=2500</id>
		<title>InnerCore/Libs/Baubles</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/Baubles&amp;diff=2500"/>
				<updated>2020-09-14T19:46:35Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;
'''Baubles '''- библиотека для регистрации фенечек.&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;
&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/DDCompany/ICLibraries/releases https://github.com/DDCompany/ICLibraries/releases]&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;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;&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;IMPORT(&amp;quot;BaublesAPI&amp;quot;);&lt;br /&gt;
Baubles.registerBauble({&lt;br /&gt;
    id: __, //Айди предмета&lt;br /&gt;
    type: BaubleType.___, //Тип (amulet, ring, belt, head, body или charm)&lt;br /&gt;
    onEquip: function () {&lt;br /&gt;
        //Вызывается при экипировке указанного предмета в соответствующий слот и при входе в мир, если предмет одет&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    onTakeOff: function () {&lt;br /&gt;
        //Вызывается, когда игрок снимет предмет или при его смерти&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    tick: function () {&lt;br /&gt;
        //Вызывается каждый тик, если указанный предмет одет&lt;br /&gt;
    }&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;EXPORT(&amp;quot;BaublesAPI&amp;quot;);&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;testAmulet&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;testAmulet&amp;quot;, &amp;quot;Test Amulet&amp;quot;, {name: &amp;quot;stick&amp;quot;, meta: 0}, {});&lt;br /&gt;
&lt;br /&gt;
Baubles.registerBauble({&lt;br /&gt;
    id: ItemID.testAmulet,&lt;br /&gt;
    type: BaubleType.amulet,&lt;br /&gt;
    onEquip: function () {&lt;br /&gt;
        Player.setFlyingEnabled(true);&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    onTakeOff: function () {&lt;br /&gt;
        Player.setFlyingEnabled(false);&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&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;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/SettingsManager&amp;diff=2496</id>
		<title>InnerCore/Libs/SettingsManager</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/SettingsManager&amp;diff=2496"/>
				<updated>2020-08-29T21:40:13Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
Библиотека является частью мода с открытым исходным кодом A.P.O. Craft. Последняя версия библиотеки находится по [https://github.com/mineprogramming/APO_craft/blob/master/src/lib/SettingsManager.js этому адресу].&lt;br /&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;
*Запрещено изменение кода библиотеки &lt;br /&gt;
*Запрещено явное копирование кода в другие библиотеки или моды&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Используя данный продукт&amp;amp;nbsp;вы автоматически соглашаетесь с этими правилами&lt;br /&gt;
&lt;br /&gt;
== Документация ==&lt;br /&gt;
&lt;br /&gt;
=== Подключение ===&lt;br /&gt;
&lt;br /&gt;
Данная библиотека автоматически подгружает все необходимые настройки игры при их изменении. Чтобы подключить библиотеку, необходимо расположить файл библиотеки в папку lib в корне мода&amp;amp;nbsp;написать следующее в начале вашего кода:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;IMPORT(&amp;quot;SettingsManager&amp;quot;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого вам станет доступен весь функционал библиотеки.&lt;br /&gt;
&lt;br /&gt;
=== Основные команды: ===&lt;br /&gt;
&lt;br /&gt;
*''SettingsManager.getRenderDistance()&amp;amp;nbsp;''- возвращает текущее расстояние прорисовки (в чанках) &lt;br /&gt;
*''SettingsManager.getPlayerName()&amp;amp;nbsp;''- возвращает текущее имя игрока &lt;br /&gt;
*''SettingsManager.getLanguage()&amp;amp;nbsp;''- возвращает текущий язык (аналог&amp;amp;nbsp;''Translation.getLanguage()'') &lt;br /&gt;
*''SettingsManager.isLeftHanded() -''&amp;amp;nbsp;возвращает ''true'', если игрок настроил игру под левую руку, иначе ''false'' &lt;br /&gt;
*''SettingsManager.getSoundsVolume()&amp;amp;nbsp;''- возвращает относительную громкость всех звуков в игре (в диапазоне от 0 до 1) &lt;br /&gt;
*''SettingsManager.getMusicVolume()&amp;amp;nbsp;''- возвращает относительную громкость музыки в игре (в диапазоне от 0 до 1) &lt;br /&gt;
*''SettingsManager.getSetting(name)&amp;amp;nbsp;''- возвращает любую настройку из файла ''options.txt'' по ее имени name &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/Dimensions&amp;diff=2495</id>
		<title>InnerCore/Libs/Dimensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/Dimensions&amp;diff=2495"/>
				<updated>2020-08-07T18:11:43Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Dimensions - библиотека, значительно упрощающая процесс создания измерений. В этой документации будут описаны ее основные возможности и функционал. &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;
&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| Список изменений&lt;br /&gt;
|-&lt;br /&gt;
| '''2'''&lt;br /&gt;
| [https://raw.githubusercontent.com/mineprogramming/APO_craft/d93907979d4113ec9d05da892502eee27264a848/lib/dimensions.js Скачать]&lt;br /&gt;
| Фикс ошибки получения координат в функции генерации чанка (by IchZerowan)&lt;br /&gt;
|}&lt;br /&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;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;IMPORT(&amp;quot;dimensions&amp;quot;);&lt;br /&gt;
&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;
Для генерации измерения используется объект&amp;lt;span&amp;gt;&amp;lt;span class=&amp;quot;fctbNone&amp;quot;&amp;gt;Dimension. В конструктор передаются параметры, связанные с измерением в следующем формате:&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
var dim007 = new Dimension({&lt;br /&gt;
    name: &amp;quot;dim007&amp;quot;, // Название измерения&lt;br /&gt;
    &lt;br /&gt;
    generation: { //Генерация&lt;br /&gt;
        layers: [&lt;br /&gt;
             //Слои генерации &lt;br /&gt;
        ],&lt;br /&gt;
        &lt;br /&gt;
        decoration: {&lt;br /&gt;
            &lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    environment: {&lt;br /&gt;
        &lt;br /&gt;
    },&lt;br /&gt;
    &lt;br /&gt;
    callbacks: { &lt;br /&gt;
        // Основные коллбеки измерения&lt;br /&gt;
        // Здесь приведены все коллбеки измерений, ненужные можно опустить.&lt;br /&gt;
        tick: function() { &lt;br /&gt;
            &lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        generateChunk: function(chunkX, chunkZ) { &lt;br /&gt;
            // Генерация чанка&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        loaded: function() {&lt;br /&gt;
            // Загрузка измерения&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        unloaded: function() {&lt;br /&gt;
            // Выгрузка  измерения&lt;br /&gt;
        }&lt;br /&gt;
});&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Слои генерации ===&lt;br /&gt;
&lt;br /&gt;
Основной единицей генерации является слой. Слоев может быть несколько и каждый из них отвечает за отдельную часть генерации ландшафта: различные биомы, слой бедрока, метеориты, парящие в воздухе. Каждый слой представляет из себя json-объект следующего содержания:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{ &lt;br /&gt;
    range: [0, 80],&lt;br /&gt;
    noise: {&lt;br /&gt;
        octaves: {&lt;br /&gt;
            count: 4,&lt;br /&gt;
            weight: 0.6,&lt;br /&gt;
            scale: [1, 0.4, 1]&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
                &lt;br /&gt;
    gradient: [[-1, 0.8], [-0.6, 0.5], [-0.2, 0.2], [0.2, 0.9], [0.6, 0.7], [1, 0.1]],&lt;br /&gt;
    terrain: {&lt;br /&gt;
        base: 1,&lt;br /&gt;
        cover: {&lt;br /&gt;
             height: 4,&lt;br /&gt;
             top: 2,&lt;br /&gt;
             block: 3&lt;br /&gt;
        },&lt;br /&gt;
    }&lt;br /&gt;
},&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-highlight mw-content-ltr&amp;quot; dir=&amp;quot;ltr&amp;quot;&amp;gt;Рассмотрим каждую часть кода подробнее:&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
*range - диапазон высоты, в котором работает генерация. В данном примере ландшафт будет генерироваться на высоте 0-80 блоков. Единственный обязательный параметр. &lt;br /&gt;
*noise - описание [https://ru.wikipedia.org/wiki/Шум_Перлина шума Перлина ], лежащего в основе генерации Подробнее в разделе [https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/Dimensions#.D0.9A.D0.B0.D1.80.D1.82.D1.8B_.D1.88.D1.83.D0.BC.D0.B0 Карты шума]. Таких шумов может несколько, в таком случае их следует записывать в виде массива и они будут накладываться. &lt;br /&gt;
*heights - сродни noise, но накладывается поверх шума. Имеет такой же формат. Используется для генерации мелких биомов (речки, горы) &amp;lt;div class=&amp;quot;mceNonEditableOverlay&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;  &lt;br /&gt;
*gradient - описание функции [https://ru.wikipedia.org/wiki/Градиент градиента ], которая будет применена к шуму. Отвечает за то, как примерно будет выглядеть ландшафт. Задается в виде набора точек. Между точками интерполируется (соединяется плавной кривой). &lt;br /&gt;
*terrain - настройки блоков нашей генерации, могут содержать следующее: &lt;br /&gt;
**base - блок, служащий основанием для генерации. В данном случае, камень. Можно указать как id и дату (в виде массива из двух элементов либо объекта с полями id, deata), так и просто id. &lt;br /&gt;
**cover - слои блоков, покрывающих генерацию сверху (в нормальной генерации мира это земля и трава). Объект cover имеет три поля: height - высота верхнего слоя, block - основной блок покрытия, top - самый верхний слой. Все блоки задаются таким же образом, как и base. &lt;br /&gt;
**filling - параметры заполнения пустот в генерации чем-либо. Пример - вода в обычном мире и лава в нижнем. Объект состоит из полей height - высота, до которой будет заполнен слой, и block - непосредственно сам блок, которым производится заполнение.   &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mceNonEditableOverlay&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Как уже было сказано выше, генерация поверхности происходит по принципу шума Перлина. Подробную информацию о нем можно найти [https://habr.com/post/265775/ здесь ].Каждая карта состоит из октав. Октавы - шум разного масштаба. Подробнее в той же статье.&lt;br /&gt;
&lt;br /&gt;
В библиотеке dimensions октавы для генерации (octaves) задаются двумя способами: одним объектом описания для программной генерации нескольких октав или массивом описаний отдельных октав. Начнем с первого случая, при этом поля у объекта октав будут следующие:&lt;br /&gt;
&lt;br /&gt;
*count - количество октав. Чем больше октав, тем мельче и труднопроходимее будет рельеф. Чаще всего используют 4 октавы. &lt;br /&gt;
*weight -&amp;amp;nbsp;? &lt;br /&gt;
*scale -&amp;amp;nbsp;? &lt;br /&gt;
*mt -&amp;amp;nbsp;? &lt;br /&gt;
*mw -&amp;amp;nbsp;? &lt;br /&gt;
&lt;br /&gt;
Всему шуму (не отдельным октавам) также можно задавать следующие параметры:&lt;br /&gt;
&lt;br /&gt;
*gradient - градиент для данной карты шума. &lt;br /&gt;
*seed - зерно генерации (сид). &lt;br /&gt;
&amp;lt;div style=&amp;quot;display: inline !important;&amp;quot;&amp;gt;При создании карты шума отдельными октавами (octaves - массив), каждая октава будет иметь следующие параметры: &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
*weight -? &lt;br /&gt;
*offset -? &lt;br /&gt;
*scale -? &lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
Объект environment предлагает инструменты для настройки среды, а именно цвета неба и туман. Может содержать следующие поля:&lt;br /&gt;
&lt;br /&gt;
*sky - цвет неба, задается массивом из трех составляющих RGB (от 0 до 1), каждая из которых может быть как значением, так и массивом из двух значений для более тонкой настройки цветов. &lt;br /&gt;
*fog - цвет тумана, имеет аналогичный sky массив описания. &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Объект Dimensions и его методы ==&lt;br /&gt;
&lt;br /&gt;
Результатом создания нового измерения будет объект Dimension. От будет использоваться для дальнейшей работы с измерением и имеет для этого следующие методы:&lt;br /&gt;
&lt;br /&gt;
*setupGeneration(description) -&amp;amp;nbsp;? &lt;br /&gt;
*setupTransfer(description) -&amp;amp;nbsp;? &lt;br /&gt;
*setupEnvironment(description) -&amp;amp;nbsp;? &lt;br /&gt;
*setupCallbacks(callbacks) - устанавливает коллбеки в формате, описанном выше. &lt;br /&gt;
*getName() - возвращает имя измерения, заданное при его создании. &lt;br /&gt;
*getId() - получает уникальное id биома. &lt;br /&gt;
*getWrappedObject() - получает лежащий в основе библиотеки java-объект CustomDimention. &lt;br /&gt;
*getRegion() -&amp;amp;nbsp;? &lt;br /&gt;
*getTeleporter() - возвращает телепортер из обічного мира в измерение. &lt;br /&gt;
*getTeleporterBack() - возвращает телепортер из измерения в обычный мир. &lt;br /&gt;
*getAllTeleporters() - возвращает массив из getTeleporter() и getTeleporterBack(). &lt;br /&gt;
*transferTo(tp) - переносит вас в место, заданное телепортером tp. &lt;br /&gt;
*transferIn() - переносит игрока в измерение. &lt;br /&gt;
*transferOut() - переносит игрока из измерения. &lt;br /&gt;
*isInDimension() - проверяет, находинся ли игрок в данном измерении. &lt;br /&gt;
&lt;br /&gt;
Следующие два метода слишком важны, чтобы оставить их в списке наравне с остальными, поскольку позволяют ускорить процесс отладки генерации в разы. stride в обоих случаях показывает, сколько блоков будет соответствовать одному пикселю битмапы:&lt;br /&gt;
&lt;br /&gt;
*debugTerrainMap(size, stride) - генерирует и показывает всплывающим окном при загрузке InnerCore битмапу с видом на сгенерированный ландшафт сверху размером size*size. &lt;br /&gt;
*debugTerrainSlice(size, stride) - генерирует и показывает всплывающим окном при загрузке InnerCore битмапу со срезом сгенерированного ландшафтавысотой size (вид сбоку). &lt;br /&gt;
&lt;br /&gt;
== PortalRegistry ==&lt;br /&gt;
&lt;br /&gt;
Объект&amp;amp;nbsp;PortalRegistry позволяет создавать и управлять блоками порталов с их анимациями.&lt;br /&gt;
&lt;br /&gt;
Для создания нового блока порталда используется метод&amp;amp;nbsp;''newPortalBlock''. Он принимает следующие аргументы:&lt;br /&gt;
&lt;br /&gt;
*id - строковой id блока портала &lt;br /&gt;
*texture - параметры текстуры в формате [name, data] &lt;br /&gt;
*portal - объект типа Portal, возвращаемый метдом ''dimension..getPortal()'' &lt;br /&gt;
*portalRenderParams - параметры рендера портала, имеет следующий формат: &lt;br /&gt;
**frameId - ? &lt;br /&gt;
**type - одна из следующих констант   &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;PortalRegistry.RENDER_TYPE_FULL = &amp;quot;full&amp;quot;;&lt;br /&gt;
PortalRegistry.RENDER_TYPE_VERTICAL_PLANE = &amp;quot;v-plane&amp;quot;;&lt;br /&gt;
PortalRegistry.RENDER_TYPE_HORIZONTAL_PLANE = &amp;quot;h-plane&amp;quot;;&lt;br /&gt;
PortalRegistry.RENDER_TYPE_UNIVERSAL_PLANE = &amp;quot;u-plane&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=Horizon&amp;diff=2494</id>
		<title>Horizon</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=Horizon&amp;diff=2494"/>
				<updated>2020-07-27T18:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&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;&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;Horizon - это универсальная платформа для запуска мобильных игр с модами. На момент написания статьи он поддерживает только [[InnerCore|InnerCore]], содержащем в себе Minecraft: Bedrock Edition 1.11.4. Horizon позволяет создавать и хранить одновременно несколько независимых сборок InnerCore, что, в свою очередь, позволяет разделять разные сборки модов и миры с этими самыми сборками. Разработка может вестись на JavaScript, Java, C++ и не только.&amp;lt;/div&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;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
[https://vk.com/core_engine Группа ВКонтакте Horizon]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ofwKkRYh97k&amp;amp;t=1s Видеогайд настройки окружения для разработки]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ykAVJoxKTKc Видеогайд создания новых проектов и импорта старых]&lt;br /&gt;
&lt;br /&gt;
[https://icmods.mineprogramming.org/dev Инструменты разработки модов]&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
[https://play.google.com/store/apps/details?id=com.zheka.horizon Сам Horizon]&lt;br /&gt;
&lt;br /&gt;
[https://vk.com/topic-134044100_41523503 Обсуждение ВКонтакте для отправки сообщений о багах]&lt;br /&gt;
&lt;br /&gt;
[https://docs.mineprogramming.org/ Документация для разработки модов]&lt;br /&gt;
[https://github.com/zheka2304/innercore-mod-toolchain Тулчейн для разработки модов]&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; &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; &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; &amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=2493</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=2493"/>
				<updated>2020-07-25T10:40:27Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;Mineprogramming Wiki - уникальный проект на основе [https://www.mineprogramming.org/ mineprogramming ], на котором собрано все, что нужно для программирования в среде Minecraft. Здесь вы сможете найти информацию о таких языках и технологиях, как [[InnerCore|InnerCore ]], [[ModPE|ModPE ]], [[CoreEngine|CoreEngine ]] , [[PocketMine|PocketMine ]], [[Forge|Forge ]], [[Minecraft_add-ons|Minecraft add-ons ]] и многим другим. &lt;br /&gt;
[https://www.mineprogramming.org/ Mineprogramming ]- еще более уникальный проект, посвященный программированию в Майнкрафте, при чем если на wiki вы найдете информацию по конкретным языкам и технологиям, то на&amp;amp;nbsp;[https://www.mineprogramming.org/ Mineprogramming ]расположены наши программы для создания модов, наши моды, а так же различные интересные статьи, посвященные программированию в Майнкрафте!&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;&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;&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;
== Технологии Minecraft ==&lt;br /&gt;
&lt;br /&gt;
*[[Horizon|Horizon ]]- универсальная платформа для запуска мобильных игр с модами. &lt;br /&gt;
*[[InnerCore|InnerCore ]] - революционный загрузчик модов для MinecraftPocket Edition. Имеет схожий с [[CoreEngine|CoreEngine ]]API &lt;br /&gt;
*[[Minecraft_add-ons|Minecraft add-ons ]]- официальное API для моддинга Minecraft PE. &lt;br /&gt;
*[[Minecraft_Script_Engine|Minecraft Script Engine]] - новый движок от [https://mojang.com/ Mojang], позволяющий создавать дополнения к игре без установки вспомагательного программного обеспечения. &lt;br /&gt;
*[[ModPE|ModPE ]]- простейшее линейное API моддинга MCPE. Поддерживает создание предметов и блоков, работу с мобами, окружением, игроком. &lt;br /&gt;
*[[CoreEngine|CoreEngine ]]- движок, существенно расширяющий возможности [[ModPE|ModPE ]]. Может создавать интерфейс, контейнеры, обновляемые обьекты, сжимает блоки в мнимые id. &lt;br /&gt;
*[[Forge|Forge ]]- открытое API для моддинга Minecraft Java Edition. &lt;br /&gt;
*[[Командные_блоки|Командные блоки ]]- блоки-терминалы, работающие от редстоуна. Простейший способ запрограммировать что-либо в Minecraft. &lt;br /&gt;
*[[PocketMine|PocketMine ]]- серверное ядро для Minecraft PE. . Является основой для большинства современных серверных движков на ПЕ, сам по себе устарел и не обновляется. &lt;br /&gt;
*[[Nukkit|Nukkit ]] - серверное ядро для Minecraft PE, разработанное на Java. &lt;br /&gt;
*[[Bukkit|Bukkit ]]- серверное ядро для Minecraft PC. Является основой для большинства современных серверных движков на ПК, сам по себе устарел и не обновляется. &lt;br /&gt;
*[[Vanillia|Vanilla ]]- официальное серверное ядро Minecraft PC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &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;
*[[NIDE|NIDE ]]- интегрированная среда разработки для разработки модов под Inner Core, Core Engine и ModPE &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Теория и практика программирования в Minecraft ==&lt;br /&gt;
&lt;br /&gt;
*[[ID_блоков_и_предметов|ID блоков и предметов]] &lt;br /&gt;
*[[Форматирование_текста|Форматирование текста в чате]] &lt;br /&gt;
*[https://minecraft-ru.gamepedia.com/Цикл_дня_и_ночи Время] &lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=ModPE/Block&amp;diff=2483</id>
		<title>ModPE/Block</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=ModPE/Block&amp;diff=2483"/>
				<updated>2020-06-05T13:15:01Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Block - объект ModPE API, предназначеный для работы с блоками.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Block.defineBlock ===&lt;br /&gt;
&lt;br /&gt;
Создает новый блок&lt;br /&gt;
&lt;br /&gt;
Параметры: (blockId, blockName, texture,&amp;amp;nbsp;materialSource,&amp;amp;nbsp;isOpaque,&amp;amp;nbsp;renderType)&lt;br /&gt;
&lt;br /&gt;
*''blockId ''- id блока, должно быть между 0 и 255 ([https://vk.com/modpe_scripting?w=wall-68816723_2508 можно и больше с версии&amp;amp;nbsp;]'''[https://vk.com/modpe_scripting?w=wall-68816723_2508 1.15.2]''') и стоит следить за тем, чтобы не перезаписать уже существующий блок. Поэтому смотрим [https://vk.com/modpe_scripting?w=wall-68816723_2514 список свободных id]. &lt;br /&gt;
*''blockName ''- название блока, задается строкой &lt;br /&gt;
*''texture ''- объект, содержащий информацию о текстурах блока Выглядит следующим образом:&amp;amp;nbsp;[&amp;quot;stone&amp;quot;, 0] для блоков с одинаковыми сторонами и [[&amp;quot;stone&amp;quot;, 0],&amp;amp;nbsp;[&amp;quot;stone&amp;quot;, 1],&amp;amp;nbsp;[&amp;quot;stone&amp;quot;, 2],&amp;amp;nbsp;[&amp;quot;stone&amp;quot;, 0],&amp;amp;nbsp;[&amp;quot;stone&amp;quot;, 1],&amp;amp;nbsp;[&amp;quot;stone&amp;quot;, 2]], где stone - название текстуры в текстурпаке (втч и в [http://zhuoweizhang.net/mcpetexturenames/ ванильном], то есть название текстур из самого Майнкрафта) а 0, 1 и 2 - мета текстур, указанные в текстурпаке. Пример названия файла в текстурпаке:''&amp;quot;stone_0.png&amp;quot;''. Текстура должна лежать по пути ''images/terrain-atlas.'' &lt;br /&gt;
*''materialSource ''- id блока, которому блок подражает наш блок, то есть звуки, инструмент, которым его надо ломать и т п. &lt;br /&gt;
*''isOpaque ''- непрозрачный ли блок, true - непрозрачный, false - прозрачный &lt;br /&gt;
*renderType - тип рендера блока, очень баганная вещь, но можно пробовать использовать в качестве эксперементов.&lt;br /&gt;
&lt;br /&gt;
=== Block.defineLiquidBlock ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2String, par3Object, par4Object)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Block.getAllBlockIds ===&lt;br /&gt;
&lt;br /&gt;
Нету параметров&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Block.getDestroyTime ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (Integer id)&lt;br /&gt;
&lt;br /&gt;
Возвращает время ломания блока id.&lt;br /&gt;
&lt;br /&gt;
=== Block.getFriction ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Block.getRenderLayer ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int)&lt;br /&gt;
&lt;br /&gt;
=== Block.getRenderType ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int)&lt;br /&gt;
&lt;br /&gt;
=== Block.getTextureCoords ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2int, par3int)&lt;br /&gt;
&lt;br /&gt;
=== Block.setColor ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2Scriptable)&lt;br /&gt;
&lt;br /&gt;
=== Block.setDestroyTime ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (Integer id, Double time)&lt;br /&gt;
&lt;br /&gt;
Задает время ломания рукой time для блока id. Из-за глюков в BlockLauncher 1.13.x-1.14.3 работало как Block.setShape(id, time, 1, 1, 1, 1, 1).&lt;br /&gt;
&lt;br /&gt;
=== Block.setExplosionResistance ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2double)&lt;br /&gt;
&lt;br /&gt;
=== Block.setFriction ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2double)&lt;br /&gt;
&lt;br /&gt;
=== Block.setLightLevel ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Block.setLightOpacity ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Block.setRedstoneConsumer ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2boolean)&lt;br /&gt;
&lt;br /&gt;
=== Block.setRenderLayer ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Block.setRenderType ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1int, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Block.setShape ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (Integer id, Double x1, Double y1, Double z1, Double x2, Double y2, Double z2, [Integer data])&lt;br /&gt;
&lt;br /&gt;
Задает форму блоку (id, data) относительно левого правого угла (0, 0, 0).&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/ToolLib&amp;diff=2476</id>
		<title>InnerCore/Libs/ToolLib</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/ToolLib&amp;diff=2476"/>
				<updated>2020-05-29T18:31:08Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&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;&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;&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;&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;
ToolAPI - API позваляющий&amp;amp;nbsp;регистрировать инструменты.&amp;lt;br/&amp;gt; ToolLib -&amp;amp;nbsp;Библиотека, предоставляющая универсальные типы инструментов и содержащая несколько вспомогательных методов для работы с инструментами и блоками.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 223px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 83px; text-align: center;&amp;quot; | '''Версия'''&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center;&amp;quot; | '''Скачать'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 83px; text-align: center;&amp;quot; | '''20'''&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center;&amp;quot; | [https://drive.google.com/file/d/1obV7as1BOKHV04U6D3st6JXeSraWl54H/view?usp=sharing Скачать]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&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;
Чтобы подключить библиотеку, необходимо расположить файл библиотеки в папку lib в корне мода&amp;amp;nbsp;написать следующее в начале вашего кода:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IMPORT(&amp;quot;ToolLib&amp;quot;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого вам станет доступен весь функционал библиотеки.&lt;br /&gt;
&lt;br /&gt;
=== Добавление инструмента ===&lt;br /&gt;
&lt;br /&gt;
Для регистрации инструмента используется метод ToolAPI.setTool(ItemID, toolMaterial, toolType)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolAPI.setTool(ItemID.myTool, &amp;quot;wood&amp;quot;, ToolType.axe);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же вместо названия материала может напрямую быть передан объект с его свойствами.&lt;br /&gt;
&lt;br /&gt;
Для регистрации нового материала инструментов используется метод&amp;amp;nbsp;ToolAPI.addToolMaterial(toolMaterial, params)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolAPI.addToolMaterial(&amp;quot;dirt&amp;quot;, {&lt;br /&gt;
    durability: 3, // Прочность (Сколько блоков можно сломать)&lt;br /&gt;
    level: 1, // Уровень инструмента, влияет на блоки которые инструмент может ломать&lt;br /&gt;
    efficiency: 10, // Эффективность - модификатор скорости ломания блока&lt;br /&gt;
    damage: 1, // Увеличение базового урона инструмента данным материалом&lt;br /&gt;
    enchantability: 14 // Зачаровываемость, чем выше, тем более хорошие чары будут при зачаровании&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Регистрация блока ===&lt;br /&gt;
&lt;br /&gt;
Для регистрации блока используется метод&amp;amp;nbsp;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolAPI.registerBlockMaterial(BlockID.myBlock, &amp;quot;stone&amp;quot;, 1);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Уровни блоков:&lt;br /&gt;
&lt;br /&gt;
1 - камень&lt;br /&gt;
&lt;br /&gt;
2 - железная руда&lt;br /&gt;
&lt;br /&gt;
3 - алмазная руда&lt;br /&gt;
&lt;br /&gt;
4 - обсидиан&lt;br /&gt;
&lt;br /&gt;
Для регистрации материала блока используется метод&amp;amp;nbsp;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolAPI.addBlockMaterial(&amp;quot;test&amp;quot;, 3);&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;&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;
Cтандартные типы:&lt;br /&gt;
&lt;br /&gt;
ToolType.sword - меч&amp;lt;br/&amp;gt; ToolType.shovel - лопата&amp;lt;br/&amp;gt; ToolType.pickaxe - кирка&amp;lt;br/&amp;gt; ToolType.axe - топор&amp;lt;br/&amp;gt; ToolType.hoe - мотыга&lt;br /&gt;
&lt;br /&gt;
Создание своего типа инструментов&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolType.myType = {&lt;br /&gt;
    enchantType: Native.EnchantType.pickaxe, //Тип чар для инструмента&lt;br /&gt;
    damage: 2, // Базовый урон инструмента&lt;br /&gt;
    blockTypes: [&amp;quot;dirt&amp;quot;, &amp;quot;stone&amp;quot;, &amp;quot;test&amp;quot;], // Материалы блоков, которые может ломать инструмент&lt;br /&gt;
    onAttack: function(item){&lt;br /&gt;
        if(item.data &amp;gt; Item.getMaxDamage(item.id)){&lt;br /&gt;
            item.id = item.data = item.count = 0;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&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;
&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; &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; &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; &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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/ToolLib&amp;diff=2475</id>
		<title>InnerCore/Libs/ToolLib</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/ToolLib&amp;diff=2475"/>
				<updated>2020-05-29T18:30:21Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&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;&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;&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;&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;
ToolAPI - API позваляющий&amp;amp;nbsp;регистрировать инструменты.&amp;lt;br/&amp;gt; ToolLib -&amp;amp;nbsp;Библиотека, предоставляющая универсальные типы инструментов и содержащая несколько вспомогательных методов для работы с инструментами и блоками.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 223px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 83px; text-align: center;&amp;quot; | '''Версия'''&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center;&amp;quot; | '''Скачать'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 83px; text-align: center;&amp;quot; | '''20'''&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center;&amp;quot; | [https://drive.google.com/file/d/1obV7as1BOKHV04U6D3st6JXeSraWl54H/view?usp=sharing Скачать]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&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;
Чтобы подключить библиотеку, необходимо расположить файл библиотеки в папку lib в корне мода&amp;amp;nbsp;написать следующее в начале вашего кода:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IMPORT(&amp;quot;ToolLib&amp;quot;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого вам станет доступен весь функционал библиотеки.&lt;br /&gt;
&lt;br /&gt;
=== Добавление инструмента ===&lt;br /&gt;
&lt;br /&gt;
Для регистрации инструмента используется метод ToolAPI.setTool(ItemID, toolMaterial, toolType)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolAPI.setTool(ItemID.myTool, &amp;quot;wood&amp;quot;, ToolType.axe);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же вместо названия материала может напрямую быть передан объект с его свойствами.&lt;br /&gt;
&lt;br /&gt;
Для регистрации нового материала инструментов используется метод&amp;amp;nbsp;ToolAPI.addToolMaterial(toolMaterial, params)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolAPI.addToolMaterial(&amp;quot;dirt&amp;quot;, {&lt;br /&gt;
    durability: 3, // Прочность (Сколько блоков можно сломать)&lt;br /&gt;
    level: 1, // Уровень инструмента, влияет на блоки которые инструмент может ломать&lt;br /&gt;
    efficiency: 10, // Эффективность - модификатор скорости ломания блока&lt;br /&gt;
    damage: 1, // Увеличение базового урона инструмента данным материалом&lt;br /&gt;
    enchantability: 14 // Зачаровываемость, чем выше, тем более хорошие чары будут при зачаровании&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Регистрация блока ===&lt;br /&gt;
&lt;br /&gt;
Для регистрации блока используется метод&amp;amp;nbsp;ToolAPI.registerBlockMaterial(BlockID, blockMaterial, level);&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolAPI.registerBlockMaterial(BlockID.myBlock, &amp;quot;stone&amp;quot;, 1);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Уровни блоков:&lt;br /&gt;
&lt;br /&gt;
1 - камень&lt;br /&gt;
&lt;br /&gt;
2 - железная руда&lt;br /&gt;
&lt;br /&gt;
3 - алмазная руда&lt;br /&gt;
&lt;br /&gt;
4 - обсидиан&lt;br /&gt;
&lt;br /&gt;
Для регистрации материала блока используется метод&amp;amp;nbsp;ToolAPI.addBlockMaterial(blockMaterial, breakingMultiplier);&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolAPI.addBlockMaterial(&amp;quot;test&amp;quot;, 3);&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== Типы инструментов ===&lt;br /&gt;
&lt;br /&gt;
Cтандартные типы:&lt;br /&gt;
&lt;br /&gt;
ToolType.sword - меч&amp;lt;br/&amp;gt; ToolType.shovel - лопата&amp;lt;br/&amp;gt; ToolType.pickaxe - кирка&amp;lt;br/&amp;gt; ToolType.axe - топор&amp;lt;br/&amp;gt; ToolType.hoe - мотыга&lt;br /&gt;
&lt;br /&gt;
Создание своего типа инструментов&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;ToolType.myType = {&lt;br /&gt;
    enchantType: Native.EnchantType.pickaxe,//Тип чар для инстумента&lt;br /&gt;
    damage: 2,// Базовый урон инструмента&lt;br /&gt;
    blockTypes: [&amp;quot;dirt&amp;quot;, &amp;quot;stone&amp;quot;, &amp;quot;test&amp;quot;], //Материалы блоков, которые может ломать инструмент&lt;br /&gt;
    onAttack: function(item){&lt;br /&gt;
        if(item.data &amp;gt; Item.getMaxDamage(item.id)){&lt;br /&gt;
            item.id = item.data = item.count = 0;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
} &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&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;
&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; &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; &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; &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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore&amp;diff=2474</id>
		<title>InnerCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore&amp;diff=2474"/>
				<updated>2020-05-29T17:58:45Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&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;
InnerCore был создан на базе чистого MCPE 1.0.3 и является полноценной средой для создания и игры с модами, дающей возможности куда большие, чем [[CoreEngine|CoreEngine]]&amp;amp;nbsp;&amp;amp; [[BlockLauncher|BlockLauncher]].&amp;lt;br/&amp;gt; Написанная с нуля нативная часть позволила решить абсолютное большинство проблем, связанных с моддингом на базе [[BlockLauncher|BlockLauncher]] и сделать API намного эффективнее.&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;&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;&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;
&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;
&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;
&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;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Документация по Inner Core ==&lt;br /&gt;
&lt;br /&gt;
*Построение модов &lt;br /&gt;
**[[InnerCore/Структура_модов|Структура модов]] &lt;br /&gt;
**[[InnerCore/Стандартный_шаблон_модов|Стандартный шаблон модов]] &lt;br /&gt;
**[[InnerCore/Ресурсы|Ресурсы]] &lt;br /&gt;
**[[InnerCore/Компиляция_в_байткод|Компиляция в байткод]] &lt;br /&gt;
**[[InnerCore/Базовые_методы_и_переменные_исполняемых_файлов|Базовые методы и переменные исполняемых файлов]] &lt;br /&gt;
**[[InnerCore/Библиотеки|Библиотеки]]   &lt;br /&gt;
*[[InnerCore/Глобальные_методы_и_переменные_CoreEngine|Глобальные методы и переменные CoreEngine]] &lt;br /&gt;
*События в игре. Модуль Callback &lt;br /&gt;
**[[InnerCore/Модуль_Callback|Модуль Callback]] &lt;br /&gt;
**[[InnerCore/Список_коллбеков|Список коллбеков]] &lt;br /&gt;
**[[InnerCore/Список_назаний_ванильных_экранов|Список названий ванильных экранов]]   &lt;br /&gt;
*Блоки и предметы &lt;br /&gt;
**[[InnerCore/Создание_блоков_и_предметов|Создание блоков и предметов]] &lt;br /&gt;
**[[InnerCore/Naming_Standart|Стандарт Именования Inner Core]] &lt;br /&gt;
**[[InnerCore/Продвинутое_создание_блоков_и_предметов|Продвинутое создание блоков и предметов]] &lt;br /&gt;
**[[InnerCore/ToolAPI_и_ToolType|ToolAPI и ToolType]] &lt;br /&gt;
**[[InnerCore/Рендер_блоков|Рендер блоков]] &lt;br /&gt;
**[[InnerCore/Визуальная_составляющая_ICRender|Визуальная составляющая&amp;amp;nbsp;ICRender]] &lt;br /&gt;
**[[InnerCore/Форма_блоков|Форма блоков]] &lt;br /&gt;
**[[InnerCore/Класс_RenderMesh|Класс&amp;amp;nbsp;RenderMesh]] &lt;br /&gt;
**[[InnerCore/Дополнительные_данные_предмета|Дополнительные данные предмета]] &lt;br /&gt;
**[[InnerCore/Случайные_обновления_блоков|Случайные обновления блоков]] &lt;br /&gt;
**[[InnerCore/TileEntity|TileEntity]] &lt;br /&gt;
**[[InnerCore/Рецепты|Рецепты]] &lt;br /&gt;
**[[InnerCore/Жидкости_и_работа_с_ними|Жидкости и работа с ними]] &lt;br /&gt;
**[[InnerCore/Броня|Броня]]   &lt;br /&gt;
*[[InnerCore/Модуль_World|Модуль World]] &lt;br /&gt;
*Генерация &lt;br /&gt;
**[[InnerCore/Модуль_GenerationUtils|Модуль GenerationUtils]] &lt;br /&gt;
**[[InnerCore/Основы_генерации|Основы генерации]]   &lt;br /&gt;
*[[InnerCore/Модуль_Game|Модуль Game]] &lt;br /&gt;
*Сущности &lt;br /&gt;
**[[InnerCore/Модуль_Entity|Модуль Entity]] &lt;br /&gt;
**[[InnerCore/Список_ванильных_рендеров|Список ванильных рендеров]] &lt;br /&gt;
**[[InnerCore/Создание_мобов|Создание мобов]] &lt;br /&gt;
**[[InnerCore/Пример_создания_моба|Пример создания моба]] &lt;br /&gt;
**[[InnerCore/Кастомные_мобы|Кастомные мобы]]   &lt;br /&gt;
*[[InnerCore/Модуль_Player|Модуль Player]] &lt;br /&gt;
*GUI &lt;br /&gt;
**[[InnerCore/Модуль_UI|Модуль UI]] &lt;br /&gt;
**[[InnerCore/Введение_в_GUI|Введение в GUI]] &lt;br /&gt;
***[[InnerCore/Введение_в_GUI/Стандартный_интерфейс|Стандартный интерфейс]] &lt;br /&gt;
***[[InnerCore/Введение_в_GUI/Однооконный_интерфейс|Однооконный интерфейс]] &lt;br /&gt;
***[[InnerCore/Введение_в_GUI/Многооконный_интерфейс|Многооконный интерфейс]]   &lt;br /&gt;
**[[InnerCore/Контейнеры|Контейнеры]] &lt;br /&gt;
**[[InnerCore/Динамичный_интерфейс|Динамичный интерфейс]]   &lt;br /&gt;
*[[InnerCore/Модуль_ModAPI|Модуль ModAPI]] &lt;br /&gt;
*[[InnerCore/Модуль_Updatable|Модуль&amp;amp;nbsp;Updatable]] &lt;br /&gt;
*[[InnerCore/Модуль_GameObject|Модуль GameObject]] &lt;br /&gt;
*[[InnerCore/Анимации|Анимации]] &lt;br /&gt;
*Отладка &lt;br /&gt;
**[[InnerCore/Модуль_Logger|Модуль Logger]] &lt;br /&gt;
**[[InnerCore/Модуль_Debug|Модуль Debug]]   &lt;br /&gt;
*[[InnerCore/Модуль_Particles|Модуль Particles]] &lt;br /&gt;
*[[InnerCore/Модуль_FileTools|Модуль FileTools]] &lt;br /&gt;
*[[InnerCore/Модуль_SaverScope|Модуль SaverScope]] &lt;br /&gt;
*[[InnerCore/Модуль_Translation|Модуль Translation]] &lt;br /&gt;
*[[InnerCore/Многопоточность|Многопоточность]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&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;&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;&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;&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;&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;amp;nbsp;&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; &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; &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;&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;
&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;
== Список модов: ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 93px;&amp;quot; | '''Мод/API'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 226px;&amp;quot; | '''Автор / Официальный источник'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | '''Мод в браузере'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 608px;&amp;quot; | '''Краткое описание'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/AchievementsAPI|AchievementsAPI]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=143 AchievementsAPI]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод, который добавляет некоторые достижения из Minecraft:Java Edition и предоставляет АПИ для регистрации собственных.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Libs/GuideAPI|GuideAPI]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=39 GuideAPI]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод-библиотека, предоставляющая большие возможности для создания игровых документаций .&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/Waila|Waila]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=144 Waila]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод позволяет увидеть название блока, его материал, возможность сломать, здоровье и айди моба, наведя на соответствующий объект в мире.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/APO_Craft|A.P.O. Craft]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/igormelikhov IchZerowan]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=361 A.P.O. Craft]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод добавляет постаппокалиптический город в игру.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/OresMod|OresMod]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/myrzicmur Kotoffey23]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=59 Ores Mod]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод добавляет механизмы и руды. Рутинно, но почему бы и нет?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/WolfGunsMod|WolfGunsMod]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=397 WolfGunsMod]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод добавляет оружие.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[WorldLoader|WorldLoader]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod.php?id=470 WorldLoader]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Утилита позволяющая создавать миры модификаций.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;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;
&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;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Список библиотек: ==&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;text-align: center; width: 121px;&amp;quot; | Библиотека&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;text-align: center; width: 214px;&amp;quot; | Автор / Официальный источник&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 694px; text-align: center;&amp;quot; | Краткое описание&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/EnergyLib|EnergyLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://vk.com/core_engine Inner Core]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для создания и работы с различными видами энергии, проводами, генераторами и потребителями.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/EnergyNet|EnergyNet]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://icmods.mineprogramming.org/search?author=19 MineExplorer]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Более продвинутая версия предыдущей библиотеки, позволяющая передавать энергию пакетами и устанавливать проводам лимит на передачу энергии.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/ToolAPI_и_ToolType|ToolLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://icmods.mineprogramming.org/search?author=19 MineExplorer]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, предоставляющая универсальные типы инструментов и добавляющая несколько вспомогательных методов.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/StorageInterface|StorageInterface]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://icmods.mineprogramming.org/search?author=19 MineExplorer]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая передачу предметов и жидкостей и позволяющая её настраивать с помощью интерфейсов хранилищ.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/Dimensions|Dimensions]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://vk.com/zheka_smirnov Zheka_Smirnov]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая создание измерений.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/modpacker|#modpacker]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://www.mineprogramming.org/ #mineprogramming]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для создания и загрузки управляемых сборок модов.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/EntityState|EntityState]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://www.mineprogramming.org/ #mineprogramming]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для получения текущего действия игрока (его движений).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/ScalesRPG|ScalesRPG]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://www.mineprogramming.org/ #mineprogramming]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для регистрации различных шкал в дополнение к существующим (голода, здоровья, брони...).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/SettingsManager|SettingsManager]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://www.mineprogramming.org/ #mineprogramming]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для упрощения работы с настройками игры.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/BackpackAPI|BackpackAPI]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для регистрации рюкзаков.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/Baubles|Baubles]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, предоставляющая АПИ для регистрации фенечек.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/AdvancedAI|AdvancedAI]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/trashboxbobylev TrashboxBobylev]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, содержащая новые типы ИИ мобов.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/MobLib|MobLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упращающая создание мобов.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/RecipeTELib|RecipeTELib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая создание верстаков и печей.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/ShootLib|ShootLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для создания оружия.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/SoundAPI|SoundAPI]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для работы со звуком.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/StructuresAPI|StructuresAPI]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая работу со структурами&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/Timer|Timer]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/tmm_corporation TooManyMods]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая работу с временем тика.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/BowLib|BowLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/tmm_corporation TooManyMods]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая создание собственного лука&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2472</id>
		<title>InnerCore/Libs/StorageInterface</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2472"/>
				<updated>2020-05-29T17:48:14Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&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;&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;
Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью&amp;amp;nbsp;интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей.&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| '''6'''&lt;br /&gt;
| [https://yadi.sk/d/TITakdpdsjIGug Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | - Библиотека обновлена на InnerCore для Horizon: добавлена поддержка новых ванильных контейнеров.&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 18.04.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''5'''&lt;br /&gt;
| [https://yadi.sk/d/Om5TRGdlhylfQA Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | - Исправлена ошибка взаимодействия с tile entity без интерфейса хранилища в методе StorageInterface.transportLiquid&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 09.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''4'''&lt;br /&gt;
| [https://yadi.sk/d/1gBu4a-fEme-jA Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | &lt;br /&gt;
- Улучшена работа с жидкостями&amp;lt;br/&amp;gt; - В интерфейс добавлено поле liquidStorage&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 05.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''3'''&lt;br /&gt;
| [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | релиз библиотеки&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 02.02.2020&lt;br /&gt;
|}&lt;br /&gt;
&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; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Импорт ==&lt;br /&gt;
&lt;br /&gt;
Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;IMPORT(&amp;quot;StorageInterface&amp;quot;);&amp;lt;/pre&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;
== Интерфейсы хранилищ блоков ==&lt;br /&gt;
&lt;br /&gt;
На данный момент интерфейсы привязываются только к tile entity, но в будущем по умолчанию интерфейсы будут прописаны у контейнеров из Майнкрафта, прежде всего печки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс для хранилища добавляется с помощью метода&amp;amp;nbsp;''StorageInterface.createInterface(id блока, объект интерфейса).''&amp;lt;br/&amp;gt; Регистрация слотов в интерфейсе выглядит так:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;StorageInterface.createInterface(id блока, {&lt;br /&gt;
    slots: {&lt;br /&gt;
        &amp;quot;slot1&amp;quot;: {&lt;br /&gt;
            input: true/false, // может ли слот принимать предметы&lt;br /&gt;
            output: true/false, // может ли слот отдавать предметы&lt;br /&gt;
            isValid: function(item, side, tileEntity){ // может ли слот принять предмет item со стороны side&lt;br /&gt;
                return true/false;&lt;br /&gt;
            },&lt;br /&gt;
            canOutput: function(item, side, tileEntity){ // можно ли извлечь предмет из слота (item - предмет в слоте)&lt;br /&gt;
                return true/false;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;slot2&amp;quot;: {&lt;br /&gt;
            ...&lt;br /&gt;
        },&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Так же интерфейс хранилища обладает следующими функциями, которые могут быть перезаписаны в объекте интерфейса:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''isValidInput'''&lt;br /&gt;
| item, side, tileEntity&lt;br /&gt;
| Аналогична функции isValid слота, но действует на все слоты контейнера. По умолчанию возвращает true.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItem'''&lt;br /&gt;
| item, side, maxCount&lt;br /&gt;
| Функция добавления предмета, может быть перезаписана. Возвращает количество добавленных предметов.&lt;br /&gt;
|-&lt;br /&gt;
| '''getOutputSlots'''&lt;br /&gt;
| side&lt;br /&gt;
| Возвращяет слоты выхода, с которыми возможна работа с определённой стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''canReceiveLiquid'''&lt;br /&gt;
| liquid, side&lt;br /&gt;
| Может ли tile entity принять жидкость с именем ''liquid ''со стороны ''side''. По умолчанию возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
| '''canTransportLiquid'''&lt;br /&gt;
| liquid, side&lt;br /&gt;
| Может ли tile entity отдать жидкость с именем ''liquid ''со стороны ''side''.&amp;amp;nbsp;По умолчанию возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
| '''addLiquid'''&lt;br /&gt;
| liquid, amount&lt;br /&gt;
| Функция добавление жидкости. По умолчанию работает с liquidStorage.&lt;br /&gt;
|-&lt;br /&gt;
| '''getLiquid'''&lt;br /&gt;
| liquid, amount&lt;br /&gt;
| Функция извлечения жидкости.&amp;amp;nbsp;По умолчанию работает с liquidStorage.&amp;amp;nbsp;В функциях StorageInterface для передачи жидкости сначала извлекается весь возможный объём жидкости, а потом функция вызывается повторно с отрицательным ''amount&amp;amp;nbsp;''для возвращения жидкости, которую не удалось передать.&lt;br /&gt;
|-&lt;br /&gt;
| '''getLiquidStored'''&lt;br /&gt;
| storage, side&lt;br /&gt;
| Функция получения жидкости, хранящейся в tile entity. В функциях StorageInterface аргумент ''storage&amp;amp;nbsp;''равен ''&amp;quot;input&amp;quot; ''если проверяется жидкость для добавления, и''&amp;quot;output&amp;quot;'' если для извлечения.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Интерфейс хранилища&amp;amp;nbsp;сохраняется в поле ''interface ''объекта&amp;amp;nbsp;tile entity. В экземпляре интерфейса есть следующие указатели:&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''tileEntity ''- на tile entity, к которому он привязан;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''container ''- на контейнер tile entity;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''liquidStorage ''- на хранилище жидкости tileEntity.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Добавление интерфейса для tile entity на примере железной печки из мода IndustrialCraft 2&amp;lt;/div&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;StorageInterface.createInterface(BlockID.ironFurnace, {&lt;br /&gt;
    slots: {&lt;br /&gt;
        &amp;quot;slotSource&amp;quot;: {&lt;br /&gt;
            input: true,&lt;br /&gt;
            isValid: function(item, side){&lt;br /&gt;
                return side != 0 &amp;amp;&amp;amp; Recipes.getFurnaceRecipeResult(item.id, &amp;quot;iron&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;slotFuel&amp;quot;: {&lt;br /&gt;
            input: true, &lt;br /&gt;
            isValid: function(item, side){&lt;br /&gt;
                return side != 1 &amp;amp;&amp;amp; Recipes.getFuelBurnDuration(item.id, item.data) &amp;gt; 0;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;slotResult&amp;quot;: {output: true}&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&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;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Методы для передачи предметов и жидкостей ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestContainers'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Возвращает соседние с блоком на координатах ''coords ''контейнеры в виде массива. Если указан параметр ''side'', то вернёт контейнер с этой стороны. Если ''sideExcluded ''равен ''true'', то наоборот, все контейнеры кроме контейнера с указанной стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestLiquidStorages'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Аналогична предыдущей, но возвращает все соседние tile entity, имеющие хранилища жидкостей.&lt;br /&gt;
|-&lt;br /&gt;
| '''putItems'''&lt;br /&gt;
| items, containers&lt;br /&gt;
| Добавляет предметы из массива items в контейнеры из массива containers. Удобно использовать в связке с методом&amp;amp;nbsp;''getNearestContainers'''''.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''putItemToContainer'''&lt;br /&gt;
| item, container, side, maxCount&lt;br /&gt;
| Метод более низкого уровня, на котором основана работа предыдущего метода. Добавляет стак предметов в контейнер, но позволяет также указать максимальное количество предметов, которое может быть передано за раз.&lt;br /&gt;
|-&lt;br /&gt;
| '''extractItemsFromContainer'''&lt;br /&gt;
| inputTile, container, side, maxCount, oneStack&lt;br /&gt;
| &lt;br /&gt;
Позволяет извлечь предмет из контейнера и добавить его в tile entity.&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будут добавлены предметы&amp;lt;br/&amp;gt; '''container '''- контейнер, из которого будут извлечены предметы&amp;lt;br/&amp;gt; '''maxCount '''- ограничение на количество извлекаемых предметов (по умолчанию нет)&amp;lt;br/&amp;gt; '''oneStack '''- если true, то будет извлечён только один стак предметов.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''transportLiquid'''&lt;br /&gt;
| liquid, maxAmount, outputTile, inputTile, outputSide&lt;br /&gt;
| &lt;br /&gt;
Передаёт жидкость из одного tile entity в другой.&amp;lt;br/&amp;gt; '''liquid&amp;amp;nbsp;'''- название жидкости&amp;lt;br/&amp;gt; '''maxAmount&amp;amp;nbsp;'''- максимальное количество, которое будет передано&amp;lt;br/&amp;gt; '''outputTile&amp;amp;nbsp;'''- tile entity, из которого будет передана жидкость&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будет передана жидкость&amp;lt;br/&amp;gt; '''outputSide&amp;amp;nbsp;'''- сторона, через которую передаётся жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''extractLiquid'''&lt;br /&gt;
| liquid, maxAmount, inputTile, outputTile, inputSide&lt;br /&gt;
| &lt;br /&gt;
Похож на предыдущий, но позволяет извлечь жидкость из tile entity&amp;lt;br/&amp;gt; '''liquid '''- в отличие от предыдущего метода жидкость может быть не указана, тогда извлечёт жидкость, которая хранится в&amp;amp;nbsp;''outputTile''.&amp;lt;br/&amp;gt; '''inputSide '''- сторона, в&amp;amp;nbsp;которую будет поступать жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''checkHoppers'''&lt;br /&gt;
| tileEntity&lt;br /&gt;
| Позволяет tile entity взаимодействовать с воронками. Для этого должна выполняться в функции тика tile entity. Требует интерфейса хранилища у tile entity для работы.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItemToSlot'''&lt;br /&gt;
| item, slot, count&lt;br /&gt;
| Внутренний метод библиотеки для добавления предмета в слот. При использовании на нативном контейнере нужно также установить слот, используя&amp;amp;nbsp;''container.setSlot.''&lt;br /&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Данная библиотека совместима с модами, использующими старый стандарт описания слотов tile entity&amp;amp;nbsp;через функцию&amp;amp;nbsp;''getTransportSlots'', а так же&amp;amp;nbsp;добавляет эту функцию&amp;amp;nbsp;и функцию ''addTransportedItem ''для tile entity при создании его интерфейса.&lt;br /&gt;
&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; &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; &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;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=ModPE/Entity&amp;diff=2470</id>
		<title>ModPE/Entity</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=ModPE/Entity&amp;diff=2470"/>
				<updated>2020-05-20T17:28:07Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Entity - объект ModPE API, предназначеный для работы с сущностями (мобами).&lt;br /&gt;
&lt;br /&gt;
=== Entity.addEffect ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int, par3int, par4int, par5boolean, par6boolean)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getAll ===&lt;br /&gt;
&lt;br /&gt;
Нету параметров&lt;br /&gt;
&lt;br /&gt;
Возвращает Java-массив всех мобов в мире.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getAnimalAge ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getArmor ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getArmorCustomName ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getArmorDamage ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getEntityTypeId ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Возвращает id моба ent.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getExtraData ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2String)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getHealth ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Возвращает количество едениц здоровья моба ent(1 HP = 1 полусердце).&lt;br /&gt;
&lt;br /&gt;
=== Entity.getItemEntityCount ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Если моб ent является дропом(id 64), то вернет его количество.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getItemEntityData ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object)&lt;br /&gt;
&lt;br /&gt;
Если моб ent является дропом(id 64), то вернет его метаданные(data).&lt;br /&gt;
&lt;br /&gt;
=== Entity.getItemEntityId ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Если моб ent является дропом(id 64), то вернет id вещей, которые им представляются.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getMaxHealth ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Возвращает максимальное здоровье моба, которое можно присвоить.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getMobSkin ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getNameTag ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Возвращает &amp;quot;ник&amp;quot; моба.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getPitch ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getRenderType ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Возвращает рендер тип моба.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getRider ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Если моба оседлали, то вернёт объект наездника.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getRiding ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Если моб сидит на другом мобе, то вернет последнего.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getTarget ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Если моб находится в состоянии атаки,&amp;amp;nbsp;то вернет его текущую цель.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getUniqueId ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getVelX ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Вернет ускорение моба по оси X.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getVelY ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Вернет ускорение моба по оси Y.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getVelZ ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Вернет ускорение моба по оси Z.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getX ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object)&lt;br /&gt;
&lt;br /&gt;
Вернет координату X моба.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getY ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent);&lt;br /&gt;
&lt;br /&gt;
Вернет координату Y моба.&lt;br /&gt;
&lt;br /&gt;
=== Entity.getYaw ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
=== Entity.getZ ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Вернет координату X моба.&lt;br /&gt;
&lt;br /&gt;
=== Entity.isSneaking ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object)&lt;br /&gt;
&lt;br /&gt;
=== Entity.remove ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (ent)&lt;br /&gt;
&lt;br /&gt;
Удаляет моба ent.&lt;br /&gt;
&lt;br /&gt;
=== Entity.removeAllEffects ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object)&lt;br /&gt;
&lt;br /&gt;
=== Entity.removeEffect ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.rideAnimal ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2Object)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setAnimalAge ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setArmor ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int, par3int, par4int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setArmorCustomName ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int, par3String)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setCape ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2String)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setCarriedItem ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int, par3int, par4int)&lt;br /&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;
=== Entity.setCollisionSize ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2double, par3double)&lt;br /&gt;
&lt;br /&gt;
Изменяет размер хитбокса для моба (используется чаще всего в читах)&lt;br /&gt;
&lt;br /&gt;
Так-же у некоторых на 1.13 и выше не рпботает.&lt;br /&gt;
&lt;br /&gt;
Значения: par1Object - обьект, par2double - ширина(в блоках) par3double - высота(в блоках) &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entity.setExtraData ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2String, par3String)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setFireTicks ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setHealth ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setImmobile ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2boolean)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setMaxHealth ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2int)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setMobSkin ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2String)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setNameTag ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2String)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setPosition ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2double, par3double, par4double)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setPositionRelative ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2double, par3double, par4double)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setRenderType ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2Object)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setRot ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2double, par3double)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setSneaking ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2boolean)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setTarget ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2Object)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setVelX ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2double)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setVelY ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2double)&lt;br /&gt;
&lt;br /&gt;
=== Entity.setVelZ ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1Object, par2double)&lt;br /&gt;
&lt;br /&gt;
=== Entity.spawnMob ===&lt;br /&gt;
&lt;br /&gt;
Параметры: (par1double, par2double, par3double, par4int, par5String)&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B&amp;diff=2464</id>
		<title>InnerCore/Рецепты</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B&amp;diff=2464"/>
				<updated>2020-05-02T20:33:17Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Recipes.getRecipeResult вместо Recipes.provideRecipe&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;&amp;lt;div class=&amp;quot;b-pageLayout b-pageLayout__xs&amp;quot; data-layout=&amp;quot;xs&amp;quot; id=&amp;quot;pageLayout&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;b-pageContent m-pageContent__withoutLeft m-pageContent__withoutRight&amp;quot; id=&amp;quot;pageContent&amp;quot;&amp;gt;&lt;br /&gt;
Добавление рецептов крафта и переплавки - то, без чего не обойдется никакой мод.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Рецепты верстака ===&lt;br /&gt;
&lt;br /&gt;
Рецепты верстака бывают 2х типов:&lt;br /&gt;
&lt;br /&gt;
*форменные - предмет должен быть выложен на верстаке в определенной форме. Если меньше, чем 3х3, то он может быть выложен в любой области верстака для его выполнения. &lt;br /&gt;
*бесформенные - требует лишь соблюдения присутсвия и кол-ва предметов в сетке крафта, но не требует порядка &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; Для добавления форменных рецептов используется функция Recipes.addShaped({id: id, count: кол-во, data: data}, [форма рецепта], [ингридиенты], функция выполнения function(api, field, result){}, префикс) - в обычном рецепте последние 2 параметра можно и нужно опустить, о них будет рассказано позже.&lt;br /&gt;
&lt;br /&gt;
*api - содержит объект апи содержащий следущие параметры: &lt;br /&gt;
**contatiner, getClass, wait, isPrevented, notifyAll, decreaseFieldSlot, notify, prevent, fieldSlot, getFieldSlot, hashCode, equals, toString, class, prevented.   &lt;br /&gt;
*field - массив идентификаторов слотов 0-8, содержащие: id, count, data, extra. для получения содержания слота используется field[slotID].parameter &lt;br /&gt;
*result - содержит сам предмет который возвращается в инвентарь при удачном крафте. Параметры result содержат: id, count, data, extra. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Форма рецепта задается массивом строк, которые соответсвуют строкам в форме рецепта, где каждый символ означает предмет, а пробел - отсутсвие предмета. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Ингридиенты это массив, в котором данные идут в порядке ['символ1', id1, data1, 'символ2', id2, data2, ...], и так для всех символов, которые использовались в форме рецепта, кроме пробела. Если data предмета не важна (к примеру вы хотите, чтобы в рецепте использовались доски любого типа), то вместо нее напишите -1. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Кол-ва строк может быть меньше 3, если столько не нужно.&amp;amp;nbsp; Пример рецепта:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;Recipes.addShaped({id: 264, count: 1, data: 0}, /* Результат крафта */&lt;br /&gt;
	[&amp;quot;ax&amp;quot;, &amp;quot;xa&amp;quot;, &amp;quot;ax&amp;quot;], /* Форма рецепта */&lt;br /&gt;
	['x', 265, 0, 'a', 266, 0]/* Ингридиенты */&lt;br /&gt;
); &lt;br /&gt;
/* добавит рецепт алмаза, который создается из 3 железных и 3 золотых слитков, где x - железо, a - золото */&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;Recipes.addShaped({id: 264, count: 1, data: 0}, &lt;br /&gt;
	[&amp;quot;ax &amp;quot;,&amp;quot;xa &amp;quot;,&amp;quot;ax &amp;quot;],&lt;br /&gt;
	['x', 265, 0, 'a', 266, 0]&lt;br /&gt;
);&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;Recipes.addShapeless(&lt;br /&gt;
	{id: 264, count: 1, data: 0},&lt;br /&gt;
	[{id: 265, data: 0}, {id: 265, data: 0}, {id: 265, data: 0},&lt;br /&gt;
	 {id: 266, data: 0}, {id: 266, data: 0}, {id: 266, data: 0}]&lt;br /&gt;
);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Recipes.addShapeless({id: id, count: кол-во, data: data}, [{id: id1, data: data1}, {id: id2, data: data2}, ...], функция выполнения, префикс) - добавление бесформенных рецептов. &lt;br /&gt;
*Recipes.deleteRecipe({id: id, count: кол-во, data: data}) - удаляет все рецепты для данного предмета. &lt;br /&gt;
*Recipes.replaceWithShaped({id: id, count: кол-во, data: data}, форма рецепта, определение предметов, функция выполнения, префикс) - аналогична Recipes.addShaped, заменяет все остальные рецепты для этого предмета. &lt;br /&gt;
*Recipes.replaceWithShapeless({id: id, count: кол-во, data: data}, форма рецепта, определение предметов, функция выполнения, префикс) - аналогична Recipes.addShapeless, заменяет все остальные рецепты для этого предмета. &lt;br /&gt;
&lt;br /&gt;
=== Функция крафта ===&lt;br /&gt;
&lt;br /&gt;
К любому рецепту крафта может быть добавлена функция, вызывающуюся после совершения крафта. Пример раскрафта алмазной мотыги на составляющие:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Recipes.addShapeless({id: 264, count: 1, data: 0}, [{id: 293, data: 0}], function(api, field, result){ &lt;br /&gt;
    Player.addItemToInventory(ItemID.280, 2); &lt;br /&gt;
});&amp;lt;/syntaxhighlight&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;
Для добавления рецепта печи используется метод Recipes.addFurnace(id сырья, id результата, data результата, префикс) - для обычного рецепта параметры префикс не нужен.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Recipes.addFurnace(265, 264, 0); // переплавка железа в алмаз&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же этот метод имеет еще одну вариацию&amp;amp;nbsp; Recipes.addFurnace(id сырья, data сырья, id результата, data результата, префикс)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Recipes.addFurnace(351, 4, 280, 0); //Переплавка лазурита в палку&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&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;
&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;
=== Получение рецептов верстака и печи ===&lt;br /&gt;
&lt;br /&gt;
Есть возможность получать рецепты верстака или печи. Для этого есть функции:&lt;br /&gt;
&lt;br /&gt;
Для верстака:&lt;br /&gt;
&lt;br /&gt;
*Recipes.getRecipeByField(контейнер, префикс, игнорировать префикс); //&amp;lt;u&amp;gt;крафт&amp;lt;/u&amp;gt; по входным слотам (должны называтся от slot0 до slot8) &lt;br /&gt;
*Recipes.getRecipeResult(контейнер, префикс) //&amp;lt;u&amp;gt;результат&amp;lt;/u&amp;gt; по входным слотам (должны называтся от slot0 до slot8) &lt;br /&gt;
*Recipes.getWorkbenchRecipesByIngredient(id, data); //&amp;lt;u&amp;gt;список крафтов&amp;lt;/u&amp;gt; с инградиентом &lt;br /&gt;
*Recipes.getWorkbenchRecipesByResult(id, кол-во, data); //&amp;lt;u&amp;gt;список крафтов&amp;lt;/u&amp;gt; с результатом &lt;br /&gt;
&lt;br /&gt;
Для печи:&lt;br /&gt;
&lt;br /&gt;
*Recipes.getFurnaceRecipesByResult(); //&amp;lt;u&amp;gt;список всех&amp;lt;/u&amp;gt; рецептов печи (по задумке должен принимать id, data и префикс выходного предмета и возвращать только рецепты с ним, но в данный момент эта функция сломана и возвращает список всех рецептов независимо от аргументов) &lt;br /&gt;
*Recipes.getFurnaceRecipeResult(id, data, префикс); //принимает входной предмет и возвращает результат &lt;br /&gt;
&lt;br /&gt;
Для того чтобы указать любое значение количиства или data можно использовать -1.&lt;br /&gt;
&lt;br /&gt;
Работа с объектами рецептов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
var recipe_list=Recipes.getWorkbenchRecipesByResult(278, 1, 0);&lt;br /&gt;
&lt;br /&gt;
//количество елементов в списке: recipe_list.size();&lt;br /&gt;
&lt;br /&gt;
//получение одного рецепта из списка:&lt;br /&gt;
  var recipe=recipe_list.get(елемент);&lt;br /&gt;
  //или (если первый не работает используйте второй)&lt;br /&gt;
  var recipe=recipe_list.toArray()[елемент];&lt;br /&gt;
&lt;br /&gt;
//получение результата&lt;br /&gt;
recipe.result&lt;br /&gt;
//получение входного слота печи&lt;br /&gt;
recipe.inId   recipe.inData&lt;br /&gt;
//получение входных слотов верстака&lt;br /&gt;
var slots=recipe.getSortedEntries();&lt;br /&gt;
slots[номер слота от 0 до 8]&lt;br /&gt;
&lt;br /&gt;
//получение префикса: recipe.prefix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2463</id>
		<title>InnerCore/Список коллбеков</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2463"/>
				<updated>2020-05-02T20:10:48Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Собыитя мира ==&lt;br /&gt;
&lt;br /&gt;
=== LevelCreated ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelCreated', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при создании мира &lt;br /&gt;
=== LevelSelected ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelSelected', function (levelName, levelPath) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при выборе мира и отдает: имя мира, путь к папке мира &lt;br /&gt;
=== LevelPreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке мира &lt;br /&gt;
=== LevelLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версиях Inner Core до Horizon. Вызывается во время загрузки мира в версии для Horizon &lt;br /&gt;
=== LevelDisplayed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelDisplayed', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версии Inner Core для Horizon &lt;br /&gt;
=== LevelPreLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предвыходе из мира &lt;br /&gt;
=== LevelLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном выходе из мира&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Сохранения Saver==&lt;br /&gt;
===ReadSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ReadSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при чтении данных&lt;br /&gt;
&lt;br /&gt;
===WriteSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('WriteSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при сохранении данных&lt;br /&gt;
&lt;br /&gt;
==Генерация==&lt;br /&gt;
===GenerateNetherChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateNetherChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Аду&lt;br /&gt;
&lt;br /&gt;
===GenerateEndChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateEndChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Краю&lt;br /&gt;
&lt;br /&gt;
===GenerateChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире&lt;br /&gt;
&lt;br /&gt;
===GenerateChunkUndeground===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunkUndeground', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире под землей&lt;br /&gt;
&lt;br /&gt;
==Игровой тик==&lt;br /&gt;
&lt;br /&gt;
===Tick===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('tick', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается каждый игровой тик, очень нагружен и нестабилен&amp;lt;/div&amp;gt;&lt;br /&gt;
&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;
=== DestroyBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlock', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном разрушении блока &lt;br /&gt;
=== DestroyBlockStart ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockStart', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале разрушения блока &lt;br /&gt;
=== DestroyBlockContinue ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockContinue', function (coords, block, progress, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при продолжении разрушения блока &lt;br /&gt;
=== Explosion ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('Explosion', function (coords, params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при любом взрыве Объект params имеет следущий вид &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
  power: number, // Сила взрыва&lt;br /&gt;
  entity: [], // Список Entity задетых взрывом&lt;br /&gt;
  onFire: boolean, // Был ли взрыв с огнем&lt;br /&gt;
  someBool: boolean, // Неизвестное значение&lt;br /&gt;
  someFloat: number, // Неизвестное значение&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RedstoneSignal ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('RedstoneSignal', function (params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при передаче редстоун сигнала &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;[&lt;br /&gt;
  {&lt;br /&gt;
    power: number, // Сила сигнала&lt;br /&gt;
    signal: number, // Тоже сила сигнала ...?&lt;br /&gt;
    onLoad: boolean // При загрузке ...?&lt;br /&gt;
  },&lt;br /&gt;
   block // стандартные свойства блока&lt;br /&gt;
]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BlockChanged ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BlockChanged', function (coords, block1, block2, int1, int2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вызывается при изменении состояния блока(работает только в Horizon)&lt;br /&gt;
&lt;br /&gt;
block1 - изначальный блок&lt;br /&gt;
&lt;br /&gt;
block2 - новый блок&lt;br /&gt;
&lt;br /&gt;
Значение чисел int1 и int2 временно не известно&lt;br /&gt;
&lt;br /&gt;
'''''ВАЖНО: по умолчанию этот коллбек не будет реагировать не на один блок. Для включения обнаружения нужных блоков можна воспользоватся:'''''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt; World.setBlockChangeCallbackEnabled(id блока, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BuildBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BuildBlock', function (coords, block, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при постановке блока &lt;br /&gt;
=== CustomBlockTessellation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CustomBlockTessellation', function (api, coords, block, boolean) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении 3д модели кастомного блока&lt;br /&gt;
&lt;br /&gt;
==Чат==&lt;br /&gt;
===NativeCommand===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeCommand', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при вызове нативной команды&lt;br /&gt;
&lt;br /&gt;
===ClientChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ClientChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в чат&lt;br /&gt;
&lt;br /&gt;
===ServerChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ServerChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в сервеный чат&lt;br /&gt;
&lt;br /&gt;
== Предмет ==&lt;br /&gt;
&lt;br /&gt;
=== ItemUse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUse', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Не срабатывает при нажатии по блокам из ванильного майнкрафта, которые уже имеют какое-то действие по нажатию добавленое самим майнкрафтом. &lt;br /&gt;
=== ItemUseLocalServer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseLocalServer', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Работает со всеми блоками. &lt;br /&gt;
=== FoodEaten ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('FoodEaten', function (food, satRatio) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при съедении еды &lt;br /&gt;
=== ItemIconOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemIconOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении иконки предмета &lt;br /&gt;
=== ItemNameOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemNameOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении имени предмета &lt;br /&gt;
=== ItemUseNoTarget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseNoTarget', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании предмета в воздухе &lt;br /&gt;
=== ItemUsingReleased ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingReleased', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале использования предмета &lt;br /&gt;
=== ItemUsingComplete ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingComplete', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при завершении использования предмета &lt;br /&gt;
=== ItemDispensed ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemDispensed', function (coords, item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при дропе предмета из раздатчика&lt;br /&gt;
&lt;br /&gt;
==Игрок==&lt;br /&gt;
===PlayerAttack===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PlayerAttack', function (player, victim) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе игроком сущности&lt;br /&gt;
&lt;br /&gt;
===ExpAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpAdd', function (amount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении опыта игроку&lt;br /&gt;
&lt;br /&gt;
===ExpLevelAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpLevelAdd', function (levelAmount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении уровней игроку&lt;br /&gt;
&lt;br /&gt;
==Сущности Entity==&lt;br /&gt;
===EntityAdded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityAdded', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при спавне новой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityRemoved===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityRemoved', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при уничтожении сущности&lt;br /&gt;
&lt;br /&gt;
===EntityDeath===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityDeath', function (entity, attacker, damageType) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при при полной смерти сущности&lt;br /&gt;
&lt;br /&gt;
===EntityHurt===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityHurt', function (attacker, victim, damageValue, damageType, someBool1, someBool2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе по любой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityInteract===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityInteract', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при взаимодействии с сущностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Кидаемый предмет==&lt;br /&gt;
===ProjectileHit===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHit', function (projectile, item, target) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в цель target&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitBlock===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitBlock', function (projectile, coords, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в блок&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitEntity===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitEntity', function (projectile, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в существо&lt;br /&gt;
&lt;br /&gt;
==Интерфейс==&lt;br /&gt;
===NativeGuiChanged===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeGuiChanged', function (screenName) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении нативных экранов&lt;br /&gt;
&lt;br /&gt;
==Мод==&lt;br /&gt;
===ModDirLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ModDirLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что папка мода полностью загружена&lt;br /&gt;
&lt;br /&gt;
===PreBlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PreBlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки почти созданы&lt;br /&gt;
&lt;br /&gt;
===BlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('BlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки созданы полностью&lt;br /&gt;
&lt;br /&gt;
== Этап загрузки лаунчера ==&lt;br /&gt;
&lt;br /&gt;
Вызываются после надписи Post Initialization...&lt;br /&gt;
&lt;br /&gt;
=== CoreConfigured ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CoreConfigured', function (config) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке файла настроек InnerCore &lt;br /&gt;
=== PreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('PreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке &lt;br /&gt;
=== APILoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('APILoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке всех апи &lt;br /&gt;
=== ModsLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ModsLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что все моды были загружены &lt;br /&gt;
=== PostLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('PostLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при оконачательной загрузке&lt;br /&gt;
&lt;br /&gt;
==Приложение==&lt;br /&gt;
=== AppSuspended ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('AppSuspended', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при остановке/паузе приложения(Работает только если игрок находится в мире)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Измерения==&lt;br /&gt;
===DimensionLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DimensionLoaded', function (dimension) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке измерения&lt;br /&gt;
Передает идентификатор измерения dimension&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2462</id>
		<title>InnerCore/Список коллбеков</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2462"/>
				<updated>2020-05-02T20:05:34Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Собыитя мира ==&lt;br /&gt;
&lt;br /&gt;
=== LevelCreated ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelCreated', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при создании мира &lt;br /&gt;
=== LevelSelected ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelSelected', function (levelName, levelPath) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при выборе мира и отдает: имя мира, путь к папке мира &lt;br /&gt;
=== LevelPreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке мира &lt;br /&gt;
=== LevelLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версиях Inner Core до Horizon. Вызывается во время загрузки мира в версии для Horizon &lt;br /&gt;
=== LevelDisplayed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelDisplayed', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версии Inner Core для Horizon &lt;br /&gt;
=== LevelPreLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предвыходе из мира &lt;br /&gt;
=== LevelLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном выходе из мира&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Сохранения Saver==&lt;br /&gt;
===ReadSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ReadSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при чтении данных&lt;br /&gt;
&lt;br /&gt;
===WriteSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('WriteSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при сохранении данных&lt;br /&gt;
&lt;br /&gt;
==Генерация==&lt;br /&gt;
===GenerateNetherChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateNetherChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Аду&lt;br /&gt;
&lt;br /&gt;
===GenerateEndChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateEndChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Краю&lt;br /&gt;
&lt;br /&gt;
===GenerateChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире&lt;br /&gt;
&lt;br /&gt;
===GenerateChunkUndeground===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunkUndeground', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире под землей&lt;br /&gt;
&lt;br /&gt;
==Игровой тик==&lt;br /&gt;
&lt;br /&gt;
===Tick===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('tick', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается каждый игровой тик, очень нагружен и нестабилен&amp;lt;/div&amp;gt;&lt;br /&gt;
&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;
=== DestroyBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlock', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном разрушении блока &lt;br /&gt;
=== DestroyBlockStart ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockStart', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале разрушения блока &lt;br /&gt;
=== DestroyBlockContinue ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockContinue', function (coords, block, progress, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при продолжении разрушения блока &lt;br /&gt;
=== Explosion ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('Explosion', function (coords, params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при любом взрыве Объект params имеет следущий вид &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
  power: number, // Сила взрыва&lt;br /&gt;
  entity: [], // Список Entity задетых взрывом&lt;br /&gt;
  onFire: boolean, // Был ли взрыв с огнем&lt;br /&gt;
  someBool: boolean, // Неизвестное значение&lt;br /&gt;
  someFloat: number, // Неизвестное значение&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RedstoneSignal ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('RedstoneSignal', function (params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при передаче редстоун сигнала &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;[&lt;br /&gt;
  {&lt;br /&gt;
    power: number, // Сила сигнала&lt;br /&gt;
    signal: number, // Тоже сила сигнала ...?&lt;br /&gt;
    onLoad: boolean // При загрузке ...?&lt;br /&gt;
  },&lt;br /&gt;
   block // стандартные свойства блока&lt;br /&gt;
]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BlockChanged ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BlockChanged', function (coords, block1, block2, int1, int2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вызывается при изменении состояния блока(работает только в Horizon)&lt;br /&gt;
&lt;br /&gt;
block1 - изначальный блок&lt;br /&gt;
&lt;br /&gt;
block2 - новый блок&lt;br /&gt;
&lt;br /&gt;
Значение чисел int1 и int2 временно не известно&lt;br /&gt;
&lt;br /&gt;
'''''ВАЖНО: по умолчанию этот коллбек не будет реагировать не на один блок. Для включения обнаружения нужных блоков можна воспользоватся:'''''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt; World.setBlockChangeCallbackEnabled(id блока, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BuildBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BuildBlock', function (coords, block, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при постановке блока &lt;br /&gt;
=== CustomBlockTessellation ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CustomBlockTessellation', function (api, coords, block, boolean) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении 3д модели кастомного блока&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;
===NativeCommand===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeCommand', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при вызове нативной команды&lt;br /&gt;
&lt;br /&gt;
===ClientChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ClientChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в чат&lt;br /&gt;
&lt;br /&gt;
===ServerChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ServerChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в сервеный чат&lt;br /&gt;
&lt;br /&gt;
== Предмет ==&lt;br /&gt;
&lt;br /&gt;
=== ItemUse ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUse', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Не срабатывает при нажатии по блокам из ванильного майнкрафта, которые уже имеют какое-то действие по нажатию добавленое самим майнкрафтом. &lt;br /&gt;
=== ItemUseLocalServer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseLocalServer', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Работает со всеми блоками. &lt;br /&gt;
=== FoodEaten ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('FoodEaten', function (food, satRatio) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при съедении еды &lt;br /&gt;
=== ItemIconOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemIconOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении иконки предмета &lt;br /&gt;
=== ItemNameOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemNameOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении имени предмета &lt;br /&gt;
=== ItemUseNoTarget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseNoTarget', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании предмета в воздухе &lt;br /&gt;
=== ItemUsingReleased ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingReleased', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале использования предмета &lt;br /&gt;
=== ItemUsingComplete ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingComplete', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при завершении использования предмета &lt;br /&gt;
=== ItemDispensed ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemDispensed', function (coords, item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при дропе предмета из раздатчика&lt;br /&gt;
&lt;br /&gt;
==Игрок==&lt;br /&gt;
===PlayerAttack===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PlayerAttack', function (player, victim) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе игроком сущности&lt;br /&gt;
&lt;br /&gt;
===ExpAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpAdd', function (amount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении опыта игроку&lt;br /&gt;
&lt;br /&gt;
===ExpLevelAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpLevelAdd', function (levelAmount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении уровней игроку&lt;br /&gt;
&lt;br /&gt;
==Сущности Entity==&lt;br /&gt;
===EntityAdded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityAdded', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при спавне новой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityRemoved===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityRemoved', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при уничтожении сущности&lt;br /&gt;
&lt;br /&gt;
===EntityDeath===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityDeath', function (entity, attacker, damageType) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при при полной смерти сущности&lt;br /&gt;
&lt;br /&gt;
===EntityHurt===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityHurt', function (attacker, victim, damageValue, damageType, someBool1, someBool2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе по любой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityInteract===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityInteract', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при взаимодействии с сущностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Кидаемый предмет==&lt;br /&gt;
===ProjectileHit===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHit', function (projectile, item, target) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в цель target&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitBlock===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitBlock', function (projectile, coords, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в блок&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitEntity===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitEntity', function (projectile, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в существо&lt;br /&gt;
&lt;br /&gt;
==Интерфейс==&lt;br /&gt;
===NativeGuiChanged===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeGuiChanged', function (screenName) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении нативных экранов&lt;br /&gt;
&lt;br /&gt;
==Мод==&lt;br /&gt;
===ModDirLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ModDirLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что папка мода полностью загружена&lt;br /&gt;
&lt;br /&gt;
===PreBlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PreBlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки почти созданы&lt;br /&gt;
&lt;br /&gt;
===BlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('BlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки созданы полностью&lt;br /&gt;
&lt;br /&gt;
== Этап загрузки лаунчера ==&lt;br /&gt;
&lt;br /&gt;
Вызываются после надписи Post Initialization...&lt;br /&gt;
&lt;br /&gt;
=== CoreConfigured ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CoreConfigured', function (config) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке файла настроек InnerCore &lt;br /&gt;
=== PreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('PreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке &lt;br /&gt;
=== APILoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('APILoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке всех апи &lt;br /&gt;
=== ModsLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ModsLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что все моды были загружены &lt;br /&gt;
=== PostLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('PostLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при оконачательной загрузке&lt;br /&gt;
&lt;br /&gt;
==Приложение==&lt;br /&gt;
=== AppSuspended ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('AppSuspended', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при остановке/паузе приложения(Работает только если игрок находится в мире)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Измерения==&lt;br /&gt;
===DimensionLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DimensionLoaded', function (dimension) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке измерения&lt;br /&gt;
Передает идентификатор измерения dimension&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2461</id>
		<title>InnerCore/Список коллбеков</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2461"/>
				<updated>2020-05-02T20:01:48Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Собыитя мира ==&lt;br /&gt;
&lt;br /&gt;
=== LevelCreated ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelCreated', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при создании мира &lt;br /&gt;
=== LevelSelected ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelSelected', function (levelName, levelPath) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при выборе мира и отдает: имя мира, путь к папке мира &lt;br /&gt;
=== LevelPreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке мира &lt;br /&gt;
=== LevelLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версиях Inner Core до Horizon. Вызывается во время загрузки мира в версии для Horizon &lt;br /&gt;
=== LevelDisplayed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelDisplayed', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версии Inner Core для Horizon &lt;br /&gt;
=== LevelPreLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предвыходе из мира &lt;br /&gt;
=== LevelLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном выходе из мира&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Сохранения Saver==&lt;br /&gt;
===ReadSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ReadSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при чтении данных&lt;br /&gt;
&lt;br /&gt;
===WriteSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('WriteSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при сохранении данных&lt;br /&gt;
&lt;br /&gt;
==Генерация==&lt;br /&gt;
===GenerateNetherChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateNetherChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Аду&lt;br /&gt;
&lt;br /&gt;
===GenerateEndChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateEndChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Краю&lt;br /&gt;
&lt;br /&gt;
===GenerateChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире&lt;br /&gt;
&lt;br /&gt;
===GenerateChunkUndeground===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunkUndeground', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире под землей&lt;br /&gt;
&lt;br /&gt;
==Игровой тик==&lt;br /&gt;
&lt;br /&gt;
===Tick===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('tick', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается каждый игровой тик, очень нагружен и нестабилен&amp;lt;/div&amp;gt;&lt;br /&gt;
&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;
=== DestroyBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlock', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном разрушении блока &lt;br /&gt;
=== DestroyBlockStart ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockStart', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале разрушения блока &lt;br /&gt;
=== DestroyBlockContinue ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockContinue', function (coords, block, progress, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при продолжении разрушения блока &lt;br /&gt;
=== Explosion ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('Explosion', function (coords, params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при любом взрыве Объект params имеет следущий вид &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
  power: number, // Сила взрыва&lt;br /&gt;
  entity: [], // Список Entity задетых взрывом&lt;br /&gt;
  onFire: boolean, // Был ли взрыв с огнем&lt;br /&gt;
  someBool: boolean, // Неизвестное значение&lt;br /&gt;
  someFloat: number, // Неизвестное значение&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RedstoneSignal ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('RedstoneSignal', function (params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при передаче редстоун сигнала &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;[&lt;br /&gt;
  {&lt;br /&gt;
    power: number, // Сила сигнала&lt;br /&gt;
    signal: number, // Тоже сила сигнала ...?&lt;br /&gt;
    onLoad: boolean // При загрузке ...?&lt;br /&gt;
  },&lt;br /&gt;
   block // стандартные свойства блока&lt;br /&gt;
]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BlockChanged ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BlockChanged', function (coords, block1, block2, int1, int2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вызывается при изменении состояния блока(работает только в Horizon)&lt;br /&gt;
&lt;br /&gt;
block1 - изначальный блок&lt;br /&gt;
&lt;br /&gt;
block2 - новый блок&lt;br /&gt;
&lt;br /&gt;
Значение чисел int1 и int2 временно не известно&lt;br /&gt;
&lt;br /&gt;
'''''ВАЖНО: по умолчанию этот коллбек не будет реагировать не на один блок. Для включения обнаружения нужных блоков можна воспользоватся:'''''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt; World.setBlockChangeCallbackEnabled(id блока, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BuildBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BuildBlock', function (coords, block, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при постановке блока &lt;br /&gt;
=== CustomBlockTessellation ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CustomBlockTessellation', function (api, coords, block, boolean) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении 3д модели кастомного блока&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;
===NativeCommand===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeCommand', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при вызове нативной команды&lt;br /&gt;
&lt;br /&gt;
===ClientChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ClientChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в чат&lt;br /&gt;
&lt;br /&gt;
===ServerChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ServerChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в сервеный чат&lt;br /&gt;
&lt;br /&gt;
== Предмет ==&lt;br /&gt;
&lt;br /&gt;
=== ItemUse ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUse', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Не срабатывает при нажатии по блокам из ванильного майнкрафта, которые уже имеют какое-то действие по нажатию добавленое самим майнкрафтом. &lt;br /&gt;
=== ItemUseLocalServer ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseLocalServer', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Работает со всеми блоками. &lt;br /&gt;
=== FoodEaten ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('FoodEaten', function (food, satRatio) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при съедении еды &lt;br /&gt;
=== ItemIconOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemIconOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении иконки предмета &lt;br /&gt;
=== ItemNameOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemNameOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении имени предмета &lt;br /&gt;
=== ItemUseNoTarget ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseNoTarget', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании предмета в воздухе &lt;br /&gt;
=== ItemUsingReleased ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingReleased', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале использования предмета &lt;br /&gt;
=== ItemUsingComplete ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingComplete', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при завершении использования предмета &lt;br /&gt;
=== ItemDispensed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemDispensed', function (coords, item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при дропе предмета из раздатчика&lt;br /&gt;
&lt;br /&gt;
==Игрок==&lt;br /&gt;
===PlayerAttack===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PlayerAttack', function (player, victim) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе игроком сущности&lt;br /&gt;
&lt;br /&gt;
===ExpAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpAdd', function (amount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении опыта игроку&lt;br /&gt;
&lt;br /&gt;
===ExpLevelAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpLevelAdd', function (levelAmount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении уровней игроку&lt;br /&gt;
&lt;br /&gt;
==Сущности Entity==&lt;br /&gt;
===EntityAdded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityAdded', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при спавне новой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityRemoved===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityRemoved', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при уничтожении сущности&lt;br /&gt;
&lt;br /&gt;
===EntityDeath===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityDeath', function (entity, attacker, damageType) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при при полной смерти сущности&lt;br /&gt;
&lt;br /&gt;
===EntityHurt===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityHurt', function (attacker, victim, damageValue, damageType, someBool1, someBool2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе по любой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityInteract===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityInteract', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при взаимодействии с сущностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Кидаемый предмет==&lt;br /&gt;
===ProjectileHit===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHit', function (projectile, item, target) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в цель target&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitBlock===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitBlock', function (projectile, coords, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в блок&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitEntity===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitEntity', function (projectile, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в существо&lt;br /&gt;
&lt;br /&gt;
==Интерфейс==&lt;br /&gt;
===NativeGuiChanged===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeGuiChanged', function (screenName) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении нативных экранов&lt;br /&gt;
&lt;br /&gt;
==Мод==&lt;br /&gt;
===ModDirLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ModDirLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что папка мода полностью загружена&lt;br /&gt;
&lt;br /&gt;
===PreBlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PreBlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки почти созданы&lt;br /&gt;
&lt;br /&gt;
===BlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('BlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки созданы полностью&lt;br /&gt;
&lt;br /&gt;
== Этап загрузки лаунчера ==&lt;br /&gt;
&lt;br /&gt;
Вызываются после надписи Post Initialization...&lt;br /&gt;
&lt;br /&gt;
=== CoreConfigured ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CoreConfigured', function (config) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке файла настроек InnerCore &lt;br /&gt;
=== PreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('PreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке &lt;br /&gt;
=== APILoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('APILoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке всех апи &lt;br /&gt;
=== ModsLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ModsLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что все моды были загружены &lt;br /&gt;
=== PostLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('PostLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при оконачательной загрузке&lt;br /&gt;
&lt;br /&gt;
==Приложение==&lt;br /&gt;
=== AppSuspended ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('AppSuspended', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при остановке/паузе приложения(Работает только если игрок находится в мире)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Измерения==&lt;br /&gt;
===DimensionLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DimensionLoaded', function (dimension) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке измерения&lt;br /&gt;
Передает идентификатор измерения dimension&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2460</id>
		<title>InnerCore/Список коллбеков</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2460"/>
				<updated>2020-05-02T19:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Коллбек CoreConfigured&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Собыитя мира ==&lt;br /&gt;
&lt;br /&gt;
=== LevelCreated ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelCreated', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при создании мира &lt;br /&gt;
=== LevelSelected ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelSelected', function (levelName, levelPath) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при выборе мира и отдает: имя мира, путь к папке мира &lt;br /&gt;
=== LevelPreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке мира &lt;br /&gt;
=== LevelLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версиях Inner Core до Horizon. Вызывается во время загрузки мира в версии для Horizon &lt;br /&gt;
=== LevelDisplayed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelDisplayed', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версии Inner Core для Horizon &lt;br /&gt;
=== LevelPreLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предвыходе из мира &lt;br /&gt;
=== LevelLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном выходе из мира&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Сохранения Saver==&lt;br /&gt;
===ReadSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ReadSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при чтении данных&lt;br /&gt;
&lt;br /&gt;
===WriteSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('WriteSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при сохранении данных&lt;br /&gt;
&lt;br /&gt;
==Генерация==&lt;br /&gt;
===GenerateNetherChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateNetherChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Аду&lt;br /&gt;
&lt;br /&gt;
===GenerateEndChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateEndChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Краю&lt;br /&gt;
&lt;br /&gt;
===GenerateChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире&lt;br /&gt;
&lt;br /&gt;
===GenerateChunkUndeground===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunkUndeground', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире под землей&lt;br /&gt;
&lt;br /&gt;
==Игровой тик==&lt;br /&gt;
&lt;br /&gt;
===Tick===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('tick', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается каждый игровой тик, очень нагружен и нестабилен&amp;lt;/div&amp;gt;&lt;br /&gt;
&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;
=== DestroyBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlock', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном разрушении блока &lt;br /&gt;
=== DestroyBlockStart ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockStart', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале разрушения блока &lt;br /&gt;
=== DestroyBlockContinue ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockContinue', function (coords, block, progress, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при продолжении разрушения блока &lt;br /&gt;
=== Explosion ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('Explosion', function (coords, params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при любом взрыве Объект params имеет следущий вид &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
  power: number, // Сила взрыва&lt;br /&gt;
  entity: [], // Список Entity задетых взрывом&lt;br /&gt;
  onFire: boolean, // Был ли взрыв с огнем&lt;br /&gt;
  someBool: boolean, // Неизвестное значение&lt;br /&gt;
  someFloat: number, // Неизвестное значение&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RedstoneSignal ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('RedstoneSignal', function (params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при передаче редстоун сигнала &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;[&lt;br /&gt;
  {&lt;br /&gt;
    power: number, // Сила сигнала&lt;br /&gt;
    signal: number, // Тоже сила сигнала ...?&lt;br /&gt;
    onLoad: boolean // При загрузке ...?&lt;br /&gt;
  },&lt;br /&gt;
   block // стандартные свойства блока&lt;br /&gt;
]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BlockChanged ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BlockChanged', function (coords, block1, block2, int1, int2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вызывается при изменении состояния блока(работает только в Horizon)&lt;br /&gt;
&lt;br /&gt;
block1 - изначальный блок&lt;br /&gt;
&lt;br /&gt;
block2 - новый блок&lt;br /&gt;
&lt;br /&gt;
Значение чисел int1 и int2 временно не известно&lt;br /&gt;
&lt;br /&gt;
'''''ВАЖНО: по умолчанию этот коллбек не будет реагировать не на один блок. Для включения обнаружения нужных блоков можна воспользоватся:'''''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt; World.setBlockChangeCallbackEnabled(id блока, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BuildBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BuildBlock', function (coords, block, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при постановке блока &lt;br /&gt;
=== CustomBlockTessellation ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CustomBlockTessellation', function (api, coords, block, boolean) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении 3д модели кастомного блока&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;
===NativeCommand===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeCommand', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при вызове нативной команды&lt;br /&gt;
&lt;br /&gt;
===ClientChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ClientChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в чат&lt;br /&gt;
&lt;br /&gt;
===ServerChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ServerChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в сервеный чат&lt;br /&gt;
&lt;br /&gt;
== Предмет ==&lt;br /&gt;
&lt;br /&gt;
=== ItemUse ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUse', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Не срабатывает при нажатии по блокам из ванильного майнкрафта, которые уже имеют какое-то действие по нажатию добавленое самим майнкрафтом. &lt;br /&gt;
=== ItemUseLocalServer ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseLocalServer', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Работает со всеми блоками. &lt;br /&gt;
=== FoodEaten ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('FoodEaten', function (food, satRatio) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при съедении еды &lt;br /&gt;
=== ItemIconOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemIconOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении иконки предмета &lt;br /&gt;
=== ItemNameOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemNameOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении имени предмета &lt;br /&gt;
=== ItemUseNoTarget ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseNoTarget', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании предмета в воздухе &lt;br /&gt;
=== ItemUsingReleased ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingReleased', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале использования предмета &lt;br /&gt;
=== ItemUsingComplete ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingComplete', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при завершении использования предмета &lt;br /&gt;
=== ItemDispensed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemDispensed', function (coords, item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при дропе предмета из раздатчика&lt;br /&gt;
&lt;br /&gt;
==Игрок==&lt;br /&gt;
===PlayerAttack===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PlayerAttack', function (player, victim) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе игроком сущности&lt;br /&gt;
&lt;br /&gt;
===ExpAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpAdd', function (amount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении опыта игроку&lt;br /&gt;
&lt;br /&gt;
===ExpLevelAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpLevelAdd', function (levelAmount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении уровней игроку&lt;br /&gt;
&lt;br /&gt;
==Сущности Entity==&lt;br /&gt;
===EntityAdded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityAdded', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при спавне новой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityRemoved===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityRemoved', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при уничтожении сущности&lt;br /&gt;
&lt;br /&gt;
===EntityDeath===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityDeath', function (entity, attacker, damageType) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при при полной смерти сущности&lt;br /&gt;
&lt;br /&gt;
===EntityHurt===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityHurt', function (attacker, victim, damageValue, damageType, someBool1, someBool2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе по любой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityInteract===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityInteract', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при взаимодействии с сущностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Кидаемый предмет==&lt;br /&gt;
===ProjectileHit===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHit', function (projectile, item, target) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в цель target&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitBlock===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitBlock', function (projectile, coords, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в блок&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitEntity===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitEntity', function (projectile, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в существо&lt;br /&gt;
&lt;br /&gt;
==Интерфейс==&lt;br /&gt;
===NativeGuiChanged===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeGuiChanged', function (screenName) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении нативных экранов&lt;br /&gt;
&lt;br /&gt;
==Мод==&lt;br /&gt;
===ModDirLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ModDirLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что папка мода полностью загружена&lt;br /&gt;
&lt;br /&gt;
===PreBlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PreBlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки почти созданы&lt;br /&gt;
&lt;br /&gt;
===BlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('BlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки созданы полностью&lt;br /&gt;
&lt;br /&gt;
== Этап загрузки лаунчера ==&lt;br /&gt;
&lt;br /&gt;
Вызываются после надписи Post Initialization...&lt;br /&gt;
&lt;br /&gt;
=== CoreConfigured ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CoreConfigured', function (config) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке файла настроек InnerCore &lt;br /&gt;
=== PreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('PreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке &lt;br /&gt;
=== APILoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('APILoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке всех апи &lt;br /&gt;
=== ModsLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ModsLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что все моды были загружены &lt;br /&gt;
=== PostLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('PostLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при оконачательной загрузке&lt;br /&gt;
&lt;br /&gt;
==Приложение==&lt;br /&gt;
=== AppSuspended ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('AppSuspended', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при остановке/паузе приложения(Работает только если игрок находится в мире)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Измерения==&lt;br /&gt;
===DimensionLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DimensionLoaded', function (dimension) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке измерения&lt;br /&gt;
Передает идентификатор измерения dimension&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2459</id>
		<title>InnerCore/Список коллбеков</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2459"/>
				<updated>2020-05-02T19:37:43Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Коллбек ItemUseLocalServer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Собыитя мира ==&lt;br /&gt;
&lt;br /&gt;
=== LevelCreated ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelCreated', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при создании мира &lt;br /&gt;
=== LevelSelected ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelSelected', function (levelName, levelPath) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при выборе мира и отдает: имя мира, путь к папке мира &lt;br /&gt;
=== LevelPreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке мира &lt;br /&gt;
=== LevelLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версиях Inner Core до Horizon. Вызывается во время загрузки мира в версии для Horizon &lt;br /&gt;
=== LevelDisplayed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelDisplayed', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версии Inner Core для Horizon &lt;br /&gt;
=== LevelPreLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предвыходе из мира &lt;br /&gt;
=== LevelLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном выходе из мира&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Сохранения Saver==&lt;br /&gt;
===ReadSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ReadSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при чтении данных&lt;br /&gt;
&lt;br /&gt;
===WriteSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('WriteSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при сохранении данных&lt;br /&gt;
&lt;br /&gt;
==Генерация==&lt;br /&gt;
===GenerateNetherChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateNetherChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Аду&lt;br /&gt;
&lt;br /&gt;
===GenerateEndChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateEndChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Краю&lt;br /&gt;
&lt;br /&gt;
===GenerateChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире&lt;br /&gt;
&lt;br /&gt;
===GenerateChunkUndeground===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunkUndeground', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире под землей&lt;br /&gt;
&lt;br /&gt;
==Игровой тик==&lt;br /&gt;
&lt;br /&gt;
===Tick===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('tick', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается каждый игровой тик, очень нагружен и нестабилен&amp;lt;/div&amp;gt;&lt;br /&gt;
&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;
=== DestroyBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlock', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном разрушении блока &lt;br /&gt;
=== DestroyBlockStart ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockStart', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале разрушения блока &lt;br /&gt;
=== DestroyBlockContinue ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('DestroyBlockContinue', function (coords, block, progress, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при продолжении разрушения блока &lt;br /&gt;
=== Explosion ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('Explosion', function (coords, params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при любом взрыве Объект params имеет следущий вид &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
  power: number, // Сила взрыва&lt;br /&gt;
  entity: [], // Список Entity задетых взрывом&lt;br /&gt;
  onFire: boolean, // Был ли взрыв с огнем&lt;br /&gt;
  someBool: boolean, // Неизвестное значение&lt;br /&gt;
  someFloat: number, // Неизвестное значение&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RedstoneSignal ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('RedstoneSignal', function (params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при передаче редстоун сигнала &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;[&lt;br /&gt;
  {&lt;br /&gt;
    power: number, // Сила сигнала&lt;br /&gt;
    signal: number, // Тоже сила сигнала ...?&lt;br /&gt;
    onLoad: boolean // При загрузке ...?&lt;br /&gt;
  },&lt;br /&gt;
   block // стандартные свойства блока&lt;br /&gt;
]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BlockChanged ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BlockChanged', function (coords, block1, block2, int1, int2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вызывается при изменении состояния блока(работает только в Horizon)&lt;br /&gt;
&lt;br /&gt;
block1 - изначальный блок&lt;br /&gt;
&lt;br /&gt;
block2 - новый блок&lt;br /&gt;
&lt;br /&gt;
Значение чисел int1 и int2 временно не известно&lt;br /&gt;
&lt;br /&gt;
'''''ВАЖНО: по умолчанию этот коллбек не будет реагировать не на один блок. Для включения обнаружения нужных блоков можна воспользоватся:'''''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt; World.setBlockChangeCallbackEnabled(id блока, true)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== BuildBlock ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('BuildBlock', function (coords, block, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при постановке блока &lt;br /&gt;
=== CustomBlockTessellation ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('CustomBlockTessellation', function (api, coords, block, boolean) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении 3д модели кастомного блока&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;
===NativeCommand===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeCommand', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при вызове нативной команды&lt;br /&gt;
&lt;br /&gt;
===ClientChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ClientChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в чат&lt;br /&gt;
&lt;br /&gt;
===ServerChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ServerChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в сервеный чат&lt;br /&gt;
&lt;br /&gt;
== Предмет ==&lt;br /&gt;
&lt;br /&gt;
=== ItemUse ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUse', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Не срабатывает при нажатии по блокам из ванильного майнкрафта, которые уже имеют какое-то действие по нажатию добавленое самим майнкрафтом. &lt;br /&gt;
=== ItemUseLocalServer ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseLocalServer', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку. Работает со всеми блоками. &lt;br /&gt;
=== FoodEaten ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('FoodEaten', function (food, satRatio) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при съедении еды &lt;br /&gt;
=== ItemIconOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemIconOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении иконки предмета &lt;br /&gt;
=== ItemNameOverride ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemNameOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении имени предмета &lt;br /&gt;
=== ItemUseNoTarget ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUseNoTarget', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании предмета в воздухе &lt;br /&gt;
=== ItemUsingReleased ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingReleased', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале использования предмета &lt;br /&gt;
=== ItemUsingComplete ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemUsingComplete', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при завершении использования предмета &lt;br /&gt;
=== ItemDispensed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('ItemDispensed', function (coords, item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при дропе предмета из раздатчика&lt;br /&gt;
&lt;br /&gt;
==Игрок==&lt;br /&gt;
===PlayerAttack===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PlayerAttack', function (player, victim) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе игроком сущности&lt;br /&gt;
&lt;br /&gt;
===ExpAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpAdd', function (amount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении опыта игроку&lt;br /&gt;
&lt;br /&gt;
===ExpLevelAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpLevelAdd', function (levelAmount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении уровней игроку&lt;br /&gt;
&lt;br /&gt;
==Сущности Entity==&lt;br /&gt;
===EntityAdded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityAdded', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при спавне новой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityRemoved===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityRemoved', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при уничтожении сущности&lt;br /&gt;
&lt;br /&gt;
===EntityDeath===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityDeath', function (entity, attacker, damageType) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при при полной смерти сущности&lt;br /&gt;
&lt;br /&gt;
===EntityHurt===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityHurt', function (attacker, victim, damageValue, damageType, someBool1, someBool2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе по любой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityInteract===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityInteract', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при взаимодействии с сущностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Кидаемый предмет==&lt;br /&gt;
===ProjectileHit===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHit', function (projectile, item, target) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в цель target&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitBlock===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitBlock', function (projectile, coords, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в блок&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitEntity===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitEntity', function (projectile, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в существо&lt;br /&gt;
&lt;br /&gt;
==Интерфейс==&lt;br /&gt;
===NativeGuiChanged===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeGuiChanged', function (screenName) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении нативных экранов&lt;br /&gt;
&lt;br /&gt;
==Мод==&lt;br /&gt;
===ModDirLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ModDirLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что папка мода полностью загружена&lt;br /&gt;
&lt;br /&gt;
===PreBlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PreBlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки почти созданы&lt;br /&gt;
&lt;br /&gt;
===BlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('BlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки созданы полностью&lt;br /&gt;
&lt;br /&gt;
==Этап загрузки лаунчера==&lt;br /&gt;
Вызываются после надписи Post Initialization...&lt;br /&gt;
===PreLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке&lt;br /&gt;
&lt;br /&gt;
===APILoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('APILoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке всех апи&lt;br /&gt;
&lt;br /&gt;
===ModsLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ModsLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что все моды были загружены&lt;br /&gt;
&lt;br /&gt;
===PostLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PostLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при оконачательной загрузке&lt;br /&gt;
&lt;br /&gt;
==Приложение==&lt;br /&gt;
=== AppSuspended ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('AppSuspended', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при остановке/паузе приложения(Работает только если игрок находится в мире)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Измерения==&lt;br /&gt;
===DimensionLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DimensionLoaded', function (dimension) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке измерения&lt;br /&gt;
Передает идентификатор измерения dimension&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_GenerationUtils&amp;diff=2456</id>
		<title>InnerCore/Модуль GenerationUtils</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_GenerationUtils&amp;diff=2456"/>
				<updated>2020-05-01T22:27:07Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Модуль GenerationUtils предоставляет удобные инструменты, используемые для генерации.&amp;amp;nbsp;&amp;lt;/div&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Методы модуля&amp;amp;nbsp;GenerationUtils ==&lt;br /&gt;
&lt;br /&gt;
*isTerrainBlock(id) - возвращает, является ли блок с заданным id частью ванильного пласта (камень, земля, руды и т.п.). &lt;br /&gt;
*isTransparentBlock(id) - проверяет, является ли данный блок прозрачным (для света). Работает как с ванильными блоками, так и с блоками из мода.&amp;amp;nbsp; &lt;br /&gt;
*canSeeSky(x, y, z) - возвращает true, если на данное место падает солнечный свет (в том числе, через прозрачные блоки). &lt;br /&gt;
*randomXZ(cx, cz) - возвращает случайные целые координаты x и z&amp;amp;nbsp;в приделах чанка с координатами cx и cz. &lt;br /&gt;
*randomCoords(cx, cy, lowest, highest) - возвращает случайные координаты x, y, z&amp;amp;nbsp;в приделах чанка с координатами cx и cz на высоте от lowest до highest. Параметры lowest и highest имеют значения по умолчанию 0 и 128 соответственно. Пример использования (для&amp;amp;nbsp;''randomXZ''&amp;amp;nbsp;то же самое, но без''y''): &amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;let coords = randomCoords(cx, cy, 64); // Random coordinates between 64 and 128&lt;br /&gt;
let x = coords.x;&lt;br /&gt;
let y = coords.y;&lt;br /&gt;
let z = coords.z;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
*findSurface(x, y, z) - возвращает самый высокий блок с координатами x, z, находящийся под уровнем y. &lt;br /&gt;
*findHighSurface(x, z) - возвращает самый высокий блок в приделах от 128 до 0 (на поверхности). &lt;br /&gt;
*findLowSurface(x, z) -&amp;amp;nbsp;возвращает самый высокий блок в приделах от 64 до 0 (под землёй). &lt;br /&gt;
*generateOre(x, y, z, id, data, amount, noStoneCheck) - генерирует руду с id, data&amp;amp;nbsp;на координатах x, y, z, в количестве amount. Если noStoneCheck установлен в true, руда может появиться не смотря на отсутствие камня в данном месте. Может быть использовано для отладки. По умолчанию ''data ''= 0, ''amount ''= 1, ''noStoneCheck ''= false. &lt;br /&gt;
&lt;br /&gt;
&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; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/BackpackAPI&amp;diff=2440</id>
		<title>InnerCore/Libs/BackpackAPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/BackpackAPI&amp;diff=2440"/>
				<updated>2020-04-24T18:46:26Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Обновлена документация&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
'''BackpackAPI&amp;amp;nbsp;'''- библиотека, позволяющая создавать рюкзаки.&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;&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;&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;&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;&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 579px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | Версия&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | Ссылка&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px; text-align: center&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''7'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://github.com/DDCompany/ICLibraries/releases/tag/backpack-api-v7 Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 24.04.20&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''6'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://yadi.sk/d/J94TU-NAg0DfaQ Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | Добавлена поддержка сохранения id контейнера в extra data&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 21.04.20&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''5'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://yadi.sk/d/3UwUF1QpD7-T5g Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | Исправлены баги, оптимизация кода&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 16.10.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''4'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://yadi.sk/d/fGqQqOp9UmF_qQ Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | Исправлены баги&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 11.09.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''3'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://yadi.sk/d/zNFKHFwWtygALw Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | &lt;br /&gt;
Новые свойства - items, title&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 10.09.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://vk.com/forestry_pe?w=wall-149493963_1420/all Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | Первая версия&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 09.03.18&lt;br /&gt;
|}&lt;br /&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;
*Запрещено явное копирование кода в другие библиотеки или моды&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Используя данный продукт&amp;amp;nbsp;вы автоматически соглашаетесь с этими правилами&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;&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;
Для регистрации рюкзака необходимо использовать метод '''''register&amp;amp;nbsp;'''''из объекта '''''BackpackRegistry''''', импортируемый из библиотеки&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IMPORT(&amp;quot;BackpackAPI&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;backpackTest&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;backpackTest&amp;quot;, &amp;quot;Test Backpack&amp;quot;, {name: &amp;quot;backpackMiners&amp;quot;, meta: 0}, {stack: 1});&lt;br /&gt;
&lt;br /&gt;
BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    title: &amp;quot;My Backpack&amp;quot;,&lt;br /&gt;
    slots: 80,&lt;br /&gt;
    slotsCenter: true,&lt;br /&gt;
    inRow: 10,&lt;br /&gt;
    items: [&lt;br /&gt;
        &amp;quot;^ore.+&amp;quot;,&lt;br /&gt;
        &amp;quot;^ingot.+&amp;quot;,&lt;br /&gt;
        1&lt;br /&gt;
        {id: 345, data: &amp;quot;^[1-3]$&amp;quot;}&lt;br /&gt;
    ]&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первым аргумент - айди предмета, при клике которым будет открываться интерфейс рюкзака. Второй - объект, который может содержать следующие поля:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;u&amp;gt;''title''&amp;lt;/u&amp;gt; - заголовок окна &lt;br /&gt;
*''&amp;lt;u&amp;gt;slots&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- количество слотов в рюкзаки &lt;br /&gt;
*''&amp;lt;u&amp;gt;inRow&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- количество слотов в ряду &lt;br /&gt;
*''&amp;lt;u&amp;gt;slotsCenter&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- центрировать ли слоты по ширине &lt;br /&gt;
*''&amp;lt;u&amp;gt;kind&amp;lt;/u&amp;gt;'' - определяет способ хранения уникального айди рюкзака. Может иметь значения BackpackKind.EXTRA и BackpackKind.META. Если установить первое значение, айди будет находиться в поле &amp;quot;__backpack_id&amp;quot; экстры, второе - в метаданных предмета &lt;br /&gt;
*&amp;lt;u&amp;gt;''items''&amp;lt;/u&amp;gt;- массив предметов, которые&amp;amp;nbsp;можно положить в рюкзак. Описывается&amp;amp;nbsp;регулярными&amp;amp;nbsp;выражениями, айди или&amp;amp;nbsp;объектом с айди и датой (причем оба свойства могут быть заданы&amp;amp;nbsp;регуляркой) &lt;br /&gt;
&lt;br /&gt;
В объекте можно объявить метод '''''isValidItem(id, data, count)''''', если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, описанных в массиве&amp;amp;nbsp;'''''items''''',&amp;amp;nbsp;кроме других рюкзаков.&amp;amp;nbsp;В данном примере можно положить только камень:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    slots: 20,&lt;br /&gt;
    isValidItem: function (id, data, count) {&lt;br /&gt;
        return id === 1;&lt;br /&gt;
    }&lt;br /&gt;
});&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;let gui = new UI.StandartWindow({&lt;br /&gt;
    standart: {&lt;br /&gt;
        header: {&lt;br /&gt;
            text: {&lt;br /&gt;
                text: &amp;quot;Custom Gui&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        inventory: {&lt;br /&gt;
            standart: true&lt;br /&gt;
        },&lt;br /&gt;
        background: {&lt;br /&gt;
            standart: true&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    drawing: [],&lt;br /&gt;
    elements: {}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;backpackTest&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;backpackTest&amp;quot;, &amp;quot;Test Backpack&amp;quot;, {name: &amp;quot;backpackMiners&amp;quot;, meta: 0}, {stack: 1});&lt;br /&gt;
&lt;br /&gt;
BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    gui: gui&lt;br /&gt;
});&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;
=== Остальные методы ''BackpackRegistry'' ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 1000px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | Название&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | Аргументы&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Описание&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''openGuiFor'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | item, notUpdateData&lt;br /&gt;
| Открывает интерфейс рюкзака. Если&amp;amp;nbsp;''notUpdateData&amp;amp;nbsp;''равен false и для переданной даты не заригестрирован контейнер, в руку игрока будет установлен новый предмет. Возвращает дату, которая может отличаться от переданной&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''isBackpack'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | id&lt;br /&gt;
| Возвращает истину, если предмет с переданным айди - рюкзак&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''addSlotsToGui'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | gui, slots, isValidFunc, inRow, center, x, y&lt;br /&gt;
| Технический метод добавляет слотов в объект интерфейса&lt;br /&gt;
|}&lt;br /&gt;
&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/BackpackAPI&amp;diff=2436</id>
		<title>InnerCore/Libs/BackpackAPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/BackpackAPI&amp;diff=2436"/>
				<updated>2020-04-24T17:38:02Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
'''BackpackAPI&amp;amp;nbsp;'''- библиотека, позволяющая создавать рюкзаки.&lt;br /&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;&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;&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 579px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | Версия&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | Ссылка&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px; text-align: center&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''6'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://yadi.sk/d/J94TU-NAg0DfaQ Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | Добавлена поддержка сохранения id контейнера в extra data&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 24.04.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''5'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://yadi.sk/d/3UwUF1QpD7-T5g Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | Исправлены баги, оптимизация кода&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 16.10.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''4'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://yadi.sk/d/fGqQqOp9UmF_qQ Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | Исправлены баги&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 11.09.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''3'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://yadi.sk/d/zNFKHFwWtygALw Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | &lt;br /&gt;
Новые свойства - items, title&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 10.09.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://vk.com/forestry_pe?w=wall-149493963_1420/all Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | Первая версия&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 09.03.18&lt;br /&gt;
|}&lt;br /&gt;
&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; &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; &amp;lt;/div&amp;gt; &lt;br /&gt;
&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;
*Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество &lt;br /&gt;
*Запрещено изменение кода библиотеки &lt;br /&gt;
*Запрещено явное копирование кода в другие библиотеки или моды&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Используя данный продукт&amp;amp;nbsp;вы автоматически соглашаетесь с этими правилами&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;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Документация ==&lt;br /&gt;
&lt;br /&gt;
Для регистрации рюкзака необходимо использовать метод '''''register&amp;amp;nbsp;'''''из объекта '''''BackpackRegistry''''', импортируемый из библиотеки&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IMPORT(&amp;quot;BackpackAPI&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;backpackTest&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;backpackTest&amp;quot;, &amp;quot;Test Backpack&amp;quot;, {name: &amp;quot;backpackMiners&amp;quot;, meta: 0}, {stack: 1});&lt;br /&gt;
&lt;br /&gt;
BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    title: &amp;quot;My Backpack&amp;quot;,&lt;br /&gt;
    slots: 80,&lt;br /&gt;
    slotsCenter: true,&lt;br /&gt;
    inRow: 10,&lt;br /&gt;
    items: [&lt;br /&gt;
        &amp;quot;^ore.+&amp;quot;,&lt;br /&gt;
        &amp;quot;^ingot.+&amp;quot;,&lt;br /&gt;
        1&lt;br /&gt;
        {id: 345, data: &amp;quot;^[1-3]$&amp;quot;}&lt;br /&gt;
    ]&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первым аргумент - айди предмета, при клике которым будет открываться интерфейс рюкзака. Второй - объект, который может содержать следующие поля:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;u&amp;gt;''title''&amp;lt;/u&amp;gt; - заголовок окна &lt;br /&gt;
*''&amp;lt;u&amp;gt;slots&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- количество слотов в рюкзаки &lt;br /&gt;
*''&amp;lt;u&amp;gt;inRow&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- количество слотов в ряду &lt;br /&gt;
*''&amp;lt;u&amp;gt;slotsCenter&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- центрировать ли слоты по ширине &lt;br /&gt;
*&amp;lt;u&amp;gt;useExtraData&amp;lt;/u&amp;gt;&amp;amp;nbsp;- использовать ExtraData для сохранения id контейнера рюкзака. &lt;br /&gt;
*&amp;lt;u&amp;gt;''items''&amp;lt;/u&amp;gt;- массив предметов, которые&amp;amp;nbsp;можно положить в рюкзак. Описывается&amp;amp;nbsp;регулярными&amp;amp;nbsp;выражениями, айди или&amp;amp;nbsp;объектом с айди и датой (причем оба свойства могут быть заданы&amp;amp;nbsp;регуляркой) &lt;br /&gt;
&lt;br /&gt;
В объекте можно объявить метод '''''isValidItem(id, data, count)''''', если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, описанных в массиве&amp;amp;nbsp;'''''items''''',&amp;amp;nbsp;кроме других рюкзаков.&amp;amp;nbsp;В данном примере можно положить только камень:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    slots: 20,&lt;br /&gt;
    isValidItem: function (id, data, count) {&lt;br /&gt;
        return id === 1;&lt;br /&gt;
    }&lt;br /&gt;
});&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;let gui = new UI.StandartWindow({&lt;br /&gt;
    standart: {&lt;br /&gt;
        header: {&lt;br /&gt;
            text: {&lt;br /&gt;
                text: &amp;quot;Custom Gui&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        inventory: {&lt;br /&gt;
            standart: true&lt;br /&gt;
        },&lt;br /&gt;
        background: {&lt;br /&gt;
            standart: true&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    drawing: [],&lt;br /&gt;
    elements: {}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;backpackTest&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;backpackTest&amp;quot;, &amp;quot;Test Backpack&amp;quot;, {name: &amp;quot;backpackMiners&amp;quot;, meta: 0}, {stack: 1});&lt;br /&gt;
&lt;br /&gt;
BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    gui: gui&lt;br /&gt;
});&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;
=== Остальные методы ''BackpackRegistry'' ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 1000px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | Название&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | Аргументы&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Описание&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''openGuiFor'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | item, notUpdateData&lt;br /&gt;
| Открывает интерфейс рюкзака. Если ''notUpdateData ''равен false и для переданной даты не зарегистрирован контейнер, в руку игрока установится новый предмет в дате или extra дате которого будет записан id нового контейнера. Возвращает id контейнера рюкзака.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''isBackpack'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | id&lt;br /&gt;
| Возвращает истину, если предмет с переданным айди - рюкзак&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''addSlotsToGui'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | gui, slots, isValidFunc, inRow, center, x, y&lt;br /&gt;
| Технический метод добавляет слотов в объект интерфейса&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/BackpackAPI&amp;diff=2434</id>
		<title>InnerCore/Libs/BackpackAPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/BackpackAPI&amp;diff=2434"/>
				<updated>2020-04-24T17:26:28Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
'''BackpackAPI&amp;amp;nbsp;'''- библиотека, позволяющая создавать рюкзаки.&lt;br /&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;&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;&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 579px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | Версия&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | Ссылка&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px; text-align: center&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''6'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://yadi.sk/d/J94TU-NAg0DfaQ Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | Добавлена поддержка сохранения id контейнера в extra data&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 24.04.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''5'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://yadi.sk/d/3UwUF1QpD7-T5g Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | Исправлены баги, оптимизация кода&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 16.10.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''4'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://yadi.sk/d/fGqQqOp9UmF_qQ Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | Исправлены баги&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 11.09.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''3'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://yadi.sk/d/zNFKHFwWtygALw Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | &lt;br /&gt;
Новые свойства - items, title&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 10.09.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://vk.com/forestry_pe?w=wall-149493963_1420/all Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | Первая версия&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 09.03.18&lt;br /&gt;
|}&lt;br /&gt;
&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; &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; &amp;lt;/div&amp;gt; &lt;br /&gt;
&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;
*Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество &lt;br /&gt;
*Запрещено изменение кода библиотеки &lt;br /&gt;
*Запрещено явное копирование кода в другие библиотеки или моды&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Используя данный продукт&amp;amp;nbsp;вы автоматически соглашаетесь с этими правилами&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;
Для регистрации рюкзака необходимо использовать метод '''''register&amp;amp;nbsp;'''''из объекта '''''BackpackRegistry''''', импортируемый из библиотеки&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IMPORT(&amp;quot;BackpackAPI&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;backpackTest&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;backpackTest&amp;quot;, &amp;quot;Test Backpack&amp;quot;, {name: &amp;quot;backpackMiners&amp;quot;, meta: 0}, {stack: 1});&lt;br /&gt;
&lt;br /&gt;
BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    title: &amp;quot;My Backpack&amp;quot;,&lt;br /&gt;
    slots: 80,&lt;br /&gt;
    slotsCenter: true,&lt;br /&gt;
    inRow: 10,&lt;br /&gt;
    items: [&lt;br /&gt;
        &amp;quot;^ore.+&amp;quot;,&lt;br /&gt;
        &amp;quot;^ingot.+&amp;quot;,&lt;br /&gt;
        1&lt;br /&gt;
        {id: 345, data: &amp;quot;^[1-3]$&amp;quot;}&lt;br /&gt;
    ]&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первым аргумент - айди предмета, при клике которым будет открываться интерфейс рюкзака. Второй - объект, который может содержать следующие поля:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;u&amp;gt;''title''&amp;lt;/u&amp;gt; - заголовок окна &lt;br /&gt;
*''&amp;lt;u&amp;gt;slots&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- количество слотов в рюкзаки &lt;br /&gt;
*''&amp;lt;u&amp;gt;inRow&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- количество слотов в ряду &lt;br /&gt;
*''&amp;lt;u&amp;gt;slotsCenter&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- центрировать ли слоты по ширине &lt;br /&gt;
*&amp;lt;u&amp;gt;''items''&amp;lt;/u&amp;gt;- массив предметов, которые&amp;amp;nbsp;можно положить в рюкзак. Описывается&amp;amp;nbsp;регулярными&amp;amp;nbsp;выражениями, айди или&amp;amp;nbsp;объектом с айди и датой (причем оба свойства могут быть заданы&amp;amp;nbsp;регуляркой) &lt;br /&gt;
&lt;br /&gt;
В объекте можно объявить метод '''''isValidItem(id, data, count)''''', если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, описанных в массиве&amp;amp;nbsp;'''''items''''',&amp;amp;nbsp;кроме других рюкзаков.&amp;amp;nbsp;В данном примере можно положить только камень:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    slots: 20,&lt;br /&gt;
    isValidItem: function (id, data, count) {&lt;br /&gt;
        return id === 1;&lt;br /&gt;
    }&lt;br /&gt;
});&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;let gui = new UI.StandartWindow({&lt;br /&gt;
    standart: {&lt;br /&gt;
        header: {&lt;br /&gt;
            text: {&lt;br /&gt;
                text: &amp;quot;Custom Gui&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        inventory: {&lt;br /&gt;
            standart: true&lt;br /&gt;
        },&lt;br /&gt;
        background: {&lt;br /&gt;
            standart: true&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    drawing: [],&lt;br /&gt;
    elements: {}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;backpackTest&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;backpackTest&amp;quot;, &amp;quot;Test Backpack&amp;quot;, {name: &amp;quot;backpackMiners&amp;quot;, meta: 0}, {stack: 1});&lt;br /&gt;
&lt;br /&gt;
BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    gui: gui&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;
=== Остальные методы ''BackpackRegistry'' ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 1000px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | Название&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | Аргументы&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Описание&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''openGuiFor'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | id, data, notUpdateData&lt;br /&gt;
| Открывает интерфейс рюкзака. Если ''notUpdateData ''равен false и для переданной даты не заригестрирован контейнер, в руку игрока будет установлен новый предмет. Возвращает дату, которая может отличаться от переданной.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''isBackpack'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | id&lt;br /&gt;
| Возвращает истину, если предмет с переданным айди - рюкзак&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''addSlotsToGui'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | gui, slots, isValidFunc, inRow, center, x, y&lt;br /&gt;
| Технический метод добавляет слотов в объект интерфейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/BackpackAPI&amp;diff=2433</id>
		<title>InnerCore/Libs/BackpackAPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/BackpackAPI&amp;diff=2433"/>
				<updated>2020-04-24T17:08:04Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Новая версия&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
'''BackpackAPI&amp;amp;nbsp;'''- библиотека, позволяющая создавать рюкзаки.&lt;br /&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;&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;&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;&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 579px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | Версия&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | Ссылка&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px; text-align: center&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''6'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://github.com/DDCompany/ICLibraries/releases/tag/backpack-api-v6 Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 24.04.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | '''5'''&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | [https://yadi.sk/d/3UwUF1QpD7-T5g Скачать]&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 129px&amp;quot; | Исправлены баги, оптимизация кода&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 127px; text-align: center&amp;quot; | 16.10.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''4'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://yadi.sk/d/fGqQqOp9UmF_qQ Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | Исправлены баги&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 11.09.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''3'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://yadi.sk/d/zNFKHFwWtygALw Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | &lt;br /&gt;
Новые свойства - items, title&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 10.09.19&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;white-space: nowrap; width: 200px; text-align: center&amp;quot; | '''1'''&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [https://vk.com/forestry_pe?w=wall-149493963_1420/all Скачать]&lt;br /&gt;
| style=&amp;quot;width: 129px&amp;quot; | Первая версия&lt;br /&gt;
| style=&amp;quot;width: 127px; text-align: center&amp;quot; | 09.03.18&lt;br /&gt;
|}&lt;br /&gt;
&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
&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;
*Запрещено распространение на сторонних источниках без указания ссылки на официальное сообщество &lt;br /&gt;
*Запрещено изменение кода библиотеки &lt;br /&gt;
*Запрещено явное копирование кода в другие библиотеки или моды&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Используя данный продукт&amp;amp;nbsp;вы автоматически соглашаетесь с этими правилами&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;
Для регистрации рюкзака необходимо использовать метод '''''register&amp;amp;nbsp;'''''из объекта '''''BackpackRegistry''''', импортируемый из библиотеки&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;IMPORT(&amp;quot;BackpackAPI&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;backpackTest&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;backpackTest&amp;quot;, &amp;quot;Test Backpack&amp;quot;, {name: &amp;quot;backpackMiners&amp;quot;, meta: 0}, {stack: 1});&lt;br /&gt;
&lt;br /&gt;
BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    title: &amp;quot;My Backpack&amp;quot;,&lt;br /&gt;
    slots: 80,&lt;br /&gt;
    slotsCenter: true,&lt;br /&gt;
    inRow: 10,&lt;br /&gt;
    items: [&lt;br /&gt;
        &amp;quot;^ore.+&amp;quot;,&lt;br /&gt;
        &amp;quot;^ingot.+&amp;quot;,&lt;br /&gt;
        1&lt;br /&gt;
        {id: 345, data: &amp;quot;^[1-3]$&amp;quot;}&lt;br /&gt;
    ]&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первым аргумент - айди предмета, при клике которым будет открываться интерфейс рюкзака. Второй - объект, который может содержать следующие поля:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;u&amp;gt;''title''&amp;lt;/u&amp;gt; - заголовок окна &lt;br /&gt;
*''&amp;lt;u&amp;gt;slots&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- количество слотов в рюкзаки &lt;br /&gt;
*''&amp;lt;u&amp;gt;inRow&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- количество слотов в ряду &lt;br /&gt;
*''&amp;lt;u&amp;gt;slotsCenter&amp;amp;nbsp;&amp;lt;/u&amp;gt;''- центрировать ли слоты по ширине &lt;br /&gt;
*&amp;lt;u&amp;gt;''items''&amp;lt;/u&amp;gt;- массив предметов, которые&amp;amp;nbsp;можно положить в рюкзак. Описывается&amp;amp;nbsp;регулярными&amp;amp;nbsp;выражениями, айди или&amp;amp;nbsp;объектом с айди и датой (причем оба свойства могут быть заданы&amp;amp;nbsp;регуляркой) &lt;br /&gt;
&lt;br /&gt;
В объекте можно объявить метод '''''isValidItem(id, data, count)''''', если он возвращает истину предмет перемещается в слот. Если его нет, будет задан стандартный, который разрешает перемещение всех предметов, описанных в массиве&amp;amp;nbsp;'''''items''''',&amp;amp;nbsp;кроме других рюкзаков.&amp;amp;nbsp;В данном примере можно положить только камень:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    slots: 20,&lt;br /&gt;
    isValidItem: function (id, data, count) {&lt;br /&gt;
        return id === 1;&lt;br /&gt;
    }&lt;br /&gt;
});&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;let gui = new UI.StandartWindow({&lt;br /&gt;
    standart: {&lt;br /&gt;
        header: {&lt;br /&gt;
            text: {&lt;br /&gt;
                text: &amp;quot;Custom Gui&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        inventory: {&lt;br /&gt;
            standart: true&lt;br /&gt;
        },&lt;br /&gt;
        background: {&lt;br /&gt;
            standart: true&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    drawing: [],&lt;br /&gt;
    elements: {}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
IDRegistry.genItemID(&amp;quot;backpackTest&amp;quot;);&lt;br /&gt;
Item.createItem(&amp;quot;backpackTest&amp;quot;, &amp;quot;Test Backpack&amp;quot;, {name: &amp;quot;backpackMiners&amp;quot;, meta: 0}, {stack: 1});&lt;br /&gt;
&lt;br /&gt;
BackpackRegistry.register(ItemID.backpackTest, {&lt;br /&gt;
    gui: gui&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;
=== Остальные методы ''BackpackRegistry'' ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 1000px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | Название&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 200px;&amp;quot; | Аргументы&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Описание&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''openGuiFor'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | id, data, notUpdateData&lt;br /&gt;
| Открывает интерфейс рюкзака. Если ''notUpdateData ''равен false и для переданной даты не заригестрирован контейнер, в руку игрока будет установлен новый предмет. Возвращает дату, которая может отличаться от переданной.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''isBackpack'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | id&lt;br /&gt;
| Возвращает истину, если предмет с переданным айди - рюкзак&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | '''addSlotsToGui'''&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | gui, slots, isValidFunc, inRow, center, x, y&lt;br /&gt;
| Технический метод добавляет слотов в объект интерфейса&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2428</id>
		<title>InnerCore/Список коллбеков</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%BB%D0%BB%D0%B1%D0%B5%D0%BA%D0%BE%D0%B2&amp;diff=2428"/>
				<updated>2020-04-22T12:10:26Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: LevelDisplayed [только в Horizon]&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;
== Собыитя мира ==&lt;br /&gt;
&lt;br /&gt;
=== LevelCreated ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelCreated', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при создании мира &lt;br /&gt;
=== LevelSelected ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelSelected', function (levelName, levelPath) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при выборе мира и отдает: имя мира, путь к папке мира &lt;br /&gt;
=== LevelPreLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке мира &lt;br /&gt;
=== LevelLoaded ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версиях Inner Core до Horizon. Вызывается во время загрузки мира в версии для Horizon &lt;br /&gt;
=== LevelDisplayed ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelDisplayed', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полной загрузке мира в версии Inner Core для Horizon &lt;br /&gt;
=== LevelPreLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelPreLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предвыходе из мира &lt;br /&gt;
=== LevelLeft ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('LevelLeft', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном выходе из мира&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Сохранения Saver==&lt;br /&gt;
===ReadSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ReadSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при чтении данных&lt;br /&gt;
&lt;br /&gt;
===WriteSaves===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('WriteSaves', function (globalScope) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при сохранении данных&lt;br /&gt;
&lt;br /&gt;
==Генерация==&lt;br /&gt;
===GenerateNetherChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateNetherChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Аду&lt;br /&gt;
&lt;br /&gt;
===GenerateEndChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateEndChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Краю&lt;br /&gt;
&lt;br /&gt;
===GenerateChunk===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunk', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при генерации чанка в Верхнем мире&lt;br /&gt;
&lt;br /&gt;
===GenerateChunkUndeground===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('GenerateChunkUndeground', function (chunkX, chunkZ, random) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&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;h2&amp;gt;Игровой тик&amp;lt;/h2&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;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Tick&amp;lt;/h3&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;amp;lt;syntaxhighlight lang=&amp;amp;quot;Javascript&amp;amp;quot;&amp;amp;gt;Callback.addCallback(&amp;amp;amp;quot;tick&amp;amp;amp;quot;, function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;amp;lt;/syntaxhighlight&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вызывается каждый игровой тик, очень нагружен и нестабилен&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Блок==&lt;br /&gt;
===DestroyBlock===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DestroyBlock', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при полном разрушении блока&lt;br /&gt;
&lt;br /&gt;
===DestroyBlockStart===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DestroyBlockStart', function (coords, block, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале разрушения блока&lt;br /&gt;
&lt;br /&gt;
===DestroyBlockContinue===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DestroyBlockContinue', function (coords, block, progress, player) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при продолжении разрушения блока&lt;br /&gt;
&lt;br /&gt;
===Explosion===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('Explosion', function (coords, params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при любом взрыве&lt;br /&gt;
Объект params имеет следущий вид &lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;{&lt;br /&gt;
  power: number, // Сила взрыва&lt;br /&gt;
  entity: [], // Список Entity задетых взрывом&lt;br /&gt;
  onFire: boolean, // Был ли взрыв с огнем&lt;br /&gt;
  someBool: boolean, // Неизвестное значение&lt;br /&gt;
  someFloat: number, // Неизвестное значение&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RedstoneSignal===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('RedstoneSignal', function (params) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при передаче редстоун сигнала&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;[&lt;br /&gt;
  {&lt;br /&gt;
    power: number, // Сила сигнала&lt;br /&gt;
    signal: number, // Тоже сила сигнала ...?&lt;br /&gt;
    onLoad: boolean // При загрузке ...?&lt;br /&gt;
  },&lt;br /&gt;
   block // стандартные свойства блока&lt;br /&gt;
]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===BuildBlock===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('BuildBlock', function (coords, block, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при постановке блока&lt;br /&gt;
&lt;br /&gt;
===CustomBlockTessellation===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('CustomBlockTessellation', function (api, coords, block, boolean) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении 3д модели кастомного блока&lt;br /&gt;
&lt;br /&gt;
==Чат==&lt;br /&gt;
===NativeCommand===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeCommand', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при вызове нативной команды&lt;br /&gt;
&lt;br /&gt;
===ClientChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ClientChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в чат&lt;br /&gt;
&lt;br /&gt;
===ServerChat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ServerChat', function (str) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при отправке любого сообщения в сервеный чат&lt;br /&gt;
&lt;br /&gt;
==Предмет==&lt;br /&gt;
===ItemUse===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ItemUse', function (coords, item, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании (тапа) предмета по блоку&lt;br /&gt;
&lt;br /&gt;
===FoodEaten===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('FoodEaten', function (food, satRatio) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при съедении еды&lt;br /&gt;
&lt;br /&gt;
===ItemIconOverride===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ItemIconOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении иконки предмета&lt;br /&gt;
&lt;br /&gt;
===ItemNameOverride===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ItemNameOverride', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при динамичном изменении имени предмета&lt;br /&gt;
&lt;br /&gt;
===ItemUseNoTarget===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ItemUseNoTarget', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при использовании предмета в воздухе&lt;br /&gt;
&lt;br /&gt;
===ItemUsingReleased===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ItemUsingReleased', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при начале использования предмета&lt;br /&gt;
&lt;br /&gt;
===ItemUsingComplete===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ItemUsingComplete', function (item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при завершении использования предмета&lt;br /&gt;
&lt;br /&gt;
===ItemDispensed===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ItemDispensed', function (coords, item) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при дропе предмета из раздатчика&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Игрок==&lt;br /&gt;
===PlayerAttack===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PlayerAttack', function (player, victim) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе игроком сущности&lt;br /&gt;
&lt;br /&gt;
===ExpAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpAdd', function (amount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении опыта игроку&lt;br /&gt;
&lt;br /&gt;
===ExpLevelAdd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ExpLevelAdd', function (levelAmount) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при добавлении уровней игроку&lt;br /&gt;
&lt;br /&gt;
==Сущности Entity==&lt;br /&gt;
===EntityAdded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityAdded', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при спавне новой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityRemoved===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityRemoved', function (entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при уничтожении сущности&lt;br /&gt;
&lt;br /&gt;
===EntityDeath===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityDeath', function (entity, attacker, damageType) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при при полной смерти сущности&lt;br /&gt;
&lt;br /&gt;
===EntityHurt===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityHurt', function (attacker, victim, damageValue, damageType, someBool1, someBool2) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при ударе по любой сущности&lt;br /&gt;
&lt;br /&gt;
===EntityInteract===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('EntityInteract', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при взаимодействии с сущностью&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Кидаемый предмет==&lt;br /&gt;
===ProjectileHit===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHit', function (projectile, item, target) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в цель target&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitBlock===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitBlock', function (projectile, coords, block) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в блок&lt;br /&gt;
&lt;br /&gt;
===ProjectileHitEntity===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ProjectileHitEntity', function (projectile, entity) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при попадании кидаемой сущности в существо&lt;br /&gt;
&lt;br /&gt;
==Интерфейс==&lt;br /&gt;
===NativeGuiChanged===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('NativeGuiChanged', function (screenName) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при изменении нативных экранов&lt;br /&gt;
&lt;br /&gt;
==Мод==&lt;br /&gt;
===ModDirLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ModDirLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что папка мода полностью загружена&lt;br /&gt;
&lt;br /&gt;
===PreBlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PreBlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки почти созданы&lt;br /&gt;
&lt;br /&gt;
===BlocksDefined===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('BlocksDefined', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что блоки созданы полностью&lt;br /&gt;
&lt;br /&gt;
==Этап загрузки лаунчера==&lt;br /&gt;
Вызываются после надписи Post Initialization...&lt;br /&gt;
===PreLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PreLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при предзагрузке&lt;br /&gt;
&lt;br /&gt;
===APILoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('APILoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке всех апи&lt;br /&gt;
&lt;br /&gt;
===ModsLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('ModsLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при условии, что все моды были загружены&lt;br /&gt;
&lt;br /&gt;
===PostLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('PostLoaded', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при оконачательной загрузке&lt;br /&gt;
&lt;br /&gt;
==Приложение==&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
=== AppSuspended ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Callback.addCallback('AppSuspended', function () {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при остановке/паузе приложения(Работает только если игрок находится в мире)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Измерения==&lt;br /&gt;
===DimensionLoaded===&lt;br /&gt;
&amp;lt;syntaxhighlight lang='Javascript'&amp;gt;Callback.addCallback('DimensionLoaded', function (dimension) {&lt;br /&gt;
&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Вызывается при загрузке измерения&lt;br /&gt;
Передает идентификатор измерения dimension&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B&amp;diff=2426</id>
		<title>InnerCore/Рецепты</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B&amp;diff=2426"/>
				<updated>2020-04-19T08:42:38Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Добавлено Recipes.provideRecipe&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;&amp;lt;div class=&amp;quot;b-pageLayout b-pageLayout__xs&amp;quot; data-layout=&amp;quot;xs&amp;quot; id=&amp;quot;pageLayout&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;b-pageContent m-pageContent__withoutLeft m-pageContent__withoutRight&amp;quot; id=&amp;quot;pageContent&amp;quot;&amp;gt;&lt;br /&gt;
Добавление рецептов крафта и переплавки - то, без чего не обойдется никакой мод.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Рецепты верстака ===&lt;br /&gt;
&lt;br /&gt;
Рецепты верстака бывают 2х типов:&lt;br /&gt;
&lt;br /&gt;
*форменные - предмет должен быть выложен на верстаке в определенной форме. Если меньше, чем 3х3, то он может быть выложен в любой области верстака для его выполнения. &lt;br /&gt;
*бесформенные - требует лишь соблюдения присутсвия и кол-ва предметов в сетке крафта, но не требует порядка &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; Для добавления форменных рецептов используется функция Recipes.addShaped({id: id, count: кол-во, data: data}, [форма рецепта], [ингридиенты], функция выполнения function(api, field, result){}, префикс) - в обычном рецепте последние 2 параметра можно и нужно опустить, о них будет рассказано позже.&lt;br /&gt;
&lt;br /&gt;
*api - содержит объект апи содержащий следущие параметры: &lt;br /&gt;
**contatiner, getClass, wait, isPrevented, notifyAll, decreaseFieldSlot, notify, prevent, fieldSlot, getFieldSlot, hashCode, equals, toString, class, prevented.   &lt;br /&gt;
*field - массив идентификаторов слотов 0-8, содержащие: id, count, data, extra. для получения содержания слота используется field[slotID].parameter &lt;br /&gt;
*result - содержит сам предмет который возвращается в инвентарь при удачном крафте. Параметры result содержат: id, count, data, extra. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Форма рецепта задается массивом строк, которые соответсвуют строкам в форме рецепта, где каждый символ означает предмет, а пробел - отсутсвие предмета. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Ингридиенты это массив, в котором данные идут в порядке ['символ1', id1, data1, 'символ2', id2, data2, ...], и так для всех символов, которые использовались в форме рецепта, кроме пробела. Если data предмета не важна (к примеру вы хотите, чтобы в рецепте использовались доски любого типа), то вместо нее напишите -1. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Кол-ва строк может быть меньше 3, если столько не нужно.&amp;amp;nbsp; Пример рецепта:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;Recipes.addShaped({id: 264, count: 1, data: 0}, /* Результат крафта */&lt;br /&gt;
	[&amp;quot;ax&amp;quot;, &amp;quot;xa&amp;quot;, &amp;quot;ax&amp;quot;], /* Форма рецепта */&lt;br /&gt;
	['x', 265, 0, 'a', 266, 0]/* Ингридиенты */&lt;br /&gt;
); &lt;br /&gt;
/* добавит рецепт алмаза, который создается из 3 железных и 3 золотых слитков, где x - железо, a - золото */&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;Recipes.addShaped({id: 264, count: 1, data: 0}, &lt;br /&gt;
	[&amp;quot;ax &amp;quot;,&amp;quot;xa &amp;quot;,&amp;quot;ax &amp;quot;],&lt;br /&gt;
	['x', 265, 0, 'a', 266, 0]&lt;br /&gt;
);&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;Recipes.addShapeless(&lt;br /&gt;
	{id: 264, count: 1, data: 0},&lt;br /&gt;
	[{id: 265, data: 0}, {id: 265, data: 0}, {id: 265, data: 0},&lt;br /&gt;
	 {id: 266, data: 0}, {id: 266, data: 0}, {id: 266, data: 0}]&lt;br /&gt;
);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Recipes.addShapeless({id: id, count: кол-во, data: data}, [{id: id1, data: data1}, {id: id2, data: data2}, ...], функция выполнения, префикс) - добавление бесформенных рецептов. &lt;br /&gt;
*Recipes.deleteRecipe({id: id, count: кол-во, data: data}) - удаляет все рецепты для данного предмета. &lt;br /&gt;
*Recipes.replaceWithShaped({id: id, count: кол-во, data: data}, форма рецепта, определение предметов, функция выполнения, префикс) - аналогична Recipes.addShaped, заменяет все остальные рецепты для этого предмета. &lt;br /&gt;
*Recipes.replaceWithShapeless({id: id, count: кол-во, data: data}, форма рецепта, определение предметов, функция выполнения, префикс) - аналогична Recipes.addShapeless, заменяет все остальные рецепты для этого предмета. &lt;br /&gt;
&lt;br /&gt;
=== Функция крафта ===&lt;br /&gt;
&lt;br /&gt;
К любому рецепту крафта может быть добавлена функция, вызывающуюся после совершения крафта. Пример раскрафта алмазной мотыги на составляющие:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Recipes.addShapeless({id: 264, count: 1, data: 0}, [{id: 293, data: 0}], function(api, field, result){ &lt;br /&gt;
    Player.addItemToInventory(ItemID.280, 2); &lt;br /&gt;
});&amp;lt;/syntaxhighlight&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;
Для добавления рецепта печи используется метод Recipes.addFurnace(id сырья, id результата, data результата, префикс) - для обычного рецепта параметры префикс не нужен.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Recipes.addFurnace(265, 264, 0); // переплавка железа в алмаз&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же этот метод имеет еще одну вариацию&amp;amp;nbsp; Recipes.addFurnace(id сырья, data сырья, id результата, data результата, префикс)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Recipes.addFurnace(351, 4, 280, 0); //Переплавка лазурита в палку&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&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;
&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;
=== Получение рецептов верстака и печи ===&lt;br /&gt;
&lt;br /&gt;
Есть возможность получать рецепты верстака или печи. Для этого есть функции:&lt;br /&gt;
&lt;br /&gt;
Для верстака:&lt;br /&gt;
&lt;br /&gt;
*Recipes.getRecipeByField(контейнер, префикс, игнорировать префикс); //&amp;lt;u&amp;gt;крафт&amp;lt;/u&amp;gt; по входным слотам (должны называтся от slot0 до slot8) &lt;br /&gt;
*Recipes.provideRecipe(контейнер, префикс) //&amp;lt;u&amp;gt;результат&amp;lt;/u&amp;gt; по входным слотам (должны называтся от slot0 до slot8) &lt;br /&gt;
*Recipes.getWorkbenchRecipesByIngredient(id, data);&amp;amp;nbsp; //&amp;lt;u&amp;gt;список крафтов&amp;lt;/u&amp;gt; с инградиентом &lt;br /&gt;
*Recipes.getWorkbenchRecipesByResult(id, кол-во, data); //&amp;lt;u&amp;gt;список крафтов&amp;lt;/u&amp;gt; с результатом &lt;br /&gt;
&lt;br /&gt;
Для печи:&lt;br /&gt;
&lt;br /&gt;
*Recipes.getFurnaceRecipesByResult();&amp;amp;nbsp; //&amp;lt;u&amp;gt;список всех&amp;lt;/u&amp;gt; рецептов печи &lt;br /&gt;
*Recipes.getFurnaceRecipeResult(id, префикс);&amp;amp;nbsp; //принимает входной&amp;amp;nbsp;предмет и возвращает результат &lt;br /&gt;
&lt;br /&gt;
Для того чтобы указать любое значение количиства или data можно использовать -1.&lt;br /&gt;
&lt;br /&gt;
Работа с объектами рецептов:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
var recipe_list=Recipes.getWorkbenchRecipesByResult(278, 1, 0);&lt;br /&gt;
&lt;br /&gt;
//количество елементов в списке: recipe_list.size();&lt;br /&gt;
&lt;br /&gt;
//получение одного рецепта из списка:&lt;br /&gt;
  var recipe=recipe_list.get(елемент);&lt;br /&gt;
  //или (если первый не работает используйте второй)&lt;br /&gt;
  var recipe=recipe_list.toArray()[елемент];&lt;br /&gt;
&lt;br /&gt;
//получение результата&lt;br /&gt;
recipe.result&lt;br /&gt;
//получение входного слота печи&lt;br /&gt;
recipe.inId   recipe.inData&lt;br /&gt;
//получение входных слотов верстака&lt;br /&gt;
var slots=recipe.getSortedEntries();&lt;br /&gt;
slots[номер слота от 0 до 8]&lt;br /&gt;
&lt;br /&gt;
//получение префикса: recipe.prefix&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2425</id>
		<title>InnerCore/Libs/StorageInterface</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2425"/>
				<updated>2020-04-18T21:22:10Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью&amp;amp;nbsp;интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей.&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;&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| '''6'''&lt;br /&gt;
| [https://yadi.sk/d/TITakdpdsjIGug Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | - Библиотека обновлена на InnerCore для Horizon: добавлена поддержка новых ванильных контейнеров.&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 18.04.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''5'''&lt;br /&gt;
| [https://yadi.sk/d/Om5TRGdlhylfQA Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | - Исправлена ошибка взаимодействия с tile entity без интерфейса хранилища в методе StorageInterface.transportLiquid&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 09.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''4'''&lt;br /&gt;
| [https://yadi.sk/d/1gBu4a-fEme-jA Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | &lt;br /&gt;
- Улучшена работа с жидкостями&amp;lt;br/&amp;gt; - В интерфейс добавлено поле liquidStorage&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 05.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''3'''&lt;br /&gt;
| [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | релиз библиотеки&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 02.02.2020&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
&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;
Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;IMPORT(&amp;quot;StorageInterface&amp;quot;);&amp;lt;/pre&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;
== Интерфейсы хранилищ блоков ==&lt;br /&gt;
&lt;br /&gt;
На данный момент интерфейсы привязываются только к tile entity, но в будущем по умолчанию интерфейсы будут прописаны у контейнеров из Майнкрафта, прежде всего печки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс для хранилища добавляется с помощью метода&amp;amp;nbsp;''StorageInterface.createInterface(id блока, объект интерфейса).''&amp;lt;br/&amp;gt; Регистрация слотов в интерфейсе выглядит так:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;StorageInterface.createInterface(id блока, {&lt;br /&gt;
    slots: {&lt;br /&gt;
        &amp;quot;slot1&amp;quot;: {&lt;br /&gt;
            input: true/false, // может ли слот принимать предметы&lt;br /&gt;
            output: true/false, // может ли слот отдавать предметы&lt;br /&gt;
            isValid: function(item, side, tileEntity){ // может ли слот принять предмет item со стороны side&lt;br /&gt;
                return true/false;&lt;br /&gt;
            },&lt;br /&gt;
            canOutput: function(item, side, tileEntity){ // можно ли извлечь предмет из слота (item - предмет в слоте)&lt;br /&gt;
                return true/false;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;slot2&amp;quot;: {&lt;br /&gt;
            ...&lt;br /&gt;
        },&lt;br /&gt;
        ...&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; Так же интерфейс хранилища обладает следующими функциями, которые могут быть перезаписаны в объекте интерфейса:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''isValidInput'''&lt;br /&gt;
| item, side, tileEntity&lt;br /&gt;
| Аналогична функции isValid слота, но действует на все слоты контейнера. По умолчанию возвращает true.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItem'''&lt;br /&gt;
| item, side, maxCount&lt;br /&gt;
| Функция добавления предмета, может быть перезаписана. Возвращает количество добавленных предметов.&lt;br /&gt;
|-&lt;br /&gt;
| '''getOutputSlots'''&lt;br /&gt;
| side&lt;br /&gt;
| Возвращяет слоты выхода, с которыми возможна работа с определённой стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''canReceiveLiquid'''&lt;br /&gt;
| liquid, side&lt;br /&gt;
| Может ли tile entity принять жидкость с именем ''liquid ''со стороны ''side''. По умолчанию возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
| '''canTransportLiquid'''&lt;br /&gt;
| liquid, side&lt;br /&gt;
| Может ли tile entity отдать жидкость с именем ''liquid ''со стороны ''side''.&amp;amp;nbsp;По умолчанию возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
| '''addLiquid'''&lt;br /&gt;
| liquid, amount&lt;br /&gt;
| Функция добавление жидкости. По умолчанию работает с liquidStorage.&lt;br /&gt;
|-&lt;br /&gt;
| '''getLiquid'''&lt;br /&gt;
| liquid, amount&lt;br /&gt;
| Функция извлечения жидкости.&amp;amp;nbsp;По умолчанию работает с liquidStorage.&amp;amp;nbsp;В функциях StorageInterface для передачи жидкости сначала извлекается весь возможный объём жидкости, а потом функция вызывается повторно с отрицательным ''amount&amp;amp;nbsp;''для возвращения жидкости, которую не удалось передать.&lt;br /&gt;
|-&lt;br /&gt;
| '''getLiquidStored'''&lt;br /&gt;
| storage, side&lt;br /&gt;
| Функция получения жидкости, хранящейся в tile entity. В функциях StorageInterface аргумент ''storage&amp;amp;nbsp;''равен ''&amp;quot;input&amp;quot; ''если проверяется жидкость для добавления, и''&amp;quot;output&amp;quot;'' если для извлечения.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Интерфейс хранилища&amp;amp;nbsp;сохраняется в поле ''interface ''объекта&amp;amp;nbsp;tile entity. В экземпляре интерфейса есть следующие указатели:&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''tileEntity ''- на tile entity, к которому он привязан;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''container ''- на контейнер tile entity;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''liquidStorage ''- на хранилище жидкости tileEntity.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Добавление интерфейса для tile entity на примере железной печки из мода IndustrialCraft 2&amp;lt;/div&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;StorageInterface.createInterface(BlockID.ironFurnace, {&lt;br /&gt;
    slots: {&lt;br /&gt;
        &amp;quot;slotSource&amp;quot;: {&lt;br /&gt;
            input: true,&lt;br /&gt;
            isValid: function(item, side){&lt;br /&gt;
                return side != 0 &amp;amp;&amp;amp; Recipes.getFurnaceRecipeResult(item.id, &amp;quot;iron&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;slotFuel&amp;quot;: {&lt;br /&gt;
            input: true, &lt;br /&gt;
            isValid: function(item, side){&lt;br /&gt;
                return side != 1 &amp;amp;&amp;amp; Recipes.getFuelBurnDuration(item.id, item.data) &amp;gt; 0;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;slotResult&amp;quot;: {output: true}&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&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;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Методы для передачи предметов и жидкостей ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestContainers'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Возвращает соседние с блоком на координатах ''coords ''контейнеры в виде массива. Если указан параметр ''side'', то вернёт контейнер с этой стороны. Если ''sideExcluded ''равен ''true'', то наоборот, все контейнеры кроме контейнера с указанной стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestLiquidStorages'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Аналогична предыдущей, но возвращает все соседние tile entity, имеющие хранилища жидкостей.&lt;br /&gt;
|-&lt;br /&gt;
| '''putItems'''&lt;br /&gt;
| items, containers&lt;br /&gt;
| Добавляет предметы из массива items в контейнеры из массива containers. Удобно использовать в связке с методом&amp;amp;nbsp;''getNearestContainers'''''.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''putItemToContainer'''&lt;br /&gt;
| item, container, side, maxCount&lt;br /&gt;
| Метод более низкого уровня, на котором основана работа предыдущего метода. Добавляет стак предметов в контейнер, но позволяет также указать максимальное количество предметов, которое может быть передано за раз.&lt;br /&gt;
|-&lt;br /&gt;
| '''extractItemsFromContainer'''&lt;br /&gt;
| inputTile, container, side, maxCount, oneStack&lt;br /&gt;
| &lt;br /&gt;
Позволяет извлечь предмет из контейнера и добавить его в tile entity.&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будут добавлены предметы&amp;lt;br/&amp;gt; '''container '''- контейнер, из которого будут извлечены предметы&amp;lt;br/&amp;gt; '''maxCount '''- сколько предметов извлечь [опционально]&amp;lt;br/&amp;gt; '''oneStack '''- если true, то будет извлечён только один стак предметов.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''transportLiquid'''&lt;br /&gt;
| liquid, maxAmount, outputTile, inputTile, outputSide&lt;br /&gt;
| &lt;br /&gt;
Передаёт жидкость из одного tile entity в другой.&amp;lt;br/&amp;gt; '''liquid&amp;amp;nbsp;'''- название жидкости&amp;lt;br/&amp;gt; '''maxAmount&amp;amp;nbsp;'''- максимальное количество, которое будет передано&amp;lt;br/&amp;gt; '''outputTile&amp;amp;nbsp;'''- tile entity, из которого будет передана жидкость&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будет передана жидкость&amp;lt;br/&amp;gt; '''outputSide&amp;amp;nbsp;'''- сторона, через которую передаётся жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''extractLiquid'''&lt;br /&gt;
| liquid, maxAmount, inputTile, outputTile, inputSide&lt;br /&gt;
| &lt;br /&gt;
Похож на предыдущий, но позволяет извлечь жидкость из tile entity&amp;lt;br/&amp;gt; '''liquid '''- в отличие от предыдущего метода жидкость может быть не указана, тогда извлечёт жидкость, которая хранится в&amp;amp;nbsp;''outputTile''.&amp;lt;br/&amp;gt; '''inputSide '''- сторона, в&amp;amp;nbsp;которую будет поступать жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''checkHoppers'''&lt;br /&gt;
| tileEntity&lt;br /&gt;
| Позволяет tile entity взаимодействовать с воронками. Для этого должна выполняться в функции тика tile entity. Требует интерфейса хранилища у tile entity для работы.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItemToSlot'''&lt;br /&gt;
| item, slot, count&lt;br /&gt;
| Внутренний метод библиотеки для добавления предмета в слот. При использовании на нативном контейнере нужно также установить слот, используя&amp;amp;nbsp;''container.setSlot.''&lt;br /&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Данная библиотека совместима с модами, использующими старый стандарт описания слотов tile entity&amp;amp;nbsp;через функцию&amp;amp;nbsp;''getTransportSlots'', а так же&amp;amp;nbsp;добавляет эту функцию&amp;amp;nbsp;и функцию ''addTransportedItem ''для tile entity при создании его интерфейса.&lt;br /&gt;
&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; &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; &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;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_Entity&amp;diff=2424</id>
		<title>InnerCore/Модуль Entity</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_Entity&amp;diff=2424"/>
				<updated>2020-04-14T11:19:47Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;
Вся работа с мобами осуществляется через модуль Entity.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Методы для работы с сущностями в Inner Core ==&lt;br /&gt;
&lt;br /&gt;
=== Получение ===&lt;br /&gt;
&lt;br /&gt;
*Entity.getAll() - возвращает Java-массив всех мобов в мире &lt;br /&gt;
*Entity.getAllJS() - идентичен ''Entity.getAll'', оставлен для совместимости &lt;br /&gt;
*Entity.isExist(mob) - проверяет, существует ли сущность mob &lt;br /&gt;
*Entity.getCustom(mob) - возвращает Updatable сущности mob, если она создана через MobRegistry. &lt;br /&gt;
*Entity.findNearest(coords, type, maxRange) - возвращает ближайшую к координатам ''coords ''сущность. Если задан параметр&amp;amp;nbsp;''type'', то находит только сузностей с заданным типом. Если задан ''maxRange'', то поиск будет производится в радиусе&amp;amp;nbsp;''maxRange.''&amp;amp;nbsp;Возвращает объект, содержащий уникальный идентификатор моба и расстояние до него:&amp;amp;nbsp;{entity: entity, dis: distance} &lt;br /&gt;
*Entity.getAllInRange(coords, maxRange, [type]) - возвращает JS-массив сущностей с типом type в сфере с центром coords и радиусом maxRange. Если тип сущности не указан, найдёт все сущности в указанном радиусе &lt;br /&gt;
&lt;br /&gt;
=== Создание и удаление ===&lt;br /&gt;
&lt;br /&gt;
*Entity.spawn(x, y, z, id, [skin]) - спавнит существо с типом id, координатами x, y, z и назначает ему скин skin. &lt;br /&gt;
*Entity.spawnAtCoords(coords, id, skin) - то же, что и&amp;amp;nbsp;''Entity.spawn'',&amp;amp;nbsp;но позволяет задать координаты в виде объекта {x: x, y: y, z: z} &lt;br /&gt;
*Entity.spawnCustom(name, x, y, z, [extra]) - спавнит сущность со строковым ID&amp;amp;nbsp;name, зарегистрированным через&amp;amp;nbsp;MobRegistry, на координатах x, y, z. Позволяет передать дополнительные данные в контроллеры сущности с помощью параметра extra &lt;br /&gt;
*Entity.spawnCustomAtCoords(name, coords, [extra]) - то же, что и&amp;amp;nbsp;''Entity.spawnCustom,''&amp;amp;nbsp;но позволяет задать координаты в виде объекта {x: x, y: y, z: z} &lt;br /&gt;
*Entity.remove(mob) - удаляет сущность mob из мира. &lt;br /&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;&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;
=== Работа с эффектами ===&lt;br /&gt;
&lt;br /&gt;
*Entity.addEffect(entity, effectId, amplifier, effectTime, [ambience], [particles]) - накладывает на сущность entity эффект с id effectId на время&amp;amp;nbsp;effectTime.&amp;amp;nbsp;amplifier - сила эффекта,&amp;amp;nbsp;ambience - внешний вид частиц (''true''/''false'') и&amp;amp;nbsp;particles - отображать ли частицы (''true''/''false'') &lt;br /&gt;
*Entity.clearEffect(entity, effectId) - удаляет у сущности mob эффект id. &lt;br /&gt;
*Entity.clearEffects(entity) - удаляет у сущности mob все эффекты. &lt;br /&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;
*Entity.damageEntity(entity, damage, [cause], [params]) -&amp;amp;nbsp; наносит сущности entity урон в damage единиц,&amp;amp;nbsp;cause может использоваться для определения attacker события,&amp;amp;nbsp;params - объект значений bool1 и bool2, смысл которых пока неизвестен &lt;br /&gt;
*Entity.healEntity(entity, damage) - лечит сущность entity на damage единиц. &lt;br /&gt;
*Entity.health(entity) - возвращает объект для работы со здоровьем моба. Объект содержит следующие методы, привязанные к entity: &lt;br /&gt;
**get() - возвращает здоровье сущности &lt;br /&gt;
**set() - устанавливает здоровье сущности &lt;br /&gt;
**getMax() - получает максимальное&amp;amp;nbsp;возможное значение здоровья сущности &lt;br /&gt;
**setMax() -&amp;amp;nbsp;устанавливает максимальное возможное значение здоровья сущности   &lt;br /&gt;
*Entity.getHealth(mob) - возвращает здоровье сущности mob. &lt;br /&gt;
*Entity.setHealth(mob, hp) - устанавливает здоровье в hp единиц сущности mob. &lt;br /&gt;
*Entity.getMaxHealth(mob) - возвращает максимальное количество здоровья сущности mob. &lt;br /&gt;
*Entity.setMaxHealth(mob, maxhp) - устанавливает максимальное здоровье maxhp сущности mob. &lt;br /&gt;
&lt;br /&gt;
=== Внешний вид моба ===&lt;br /&gt;
&lt;br /&gt;
*Entity.setHitbox(mob, width, height) - устанавливает сущности mob хитбокс высотой width и шириной height. &lt;br /&gt;
*Entity.setSkin(mob, skin) - ставит текстуру по пути texture сущности skin. &lt;br /&gt;
*Entity.setTexture(mob, texture) - ставит объект Texture в качестве текстуры для моба. На данный момент анимированные текстуры не поддерживаются.&amp;amp;nbsp; &lt;br /&gt;
*Entity.getRender(mob) - возвращает [[InnerCore/Список_ванильных_рендеров|id рендера]] сущности mob &lt;br /&gt;
*Entity.setRender(mob, render) - устанавливает сущности mob рендер&amp;amp;nbsp;с id&amp;amp;nbsp;render. [[InnerCore/Список_ванильных_рендеров|Список ванильных рендеров]] &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;
*Entity.getArmorSlot(entity, slot) - возвращает объект, содержащий информацию о предмете, хранимом в указанном слоте брони&amp;amp;nbsp;slot сущности&amp;amp;nbsp;entity &lt;br /&gt;
*Entity.setArmorSlot(entity, slot, id, count, data) - устанавливает в указанный слот брони&amp;amp;nbsp;slot сущности&amp;amp;nbsp;entity предмет с id, data и с количеством&amp;amp;nbsp;count&amp;amp;nbsp; &lt;br /&gt;
*Entity.getCarriedItem(entity) - возвращает объект, содержащий информацию о предмете, который держит в руках сущность&amp;amp;nbsp;entity &lt;br /&gt;
*Entity.setCarriedItem(entity, id, count, data) -&amp;amp;nbsp;устанавливает в руку сущности&amp;amp;nbsp;entity предмет с id, data и с количеством&amp;amp;nbsp;count&amp;amp;nbsp; &lt;br /&gt;
*Entity.getDroppedItem(entity) - получает предмет, которую сущность&amp;amp;nbsp;entity&amp;amp;nbsp;дропнула &lt;br /&gt;
*Entity.setDroppedItem(entity, id, count, data) - устанавливает&amp;amp;nbsp;предмет, которую сущность&amp;amp;nbsp;entity&amp;amp;nbsp;дропнула &lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Параметры моба ===&lt;br /&gt;
&lt;br /&gt;
*Entity.getType(entity) - получает числовой тип моба entity &lt;br /&gt;
*Entity.getAge(mob) - возвращает возраст сущности mob &lt;br /&gt;
*Entity.setAge(mob, age) - устанавливает возраст age сущности mob &lt;br /&gt;
*Entity.getNameTag(mob) - возвращает имя сущности mob. &lt;br /&gt;
*Entity.setNameTag(mob, name) - устанавливает сущности mob имя name. &lt;br /&gt;
*Entity.getProjectileItem(mob) - проверяет, является ли сущность mob снарядом, если это так, возвращает ее данные как предмета. &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;
=== Поведение моба ===&lt;br /&gt;
&lt;br /&gt;
*Entity.getMobile(mob) - получает, может ли сущность mob двигаться&amp;amp;nbsp; &lt;br /&gt;
*Entity.setMobile(mob, mobile) - в зависимости от значения mobile (''true''/''false'')&amp;amp;nbsp;управляет возможностью сущности mob двигаться. &lt;br /&gt;
*Entity.getSneaking(mob) - проверяет, сидит ли сущность mob. &lt;br /&gt;
*Entity.setSneaking(mob, sneak) - в зависимости от значения mobile (''true''/''false'')&amp;amp;nbsp;управляет, находится ли сущность mob в присяде. &lt;br /&gt;
*Entity.setFire(mob, tick, [force]) - заставляет сущность mob гореть в течении tick тиков. Последний параметр force следует всегда устанавливать в true &lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
=== Положение и поворот моба ===&lt;br /&gt;
&lt;br /&gt;
*Entity.setPosition(mob, x, y, z) - устанавливает сущность mob на координаты x, y, z. &lt;br /&gt;
*Entity.getPosition(mob) - возвращает координаты сущности mob. &lt;br /&gt;
*Entity.addPosition(mob, x, y, z) - относительно перемещает сущность mob на координаты x, y, z. &lt;br /&gt;
*Entity.getLookAngle(mob) - возвращает угол обзора сущности mob в виде объекта {pitch: pitch, yaw: yaw}. Углы выражаются в радианах &lt;br /&gt;
*Entity.setLookAngle(mob, yaw, pitch) - устанавливает сущности углы обзора yaw и pitch.&amp;amp;nbsp;Углы выражаются в радианах &lt;br /&gt;
*Entity.getLookVector(mob) - возвращает вектор взгляда сущности mob&amp;amp;nbsp;в формате {x: x, y: y, z: z} &lt;br /&gt;
*Entity.lookAt(entity, x, y, z) - устанавливает обзор сущности entity так, чтобы она смотрела на координаты&amp;amp;nbsp;x, y, z &lt;br /&gt;
*Entity.lookAtCoords(entity, coords) - то же, что и&amp;amp;nbsp;''Entity.lookAt'', но на вход принимает координаты в формате&amp;amp;nbsp;{x: x, y: y, z: z} &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;
*Entity.setVelocity(mob, velx, vely, velz) - устанавливает трехмерное ускорение velx, vely, velz сущности mob &lt;br /&gt;
*Entity.getVelocity(mob) - возвращает трехмерное ускорение сущности mob в виде объекта&amp;amp;nbsp;{x: x, y: y, z: z} &lt;br /&gt;
*Entity.addVelocity(mob, velx, vely, velz) - добавляет трехмерное ускорение velx, vely, velz сущности mob &lt;br /&gt;
*Entity.moveToTarget(entity, target, params) - передвигает сущность entity к координатам&amp;amp;nbsp;target. Параметр params - объект следующего формата (поданы значения по умолчанию) &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;{&lt;br /&gt;
    speed: 0, // Скорость движения&lt;br /&gt;
    denyY: false, // Запрещено ли изменение скорости по оси Y&lt;br /&gt;
    jumpVel: 0 // Задаёт скорость по оси Y&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Entity.moveToAngle(mob, angle, params) - разворачивает сущность mob на угол angle. Параметр params идентичен параметру метода&amp;amp;nbsp;''Entity.moveToTarget'' &lt;br /&gt;
*Entity.moveToLook(mob, params) - разворачивает сущность mob в сторону взгляда.&amp;amp;nbsp;Параметр params идентичен параметру метода&amp;amp;nbsp;''Entity.moveToTarget'' &lt;br /&gt;
*Entity.getMovingVector(mob) - возвращает вектор движения сущности mob - объект со следующими полями: &lt;br /&gt;
**x - проекция единичного вектора скорости сущности на ось x &lt;br /&gt;
**y - проекция единичного вектора скорости сущности на ось y &lt;br /&gt;
**z - проекция единичного вектора скорости сущности на ось&amp;amp;nbsp;z&amp;amp;nbsp; &lt;br /&gt;
**size - длина вектора скорости, численное значение скорости сущности &lt;br /&gt;
**xzsize - скорость сущности в горизонтальной плоскости   &lt;br /&gt;
*Entity.getMovingAngle(mob) - возвращает угол передвижения сущности mob в формате&amp;amp;nbsp;{pitch: pitch, yaw: yaw} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&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;
*Entity.getDistanceBetweenCoords(coords1, coords2) - возвращает расстояние между координатами в обьектах coords1 и coords2. Координаты задаются в формате&amp;amp;nbsp;{x: x, y: y, z: z} &lt;br /&gt;
*Entity.getDistanceToCoords(mob, coords) - возвращает расстояние от сущности mob до координат в обьекте coords&amp;amp;nbsp;{x: x, y: y, z: z} &lt;br /&gt;
*Entity.getDistanceToEntity(mob1, mob2) - возвращает расстояние между сущностями mob1 и mob2. &lt;br /&gt;
*Entity.getXZPlayerDis(entity) - возвращает расстояние в горизонтальной плоскости от сущности&amp;amp;nbsp;entity до игрока &lt;br /&gt;
*Entity.getLookVectorByAngle(angle) - возвращает вектор взгляда сущности в формате {x: x, y: y, z: z}, исходя из угла обзора angle, представленного в формате&amp;amp;nbsp;{pitch: pitch, yaw: yaw} &lt;br /&gt;
*Entity.getLookAt(mob, x, y, z) - высчитывает угол обзора сущности, необходимый, чтобы она смотрела на координаты&amp;amp;nbsp;x, y, z. Возвращает объект формата&amp;amp;nbsp;{pitch: pitch, yaw: yaw} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Легаси-функции, не реализованные в Inner Core ==&lt;br /&gt;
&lt;br /&gt;
*Entity.getExtra(mob, propetry) - возвращает значение свойства propetry сущности mob в виде строки &lt;br /&gt;
*Entity.putExtra(mob, propetry, value) - записывает свойство propetry со значением value в виде строки сущности mob. &lt;br /&gt;
*Entity.getExtraJson(mob, propetry) - возвращает свойство propetry сущности mob в виде JS-обьекта. &lt;br /&gt;
*Entity.putExtraJson(mob, propetry, value) - записывает свойство propetry со значением value в виде JS-обьекта сущности mob. &lt;br /&gt;
*Entity.getSkin(mob) - возвращает путь в текстурпаке текстуры сущности mob.&amp;amp;nbsp; &lt;br /&gt;
*Entity.rideAnimal(rider, riding) - сажает сущность rider на сущность riding. &lt;br /&gt;
*Entity.getRider(mob) - проверяет, всадник ли сущность mob. &lt;br /&gt;
*Entity.getRiding(mob) - проверяет, сидят ли на сущности mob. &lt;br /&gt;
*Entity.getTarget(mob) - возвращает цель сущности mob. &lt;br /&gt;
*Entity.setTarget(attaker, victim) - ставит сущности attacker цель victim. &lt;br /&gt;
*Entity.getMovingAngleByPositions(pos1, pos2) - не реализована &lt;br /&gt;
*Entity.getInventory(mob, [object], [object]) - возвращает инвентарь сущности mob.&amp;amp;nbsp; &lt;br /&gt;
&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; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=Druidic_Craft&amp;diff=2410</id>
		<title>Druidic Craft</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=Druidic_Craft&amp;diff=2410"/>
				<updated>2020-03-27T18:42:58Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: Новая страница: «&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Здравствуй игрок, если ты читаешь это то знай я BlackJack скоро сделаю так чт…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Здравствуй игрок, если ты читаешь это то знай я BlackJack скоро сделаю так что Вики Иннер кора будут просматриваемые&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B&amp;diff=2404</id>
		<title>InnerCore/Рецепты</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B&amp;diff=2404"/>
				<updated>2020-03-14T21:17:06Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&amp;lt;div class=&amp;quot;b-pageLayout b-pageLayout__xs&amp;quot; data-layout=&amp;quot;xs&amp;quot; id=&amp;quot;pageLayout&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;b-pageContent m-pageContent__withoutLeft m-pageContent__withoutRight&amp;quot; id=&amp;quot;pageContent&amp;quot;&amp;gt;&lt;br /&gt;
Добавление рецептов крафта и переплавки - то, без чего не обойдется никакой мод.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Рецепты верстака ===&lt;br /&gt;
&lt;br /&gt;
Рецепты верстака бывают 2х типов:&lt;br /&gt;
&lt;br /&gt;
*форменные - предмет должен быть выложен на верстаке в определенной форме. Если меньше, чем 3х3, то он может быть выложен в любой области верстака для его выполнения. &lt;br /&gt;
*бесформенные - требует лишь соблюдения присутсвия и кол-ва предметов в сетке крафта, но не требует порядка &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; Для добавления форменных рецептов используется функция Recipes.addShaped({id: id, count: кол-во, data: data}, [форма рецепта], [ингридиенты], функция выполнения function(api, field, result){}, префикс) - в обычном рецепте последние 2 параметра можно и нужно опустить, о них будет рассказано позже.&lt;br /&gt;
&lt;br /&gt;
*api - содержит объект апи содержащий следущие параметры: &lt;br /&gt;
**contatiner, getClass, wait, isPrevented, notifyAll, decreaseFieldSlot, notify, prevent, fieldSlot, getFieldSlot, hashCode, equals, toString, class, prevented.   &lt;br /&gt;
*field - массив идентификаторов слотов 0-8, содержащие: id, count, data, extra. для получения содержания слота используется field[slotID].parameter &lt;br /&gt;
*result - содержит сам предмет который возвращается в инвентарь при удачном крафте. Параметры result содержат: id, count, data, extra. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Форма рецепта задается массивом строк, которые соответсвуют строкам в форме рецепта, где каждый символ означает предмет, а пробел - отсутсвие предмета. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Ингридиенты это массив, в котором данные идут в порядке ['символ1', id1, data1, 'символ2', id2, data2, ...], и так для всех символов, которые использовались в форме рецепта, кроме пробела. Если data предмета не важна (к примеру вы хотите, чтобы в рецепте использовались доски любого типа), то вместо нее напишите -1. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Кол-ва строк может быть меньше 3, если столько не нужно.&amp;amp;nbsp; Пример рецепта:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;Recipes.addShaped({id: 264, count: 1, data: 0}, /* Результат крафта */&lt;br /&gt;
	[&amp;quot;ax&amp;quot;, &amp;quot;xa&amp;quot;, &amp;quot;ax&amp;quot;], /* Форма рецепта */&lt;br /&gt;
	['x', 265, 0, 'a', 266, 0]/* Ингридиенты */&lt;br /&gt;
); &lt;br /&gt;
/* добавит рецепт алмаза, который создается из 3 железных и 3 золотых слитков, где x - железо, a - золото */&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;Recipes.addShaped({id: 264, count: 1, data: 0}, &lt;br /&gt;
	[&amp;quot;ax &amp;quot;,&amp;quot;xa &amp;quot;,&amp;quot;ax &amp;quot;],&lt;br /&gt;
	['x', 265, 0, 'a', 266, 0]&lt;br /&gt;
);&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;Recipes.addShapeless(&lt;br /&gt;
	{id: 264, count: 1, data: 0},&lt;br /&gt;
	[{id: 265, data: 0}, {id: 265, data: 0}, {id: 265, data: 0},&lt;br /&gt;
	 {id: 266, data: 0}, {id: 266, data: 0}, {id: 266, data: 0}]&lt;br /&gt;
);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Recipes.addShapeless({id: id, count: кол-во, data: data}, [{id: id1, data: data1}, {id: id2, data: data2}, ...], функция выполнения, префикс) - добавление бесформенных рецептов. &lt;br /&gt;
*Recipes.deleteRecipe({id: id, count: кол-во, data: data}) - удаляет все рецепты для данного предмета. &lt;br /&gt;
*Recipes.replaceWithShaped({id: id, count: кол-во, data: data}, форма рецепта, определение предметов, функция выполнения, префикс) - аналогична Recipes.addShaped, заменяет все остальные рецепты для этого предмета. &lt;br /&gt;
*Recipes.replaceWithShapeless({id: id, count: кол-во, data: data}, форма рецепта, определение предметов, функция выполнения, префикс) - аналогична Recipes.addShapeless, заменяет все остальные рецепты для этого предмета. &lt;br /&gt;
&lt;br /&gt;
=== Функция крафта ===&lt;br /&gt;
&lt;br /&gt;
К любому рецепту крафта может быть добавлена функция, вызывающуюся после совершения крафта. Пример раскрафта алмазной мотыги на составляющие:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Recipes.addShapeless({id: 264, count: 1, data: 0}, [{id: 293, data: 0}], function(api, field, result){ &lt;br /&gt;
    Player.addItemToInventory(ItemID.280, 2); &lt;br /&gt;
});&amp;lt;/syntaxhighlight&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;
Для добавления рецепта печи используется метод Recipes.addFurnace(id сырья, id результата, data результата, префикс) - для обычного рецепта параметры префикс не нужен.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Recipes.addFurnace(265, 264, 0); // переплавка железа в алмаз&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же этот метод имеет еще одну вариацию&amp;amp;nbsp; Recipes.addFurnace(id сырья, data сырья, id результата, data результата, префикс)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Recipes.addFurnace(351, 4, 280, 0); //Переплавка лазурита в палку&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&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;
Есть возможность получать рецепты верстака или печи. Для этого есть функции:&lt;br /&gt;
&lt;br /&gt;
Для верстака:&lt;br /&gt;
&lt;br /&gt;
*Recipes.getRecipeByField(контейнер, префикс, игнорировать префикс); //&amp;lt;u&amp;gt;крафт&amp;lt;/u&amp;gt; по входным слотам (должны называтся от slot0 до slot8) &lt;br /&gt;
*Recipes.getWorkbenchRecipesByIngredient(id, data);&amp;amp;nbsp; //&amp;lt;u&amp;gt;список крафтов&amp;lt;/u&amp;gt; с инградиентом &lt;br /&gt;
*Recipes.getWorkbenchRecipesByResult(id, кол-во, data); //&amp;lt;u&amp;gt;список крафтов&amp;lt;/u&amp;gt; с результатом &lt;br /&gt;
&lt;br /&gt;
Для печи:&lt;br /&gt;
&lt;br /&gt;
*Recipes.getFurnaceRecipesByResult();&amp;amp;nbsp; //&amp;lt;u&amp;gt;список всех&amp;lt;/u&amp;gt; рецептов печи &lt;br /&gt;
*Recipes.getFurnaceRecipeResult(id, префикс);&amp;amp;nbsp; //принимает входной&amp;amp;nbsp;предмет и возвращает результат &lt;br /&gt;
&lt;br /&gt;
Для того чтобы указать любое значение количиства или data можно использовать -1.&lt;br /&gt;
&lt;br /&gt;
Работа с объектами рецептов:&lt;br /&gt;
&amp;lt;pre&amp;gt;var recipe_list=Recipes.getWorkbenchRecipesByResult(278, 1, 0);&lt;br /&gt;
&lt;br /&gt;
//количество елементов в списке: recipe_list.size();&lt;br /&gt;
&lt;br /&gt;
//получение одного рецепта из списка:&lt;br /&gt;
  var recipe=recipe_list.get(елемент);&lt;br /&gt;
  //или (если первый не работает используйте второй)&lt;br /&gt;
  var recipe=recipe_list.toArray()[елемент];&lt;br /&gt;
&lt;br /&gt;
//получение результата&lt;br /&gt;
recipe.result&lt;br /&gt;
//получение входного слота печи&lt;br /&gt;
recipe.inId   recipe.inData&lt;br /&gt;
//получение входных слотов верстака&lt;br /&gt;
var slots=recipe.getSortedEntries();&lt;br /&gt;
slots[номер слота от 0 до 8]&lt;br /&gt;
&lt;br /&gt;
//получение префикса: recipe.prefix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B&amp;diff=2403</id>
		<title>InnerCore/Рецепты</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/%D0%A0%D0%B5%D1%86%D0%B5%D0%BF%D1%82%D1%8B&amp;diff=2403"/>
				<updated>2020-03-13T20:35:40Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&amp;lt;div class=&amp;quot;b-pageLayout b-pageLayout__xs&amp;quot; data-layout=&amp;quot;xs&amp;quot; id=&amp;quot;pageLayout&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;b-pageContent m-pageContent__withoutLeft m-pageContent__withoutRight&amp;quot; id=&amp;quot;pageContent&amp;quot;&amp;gt;&lt;br /&gt;
Добавление рецептов крафта и переплавки - то, без чего не обойдется никакой мод.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
=== Рецепты верстака ===&lt;br /&gt;
&lt;br /&gt;
Рецепты верстака бывают 2х типов:&lt;br /&gt;
&lt;br /&gt;
*форменные - предмет должен быть выложен на верстаке в определенной форме. Если меньше, чем 3х3, то он может быть выложен в любой области верстака для его выполнения. &lt;br /&gt;
*бесформенные - требует лишь соблюдения присутсвия и кол-ва предметов в сетке крафта, но не требует порядка &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; Для добавления форменных рецептов используется функция Recipes.addShaped({id: id, count: кол-во, data: data}, [форма рецепта], [ингридиенты], функция выполнения function(api, field, result){}, префикс) - в обычном рецепте последние 2 параметра можно и нужно опустить, о них будет рассказано позже.&lt;br /&gt;
&lt;br /&gt;
*api - содержит объект апи содержащий следущие параметры: &lt;br /&gt;
**contatiner, getClass, wait, isPrevented, notifyAll, decreaseFieldSlot, notify, prevent, fieldSlot, getFieldSlot, hashCode, equals, toString, class, prevented.   &lt;br /&gt;
*field - массив идентификаторов слотов 0-8, содержащие: id, count, data, extra. для получения содержания слота используется field[slotID].parameter &lt;br /&gt;
*result - содержит сам предмет который возвращается в инвентарь при удачном крафте. Параметры result содержат: id, count, data, extra. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Форма рецепта задается массивом строк, которые соответсвуют строкам в форме рецепта, где каждый символ означает предмет, а пробел - отсутсвие предмета. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Ингридиенты это массив, в котором данные идут в порядке ['символ1', id1, data1, 'символ2', id2, data2, ...], и так для всех символов, которые использовались в форме рецепта, кроме пробела. Если data предмета не важна (к примеру вы хотите, чтобы в рецепте использовались доски любого типа), то вместо нее напишите -1. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Кол-ва строк может быть меньше 3, если столько не нужно.&amp;amp;nbsp; Пример рецепта:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;Recipes.addShaped({id: 264, count: 1, data: 0}, /* Результат крафта */&lt;br /&gt;
	[&amp;quot;ax&amp;quot;, &amp;quot;xa&amp;quot;, &amp;quot;ax&amp;quot;], /* Форма рецепта */&lt;br /&gt;
	['x', 265, 0, 'a', 266, 0]/* Ингридиенты */&lt;br /&gt;
); &lt;br /&gt;
/* добавит рецепт алмаза, который создается из 3 железных и 3 золотых слитков, где x - железо, a - золото */&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;Recipes.addShaped({id: 264, count: 1, data: 0}, &lt;br /&gt;
	[&amp;quot;ax &amp;quot;,&amp;quot;xa &amp;quot;,&amp;quot;ax &amp;quot;],&lt;br /&gt;
	['x', 265, 0, 'a', 266, 0]&lt;br /&gt;
);&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;Recipes.addShapeless(&lt;br /&gt;
	{id: 264, count: 1, data: 0},&lt;br /&gt;
	[{id: 265, data: 0}, {id: 265, data: 0}, {id: 265, data: 0},&lt;br /&gt;
	 {id: 266, data: 0}, {id: 266, data: 0}, {id: 266, data: 0}]&lt;br /&gt;
);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Recipes.addShapeless({id: id, count: кол-во, data: data}, [{id: id1, data: data1}, {id: id2, data: data2}, ...], функция выполнения, префикс) - добавление бесформенных рецептов. &lt;br /&gt;
*Recipes.deleteRecipe({id: id, count: кол-во, data: data}) - удаляет все рецепты для данного предмета. &lt;br /&gt;
*Recipes.replaceWithShaped({id: id, count: кол-во, data: data}, форма рецепта, определение предметов, функция выполнения, префикс) - аналогична Recipes.addShaped, заменяет все остальные рецепты для этого предмета. &lt;br /&gt;
*Recipes.replaceWithShapeless({id: id, count: кол-во, data: data}, форма рецепта, определение предметов, функция выполнения, префикс) - аналогична Recipes.addShapeless, заменяет все остальные рецепты для этого предмета. &lt;br /&gt;
&lt;br /&gt;
=== Функция крафта ===&lt;br /&gt;
&lt;br /&gt;
К любому рецепту крафта может быть добавлена функция, вызывающуюся после совершения крафта. Пример раскрафта алмазной мотыги на составляющие:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;Recipes.addShapeless({id: 264, count: 1, data: 0}, [{id: 293, data: 0}], function(api, field, result){ &lt;br /&gt;
    Player.addItemToInventory(ItemID.280, 2); &lt;br /&gt;
});&amp;lt;/syntaxhighlight&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;
Для добавления рецепта печи используется метод Recipes.addFurnace(id сырья, id результата, data результата, префикс) - для обычного рецепта параметры префикс не нужен.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Recipes.addFurnace(265, 264, 0); // переплавка железа в алмаз&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же этот метод имеет еще одну вариацию&amp;amp;nbsp; Recipes.addFurnace(id сырья, data сырья, id результата, data результата, префикс)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Recipes.addFurnace(351, 4, 280, 0); //Переплавка лазурита в палку&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&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;
Для верстака:&lt;br /&gt;
&lt;br /&gt;
*Recipes.getRecipeByField(контейнер, префикс, игнорировать префикс); //&amp;lt;u&amp;gt;крафт&amp;lt;/u&amp;gt; по входным слотам (должны называтся от slot0 до slot8) &lt;br /&gt;
*Recipes.getWorkbenchRecipesByIngredient(id, data);&amp;amp;nbsp; //&amp;lt;u&amp;gt;список крафтов&amp;lt;/u&amp;gt; с инградиентом &lt;br /&gt;
*Recipes.getWorkbenchRecipesByResult(id, кол-во, data); //&amp;lt;u&amp;gt;список крафтов&amp;lt;/u&amp;gt; с результатом &lt;br /&gt;
&lt;br /&gt;
Для печи:&lt;br /&gt;
&lt;br /&gt;
*Recipes.getFurnaceRecipesByResult();&amp;amp;nbsp; //&amp;lt;u&amp;gt;список всех&amp;lt;/u&amp;gt; рецептов печи &lt;br /&gt;
*Recipes.getFurnaceRecipeResult(id, префикс);&amp;amp;nbsp; //возвращает&amp;amp;nbsp;объект предмета &lt;br /&gt;
&lt;br /&gt;
Для того чтобы указать любое значение количиства или data можно использовать -1.&lt;br /&gt;
&lt;br /&gt;
Работа с объектами рецептов:&lt;br /&gt;
&amp;lt;pre&amp;gt;var recipe_list=Recipes.getWorkbenchRecipesByResult(278, 1, 0);&lt;br /&gt;
&lt;br /&gt;
//количество елементов в списке: recipe_list.size();&lt;br /&gt;
&lt;br /&gt;
//получение одного рецепта из списка:&lt;br /&gt;
  var recipe=recipe_list.get(елемент);&lt;br /&gt;
  //или (если первый не работает используйте второй)&lt;br /&gt;
  var recipe=recipe_list.toArray()[елемент];&lt;br /&gt;
&lt;br /&gt;
//получение результата&lt;br /&gt;
recipe.result&lt;br /&gt;
//получение входного слота печи&lt;br /&gt;
recipe.inId   recipe.inData&lt;br /&gt;
//получение входных слотов верстака&lt;br /&gt;
var slots=recipe.getSortedEntries();&lt;br /&gt;
slots[номер слота от 0 до 8]&lt;br /&gt;
&lt;br /&gt;
//получение префикса: recipe.prefix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp; &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; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2398</id>
		<title>InnerCore/Libs/StorageInterface</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2398"/>
				<updated>2020-03-05T18:32:53Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью&amp;amp;nbsp;интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей.&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| '''4'''&lt;br /&gt;
| [https://yadi.sk/d/1gBu4a-fEme-jA Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | &lt;br /&gt;
- Улучшена работа с жидкостями&amp;lt;br/&amp;gt; - В интерфейс добавлено поле liquidStorage&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 04.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''3'''&lt;br /&gt;
| [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | релиз библиотеки&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 02.02.2020&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Импорт ==&lt;br /&gt;
&lt;br /&gt;
Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;IMPORT(&amp;quot;StorageInterface&amp;quot;);&amp;lt;/pre&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;
На данный момент интерфейсы привязываются только к tile entity, но в будущем по умолчанию интерфейсы будут прописаны у контейнеров из Майнкрафта, прежде всего печки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс для хранилища добавляется с помощью метода&amp;amp;nbsp;''StorageInterface.createInterface(id блока, объект интерфейса).''&amp;lt;br/&amp;gt; Регистрация слотов в интерфейсе выглядит так:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(id блока, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot1&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;input: true/false, // может ли слот принимать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;output: true/false, // может ли слот отдавать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side, tileEntity){ // может ли слот принять предмет item со стороны side&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return true/false;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canOutput: function(item, side, tileEntity){ // можно ли извлечь предмет из слота (item - предмет в слоте)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return true/false;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot2&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;br/&amp;gt; Так же интерфейс хранилища обладает следующими функциями, которые могут быть перезаписаны в объекте интерфейса:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''isValidInput'''&lt;br /&gt;
| item, side, tileEntity&lt;br /&gt;
| Аналогична функции isValid слота, но действует на все слоты контейнера. По умолчанию возвращает true.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItem'''&lt;br /&gt;
| item, side, maxCount&lt;br /&gt;
| Функция добавления предмета, может быть перезаписана. Возвращает количество добавленных предметов.&lt;br /&gt;
|-&lt;br /&gt;
| '''getOutputSlots'''&lt;br /&gt;
| side&lt;br /&gt;
| Возвращяет слоты выхода, с которыми возможна работа с определённой стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''canReceiveLiquid'''&lt;br /&gt;
| liquid, side&lt;br /&gt;
| Может ли tile entity принять жидкость с именем ''liquid ''со стороны ''side''. По умолчанию возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
| '''canTransportLiquid'''&lt;br /&gt;
| liquid, side&lt;br /&gt;
| Может ли tile entity отдать жидкость с именем ''liquid ''со стороны ''side''.&amp;amp;nbsp;По умолчанию возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
| '''addLiquid'''&lt;br /&gt;
| liquid, amount&lt;br /&gt;
| Функция добавление жидкости. По умолчанию работает с liquidStorage.&lt;br /&gt;
|-&lt;br /&gt;
| '''getLiquid'''&lt;br /&gt;
| liquid, amount&lt;br /&gt;
| Функция извлечения жидкости.&amp;amp;nbsp;По умолчанию работает с liquidStorage.&amp;amp;nbsp;В функциях StorageInterface для передачи жидкости сначала извлекается весь возможный объём жидкости, а потом функция вызывается повторно с отрицательным ''amount&amp;amp;nbsp;''для возвращения жидкости, которую не удалось передать.&lt;br /&gt;
|-&lt;br /&gt;
| '''getLiquidStored'''&lt;br /&gt;
| storage, side&lt;br /&gt;
| Функция получения жидкости, хранящейся в tile entity. В функциях StorageInterface аргумент ''storage&amp;amp;nbsp;''равен ''&amp;quot;input&amp;quot; ''если проверяется жидкость для добавления, и''&amp;quot;output&amp;quot;'' если для извлечения.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Интерфейс хранилища&amp;amp;nbsp;сохраняется в поле ''interface ''объекта&amp;amp;nbsp;tile entity. В экземпляре интерфейса есть следующие указатели:&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''tileEntity ''- на tile entity, к которому он привязан;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''container ''- на контейнер tile entity;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''liquidStorage ''- на хранилище жидкости tileEntity.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Добавление интерфейса для tile entity на примере железной печки из мода IndustrialCraft 2&amp;lt;/div&amp;gt; &amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(BlockID.ironFurnace, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotSource&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; input: true,&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 0 &amp;amp;&amp;amp; Recipes.getFurnaceRecipeResult(item.id, &amp;quot;iron&amp;quot;);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotFuel&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;input: true,&amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 1 &amp;amp;&amp;amp; Recipes.getFuelBurnDuration(item.id, item.data) &amp;gt; 0;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotResult&amp;quot;: {output: true}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &amp;lt;/div&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;&amp;amp;nbsp;&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;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestContainers'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Возвращает соседние с блоком на координатах ''coords ''контейнеры в виде массива. Если указан параметр ''side'', то вернёт контейнер с этой стороны. Если ''sideExcluded ''равен ''true'', то наоборот, все контейнеры кроме контейнера с указанной стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestLiquidStorages'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Аналогична предыдущей, но возвращает все соседние tile entity, имеющие хранилища жидкостей.&lt;br /&gt;
|-&lt;br /&gt;
| '''putItems'''&lt;br /&gt;
| items, containers&lt;br /&gt;
| Добавляет предметы из массива items в контейнеры из массива containers. Удобно использовать в связке с методом&amp;amp;nbsp;''getNearestContainers'''''.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''putItemToContainer'''&lt;br /&gt;
| item, container, side, maxCount&lt;br /&gt;
| Метод более низкого уровня, на котором основана работа предыдущего метода. Добавляет стак предметов в контейнер, но позволяет также указать максимальное количество предметов, которое может быть передано за раз.&lt;br /&gt;
|-&lt;br /&gt;
| '''extractItemsFromContainer'''&lt;br /&gt;
| inputContainer, container, side, maxCount, oneStack&lt;br /&gt;
| &lt;br /&gt;
Позволяет извлечь предмет из контейнера и добавить его в tile entity.&amp;lt;br/&amp;gt; '''inputContainer '''- контейнер, в который будут добавлены предметы&amp;lt;br/&amp;gt; '''container '''- контейнер, из которого будут извлечены предметы&amp;lt;br/&amp;gt; '''maxCount '''- сколько предметов извлечь [опционально]&amp;lt;br/&amp;gt; '''oneStack '''- если true, то будет извлечён только один стак предметов.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''transportLiquid'''&lt;br /&gt;
| liquid, maxAmount, outputTile, inputTile, outputSide&lt;br /&gt;
| &lt;br /&gt;
Передаёт жидкость из одного tile entity в другой.&amp;lt;br/&amp;gt; '''liquid&amp;amp;nbsp;'''- название жидкости&amp;lt;br/&amp;gt; '''maxAmount&amp;amp;nbsp;'''- максимальное количество, которое будет передано&amp;lt;br/&amp;gt; '''outputTile&amp;amp;nbsp;'''- tile entity, из которого будет передана жидкость&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будет передана жидкость&amp;lt;br/&amp;gt; '''outputSide&amp;amp;nbsp;'''- сторона, через которую передаётся жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''extractLiquid'''&lt;br /&gt;
| liquid, maxAmount, inputTile, outputTile, inputSide&lt;br /&gt;
| &lt;br /&gt;
Похож на предыдущий, но позволяет извлечь жидкость из tile entity&amp;lt;br/&amp;gt; '''liquid '''- в отличие от предыдущего метода жидкость может быть не указана, тогда извлечёт жидкость, которая хранится в&amp;amp;nbsp;''outputTile''.&amp;lt;br/&amp;gt; '''inputSide '''- сторона, в&amp;amp;nbsp;которую будет поступать жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''checkHoppers'''&lt;br /&gt;
| tileEntity&lt;br /&gt;
| Позволяет tile entity взаимодействовать с воронками. Для этого должна выполняться в функции тика tile entity. Требует интерфейса хранилища у tile entity для работы.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItemToSlot'''&lt;br /&gt;
| item, slot, count&lt;br /&gt;
| Внутренний метод библиотеки для добавления предмета в слот. При использовании на нативном контейнере нужно также установить слот, используя&amp;amp;nbsp;''container.setSlot.''&lt;br /&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Данная библиотека совместима с модами, использующими старый стандарт описания слотов tile entity&amp;amp;nbsp;через функцию&amp;amp;nbsp;''getTransportSlots'', а так же&amp;amp;nbsp;добавляет эту функцию&amp;amp;nbsp;и функцию ''addTransportedItem ''для tile entity при создании его интерфейса.&lt;br /&gt;
&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; &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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2397</id>
		<title>InnerCore/Libs/StorageInterface</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2397"/>
				<updated>2020-03-05T18:30:12Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью&amp;amp;nbsp;интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей.&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| '''4'''&lt;br /&gt;
| [https://yadi.sk/d/1gBu4a-fEme-jA Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | &lt;br /&gt;
- Улучшена работа с жидкостями&amp;lt;br/&amp;gt; - В интерфейс добавлено поле liquidStorage&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 04.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''3'''&lt;br /&gt;
| [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | релиз библиотеки&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 02.02.2020&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Импорт ==&lt;br /&gt;
&lt;br /&gt;
Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;IMPORT(&amp;quot;StorageInterface&amp;quot;);&amp;lt;/pre&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;
На данный момент интерфейсы привязываются только к tile entity, но в будущем по умолчанию интерфейсы будут прописаны у контейнеров из Майнкрафта, прежде всего печки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс для хранилища добавляется с помощью метода&amp;amp;nbsp;''StorageInterface.createInterface(id блока, объект интерфейса).''&amp;lt;br/&amp;gt; Регистрация слотов в интерфейсе выглядит так:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(id блока, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot1&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;input: true/false, // может ли слот принимать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;output: true/false, // может ли слот отдавать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side, tileEntity){ // может ли слот принять предмет item со стороны side&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return true/false;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canOutput: function(item, side, tileEntity){ // можно ли извлечь предмет из слота (item - предмет в слоте)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return true/false;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot2&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;br/&amp;gt; Так же интерфейс хранилища обладает следующими функциями, которые могут быть перезаписаны в объекте интерфейса:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''isValidInput'''&lt;br /&gt;
| item, side, tileEntity&lt;br /&gt;
| Аналогична функции isValid слота, но действует на все слоты контейнера. По умолчанию возвращает true.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItem'''&lt;br /&gt;
| item, side, maxCount&lt;br /&gt;
| Функция добавления предмета, может быть перезаписана. Возвращает количество добавленных предметов.&lt;br /&gt;
|-&lt;br /&gt;
| '''getOutputSlots'''&lt;br /&gt;
| side&lt;br /&gt;
| Возвращяет слоты выхода, с которыми возможна работа с определённой стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''canReceiveLiquid'''&lt;br /&gt;
| liquid, side&lt;br /&gt;
| Может ли tile entity принять жидкость с именем ''liquid ''со стороны ''side''. По умолчанию возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
| '''canTransportLiquid'''&lt;br /&gt;
| liquid, side&lt;br /&gt;
| Может ли tile entity отдать жидкость с именем ''liquid ''со стороны ''side''.&amp;amp;nbsp;По умолчанию возвращает false.&lt;br /&gt;
|-&lt;br /&gt;
| '''addLiquid'''&lt;br /&gt;
| liquid, amount&lt;br /&gt;
| Функция добавление жидкости. По умолчанию работает с liquidStorage.&lt;br /&gt;
|-&lt;br /&gt;
| '''getLiquid'''&lt;br /&gt;
| liquid, amount&lt;br /&gt;
| Функция извлечения жидкости.&amp;amp;nbsp;По умолчанию работает с liquidStorage.&lt;br /&gt;
|-&lt;br /&gt;
| '''getLiquidStored'''&lt;br /&gt;
| storage, side&lt;br /&gt;
| Функция получения жидкости, хранящейся в tile entity. В функциях StorageInterface аргумент ''storage&amp;amp;nbsp;''равен ''&amp;quot;input&amp;quot; ''если проверяется жидкость для добавления, и''&amp;quot;output&amp;quot;'' если для извлечения.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Интерфейс хранилища&amp;amp;nbsp;сохраняется в поле ''interface ''объекта&amp;amp;nbsp;tile entity. В экземпляре интерфейса есть следующие указатели:&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''tileEntity ''- на tile entity, к которому он привязан;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''container ''- на контейнер tile entity;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''liquidStorage ''- на хранилище жидкости tileEntity.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Добавление интерфейса для tile entity на примере железной печки из мода IndustrialCraft 2&amp;lt;/div&amp;gt; &amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(BlockID.ironFurnace, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotSource&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; input: true,&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 0 &amp;amp;&amp;amp; Recipes.getFurnaceRecipeResult(item.id, &amp;quot;iron&amp;quot;);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotFuel&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;input: true,&amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 1 &amp;amp;&amp;amp; Recipes.getFuelBurnDuration(item.id, item.data) &amp;gt; 0;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotResult&amp;quot;: {output: true}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &amp;lt;/div&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;
== Методы для передачи предметов и жидкостей ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestContainers'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Возвращает соседние с блоком на координатах ''coords ''контейнеры в виде массива. Если указан параметр ''side'', то вернёт контейнер с этой стороны. Если ''sideExcluded ''равен ''true'', то наоборот, все контейнеры кроме контейнера с указанной стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestLiquidStorages'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Аналогична предыдущей, но возвращает все соседние tile entity, имеющие хранилища жидкостей.&lt;br /&gt;
|-&lt;br /&gt;
| '''putItems'''&lt;br /&gt;
| items, containers&lt;br /&gt;
| Добавляет предметы из массива items в контейнеры из массива containers. Удобно использовать в связке с методом&amp;amp;nbsp;''getNearestContainers'''''.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''putItemToContainer'''&lt;br /&gt;
| item, container, side, maxCount&lt;br /&gt;
| Метод более низкого уровня, на котором основана работа предыдущего метода. Добавляет стак предметов в контейнер, но позволяет также указать максимальное количество предметов, которое может быть передано за раз.&lt;br /&gt;
|-&lt;br /&gt;
| '''extractItemsFromContainer'''&lt;br /&gt;
| inputContainer, container, side, maxCount, oneStack&lt;br /&gt;
| &lt;br /&gt;
Позволяет извлечь предмет из контейнера и добавить его в tile entity.&amp;lt;br/&amp;gt; '''inputContainer '''- контейнер, в который будут добавлены предметы&amp;lt;br/&amp;gt; '''container '''- контейнер, из которого будут извлечены предметы&amp;lt;br/&amp;gt; '''maxCount '''- сколько предметов извлечь [опционально]&amp;lt;br/&amp;gt; '''oneStack '''- если true, то будет извлечён только один стак предметов.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''transportLiquid'''&lt;br /&gt;
| liquid, maxAmount, outputTile, inputTile, outputSide&lt;br /&gt;
| &lt;br /&gt;
Передаёт жидкость из одного tile entity в другой.&amp;lt;br/&amp;gt; '''liquid&amp;amp;nbsp;'''- название жидкости&amp;lt;br/&amp;gt; '''maxAmount&amp;amp;nbsp;'''- максимальное количество, которое будет передано&amp;lt;br/&amp;gt; '''outputTile&amp;amp;nbsp;'''- tile entity, из которого будет передана жидкость&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будет передана жидкость&amp;lt;br/&amp;gt; '''outputSide&amp;amp;nbsp;'''- сторона, через которую передаётся жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''extractLiquid'''&lt;br /&gt;
| liquid, maxAmount, inputTile, outputTile, inputSide&lt;br /&gt;
| &lt;br /&gt;
Похож на предыдущий, но позволяет извлечь жидкость из tile entity&amp;lt;br/&amp;gt; '''liquid '''- в отличие от предыдущего метода жидкость может быть не указана, тогда извлечёт жидкость, которая хранится в&amp;amp;nbsp;''outputTile''.&amp;lt;br/&amp;gt; '''inputSide '''- сторона, в&amp;amp;nbsp;которую будет поступать жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''checkHoppers'''&lt;br /&gt;
| tileEntity&lt;br /&gt;
| Позволяет tile entity взаимодействовать с воронками. Для этого должна выполняться в функции тика tile entity. Требует интерфейса хранилища у tile entity для работы.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItemToSlot'''&lt;br /&gt;
| item, slot, count&lt;br /&gt;
| Внутренний метод библиотеки для добавления предмета в слот. При использовании на нативном контейнере нужно также установить слот, используя&amp;amp;nbsp;''container.setSlot.''&lt;br /&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Данная библиотека совместима с модами, использующими старый стандарт описания слотов tile entity&amp;amp;nbsp;через функцию&amp;amp;nbsp;''getTransportSlots'', а так же&amp;amp;nbsp;добавляет эту функцию&amp;amp;nbsp;и функцию ''addTransportedItem ''для tile entity при создании его интерфейса.&lt;br /&gt;
&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; &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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2395</id>
		<title>InnerCore/Libs/StorageInterface</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2395"/>
				<updated>2020-03-04T22:30:58Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;
Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью&amp;amp;nbsp;интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей.&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| '''4'''&lt;br /&gt;
| [https://yadi.sk/d/ayrPIjyJdjX-HQ Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | &lt;br /&gt;
- Улучшена работа с жидкостями&amp;lt;br/&amp;gt; -&amp;amp;nbsp;extractItemsFromContainer теперь принимает первым аргументом контейнер, а не tileEntity&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 04.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''3'''&lt;br /&gt;
| [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | релиз библиотеки&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 02.02.2020&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Импорт ==&lt;br /&gt;
&lt;br /&gt;
Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;IMPORT(&amp;quot;StorageInterface&amp;quot;);&amp;lt;/pre&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;
На данный момент интерфейсы привязываются только к tile entity, но в будущем по умолчанию интерфейсы будут прописаны у контейнеров из Майнкрафта, прежде всего печки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс для хранилища добавляется с помощью метода&amp;amp;nbsp;''StorageInterface.createInterface(id блока, объект интерфейса)''&amp;amp;nbsp;и в общем виде выглядит так:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(id блока, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot1&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;input: bool, // может ли слот принимать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;output: bool, // может ли слот отдавать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side, tileEntity){ // может ли слот принять предмет item со стороны side&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return bool;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canOutput: function(item, side, tileEntity){ // можно ли извлечь предмет из слота (item - предмет в слоте)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return bool;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot2&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValidInput: function(item, side, tileEntity){ // аналогична функции isValid слота, но действует на все слоты контейнера&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return true;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;addItem: function(item, side, maxCount){&amp;amp;nbsp;return int; }, // функция добавления предмета&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;getOutputSlots: function(side){ return []; }, // функция получения слотов&amp;amp;nbsp;для извлечения предметов&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;// методы работы с хранилищем жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canReceiveLiquid: function(liquid, side){ return false; }, // может ли tile entity принять жидкость (liquid - название жидкости)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canTransportLiquid: function(liquid, side){ return false; }, // может ли tile entity отдать жидкость (liquid - название жидкости)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;addLiquid: function(liquid, amount){&amp;amp;nbsp;// функция добавление жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return this.liquidStorage.addLiquid(luquid, amount);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;getLiquid: function(liquid, amount){ // функция извлечения жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return this.liquidStorage.getLiquid(luquid, amount);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &lt;br /&gt;
Здесь указаны все функции объекта интерфейса, которые можно задать этим методом. При их отсутствии добавляются функции по умолчанию, и для некоторых функций приведён&amp;amp;nbsp;их код.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Интерфейс хранилища&amp;amp;nbsp;сохраняется в поле ''interface ''объекта&amp;amp;nbsp;tile entity. В экземпляре интерфейса есть следующие указатели:&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''tileEntity ''- на tile entity, к которому он привязан;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''container ''- на контейнер tile entity;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''liquidStorage ''- на хранилище жидкости tileEntity.&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Добавление интерфейса для tile entity на примере железной печки из мода IndustrialCraft 2&amp;lt;/div&amp;gt; &amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(BlockID.ironFurnace, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotSource&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; input: true,&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 0 &amp;amp;&amp;amp; Recipes.getFurnaceRecipeResult(item.id, &amp;quot;iron&amp;quot;);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotFuel&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;input: true,&amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 1 &amp;amp;&amp;amp; Recipes.getFuelBurnDuration(item.id, item.data) &amp;gt; 0;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotResult&amp;quot;: {output: true}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &amp;lt;/div&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;
== Методы для передачи предметов и жидкостей ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestContainers'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Возвращает соседние с блоком на координатах ''coords ''контейнеры в виде массива. Если указан параметр ''side'', то вернёт контейнер с этой стороны. Если ''sideExcluded ''равен ''true'', то наоборот, все контейнеры кроме контейнера с указанной стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestLiquidStorages'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Аналогична предыдущей, но возвращает все соседние tile entity, имеющие хранилища жидкостей.&lt;br /&gt;
|-&lt;br /&gt;
| '''putItems'''&lt;br /&gt;
| items, containers&lt;br /&gt;
| Добавляет предметы из массива items в контейнеры из массива containers. Удобно использовать в связке с методом&amp;amp;nbsp;''getNearestContainers'''''.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''putItemToContainer'''&lt;br /&gt;
| item, container, side, maxCount&lt;br /&gt;
| Метод более низкого уровня, на котором основана работа предыдущего метода. Добавляет стак предметов в контейнер, но позволяет также указать максимальное количество предметов, которое может быть передано за раз.&lt;br /&gt;
|-&lt;br /&gt;
| '''extractItemsFromContainer'''&lt;br /&gt;
| inputContainer, container, side, maxCount, oneStack&lt;br /&gt;
| &lt;br /&gt;
Позволяет извлечь предмет из контейнера и добавить его в tile entity.&amp;lt;br/&amp;gt; '''inputContainer '''- контейнер, в который будут добавлены предметы&amp;lt;br/&amp;gt; '''container '''- контейнер, из которого будут извлечены предметы&amp;lt;br/&amp;gt; '''maxCount '''- сколько предметов извлечь [опционально]&amp;lt;br/&amp;gt; '''oneStack '''- если true, то будет извлечён только один стак предметов.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''transportLiquid'''&lt;br /&gt;
| liquid, maxAmount, outputTile, inputTile, outputSide&lt;br /&gt;
| &lt;br /&gt;
Передаёт жидкость из одного tile entity в другой.&amp;lt;br/&amp;gt; '''liquid&amp;amp;nbsp;'''- название жидкости&amp;lt;br/&amp;gt; '''maxAmount&amp;amp;nbsp;'''- максимальное количество, которое будет передано&amp;lt;br/&amp;gt; '''outputTile&amp;amp;nbsp;'''- tile entity, из которого будет передана жидкость&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будет передана жидкость&amp;lt;br/&amp;gt; '''outputSide&amp;amp;nbsp;'''- сторона, через которую передаётся жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''extractLiquid'''&lt;br /&gt;
| liquid, maxAmount, inputTile, outputTile, inputSide&lt;br /&gt;
| &lt;br /&gt;
Похож на предыдущий, но позволяет извлечь жидкость из tile entity&amp;lt;br/&amp;gt; '''liquid '''- в отличие от предыдущего метода жидкость может быть не указана, тогда извлечёт жидкость, которая хранится в&amp;amp;nbsp;''outputTile''.&amp;lt;br/&amp;gt; '''inputSide '''- сторона, в&amp;amp;nbsp;которую будет поступать жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''checkHoppers'''&lt;br /&gt;
| tileEntity&lt;br /&gt;
| Позволяет tile entity взаимодействовать с воронками. Для этого должна выполняться в функции тика tile entity. Требует интерфейса хранилища у tile entity для работы.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItemToSlot'''&lt;br /&gt;
| item, slot, count&lt;br /&gt;
| Внутренний метод библиотеки для добавления предмета в слот. При использовании на нативном контейнере нужно также установить слот, используя&amp;amp;nbsp;''container.setSlot.''&lt;br /&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Данная библиотека совместима с модами, использующими старый стандарт описания слотов tile entity&amp;amp;nbsp;через функцию&amp;amp;nbsp;''getTransportSlots'', а так же&amp;amp;nbsp;добавляет эту функцию&amp;amp;nbsp;и функцию ''addTransportedItem ''для tile entity при создании его интерфейса.&lt;br /&gt;
&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2394</id>
		<title>InnerCore/Libs/StorageInterface</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2394"/>
				<updated>2020-03-04T22:29:54Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;
Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью&amp;amp;nbsp;интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей.&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| '''4'''&lt;br /&gt;
| [https://yadi.sk/d/ayrPIjyJdjX-HQ Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | &lt;br /&gt;
- Улучшена работа с жидкостями&amp;lt;br/&amp;gt; -&amp;amp;nbsp;extractItemsFromContainer теперь принимает первым аргументом контейнер, а не tileEntity&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 04.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''3'''&lt;br /&gt;
| [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | релиз библиотеки&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 02.02.2020&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &lt;br /&gt;
== Импорт ==&lt;br /&gt;
&lt;br /&gt;
Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;IMPORT(&amp;quot;StorageInterface&amp;quot;);&amp;lt;/pre&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;
На данный момент интерфейсы привязываются только к tile entity, но в будущем по умолчанию интерфейсы будут прописаны у контейнеров из Майнкрафта, прежде всего печки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс для хранилища добавляется с помощью метода&amp;amp;nbsp;''StorageInterface.createInterface(id блока, объект интерфейса)''&amp;amp;nbsp;и в общем виде выглядит так:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(id блока, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot1&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;input: bool, // может ли слот принимать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;output: bool, // может ли слот отдавать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side, tileEntity){ // может ли слот принять предмет item со стороны side&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return bool;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canOutput: function(item, side, tileEntity){ // можно ли извлечь предмет из слота (item - предмет в слоте)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return bool;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot2&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValidInput: function(item, side, tileEntity){ // аналогична функции isValid слота, но действует на все слоты контейнера&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return true;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;addItem: function(item, side, maxCount){&amp;amp;nbsp;return int; }, // функция добавления предмета&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;getOutputSlots: function(side){ return []; }, // функция получения слотов&amp;amp;nbsp;для извлечения предметов&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;// методы работы с хранилищем жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canReceiveLiquid: function(liquid, side){ return false; }, // может ли tile entity принять жидкость (liquid - название жидкости)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canTransportLiquid: function(liquid, side){ return false; }, // может ли tile entity отдать жидкость (liquid - название жидкости)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;addLiquid: function(liquid, amount){&amp;amp;nbsp;// функция добавление жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return this.liquidStorage.addLiquid(luquid, amount);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;getLiquid: function(liquid, amount){ // функция извлечения жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return this.liquidStorage.getLiquid(luquid, amount);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &lt;br /&gt;
Здесь указаны все функции объекта интерфейса, которые можно задать этим методом. При их отсутствии добавляются функции по умолчанию, и для некоторых функций приведён&amp;amp;nbsp;их код.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;Интерфейс хранилища&amp;amp;nbsp;сохраняется в поле ''interface ''объекта&amp;amp;nbsp;tile entity. В экземпляре интерфейса есть следующие указатели:&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''tileEntity ''- на tile entity, к которому он привязан;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''container ''- на контейнер tile entity;&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;''liquidStorage ''- на хранилище жидкости tileEntity.&amp;lt;/div&amp;gt; &lt;br /&gt;
Добавление интерфейса для tile entity на примере железной печки из мода IndustrialCraft 2&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(BlockID.ironFurnace, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotSource&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; input: true,&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 0 &amp;amp;&amp;amp; Recipes.getFurnaceRecipeResult(item.id, &amp;quot;iron&amp;quot;);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotFuel&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;input: true,&amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 1 &amp;amp;&amp;amp; Recipes.getFuelBurnDuration(item.id, item.data) &amp;gt; 0;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotResult&amp;quot;: {output: true}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &amp;lt;/div&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;
== Методы для передачи предметов и жидкостей ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestContainers'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Возвращает соседние с блоком на координатах ''coords ''контейнеры в виде массива. Если указан параметр ''side'', то вернёт контейнер с этой стороны. Если ''sideExcluded ''равен ''true'', то наоборот, все контейнеры кроме контейнера с указанной стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestLiquidStorages'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Аналогична предыдущей, но возвращает все соседние tile entity, имеющие хранилища жидкостей.&lt;br /&gt;
|-&lt;br /&gt;
| '''putItems'''&lt;br /&gt;
| items, containers&lt;br /&gt;
| Добавляет предметы из массива items в контейнеры из массива containers. Удобно использовать в связке с методом&amp;amp;nbsp;''getNearestContainers'''''.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''putItemToContainer'''&lt;br /&gt;
| item, container, side, maxCount&lt;br /&gt;
| Метод более низкого уровня, на котором основана работа предыдущего метода. Добавляет стак предметов в контейнер, но позволяет также указать максимальное количество предметов, которое может быть передано за раз.&lt;br /&gt;
|-&lt;br /&gt;
| '''extractItemsFromContainer'''&lt;br /&gt;
| inputContainer, container, side, maxCount, oneStack&lt;br /&gt;
| &lt;br /&gt;
Позволяет извлечь предмет из контейнера и добавить его в tile entity.&amp;lt;br/&amp;gt; '''inputContainer '''- контейнер, в который будут добавлены предметы&amp;lt;br/&amp;gt; '''container '''- контейнер, из которого будут извлечены предметы&amp;lt;br/&amp;gt; '''maxCount '''- сколько предметов извлечь [опционально]&amp;lt;br/&amp;gt; '''oneStack '''- если true, то будет извлечён только один стак предметов.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''transportLiquid'''&lt;br /&gt;
| liquid, maxAmount, outputTile, inputTile, outputSide&lt;br /&gt;
| &lt;br /&gt;
Передаёт жидкость из одного tile entity в другой.&amp;lt;br/&amp;gt; '''liquid&amp;amp;nbsp;'''- название жидкости&amp;lt;br/&amp;gt; '''maxAmount&amp;amp;nbsp;'''- максимальное количество, которое будет передано&amp;lt;br/&amp;gt; '''outputTile&amp;amp;nbsp;'''- tile entity, из которого будет передана жидкость&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будет передана жидкость&amp;lt;br/&amp;gt; '''outputSide&amp;amp;nbsp;'''- сторона, через которую передаётся жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''extractLiquid'''&lt;br /&gt;
| liquid, maxAmount, inputTile, outputTile, inputSide&lt;br /&gt;
| &lt;br /&gt;
Похож на предыдущий, но позволяет извлечь жидкость из tile entity&amp;lt;br/&amp;gt; '''liquid '''- в отличие от предыдущего метода жидкость может быть не указана, тогда извлечёт жидкость, которая хранится в&amp;amp;nbsp;''outputTile''.&amp;lt;br/&amp;gt; '''inputSide '''- сторона, в&amp;amp;nbsp;которую будет поступать жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''checkHoppers'''&lt;br /&gt;
| tileEntity&lt;br /&gt;
| Позволяет tile entity взаимодействовать с воронками. Для этого должна выполняться в функции тика tile entity. Требует интерфейса хранилища у tile entity для работы.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItemToSlot'''&lt;br /&gt;
| item, slot, count&lt;br /&gt;
| Внутренний метод библиотеки для добавления предмета в слот. При использовании на нативном контейнере нужно также установить слот, используя&amp;amp;nbsp;''container.setSlot.''&lt;br /&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Данная библиотека совместима с модами, использующими старый стандарт описания слотов tile entity&amp;amp;nbsp;через функцию&amp;amp;nbsp;''getTransportSlots'', а так же&amp;amp;nbsp;добавляет эту функцию&amp;amp;nbsp;и функцию ''addTransportedItem ''для tile entity при создании его интерфейса.&lt;br /&gt;
&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; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2393</id>
		<title>InnerCore/Libs/StorageInterface</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2393"/>
				<updated>2020-03-04T19:34:37Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;
Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью&amp;amp;nbsp;интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей.&lt;br /&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [https://yadi.sk/d/ayrPIjyJdjX-HQ Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | &lt;br /&gt;
- Улучшена работа с жидкостями&amp;lt;br/&amp;gt; -&amp;amp;nbsp;extractItemsFromContainer теперь принимает первым аргументом контейнер, а не tileEntity&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 04.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''3'''&lt;br /&gt;
| [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | релиз библиотеки&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 02.02.2020&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Импорт ==&lt;br /&gt;
&lt;br /&gt;
Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;IMPORT(&amp;quot;StorageInterface&amp;quot;);&amp;lt;/pre&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;
На данный момент интерфейсы привязываются только к tile entity, но в будущем по умолчанию интерфейсы будут прописаны у контейнеров из Майнкрафта, прежде всего печки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс для хранилища добавляется с помощью метода&amp;amp;nbsp;''StorageInterface.createInterface(id блока, объект интерфейса)''&amp;amp;nbsp;и в общем виде выглядит так:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(id блока, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot1&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;input: bool, // может ли слот принимать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;output: bool, // может ли слот отдавать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side, tileEntity){ // может ли слот принять предмет item со стороны side&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return bool;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canOutput: function(item, side, tileEntity){ // можно ли извлечь предмет из слота (item - предмет в слоте)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return bool;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot2&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValidInput: function(item, side, tileEntity){ // аналогична функции isValid слота, но действует на все слоты контейнера&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return true;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;addItem: function(item, side, maxCount){&amp;amp;nbsp;return int; }, // функция добавления предмета&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;getItems: function(side){ return []; }, // кастомная функция получения предметов для извлечения&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;// методы работы с хранилищем жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canReceiveLiquid: function(liquid, side){ return false; }, // может ли tile entity принять жидкость (liquid - название жидкости)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canTransportLiquid: function(liquid, side){ return false; }, // может ли tile entity отдать жидкость (liquid - название жидкости)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;addLiquid: function(liquid, amount){&amp;amp;nbsp;// функция добавление жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return this.tileEntity.liquidStorage.addLiquid(luquid, amount);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;getLiquid: function(liquid, amount){ // функция извлечения жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return this.tileEntity.liquidStorage.getLiquid(luquid, amount);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &lt;br /&gt;
Здесь указаны все функции объекта интерфейса, которые можно задать этим методом. При их отсутствии добавляются функции по умолчанию, и для некоторых функций приведёт их код.&lt;br /&gt;
&lt;br /&gt;
Добавление интерфейса для tile entity на примере железной печки из мода IndustrialCraft 2&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(BlockID.ironFurnace, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotSource&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; input: true,&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 0 &amp;amp;&amp;amp; Recipes.getFurnaceRecipeResult(item.id, &amp;quot;iron&amp;quot;);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotFuel&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;input: true,&amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 1 &amp;amp;&amp;amp; Recipes.getFuelBurnDuration(item.id, item.data) &amp;gt; 0;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotResult&amp;quot;: {output: true}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&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;&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;&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;amp;nbsp;&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;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;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Методы для передачи предметов и жидкостей ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestContainers'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Возвращает соседние с блоком на координатах ''coords ''контейнеры в виде массива. Если указан параметр ''side'', то вернёт контейнер с этой стороны. Если ''sideExcluded ''равен ''true'', то наоборот, все контейнеры кроме контейнера с указанной стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestLiquidStorages'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Аналогична предыдущей, но возвращает все соседние tile entity, имеющие хранилища жидкостей.&lt;br /&gt;
|-&lt;br /&gt;
| '''putItems'''&lt;br /&gt;
| items, containers&lt;br /&gt;
| Добавляет предметы из массива items в контейнеры из массива containers. Удобно использовать в связке с методом&amp;amp;nbsp;''getNearestContainers'''''.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''putItemToContainer'''&lt;br /&gt;
| item, container, side, maxCount&lt;br /&gt;
| Метод более низкого уровня, на котором основана работа предыдущего метода. Добавляет стак предметов в контейнер, но позволяет также указать максимальное количество предметов, которое может быть передано за раз.&lt;br /&gt;
|-&lt;br /&gt;
| '''extractItemsFromContainer'''&lt;br /&gt;
| inputContainer, container, side, maxCount, oneStack&lt;br /&gt;
| &lt;br /&gt;
Позволяет извлечь предмет из контейнера и добавить его в tile entity.&amp;lt;br/&amp;gt; '''inputContainer '''- контейнер, в который будут добавлены предметы&amp;lt;br/&amp;gt; '''container '''- контейнер, из которого будут извлечены предметы&amp;lt;br/&amp;gt; '''maxCount '''- сколько предметов извлечь [опционально]&amp;lt;br/&amp;gt; '''oneStack '''- если true, то будет извлечён только один стак предметов.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''transportLiquid'''&lt;br /&gt;
| liquid, maxAmount, outputTile, inputTile, outputSide&lt;br /&gt;
| &lt;br /&gt;
Передаёт жидкость из одного tile entity в другой.&amp;lt;br/&amp;gt; '''liquid&amp;amp;nbsp;'''- название жидкости&amp;lt;br/&amp;gt; '''maxAmount&amp;amp;nbsp;'''- максимальное количество, которое будет передано&amp;lt;br/&amp;gt; '''outputTile&amp;amp;nbsp;'''- tile entity, из которого будет передана жидкость&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будет передана жидкость&amp;lt;br/&amp;gt; '''outputSide&amp;amp;nbsp;'''- сторона, через которую передаётся жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''extractLiquid'''&lt;br /&gt;
| liquid, maxAmount, inputTile, outputTile, inputSide&lt;br /&gt;
| &lt;br /&gt;
Похож на предыдущий, но позволяет извлечь жидкость из tile entity&amp;lt;br/&amp;gt; '''liquid '''- в отличие от предыдущего метода жидкость может быть не указана, тогда извлечёт жидкость, которая хранится в&amp;amp;nbsp;''outputTile''.&amp;lt;br/&amp;gt; '''inputSide '''- сторона, в&amp;amp;nbsp;которую будет поступать жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''checkHoppers'''&lt;br /&gt;
| tileEntity&lt;br /&gt;
| Позволяет tile entity взаимодействовать с воронками. Для этого должна выполняться в функции тика tile entity. Требует интерфейса хранилища у tile entity для работы.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItemToSlot'''&lt;br /&gt;
| item, slot, count&lt;br /&gt;
| Внутренний метод библиотеки для добавления предмета в слот. При использовании на нативном контейнере нужно также установить слот, используя&amp;amp;nbsp;''container.setSlot.''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Данная библиотека совместима с модами, использующими старый стандарт описания слотов tile entity&amp;amp;nbsp;через функцию&amp;amp;nbsp;''getTransportSlots'', а так же&amp;amp;nbsp;добавляет эту функцию&amp;amp;nbsp;и функцию ''addTransportedItem ''для tile entity при создании его интерфейса.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2392</id>
		<title>InnerCore/Libs/StorageInterface</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2392"/>
				<updated>2020-03-04T19:33:44Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;
Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью&amp;amp;nbsp;интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей.&lt;br /&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;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Версия&lt;br /&gt;
| Ссылка&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | Список изменений&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | Дата релиза&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [https://yadi.sk/d/ayrPIjyJdjX-HQ Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | &lt;br /&gt;
- Улучшена работа с жидкостями&amp;lt;br/&amp;gt; -&amp;amp;nbsp;extractItemsFromContainer теперь принимает первым аргументом контейнер, а не tileEntity&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 04.03.2020&lt;br /&gt;
|-&lt;br /&gt;
| '''3'''&lt;br /&gt;
| [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать]&lt;br /&gt;
| style=&amp;quot;width: 280px;&amp;quot; | релиз библиотеки&lt;br /&gt;
| style=&amp;quot;width: 350px;&amp;quot; | 02.02.2020&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Импорт ==&lt;br /&gt;
&lt;br /&gt;
Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;IMPORT(&amp;quot;StorageInterface&amp;quot;);&amp;lt;/pre&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;
На данный момент интерфейсы привязываются только к tile entity, но в будущем по умолчанию интерфейсы будут прописаны у контейнеров из Майнкрафта, прежде всего печки.&lt;br /&gt;
&lt;br /&gt;
Интерфейс для хранилища добавляется с помощью метода&amp;amp;nbsp;''StorageInterface.createInterface(id блока, объект интерфейса)''&amp;amp;nbsp;и в общем виде выглядит так:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(id блока, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot1&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;input: bool, // может ли слот принимать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;output: bool, // может ли слот отдавать предметы&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side, tileEntity){ // может ли слот принять предмет item со стороны side&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return bool;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canOutput: function(item, side, tileEntity){ // можно ли извлечь предмет из слота (item - предмет в слоте)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return bool;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;slot2&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;...&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValidInput: function(item, side, tileEntity){ // аналогична функции isValid слота, но действует на все слоты контейнера&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return true;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;addItem: function(item, side, maxCount){&amp;amp;nbsp;return int; }, // функция добавления предмета&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;getItems: function(side){ return []; }, // кастомная функция получения предметов для извлечения&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;// методы работы с хранилищем жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canReceiveLiquid: function(liquid, side){ return false; }, // может ли tile entity принять жидкость (liquid - название жидкости)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;canTransportLiquid: function(liquid, side){ return false; }, // может ли tile entity отдать жидкость (liquid - название жидкости)&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;addLiquid: function(liquid, amount){&amp;amp;nbsp;// функция добавление жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return this.tileEntity.liquidStorage.addLiquid(luquid, amount);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;getLiquid: function(liquid, amount){ // функция извлечения жидкости&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return this.tileEntity.liquidStorage.getLiquid(luquid, amount);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&amp;gt; &lt;br /&gt;
Здесь указаны все функции объекта интерфейса, которые можно задать этим методом. При их отсутствии добавляются функции по умолчанию, и для некоторых функций приведёт их код.&lt;br /&gt;
&lt;br /&gt;
Добавление интерфейса для tile entity на примере железной печки из мода IndustrialCraft 2&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;&amp;quot;&amp;gt;StorageInterface.createInterface(BlockID.ironFurnace, {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;slots: {&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotSource&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; input: true,&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 0 &amp;amp;&amp;amp; Recipes.getFurnaceRecipeResult(item.id, &amp;quot;iron&amp;quot;);&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotFuel&amp;quot;: {&amp;lt;br/&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;input: true,&amp;amp;nbsp;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;isValid: function(item, side){&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;return side&amp;amp;nbsp;!= 1 &amp;amp;&amp;amp; Recipes.getFuelBurnDuration(item.id, item.data) &amp;gt; 0;&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;quot;slotResult&amp;quot;: {output: true}&amp;lt;br/&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br/&amp;gt; });&amp;lt;/div&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;&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;&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;amp;nbsp;&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;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;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Название&lt;br /&gt;
| Аргументы&lt;br /&gt;
| Описание&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestContainers'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Возвращает соседние с блоком на координатах ''coords ''контейнеры в виде массива. Если указан параметр ''side'', то вернёт контейнер с этой стороны. Если ''sideExcluded ''равен ''true'', то наоборот, все контейнеры кроме контейнера с указанной стороны.&lt;br /&gt;
|-&lt;br /&gt;
| '''getNearestLiquidStorages'''&lt;br /&gt;
| coords, side, sideExcluded&lt;br /&gt;
| Аналогична предыдущей, но возвращает все соседние tile entity, имеющие хранилища жидкостей.&lt;br /&gt;
|-&lt;br /&gt;
| '''putItems'''&lt;br /&gt;
| items, containers&lt;br /&gt;
| Добавляет предметы из массива items в контейнеры из массива containers. Удобно использовать в связке с методом&amp;amp;nbsp;''getNearestContainers'''''.'''&lt;br /&gt;
|-&lt;br /&gt;
| '''putItemToContainer'''&lt;br /&gt;
| item, container, side, maxCount&lt;br /&gt;
| Метод более низкого уровня, на котором основана работа предыдущего метода. Добавляет стак предметов в контейнер, но позволяет также указать максимальное количество предметов, которое может быть передано за раз.&lt;br /&gt;
|-&lt;br /&gt;
| '''extractItemsFromContainer'''&lt;br /&gt;
| inputTile, container, side, maxCount, oneStack&lt;br /&gt;
| &lt;br /&gt;
Позволяет извлечь предмет из контейнера и добавить его в tile entity.&amp;lt;br/&amp;gt; '''inputTile '''- tile entity, в который будут добавлены предметы&amp;lt;br/&amp;gt; '''container '''- контейнер, из которого будут извлечены предметы&amp;lt;br/&amp;gt; '''maxCount '''- сколько предметов извлечь [опционально]&amp;lt;br/&amp;gt; '''oneStack '''- если true, то будет извлечён только один стак предметов.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''transportLiquid'''&lt;br /&gt;
| liquid, maxAmount, outputTile, inputTile, outputSide&lt;br /&gt;
| &lt;br /&gt;
Передаёт жидкость из одного tile entity в другой.&amp;lt;br/&amp;gt; '''liquid&amp;amp;nbsp;'''- название жидкости&amp;lt;br/&amp;gt; '''maxAmount&amp;amp;nbsp;'''- максимальное количество, которое будет передано&amp;lt;br/&amp;gt; '''outputTile&amp;amp;nbsp;'''- tile entity, из которого будет передана жидкость&amp;lt;br/&amp;gt; '''inputTile&amp;amp;nbsp;'''- tile entity, в который будет передана жидкость&amp;lt;br/&amp;gt; '''outputSide&amp;amp;nbsp;'''- сторона, через которую передаётся жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''extractLiquid'''&lt;br /&gt;
| liquid, maxAmount, inputTile, outputTile, inputSide&lt;br /&gt;
| &lt;br /&gt;
Похож на предыдущий, но позволяет извлечь жидкость из tile entity&amp;lt;br/&amp;gt; '''liquid '''- в отличие от предыдущего метода жидкость может быть не указана, тогда извлечёт жидкость, которая хранится в&amp;amp;nbsp;''outputTile''.&amp;lt;br/&amp;gt; '''inputSide '''- сторона, в&amp;amp;nbsp;которую будет поступать жидкость&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''checkHoppers'''&lt;br /&gt;
| tileEntity&lt;br /&gt;
| Позволяет tile entity взаимодействовать с воронками. Для этого должна выполняться в функции тика tile entity. Требует интерфейса хранилища у tile entity для работы.&lt;br /&gt;
|-&lt;br /&gt;
| '''addItemToSlot'''&lt;br /&gt;
| item, slot, count&lt;br /&gt;
| Внутренний метод библиотеки для добавления предмета в слот. При использовании на нативном контейнере нужно также установить слот, используя&amp;amp;nbsp;''container.setSlot.''&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&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;&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&amp;amp;nbsp;&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;
Данная библиотека совместима с модами, использующими старый стандарт описания слотов tile entity&amp;amp;nbsp;через функцию&amp;amp;nbsp;''getTransportSlots'', а так же&amp;amp;nbsp;добавляет эту функцию&amp;amp;nbsp;и функцию ''addTransportedItem ''для tile entity при создании его интерфейса.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore&amp;diff=2384</id>
		<title>InnerCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore&amp;diff=2384"/>
				<updated>2020-02-21T13:46:44Z</updated>
		
		<summary type="html">&lt;p&gt;2A05:480:0:9B57:0:0:0:2: &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;&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;&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;&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;&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;
InnerCore был создан на базе чистого MCPE 1.0.3 и является полноценной средой для создания и игры с модами, дающей возможности куда большие, чем [[CoreEngine|CoreEngine]]&amp;amp;nbsp;&amp;amp; [[BlockLauncher|BlockLauncher]].&amp;lt;br/&amp;gt; Написанная с нуля нативная часть позволила решить абсолютное большинство проблем, связанных с моддингом на базе [[BlockLauncher|BlockLauncher]] и сделать API намного эффективнее.&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;&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;&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;
&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;
&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;
&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;
&amp;lt;div class=&amp;quot;mw-parser-output&amp;quot;&amp;gt;&lt;br /&gt;
== Документация по Inner Core ==&lt;br /&gt;
&lt;br /&gt;
*Построение модов &lt;br /&gt;
**[[InnerCore/Структура_модов|Структура модов]] &lt;br /&gt;
**[[InnerCore/Стандартный_шаблон_модов|Стандартный шаблон модов]] &lt;br /&gt;
**[[InnerCore/Ресурсы|Ресурсы]] &lt;br /&gt;
**[[InnerCore/Компиляция_в_байткод|Компиляция в байткод]] &lt;br /&gt;
**[[InnerCore/Базовые_методы_и_переменные_исполняемых_файлов|Базовые методы и переменные исполняемых файлов]] &lt;br /&gt;
**[[InnerCore/Библиотеки|Библиотеки]]   &lt;br /&gt;
*[[InnerCore/Глобальные_методы_и_переменные_CoreEngine|Глобальные методы и переменные CoreEngine]] &lt;br /&gt;
*События в игре. Модуль Callback &lt;br /&gt;
**[[InnerCore/Модуль_Callback|Модуль Callback]] &lt;br /&gt;
**[[InnerCore/Список_коллбеков|Список коллбеков]] &lt;br /&gt;
**[[InnerCore/Список_назаний_ванильных_экранов|Список названий ванильных экранов]]   &lt;br /&gt;
*Блоки и предметы &lt;br /&gt;
**[[InnerCore/Создание_блоков_и_предметов|Создание блоков и предметов]] &lt;br /&gt;
**[[InnerCore/Naming_Standart|Стандарт Именования Inner Core]] &lt;br /&gt;
**[[InnerCore/Продвинутое_создание_блоков_и_предметов|Продвинутое создание блоков и предметов]] &lt;br /&gt;
**[[InnerCore/ToolAPI_и_ToolType|ToolAPI и ToolType]] &lt;br /&gt;
**[[InnerCore/Рендер_блоков|Рендер блоков]] &lt;br /&gt;
**[[InnerCore/Визуальная_составляющая_ICRender|Визуальная составляющая&amp;amp;nbsp;ICRender]] &lt;br /&gt;
**[[InnerCore/Форма_блоков|Форма блоков]] &lt;br /&gt;
**[[InnerCore/Класс_RenderMesh|Класс&amp;amp;nbsp;RenderMesh]] &lt;br /&gt;
**[[InnerCore/Дополнительные_данные_предмета|Дополнительные данные предмета]] &lt;br /&gt;
**[[InnerCore/Случайные_обновления_блоков|Случайные обновления блоков]] &lt;br /&gt;
**[[InnerCore/TileEntity|TileEntity]] &lt;br /&gt;
**[[InnerCore/Рецепты|Рецепты]] &lt;br /&gt;
**[[InnerCore/Жидкости_и_работа_с_ними|Жидкости и работа с ними]] &lt;br /&gt;
**[[InnerCore/Броня|Броня]]   &lt;br /&gt;
*[[InnerCore/Модуль_World|Модуль World]] &lt;br /&gt;
*Генерация &lt;br /&gt;
**[[InnerCore/Модуль_GenerationUtils|Модуль GenerationUtils]] &lt;br /&gt;
**[[InnerCore/Основы_генерации|Основы генерации]]   &lt;br /&gt;
*[[InnerCore/Модуль_Game|Модуль Game]] &lt;br /&gt;
*Сущности &lt;br /&gt;
**[[InnerCore/Модуль_Entity|Модуль Entity]] &lt;br /&gt;
**[[InnerCore/Список_ванильных_рендеров|Список ванильных рендеров]] &lt;br /&gt;
**[[InnerCore/Создание_мобов|Создание мобов]] &lt;br /&gt;
**[[InnerCore/Пример_создания_моба|Пример создания моба]] &lt;br /&gt;
**[[InnerCore/Кастомные_мобы|Кастомные мобы]]   &lt;br /&gt;
*[[InnerCore/Модуль_Player|Модуль Player]] &lt;br /&gt;
*GUI &lt;br /&gt;
**[[InnerCore/Модуль_UI|Модуль UI]] &lt;br /&gt;
**[[InnerCore/Введение_в_GUI|Введение в GUI]] &lt;br /&gt;
***[[InnerCore/Введение_в_GUI/Стандартный_интерфейс|Стандартный интерфейс]] &lt;br /&gt;
***[[InnerCore/Введение_в_GUI/Однооконный_интерфейс|Однооконный интерфейс]] &lt;br /&gt;
***[[InnerCore/Введение_в_GUI/Многооконный_интерфейс|Многооконный интерфейс]]   &lt;br /&gt;
**[[InnerCore/Контейнеры|Контейнеры]] &lt;br /&gt;
**[[InnerCore/Динамичный_интерфейс|Динамичный интерфейс]]   &lt;br /&gt;
*[[InnerCore/Модуль_ModAPI|Модуль ModAPI]] &lt;br /&gt;
*[[InnerCore/Модуль_Updatable|Модуль&amp;amp;nbsp;Updatable]] &lt;br /&gt;
*[[InnerCore/Модуль_GameObject|Модуль GameObject]] &lt;br /&gt;
*[[InnerCore/Анимации|Анимации]] &lt;br /&gt;
*Отладка &lt;br /&gt;
**[[InnerCore/Модуль_Logger|Модуль Logger]] &lt;br /&gt;
**[[InnerCore/Модуль_Debug|Модуль Debug]]   &lt;br /&gt;
*[[InnerCore/Модуль_Particles|Модуль Particles]] &lt;br /&gt;
*[[InnerCore/Модуль_FileTools|Модуль FileTools]] &lt;br /&gt;
*[[InnerCore/Модуль_SaverScope|Модуль SaverScope]] &lt;br /&gt;
*[[InnerCore/Модуль_Translation|Модуль Translation]] &lt;br /&gt;
*[[InnerCore/Многопоточность|Многопоточность]] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&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;&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;&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;&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;&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;amp;nbsp;&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; &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; &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;&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;
&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;
== Список модов: ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 93px;&amp;quot; | '''Мод/API'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 226px;&amp;quot; | '''Автор / Официальный источник'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | '''Мод в браузере'''&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 608px;&amp;quot; | '''Краткое описание'''&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/AchievementsAPI|AchievementsAPI]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=143 AchievementsAPI]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод, который добавляет некоторые достижения из Minecraft:Java Edition и предоставляет АПИ для регистрации собственных.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Libs/GuideAPI|GuideAPI]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=39 GuideAPI]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод-библиотека, предоставляющая большие возможности для создания игровых документаций .&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/Waila|Waila]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=144 Waila]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод позволяет увидеть название блока, его материал, возможность сломать, здоровье и айди моба, наведя на соответствующий объект в мире.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/APO_Craft|A.P.O. Craft]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/igormelikhov IchZerowan]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=361 A.P.O. Craft]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод добавляет постаппокалиптический город в игру.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/OresMod|OresMod]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/myrzicmur Kotoffey23]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=59 Ores Mod]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод добавляет механизмы и руды. Рутинно, но почему бы и нет?&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[InnerCore/Mods/WolfGunsMod|WolfGunsMod]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod?id=397 WolfGunsMod]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Мод добавляет оружие.&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 93px; text-align: center;&amp;quot; | [[WorldLoader|WorldLoader]]&lt;br /&gt;
| style=&amp;quot;width: 226px; text-align: center;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 100px;&amp;quot; | [https://icmods.mineprogramming.org/mod.php?id=470 WorldLoader]&lt;br /&gt;
| style=&amp;quot;width: 608px;&amp;quot; | Утилита позволяющая создавать миры модификаций.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;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;
&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;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;text-align: center; width: 121px;&amp;quot; | Библиотека&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;text-align: center; width: 214px;&amp;quot; | Автор / Официальный источник&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 694px; text-align: center;&amp;quot; | Краткое описание&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/EnergyLib|EnergyLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://vk.com/core_engine Inner Core]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для создания и работы с различными видами энергии, проводами, генераторами и потребителями.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/EnergyNet|EnergyNet]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://icmods.mineprogramming.org/search?author=19 MineExplorer]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Более продвинутая версия предыдущей библиотеки, позволяющая передавать энергию пакетами и устанавливать проводам лимит на передачу энергии.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/ToolAPI_и_ToolType|ToolType]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://icmods.mineprogramming.org/search?author=19 MineExplorer]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, предоставляющая универсальные типы инструментов и содержащая некоторые доработки и фиксы ошибок в ToolAPI.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/StorageInterface|StorageInterface]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://icmods.mineprogramming.org/search?author=19 MineExplorer]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая передачу предметов и жидкостей и позволяющая её настраивать с помощью интерфейсов хранилищ.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/Dimensions|Dimensions]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px; height: 20px;&amp;quot; | [https://vk.com/zheka_smirnov Zheka_Smirnov]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая создание измерений.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/modpacker|#modpacker]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://www.mineprogramming.org/ #mineprogramming]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для создания и загрузки управляемых сборок модов.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/EntityState|EntityState]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://www.mineprogramming.org/ #mineprogramming]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для получения текущего действия игрока (его движений).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/ScalesRPG|ScalesRPG]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://www.mineprogramming.org/ #mineprogramming]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для регистрации различных шкал в дополнение к существующим (голода, здоровья, брони...).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/SettingsManager|SettingsManager]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://www.mineprogramming.org/ #mineprogramming]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для упрощения работы с настройками игры.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/BackpackAPI|BackpackAPI]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для регистрации рюкзаков.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/Baubles|Baubles]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/forestry_pe DDCompany]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, предоставляющая АПИ для регистрации фенечек.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/AdvancedAI|AdvancedAI]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/trashboxbobylev TrashboxBobylev]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, содержащая новые типы ИИ мобов.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/MobLib|MobLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упращающая создание мобов.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/RecipeTELib|RecipeTELib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая создание верстаков и печей.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/ShootLib|ShootLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для создания оружия.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/SoundAPI|SoundAPI]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека для работы со звуком.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/StructuresAPI|StructuresAPI]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/wolf___team WolfTeam]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая работу со структурами&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/Timer|Timer]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/tmm_corporation TooManyMods]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая работу с временем тика.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 121px;&amp;quot; | [[InnerCore/Libs/BowLib|BowLib]]&lt;br /&gt;
| style=&amp;quot;text-align: center; width: 214px;&amp;quot; | [https://vk.com/tmm_corporation TooManyMods]&lt;br /&gt;
| style=&amp;quot;width: 694px;&amp;quot; | Библиотека, упрощающая создание собственного лука&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>2A05:480:0:9B57:0:0:0:2</name></author>	</entry>

	</feed>