# Starter Bengkel Item 2D SMA · Lanjutan · sesi 17–32 ## Memakai starter Ekstrak seluruh ZIP, Project Manager → Import → project.godot, lalu F5. Panah bergerak pada mode fisika; petunjuk kontrol khusus ada pada HUD. R membuat scene baru. Siapkan folder terpisah sebelum mengubah kode. Godot 4.x; contoh diperiksa dengan 4.4.1 Compatibility. ## Cakupan yang tersedia Transaksi dua kayu menjadi satu papan, kapasitas tiga, validasi sebelum mutasi, feedback, dan reset. Katalog resep, pesanan, hadiah, serta validasi simpan-muat dikembangkan siswa. Starter adalah acuan struktur dan mekanik minimum, bukan proyek akhir yang memenuhi semua rubrik. Gunakan lab sesi untuk menguji konsep kecil. Siswa membangun integrasi dan keputusan sendiri sesuai tugas presentasi. Tidak ada build executable yang diklaim telah diuji oleh paket ini. ## Susunan node saat runtime Node dibuat oleh world.gd dari bentuk dasar. Jalankan F6 lalu lihat Scene → Remote untuk menelusuri pohonnya. Untuk belajar konstruksi editor, buat scene siswa terpisah dan tambahkan node melalui tombol + sesuai fungsi helper di world.gd. ```text Arena2D Arena → CharacterBody2D / StaticBody2D / Area2D (mode fisika) CanvasLayer → Label (HUD) Button (mode antarmuka) Timer (mode spawn) ``` ## Cara membangun di editor 1. Buat root Node2D/Control sesuai tugas, simpan scene. 2. Tambahkan bentuk visual dan collision secara terpisah. Collider harus anak badan/area, bukan hanya mesh. Pada 3D, tambahkan kamera current dan lampu. 3. Tambahkan script pada node yang tepat. Implementasikan satu mekanik dari tugas sesi, uji, baru lanjut. 4. Hubungkan signal sekali lewat panel Node atau _ready. Label membaca model, bukan menjadi sumber keadaan. 5. Catat input, keadaan awal, harapan, aktual, perbaikan, dan batas pengujian. ## Urutan praktik - Sesi 17: Audit Dictionary dan salinan. Telusuri perubahan satu stok pada Dictionary lalu bandingkan salinan mendalam dengan referensi yang sama - Sesi 18: Katalog item dan resep. Tetapkan ID, ikon, biaya material dan output; simpan resep sebagai data dengan jumlah bilangan bulat positif - Sesi 19: Inventaris dan tampilan. Buat model stok terpisah dari Label; satu signal perubahan memperbarui semua jumlah yang tampil - Sesi 20: Kontrak crafting atomik. Tulis aturan semua-bahan-cukup sebelum perubahan; contoh gagal harus meninggalkan seluruh stok tetap - Sesi 21: Pemeriksa satu resep. Fungsi dapat_dibuat membaca semua biaya tanpa mengubah data; uji bahan nol dan satu bahan kurang - Sesi 22: Penerapan transaksi. Kurangi semua biaya dan tambah output hanya setelah validasi lengkap dalam satu fungsi; larang stok negatif - Sesi 23: Klik cepat dan aksi tunggal. Cegah satu input diproses ganda dan jangan hubungkan ulang signal saat panel diperbarui - Sesi 24: Kapasitas hasil. Tolak crafting jika hasil melebihi kapasitas dan buktikan bahan tidak berkurang - Sesi 25: Data tiga pesanan. Pisahkan ID pesanan, jumlah diminta dan status; tampilkan permintaan yang sedang dipilih - Sesi 26: Serah item serta hadiah sekali. Periksa stok output, kurangi saat serah sah, tandai selesai lalu beri satu hadiah material terbatas - Sesi 27: Urutan produksi yang mungkin. Hitung manual satu urutan tiga resep dan pesanan dari stok awal; pastikan target dapat dicapai tanpa kebuntuan - Sesi 28: Simpan inventaris tervalidasi. Simpan stok dan ID pesanan selesai dalam JSON user://; validasi ID dikenal, jumlah utuh dalam batas serta status sebelum menerapkan - Sesi 29: File rusak dan default aman. Uji JSON gagal, item tak dikenal serta jumlah negatif; pilih tolak seluruh berkas dan mulai dari default yang dijelaskan - Sesi 30: Resep baru dari penguji. Ganti satu biaya dan stok awal; hitung hasil harapan serta uji tanpa mengubah fungsi transaksi - Sesi 31: Uji pengguna dan build bengkel. Minta pengguna menyelesaikan pesanan, perbaiki pesan bahan kurang lalu catat hasil uji build - Sesi 32: Presentasi: Bengkel Item 2D. Tunjukkan transaksi sah, ditolak, klik cepat, buka ulang dan perubahan resep beserta alasan struktur Penguji mengubah satu biaya resep dan stok awal. Prediksi jumlah hasil, uji bahan kurang serta kapasitas penuh, lalu buktikan stok tidak berubah pada transaksi yang ditolak. ## Kriteria proyek - ID item, resep dan stok memiliki skema serta validasi yang tertulis - Crafting gagal tidak menghabiskan sebagian bahan dan tidak melewati kapasitas - Pesanan memberi hadiah sekali serta urutan tiga pesanan dapat dituntaskan - File rusak ditolak sebelum data aktif berubah; resep baru bekerja Sumber: https://docs.godotengine.org/en/stable/