# Functii de baza din API-ul pentru Minecraft Pi

In acest moment Sonic Pi ofera suport pentru urmatoarele interactiuni cu Minecraft Pi:

- Afisarea de mesaje in fereastra de chat
- Modificarea pozitiei jucatorului
- Aflarea pozitiei jucatorului
- Modificarea blocului aflat la anumite coordonate
- Aflarea tipului blocului aflat la anumite coordonate

Sa le analizam pe rand.

## Afisarea de mesaje in fereastra de chat

Sa vedem cat de usor este sa controlezi Minecraft Pi folosind Sonic Pi. Mai intai asigura-te ca atat Minecraft Pi cat si Sonic Pi sunt pornite si ca ai intrat intr-o lume Minecraft si poti sa te deplasezi in interiorul ei.

Intr-un buffer gol din Sonic Pi introdu urmatorul cod:

    mc_message "Hello from Sonic Pi"

Cand apesi pe Run vei vedea mesajul tau aparand in fereastra Minecraft. Felicitari, ai scris prima linie de cod pentru Minecraft! A fost simplu, nu?

## Modificarea pozitiei jucatorului

Acum sa incercam o mica magie. Sa ne teleportam undeva. Incearca asta:

    mc_teleport 50, 50, 50

Apasa pe Run si … minune! Ai fost teleportat instantaneu intr-un nou loc. Cel mai probabul era undeva in vazduh si ai cazut intre timp pe sol sau in apa. Acum sa vedem ce reprezinta numerele astea: `50, 50, 50`. Sunt coordonatele locului in care incerci sa te teleportezi. Sa discutam putin despre ce inseamna coordonatele si cum functioneaza, deoarece sunt foarte importante pentru programarea in Minecraft.

## Coordonate

Sa ne imaginam o harta a piratilor cu un ‘X’ care marcheaza locul in care se afla o comoara. Pozitia exacta a ‘X’-ului poate fi descrisa cu doua numere - cat de departe este de marginea din stanga si cat de departe de marginea de jos. De exemplu: ‘10 cm’ la dreapta si ‘8 cm’ in sus. Aceste doua numere, ‘10’ si ‘8’ sunt coordonatele. Poti sa-ti imaginezi usor cum ai descrie pozitiile altor cufere folosind alte perechi de numere. Poate un cufar cu mult aur se afla la ‘2’ la dreapta si ‘9’ in sus…

In Minecraft doua numere nu sunt suficiente. Trebuie sa stim si inaltimea la care ne aflam, deci avem nevoie de trei numere:

- Cat de departe pe directia stanga-dreapta: ‘x’
- Cat de departe pe directia inainte-inapoi: ‘z’
- Cat de sus ne aflam in lume: ‘y’

Inca un lucru: de obicei trecem aceste coordonate in ordinea asta - ‘x’, ‘y’, ‘z’.

## Aflarea coordonatelor curente

Sa ne jucam putin cu coordonatele. Mergi intr-un loc dragut in lumea Minecraft si apoi revino la fereastra Sonic Pi. Introdu textul asta:

    puts mc_location

Cand vei apasa pe butonul Run vei vedea coordonatele pozitiei curente afisate in fereastra jurnal. Priveste-le, apoi deplaseaza-te in lumea Minecraft si incearca din nou. Vei observa cum coordonatele s-au schimbat. Iti recomand sa repeti de cateva ori testul asta - te deplasezi putin in lumea Minecraft, vezi care sunt coordonatele, apoi reiei. Fa asta pana cand incepi sa simti in ce fel se schimba coordonatele atunci cand te deplasezi. Odata ce ai inteles cum functioneaza coordonatele, programarea cu API-ul Minecraft va fi floare la ureche.

## Sa construim!

Acum ca stii sa afli pozitia curenta si sa te teleportezi folosind coordonatele, ai toate uneltele necesare pentru a incepe sa construiesti diferite lucruri in Minecraft prin programare. Sa spunem ca vrei ca blocul de la coordonatele `40`, `50`, `60` sa fie din sticla. E foarte usor:

    mc_set_block :glass, 40, 50, 60

Ha, ha, a fost chiar usor. Ca sa vezi ce-ai mesterit teleporteaza-te in apropiere si arunca o privire:

    mc_teleport 35, 50, 60

Acum intoarce-te si ar trebui sa vezi blocul de sticla! Incearca sa-l transformi in diamant:

    mc_set_block :diamond, 40, 50, 60

Daca te uitai in directia potrivita ai vazut chiar cum se schimba in fata ochilor tai! Acesta este inceputul unei aventuri incitante…

## Sa aruncam o privire asupra blocurilor

Sa mai vedem un singur lucru inainte de a trece la ceva mai complicat. Avand un set de coordonate putem cere Minecraft sa ne spuna ce tip de bloc se afla acolo. Sa incercam cu blocul de diamant pe care tocmai l-ai creat:

    puts mc_get_block 40, 50, 60

Da! Este ‘:diamond’ (diamant). Incearca sa-l transformi iar in sticla si intreaba din nou. A raspuns ‘:glass’ (sticla)? Sunt sigur ca da :)

## Tipurile de blocuri disponibile

Inainte sa te dezlantui programand in Minecraft Pi, ai putea considera utila lista aceasta cu tipurile de blocuri disponibile:

        :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