Poradniki / Budowanie i zasoby
Siła sygnału komparatora z pojemników: wzór i pułapka rozmiaru stosu
Skrzynia z jednym przedmiotem daje sygnał 1, ale skrzynia z sześćdziesięcioma trzema też. Wzór wyjaśnia dlaczego — i dlaczego shulkerowe skrzynie oraz wiadra psują każde obliczenie.
Odczyt pojemnika komparatorem to podstawa większości redstone'owych systemów sortowania i automatycznego wytwarzania. Wzór jest krótki, a z niego wynikają wszystkie osobliwości.
Wzór
signal = floor(1 + (sum of fullness across slots ÷ number of slots) × 14)
gdzie zapełnienie każdego slotu wynosi items in slot ÷ max stack size for that item.
Najważniejszy jest 1 +: każda niezerowa zawartość daje co najmniej sygnał 1, a pusty pojemnik to 0. Dlatego wykrycie „czy tu w ogóle coś jest" jest banalne, a wykrycie „dokładnie ile" już nie.
Dlaczego jeden przedmiot i sześćdziesiąt trzy dają po 1
Podwójna skrzynia ma 54 sloty. Jeden stos 64 bruku zapełnia cały jeden slot:
1 + (1 ÷ 54) × 14 = 1 + 0.259 = 1.259 → floor = 1
Potrzebujesz czterech pełnych stosów, zanim wyjście osiągnie 2. Klasyczny detektor pojedynczego przedmiotu działa, bo 1 to dolna granica dla dowolnej zawartości, a nie dlatego, że mierzy jeden przedmiot.
Rozmiar stosu zmienia wszystko
max stack size zależy od przedmiotu i tu właśnie łamią się obliczenia:
| Przedmiot | Stos | Jeden przedmiot daje |
|---|---|---|
| Bruk | 64 | 1/64 slotu |
| Enderperła | 16 | 1/16 |
| Wiadro wody, wagonik, łódka | 1 | cały slot |
W pięciu slotach leja jeden przedmiot niestakowalny — wiadro wody, wagonik — liczy się jako jedna piąta zapełnienia: sygnał 3, podczas gdy jeden bruk daje 1. Cztery takie przedmioty dają 12. Dlatego niestakowalne przedmioty to standardowy sposób na zwiększanie licznika dużymi, przewidywalnymi krokami. (Puste wiadro stackuje się do 16, więc nie działa tak samo.)
Shulkerowe skrzynie nie są przezroczyste
Komparator odczytujący skrzynię zawierającą shulkerową skrzynię widzi ją jako jeden przedmiot zajmujący jeden slot. Nie zagląda do środka. Systemy sortowania, które zakładają inaczej, po cichu liczą błędnie.
Odczyt komparatora z bloków innych niż pojemniki
Ten sam komparator odczytuje również:
| Blok | Sygnał |
|---|---|
| Kocioł | 0–3 według poziomu wody |
| Kompostownik | 0–8 według stopnia zapełnienia |
| Ciasto | 14 w dół do 0 za każdy zjedzony kawałek |
| Ramka na przedmiot | 1–8 według obrotu |
| Szafa grająca | 1–15 według tego, która płyta |
| Pulpit | 1–15 według tego, jak daleko w książce jest otwarta strona |
| Ul | 0–5 poziomu miodu |
| Rama portalu do Endu | 15 z okiem, 0 bez |
Ramki na przedmiot i pulpity są przydatne do ukrytych przełączników, bo odczytują przez ścianę.
Tryb odejmowania
Zapalona przednia pochodnia oznacza tryb odejmowania: wyjście to sygnał z tyłu minus sygnał z boku, z dolną granicą 0. Tryb porównania (pochodnia zgaszona) przepuszcza sygnał z tyłu tylko wtedy, gdy jest co najmniej tak silny jak najsilniejszy sygnał z boku.
Wpisz zawartość pojemnika i otrzymaj dokładny sygnał, uwzględniając mieszane rozmiary stosów, w Reference & Calculators — Set 2.