Zaawansowane pistony

Pistony to najprostszy komponent redstone'a, prawda? Sygnał wchodzi, piston się wysuwa. Sygnał gasmie, sticky piston cofa blok. Tyle na poziomir podstawowym. Ale za ta prostota kryje się stos zaawansowanych mechanik: quasi-connectivity sprawia, ze piston reaguje na sygnał podany do bloku NAD nim, bloki slizu tworząc ruchome struktury, a 0-tick pulsing pozwala robić rzeczy, które teoretycznie nie powinny działać. Ten przewodnik jest dla tych, którzy opanowali już podstawy i chcą zrozumieć głębokie mechaniki pistonowe.
1. Quasi-connectivity (QC)
Quasi-connectivity to mechanika specyficzna dla Java Edition, która często zaskakuje (i frustruje) nowych graczy. Piston reaguje na sygnały redstone podane nie tylko bezpośrednio do niego, ale tez do bloku bezpośrednio NAD nim. Innymi slowy: piston "widzi" sygnał w pozycji, w której byłaby jego glowa, gdyby go tam nie bylo.
Wyobraź sobie: stawiasz piston, a nad nim (1 blok wyżej) umieszczasz blok z pylem redstonowym. Pyl jest zasilony - piston się wysuwa, mimo ze żadne redstone nie dotyka go bezpośrednio. To jest quasi-connectivity.
Dlaczego to istnieje?
To bug, który stal się feature'em. W oryginalnym kodzie Minecraft pistony dzielily kod aktywacji z drzwiami (które sa dwublokowe). Drzwi musza reagować na sygnał podany do górnej lub dolnej polowy. Piston "odziedziczy" to zachowanie - reaguje na sygnał podany do "górnej polowy", która fizycznie nie istnieje. Mojang nigdy tego nie naprawił, bo zbyt wiele układów redstone'owych na tym polega.
Quasi-connectivity istnieje TYLKO w Java Edition. Na Bedrock Edition pistony reagują wyłącznie na sygnał podany bezpośrednio do nich. To jedna z poważniejszych różnic między edycjami - układy zaprojektowane z użyciem QC na Java nie beda działać na Bedrock i odwrotnie. Jeśli budujesz tutoriale lub układy do udostępniania, zawsze zaznacz, na która edycje sa przeznaczone.
Pułapka QC: piston "nie reaguje"
QC ma irytujący efekt uboczny. Piston aktywowany przez QC (sygnał nad nim) zmienia swój stan wewnętrzny, ale NIE aktualizuje się fizycznie dopóki nie otrzyma "block update" (np. zmiana sasiadujacego bloku). Efekt: piston "powinien" być wysuniety, ale wizualnie tego nie widac. Postawisz blok obok - piston nagle się wysuwa. Usuniesz blok - piston się cofa (i od razu wysuwa ponownie, bo QC nadal działa). To zachowanie jest frustrujące, ale zrozumiale, gdy wiesz o BUD.
2. BUD switch (Block Update Detector)
BUD to układ wykrywający zmiany bloków w swoim sasiedztwie. Wykorzystuje quasi-connectivity: piston jest w stanie "powinien być aktywny, ale czeka na update". Kiedy obok pistonu zmieni się jakikolwiek blok (ktoś postawi kamień, spece się roslinan, woda popłynie), piston dostaje block update i się wysuwa. To detect zmianę.
Prosty BUD switch:
- Postaw sticky piston skierowany w górę.
- NAD pistonem (2 bloki nad ziemia) postaw blok i na nim połóż redstone dust.
- Zasilaj pyl (np. dźwignia lub repeater) - piston się wysuwa, bo quasi-connectivity.
- Teraz ODLACZ zasilanie pyłu - piston powinien się cofnąć, ale z powodu QC "pamieta" stary stan.
- Piston jest teraz w stanie BUD: jego stan wewnętrzny mówi "cofnij się", ale nie dostał jeszcze block update.
- Postaw lub zniszcz dowolny blok obok pistonu - piston się cofnie (i może od razu się wysunac ponownie). Ten ruch generuje impuls, który możesz wychwycic comparatorem lub observerem.
BUD switch był głównym sposobem wykrywania zmian bloków przed dodaniem Observera w wersji 1.11. Dziś Observer zastąpił większości zastosowań BUD, ale BUD nadal ma przewagę w jednym: wykrywa zmiany w większym zasięgu (każdy blok sasiadujacy, w tym po przekątnej) i reaguje na typy zmian, na które Observer nie reaguje (np. zmiana stanu gry).
3. Bloki slizu i miodu
Slime Block i Honey Block to bloki, które "przylepiaja" sąsiadujące bloki do pistonu. Kiedy piston przesuwa blok slizu, ten ciągnie za soba wszystkie przylaczone bloki (do limitu 12). To fundamentalna mechanika latających maszyn i zaawansowanych konstrukcji pistonowych.
Slime Block
- Przylepia się do WSZYSTKICH bloków oprocz: glazed terracotta, obsydianu, bedrocku, crying obsydianu, anchor, enchanting table, ender chest i bloaow miodu.
- Moby i gracze odbijają się od niego jak na trampolinie (redukuje fall damage do 0).
- Crafting: 9x slimeball (z slimow w bagnach lub deep slime chunks).
Honey Block
- Przylepia się do tych samych bloków co slime, ALE nie przylepia się do bloków slizu (i odwrotnie). Ta właściwość jest kluczowa - pozwala budować struktury, w których część bloków porusza się z pistonem, a część nie.
- Spowalnia moby i graczy chodzacych po nim. Gracze nie mogą skakać z pełna wysokością na honey blocku.
- Crafting: 4x honey bottle (z ulow, zbieranych dispenserem).
Slime vs Honey - kiedy którego?
Używaj oba w jednej konstrukcji: slime block łączy jedna grupę bloków, honey block inna. Grupy nie przylepiaja się do siebie, więc możesz mieć ruchome części, które poruszają się niezaleznie. W latających maszynach ta właściwość pozwala budować dwukierunkowe maszyny, gdzie jeden piston pcha grupę bloków slizu w przód, a drugi grupę bloków miodu w tyl.
Niektóre bloki nie mogą być przesunięte przez piston: obsydian, bedrock, enchanting table, ender chest, anvil (w Java), beacon, grindstone. Te bloki działają jako "hamulce" w latających maszynach - umieszczone na ścieżce maszyny zatrzymują ja. Glazed terracotta może być przesunięta, ale nie "przylepia się" do slime/honey blockow - idealna, gdy chcesz przesuwać blok pistonem, ale nie chcesz, żeby ciagnal za soba sasiadow.
4. Limity przesuwania
Piston może przesunąć maksymalnie 12 bloków jednoczesnie. Jeśli przed pistonem stoi więcej niż 12 bloków (wliczając te przyczepione przez slime/honey), piston się nie wysuwa - nie może pokonać oporu. Ten limit dotyczy zarówno zwykłych, jak i sticky pistonow.
Jak obejść limit 12 bloków?
- Wieloetapowe przesuwanie - użyj dwóch pistonów w sekwencji. Pierwszy piston przesuwa pierwsze 12 bloków, potem drugi piston (aktywowany z opóźnieniem przez repeater) przesuwa następne 12.
- Odcinanie slime blockami - jeśli chcesz przesunąć 5 bloków, ale sa połączone slime blockami z kolejnymi 20, użyj glazed terracotta lub obsydianu jako "przerywacza" między grupami.
- Latające maszyny - flying machine obchodzi limit, bo porusza się etapami - w każdym kroku przesuwa maksymalnie 12 bloków, ale potem "przeladowuje" się i przesuwa kolejne.
Block dropping
Sticky piston cofajacy się zbyt szybko (1 tick impulsu) nie zdąży cofnąć bloku - zostawia go na miejscu ("block dropping"). W Java Edition ten glitch jest powszechnie używany jako feature: sticky piston z 1-tickowym pulsem wysuwa blok i zostawia go (jakby był zwykłym pistonem), ale następnym impulsem może go cofnac. Przydatne w drzwiach pistonowych i flip-flopach.
5. 0-tick pulsing
0-tick pulse to impuls trwający 0 redstone tickow - aktywacja i dezaktywacja pistonu w tym samym game ticku. W teorii nie powinno to działać, ale silnik Minecraft procesuje redstone w okresloneej kolejności w ramach jednego ticka, co sprawia, ze piston zdąży się wysunac i cofnąć "natychmiast".
Efekty 0-tick pulsu na piston:
- Natychmiastowe wysuwanie i cofanie - piston wysuwa się i cofa w jednym ticku. Blok jest przesunięty, ale animacja jest prawie niewidoczna.
- Duplikowanie roślin (kontrowersyjne) - w starszych wersjach 0-tick pulsing pozwalał duplikować trzcinę, kaktusy i bambusa. Mojang naprawił wiekszoci tych glitchy, ale niektorte nadal działają w specyficznych warunkach.
- Superszybkie farmy - farmy rośliny używające 0-tick pulsing rosly natychmiast (bez bone mealu). Vecina tych farm została znerf-owana w 1.16+.
Powiązane poradniki
- Flying machines - latające maszyny z pistonów, slime'a i observerow.
- Bramki logiczne - układy logiczne z pistonami i repeaterami.
- T Flip-Flop - układ przelacznikowy z pistonami.
- Automatyczne drzwi - drzwi pistonowe 2x2 i 3x3.
- Redstone w budowlach - pistony w ukrytych przejściach i windach.
- Latające maszyny (budowanie) - flying machines w kontekście budowli.
- Redstone od podstaw - fundamenty mechaniki pistonowej.