Zaawansowane pistony
Pistony to najprostszy komponent redstone'a, prawda? Sygnal wchodzi, piston sie wysuwa. Sygnal gasmie, sticky piston cofa blok. Tyle na poziomir podstawowym. Ale za ta prostota kryje sie stos zaawansowanych mechanik: quasi-connectivity sprawia, ze piston reaguje na sygnal podany do bloku NAD nim, bloki slizu tworząc ruchome struktury, a 0-tick pulsing pozwala robic rzeczy, które teoretycznie nie powinny dzialac. Ten przewodnik jest dla tych, ktorzy opanowali juz podstawy i chca zrozumiec 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 sygnaly redstone podane nie tylko bezposrednio do niego, ale tez do bloku bezposrednio NAD nim. Innymi slowy: piston "widzi" sygnal w pozycji, w której bylaby jego glowa, gdyby go tam nie bylo.
Wyobraz sobie: stawiasz piston, a nad nim (1 blok wyżej) umieszczasz blok z pylem redstonowym. Pyl jest zasilony - piston sie wysuwa, mimo ze zadne redstone nie dotyka go bezposrednio. To jest quasi-connectivity.
Dlaczego to istnieje?
To bug, który stal sie feature'em. W oryginalnym kodzie Minecraft pistony dzielily kod aktywacji z drzwiami (które sa dwublokowe). Drzwi musza reagowac na sygnal podany do gornej lub dolnej polowy. Piston "odziedziczy" to zachowanie - reaguje na sygnal podany do "gornej polowy", która fizycznie nie istnieje. Mojang nigdy tego nie naprawil, bo zbyt wiele ukladow redstone'owych na tym polega.
Quasi-connectivity istnieje TYLKO w Java Edition. Na Bedrock Edition pistony reaguja wylacznie na sygnal podany bezposrednio do nich. To jedna z powazniejszych roznic między edycjami - uklady zaprojektowane z uzyciem QC na Java nie beda dzialac na Bedrock i odwrotnie. Jeśli budujesz tutoriale lub uklady do udostepniania, zawsze zaznacz, na która edycje sa przeznaczone.
Pulapka QC: piston "nie reaguje"
QC ma irytujacy efekt uboczny. Piston aktywowany przez QC (sygnal nad nim) zmienia swoj stan wewnetrzny, ale NIE aktualizuje sie fizycznie dopoki nie otrzyma "block update" (np. zmiana sasiadujacego bloku). Efekt: piston "powinien" byc wysuniety, ale wizualnie tego nie widac. Postawisz blok obok - piston nagle sie wysuwa. Usuniesz blok - piston sie cofa (i od razu wysuwa ponownie, bo QC nadal działa). To zachowanie jest frustrujace, ale zrozumiale, gdy wiesz o BUD.
2. BUD switch (Block Update Detector)
BUD to uklad wykrywajacy zmiany bloków w swoim sasiedztwie. Wykorzystuje quasi-connectivity: piston jest w stanie "powinien byc aktywny, ale czeka na update". Kiedy obok pistonu zmieni sie jakikolwiek blok (ktos postawi kamien, spece sie roslinan, woda poplynie), piston dostaje block update i sie 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 poloz redstone dust.
- Zasilaj pyl (np. dzwignia lub repeater) - piston sie wysuwa, bo quasi-connectivity.
- Teraz ODLACZ zasilanie pylu - piston powinien sie cofnac, ale z powodu QC "pamieta" stary stan.
- Piston jest teraz w stanie BUD: jego stan wewnetrzny mowi "cofnij sie", ale nie dostal jeszcze block update.
- Postaw lub zniszcz dowolny blok obok pistonu - piston sie cofnie (i może od razu sie wysunac ponownie). Ten ruch generuje impuls, który możesz wychwycic comparatorem lub observerem.
BUD switch byl głównym sposobem wykrywania zmian bloków przed dodaniem Observera w wersji 1.11. Dzis Observer zastapil wiekszosci zastosowan BUD, ale BUD nadal ma przewage w jednym: wykrywa zmiany w większym zasiegu (każdy blok sasiadujacy, w tym po przekatnej) 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" sasiadujace bloki do pistonu. Kiedy piston przesuwa blok slizu, ten ciagnie za soba wszystkie przylaczone bloki (do limitu 12). To fundamentalna mechanika latajacych maszyn i zaawansowanych konstrukcji pistonowych.
Slime Block
- Przylepia sie do WSZYSTKICH bloków oprocz: glazed terracotta, obsydianu, bedrocku, crying obsydianu, anchor, enchanting table, ender chest i bloaow miodu.
- Moby i gracze odbijaja sie od niego jak na trampolinie (redukuje fall damage do 0).
- Crafting: 9x slimeball (z slimow w bagnach lub deep slime chunks).
Honey Block
- Przylepia sie do tych samych bloków co slime, ALE nie przylepia sie do bloków slizu (i odwrotnie). Ta właściwość jest kluczowa - pozwala budować struktury, w których część bloków porusza sie z pistonem, a część nie.
- Spowalnia moby i graczy chodzacych po nim. Gracze nie mogą skakac z pełna wysokością na honey blocku.
- Crafting: 4x honey bottle (z ulow, zbieranych dispenserem).
Slime vs Honey - kiedy którego?
Uzywaj oba w jednej konstrukcji: slime block łączy jedna grupe bloków, honey block inna. Grupy nie przylepiaja sie do siebie, wiec możesz miec ruchome części, które poruszaja sie niezaleznie. W latajacych maszynach ta właściwość pozwala budować dwukierunkowe maszyny, gdzie jeden piston pcha grupe bloków slizu w przod, a drugi grupe bloków miodu w tyl.
Niektore bloki nie mogą byc przesuniete przez piston: obsydian, bedrock, enchanting table, ender chest, anvil (w Java), beacon, grindstone. Te bloki działają jako "hamulce" w latajacych maszynach - umieszczone na sciezce maszyny zatrzymuja ja. Glazed terracotta może byc przesunieta, ale nie "przylepia sie" do slime/honey blockow - idealna, gdy chcesz przesuwac blok pistonem, ale nie chcesz, zeby ciagnal za soba sasiadow.
4. Limity przesuwania
Piston może przesunac maksymalnie 12 bloków jednoczesnie. Jeśli przed pistonem stoi więcej niz 12 bloków (wliczajac te przyczepione przez slime/honey), piston sie nie wysuwa - nie może pokonać oporu. Ten limit dotyczy zarowno zwyklych, jak i sticky pistonow.
Jak obejsc limit 12 bloków?
- Wieloetapowe przesuwanie - uzyj dwoch pistonow w sekwencji. Pierwszy piston przesuwa pierwsze 12 bloków, potem drugi piston (aktywowany z opoznieniem przez repeater) przesuwa następne 12.
- Odcinanie slime blockami - jeśli chcesz przesunac 5 bloków, ale sa polaczone slime blockami z kolejnymi 20, uzyj glazed terracotta lub obsydianu jako "przerywacza" między grupami.
- Latajace maszyny - flying machine obchodzi limit, bo porusza sie etapami - w każdym kroku przesuwa maksymalnie 12 bloków, ale potem "przeladowuje" sie i przesuwa kolejne.
Block dropping
Sticky piston cofajacy sie zbyt szybko (1 tick impulsu) nie zdazy cofnac 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 byl zwyklym pistonem), ale nastepnym impulsem może go cofnac. Przydatne w drzwiach pistonowych i flip-flopach.
5. 0-tick pulsing
0-tick pulse to impuls trwajacy 0 redstone tickow - aktywacja i dezaktywacja pistonu w tym samym game ticku. W teorii nie powinno to dzialac, ale silnik Minecraft procesuje redstone w okresloneej kolejnosci w ramach jednego ticka, co sprawia, ze piston zdazy sie wysunac i cofnac "natychmiast".
Efekty 0-tick pulsu na piston:
- Natychmiastowe wysuwanie i cofanie - piston wysuwa sie i cofa w jednym ticku. Blok jest przesuniety, ale animacja jest prawie niewidoczna.
- Duplikowanie roślin (kontrowersyjne) - w starszych wersjach 0-tick pulsing pozwalal duplikowac trzcine, kaktusy i bambusa. Mojang naprawil wiekszoci tych glitchy, ale niektorte nadal działają w specyficznych warunkach.
- Superszybkie farmy - farmy rośliny uzywajace 0-tick pulsing rosly natychmiast (bez bone mealu). Vecina tych farm została znerf-owana w 1.16+.
Powiazane poradniki
- Flying machines - latajace maszyny z pistonow, slime'a i observerow.
- Bramki logiczne - uklady logiczne z pistonami i repeaterami.
- T Flip-Flop - uklad przelacznikowy z pistonami.
- Automatyczne drzwi - drzwi pistonowe 2x2 i 3x3.
- Redstone w budowlach - pistony w ukrytych przejsciach i windach.
- Latajace maszyny (budowanie) - flying machines w kontekscie budowli.
- Redstone od podstaw - fundamenty mechaniki pistonowej.