Advertisement
WasuMrTomass0

MinecraftPy_GP10

Dec 6th, 2021
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.96 KB | None | 0 0
  1. # Założenia projektowe
  2. # 1) Numery slotów u agenta
  3. SLOT_AGENTA_TORY = 1
  4. SLOT_AGENTA_ZASILANE_TORY = 2
  5. SLOT_AGENTA_STONE = 3
  6. SLOT_AGENTA_REDSTONE = 4
  7. # 2) Numery kierunków w projekcie
  8. NR_KIERUNKU_SOUTH = 1
  9. NR_KIERUNKU_WEST = 2
  10. NR_KIERUNKU_EAST = 3
  11. NR_KIERUNKU_NORTH = 4
  12.  
  13. # teleportuj agenta do obecnego miejsca gracza
  14. def teleportAgentaDoGracza():
  15.     agent.teleport(player.position(), SOUTH)
  16.     pass  # Koniec funkcji teleportAgentaDoGracza
  17.  
  18. # wybuduj podstawę pod graczem, która wskaże kierunki
  19. def pokazKierunki():
  20.     # Wykorzystamy konstruktor
  21.     builder.push_state() # Zapisz konstruktor
  22.     builder.teleport_to(player.position())  # Teleport do gracza
  23.     builder.move(DOWN, 1)
  24.     builder.set_origin()  # Ustawienie miejsca do teleportu
  25.  
  26.     # Południe
  27.     player.say(str(NR_KIERUNKU_SOUTH) + " - SOUTH - Południe - DIAMOND_BLOCK")
  28.     builder.face(SOUTH)
  29.     builder.move(FORWARD, 1)
  30.     builder.place(DIAMOND_BLOCK)
  31.     builder.teleport_to_origin()
  32.     # Zachód
  33.     player.say(str(NR_KIERUNKU_WEST) + " - WEST - Zachód - GOLD_BLOCK")
  34.     builder.face(WEST)
  35.     builder.move(FORWARD, 1)
  36.     builder.place(GOLD_BLOCK)
  37.     builder.teleport_to_origin()
  38.     # Wschód
  39.     player.say(str(NR_KIERUNKU_EAST) + " - EAST - Wschód - STONE")
  40.     builder.face(EAST)
  41.     builder.move(FORWARD, 1)
  42.     builder.place(STONE)
  43.     builder.teleport_to_origin()
  44.     # Północ
  45.     player.say(str(NR_KIERUNKU_NORTH) + " - NORTH - Północ - GLASS")
  46.     builder.face(NORTH)
  47.     builder.move(FORWARD, 1)
  48.     builder.place(GLASS)
  49.     builder.teleport_to_origin()
  50.  
  51.     builder.pop_state()  # Przywróć konstruktor
  52.     pass  # Koniec funkcji pokazKierunki
  53.  
  54. def uzupelnijBloki():
  55.     # agent.set_item(BLOK, ILOSC, NR_SLOTU)
  56.     agent.set_item(RAIL, 64, SLOT_AGENTA_TORY)
  57.     agent.set_item(POWERED_RAIL, 64, SLOT_AGENTA_ZASILANE_TORY)
  58.     agent.set_item(STONE, 64, SLOT_AGENTA_STONE)
  59.     agent.set_item(REDSTONE_BLOCK, 64, SLOT_AGENTA_REDSTONE)
  60.     pass  # Koniec funkcji uzupelnijBloki
  61.  
  62.  
  63. def budowanieKolejki(iloscTorow):
  64.     # Zmienna, która zlicza ile torów już postawiliśmy
  65.     aktualnaLiczbaTorow = 0
  66.     # Wywołanie funkcji uzupelnijBloki - patrz wyżej
  67.     uzupelnijBloki()
  68.     # Teleport agenta - jednak tak na prawdę zmienia się TYLKO jego kierunek
  69.     # Zwróć uwagę, że teleportujemy go do jego obecnej pozycji - czyli nic się nie zmienia
  70.     agent.teleport(agent.get_position(), SOUTH)
  71.     # Ustawienie agenta - każdy ruch powoduje postawienie bloku
  72.     agent.set_assist(PLACE_ON_MOVE, True)
  73.     # Jeśli jakiś blok będzie przeszkodą - zniszcz ten blok
  74.     agent.set_assist(DESTROY_OBSTACLES, True)
  75.  
  76.     # Póki postawiliśmy mniej boków niż trzeba powtarzamy kod w środku pętli
  77.     while aktualnaLiczbaTorow < iloscTorow:
  78.  
  79.         # Sprawdź czy trzeba usunąć jakiś blok
  80.         if agent.detect(AgentDetection.BLOCK, UP) or agent.detect(AgentDetection.BLOCK, FORWARD):
  81.             agent.destroy(UP)
  82.             agent.destroy(FORWARD)
  83.  
  84.             pass  # Koniec if
  85.  
  86.         # Sprawdź, czy trzeba dodać podstawę pod tory
  87.         elif agent.inspect(AgentInspection.BLOCK, DOWN) == 0 or agent.inspect(AgentInspection.BLOCK, DOWN) == 9:
  88.             agent.set_slot(SLOT_AGENTA_STONE)
  89.             agent.place(DOWN)
  90.  
  91.             pass  # Koniec elif
  92.  
  93.         else:
  94.             # Jeśli nie trzeba było nic wyburzać, ani nic budować to znaczy,
  95.             # że możemy wybudować tory
  96.             agent.set_slot(SLOT_AGENTA_TORY)
  97.             agent.move(FORWARD, 1)
  98.  
  99.             aktualnaLiczbaTorow += 1
  100.            
  101.             pass  # Koniec instrukcji warunkowej
  102.        
  103.         pass  # Koniec pętli while
  104.  
  105.     player.say("Budowa zakończona. Wybudowano " + str(iloscTorow) + " torów")
  106.     pass  # Koniec funkcji budowanieKolejki
  107.  
  108.  
  109.  
  110. # Powiązanie słow/komend z funkcjami
  111. player.on_chat("b", budowanieKolejki)
  112. player.on_chat("tutaj", teleportAgentaDoGracza)
  113. player.on_chat("kierunki", pokazKierunki)
  114.  
  115.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement