#po pierwszym uruchomieniu agent teleportowany jest do gracza i to od niego zaczyna budowanie kolejki agent.teleport_to_player() ''' Założenia projektowe: slot 1 - tory slot 2 - zasilane tory slot 3 - stone slot 4 - redstone ''' def uzupelnijBloki(): #dajemy agentowi blok torów w liczbie 64 w slocie 1 agent.set_item(RAIL, 64, 1) agent.set_item(POWERED_RAIL, 64, 2) agent.set_item(STONE, 64, 3) agent.set_item(REDSTONE_BLOCK, 64, 4) def budowanieKolejki(iloscTorow): #zmienna przechowująca aktualną ilość wybudowanych torów, wywołując funkcję sami decydujemy ile agent ma wybudować torów aktualnaLiczbaTorow = 0 #funkcja, która uzupełnia sloty agenta odpowiednimi blokami tak aby mógł budować uzupelnijBloki() #teleportujemy agenta, tak naprawdę zależy nam tutaj na jego kierunku, który z czasem będziemy modyfikować agent.teleport(agent.get_position(),SOUTH) #podczas przemieszczania się agent umieszcza blok ze wskazanego slotu agent.set_assist(PLACE_ON_MOVE, True) #podczas przemieszczania się agent niszczy bloki które stają na jego drodze agent.set_assist(DESTROY_OBSTACLES, True) # pętla działa do momentu wybudowania liczby torów którą gracz wskazał podczas wywołania funkcji while aktualnaLiczbaTorow < iloscTorow: #czyszczenie trasy nad torem if agent.detect(AgentDetection.BLOCK, UP): agent.destroy(UP) #jeśli agent wykryje że jest w powietrzu lub w wodzie i nie ma na czym budować to umieszcza blok stone elif agent.inspect(AgentInspection.BLOCK, DOWN) == 0 or agent.inspect(AgentInspection.BLOCK, DOWN) == 9: agent.set_slot(3) agent.place(DOWN) else: # jeśli nie ma żadnych przeszkód ustawiamy slot na tory, agent idzie do przodu agent.set_slot(1) agent.move(FORWARD, 1) aktualnaLiczbaTorow += 1 player.say("budowa zakończona") player.on_chat("b",budowanieKolejki)