(добавлена 12 версия) |
|||
(не показано 36 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
− | <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> | + | <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей. <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> |
− | Данная библиотека для Inner Core позволяет описать взаимодействие блоков с трубами, воронками и прочими предметами для транспортировки предметов и жидкостей с помощью интерфейсов хранилищ, а так же добавляет методы для извлечения и загрузки предметов и жидкостей. | ||
− | |||
− | <div class="mw-parser-output"><div class="mw-parser-output"> | ||
== Загрузка == | == Загрузка == | ||
Строка 8: | Строка 5: | ||
|- | |- | ||
| Версия | | Версия | ||
− | | Ссылка | + | | style="width: 36px;" | Ссылка |
− | | style="width: | + | | style="width: 393px;" | Список изменений |
− | | style="width: | + | | style="width: 250px;" | Дата релиза |
+ | |- | ||
+ | | '''12''' | ||
+ | | style="width: 36px;" | [https://github.com/MineExplorer/IC_Libraries/releases/tag/storage-interface-v12 Скачать] | ||
+ | | style="width: 393px;" | | ||
+ | *getOutputSlots возвращает пустые слоты tile entity | ||
+ | |||
+ | | style="width: 250px;" | 07.08.2021 | ||
+ | |- | ||
+ | | '''11''' | ||
+ | | style="width: 36px;" | [https://github.com/MineExplorer/IC_Libraries/releases/tag/storage-interface-v11 Скачать] | ||
+ | | style="width: 393px;" | | ||
+ | *Библиотека поддерживает предметы с отрицательными ид | ||
+ | *В интерфейс хранилища добавлены следующие поля:<br/> - liquidUnitRatio<br/> - getInputTank(side)<br/> - getOutputTank(side)<br/> - receiveLiquid(liquidStorage, liquid, amount)<br/> - extractLiquid(liquidStorage, liquid, amount)<br/> И удалены поля: addLiquid. getLiquid, getLiquidStored, getLiquidStorage | ||
+ | |||
+ | | style="width: 250px;" | 01.04.2021 | ||
+ | |- | ||
+ | | '''10''' | ||
+ | | style="width: 36px;" | [https://github.com/MineExplorer/IC_Libraries/releases/tag/storage-interface-v10 Скачать] | ||
+ | | style="width: 393px;" | | ||
+ | *Метод newStorage переименован в getInterface | ||
+ | *Исправлен стак предметов при использовании функций валидации и макс. стака в ItemContainer из библиотеки | ||
+ | |||
+ | | style="width: 250px;" | 09.01.2021 | ||
+ | |- | ||
+ | | '''9''' | ||
+ | | style="width: 36px;" | [https://github.com/MineExplorer/IC_Libraries/releases/tag/storage-interface-v9 Скачать] | ||
+ | | style="width: 393px;" | | ||
+ | *Новые методы для интерфейсов хранилищ:<br/> - getContainerSlots()<br/> - getInputSlots(side)<br/> - getReceivingItemCount(item, side)<br/> - addItemToSlot(name, item, maxCount)<br/> - clearContainer() | ||
+ | *Исправлен стандартный интерфейс TIleEntity | ||
+ | |||
+ | | style="width: 250px;" | 14.12.2020 | ||
+ | |- | ||
+ | | '''8''' | ||
+ | | style="width: 36px;" | [https://github.com/MineExplorer/IC_Libraries/releases/tag/storage-interface-v8 Скачать] | ||
+ | | style="width: 393px;" | | ||
+ | *Поддержка мультиплеера | ||
+ | *Добавлены стандартные интерфейсы для всех видов контейнеров | ||
+ | *Добавлены методы для получение интерфейсов хранилищ | ||
+ | *Добавлены методы для установки валидации предметов и макс стака слотов в ItemContainer | ||
+ | |||
+ | | style="width: 250px;" | 10.12.2020 | ||
+ | |- | ||
+ | | '''7''' | ||
+ | | style="text-align: center; width: 36px;" | - | ||
+ | | style="width: 393px;" | | ||
+ | - В описании слота в интерфейсе хранилища теперь можно указать стороны, через которые с ним можно взаимодействовать | ||
+ | |||
+ | | style="width: 250px;" | 10.06.2020 | ||
+ | |- | ||
+ | | '''6''' | ||
+ | | style="width: 36px;" | [https://yadi.sk/d/TITakdpdsjIGug Скачать] | ||
+ | | style="width: 393px;" | - Библиотека обновлена на InnerCore для Horizon: добавлена поддержка новых ванильных контейнеров. | ||
+ | | style="width: 250px;" | 18.04.2020 | ||
+ | |- | ||
+ | | '''5''' | ||
+ | | style="width: 36px;" | [https://yadi.sk/d/Om5TRGdlhylfQA Скачать] | ||
+ | | style="width: 393px;" | - Исправлена ошибка взаимодействия с tile entity без интерфейса хранилища в методе StorageInterface.transportLiquid | ||
+ | | style="width: 250px;" | 09.03.2020 | ||
|- | |- | ||
− | | 4 | + | | '''4''' |
− | | [https://yadi.sk/d/ | + | | style="width: 36px;" | [https://yadi.sk/d/1gBu4a-fEme-jA Скачать] |
− | | style="width: | + | | style="width: 393px;" | |
− | + | *Улучшена работа с жидкостями | |
+ | *В интерфейс добавлено поле liquidStorage | ||
− | | style="width: | + | | style="width: 250px;" | 05.03.2020 |
|- | |- | ||
| '''3''' | | '''3''' | ||
− | | [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать] | + | | style="width: 36px;" | [https://drive.google.com/file/d/1Hsp2nLIER0wF-ZzDvdsy1btxWFhnebv1/view?usp=sharing Скачать] |
− | | style="width: | + | | style="width: 393px;" | - Релиз библиотеки |
− | | style="width: | + | | style="width: 250px;" | 02.02.2020 |
|} | |} | ||
− | </div> </div> | + | </div> <div class="mw-parser-output"> </div> </div> </div> </div> </div> |
− | |||
== Импорт == | == Импорт == | ||
− | Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/ | + | Для добавления библиотеки в мод ее файл ''([https://github.com/MineExplorer/IC_Libraries/blob/master/library/StorageInterface.js StorageInterface.js])'' нужно добавить в директорию ''lib/'' в директории мода (если таковой нету, то ее нужно создать). |
− | Для импорта библиотеки в мод в заголовочном файле (или если он | + | Для импорта библиотеки в мод в заголовочном файле (или если он отсутствует в первом файле кода) следует добавить строку: |
− | <pre>IMPORT("StorageInterface");</pre> | + | <pre>IMPORT("StorageInterface"); |
+ | </pre> | ||
− | |||
== Интерфейсы хранилищ блоков == | == Интерфейсы хранилищ блоков == | ||
− | + | Интерфейсы хранилищ объединяют в себе функции для работы с контейнерами и хранилищем жидкости и позволяют описать логику передачи предметов и жидкостей. В библиотеке есть стандартные интерфейсы для ванильных контейнеров и TileEntity, но вы можете зарегистрировать свой собственный для вашего TileEntity. | |
+ | <div class="mw-parser-output"><div class="mw-parser-output"> | ||
+ | === Регистрация интерфейса хранилища === | ||
− | + | ''StorageInterface.createInterface(id блока, прототип интерфейса).'' | |
− | |||
− | |||
− | + | Все параметры слотов и функции прототипа интерфейса опциональны.<br/> Прототип интерфейса выглядит так: | |
− | < | + | <syntaxhighlight lang="JavaScript">StorageInterface.createInterface(id блока, { |
+ | slots: { | ||
+ | "slot1": { | ||
+ | input: boolean, // может ли слот принимать предметы | ||
+ | output: boolean, // может ли слот отдавать предметы | ||
+ | // Сторона блока, через которую доступен слот. | ||
+ | // Значение - число или одна из настроек: "horizontal", "verctical", "down", "up". | ||
+ | side: int | string, | ||
+ | // Максимальное количество предметов в слоте | ||
+ | maxStack: int, | ||
+ | // Может ли слот принять предмет item со стороны side | ||
+ | isValid: function(item, side, tileEntity) { | ||
+ | return boolean; | ||
+ | }, | ||
+ | // Можно ли извлечь предмет из слота (item - предмет в слоте) | ||
+ | canOutput: function(item, side, tileEntity) { | ||
+ | return boolean; | ||
+ | } | ||
+ | }, | ||
+ | // Все слоты с именем slot и индексами от 2 до 10 (slot2, ..., slot10). | ||
+ | "slot^2-10": { | ||
+ | ... | ||
+ | }, | ||
+ | ... | ||
+ | }, | ||
+ | liquidUnitRatio: 1, // количество вёдер жидкости в базовом юните жидкости | ||
+ | // функции интерфейса | ||
+ | });</syntaxhighlight> | ||
+ | </div> </div> | ||
+ | === <br/> Функции интерфейса хранилища === | ||
− | + | Интерфейс хранилища обладает следующими функциями. Вы можете заменить их на свои в прототипе интерфейса при регистрации. | |
− | |||
{| border="1" cellpadding="1" cellspacing="1" | {| border="1" cellpadding="1" cellspacing="1" | ||
Строка 54: | Строка 137: | ||
| Описание | | Описание | ||
|- | |- | ||
− | | ''' | + | | '''getSlot''' |
− | | | + | | name |
− | | Возвращает | + | | Возвращает слот контейнера. |
|- | |- | ||
− | | ''' | + | | '''setSlot''' |
− | | | + | | name, id, count, data, extra |
− | | | + | | Устанавливает предмет в слот контейнера. |
|- | |- | ||
− | | ''' | + | | '''isValidInput''' |
− | | | + | | item, side, tileEntity |
− | | | + | | Аналогична функции isValid слота, но действует на все слоты контейнера. По умолчанию возвращает true. |
+ | |- | ||
+ | | '''addItem''' | ||
+ | | item, side, maxCount | ||
+ | | Функция добавления предмета. Возвращает количество добавленных предметов. | ||
+ | |- | ||
+ | | '''addItemToSlot''' | ||
+ | | name, item, maxCount | ||
+ | | Добавляет предмет в слот контейнера, maxCount - максимальное количество предмета, которое будет добавлено. | ||
|- | |- | ||
− | | ''' | + | | |
− | | item | + | '''getReceivingItemCount''' |
− | | | + | |
+ | | item, side | ||
+ | | Возвращает сколько предметов из стака контейнер может принять. | ||
|- | |- | ||
− | |||
− | |||
| | | | ||
− | + | '''getContainerSlots''' | |
+ | | - | ||
+ | | Возвращает все слоты контейнера | ||
+ | |- | ||
+ | | '''getInputSlots''' | ||
+ | | side | ||
+ | | Возвращяет названия слотов входа, доступных со стороны ''side''. | ||
+ | |- | ||
+ | | '''getOutputSlots''' | ||
+ | | side | ||
+ | | Возвращает названия слотов выхода, доступных со стороны ''side''. | ||
+ | |- | ||
+ | | '''clearContainer''' | ||
+ | | - | ||
+ | | Очищает содержимое контейнера | ||
+ | |- | ||
+ | | '''canReceiveLiquid''' | ||
+ | | liquid, side | ||
+ | | Может ли TileEntity принять жидкость с именем ''liquid ''со стороны ''side''. По умолчанию возвращает true если в liquidStorage установлен лимит для этой жидкости. | ||
+ | |- | ||
+ | | '''canTransportLiquid''' | ||
+ | | liquid, side | ||
+ | | Может ли TileEntity отдать жидкость с именем ''liquid ''со стороны ''side''. По умолчанию возвращает true. | ||
|- | |- | ||
− | | ''' | + | | '''receiveLiquid''' |
− | | liquid, | + | | liquidStorage, liquid, amount |
| | | | ||
− | + | Функция добавление жидкости в хранилище.<br/> '''liquidStorage''' - хранилище, принимающее жидкость<br/> '''liquid '''- название жидкости<br/> '''amount '''- количество жидкости | |
|- | |- | ||
| '''extractLiquid''' | | '''extractLiquid''' | ||
− | | liquid, | + | | liquidStorage, liquid, amount |
+ | | Функция извлечения жидкости из хранилища. | ||
+ | |- | ||
+ | | '''getInputTank''' | ||
+ | | side | ||
+ | | | ||
+ | Возвращает входное хранилище жидкости TileEntity. По умолчанию возвращает liquidStorage.<br/> '''side '''- сторона с которой будет производиться работа | ||
+ | |||
+ | |- | ||
+ | | '''getOutputTank''' | ||
+ | | side | ||
| | | | ||
− | + | Возвращает выходное хранилище жидкости TileEntity. По умолчанию возвращает liquidStorage.<br/> '''side '''- сторона с которой будет производиться работа | |
+ | |||
+ | |} | ||
+ | <div class="mw-parser-output"><br/> В экземпляре интерфейса также есть следующие поля:</div> <div class="mw-parser-output">''isNativeContainer ''- true если контейнер является ванильным, false если из TileEntity.</div> <div class="mw-parser-output">''container ''- контейнер;<br/> ''tileEntity ''- если создан для TileEntity.</div> <div class="mw-parser-output"> </div> <div class="mw-parser-output">Регистрация интерфейса для TileEntity на примере железной печки из мода IndustrialCraft 2</div> <syntaxhighlight lang="JavaScript">StorageInterface.createInterface(BlockID.ironFurnace, { | ||
+ | slots: { | ||
+ | "slotSource": { | ||
+ | input: true, | ||
+ | side: "up", | ||
+ | isValid: function(item, side){ | ||
+ | return Recipes.getFurnaceRecipeResult(item.id, "iron"); | ||
+ | } | ||
+ | }, | ||
+ | "slotFuel": { | ||
+ | input: true, | ||
+ | side: "horizontal", | ||
+ | isValid: function(item, side){ | ||
+ | return Recipes.getFuelBurnDuration(item.id, item.data) > 0; | ||
+ | } | ||
+ | }, | ||
+ | "slotResult": {output: true} | ||
+ | } | ||
+ | });</syntaxhighlight> | ||
+ | <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"> | ||
+ | === Методы для получения интерфесов хранилищ === | ||
+ | |||
+ | *'''StorageInterface.getInterface('''''container ''или ''tileEntity''''')''' - возвращает интерфейс хранилища для TileEntity или контейнера. | ||
+ | *'''StorageInterface.getStorage('''''blockSource, x, y, z''''')''' - возвращает интерфейс хранилища для контейнера на координатах | ||
+ | *'''StorageInterface.getLiquidStorage('''''blockSource, x, y, z''''')''' - возвращает интерфейс для TileEntity, хранящего жидкости, по координатам. | ||
+ | *'''StorageInterface.getNeighbourStorage('''''blockSource, coords, side''''')''' - возвращает интерфейс хранилища для соседнего блока со стороны side. | ||
+ | *'''StorageInterface.getNeighbourLiquidStorage('''''blockSource, coords, side''''')''' - возвращает интерфейс для соседнего TileEntity, хранящего жидкости, со стороны side | ||
+ | </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> | ||
+ | == Остальные методы StorageInterface == | ||
+ | |||
+ | {| border="1" cellpadding="1" cellspacing="1" | ||
+ | |- | ||
+ | | style="width: 178px;" | Название | ||
+ | | style="width: 114px;" | Аргументы | ||
+ | | style="width: 458px;" | Описание | ||
+ | |- | ||
+ | | style="width: 178px;" | '''getNearestContainers''' | ||
+ | | style="width: 114px;" | coords, blockSource | ||
+ | | style="width: 458px;" | Возвращает соседние контейнеры относительно блока на координатах ''coords ''в виде объекта, где ключами являются стороны блока. | ||
+ | |- | ||
+ | | style="width: 178px;" | '''getNearestLiquidStorages''' | ||
+ | | style="width: 114px;" | coords, blockSource | ||
+ | | style="width: 458px;" | Работает аналогично предыдущему, но возвращает интерфейсы хранилищ для всех соседних TileEntity, имеющих хранилища жидкостей. | ||
+ | |- | ||
+ | | style="width: 178px;" | '''putItems''' | ||
+ | | style="width: 114px;" | items, containers | ||
+ | | style="width: 458px;" | Добавляет предметы из массива items в контейнеры из объекта, возвращаемого методом ''getNearestContainers'''''.''' | ||
+ | |- | ||
+ | | style="width: 178px;" | '''putItemToContainer''' | ||
+ | | style="width: 114px;" | item, container, side, maxCount | ||
+ | | style="width: 458px;" | | ||
+ | Добавляет стак предметов в контейнер.<br/> '''maxCount '''- максимальное количество предметов, которое может быть передано за раз (по умолчанию 64). | ||
+ | |||
+ | Возвращает количество переданных предметов. | ||
+ | |||
+ | |- | ||
+ | | style="width: 178px;" | '''extractItemsFromContainer''' | ||
+ | | style="width: 114px;" | inputСontainer , outputContainer, side, maxCount, oneStack | ||
+ | | style="width: 458px;" | | ||
+ | Позволяет извлечь предмет из контейнера и добавить его в tile entity или контейнер.<br/> '''inputStorage '''- TileEntity или контейнер, в который будут добавлены предметы<br/> '''outputContainer '''- контейнер, из которого будут извлечены предметы<br/> '''maxCount '''- сколько предметов может быть извлечено (по умолчанию не ограничено)<br/> '''oneStack '''- если true, то извлечёт только один стак предметов. | ||
+ | |||
+ | Возвращает количество переданных предметов. | ||
+ | |||
+ | |- | ||
+ | | style="width: 178px;" | '''extractItemsFromStorage''' | ||
+ | | style="width: 114px;" | inputStorage, outputStorage, side, maxCount, oneStack | ||
+ | | style="width: 458px;" | Аналогичен предыдущему, но принимает аргументами интерфейсы хранилищ. | ||
+ | |- | ||
+ | | style="width: 178px;" | '''transportLiquid''' | ||
+ | | style="width: 114px;" | liquid, maxAmount, outputStorage, inputStorage, outputSide | ||
+ | | style="width: 458px;" | | ||
+ | Передаёт жидкость из одного TileEntity в другой.<br/> '''liquid '''- название жидкости<br/> '''maxAmount '''- максимальное количество, которое будет передано<br/> '''outputStorage '''- интерфейс хранилища или TileEntity, из которого будет передана жидкость<br/> '''inputStorage '''- интерфейс хранилища, принимающего жидкость<br/> '''outputSide '''- сторона блока, через которую передаётся жидкость. | ||
+ | |||
+ | Возвращает количество переданной жидкости. | ||
+ | |||
+ | |- | ||
+ | | style="width: 178px;" | '''extractLiquid''' | ||
+ | | style="width: 114px;" | liquid, maxAmount, inputStorage, outputStorage, inputSide | ||
+ | | style="width: 458px;" | | ||
+ | Похож на предыдущий, но позволяет извлечь жидкость из TileEntity<br/> '''liquid '''- название жидкости. Если не указано, то извлечёт любую жидкость из ''outputStorage'', если она может быть принята в ''inputStorage.''<br/> '''inputStorage '''- интерфейс хранилища или TileEntity, принимающий жидкость<br/> '''outputStorage '''- интерфейс хранилища, из которого будет извлечена жидкость<br/> '''inputSide '''- сторона блока, которая будет принимать жидкость. | ||
+ | |||
+ | Возвращает количество переданной жидкости. | ||
|- | |- | ||
− | | '''checkHoppers''' | + | | style="width: 178px;" | '''checkHoppers''' |
− | | tileEntity | + | | style="width: 114px;" | tileEntity |
− | | Позволяет | + | | style="width: 458px;" | Позволяет TileEntity взаимодействовать с воронками. Для этого должен вызываться в функции тика TileEntity . |
|- | |- | ||
− | | '''addItemToSlot''' | + | | style="width: 178px;" | '''addItemToSlot''' |
− | | item, slot, | + | | style="width: 114px;" | item, slot, maxCount |
− | | | + | | style="width: 458px;" | |
− | + | Добавляет стак предметов в слот. Изменяет только объект слота, для корректной работы требуется установить слот через ''container.setSlot.''<br/> '''maxCount '''- максимальное количество, которое будет передано в слот (по умолчанию 64). | |
− | |||
− | + | Возвращает количество переданных предметов. | |
− | + | |} | |
− | </div> | + | </div> </div> </div> </div> |
Версия | Ссылка | Список изменений | Дата релиза |
12 | Скачать |
|
07.08.2021 |
11 | Скачать |
|
01.04.2021 |
10 | Скачать |
|
09.01.2021 |
9 | Скачать |
|
14.12.2020 |
8 | Скачать |
|
10.12.2020 |
7 | - |
- В описании слота в интерфейсе хранилища теперь можно указать стороны, через которые с ним можно взаимодействовать |
10.06.2020 |
6 | Скачать | - Библиотека обновлена на InnerCore для Horizon: добавлена поддержка новых ванильных контейнеров. | 18.04.2020 |
5 | Скачать | - Исправлена ошибка взаимодействия с tile entity без интерфейса хранилища в методе StorageInterface.transportLiquid | 09.03.2020 |
4 | Скачать |
|
05.03.2020 |
3 | Скачать | - Релиз библиотеки | 02.02.2020 |
Для добавления библиотеки в мод ее файл (StorageInterface.js) нужно добавить в директорию lib/ в директории мода (если таковой нету, то ее нужно создать).
Для импорта библиотеки в мод в заголовочном файле (или если он отсутствует в первом файле кода) следует добавить строку:
IMPORT("StorageInterface");
Интерфейсы хранилищ объединяют в себе функции для работы с контейнерами и хранилищем жидкости и позволяют описать логику передачи предметов и жидкостей. В библиотеке есть стандартные интерфейсы для ванильных контейнеров и TileEntity, но вы можете зарегистрировать свой собственный для вашего TileEntity.
StorageInterface.createInterface(id блока, прототип интерфейса).
Все параметры слотов и функции прототипа интерфейса опциональны.
Прототип интерфейса выглядит так:
StorageInterface.createInterface(id блока, {
slots: {
"slot1": {
input: boolean, // может ли слот принимать предметы
output: boolean, // может ли слот отдавать предметы
// Сторона блока, через которую доступен слот.
// Значение - число или одна из настроек: "horizontal", "verctical", "down", "up".
side: int | string,
// Максимальное количество предметов в слоте
maxStack: int,
// Может ли слот принять предмет item со стороны side
isValid: function(item, side, tileEntity) {
return boolean;
},
// Можно ли извлечь предмет из слота (item - предмет в слоте)
canOutput: function(item, side, tileEntity) {
return boolean;
}
},
// Все слоты с именем slot и индексами от 2 до 10 (slot2, ..., slot10).
"slot^2-10": {
...
},
...
},
liquidUnitRatio: 1, // количество вёдер жидкости в базовом юните жидкости
// функции интерфейса
});
Интерфейс хранилища обладает следующими функциями. Вы можете заменить их на свои в прототипе интерфейса при регистрации.
Название | Аргументы | Описание |
getSlot | name | Возвращает слот контейнера. |
setSlot | name, id, count, data, extra | Устанавливает предмет в слот контейнера. |
isValidInput | item, side, tileEntity | Аналогична функции isValid слота, но действует на все слоты контейнера. По умолчанию возвращает true. |
addItem | item, side, maxCount | Функция добавления предмета. Возвращает количество добавленных предметов. |
addItemToSlot | name, item, maxCount | Добавляет предмет в слот контейнера, maxCount - максимальное количество предмета, которое будет добавлено. |
getReceivingItemCount |
item, side | Возвращает сколько предметов из стака контейнер может принять. |
getContainerSlots |
- | Возвращает все слоты контейнера |
getInputSlots | side | Возвращяет названия слотов входа, доступных со стороны side. |
getOutputSlots | side | Возвращает названия слотов выхода, доступных со стороны side. |
clearContainer | - | Очищает содержимое контейнера |
canReceiveLiquid | liquid, side | Может ли TileEntity принять жидкость с именем liquid со стороны side. По умолчанию возвращает true если в liquidStorage установлен лимит для этой жидкости. |
canTransportLiquid | liquid, side | Может ли TileEntity отдать жидкость с именем liquid со стороны side. По умолчанию возвращает true. |
receiveLiquid | liquidStorage, liquid, amount |
Функция добавление жидкости в хранилище. |
extractLiquid | liquidStorage, liquid, amount | Функция извлечения жидкости из хранилища. |
getInputTank | side |
Возвращает входное хранилище жидкости TileEntity. По умолчанию возвращает liquidStorage. |
getOutputTank | side |
Возвращает выходное хранилище жидкости TileEntity. По умолчанию возвращает liquidStorage. |
StorageInterface.createInterface(BlockID.ironFurnace, {
slots: {
"slotSource": {
input: true,
side: "up",
isValid: function(item, side){
return Recipes.getFurnaceRecipeResult(item.id, "iron");
}
},
"slotFuel": {
input: true,
side: "horizontal",
isValid: function(item, side){
return Recipes.getFuelBurnDuration(item.id, item.data) > 0;
}
},
"slotResult": {output: true}
}
});
Название | Аргументы | Описание |
getNearestContainers | coords, blockSource | Возвращает соседние контейнеры относительно блока на координатах coords в виде объекта, где ключами являются стороны блока. |
getNearestLiquidStorages | coords, blockSource | Работает аналогично предыдущему, но возвращает интерфейсы хранилищ для всех соседних TileEntity, имеющих хранилища жидкостей. |
putItems | items, containers | Добавляет предметы из массива items в контейнеры из объекта, возвращаемого методом getNearestContainers. |
putItemToContainer | item, container, side, maxCount |
Добавляет стак предметов в контейнер. Возвращает количество переданных предметов. |
extractItemsFromContainer | inputСontainer , outputContainer, side, maxCount, oneStack |
Позволяет извлечь предмет из контейнера и добавить его в tile entity или контейнер. Возвращает количество переданных предметов. |
extractItemsFromStorage | inputStorage, outputStorage, side, maxCount, oneStack | Аналогичен предыдущему, но принимает аргументами интерфейсы хранилищ. |
transportLiquid | liquid, maxAmount, outputStorage, inputStorage, outputSide |
Передаёт жидкость из одного TileEntity в другой. Возвращает количество переданной жидкости. |
extractLiquid | liquid, maxAmount, inputStorage, outputStorage, inputSide |
Похож на предыдущий, но позволяет извлечь жидкость из TileEntity Возвращает количество переданной жидкости. |
checkHoppers | tileEntity | Позволяет TileEntity взаимодействовать с воронками. Для этого должен вызываться в функции тика TileEntity . |
addItemToSlot | item, slot, maxCount |
Добавляет стак предметов в слот. Изменяет только объект слота, для корректной работы требуется установить слот через container.setSlot. Возвращает количество переданных предметов. |