نقاشیها و دیسکهای سفارشی به دو پک نیاز دارند، و نصب یکی از آنها دلیل معمول خرابی است
دیتاپک محتوا را ثبت میکند؛ ریسورس پک بافت و صدا را تأمین میکند. دیتاپک به تنهایی ثبت میشود اما چیزی برای نمایش ندارد. بهعلاوه محدودیت 4×4 و چرایی اینکه طول دیسک فقط ظاهری نیست.
نقاشیها و دیسکهای موسیقی هر دو رجیستریهای واقعی در Java مدرن هستند، به این معنی که میتوانید اضافه کنید آنها را به جای اینکه جایگزین موارد وانیلا کنید. هیچ چیز اضافه شدهای جایگزین نقاشی یا دیسک موجود نمیشود.
نکته اینجاست که محتوا بین دو نوع پک مختلف تقسیم شده است، و هرکدام به تنهایی بیفایده هستند.
چه چیزی کجا قرار میگیرد
دیتاپک مورد را ثبت میکند:
data/<ns>/painting_variant/<id>.json asset_id, width, height, title, author
data/<ns>/jukebox_song/<id>.json sound_event, description, length, comparator
ریسورس پک آنچه را میبینید و میشنوید تأمین میکند:
assets/<ns>/textures/painting/<id>.png
assets/<ns>/sounds/<id>.ogg
assets/<ns>/sounds.json
تنها دیتاپک را نصب کنید و محتوا با موفقیت ثبت میشود — وجود دارد، /give finds it, and there is simply no texture and no audio. That is a much more confusing outcome than an outright failure, and it is the usual reason a custom painting "didn't work". The tool on this page ships both in one zip specifically so they cannot be separated.
به این دو توجه کنید pack.mcmeta files. They are separate packs with separate identities; there is no combined format that holds both.
شناسههای رجیستری سختگیرانهتر از نام فایلها هستند
یک شناسه فقط میتواند شامل a-z, 0-9, _, . and -. Anything else and بارگیری پک با شکست مواجه میشود — نه فقط آن یک ورودی خراب، بلکه کل پک. حروف بزرگ و فاصلهها دو موردی هستند که کاربران را به دردسر میاندازند، زیرا هر دو در نام فایلی که وارد کردهاید کاملاً عادی هستند.
نقاشیها: 1×1 تا 4×4
اندازههای وانیلا از 1 × 1 تا 4 × 4 بلوک متغیرند و شانزده شکل ممکن را ایجاد میکنند. گونهای خارج از این محدوده همچنان رندر میشود — بازی آن را رد نمیکند — اما نمیتوان آن را روی دیواری به اندازهای که بازیکنان انتظار دارند آویزان کرد، بنابراین عملاً در یک ساختوساز عادی غیرقابل قرار دادن است.
اندازه در JSON به این صورت اعلام میشود width and height, in blocks. It is not inferred from the PNG, so a 3 × 1 painting whose texture is square is a valid file that displays stretched.
طول دیسک فقط یک برچسب نیست
length_in_seconds drives two things: the jukebox timing, and the افزایش تدریجی سیگنال مقایسهگر — سیگنالی که یک مقایسهگر از جوکباکس در حال پخش میخواند در طول مدت زمان اعلامشدهٔ ترک افزایش مییابد.
بنابراین طول نادرست یک خطای ظاهری نیست. یک ترک 200 ثانیهای را 100 اعلام کنید و مقایسهگر افزایش تدریجی خود را در نیمه راه به پایان میرساند، که بیسر و صدا هر ردستونی را که به پایان دیسک وابسته است از کار میاندازد. این ابزار دقیقاً به همین دلیل مدت زمان واقعی را از فایل میخواند به جای اینکه از شما بخواهد آن را تایپ کنید.
ترکها همچنین با این موارد نوشته میشوند "stream": true in sounds.json. Music is long, and loading a full track into memory before playing it stutters — streaming is the right default for anything disc-length, and the wrong one for a short sound effect.