Komponen
Dalam Craftland Studio PC, sebuah ‘komponen’ dapat dipahami sebagai kontainer untuk data.
Sebuah entitas itu sendiri hanyalah identifikasi kosong; apa yang dapat dilakukannya dan bagaimana perilakunya sepenuhnya bergantung pada komponen mana yang terpasang padanya.
- Komponen Gerak: Menyimpan data yang berkaitan dengan gerak, seperti kecepatan dan arah gerak.
- Komponen Render: Menyimpan data yang diperlukan untuk rendering, seperti model dan material.
- Komponen Tabrakan: Menyimpan data untuk deteksi tabrakan, seperti volume dan bentuk tabrakan.
Sistem menemukan entitas yang memiliki kombinasi spesifik dari komponen, lalu menentukan logika perilaku yang akan diterapkan pada entitas-entitas tersebut berdasarkan data dalam komponen-komponen tersebut.
Manajemen Komponen
Akses Manajemen Komponen melalui menu


Anda juga dapat mengakses antarmuka pengelolaan komponen langsung dari komponen itu sendiri:


Skrip
Menambahkan skrip ke suatu komponen sama dengan menambahkan skrip ke semua entitas yang menggunakan komponen tersebut:



Atribut
Atribut Default
Secara default, sebagian besar komponen sudah memiliki properti default.

Jenis Properti
Properti dikategorikan sebagai read-only atau writable. Properti read-only hanya dapat diakses nilainya dan tidak dapat diubah melalui skrip; properti writable dapat diubah melalui skrip.

Atribut yang Dapat Diedit

Properti read-only
Apakah suatu atribut dapat ditulis juga dapat ditentukan berdasarkan apakah entri properti defaultnya ditandai.

Misalnya, properti posisi objek pemain berbeda dengan properti posisi komponen transform yang digunakan oleh objek lain; properti ini tidak dapat dimodifikasi secara langsung melalui API setProperty. Untuk memindahkan pemain, gunakan API teleportPlayer yang khusus:

Gunakan Set Property API untuk memodifikasi atribut yang dapat ditulis; gunakan Get Property API untuk mengambil nilai properti:

Selain itu, beberapa properti default hanya tersedia di server; mencoba memodifikasi properti tersebut di klien akan menghasilkan kesalahan. Dalam skrip komponen, properti-properti ini secara otomatis difilter berdasarkan platform runtime skrip.
Properti Kustom
Selain properti default yang tersedia, Anda juga dapat menambahkan properti kustom ke komponen. Properti kustom dapat ditulis dan berfungsi sebagai properti dual-platform.

Deteksi Properti Kustom
Anda mungkin telah memperhatikan ikon pemantauan di samping properti kustom:

Mengaktifkan fitur pemantauan ini memicu sistem untuk mengirimkan peristiwa “Perubahan Atribut Kustom” setiap kali nilai atribut berubah, mengikuti logika berikut:
- Ketika atribut diubah melalui logika server-side, peristiwa dikirimkan ke server dan klien.
- Ketika atribut diubah melalui logika client-side, peristiwa hanya dikirimkan secara lokal.
Peristiwa perubahan atribut kustom ini memungkinkan Anda mendeteksi perubahan dengan lebih mudah, memudahkan penyesuaian logika selanjutnya:

Jika beberapa atribut kustom memiliki deteksi perubahan yang diaktifkan, elemen ID atribut kustom dapat menentukan atribut spesifik mana yang telah berubah:

Saat menggunakan primitif ID properti kustom, jenis komponen harus ditentukan secara manual
Komponen Terkait
Sebuah komponen dapat memiliki beberapa komponen terkait. Kombinasi, referensi, atau ketergantungan antara komponen mendefinisikan batas kemampuan logis dan data entitas.
Misalnya, komponen Player terikat dengan Combatable, Scoreable, dan komponen lain. Entitas Player yang menggunakan komponen Player juga dapat mengakses data dan peristiwa Combatable dan Scoreable.
