Untitled
unknown
python
2 years ago
2.4 kB
9
Indexable
# Roller coaster
#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, kierunek):
#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()
# ustalam kierunek agenta
if kierunek == 1:
kierunek = CompassDirection.SOUTH
elif kierunek == 2:
kierunek = CompassDirection.WEST
elif kierunek == 3:
kierunek = CompassDirection.EAST
elif kierunek == 4:
kierunek = CompassDirection.NORTH
#teleportujemy agenta, tak naprawdę zależy nam tutaj na jego kierunku, który z czasem będziemy modyfikować
agent.teleport(agent.get_position(), kierunek)
#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)
Editor is loading...