Шлюзовая дверь реактора

Шлюзовая дверь реактора

alaindustrial:reactor_door
Ядерная техникаРеализованоnuclearreactormultiblockshieldingredstoneautomation

Сводка

Шлюзовая дверь реактора — блок оболочки высотой в две клетки и штатный способ попасть внутрь комнаты. Сама дверь необязательна: замуроваться и прокопаться обратно — законный способ держать реактор, от оболочки требуется только герметичность. Но если дверь в ней стоит, она обязана образовать настоящий проём: дверь, лежащая в полу, — это ошибка, а не выбор, и контроллер скажет об этом при сборке, а не после.

Дверь намеренно не ведёт себя как ванильная железная. Её нельзя открыть рукой и нельзя «оставить открытой»: она открывается только по импульсу редстоуна и закрывается сама. Состояния «открыта навсегда» не существует.

Как её открыть

ДействиеЧто происходит
ПКМ рукойничего
Нарастающий фронт редстоуна (кнопка, нажимная плита, рычаг)дверь открывается на (по умолчанию 40 тиков = 2 с)
Сигнал держат рычагомдверь всё равно закрывается по таймеру; удержание её не держит
Снятие сигналаничего: спадающий фронт игнорируется намеренно
Новый фронт, пока дверь открытатаймер закрытия отсчитывается заново
В проёме стоит игрок или мобзакрытие откладывается, повторная проверка каждые (по умолчанию 10 тиков)

Почему именно так. Ванильная железная дверь держится открытой ровно столько, сколько горит сигнал, — то есть её судьба зависит от того, не забыл ли кто-то рычаг. Для двери, которая держит герметичность реакторной комнаты, это плохой контракт. Импульсная дверь превращает нарушение герметичности в событие длиной в две секунды, а не в состояние, которое может тянуться часами.

Ждать сущность в проёме дверь обязана по обратной причине: комната, ради которой всё затевается, — это место, где игрок должен находиться внутри. Дверь, захлопывающаяся на игроке, была бы ловушкой в единственном узком месте постройки.

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

Звук у шлюза свой, а не ванильной железной двери, — см. раздел «Звук» ниже.

Чем подать импульс изнутри. Снаружи годится что угодно — кнопка, рычаг, нажимная плита. Изнутри герметичной комнаты источник сигнала нужен такой же герметичный, поэтому вместе с дверью появилась реакторная кнопка: тот же экранирующий сплав, время нажатия = 20 тиков (1 с) — половина от, так что импульс заведомо укладывается в окно открытия. Ванильная кнопка тоже сработает, но она деревянная или каменная — то есть ровно то, что на этапе 4 внутри активной комнаты перестанет существовать. Кнопка на стене клетку оболочки не занимает и герметичность не нарушает.

Как она движется

Дверь не распахивается — полотно уезжает вниз, в пол, и поднимается обратно, как переборка шлюза. Ход занимает (по умолчанию 8 тиков ≈ 0,4 с) в каждую сторону: пятая часть от окна открытия, чтобы движение читалось как механика, а не съедало те две секунды, ради которых дверь и открывается. Полотно трогается и останавливается плавно, без рывка на концах.

Под комнатой при этом ничего не нужно: полотно рисуется только в пределах самого проёма и просто перестаёт быть видимым по мере ухода вниз. Прятать его некуда и незачем — в клетке под дверью может стоять что угодно.

Ход полотна — чисто визуальная величина. Блокстейт open по-прежнему переключается за один тик, и вместе с ним мгновенно меняются проходимость, пути мобов и трассировка радиации. То есть дверь становится проходимой в тот же миг, когда полотно трогается, а не когда доезжает: 0,4 секунды рассинхронизации между «сквозь неё уже можно пройти» и «она уже уехала» — цена за то, что редстоун- контракт остался ровно тем же, каким был.

Открытая дверь не оставляет в проёме ничего: формы у неё в этот момент нет вовсе. Отсюда два следствия. Полезное — открытый проём честно пропускает радиацию наружу (трассировка упирается в коллизию, а её нет). Неудобное — пока дверь открыта, по ней нельзя кликнуть и её нельзя сломать; через две секунды она закроется и снова станет целью.

Проём: где дверь считается входом

Для контроллера мало, чтобы дверь просто была в оболочке. Нужен проём — две клетки двери одна над другой, причём нижняя на уровне внутреннего пола комнаты. Иначе это окно, а не вход.

СитуацияСтатус контроллера
Двери в оболочке нет вообщеусловие выполнено — дверь необязательна
Дверь есть, но проёма нет (лежит в полу/потолке, стоит выше уровня пола)NO_DOORWAY — «Нет проёма»
Есть хотя бы один проёмусловие выполнено

Дверей может быть сколько угодно: две — «вход» и «выход» — нормальная планировка. Требование ровно одно: минимум один настоящий проём.

Энергия

ПолеЗначение
Рольнет
Буфер (EU/FE)0
Макс. вход / выход (EU/FE/такт)н/п

Дверь питается редстоуном, а не EU/FE. Приводу внутри неё энергия не нужна — он уже оплачен крафтом.

Свойства блока

ПолеЗначение
Формаполотно 3/16 блока толщиной во всю высоту и ширину клетки; открытая дверь формы не имеет вовсе
Размер1×2 (нижняя и верхняя половины — один объект)
Окклюзия(не полный куб)
Прочность5.0
Взрывоустойчивость30.0
Инструменткирка (обязательна для дропа)
Звукметалл
Реакция на поршеньразрушается
Блокстейтыfacing, half, open, powered, formed, hinge (не используется)

Две половины живут и умирают вместе: сломав любую, игрок получает одну дверь, а вторая половина исчезает. Пути мобов дверь пропускает только в открытом состоянии.

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

Полотно рисует не запечённая модель, а рендерер блока: модель, у которой есть только два положения, не умеет показать движение между ними. Плата за это — у двери нет ambient occlusion и не рисуется сетка трещин, пока её ломают.

formed дверь несёт наравне с остальной оболочкой — контроллер пишет его во все клетки собранной комнаты (см. «Бесшовный вид»). На вид двери он, в отличие от обшивки и стекла, пока не влияет: отдельной бесшовной текстуры у полотна нет. Свойство хранится ради единообразия — сканеру и заливке флага не нужно знать, у какого блока оболочки есть косметический вариант, а у какого нет.

powered хранится ровно для одного — чтобы отличить нарастающий фронт от «сигнал всё ещё есть». Без него каждое обновление соседей при включённом рычаге читалось бы как новый импульс, и дверь открывалась бы заново сразу после того, как игрок увидел её закрывшейся.

Звук

У шлюзовой двери свой голос вместо обычной железной: при открытии шипит стравливаемое уплотнение , при закрытии щёлкает пневматический замок . Ванильных звуков железной двери у неё нет ни в одном положении — на слух понятно, что это вход в реакторный зал, а не в подвал.

Рецепты

Крафт — ×1 за раз, полная сетка 3×3.

P G P P = экранирующая пластина ×2
W D W G = реакторное стекло ×1
R V R W = изолированный медный кабель ×2
D = железная дверь ×1
R = укреплённая экранирующая пластина ×2
V = привод управляющих стержней ×1

Рецепт читается как устройство блока: ванильное железное полотно в середине одевается в экранирующий сплав — обычные пластины поверху, укреплённые понизу, — реакторное стекло становится круглым иллюминатором верхней половины, два изолированных медных кабеля подводят питание, а привод в нижнем ряду превращает створку в шлюз.

Привод — отдельный предмет: 3 экранирующие пластины, 2 железных слитка, электронная схема, 2 пластины закалённого железа и поршень

Прогрессия

Тир: нет. Требует: две экранирующие пластины, две укреплённые экранирующие пластины (см. обшивку — вся цепочка описана там), реакторное стекло, два изолированных медных кабеля, ванильную железную дверь и привод управляющих стержней. Открывает: штатный вход в собранную комнату — единственный способ входить и выходить, не разбирая оболочку.

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

Связанное

Реакторная обшивка — остальная оболочка и материальная цепочка. Контроллер реактора — кто проверяет наличие двери и проёма. Реакторная кнопка — чем подать импульс изнутри комнаты. Реакторное стекло — окно, которое дверью не является. Термоцентрифуга — прецедент «редстоун как орган управления машиной», но с противоположным контрактом: там сигнал надо держать.

Крафт

Крафт на верстаке
Экранирующая пластина
Реакторное стекло
Экранирующая пластина
Изолированный медный кабель
iron d
Изолированный медный кабель
Укреплённая экранирующая пластина
Привод управляющих стержней
Укреплённая экранирующая пластина
Верстак
Шлюзовая дверь реактора
Шлюзовая дверь реактора