---
navigation:
  title: Комірка масового зберігання
  icon: bulk_item_cell
  parent: index.md
  position: 040
categories:
  - megacells
item_ids:
  - bulk_item_cell
  - bulk_cell_component
  - compression_card
  - decompression_module
---

# MEGA Cells: Комірка масового зберігання

Тепер перейдемо до першої зі *спеціалізованих* комірок зберігання, розроблених MEGA. Тут все стає цікаво.

## Комірка масового зберігання

<Row>
  <ItemImage id="bulk_cell_component" scale="3" />
  <ItemImage id="bulk_item_cell" scale="3" />
</Row>

**МЕГА Комірка масового зберігання** є, багато в чому, своєрідною антитезою до [традиційних комірок зберігання](ae2:items-blocks-machines/storage_cells.md).

Хоча стандартна комірка зазвичай може вмістити до 63 різних типів предметів, комірка масового зберігання уміщує лише один тип предметів. Сама по собі така комірка була б непотребом, але масова має одну ключову перевагу: на відміну від стандартної комірки, яка може вмістити обмежену кількість предметів кожного типу, комірка масового зберігання може зберігати ***нескінченну*** кількість предметів одного типу. Точніше, *нескінченну* в технічних межах гри. *(якщо вам цікаво, дивіться розділ «Технічні деталі» трохи нижче)*

Також варто зазначити, що комірку масового зберігання не можна виготовити з жодного з корпусів, наявних в AE2 або MEGA. Натомість для неї використовується спеціальний корпус з незериту, який завжди виготовляється з нуля разом зі спеціальним компонентом. З цієї причини комірку масового зберігання також неможливо розібрати на компонент та корпус — хоча в цьому і не було б особливого сенсу.

<Row>
  <RecipeFor id="bulk_cell_component" />
  <RecipeFor id="bulk_item_cell" />
</Row>

Новостворена комірка масового зберігання ще не може функціонувати; спочатку її потрібно *розгалудити* (відфільтрувати), щоб визначити, який предмет вона буде зберігати. Для цього використовується <ItemLink id="ae2:cell_workbench" />, або наш зручний <ItemLink id="portable_cell_workbench" />. Після цього комірка почне приймати відповідний предмет, і надавати собі пріоритет як першому і, ймовірно, єдиному місцю, куди цей предмет буде надсилатися з моменту встановлення фільтра.

![Не налаштована комірка масового зберігання](assets/diagrams/bulk_cell_empty.png)
![Розділена комірка масового зберігання](assets/diagrams/bulk_cell_partitioned.png)
![Вміст комірки масового зберігання](assets/diagrams/bulk_cell_with_contents.png)

Як тільки комірка почала приймати й зберігати відповідний тип предмета, доки фільтр відповідає вставленому предмету, вона продовжуватиме функціонувати та дозволятиме як подальше вставлення, так і вилучення, як і звичайна комірка. Однак, якщо цей фільтр випадково буде очищено або замінено, комірка видасть помилку і не зможе приймати нові предмети. Проте, вона дозволить вилучити вміст у разі надзвичайної ситуації та з метою відновлення, і як тільки оригінальний фільтр буде замінено або комірка буде спорожнена (за умови наявності нового не порожнього фільтра), вона продовжить функціонувати у звичайному режимі.

![Невідповідний фільтр комірки (порожній)](assets/diagrams/bulk_cell_mismatch_1.png)
![Невідповідний фільтр комірки (інший предмет)](assets/diagrams/bulk_cell_mismatch_2.png)

### Технічні задушливі деталі про місткість:

Зазвичай під «нескінченною місткістю» в будь-якому моді Minecraft розуміють просто максимально можливе значення певного типу числових даних, наприклад, обмеження в Java для «int» (близько 2,14 мільярда), «long» (близько 9,2 *квінтильйона*, або 9,2 \* 10^**18**) або навіть «double» (який вже досягає *308* порядків величини, хоча він зовсім не підходить для роботи з цілими числами).

Комірка масового зберігання відкидає всі ці примітивні типи та замість цього розроблена таким чином, щоб вміщувати будь-яку довільно велику кількість, яку користувач може розумно уявити. Дійсно, навіть попри те, що будь-яка мережа ME завжди зможе обробляти й відображати лише вищезгадані 9,2 квінтильйона будь-якого типу предметів, що зберігаються в ній, комірка масового зберігання внутрішньо здатна вийти за межі цього обмеження і, як мінімум, натякнути на те, що вона, можливо, це зробила.

![Підрахунок для (Long.MAX_VALUE - 1) у комірці масового зберігання](assets/diagrams/bulk_cell_max_count_1.png)
![Підрахунок у комірці масового зберігання для значень вище за Long.MAX_VALUE](assets/diagrams/bulk_cell_max_count_2.png)

## Масове стискання

<Row>
  <ItemImage id="compression_card" scale="3" />
</Row>

До цього моменту ми добре розібралися з тим, як працює комірка масового зберігання, яка є фактично бездонною ямою для будь-якого довільного типу предметів. Однак більшість гравців добре розуміють, що деякі типи предметів, а саме ресурси, такі як *металеві злитки*, потрібно зберігати трохи по-іншому. Дуже часто такі ресурси, як злитки, можуть мати кілька форм для зберігання та вироблення, наприклад, більші «блоки» для зберігання, щоб мінімізувати простір, та менші «самородки» для вироблення. Хоча зазвичай їх краще обробляти разом із відповідними злитками, стандартна комірка для масового зберігання не може легко впоратися з цим завданням.

Тут на допомогу приходить механізм ***масового стиснення*** за допомогою **компресійної карти**, унікальному [модифікатору](ae2:items-blocks-machines/upgrade_cards.md), ексклюзивному для комірки масового зберігання.

<RecipeFor id="compression_card" />

Якщо на картці увімкнено *стиснення*, комірка масового зберігання може бути поінформована про стиснені варіанти ресурсів, щоб рівноправно приймати ці варіанти та автоматично «стискати» їх, коли вони переходять у наступний вищий варіант. Це автоматичне стиснення працює відповідно до рецептів майстрування, пов'язаних з цими варіантами: якщо один з цих рецептів перетворює, наприклад, один (1) металевий злиток на дев'ять (9) самородків цього металу, а інший рецепт перетворює ці дев'ять самородків назад на один оригінальний злиток, то комірка масового зберігання, налаштована для зберігання цього металу, може приймати як злиток, так і самородки цього металу, миттєво перетворюючи їх між собою.

Крім того, це автоматичне стиснення поширюється на *всі* вищі варіанти, такі як металеві блоки й навіть більш «стислі» версії цих блоків, що надаються деякими модами, та в сукупності обробляються як один довгий «ланцюжок» варіантів від найменшого до найбільшого.

![Комірка із включеним стисненням](assets/diagrams/bulk_cell_compressed_1.png)

![Вміст комірки із включеним стисненням](assets/diagrams/bulk_cell_compressed_2.png)
![Вміст комірки із включеним стисненням (+ AllTheCompressed)](assets/diagrams/bulk_cell_compressed_3.png)

Щоб ця механіка працювала, комірка масового зберігання внутрішньо відстежує лише свою фактичну «кількість» як найменшу можливу «одиницю» предмета ресурсу, на яку його можна розкласти — зазвичай це металевий самородок, уламок кристала, пил або інший еквівалент. У рамках згаданого раніше ланцюжка перетворень, комірка масового зберігання з увімкненою цією механікою з радістю прийме будь-які з цих варіантів, як вищі, так і нижчі, перетворюючи їх на певну кількість «одиниць», де це можливо, і навіть дозволить *видобувати* будь-який з них за допомогою автоматизованих засобів — таких як <ItemLink id="ae2:import_bus" /> та <ItemLink id="ae2:export_bus" /> — або навіть [терміналом](ae2:items-blocks-machines/terminals.md) (при натисканні *Shift* для вилучення).

У випадку, якщо який-небудь мод додає більш «стислі» версії блоків ресурсу, може бути бажано обмежити максимальний рівень стиснення ресурсу, щоб легше відстежувати кількість цього ресурсу в конкретній формі, наприклад, у формі злитка. Для цієї мети, комірка масового зберігання з увімкненим стисненням, що все ще знаходиться у верстаку для комірок, дозволить циклічно змінювати її «**межу** стиснення», визначаючи найвищий варіант, який комірка повинна бути здатна накопичити в сховищі та при якому автоматичне стиснення повинно зупинитися. Клацання ЛКМ циклічно змінює межу в бік найменшої одиниці предмета, а ПКМ циклічно змінює її в бік все більш стиснутих варіантів.

![Усталене відсічення масового зберігання](assets/diagrams/bulk_cell_cutoff_1.png)
![Нижнє відсічення масового зберігання](assets/diagrams/bulk_cell_cutoff_2.png)

![Вміст відсічення масового зберігання](assets/diagrams/bulk_cell_cutoff_3.png)

Коли на комірці ввімкнено стиснення, поведінка «невідповідності фільтра» стає дещо м'якшою: комірка фактично «запам'ятовує», з яким ланцюжком їй потрібно працювати, виходячи з предмета, який вона вже зберігає, і якщо її фільтр випадково видалено, його можна замінити будь-яким із пов'язаних варіантів, а не конкретним варіантом, який раніше використовувався як фільтр. Крім того, з метою виправлення помилок, у разі додавання, видалення або заміни будь-яких рецептів вироблення для деяких варіантів, менших за предмет, налаштований на комірці, поточний «коефіцієнт одиниці» — тобто скільки «одиниць» загалом вміститься в один екземпляр налаштованого предмета «варіанту» — також зберігається і відстежується, відповідно оновлюючись, коли загальний ланцюжок для цих варіантів бачить таку зміну.

В крайньому разі, якщо в найгіршому сценарії комірка масового зберігання повністю заблокована незалежно від фільтра, який до неї (повторно) застосовано, і переходить у вищезазначений режим «відновлення», будь-які менші варіанти слідів можна буде відновити разом з базовим предметом, на який комірка була спочатку розділена.

## Модуль декомпресії

<GameScene zoom="8" background="transparent">
  <ImportStructure src="assets/assemblies/decompression_module.snbt" />
  <IsometricCamera yaw="195" pitch="10" />
</GameScene>

Поки що все добре. Ми знаємо, що з увімкненою функцією стиснення, комірка масового зберігання може легко працювати з будь-якими відповідними варіантами при вставці або витягуванні гравцем або пристроями, такими як <ItemLink id="ae2:import_bus" /> та <ItemLink id="ae2:export_bus" />. А що щодо автоматичного вироблення?

Тут стає трохи складніше. В AE2 система [автоматичного вироблення](ae2:ae2-mechanics/autocrafting.md) базується на припущенні, що «те, що ви бачите, те й отримуєте». Якщо система зберігання повідомляє, наприклад, про 5 залізних злитків, то система вироблення припустить, що без [шаблону](ae2:ae2-mechanics/autocrafting.md#шаблони), який би вказав, як виготовити більше залізних злитків, вона матиме лише ці 5 для виконання певного завдання вироблення і не зможе його виконати, якщо буде потрібно більше злитків. Тоді виникає проблема, що при налаштуванні стиснення залізних злитків для комірки масового зберігання, система зберігання може ніколи не повідомляти про більше ніж (зазвичай) 8 злитків у будь-який момент, якщо комірка налаштована на вищий ступінь, що залишає систему вироблення нездатною працювати з будь-яким завданням, яке може зрештою вимагати більше залізних злитків для виконання попереднього кроку.

Розв'язання цієї проблеми полягає у використанні **МЕГА модуля декомпресії**, відносно простого кабельного пристрою, який служить майже як розширення звичайної системи автоматичного вироблення та обладнання мережі.

<RecipeFor id="decompression_module" />

Коли модуль декомпресії розміщується в будь-якому місці мережі, він безперервно сканує мережу на наявність підключених комірок з підтримкою стиснення й автоматично генерує набір спеціалізованих «фальшивих шаблонів» для кожної такої комірки, яку він знаходить, охоплюючи кожен предмет у ланцюжку варіантів, що відповідає цій комірці. Ці шаблони потім обробляються повністю внутрішньо, без необхідності встановлювати <ItemLink id="ae2:pattern_provider" /> або <ItemLink id="ae2:molecular_assembler" /> , що дозволяє системі вироблення продовжувати працювати у звичайному режимі, «створюючи» більше предметів, які технічно вже зберігаються.

![Шаблони декомпресії](assets/diagrams/bulk_cell_decompression.png)

Ці шаблони створюються відповідно до порогів, встановлених на кожній на окремій комірці масового зберігання; шаблони, створені для варіантів нижчого ступеня матеріалу, використовують свій попередній більший варіант, щоб бути переробленими вниз. Водночас шаблони для вищих варіантів використовують попередні варіанти, щоб бути переробленими вгору. У якому б напрямку не відбувалася ця обробка, усі варіанти з обох боків порогової точки все одно автоматично враховуються, якщо їх потребує більше завдання з обробки.

Модуль також дозволяє встановити «глобальний» [пріоритет](ae2:ae2-mechanics/autocrafting.md#пріоритет) для всіх цих шаблонів разом, відносно до будь-якої звичайної інфраструктури обробки, такої як постачальники шаблонів з власними шаблонами для певного варіанту предмета — шляхом натискання ПКМ по модулю для відкриття меню пріоритету.

Модуль декомпресії — пристрій у стилі «налаштуй і забудь», і зазвичай достатньо лише одного модуля в межах мережі, щоб увімкнути всю функціональність автовироблення. ***ПАМ'ЯТАЙТЕ, ОДНАК***, що модуль працює лише в межах однієї мережі та може відстежувати тільки ті комірки, які підключені до МЕ скринь та приводів у тій самій основній мережі, що й він сам. Він ***НЕ ПРАЦЮВАТИМЕ*** через ті самі ж [підмережі](ae2:ae2-mechanics/subnetworks.md), тому слідкуйте за тим, щоб ваше масове сховище залишалося централізованим у межах основної мережі, щоб модуль міг його розпізнати.
