Visuality project - Bayangan Bulan Malam Hari (Overworld saja)

Apa yang salah sebelumnya:
- Godray/kabut malam (moonrays) sebenarnya sudah ada dan sudah bekerja
  (lihat GODRAY_EDIT_NOTES.txt) - punya intensitas, kabut, dan warna biru
  sendiri untuk malam, dan mengikuti shadow map yang sama dengan bayangan
  objek biasa.
- Tapi bayangan objek biasa (terrain, entitas, air, tangan, dsb) di malam
  hari nyaris tidak pernah terlihat. Sebabnya dua hal yang saling
  berkaitan:
  1. getSunDirectMultiplier() di lib/independent_lighting.glsl hanya
     menghitung kontribusi siang + senja, tidak ada suku malam sama
     sekali, jadi cahaya langsung (yang membawa bayangan) dikalikan 0
     begitu masuk malam murni.
  2. uniform.vec4.lightCol di shaders.properties hanya diisi dari
     sunIntensity, yang juga jatuh ke (nyaris) 0 begitu matahari
     terbenam, sehingga walau shadow map sudah otomatis mengikuti arah
     bulan, tidak ada cahaya yang bisa "diblokir" untuk terlihat sebagai
     bayangan.

Apa yang diubah:
- lib/independent_lighting.glsl: menambah NIGHT_DIRECT_MULTIPLIER
  (default 0.55, bisa diatur lewat Shader Options > Lighting seperti
  slider lain) dan memasukkannya ke getSunDirectMultiplier() untuk fase
  malam.
- shaders.properties: menambah kontribusi cahaya bulan (moonlightR/G/B,
  moonAmount) ke uniform.vec4.lightCol, aktif hanya saat matahari benar-
  benar di bawah horizon dan diskalakan dengan moonIntensity bawaan
  engine, sehingga meredup/menguat secara alami di sekitar terbit/
  terbenamnya bulan sama seperti sinar matahari. Konstanta lama yang
  jadi "lantai" kecil tetap dipertahankan sebagai fallback, jadi ini
  murni tambahan, bukan penggantian total.
- Warna bulan (0.20, 0.34, 0.62) sengaja disamakan nuansanya dengan
  warna biru yang sudah dipakai untuk night godrays dan night fog, agar
  bayangan baru ini terasa menyatu dengan atmosfer malam yang sudah ada,
  bukan elemen baru yang berbeda sendiri.

Kenapa ini otomatis konsisten di semua permukaan:
- getSunDirectMultiplier() dan lightCol dipakai bareng oleh semua pass
  Overworld yang punya bayangan (gbuffers_terrain, gbuffers_entities,
  gbuffers_water, gbuffers_block, gbuffers_hand, gbuffers_textured,
  gbuffers_textured_lit, gbuffers_weather), jadi cukup 2 titik ini yang
  diubah dan seluruh permukaan otomatis ikut dapat bayangan bulan yang
  konsisten, tanpa perlu menyentuh file gbuffers satu-satu.

Yang TIDAK diubah (sesuai permintaan):
- Tidak menyentuh world1 (End) maupun world-1 (Nether): kedua dimensi
  ini punya lib/lighting.glsl dan file gbuffers sendiri yang berdiri
  sendiri, sama sekali tidak memakai lib/independent_lighting.glsl atau
  shaders.properties milik Overworld, sudah dicek lewat pencarian di
  seluruh file dimensi tersebut.
- Tidak menyentuh godrays.glsl, cloud lighting, water reflection/SSR,
  border fog, bloom, warna siang/senja, atau exposure - semua itu sudah
  independen dari dua titik yang diedit di sini dan tetap sama seperti
  sebelumnya di siang dan senja (suku malam yang ditambahkan bernilai 0
  begitu matahari di atas horizon).

Catatan pengujian:
Perubahan sudah diperiksa statis (kurung seimbang, tidak ada variabel
duplikat, urutan variable.float di shaders.properties benar). Renderer
Minecraft/Iris/OptiFine tidak tersedia di lingkungan ini, jadi hasil
visual akhir tetap perlu dicek langsung di game. Kalau bayangan malam
terasa kurang terlihat atau terlalu terang, naikkan/turunkan
NIGHT_DIRECT_MULTIPLIER lewat Shader Options > Lighting (default 0.55,
tersedia 0.00-1.20).
