# Podstawowe API oferowane przez Minecraft Pi

Sonic Pi aktualnie wspiera następujące podstawowe interakcje z Minecraft Pi:

- Wyświetlanie wiadomości czatowych
- Ustawianie pozycji gracza
- Odczyt pozycji gracza
- Ustawianie typu bloku na podanych współrzędnych
- Zabieranie typu bloku na podanych współrzędnych

Spróbujmy przyjrzeć się każdemu z nich po kolei.

## Wyświetlanie wiadomości czatowych

Zobaczmy, jak łatwo jest kontrolować Minecraft Pi z Sonic Pi. Najpierw upewnij się, że zarówno Minecraft Pi, jak i Sonic Pi są jednocześnie otwarte, a także sprawdź, czy udało Ci się wejść do świata Minecraft i czy możesz się poruszać.

W czystym buforze Sonic Pi po prostu wprowadź poniższy kod:

    mc_message "Hello from Sonic Pi"

Kiedy naciśniesz przycisk Run, zobaczysz migającą wiadomość w oknie Minecraft. Gratulacje, właśnie napisałeś swój pierwszy kod w Minecraft! Prawda, to było proste.

## Ustawianie pozycji gracza

Teraz spróbujmy odrobiny magii. Spróbujmy przeteleportować nas w inne miejsce! Sprawdź następujący kod:

    mc_teleport 50, 50, 50

Kiedy naciśniesz Run - bum! Zostajesz błyskawicznie przetransportowany w nowe miejsce. Bardzo prawdopodobne jest to, że to gdzieś w powietrzu i spadniesz w dół, na suchy ląd lub do wody. Więc co to za liczby: `50, 50, 50`? Są to współrzędne miejsca, do którego starasz się przeteleportować. Poświęćmy krótką chwilę, aby dowiedzieć się, czym są współrzędne i jak działają, ponieważ są one naprawdę ważne w programowaniu Minecraft.

## Współrzędne

Wyobraź sobie mapę piratów z wielkim `X` oznaczającym miejsce jakiegoś skarbu. Dokładna lokalizacja `X` może być opisana przez podanie dwóch liczb - jak daleko na mapie od lewej do prawej oraz jak daleko od dołu mapy w górę. Na przykład `10cm` wszerz i `8cm` w górę. Te dwie liczby `10` i `8` to współrzędne. Możesz bardzo łatwo wyobrazić sobie opisywanie sekretnych miejsc ze skarbami za pomocą innej pary liczb. Być może bardzo duża skrzynia złota znajduje się na `2` w poprzek, `9` w górę.

Teraz w Minecraft dwie liczby to za mało. Potrzebujemy także wiedzieć o tym, jak wysoko się znajdujemy. Dlatego też potrzebujemy trzech cyfr:

- Jak daleko od prawej do lewej w naszym świecie - `x`
- Jak daleko od przodu do tyłu w naszym świecie - `z`
- Jak wysoko znajdujemy się w naszym świecie - `y`

Jeszcze jedna rzecz - zazwyczaj opisujemy te współrzędne w następującej kolejności `x`, `y`, `z`.

## Odczytywanie Twojej aktualnej lokalizacji

Spróbujmy pobawić się współrzędnymi. Przenieś się do jakiegoś ładnego miejsca na mapie Minecraft, a następnie przełącz się do Sonic Pi. Teraz wpisz następującą linijkę:

    puts mc_location

Kiedy uruchomisz przycisk Run, zobaczysz współrzędne Twojego aktualnego położenia wyświetlone w panelu z logami. Zapisz je, a następnie spróbuj przemieścić się do przodu w świecie i spróbuj jeszcze raz. Zauważ, że współrzędne się zmieniły! Teraz zalecam Ci poświęcić trochę czasu na powtórzenie tego kilka razy - przenieś się gdzieś kawałek w Twoim świecie, zerknij na współrzędne i powtórz. Próbuj tego do momentu, w którym poczujesz, jak zmieniają się współrzędne, gdy się poruszasz. Gdy już zrozumiesz, jak one działają, programowanie z API oferowanym przez Minecraft będzie dla Ciebie bułką z masłem.

## Zbudujmy Coś!

Teraz gdy już wiesz, w jaki sposób znaleźć aktualną pozycję oraz w jaki sposób możesz się teleportować, korzystając z współrzędnych, posiadasz już wszystkie narzędzia, których potrzebujesz, aby zacząć budować rzeczy w Minecraft za pomocą kodu. Powiedzmy, że chciałbyś stworzyć blok ze szkła o współrzędnych `40`, `50`, `60`. Proste!:

    mc_set_block :glass, 40, 50, 60

Haha, to naprawdę była bułka z masłem! Aby obejrzeć swoje dzieło, po prostu przeteleportuj się niedaleko i zerknij na nie:

    mc_teleport 35, 50, 60

Teraz obróć się dookoła, a Twoim oczom ukaże się utworzony przez Ciebie blok ze szkła! Spróbuj zmienić go w diament:

    mc_set_block :diamond, 40, 50, 60

Jeśli patrzyłeś w odpowiednim kierunku, to być może nawet zauważyłeś, jak zmienił się na Twoich oczach! To początek czegoś ekscytującego…

## Patrzenie na Bloki

Spróbujmy spojrzeć na ostatnią rzecz, zanim zaczniemy coś bardziej angażującego. Podając zestaw współrzędnych, możemy zapytać Minecraft o to, jakiego typu jest specyficzny blok. Spróbujmy tego z naszym blokiem diamentu, który stworzyłeś przed chwilą:

    puts mc_get_block 40, 50, 60

Łał! To diament (`:diamond`)! Spróbuj ponownie zmienić go w szkło i jeszcze raz zapytać o typ - czy teraz pokazał szkło (`:glass`)? Jestem pewien, że tak :-)

## Dostępne typy bloków

Zanim oddasz się szaleństwu programowania z Minecraft Pi, być może zainteresuje Cię poniższa lista dostępnych typów bloków:

        :air
        :stone
        :grass
        :dirt
        :cobblestone
        :wood_plank
        :sapling
        :bedrock
        :water_flowing
        :water
        :water_stationary
        :lava_flowing
        :lava
        :lava_stationary
        :sand
        :gravel
        :gold_ore
        :iron_ore
        :coal_ore
        :wood
        :leaves
        :glass
        :lapis
        :lapis_lazuli_block
        :sandstone
        :bed
        :cobweb
        :grass_tall
        :flower_yellow
        :flower_cyan
        :mushroom_brown
        :mushroom_red
        :gold_block
        :gold
        :iron_block
        :iron
        :stone_slab_double
        :stone_slab
        :brick
        :brick_block
        :tnt
        :bookshelf
        :moss_stone
        :obsidian
        :torch
        :fire
        :stairs_wood
        :chest
        :diamond_ore
        :diamond_block
        :diamond
        :crafting_table
        :farmland
        :furnace_inactive
        :furnace_active
        :door_wood
        :ladder
        :stairs_cobblestone
        :door_iron
        :redstone_ore
        :snow
        :ice
        :snow_block
        :cactus
        :clay
        :sugar_cane
        :fence
        :glowstone_block
        :bedrock_invisible
        :stone_brick
        :glass_pane
        :melon
        :fence_gate
        :glowing_obsidian
        :nether_reactor_core