MC Toolkit

Poradniki / Budowanie i zasoby

Niestandardowe obrazy i płyty wymagają dwóch paczek, a instalacja tylko jednej to typowa przyczyna porażki

Datapack rejestruje zawartość; resource pack dostarcza teksturę i dźwięk. Sam datapack sprawia, że zawartość jest zarejestrowana, ale nie ma czego wyświetlić. Do tego limit 16×16 i to, co tak naprawdę kontroluje długość płyty.

Obrazy i płyty muzyczne to w nowoczesnej Java prawdziwe rejestry, co oznacza, że możesz je dodawać, a nie zastępować waniliowe. Nic, co dodasz, nie wypiera istniejącego obrazu ani płyty.

Haczyk polega na tym, że zawartość jest rozdzielona między dwa różne typy paczek, a każda z nich osobno jest bezużyteczna.

Co gdzie trafia

Datapack rejestruje rzecz:

data/<ns>/painting_variant/<id>.json    asset_id, width, height, title, author
data/<ns>/jukebox_song/<id>.json        sound_event, description, length_in_seconds, comparator_output

Resource pack dostarcza to, co widzisz i słyszysz:

assets/<ns>/textures/painting/<id>.png
assets/<ns>/sounds/<id>.ogg
assets/<ns>/sounds.json

Zainstaluj sam datapack, a zawartość zarejestruje się poprawnie — istnieje, /give ją znajdzie, tyle że po prostu nie ma tekstury ani dźwięku. To znacznie bardziej mylący rezultat niż jednoznaczna porażka i to typowa przyczyna tego, że niszowy obraz „nie działa". Narzędzie na tej stronie dostarcza obie paczki w jednym zipie specjalnie po to, żeby nie dało się ich rozdzielić.

Zwróć uwagę na dwa pliki pack.mcmeta. To osobne paczki o osobnych tożsamościach; nie istnieje format łączony, który mieściłby obie.

Identyfikatory rejestru są surowsze niż nazwy plików

Identyfikator może zawierać wyłącznie a-z, 0-9, _, . i - (plus / dla podfolderów). Cokolwiek innego i gra pomija ten plik z linią „Invalid path" w logu — paczka się ładuje, a wpis po prostu nigdy nie istnieje, co trudniej zauważyć niż błąd. Wielkie litery i spacje to dwa przypadki, które najczęściej łapią ludzi, bo oba są zupełnie zwyczajne w nazwie pliku, który przeciągnąłeś.

Obrazy: do 16×16, a 17 psuje paczkę

Waniliowe obrazy mają od 1 × 1 do 4 × 4 bloków i to narzędzie oferuje ten sam zakres. Format pozwala na więcej: 26.3 odczytuje width i height jako całe bloki od 1 do 16, a obraz 16 × 16 ładuje się, wisi i utrzymuje na każdej ścianie z 16 × 16 blokami miejsca — testowane na serwerze 26.3. O tym, czy obraz się utrzyma, decyduje miejsce, nie rozmiar: ten, który się nie mieści tam, gdzie wisi, wypada jako przedmiot, a waniliowy 1 × 1 bez niczego za sobą wypada dokładnie tak samo.

Powyżej 16 gra nie ogranicza liczby, tylko ją odrzuca. "width": 17 kończy się błędem „Value must be within range [1;16]", całe ładowanie rejestru zatrzymuje się razem z nim, a świat nie otworzy się, dopóki paczka nie zostanie usunięta.

Rozmiar jest deklarowany w JSON jako width i height, w blokach. Nie jest wywnioskowany z PNG, więc obraz 3 × 1, którego tekstura jest kwadratowa, to poprawny plik, który wyświetla się rozciągnięty.

Długość płyty to nie etykietka

length_in_seconds to moment, w którym gra uznaje, że utwór się skończył. Sekundę po zadeklarowanej długości szafa grająca ucina dźwięk, zatrzymuje nuty muzyczne i wyłącza sygnał redstone, który wydaje, gdy gra piosenka — pełna moc, do bloków wokół niej, dokładnie tak długo, jak długo jej zdaniem utwór jeszcze trwa.

Niedokładna długość to więc nie kosmetyczny błąd. Zadeklaruj 200-sekundowy utwór jako 100, a muzyka zostanie ucięta w połowie, a sygnał zniknie w tym samym momencie; zadeklaruj jako 300, a szafa grająca utrzyma sygnał przez 100 sekund ciszy. Tak czy inaczej, redstone czekający na koniec płyty zadziała w złym momencie. To narzędzie odczytuje rzeczywisty czas trwania z pliku, zamiast prosić cię o jego wpisanie, właśnie z tego powodu.

Komparator odczytuje coś innego: comparator_output, jedną stałą liczbę od 0 do 15, która utrzymuje się tak długo, jak płyta siedzi w szafie grającej — grając czy skończona. Nie rośnie w trakcie utworu i długość jej nie zmienia — wanilia używa jej do rozróżniania płyt (13 daje 1, Kot 2, blocks 3).

Utwory zapisuje się też z "stream": true w sounds.json. Muzyka jest długa, a wczytanie całego utworu do pamięci przed odtworzeniem powoduje zacinanie — strumieniowanie to właściwy domyślny wybór dla wszystkiego o długości płyty i zły dla krótkiego efektu dźwiękowego.

Dodawanie własnych obrazów i płyt →

Więcej poradników

Zobacz wszystkie →