drakon-firestone

Untitled

Nov 9th, 2024
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. #po pierwszym uruchomieniu agent teleportowany jest do gracza i to od niego zaczyna budowanie kolejki
  2. agent.teleport_to_player()
  3.  
  4. '''
  5. Założenia projektowe:
  6.  
  7. slot 1 - tory
  8. slot 2 - zasilane tory
  9. slot 3 - stone
  10. slot 4 - redstone
  11. '''
  12.  
  13. def uzupelnijBloki():
  14.     #dajemy agentowi blok torów w liczbie 64 w slocie 1
  15.     agent.set_item(RAIL, 64, 1)
  16.     agent.set_item(POWERED_RAIL, 64, 2)
  17.     agent.set_item(STONE, 64, 3)
  18.     agent.set_item(REDSTONE_BLOCK, 64, 4)
  19.  
  20.  
  21. def budowanieKolejki(iloscTorow):
  22.     #zmienna przechowująca aktualną ilość wybudowanych torów, wywołując funkcję sami decydujemy ile agent ma wybudować torów
  23.     aktualnaLiczbaTorow = 0
  24.     #funkcja, która uzupełnia sloty agenta odpowiednimi blokami tak aby mógł budować
  25.     uzupelnijBloki()
  26.     #teleportujemy agenta, tak naprawdę zależy nam tutaj na jego kierunku, który z czasem będziemy modyfikować
  27.     agent.teleport(agent.get_position(),SOUTH)
  28.     #podczas przemieszczania się agent umieszcza blok ze wskazanego slotu
  29.     agent.set_assist(PLACE_ON_MOVE, True)
  30.     #podczas przemieszczania się agent niszczy bloki które stają na jego drodze
  31.     agent.set_assist(DESTROY_OBSTACLES, True)
  32.  
  33.     # pętla działa do momentu wybudowania liczby torów którą gracz wskazał podczas wywołania funkcji
  34.     while aktualnaLiczbaTorow < iloscTorow:
  35.         #czyszczenie trasy nad torem
  36.         if agent.detect(AgentDetection.BLOCK, UP):
  37.             agent.destroy(UP)
  38.          
  39.            
  40.            
  41.         #jeśli agent wykryje że jest w powietrzu lub w wodzie i nie ma na czym budować to umieszcza blok stone
  42.         elif agent.inspect(AgentInspection.BLOCK, DOWN) == 0 or agent.inspect(AgentInspection.BLOCK, DOWN) == 9:
  43.             agent.set_slot(3)
  44.             agent.place(DOWN)
  45.         else:
  46.             # jeśli nie ma żadnych przeszkód ustawiamy slot na tory, agent idzie do przodu
  47.             agent.set_slot(1)
  48.             agent.move(FORWARD, 1)
  49.  
  50.             aktualnaLiczbaTorow += 1
  51.  
  52.     player.say("budowa zakończona")
  53. player.on_chat("b",budowanieKolejki)
  54.  
Add Comment
Please, Sign In to add comment