Referensi skema kustomisasi
Ini adalah referensi tunggal untuk model tipe-bidang dan preset Caputchin, fondasi bersama di bawah setiap permukaan yang bisa dikustomisasi:
- Kustomisasi game: bahasa, skin, dan konfigurasi game marketplace.
- Skema game kustom: skema yang kamu tulis sendiri untuk game kustom.
- Manifest game marketplace: blok
locales/skins/configurationsyang dideklarasikan penulis game. - White-label widget: skema bawaan shell widget.
Keempatnya memakai tipe bidang yang sama dan model preset yang sama yang dijelaskan di sini. Kustomisasi dibangun dari preset, dan sebuah preset adalah kantong bidang bertipe.
Tipe bidang per sumbu
Tiap sumbu mengizinkan set tipe bidang tetap:
| Sumbu | Tipe bidang yang diizinkan |
|---|---|
| Configuration | boolean, number, range, list, string, link |
| Locale | hanya string |
| Skin | color, image, audio, video, boolean, number, range, list |
Sebuah skin bukan hanya warna dan aset: ia juga bisa memaparkan tombol skalar boolean,
number, range, dan list (sakelar "shadows", angka radius-sudut, pilihan "pattern").
Ini berperilaku persis seperti padanan konfigurasinya dan diselesaikan ke nilai bertipenya (sebuah
boolean tetap true, sebuah number tetap 8); nilai color dan aset diselesaikan ke string.
Skin tak mengizinkan string atau link (teks bebas milik bahasa; target tautan adalah
konfigurasi).
Apa yang diterima tiap tipe
| Tipe | Nilai | Aturan |
|---|---|---|
string | Teks bebas | Teks apa pun. |
boolean | Sebuah sakelar | true atau false. |
number | Sebuah angka | Angka hingga mana pun. |
range | Angka berbatas | Angka hingga dalam minimum dan maksimum bidang. Step adalah kenyamanan slider; nilai luar-step tetap diterima. |
list | Satu pilihan | Harus salah satu dari opsi yang didaftar bidang. |
link | Sebuah URL | URL http atau https. Kredensial tersemat ditolak. |
color | Sebuah warna | Warna hex (#rgb, #rgba, #rrggbb, atau #rrggbbaa) atau nilai rgb() / rgba(). Warna bernama dan ruang warna lain tak diterima. |
image | Sebuah gambar | Berkas yang diunggah atau URL https yang berakhir .png, .jpg, .jpeg, .webp, .svg, atau .gif. |
audio | Sebuah klip audio | Berkas yang diunggah atau URL https yang berakhir .mp3, .ogg, atau .wav. |
video | Sebuah video | Berkas yang diunggah atau URL https yang berakhir .mp4 atau .webm. |
Caputchin memvalidasi setiap nilai saat kamu menyimpan, jadi sebuah nilai yang tak cocok dengan tipenya ditolak sebelum ia bisa mencapai pengunjung.
Kunci tercadang
Di samping bidang kontennya, sebuah preset membawa beberapa kunci metadata tercadang (masing-masing berawalan garis-bawah) yang mengontrol bagaimana ia dipilih dan diselesaikan, bukan apa yang ia tampilkan. Bagaimana kamu menyetelnya bergantung pada permukaan: penulis game marketplace menulisnya secara literal di caputchin.json; di editor dasbor (game kustom, white-label) kamu menyetelnya lewat kontrol dan tak pernah mengetik kuncinya. Bagaimanapun maknanya sama.
| Kunci | Sumbu | Makna |
|---|---|---|
_lang | Locale | Language tag BCP-47 yang dilayani preset locale (en, es, dan seterusnya). Preset dikelompokkan olehnya; beberapa preset bisa berbagi satu _lang (mis. dua varian Inggris). |
_direction | Locale | ltr atau rtl. Opsional, diturunkan-otomatis dari _lang untuk bahasa kanan-ke-kiri (ar, he, fa, ur, yi, ps, sd); jarang disetel dengan tangan. |
_theme | Skin | light, dark, atau any. Preset light / dark muncul hanya di bawah latar itu; preset any berfungsi di bawah keduanya dan layak untuk salah satu. Default ke light saat absen. |
_default | Semua | Menandai preset yang dipilih server untuk kelompoknya saat pengunjung tak memilih satu. Satu default per kelompok (per mode untuk skin); sebuah skin any bisa menjadi default untuk terang, gelap, atau keduanya. |
_extends | Semua | Menamai preset lain untuk diwarisi. Lihat Memperluas preset. |
Kunci metadata tercadang disingkirkan saat penyelesaian: _extends dan _default tak pernah mencapai game, dan hanya metadata yang bertahan (_lang, _direction, _theme) plus bidang konten yang diratakan yang dikirim.
Memperluas preset
_extends membiarkan satu preset mewarisi setiap nilai dari yang lain, jadi kamu menulis hanya bidang yang berbeda alih-alih mengulang seluruh preset. Setel _extends ke nama preset lain di sumbu yang sama; preset yang memperluas dimulai dari semua nilai preset itu dan menimpa kunci yang ia setel sendiri.
{
"skins": {
"presets": {
"brand-light": { "_theme": "light", "accent": "#2da44e", "bg": "#ffffff" },
"brand-light-warm": { "_extends": "brand-light", "accent": "#d97706" }
}
}
}Di sini brand-light-warm mewarisi bg dari brand-light dan mengubah hanya accent.
Dua detail:
- Jalan pintas tema skin. Pada preset skin,
_extendsboleh menamai sebuah tema (lightataudark) ketimbang preset. Bentuk itu diselesaikan ke preset mana pun yang_defaultuntuk tema itu, cara nyaman untuk mendasari varian pada "skin terang default" tanpa menamainya. - Ia diselesaikan habis.
_extendsdiikuti lalu disingkirkan; game menerima hasil yang tergabung penuh, tak pernah kunci_extendsitu sendiri.
Dari mana sebuah skema berasal
Set bidang yang bisa diisi preset (skema-nya) punya tiga sumber, semua memakai tipe bidang yang sama di atas:
- Game marketplace: skema berasal dari manifest penulis game, diambil saat kamu membuka editor. Kamu menimpa preset game tapi tak mengubah skemanya.
- Game kustom: kamu mendefinisikan skema sendiri di dasbor, lalu menulis preset terhadapnya. Lihat game kustom.
- Shell widget (white-label): skema bawaan yang tetap. Kamu menimpa presetnya; set bidang tak dideklarasikan-penulis. Lihat white-label widget.
Preset dan penyelesaian
Dalam sebuah sumbu, bidang dikelompokkan menjadi preset bernama, dan server menyelesaikan satu preset efektif per kelompok dari cakupan berlapis, kunci situs di atas tim di atas default bawaan, dihitung per nilai. Selektor berbeda per sumbu: locale dipilih oleh bahasa peramban pengunjung, skin oleh preferensi terang atau gelap pengunjung (preset yang mode-nya any layak untuk salah satu), dan konfigurasi server-otoritatif (pengunjung tak bisa memilihnya). Lihat ikhtisar untuk model cakupan.
Lihat juga
- Ikhtisar kustomisasi game: mendaftarkan dan mengelola game, plus how-to per-sumbu untuk konfigurasi, bahasa, dan skin.
- Skema dasbor game kustom: menulis sebuah skema sendiri untuk game kustom.
- Manifest caputchin.json: mendeklarasikan blok ini sebagai penulis game marketplace.
- White-label widget: tipe yang sama diterapkan ke shell widget.