Контролер реактора
alaindustrial:reactor_controller
Зведення
Контролер реактора — єдиний «розумний» блок оболонки і єдина машина кімнати. Поки кімната будується, він знаходить її навколо себе, перевіряє й повідомляє, що не так і де. Коли кімната закрита, він же стає реактором: збирає реакторні колони, рахує вироблення й нагрів, кип'ятить воду, перезбирає рідини всередині кожної стопки колон, зношує стрижні та віддає EU/FE.
Контролер ставиться замість одного блока обшивки у вертикальній стіні, лицем назовні: на лицьовій грані екран, який гравець читає, і туди ж підводять редстоун. Кабель іде на будь-яку іншу грань. Кімната з двома контролерами не формується — у кімнати рівно один мозок.
Контролеру не потрібна кімната, щоб працювати. Без неї він переходить у голий режим: знаходить стійки навколо себе скануванням радіуса, видає помітно врізану потужність і платить за це тим, що навколо самих стійок регулярно плавляться блоки. Це свідомий вибір гравця, а не поломка — подробиці в розділі «Голий режим».
Чим закінчується перегрів. За позначкою кімната починає плавити власну начинку, а шкала, що дійшла до 100 %, запускає зворотний відлік — від двох до трьох хвилин до вибуху, якщо шкалу не опустити. Випромінювання навколо робочої зони живе окремо і від розплавлення, і від аварії.
Де він має стояти
| Вимога | Чому |
|---|---|
| У вертикальній стіні (не в підлозі й не в стелі) | лицьова грань — панель, яку читають і до якої підводять сигнал; у стелі її не видно |
| Не в ребрі й не в куті оболонки | у клітинки на ребрі немає внутрішнього боку, у який дивитися |
| Лицем назовні | внутрішність кімнати лежить за контролером; розвернувши його, гравець дістане «Контролер не в стіні» |
| Рівно один на кімнату | другий контролер у тій самій оболонці дає статус «Другий контролер» з його координатами |
Усі чотири умови перевіряються тим самим скануванням і дають той самий клас відповіді — статус плюс місце. Окремого «режиму налаштування» немає: поставив, подивився на екран, виправив.
Сканування
Сканер працює у два проходи, і це не деталь реалізації, а причина, з якої повідомлення корисні.
- Шість стін — по ±X, ±Y, ±Z від клітинки перед контролером. Кожну стіну шукає не один промінь, а
до дев'яти паралельних: промінь самої клітинки й промені восьми клітинок навколо неї в площині поперек напрямку. Стіна стоїть там, де зупинилася більшість променів; за рівності голосів перемагає промінь самої клітинки, потім ближча стіна. Сусідня клітинка, яка сама є блоком оболонки (стіна контролера, підлога під клітинкою), не голосує. Якщо жоден промінь не знайшов оболонку, кімната «не обмежена в цьому напрямку» — або вона завелика, або в неї вибито бік.
- Обхід усього периметра, заданого шістьма стінами. Саме цей прохід знаходить відсутню клітинку
будь-де в оболонці 14³ і називає її координати. Знайшовши першу дірку, обхід не переривається, а рахує всі інші: перші 12 він запам'ятовує за координатами, далі лише рахує. Поки дірок немає, тим самим обходом рахуються контролери, запам'ятовуються клітинки дверей і підраховується частка скла.
Чому голосування, а не один промінь (ігровий тест,. Один промінь на напрямок упирався в те, що стояло на його єдиному стовпці. Дві дірки посеред стелі, одна з яких над клітинкою перед контролером, випускали промінь у небо, і кімнату з дірявою стелею оголошувало кімнатою без стелі — «Стіни не знайдено» замість «Пробоїна в оболонці». Зайвий блок обшивки всередині кімнати на тому самому стовпці, навпаки, зупиняв промінь під справжньою стелею, і кімната «стискалася». Сусідні промені переважують і те, і інше.
Чому всі дірки, а не перша (той самий тест). Обхід зупинявся на першій не-оболонковій клітинці, і гравець, що виламав дві клітинки праворуч і чотири ліворуч, бачив одну мітку праворуч. Він лагодив її, чекав сканування і лише тоді дізнавався про наступну.
Дальність променя — межа розміру плюс один крок, а не рівно межа. Зайвий крок тут не запас міцності, а умова того, щоб статус «завелика» узагалі існував: промінь, обрізаний рівно на межі, ніколи не побачить дальню стіну кімнати, яка на один блок ширша за норму.
Чому не проста заливка: заливка не вміє відрізнити «кімната завелика» від «кімната протікає» — в обох випадках вона просто працює до упору. Два проходи дають різні відповіді на два різні питання.
Порядок перевірок — теж рішення про зручність, а не про код:
- положення контролера (чи є перед його лицем відкрита клітинка);
- межі — шість променів;
- розміри (замала, потім завелика);
- герметичність — не-оболонкові клітинки обходу (повідомляється перша, рахуються всі);
- сам контролер знайдено як клітинку стіни, а не ребра;
- другий контролер;
- прохід;
- частка скла.
Кожну відповідь можна виправити саму по собі, і гравець лагодить по одній речі за раз, а не отримує список. Ліміт скла стоїть останнім навмисно: це єдина «м'яка» проблема — споруда при ній герметична й правильна, просто не вважається захисною.
| Коли пересканує | Умова |
|---|---|
| Періодично | кожні 40 тиків = 2 с |
| За зміною сусіда | одразу: зламали стіну поряд, поставили порт, вибухнули двері |
Періодичний прохід обов'язковий: сповіщення про сусіда спрацьовує лише для шести блоків, що торкаються контролера, а кімната буває 14 блоків завширшки. Блок, виламаний на дальній стіні, для контролера не сусід. З тієї самої причини контролер ніколи не «засинає».
Стани
Дев'ять станів. Вісім із них — задача, яку треба розв'язати; дев'ятий — «готово».
| Стан | Що означає | Показує місце | Показує розмір |
|---|---|---|---|
| Кімната сформована | герметична й у межах розмірів | — | так |
| Контролер не в стіні | у підлозі/стелі, у ребрі, замурований або розвернутий не тією гранню | так | якщо промені дійшли |
| Кімната ніде не обмежена | промінь пішов далі за межу й не знайшов стіни | — | — |
| Кімната замала | внутрішній розмір менший за мінімум по якійсь осі | — | так |
| Кімната завелика | внутрішній розмір більший за максимум по якійсь осі | — | так |
| Пролом в оболонці | клітинка периметра — не блок оболонки | так, усі дірки | так |
| Немає дверного отвору | двері є, а проходу немає | — | так |
| Другий контролер у кімнаті | у тій самій оболонці стоїть ще один | так | так |
| Забагато скла | скла більше за 30 % клітинок оболонки | так | так |
Місце в статусу «забагато скла» — не «винна» клітинка (винна частка, а не блок), а перша скляна клітинка в порядку обходу. Вона потрібна, щоб дим привів гравця до скляної частини оболонки.
Як він веде реактор
Зібрана кімната — це одна машина, і весь її тик виконує контролер. Власного тику в топливних збірок немає взагалі: зал із тридцятьма стійками коштує серверу стільки ж, скільки один блок із сутністю.
Збір колон
Тим самим обходом, що й перевірку оболонки (раз на 40 тиків), контролер проходить внутрішність кімнати й записує кожну реакторну колону — заряджену й порожню. Тут же він підсумовує стрижні з ураном і рахує пари сусідства.
Порожні колони потрапляють у список навмисно. Фільтр за паливом виглядав нешкідливо й не був ним: порожня стійка випадала з водяного контуру й з перезбирання стопки, через що вода, подана в низ колони, не підіймалася вище за першу заправлену збірку. Колона — частина машини тому, що вона стоїть у кімнаті, а не тому, що її встигли заправити.
Сусідство при цьому рахується за паливом: дві порожні стійки поряд нічого не розганяють, інакше бонус платили б за будівельні риштування.
Обхід внутрішності 12³ — це 1728 читань блока: шістдесят разів на секунду абсурдно, раз на дві секунди дешево. Плата — затримка: стрижень, вставлений рукою, потрапляє в розрахунок із наступного обходу.
Вироблення, паливо й нагрів
| Величина | Як рахується |
|---|---|
| Потенціал (при 100 %) | стрижні × 6 × Mе, де Mе = 1 + 0,5 × пари |
| Віддача | × глибина‰ / 1000`, але не більше вільного місця в буфері |
| Нагрів | повний нагрів × віддача / потенціал, де повний нагрів стрижні × 4 × Mт, Mт = 1 + 0,8 × пари |
| Витрата палива | рівно віддача EU/FE за тик, поділена між колонами пропорційно їхнім стрижням |
| Тепло | clamp(тепло + нагрів − знято водою − стік, 0, 10000); стік оболонки — лише в зупиненої реакції |
Стеля застосовується до повзунка, а не після. Спершу потенціал затискається в 512 EU/FE/т, і лише потім від нього береться глибина. Зворотний порядок виглядав еквівалентним і не був: на будь-якій зоні, чий потенціал уже перевалив за 512, кожна ступінь повзунка давала одні й ті самі 512 EU/FE/т.
Паливо рахується в EU/FE, а не в часі. Контролер списує з колон рівно ту енергію, яку видав, а колона переводить її в поділки міцності стрижнів (144 EU/FE за поділку). Звідси головна властивість моделі: стрижень усюди коштує 144 000 EU/FE, і жодне розкладання не робить уран дешевшим.
У нагріву свій коефіцієнт сусідства, і він більший за енергетичний — 40 % проти 25 %. Це головне число водяного контуру: щільна зона гріється швидше, ніж посилюється, тому розкладання, яке піднімає потужність, піднімає й ціну охолодження.
Це саме ділення й обмежує нагрів згори:
нагрів на стелі HV → 512 × (4 × 0,8) / (6 × 0,5 = 546 од./т
Щільна кімната на стелі гріється 500…546 одиниць за такт, і вище 546 не підіймається жодна.
Велика кімната дає не потужність, а автономність. Усе, що переросло 512 EU/FE/т, віддає однакові 512 EU/FE/т; росте лише час між заправками. Апетит кімнати при цьому однаковий на будь-якому розкладанні, що досягло стелі: 256 стрижнів = 128 уранової руди на годину. Числа за розкладаннями —
Тепло зводиться щотика, навіть коли реактор зупинений: охолодження зобов'язане працювати, інакше «заглушити й почекати» не було б способом урятуватися. Повна шкала зупиненого реактора стікає в нуль за 395 тиків (19,8 с). За позначкою кімната починає плавити власну начинку (див. «Розплавлення»), а шкала, що дійшла до 100 %, запускає зворотний відлік аварії.
Керування: редстоун і глибина
| Орган | Що робить |
|---|---|
| Редстоун-сигнал на контролері | є — реактор працює, знято — аварійний стоп |
| Повзунок глибини | п'ять ступенів 0 / 25 / 50 / 75 / 100 %; 0 % — той самий стоп, але зсередини екрана |
Більше органів керування немає навмисно: два — це рівно стільки, скільки вміщується в голову гравця, що стоїть у димному залі.
Повзунок працює на будь-якому масштабі: він ріже вже затиснуту стелею величину, тому 50 % на шарі 3×3 дають 256 EU/FE/т — і рівно вдвічі менше тепла, води й урану на годину.
Охолодження: вода — єдине, що остуджує працюючу кімнату
Поки реакція йде, оболонка не скидає тепла взагалі. Усе, що не забрала вода, лишається на шкалі, тому реактор без води гріється до самого верху — і там запускає зворотний відлік. Вироблення від води не залежить: сухий реактор віддає ті самі EU/FE й витрачає те саме паливо, просто йде до аварії. Як швидко — вирішує лише потужність:
| Активна зона | Нагрів, од./т | Без води до 70 % | Без води до 100 % | Вода, мБ/т |
|---|---|---|---|---|
| 1 колона (4 стрижні) | 16 | 438 т (22 с) | 625 т (31 с) | 8 |
| 2 колони поряд | 57 | 123 т (6 с) | 176 т (9 с) | 29 |
| 3 в ряд (12 стрижнів) | 124 | 57 т (3 с) | 81 т (4 с) | 62 |
| 6 блоком 2×3 і щільніше | 500…546 | 13…14 т | 19…20 т (1 с) | 250…273 |
Так було не завжди: до оболонка скидала 4 + тепло × 8 / 1000 — до 84 од./т — будь-коли, і кожна слабша зона сідала на свою рівновагу (одна колона на 15 %, дві суміжні на 66 %, вісім стрижнів на 65 % глибини на 40 %). Воду можна було не підводити взагалі, і перший же плейтест вкладки «Пульт» це показав.
Зупинена кімната остигає сама — за тією самою кривою 4 + тепло × 8 / 1000: знятий важіль, глибина 0 %, скінчене паливо. Інакше «заглушити й почекати» перестало б бути способом урятуватися.
Вода щотика забирає все тепло реакції і понад те — двадцяту частину вже накопиченого:
тепло реакції = запитано > 0 ?: 0
вода, мБ = ceil((тепло реакції + ceil(тепло / 20)) / 2) (округлення ВГОРУ)
знято = скипіло × 2
стік оболонки = реакція йде ? 0: 4 + тепло × 8 / 1000
тепло(t+1 = clamp(тепло + тепло реакції − знято − стік, 0, 10000)
Перший доданок тримає шкалу, другий опускає її після засухи. Порога немає ні в того, ні в іншого: колишній контур вмикався лише з 60 % шкали й знімав тепло кроками по дві одиниці, тому ядро, що стояло на лінії, перетинало її кожні кілька тактів, і шкала блимала 59/60 %.
Реактору, якому вистачає води, шкала показує нуль, і смуга порожня. Жовта зона означає, що вода не справляється, а плашка «УВАГА» спалахує ще раніше — щойно вода забирає менше 95 % тепла реакції.
Кип'ятить контролер, а не колона: він проходить по своєму списку колон і просить у кожної стільки, скільки ще не набрав. Чого не вдалося скип'ятити — лишається теплом і йде на шкалу.
Перезбирання стопок
Щотика контролер дає лад рідинам усередині кожної неперервної вертикальної стопки колон: уся вода збирається знизу, уся пара — згори. Стопка тим самим поводиться як одна посудина, і труба, встромлена в будь-який її блок, наповнює її цілком.
⚠️ Колони, що стоять пліч-о-пліч, не пов'язані. Теплоносій, що з'являється всередині стійки, до якої нічого не підведено, читається як баг, хоч би який зручний він був.
Голий режим: реактор без кімнати
Контролер, у якого кімната не склалася, не бездіє. Якщо до нього фізично прилягають заряджені стійки, він береться вести їх напряму. Це другий повноцінний режим роботи, а не аварійний стан.
Зв'язок мусить бути фізичним. Контролер крокує назовні від себе по суміжних стійках і блоках з екранувального сплаву — тобто і по недобудованій оболонці теж. Відкрита земля реакцію не проводить: колона, що стоїть за три блоки через порожнечу, не вважається частиною реактора, скільки б її не було. — межа довжини обходу, а не радіус пошуку.
Це правило з'явилося після плейтесту: раніше пошук йшов радіусом, і контролер на голій землі займався від колони через проміжок. Виглядало це як передавання енергії повітрям. Впритул — працює, і це рівно те відчуття, яке потрібне.
Небезпека не вимикається повним буфером. Паливо витрачається лише тоді, коли енергія затребувана (і це правильно), але реакція йде незалежно від того, чи купує хтось струм. Тому псування блоків зав'язане на «реактор не заглушений і в ньому є паливо», а не на вироблення поточного тика — інакше його можна було б вимкнути, просто відключивши споживачів. Випромінювання поводиться так само і завжди поводилося.
| Загерметизована кімната | Голий режим | |
|---|---|---|
| Як знаходить стійки | обхід по стінах, межі задає кімната | обхід по суміжних стійках і блоках з екранувального сплаву |
| Потужність | повна, росте з розміром кімнати | від тієї самої розстановки і не вище за |
| Нагрів і вода | повна теплова модель, контур охолодження | немає: голому реактору нічого охолоджувати, і шкал нагріву й води на панелі в нього немає |
| Повзунок глибини | працює | ігнорується — стрижні завжди опущені |
| Куди йде EU/FE | через розетки reactor_outlet у стіні | просто з граней контролера — розетка в голому режимі мертва |
| Небезпека | розплавлення начинки за позначкою перегріву | плавить округу, поки працює |
| Випромінювання | тримають стіни | б'є по окрузі безперешкодно |
Єдине керування, яке голий реактор слухає, — редстоун. Знятий сигнал глушить його повністю, і це робоча тактика: щоб спокійно добудувати оболонку навколо живого ядра, досить смикнути важіль.
Повзунок глибини навмисно не показаний і не діє. Приховано працюючий повзунок був би пасткою: кімната з виведеними стрижнями, у якої вибили стіну, мовчала б, нічого про це не повідомляючи.
Потужність урізана двічі — часткою і стелею, — і обидва обмеження потрібні. Частка робить голий реактор слабшим за побудований; стеля не дає відповісти на це, просто наваливши більше стрижнів. Без стелі достатньо велика купа переграла б кімнату, і оболонка з контуром охолодження перетворилися б на прикрасу.
Хто чиї стійки палить
Два контролери поряд з однією купою стійок порахували б її кожен цілком — це енергія з повітря. Правил два, і обидва розв'язуються одним скануванням, без жодного обліку на диску:
Стійки всередині чужої загерметизованої кімнати не видні нікому ззовні. Голий контролер, поставлений біля чужого працюючого реактора, не зможе з нього годуватися. Між двома голими контролерами стійка дістається ближчому. Нічия розв'язується за координатами, а не за самою лише дистанцією: правило, яке кожна сторона рахує по-своєму, віддало б стійку обом.
Відома щілина: контролер у невивантаженому чанку не видно, тому стійка на дальньому краю межі чанків може недовго рахуватися двічі. Це кілька EU/FE за тик до підвантаження сусіда; закривати її примусовим завантаженням чанків — ліки гірші за хворобу.
Розплавлення: ціна перегріву
За позначкою загерметизована кімната починає плавити власну начинку: підлогу, звичайні труби і все, що гравець заніс усередину. Першою завжди гине звичайна рідинна труба, хоч би де вона стояла: це та частина, яку збирають з уже наявного під рукою, і саме тому вона найкраще пояснює, що пішло не так.
Оболонка при цьому ціла. Обшивка, скло, двері, ввід, вивід і сам контролер стоять на кільці зовні внутрішності й у вибірку не потрапляють узагалі. Рівно заради цього кімнату й будували: аварія лишається всередині.
Стійки з паливом теж цілі. Вони зібрані на екранувальній пластині, і деталь, скрафчена, щоб пережити реактор, переживає і його аварію. Уран усередині не втрачається — розплавлення забирає в гравця обв'язку й час, а не запас палива.
Кожен розплавлений блок забирає тепла, тому розплавлення саме себе обмежує — кімната з'їдає свої нутрощі й по ходу остигає. Гравець втрачає начинку й паливо в ній, але отримує оболонку, яку можна переоснастити, а не вирву.
Поки це відбувається, заголовок панелі показує «Розплавлення активної зони» замість геометричного вердикту: цілком ціла оболонка в цей момент каже правду, і це найменш корисна правда з можливих.
Псування блоків: як це виглядає
Обидва режими псують блоки однаково і завжди попереджають заздалегідь — точково, біля самого блока.
- Блок обрано. У нього спалахують полум'я й дим, чути шипіння.
- Минає (дві секунди). Встигнути відійти або зняти те, що на ньому стоїть, —
рівно та різниця між небезпекою й покаранням.
- Блок стає джерелом лави. Вибір віддає перевагу клітинкам, над якими повітря: куля
навколо стійки наполовину йде під землю, і без цього правила більша частина псування невидимо вигризала камінь під ногами, а видимий слід виглядав удвічі вужчим за заявлений радіус. Якщо гравець за цей час його виламав, нічого не відбувається: вибір переперевіряється, а не виконується наосліп.
Що не плавиться в жодному режимі: повітря, усе з рідиною всередині (зокрема затоплені блоки — вода зупиняє лаву всюди, і затопити приміщення це чесна тактика), і все незруйновне — перевіряється за властивістю блока, а не за списком імен, тому чужий мод зі своїм бедроком поважається сам собою.
Що не плавиться ніде й ніколи: усе, що зібрано з екранувального сплаву. Це блоки реактора — обшивка, скло, двері, ввід, вивід, лампа, кнопка, стійки й контролер — і екрануюча скриня. Правило саме таке: «зроблено з екранувального сплаву — не плавиться», а не «належить реактору». Список живе тегом блоків, і датапак може його доповнити. Без цього «гола станція як довгострокова стратегія» була б не вибором, а бікфордовим шнуром. Усе інше в радіусі — кабелі гравця, його труби, скрині й земля під ногами — ціль законна, і це і є ціна зрізаного кута.
Радіус у голому режимі рахується від кожної зарядженої стійки, а не від контролера. Контролер — це мозок, небезпечне паливо; випромінювання вже рахує так само, тому обидві механіки відповідають на питання «як далеко небезпечно» однаково. Рахувати від контролера було помилкою, яку видно зі зворотного боку реактора: він стоїть у стіні, половину кулі займає власний невразливий корпус, і все псування лягало з того боку, куди він дивиться.
⚠️ Лава тече. Розплавлений блок стає джерелом лави, а вона розтікається за ванільними правилами — до трьох блоків убік і вниз без обмеження. Один розплавлений блок це не одна втрата, а калюжа; крізь дірки в недобудованій оболонці лава затікає всередину. Це свідома суворість, але будувати голу станцію впритул до того, чого шкода, не варто.
⚠️ Блок під гравцем або мобом не захищений. Суворість свідома: загинути через неуважність посеред уже наявної аварії можна, і пропусків позицій заради безпеки немає.
Повністю вимикається ключем. Вимкнений лишає всі попередження на місці — звук, частинки, статус, — але не змінює жодного блока: ключ захищає світ, а не ховає стан реактора.
Аварія на ста відсотках
Шкала нагріву, що дійшла до верху, більше нічим не закінчується — вона запускає зворотний відлік. Заголовок панелі змінюється на «АВАРІЯ», під ним з'являється спадна червона смуга, і сирена звучить до самого кінця.
Смуга без цифр навмисно. Тривалість випадає випадково, від двох до трьох хвилин на кожну аварію: фіксований строк гравці вивчили б напам'ять за тиждень і перестали б читати панель. Смуга чесно каже «часу дедалі менше» і не каже, скільки саме.
Скасувати можна до останнього тіка — точки неповернення немає. Два способи, і обидва зводяться до одного: шкала має зійти зі сотні й протриматися внизу п'ять секунд.
- подати воду в контур;
- смикнути важіль (скрам).
Пробити стіну — не спосіб, хоча раніше панель його радила. Кімната впаде в голий режим, а в голого реактора своя шкала: від 14 стрижнів нестабільність розганяється до сотні приблизно за 20 секунд і запускає новий відлік — уже без контуру, який міг би допомогти.
П'ять секунд — не прискіпливість, а захист від очевидного обходу. Тепло притиснуте до стелі шкали, тож одного тіка без сигналу досить, щоб прилад прочитав 99 %. Поки відлік знімався за миттєвим значенням, редстоун-таймер із одним вимкненим тіком із двадцяти давав реактору 95 % потужності й цілковиту невразливість. Тепер відлік на час «просідання» завмирає, а скасовується лише якщо ядро протрималося внизу все вікно; повернулося до сотні хоч на тік — накопичене згоряє. Будь-який чесний спосіб укладається з великим запасом, блимання сигналом не дає нічого.
Повний буфер до цього списку не належить. Реактор, якому нікуди дівати енергію, не зупиняється: реакція йде, шкала росте, і без охолодження він дійде до вибуху так само. Змінюється тільки одне — уран при цьому не витрачається, бо паливо списується за віддану енергію. Реактор, забутий увімкненим із повним буфером, гріється безкоштовно й вибухає задарма.
Сила вибуху росте від кількості стрижнів і впирається в стелю. Числа — у цілком (усередині все випалено, назовні не зачеплено жодного блока), велику станцію — уже ні. Заради цього стіни й коштують стільки, скільки коштують.
Після вибуху лишається вирва, лава в епіцентрі, розкиданий зі стійок уран і заражена земля — але тільки там, куди вибух справді дотягнувся. Вимикач прибирає аварію цілком, лишаючи відлік, звук і напис на панелі.
Нестабільність голого реактора
У реактора без кімнати немає ні нагріву, ні води — зате є нестабільність, і її видно на панелі окремим рядком. Росте вона від кількості стрижнів у купі й сама ж спадає, тож у кожного розміру є
| Стійок у купі | Де стане | Що це означає |
|---|---|---|
| 1 | ~29 % | стоїть вічно |
| 2 | ~59 % | стоїть вічно |
| 3 | ~89 % | межа: працює вічно, але панель у червоному |
| 4 і більше | рівноваги немає | розгін до ста й той самий відлік |
Звідси й правило лавової ферми: три стійки — максимум, який можна лишити працювати без нагляду. Четверта перетворює ферму на бомбу, і панель показує це заздалегідь.
Інтерфейс
Тип: екран без жодного слота і без інвентарю гравця — контролер читають, а не завантажують. Слотів немає навмисно: порожні слоти запрошували б до нього лійки. Ряди інвентарю гравця займали б нижню половину панелі, і клацання по них нічого не робило б. Панелі покращень немає: контролер не машина-переробник, і чотири приховані слоти під покращення були б обіцянкою того, чого він не вміє. Стрілки прогресу немає: у реактора немає операції, яка «йде».
Екран із вкладками. Панель 236×184, уздовж її лівого краю — вкладки на спрайтах екрана досягнень самої гри: у кожної іконка-предмет і підказка з назвою. Вкладки з'являються по одній, і порожніх вкладок «на майбутнє» немає. Зараз вкладок чотири — «Пульт», «Кімната», «Активна зона» і «Контур». На закритій вкладці може горіти мітка: червона означає тривогу, жовта — увагу. Остання відкрита вкладка запам'ятовується до перезапуску гри.
Шапка однакова на всіх вкладках: назва вкладки, плашка стану праворуч і під нею смуга відліку аварії без цифр. Плашка вибирається по черзі — перемагає перший стан, що підходить:
| Плашка | Коли |
|---|---|
| АВАРІЯ | іде зворотний відлік |
| РОЗПЛАВ | кімната плавить свою начинку |
| БЕЗ ОБОЛОНКИ | кімната не зібрана, але сканування знайшло стійки |
| БУДОВА | кімната не зібрана, стійок немає |
| УВАГА | нагрів на лінії попередження або вище, вихлоп пари забитий, або вода забирає менше 95 % тепла реакції |
| СТОЇТЬ | кімната зібрана, вироблення нуль |
| ПРАЦЮЄ | усе інше |
Відлік важить більше за розплав, бо тільки в нього є строк. «Увага» важить більше за «стоїть»: поки реакція йде, оболонка тепла не скидає, і реактор, якому бракує води, іде до аварії, продає він енергію чи ні. Раніше повний буфер показував такий реактор сірим «СТОЇТЬ». Зупинена кімната води не витрачає й недоохолодженою не вважається.
Вкладка «Пульт»
Вкладка показує реактор в одній із трьох форм — ніколи у двох одразу.
| Форма | Коли | Що на ній |
|---|---|---|
| Робота | FORMED | шкала нагріву з мітками; «Вихід» (EU/FE/т або причина простою червоним) і «Буфер»; «Вода» з витратою і «Пара»; «Стрижні»; повзунок глибини й кнопка СТОП; порада |
| Без оболонки | не FORMED, сканування знайшло стійки | шкала нестабільності; «Вихід», «Буфер», «Стрижні»; замість повзунка — пояснення, що такий реактор глушиться лише сигналом редстоуну; порада |
| Будова | не FORMED, стійок немає | вердикт сканера червоним; кнопка «Відкрити «Кімнату»» — мапа, чек-лист і місце проблеми на тій вкладці; «Буфер»; порада з тим, що виправити |
Мітки на шкалі нагріву — попередження (70 %) і початок розплаву (85 %), із числами під ними. Мітки цілі контуру (60 %) більше немає: реактор із водою стоїть біля нуля шкали, і лінія, біля якої він раніше тримався, перестала щось описувати. Її канал тепер несе частку тепла, яку забрала вода. Числа приходять каналами із сервера, а не читаються з конфігурації клієнта. Конфігурація на клієнт не синхронізується, тому на сервері зі зміненим балансом мітки інакше стояли б не там, де реактор діє. Перша редакція екрана саме так і помилялася: жовтий колір шкали брався з конфігурації клієнта. Колір смуги — зелений до попередження, жовтий до розплаву, червоний вище.
Поруч із підписом нагріву — стрілка тренду: угору, якщо за останні дві секунди нагрів виріс на 2 % і більше, униз — якщо на стільки ж упав. Реактор, що стоїть на своїй рівновазі, коливається на відсоток в обидва боки, і стрілка, що блимає разом із ним, перестала б щось означати. Перші дві секунди після відкриття екрана стрілки немає: порівнювати ще нема з чим.
Пара — окрема шкала. З 90 % підпис змінюється на «вихлоп забитий», а шкала жовтіє. Із забитим вихлопом смуга води стоїть заспокійливо повною, поки нагрів росте: вода на місці, а кипіти нікуди. Раніше про це казав лише жовтий колір смуги води, і ніде на екрані не було сказано, що він означає.
Глибина стрижнів — ванільний повзунок із кроком 5 % і кнопка СТОП, яка ставить глибину 0 %. Значення йде на сервер одним запитом: коли повзунок відпускають або коли натискають стрілку на клавіатурі. Канал — ванільні кнопки контейнера, номер кнопки і є глибина у відсотках. Запитане значення тримається на екрані до відповіді сервера, але не довше двох секунд. Без цього число відскакувало б назад під час перетягування, а без межі відхилений сервером запит лишився б на екрані назавжди.
Повзунок і СТОП показані лише в зібраної кімнати. Голий реактор глибину ігнорує, а орган керування, який виглядає живим і нічого не робить, — рівно та пастка, від якої відмовилися, запроваджуючи голий режим. Клацання там, де був би повзунок, в інших формах нічого не рухає — повзунка там просто немає.
Порада — темне поле внизу вкладки: заголовок у кольорі стану і що зробити. Якщо переклад довгий, текст зменшується цілком, а не обрізається посеред фрази.
| Стан | Що каже порада |
|---|---|
| відлік | зійти з верхівки шкали й протриматися внизу кілька секунд; способи за номерами — вода й важіль (у голого реактора — важіль і розбір стійки: води в нього немає) |
| розплав | зменшити глибину або подати воду; називає поріг розплаву |
| без оболонки | блоки навколо стійок плавляться; з 80 % нестабільності — тривога «Межа нестабільності» |
| будова | що виправити для цього вердикту сканера; де — на вкладці «Кімната» |
| вихлоп забитий | перевірити парову насадку |
| немає води | без води реактор ніщо не охолоджує, і він дійде до аварії; підвести воду через реакторний ввід |
| перегрів | вода не забирає все тепло; додати ще одну лінію води або зменшити глибину |
| бракує води | називає частку тепла, яку забирає вода: решта гріє реактор |
| стоїть | як виправити саме цю причину простою |
| норма | вода забирає все тепло |
«Немає води» — попередження за будь-якої температури. Поки працюють стрижні, ніщо, крім води, реактор не остуджує, тому суха кімната йде до аварії з першого такту. Вода, що забирає 95 % тепла й більше, вважається достатньою: подача, яка запізнюється на мілібакет в окремі такти, не повинна блимати плашкою.
Підказки під час наведення є в шкали нагріву (що означає кожна мітка, в її кольорі), виходу, буфера (точний заряд в EU/FE), води, пари, нестабільності, повзунка й кнопки СТОП.
Рядок «Вихід» ніколи не показує прочерк. Зібраний, заправлений і мовчазний реактор — найгірший стан цієї машини, і в кожної його причини свій спосіб лагодження, тому замість нуля там друкується причина простою червоним: «оболонка не замкнена», «немає стрижнів», «стрижні підняті», «немає сигналу», «буфер повний». Прочерк лишав гравця гадати між п'ятьма різними несправностями.
Кожен рядок — мітка і значення, виміряні окремо. Значення зберігає розмір: заради нього рядок і читають. Мітка зменшується в місце, що лишилося. Це прямий наслідок першої редакції екрана: там мітка і значення були одним рядком, і російський текст наїжджав на піктограму.
Вкладка «Кімната»
Вкладка для будови: оболонка згори, перевірки сканера по черзі й що виправити.
Незібрана кімната відкриває екран одразу на «Кімнаті». Рішення ухвалюється на першому такті після того, як із сервера прийшли канали, а не під час відкриття екрана: свіже меню читає нулі, а нуль — порядковий номер зібраної кімнати. Ознака приходу — канал найбільшої кімнати: сервер надсилає його завжди, і нулем він не буває. Якщо гравець уже сам вибрав вкладку, вибір не чіпається, і «Кімната» не стає вкладкою, на яку він повернеться наступного разу. Мітка на ярлику вкладки — червона, поки оболонка будується, жовта в голому режимі.
Мапа згори. Клітинка — стовпець блоків, північ угорі, схід праворуч. На мапі кільце оболонки, внутрішній об'єм, контролер (помаранчевий) і блимаючі клітинки проблем — у пролому всі дірки, до 12 за координатами. У клітинці підписано висоту дірки відносно контролера («+2»): згори підлогу від стелі не відрізнити. Якщо в одному стовпці кілька дірок, клітинку підписано «×2», а підказка під час наведення перелічує кожну. Поле під мапою в пролому з кількома дірками називає їхнє число замість напрямку до першої; якщо дірок більше за 12 — ще й скільки з них на мапі. Орієнтація за сторонами світу, а не «від лиця контролера»: напрямки в тексті — «4 на схід, 2 вгору» — теж за сторонами світу, а мапа, що повертається разом із контролером, у половини кімнат малювала б схід ліворуч. Розмір клітинки підбирається під кімнату: 5×5 не малюється марочкою, а оболонка 15×15 — кімната на блок більша за межу — влазить цілком. Під час наведення клітинка проблеми називає напрямок до кожної своєї дірки, клітинка контролера — що це контролер.
Поки промені сканера не знайшли всі шість стін, оболонки на мапі немає: лише контролер і клітинка проблеми, а в ROOM_UNBOUNDED під мапою написано «Стіни не знайдено».
Чек-лист — перевірки сканера в тому порядку, у якому він їх виконує:
| # | Рядок | Статус, який його валить |
|---|---|---|
| 1 | Контролер дивиться в кімнату | CONTROLLER_NOT_IN_WALL, кімнату не виміряно |
| 2 | Усі шість стін знайдено | ROOM_UNBOUNDED |
| 3 | Усередині 3–12 | TOO_SMALL, TOO_LARGE |
| 4 | В оболонці немає дір | BREACH |
| 5 | Контролер у стіні, не в ребрі | CONTROLLER_NOT_IN_WALL, кімнату виміряно |
| 6 | Один контролер | SECOND_CONTROLLER |
| 7 | Двері, якщо є, стоять на підлозі | NO_DOORWAY |
| 8 | Скла не більше 30% | TOO_MUCH_GLASS |
Рядки до проваленого позначено ✓, провалений — ✗ на підсвіченому тлі, рядки після нього — «·»: до них сканер не дійшов. Чек-лист відповідає й на «що вже пройдено»: гравець, який лагодить кімнату поблоково, бачить, як червоний рядок сходить униз, а одиночний червоний вердикт не показував, що розмір був у порядку від самого початку.
Чому «контролер не в стіні» — два рядки. Сканер видає цей статус із двох різних місць. До променів — клітинка перед лицем контролера зайнята: нічого не виміряно, це перша перевірка. Під час і після обходу периметра — контролер стоїть у підлозі, стелі чи ребрі: на цей момент промені вже виміряли кімнату, стіни й розмір пройдено. Розрізняє випадки те, чи виміряно кімнату. Один рядок із ✗ угорі над двома рядками, про які відомо, що вони пройдені, казав би неправду. Один виняток із «усе до провалу пройдено»: контролер у підлозі чи стелі виявляється посеред обходу периметра, тому рядок «В оболонці немає дір» у цьому випадку лишається «·», а не ✓.
Порядок рядків звіряється зі справжнім сканером: L1-тест будує кімнати одразу з двома дефектами й вимагає, щоб сканер назвав дефект ранішого рядка.
Межі в рядках приходять каналами із сервера, як мітки нагріву: конфігурація на клієнт не синхронізується, і чек-лист із локальними 3…12 на сервері з іншими межами показував би не ті числа.
Звідки мапа знає стіни. Канали несуть розмір внутрішнього об'єму й зміщення його західного й північного краю від контролера, а в пролому — число дірок і зміщення перших 12, по три канали на дірку. Не упаковані в один канал: у межі розміру кімнати в конфігурації немає стелі, і упаковане зміщення на великій кімнаті переповнилося б. Раніше невдалий скан викидав виміряну кімнату, і в пролому розмір приходив нулем. Тепер кожен вердикт, знайдений після променів, — розмір, дірка, неправильно поставлений контролер чи двері, скло — несе кімнату, у якій його знайдено.
Поле під мапою — таке саме темне поле, як порада на «Пульті»: вердикт у кольорі стану, що виправити і де. У зібраної кімнати — «Кімната герметична» й відсилання до «Пульта», де реактором керують.
Прочерк замість нулів. Поки кімнату не виміряно, у рядку розміру стоїть «не виміряно», а не «0 × 0 × 0». Нуль — це теж вимір, і показувати його там, де виміру не було, означає брехати; прочерк чесно каже «нема чого показати». Те саме з місцем проблеми: напрямок друкується лише для тих станів, які справді вказують на блок; для NO_DOORWAY «місце» — це сам контролер, і зміщення було б шумом.
ROOM_UNBOUNDED напрямку не показує, хоча технічна позиція в нього є. Це правка після ігрового тесту: «місце» такого статусу — точка, де здався промінь, до 13 блоків у чистому полі, і самотній контролер, що димить у схил пагорба, виявився гіршим за мовчання. Він вказував туди, де лагодити нічого.
Місце — це напрямок, а не координати. Зміщення рахується від самого контролера і звучить як «4 на схід, 2 вгору»: гравець, який читає екран, стоїть біля контролера, і така фраза приводить його до потрібного блока швидше, ніж три числа. Осі з нульовим зміщенням пропускаються — пролом прямо над головою читається як «2 вгору», а не «0 на схід, 2 вгору, 0 на південь». Технічно це ще й єдиний можливий варіант: канал синхронізації меню передає 16-бітне знакове число, абсолютна координата світу в нього не влазить, а зміщення за побудовою не перевищує ±14.
Ззовні стан теж видно: у сформованої кімнати лицьова грань контролера світиться (блокстейт formed), у несформованої — темна. Перевірити споруду можна, не відкриваючи екран.
Вкладка «Активна зона»
Вкладка показує активну зону згори: одна клітинка — один вертикальний стос колон. Стос — одна посудина для води й пари, тому й читається він як одне ціле. Сітку зорієнтовано так само, як мапу «Кімнати»: північ угорі, схід праворуч.
Клітинка — як комірка інвентарю. Стрижні намальовано стовпчиками за середньою колоною стосу: яскраві — заряджені, темні — порожні оболонки. Під ними — смужка зносу в стилі міцності предмета: зелена у свіжих стрижнів, через жовту до червоної у вигорілих, за середнім зносом стосу. Якщо в стосі більше однієї колони, у куті клітинки підписано їхнє число — якщо клітинка не дрібніша за 9 пікселів, тобто в зонах до 9×9. Розмір клітинки підбирається під зону: зал 12×12 вміщується цілком, а два стоси не роздуваються на всю сітку. У зонах від 9×9 клітинка замала для чотирьох стовпчиків, тож вона малюється однією заливкою: зеленою, якщо в стосі є паливо, темною, якщо лише порожні оболонки, — з лінією зносу внизу.
Найщільніший стос позначено червоним квадратом у куті клітинки. Тепла окремо по колонах у моді немає — воно одне на всю кімнату, — тому позначка стоїть не на «найгарячішому», а на стосі, у колон якого найбільше заправлених сусідів за шістьма напрямками. Бонус сусідства рахується на всю кімнату: кожна пара піднімає вироблення й нагрів усього реактора, а вироблення ділиться між усіма стрижнями порівну. Тому позначка показує, де цей бонус набирається, а не стос, який гріється сильніше. Стійка, у якій самі лише порожні оболонки, сусідом не вважається. За рівності перемагає перший за порядком: найпівнічніший, а серед них — найзахідніший.
Панель праворуч — подробиці вибраного стосу: колон, ТВЕЛів (заряджено з місць), порожніх оболонок (жовтим, якщо є), знос — середній і найгірший, залишок енергії, заправлених сусідів, вода й пара стосу. Клацання по клітинці вибирає стос. Поки нічого не вибрано, показується стос, який міняти першим, а якщо міняти нічого — найщільніший. Вибір прив'язано до місця стосу відносно контролера, а не до кута зони: коли голий реактор втрачає найзахіднішу стійку і кут зони зсувається, вибраним лишається той самий стос.
Під сіткою — зведення по зоні (стосів, заряджених ТВЕЛів, середній знос) і рядок «Міняти першим»: стос із найбільш зношеним стрижнем, причому порожня оболонка вважається зношеною повністю; за рівності — найпівнічніший, потім найзахідніший. Поки жоден стрижень не зношений, рядок каже, що міняти нічого. Мітка на ярлику вкладки — жовта, поки хоча б в одній стійці лежать порожні оболонки.
| Стан | Що на вкладці |
|---|---|
| Кімнату зібрано | сітка за внутрішнім об'ємом кімнати |
| Голий режим | сітка за габаритом усіх стійок, до яких дійшов обхід, — і заправлених, і з самими лише порожніми оболонками |
| Кімнату зібрано, колон немає | сітка порожніх комірок і «У кімнаті немає колон» |
| Кімнату не зібрано, стійок немає | «Зберіть кімнату, щоб побачити зону» |
Дані — окремим пакетом, а не каналами меню. Канал меню — 16-бітне число, а зона — до кількох сотень стосів по півтора десятка чисел. Пакет reactor_zone іде лише гравцеві з відкритим екраном цього контролера: надсилання висить на меню, а його ваніла викликає лише для відкритого екрана. Не частіше ніж раз на секунду й лише якщо знімок змінився; перший знімок іде одразу під час відкриття. Колона, поставлена чи зламана, з'являється в знімку після найближчого сканування кімнати. Стоси складає сервер, тому в пакеті не більше одного запису на клітинку зони — до 289, це площа 17×17, далі якої голий реактор у радіусі пошуку 8 не розходиться. Кімната, ширша за 17 клітинок (у межі розміру кімнати в конфігурації немає стелі), показується своїм північно-західним кутом 17×17; сусіди через край зрізу при цьому рахуються. Координати в пакеті — зміщення: стосів — від кута зони, кута — від контролера. Абсолютних позицій світу сервер не віддає.
Залишок енергії рахується тією самою арифметикою, якою стрижні витрачаються: решта поділок міцності, помножена на EU/FE за поділку. Другої формули на екрані немає, тому вкладка не пообіцяє енергію, якої стійка не віддасть.
Вкладка «Контур»
Вкладка показує водяний контур згори тією самою сіткою, що й «Активна зона»: одна клітинка — один вертикальний стос колон. Стос, вибраний на одній із цих двох вкладок, вибраний і на іншій.
У клітинці два стовпчики пліч-о-пліч: ліворуч вода, праворуч пара, обидва ростуть від дна клітинки. Це два різні баки, і в один стовпчик вони не складаються: повний бак пари, схований за повним баком води, — рівно та несправність, заради якої вкладку зроблено. Пара жовтіє, коли вихлоп стосу вважається забитим; під стовпчиком води сухого стосу — червоне дно. У клітинках від 12 пікселів несправний стос ще й позначено квадратом у куті: жовтим — забитий вихлоп, червоним — немає води; у дрібніших клітинках квадрат закрив би самі стовпчики, і несправність там видно за їхнім кольором.
Сухий стос — хоча б в одній його посудині немає жодного мілібакета води і за останню секунду вона не віддала реакції ані краплі. Цівка води — це вже не сухий стос: вона кипить, і посилати гравця її лагодити нема чого. Не сухий і стос, який реакція щотакту википає досуха, а труба знову доливає: контролер википає колони за порядком свого списку, труба доливає на своєму такті, і в момент знімка такий стос може тримати 0 мБ — але він працює. Вихлоп забитий — пара в посудині зайняла 90 % місця й більше: вода є, але кипіти їй майже нікуди. Це та сама межа, на якій жовтіє шкала пари на «Пульті». Посудина — неперервна за висотою ділянка стосу, так їх перезбирає контролер; клітинка з розривом за висотою — дві посудини, і кожну оцінюють окремо: повна нижня не сховає порожню чи забиту верхню.
Панель праворуч — вибраний стос: колон, вода й пара в мілібакетах від місткості зі смужками і стан — «Гаразд», «Сухий» або «Вихлоп забитий». Поки нічого не вибрано, показується перший стос із забитим вихлопом, якщо таких немає — перший сухий, а якщо немає й сухих — перший стос зони.
Під сіткою — зведення: скільки стосів сухих, у скількох забитий вихлоп і скільки води реактор википів за останній такт. Нижче — порада, перша, що підходить, по черзі:
| Що в контурі | Порада |
|---|---|
| Голий режим | «Без оболонки контуру немає»: стійки без кімнати воду не гріють і її не потребують |
| Кімнату не зібрано | «Кімнату не зібрано»: що виправити, підкаже вкладка «Кімната» |
| Кімнату зібрано, колон немає | «У кімнаті немає колон» |
| Вихлоп забитий хоча б в одного стосу | «Парі нікуди виходити»: названо стос, перевірити парову насадку над ним — перед розтрубом потрібне повітря |
| Води немає ні в одному стосі | «У контурі немає води»: підвести воду через реакторний ввід |
| Є сухий стос | «У стосі немає води»: названо стос; колони, що стоять пліч-о-пліч, водою не діляться |
| Вода забирає менше 95 % тепла | «Контур не справляється», з часткою тепла |
| Усе в порядку | «Контур у порядку» |
Забитий вихлоп стоїть першим: пара, якій нікуди піти, зупиняє кипіння навіть у стосі, куди труба доливає воду, і підводити воду раніше марно. Сухий стос поруч із мокрими — майже завжди саме та помилка обв'язки, тому порада називає стос, а не кімнату. Друга причина — лінія води, яка не встигає: контролер випаровує воду з колон за порядком свого списку, і стос, чия труба відстає, зрештою пересихає, — тому порада пропонує перевірити й лінію. Зона, ширша за 17 клітинок (межу розміру кімнати в конфігурації піднято вище заводської), оцінюється за показаним північно-західним кутом: стоси за краєм зрізу до зведення й поради не потрапляють.
Мітка на ярлику — червона, коли є сухий стос або забитий вихлоп і вода вже забирає менше 95 % тепла реакції: тепло накопичується. Жовта — несправність є, але тепло поки йде. Контур, що не справляється, без сухих і забитих стосів позначає «Пульт».
Дані — той самий пакет reactor_zone. До кожного стосу додано воду й пару в мілібакетах із місткостями та два прапорці; несправності оцінює сервер за баками колон, клієнт нічого не перераховує. Витрата води — канал меню, який і так показує «Пульт». Числа з конфігурації на вкладку не виводяться: конфігурація на клієнт не синхронізується.
Зворотний зв'язок у світі
Одного тексту мало на кімнаті з тисячі блоків, тому контролер відповідає ще й звуком із частинками.
| Подія | Що відбувається |
|---|---|
| Кімната зібралася | звук ковадла біля контролера + 12 частинок над ним |
| Кімната розвалилася | звук згасання маяка у місці пролому, рівно один раз |
| Поки проблему не виправлено | 16 частинок диму в проблемній клітинці при кожному скануванні; у пролому — над кожною з перших 12 дірок |
Звук поломки грає лише на переході, а не в циклі — це принципово. Сигнал тривоги, що повторюється раз на дві секунди, з підказки перетворюється на покарання.
Звук збирання — той самий, що в дистиляційної колони при збиранні башти: «мультиблок зібрався» в моді має звучати однаково.
Заливка стану оболонки
Контролер — єдиний, хто ставить блокстейти «зібрано» і «ребро», і ставить він їх усій оболонці, а не собі одному. Він же запалює світло в кімнаті (див. спеку лампи).
| Поле | Значення |
|---|---|
| Що обходиться | клітинки периметра явно заданої коробки |
| Яка коробка при успіху | виміряна цим скануванням; вона ж запам'ятовується |
| Яка коробка при провалі | остання запам'ятована — та, яку контролер колись зарахував |
| Що пишеться | лише клітинки, у яких значення змінилося |
| Світло | у кожній внутрішній клітинці навпроти лампи з'являється блок світла рівня 15 |
Чому коробка передається явно, а не береться з результату скану. Провалений скан коробки не міряє, тому заливка, що йде від результату, фізично вміла лише вмикати прапорець: пробита стіна лишала кімнату безшовною й освітленою, ніби нічого не сталося. Контролер тепер пам'ятає останню зараховану коробку й при провалі гасить її; коробка зберігається, бо чанк може вивантажитися цілим, а завантажитися вже з дірою.
Енергія
| Поле | Значення |
|---|---|
| Роль | виробник, тир HV |
| Буфер (EU/FE) | 200 000 |
| Макс. вхід (EU/FE/такт) | 0 — реактор ззовні не заряджають |
| Макс. вихід (EU/FE/такт) | 512 = стеля HV |
| Грані | усі, крім лицьової, віддають; у лицьової — жодної ролі |
Лицьова грань енергетично інертна: на ній панель, яку читає гравець, і кабель, що вилазить із середини інтерфейсу, зіпсував би і вигляд, і розуміння.
Буфер у 200 000 EU/FE — не накопичувач, а демпфер: мережа, яка не може забрати енергію цієї ж секунди, не повинна зупиняти активну зону посеред тика. На стелі це 391 тик (19,5 с) віддачі. Один електрумний кабель несе 192 EU/FE/т на сегмент, тому реактор, що працює на стелі, випивається трьома незалежними нитками.
Властивості блока
| Поле | Значення |
|---|---|
| Форма | повний куб 16³ (оклюдер) |
| Міцність | 5.0 |
| Вибухостійкість | 30.0 |
| Інструмент | кайло (обов'язкове для дропу) |
| Звук | метал |
| Напрямок | горизонтальний; плюс стан «зібрано» |
Вердикт контролер на диск не пише: кімната і є збереження. Після завантаження світу перше ж сканування виведе стан заново з того, що стоїть навколо.
Зберігається лише те, що зі світу не виводиться: межі останньої зарахованої коробки, накопичене тепло й положення повзунка. Реактор, який забув би їх при вивантаженні чанка, остигав би даремно й самовільно повертався б на повну потужність.
Звук
Коли шкала, за якою судять реактор, переходить поріг попередження, контролер один раз вмикає сирену . У загерметизованої кімнати це нагрів, у голого реактора — нестабільність. Раніше сирена читала лише нагрів, і голий реактор, у якого нагріву немає, проходив увесь відлік аварії мовчки. Її не приглушують ані стіни, ані зачинений шлюз: її чути далеко за межами кімнати, бо призначена вона тому, кого в кімнаті немає. Повторно вона спрацює лише після того, як шкала опуститься нижче (60 %) — тривога, що лунає на кожному коливанні шкали, перестає бути тривогою. Лавова ферма з трьох стійок стоїть близько 90 % нестабільності, тому подає сигнал один раз, під час запуску.
Але зі шкалою, що вперлася в стелю, розмова інша. Поки нагрів тримається на ста відсотках, сирена не змовкає: вона повторюється кожні три-п'ять секунд, врозбій, і припиняється лише тоді, коли температура пішла вниз. Одиничний сигнал там був би найгіршим із рішень — реактор у найнебезпечнішому своєму стані виявився б тихішим за реактор, який просто нагрівся.
Гул колон тримається, поки йде реакція, а не поки реактор продає енергію: повний буфер його не глушить. Раніше гул висів на виробленні, і реактор із повним буфером грав звук зупинки, продовжуючи грітися. Зупинка самої реакції — знятий редстоун, скінчене паливо, підняті стрижні — відгукується власним спадним звуком. Короткий сигнал зібраної кімнати та звук її розгерметизації описані вище, у розділі «Зворотний зв'язок у світі».
Рецепти
Крафт: ×1 за раз.
S C S S = екранувальна пластина ×4
R A R R = посилена екранувальна пластина ×2
S D S C = схема керування реактором ×1
A = просунутий машинний корпус ×1
D = привід керівних стрижнів ×1
Схема керування — окремий предмет: 4 паладієві пластини, резонансна котушка, 2 просунуті схеми, електронна схема й редстоун.
Котушка стала на місце нестабільного ізотопу, який стояв тут у першій редакції. Ізотоп — продукт інкубатора, а інкубаторну гілку з вимог реактора прибрали: вона вела гравця в біологічний розділ мода заради одного предмета.
Прогресія
Тир: HV — виробник до 512 EU/FE/такт. Потребує: екранувальні й посилені екранувальні пластини (ланцюг описано в обшивці), просунутий машинний корпус, просунуті схеми, паладієві пластини, резонансну котушку. Відкриває: власне реакторну кімнату — без контролера набір блоків лишається набором блоків.
Пов'язане
Реакторна обшивка — з чого він сканує кімнату, геометрія й ланцюг крафту. Шлюзові двері — штатний вхід до кімнати; якщо двері стоять в оболонці, вони зобов'язані утворити прохід. Реакторне скло, лампа, реакторний ввід і реакторний вивід — решта блоків, які сканер зараховує як стіну. Реакторна колона — що він палить, кип'ятить і перезбирає. ТВЕЛ і оболонка ТВЕЛ — паливо, яке він зношує, і оболонка, що лишається. Пара — робоче тіло контуру. Парова насадка — кінець контуру; поки вона не працює, шкала пари жовтіє, а нагрів росте. Реакторна кнопка — єдиний блок набору, який сканер як стіну не зараховує. Резонансний ланцюг — звідки береться котушка для схеми керування. Дистиляційна колона та інкубатор — два попередні мультиблоки мода; обидва перевіряють фіксовану форму, об'ємний сканер написано тут уперше.
Крафт
Крафт на верстаку
▶
Контролер реактора