# przypisanie do literki 's' na czacie funkcji survival
# zmieniam czas na południe
# FUNKCJE
# def(poczatek definicji funkcji)nazwaFunkcji(): -> deklaracja funkcji w PYTHON
# Przykład -> napisz fukncje przywitanie która napisze na czacie przywitanie
# Wszystko co funkcja ma wykonać musi byc oddzielone od reszty kodu TAB(4spacje) bo bedzie blad
# jak uruchomic funkcje?
# wywołać funkcje można w nastepujący sposób: nazwaFunkcji()
# PRZYKŁAD
# przywitanie() # uruchomi funkcje kiedy wlacze skrypt(zielony przycisk)
# przypisac funkcje do polecenia czatu
def przywitanie():
# jesli chciałbym zostawic funkcje na chwile pusta i napisac ja zaraz
# napisze 'pass' zamiast poleceń w środku funkcji
# pass
player.say("Moja pierwsza funkcja")
player.say("Hey i czołem")
player.on_chat("p", przywitanie)
# po napisaniu na czacie 'p' uruchomie funkcje przywitanie
# Ćwiczenie 1
# Napiszemy przepis/funkcję na przełączenie gry pomiędzy trybem przetrwania a kreatywnym.
# Potrzebuje funkcje przetrwanie -> ustawic odpowiednio tryb gry
# Potrzebuje funkcje kreatywny -> ustawic odpowiednio tryb gry
# 1. Deklaracja potrzbnych funkcji np. def przetrwanie():
# 2. Deklaracja potrzbnych funkcji np. def kreatywny():
# 3. ustawic potrzebne wartosci gry np. gameplay.set_game_mode(SURVIVAL, mobs.target(NEAREST_PLAYER))
# 4. EXTRA ZMIANA POGODY gameplay.set_weather(CLEAR)
# 5. EXTRA ZMIANA TRUDNOSCI gameplay.set_difficulty(PEACEFUL) HARD/EASY/NORMAL
# PAMIETAMY O TABULACJI(TAB)
def przetrwanie():
# ZMIENIAM TRYB GRY NA SURVIVAL
gameplay.set_game_mode(SURVIVAL, mobs.target(NEAREST_PLAYER))
# Zmieniam pogode na burze
gameplay.set_weather(THUNDER)
# zmieniam tryb gry na NORMAL
gameplay.set_difficulty(NORMAL)
gameplay.time_set(DayTime.NIGHT)
player.on_chat("s", przetrwanie)
def kreatywny():
# ZMIENIAM TRYB GRY NA SURVIVAL
gameplay.set_game_mode(CREATIVE, mobs.target(NEAREST_PLAYER))
# Zmieniam pogode na burze
gameplay.set_weather(CLEAR)
# zmieniam tryb gry na NORMAL
gameplay.set_difficulty(NORMAL)
gameplay.time_set(DayTime.DAY)
player.on_chat("c", kreatywny)
# ĆWICZENIE 2
# ZBUDUJ ZA POMOCA FUNKCJI PIRAMIDE Z TNT
# CO POTRZEBNE DO CWICZENIA?
# FUNKCJA KTÓRA KLADZIE 1 BLOCZEK -> blocks.place(TNT,pos(x,y,z))
# FUNKCJA KTORA KLADZIE WIELE BLOCZKOW -> blocks.fill(TNT, pos(odX,odY,odZ), pos(doX,doY,doZ))
# POZYCJE :)
# deklaracja funkcji
def piramida():
blocks.fill(TNT, pos(-5, 2, -5), pos(5, 2, 5)) # 1. poziom
blocks.fill(TNT, pos(-4, 3, -4), pos(4, 3, 4)) # 2. poziom
blocks.fill(TNT, pos(-3, 4, -3), pos(3, 2, 3)) # 3. poziom
blocks.fill(TNT, pos(-2, 5, -2), pos(2, 5, 2)) # 4. poziom
blocks.fill(TNT, pos(-1, 6, -1), pos(1, 6, 1)) # 5. poziom
blocks.fill(TNT, pos(0, 7, 0), pos(0, 7, 0)) # 6. poziom
# przypisanie do czatu
player.on_chat('tnt',piramida) # po wpisaniu w czat 'tnt' wybuduje piramide
# MECHANIZM ZEBY BUDOWLE POWSTAWALY CALE, NIE ROZJECHANE
# POZYCJA SWIATA -> world(x,y,z)
# ĆWICZENIE 3
# SKONSTRUUJ BOMBE Z POMOCA POZYCJI SWIATA -> NIECH TO BEDZIE KLEPSYDRA A W SRODKU ZAPALNIK
# JAK POBRAC POZYCJE GRACZA I JEJ WARTOSCI (X,Y,Z)
# JAK DODAC DO POZYCJI ODSTEP np 10 BLOCZKOW PO PRAWO
# SKONSTRUUJE BOMBE
# SKONSTRUUJE ODWROCONA BOMBE
# WSTAWIE ZAPALNIK
def bomba():
# POBRAC POZYCJE GRACZA I JEJ WARTOSCI (X,Y,Z) i dodac odstep
position = positions.add(player.position(), pos(10,0,0)) # dodaje odstep do pobranej pozycji gracza
# wczytac konkretne wartosci pozycji
x = position.get_value(Axis.X) # zczytuje pozcje x
y = position.get_value(Axis.Y) # zczytuje pozcje Y
z = position.get_value(Axis.Z) # zczytuje pozcje Z
# tworzenie piramidy z pomoca pozycji swiata
blocks.fill(TNT, world(x, y, z), world(x+10, y, z+10)) # 1 poziom
blocks.fill(TNT, world(x+1, y+1, z+1), world(x+9, y+1, z+9)) # 2 poziom
blocks.fill(TNT, world(x+2, y+2, z+2), world(x+8, y+2, z+8)) # 3 poziom
blocks.fill(TNT, world(x+3, y+3, z+3), world(x+7, y+3, z+7)) # 4 poziom
blocks.fill(TNT, world(x+4, y+4, z+4), world(x+6, y+4, z+6)) # 5 poziom
blocks.fill(TNT, world(x+5, y+5, z+5), world(x+5, y+5, z+5)) # 6 poziom
# odwrocona piramida
blocks.fill(TNT, world(x+5, y+7, z+5), world(x+5, y+7, z+5))
blocks.fill(TNT, world(x+4, y+8, z+4), world(x+6, y+8, z+6))
blocks.fill(TNT, world(x+3, y+9, z+3), world(x+7, y+9, z+7))
blocks.fill(TNT, world(x+2, y+10, z+2), world(x+8, y+10, z+8))
blocks.fill(TNT, world(x+1, y+11, z+1), world(x+9, y+11 , z+9))
blocks.fill(TNT, world(x, y+12, z), world(x+10, y+12, z+10))
# zapalnik
loops.pause(3000)
blocks.fill(REDSTONE_BLOCK, world(x+5, y+6, z+5), world(x+5, y+6, z+5))
# przypisanie do czatu
player.on_chat('b',bomba)
# ĆWICZENIE 4
# SKONSTRUUJ BASEN, skorzystaj z pozcji swiata, Podpowiedź: Trzeba zbudowac basen otwarty
def basenKonstruktor():
# POBRAC POZYCJE GRACZA I JEJ WARTOSCI (X,Y,Z) i dodac odstep
position = positions.add(player.position(), pos(10,0,0)) # dodaje odstep do pobranej pozycji gracza
# wczytac konkretne wartosci pozycji
x = position.get_value(Axis.X) # zczytuje pozcje x
y = position.get_value(Axis.Y) # zczytuje pozcje Y
z = position.get_value(Axis.Z) # zczytuje pozcje Z
# Tworzenie szklanej konstrukcji
blocks.fill(GLASS, world(x, y, z), world(x + 15, y + 7, z + 30)) # szklany zarys
# Wypelniam powietrzem
blocks.fill(AIR, world(x + 1, y + 1, z + 1), world(x + 14, y + 7, z + 29))
# wypelniam woda
blocks.fill(WATER, world(x + 1, y + 1, z + 1), world(x + 14, y + 7, z + 29))
# przypisac do czatu
player.on_chat("basen", basenKonstruktor)