<?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=128.73.195.44&amp;*</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=128.73.195.44&amp;*"/>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=%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/128.73.195.44"/>
		<updated>2026-09-11T19:12:31Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/ToolLib&amp;diff=2477</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=2477"/>
				<updated>2020-05-29T18:31:27Z</updated>
		
		<summary type="html">&lt;p&gt;128.73.195.44: &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;
&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;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;
Уровни блоков:&amp;lt;br/&amp;gt; 1 - камень&amp;lt;br/&amp;gt; 2 - железная руда&amp;lt;br/&amp;gt; 3 - алмазная руда&amp;lt;br/&amp;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;&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;
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>128.73.195.44</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/StorageInterface&amp;diff=2473</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=2473"/>
				<updated>2020-05-29T17:55:41Z</updated>
		
		<summary type="html">&lt;p&gt;128.73.195.44: &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;
&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&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;&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; &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>128.73.195.44</name></author>	</entry>

	<entry>
		<id>https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/EnergyLib&amp;diff=2471</id>
		<title>InnerCore/Libs/EnergyLib</title>
		<link rel="alternate" type="text/html" href="https://wiki.mineprogramming.org/index.php?title=InnerCore/Libs/EnergyLib&amp;diff=2471"/>
				<updated>2020-05-29T17:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;128.73.195.44: &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;
&amp;lt;span style=&amp;quot;font-size:large;&amp;quot;&amp;gt;'''!Поддержка библиотеки прекращена, используйте [[InnerCore/Libs/EnergyNet|EnergyNet]]!'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная библиотека для Core Engine представляет собой инструмент для быстрого создания новых типов энергии и работы с ними. &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== Подключение ==&lt;br /&gt;
&lt;br /&gt;
Для добавления библиотеки в мод ее файл ([https://github.com/MineExplorer/IndustrialCraft_2/blob/master/IndustrialCraft²/lib/energylib.js ''energylib.js'']) нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать).&lt;br /&gt;
&lt;br /&gt;
Для импорта библиотеки в мод в заголовочном файле (или если он остутвует в первом файле кода) следует добавить строку ''importLib(&amp;quot;energylib.js&amp;quot;, &amp;quot;*&amp;quot;) .''&lt;br /&gt;
&lt;br /&gt;
= Модули =&lt;br /&gt;
&lt;br /&gt;
#''EnergyLibCore'' - модуль для технической работы с библиотекой, осуществляет доступ к объекту ее конфигурации.''' &lt;br /&gt;
#''EnergyTypeRegistry - ''модуль для регистрации новых типов энергии. &lt;br /&gt;
#''EnergyTileRegistry - ''модуль для привязки типов энергии к Tile Entity. &lt;br /&gt;
&lt;br /&gt;
= Создание новых типов энергии =&lt;br /&gt;
&lt;br /&gt;
''EnergyTypeRegistry.assureEnergyType(&amp;quot;name&amp;quot;, value)'' - создает новый тип энергии и возвращает его, если такой тип энергии уже существует, новый создан не будет, а вернется уже существующий, таким образом если 2 мода создают один тип энергии, он будет общий.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;Параметры:&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*name - уникальное название энергии, обычно используется сокращение (&amp;quot;Eu&amp;quot; - energy units, &amp;quot;RF&amp;quot; - redstone flux и т.п.) &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-family:&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;value - сколько Eu (единиц энергии industrial craft) содержится в 1 единице данного типа энергии, данное значение используется для конвертации из одного вида энергии в другой. Энергия Eu принята за эталон.&lt;br /&gt;
&lt;br /&gt;
Возвращает функция тип с данным именем (созданный или импортированый), который обладает следующими методами и значениями:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;energyType&amp;gt;.name - имя данного типа энергии. &lt;br /&gt;
*&amp;lt;span style=&amp;quot;line-height:109%&amp;quot;&amp;gt;&amp;lt;energyType&amp;gt;.&amp;lt;span style=&amp;quot;font-size:11.0pt&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height:109%&amp;quot;&amp;gt;getWireSpecialType() - возвращает специальный тип блока, который будет являться проводником данного типа энергии.&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:107%&amp;quot;&amp;gt;'''&amp;lt;span style=&amp;quot;font-size:11.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;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;// в начале мода импортируем библиотеку (она должна находиться в lib/)&lt;br /&gt;
importLib(&amp;quot;energylib.js&amp;quot;, &amp;quot;*&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// создаем тип энергии redstone flux var energyRedstoneFlux = EnergyTypeRegistry.assureEnergyType(&amp;quot;RF&amp;quot;, 0.25);&lt;br /&gt;
// создаем блок-проводник для данного типа энергии&lt;br /&gt;
IDRegistry.genBlockID(&amp;quot;RFconduct&amp;quot;);&lt;br /&gt;
Block.createBlock(&amp;quot;RFconduct&amp;quot;, [&lt;br /&gt;
{name: &amp;quot;RF Conduct&amp;quot;, texture: [[&amp;quot;rf_conduct&amp;quot;, 0]], inCreative: true} // текстура images/terrain-atlas/rf_conduct_0.png должна находиться в ресурсах мода  ], energyRestroneFlux.getWireSpecialType()); &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= Привязка типов энергии к&amp;amp;nbsp;TileEntity =&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы привязать тип энергии к tile entity используется метод&lt;br /&gt;
&lt;br /&gt;
''EnergyTileRegistry.addEnergyTypeForId(tileEntityId, energyType)'' - добавляет tile entity&amp;amp;nbsp; с данным id дополнительные события, которые позволяют ему работать с данным типом энергии. К одному tile entity можно привязать несколько разных типов энергии.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;Параметры:&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*tileEntityId – id блока, на который был зарегистрирован нужный tile entity. &lt;br /&gt;
*energyType - тип энергии, который требуется к нему привязать. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;Новые&amp;lt;/u&amp;gt;&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;события&amp;lt;/u&amp;gt;&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;:&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
energyTick: function(type, src) { /* … */ } - вызывается каждый тик для каждого типа энергии, привязанного к данному tile entity. Параметры:&lt;br /&gt;
&lt;br /&gt;
*type - название типа энергии, для которого вызвано это событие &lt;br /&gt;
*&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;src - объект типа energy source для работы с энергией, о нем речь пойдет позже.&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
energyReceive: function(type, src) { /* … */ } - аналогична energyTick, но вызывается только если в сети есть энергия.&lt;br /&gt;
&lt;br /&gt;
isGenerator: function() {return true;} - данный метод нужно только если tile entity в основном генерирует энергию, а не забирает ее (является генератором), нужна для более точного расчёта.&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 поддерживающих одинаковый тип энергии и соединенные подходящим проводником объединяются в энергетическую сеть. Tile entity имеют возможность забирать энергию из сети и передавать ее туда, при этом вся переданная энергия распределяется равномерно по потребителям.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Объект EnergySource =&lt;br /&gt;
&lt;br /&gt;
Данный объект является интерфейсом для работы с энергией в сети, который передается в события для работы с энергией (src).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;Методы:&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*src.add(amount) - добавляет в сеть данное кол-во энергии (amount), возвращает, какое кол-во энергии добавить не удалось из-за переполнения (0, если вся энергия добавлена). Обычно данный метод используется в генераторах. &amp;amp;nbsp; &lt;br /&gt;
*src.get(amount) - забирает из сети данное кол-во энергии (amount), возвращает, какое кол-во энергии удалось забрать. &lt;br /&gt;
*src.getAll(amount) - аналогичен методу get, но игнорирует равномерное распределение по всем tile entity в сети, в большинстве случаев лучше использовать get. &lt;br /&gt;
*src.free() - возвращает, сколько в сети есть свободного места для энергии. &lt;br /&gt;
*src.amount() - возвращает, сколько энергии есть в сети. &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-family:&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;src.storage(receive, retreive) - данный метод является функцией хранилищ энергии. Как параметры принимает то, сколько энергии он максимально может принять (reveive) и сколько максимально может отдать (retreive) за данный тик. Возвращает изменение энергии (отрицательное, если энергия была отдана, положительное, если принята). &amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;'''Пример 1 - генератор:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;// требуется создать блок с id &amp;quot;RFgenerator&amp;quot;&lt;br /&gt;
TileEntity.registerPrototype(BlockID.RFgenerator, {&lt;br /&gt;
    isGenerator: function() {&lt;br /&gt;
        return true;&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    energyTick: function(type, src) {&lt;br /&gt;
        src.add(10); // генерирует 10 RF за тик&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// привяжем к этому tile entity наш тип энергии&lt;br /&gt;
EnergyTileRegistry.addEnergyTypeForId(BlockID.RFgenerator, energyRedstoneFlux);&amp;lt;/syntaxhighlight&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:107%&amp;quot;&amp;gt;''&amp;amp;nbsp;''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;'''Пример 2 - потребитель:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;// требуется создать блок с id &amp;quot;RFconsumer&amp;quot;&lt;br /&gt;
TileEntity.registerPrototype(BlockID.RFconsumer, {&lt;br /&gt;
    energyTick: function(type, src) {&lt;br /&gt;
        var energy = Math.floor(src.get(10)); // получить от 0 до 10 энергии, Math.floor используется в данном случае для устранения ошибки вычислений, в большинстве случаев это не нужно&lt;br /&gt;
        for (var i = 0; i &amp;lt; energy; i++) { // чем больше энергии, тем больше частиц&lt;br /&gt;
            Particles.addParticle(this.x + Math.random(), this.y + 1, this.z +&lt;br /&gt;
                    Math.random(), 6, 0, .07, 0); // создать частицу над блоком&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// привяжем к этому tile entity наш тип энергии&lt;br /&gt;
EnergyTileRegistry.addEnergyTypeForId(BlockID.RFconsumer, energyRedstoneFlux);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&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 style=&amp;quot;line-height:107%&amp;quot;&amp;gt;&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;При соединении 2х этих блоков проводом, созданным ранее один из них будет&amp;lt;/u&amp;gt; &amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;испускать частицы, если потребителей будет несколько, а генератор один, то частиц на&amp;lt;/u&amp;gt; &amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;каждом по отдельности будет меньше, а суммарно столько же.&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;'''Пример 3 - хранилище:'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;// требуется создать блок с id &amp;quot;RFstorage&amp;quot;&lt;br /&gt;
TileEntity.registerPrototype(BlockID.RFstorage, {&lt;br /&gt;
    defaultValues: {&lt;br /&gt;
        energy: 0 // сохраняемое значение, обозначающее запасенную энергию&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    energyTick: function(type, src) {&lt;br /&gt;
        this.data.energy += src.storage(Math.min(20, 1000 - this.data.energy), Math.min(20, this.data.energy)); // вызовем функцию хранилища: передаем не более 20 энергии в тик, при этом отдаем так, чтобы энергии не стало меньше 0, а принимаем так, чтобы не было больше 1000&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// привяжем к этому tile entity наш тип энергии&lt;br /&gt;
EnergyTileRegistry.addEnergyTypeForId(BlockID.RFstorage, energyRedstoneFlux);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height:107%&amp;quot;&amp;gt;&amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;Для проверки хранилища, можно сначала подзаряжать его от генератора, а потом&amp;lt;/u&amp;gt; &amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;отключать генератор и подключать потребитель, который будет работать от него&amp;lt;/u&amp;gt; &amp;lt;u style=&amp;quot;text-underline:black&amp;quot;&amp;gt;ограниченное время.&amp;lt;/u&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; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>128.73.195.44</name></author>	</entry>

	</feed>