Generator drzew funkcji do Minecraft

Czasem zdarza się, że w funkcjach do Minecraft chcemy uzależnić coś od jakiejś wartości, ale gra nie pozwala nam na wykorzystanie jej w prosty sposób. Niestety nie da się teleportować gracza jedną komendą o liczbę bloków zapisaną w scoreboardzie i nie da się odczytać w prosty sposób w którą stronę ktoś się patrzy. Jeśli wiadomo, że liczba możliwości danych wejściowych jest dość mała można zawsze rozwiązać taki problem poprzez zapisanie komend obsługujących każdą wartość. Gdyby ktoś chciał na przykład zaimplementować funkcję sinus z dokładnością do jednego stopnia, mógłby obliczyć wyniki jakimś zewnętrznym programem i napisać 360 komend (po jednej na każdy stopień). Niestety takie rozwiązanie powoduje, że dużo komend jest wywoływanych niepotrzebnie. Na szczęście zamieszczony w tym artykule generator pozwala na bardzo mocną optymalizację kodu w takich sytuacjach.

Co to drzewa funkcji?

Drzewa funkcji to zbiór nawzajem wywołujących się plików funkcji, dążących do wykonania jakiejś czynności / jakichś obliczeń na podstawie wartości ze scoreboarda lub kierunku obrotu bytu. W praktyce sprowadza się to do zastąpienia dużej liczby komend jeszcze większą liczbą plików z funkcjami, które w magiczny sposób powodują, że jest wywoływane mniej komend. Jeśli chcesz dokładnie dowiedzieć się, jak działają drzewa funkcji, to sam bym lepiej tego nie wytłumaczył – TUTAJ

Generator drzew funkcji:

Ścieżka:
Prefiks nazw plików:
Komendy:

Instrukcja obsługi:

  1. W pole „Ścieżka” należy wpisać gdzie będą zamieszczone wygenerowane funkcje. Należy pisać w takim stylu w jakim wywołuje się funkcje w Minecraft tj. folder główny oddzielony dwukropkiem od reszty, natomiast inne foldery pooddzielane ukośnikami.
  2. W pole „Prefiks nazw plików” należy wpisać tekst, który zostanie wykorzystany do wygenerowania nazw tworzonych funkcji. Przykładowo jeśli w tym polu zostanie wpisany tekst „abc” to jedna z wygenerowanych funkcji będzie mogła otrzymać nazwę „abc_0_0” (pod warunkiem, że w zapisanych komendach będzie powiedziane że coś ma się wykonywać przy wartości 0).
  3. W polu komendy należy wpisywać komendy zawierające selektor, w którym dwukrotnie powtarza się ta sama wartość np. @s[score_test_min=0,score_test=0].
    • Dolny limit powinien zawsze być zapisany jako pierwszy a górny jako drugi. Jeśli limity zostaną napisane odwrotnie to w niektórych komendach selektory zostaną wygenerowane w niepoprawny sposób.
    • Generator nie wychwytuje na jakiej zasadzie są generowane komendy. To znaczy, że dla każdej wartości trzeba napisać jaki jest oczekiwany wynik.
    • Przykładowy zestaw poprawnie napisanych komend dla generatora:
      execute @s[score_a_min=0,score_a=0] ~ ~ ~ say mam zero "a"
      execute @s[score_a_min=1,score_a=1] ~ ~ ~ say mam jedno "a"
      execute @s[score_a_min=2,score_a=2] ~ ~ ~ say mam dwa "a"
      execute @s[score_a_min=5,score_a=5] ~ ~ ~ say mam piec "a" a kolejnosc nie ma znaczenia
      execute @s[score_a_min=3,score_a=3] ~ ~ ~ say mam trzy "a"
      execute @s[score_a_min=4,score_a=4] ~ ~ ~ say mam cztery "a"
      execute @s[score_a_min=4,score_a=4] ~ ~ ~ say jak mam cztery "a" to wykonuje dwie komendy naraz
  4. Po wykonaniu poprzednich punktów należy skorzystać z funkcji „Potwierdź”, która rozpocznie pobieranie wygenerowanego pliku z funkcjami.
  5. Aby skorzystać z drzewa funkcji w swoich komendach należy wywołać funkcję która ma najmniejszą wartość w pierwszej części swojej nazwy i największą wartość w drugiej części nazwy. Przykładowo jeśli najmniejsza wartość we wpisanych komendach to 0 a największa to 150 to funkcja, którą należy uruchamiać będzie miała nazwę zakończoną „_0_150”.
Patreon

Komentarze do “Generator drzew funkcji do Minecraft” (1)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *