Özel tablolar ve diskler iki paket gerektirir ve bunlardan birini kurmak bilinen bir hatadır
Veri paketi içeriği kaydeder; kaynak paketi ise dokuyu ve sesi sağlar. Yalnızca veri paketi kurulursa içerik kaydedilir ama gösterilecek hiçbir şey olmaz. Ayrıca 16×16 sınırı ve disk uzunluğunun gerçekte neyi kontrol ettiği.
Tablolar ve müzik diskleri modern Java'da gerçek kayıt defterleridir; bu da onları vanilla olanların yerine koymak yerine ekleyebileceğiniz anlamına gelir. Eklediğiniz hiçbir şey mevcut bir tablonun veya diskin yerini almaz.
İşin püf noktası, içeriğin iki farklı paket türüne bölünmüş olması ve her birinin tek başına işe yaramamasıdır.
Neyin nereye gittiği
Veri paketi şeyi kaydeder:
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
Kaynak paketi gördüğünüzü ve duyduğunuzu sağlar:
assets/<ns>/textures/painting/<id>.png
assets/<ns>/sounds/<id>.ogg
assets/<ns>/sounds.json
Yalnızca veri paketini kurarsanız içerik başarıyla kaydedilir — var olur, /give onu bulur ve ortada sadece doku ve ses yoktur. Bu, açık bir başarısızlıktan çok daha kafa karıştırıcı bir sonuçtur ve özel bir tablonun "çalışmamasının" olağan nedenidir. Bu sayfadaki araç, tam da ayrılamasınlar diye ikisini tek bir zip içinde sunar.
İki pack.mcmeta dosyasına dikkat edin. Bunlar ayrı kimliklere sahip ayrı paketlerdir; ikisini birden barındıran birleşik bir biçim yoktur.
Kayıt kimlikleri dosya adlarından daha katıdır
Bir kimlik yalnızca a-z, 0-9, _, . ve - (alt klasörler için ayrıca /) içerebilir. Bunun dışındaki herhangi bir şeyde oyun o dosyayı atlar ve günlüğe "Invalid path" satırı yazar — paket yüklenir ve girdi hiçbir zaman var olmaz; bu da bir başarısızlıktan daha zor fark edilir. İnsanları en çok yakalayan ikisi büyük harfler ve boşluklardır, çünkü ikisi de sürükleyip getirdiğiniz dosya adında tamamen olağandır.
Tablolar: en fazla 16×16, ve 17 paketi bozar
Vanilla'nın kendi tabloları 1 × 1 ile 4 × 4 blok arasında değişir ve bu araç da aynı aralığı sunar. Biçim daha fazlasına izin verir: 26.3, width ve height değerlerini 1'den 16'ya kadar tam blok olarak okur ve 16 × 16'lık bir tablo, 16 × 16 blok yer bulunan herhangi bir duvara yüklenir, asılır ve asılı kalır — 26.3 sunucusunda test edilmiştir. Bir tablonun asılı kalıp kalmadığını belirleyen şey boyut değil yerdir: asıldığı yere sığmayan tablo eşya olarak düşer ve arkasında hiçbir şey olmayan vanilla bir 1 × 1 de aynı şekilde düşer.
16'nın ötesinde oyun sayıyı sınırlamaz, reddeder. "width": 17 "Value must be within range [1;16]" hatasıyla başarısız olur, tüm kayıt defteri yüklemesi onunla birlikte durur ve paket kaldırılana kadar dünya açılmaz.
Boyut, JSON içinde blok cinsinden width ve height olarak bildirilir. PNG'den çıkarılmaz, bu yüzden dokusu kare olan 3 × 1'lik bir tablo geçerli bir dosyadır ve gerilmiş şekilde görüntülenir.
Disk uzunluğu bir etiket değildir
length_in_seconds, oyunun parçanın bittiğine karar verdiği andır. Bildirilen uzunluktan bir saniye sonra müzik kutusu sesi keser, müzik notalarını durdurur ve bir şarkı çalarken verdiği redstone sinyalini kapatır — tam güçte, çevresindeki bloklara, tam olarak parçanın hâlâ devam ettiğini düşündüğü süre boyunca.
Yani yanlış bir uzunluk kozmetik bir hata değildir. 200 saniyelik bir parçayı 100 olarak bildirin, müzik yarıda kesilir ve sinyal de aynı anda düşer; 300 olarak bildirin, müzik kutusu 100 saniyelik sessizlik boyunca sinyalini açık tutar. Her iki durumda da bir diskin bitmesini bekleyen redstone yanlış zamanda tetiklenir. Bu araç, tam da bu nedenle, sizden yazmanızı istemek yerine gerçek süreyi dosyadan okur.
Karşılaştırıcı başka bir şeyi okur: comparator_output, disk müzik kutusunda durduğu sürece — çalıyor olsun ya da bitmiş olsun — sabit kalan 0'dan 15'e kadar tek bir sayı. Parça boyunca yükselmez ve uzunluk bunu değiştirmez — vanilla bunu diskleri birbirinden ayırt etmek için kullanır (13, 1 verir; kedi, 2; bloklar, 3).
Parçalar ayrıca sounds.json içinde "stream": true ile yazılır. Müzik uzundur ve tam bir parçayı çalmadan önce belleğe yüklemek takılmaya yol açar — akış (streaming), disk uzunluğundaki her şey için doğru varsayılan, kısa bir ses efekti için ise yanlış olandır.