MC Toolkit

Руководства / Строительство и ресурсы

Сигнал компаратора от контейнеров: формула и ловушка размера стопки

Сундук с одним предметом выдаёт сигнал 1, но и сундук с шестьюдесятью тремя — тоже. Формула объясняет почему, и почему шалкеровые ящики и вёдра ломают все ваши расчёты.

Считывание контейнера компаратором — основа большинства редстоун-схем сортировки предметов и авто-крафта. Формула короткая, и все странности вытекают из неё.

Формула

signal = floor(1 + (sum of fullness across slots ÷ number of slots) × 14)

где заполненность каждого слота — items in slot ÷ max stack size for that item.

1 + — самая важная часть: любое ненулевое содержимое даёт как минимум сигнал 1, а пустой контейнер — 0. Поэтому определить «есть ли тут вообще хоть что-то» тривиально, а «сколько именно» — нет.

Почему один предмет и шестьдесят три дают одинаково 1

У двойного сундука 54 слота. Одна стопка из 64 булыжников полностью заполняет один слот:

1 + (1 ÷ 54) × 14  =  1 + 0.259  =  1.259  →  floor = 1

Нужно четыре полных стопки, чтобы выход достиг 2. Классический детектор одного предмета работает потому, что 1 — это минимум для любого содержимого, а не потому, что он измеряет один предмет.

Размер стопки меняет всё

max stack size задаётся для каждого предмета, и вот тут расчёты ломаются:

ПредметСтопкаОдин предмет даёт
Булыжник641/64 слота
Эндер-жемчуг161/16
Ведро воды, вагонетка, лодка1целый слот

В пяти слотах воронки один нестакающийся предмет — ведро воды, вагонетка — считается как пятая часть заполнения: сигнал 3, тогда как один булыжник даёт 1. Четыре таких предмета дают 12. Поэтому нестакающиеся предметы — стандартный способ шагать счётчиком крупными предсказуемыми приращениями. (Пустое ведро стакается по 16, так что работает иначе.)

Шалкеровые ящики не прозрачны

Компаратор, считывающий сундук, в котором лежит шалкеровый ящик, видит ящик как один предмет, занимающий один слот. Внутрь он не заглядывает. Системы сортировки, которые считают иначе, молча обсчитываются.

Показания компаратора от не-контейнеров

Тот же компаратор также считывает:

БлокСигнал
Котёл0–3 по уровню воды
Компостница0–8 по стадии заполнения
Тортот 14 до 0 за каждый съеденный кусок
Рамка1–8 по повороту
Проигрыватель1–15 в зависимости от пластинки
Кафедра1–15 по тому, как далеко открыта страница в книге
Улей0–5 по уровню мёда
Рамка портала Энда15 с оком, 0 без

Рамки и кафедры — самые полезные для скрытых переключателей, потому что считываются через стену.

Режим вычитания

Горящий передний факел означает режим вычитания: выход — это сигнал сзади минус сигнал сбоку, с ограничением снизу на 0. Режим сравнения (факел не горит) пропускает задний сигнал только если он не слабее самого сильного бокового.

Введите содержимое контейнера и получите точный сигнал, в том числе при смешанных размерах стопок, в Справочники и калькуляторы — набор 2.

Справочники и калькуляторы — набор 2 →

Другие руководства

Смотреть все →