Skip to content

🏛️ Arsitektur Sistem & Struktur Paket Kode ​

📌 Pernyataan Sumber Repositori: Dokumentasi di Wiki ini mencerminkan kondisi kode sumber terkini di repositori, yang mungkin memuat komit atau fitur pengembangan yang belum dirilis di CurseForge atau Modrinth.

Design PrincipleArchitectural Policy
Core PhilosophyVanilla Outsider (VO) — Diegetic, non-destructive, input-consistent
Design Rule1 File, 1 Function Law (Single-responsibility Cohesion)
Main Package Namespacenet.vanillaoutsider.betterbats
Thread Safety ModelServer-Thread Main Looper Sync (No async world mutation)

☕ Catatan Pengembang Solo: Jika Anda menyukai kawanan kelelawar 3D BOIDs yang realistis dan pemupukan tanaman otomatis dengan guano, dukung karya saya di Ko-fi!


🌳 Pohon Hirarki Paket ​

net.vanillaoutsider.betterbats
├── BetterBatsFabric.java          # Mod initialization, GameRules registration
├── BetterBatsFabricClient.java    # Client render layer, debug toggles
├── ai/                            # AI Goal domain logic
│   ├── BatDiveBombGoal.java       # Predatory hunting of silverfish/endermites
│   ├── BatFlightHelper.java       # 3D BOIDs flocking and vector math
│   ├── BatHuntLightGoal.java      # Nighttime phototaxis light orbiting
│   ├── BatPanicGoal.java          # Vibration acoustic panic dispersion
│   ├── BatRoostHelper.java        # Daytime roost surface validator
│   └── BatSleepGoal.java          # Roosting and guano accumulation
├── config/                        # YACL v3 and Cloth Config menus
│   ├── BetterBatsConfig.java      # Plain Java config data model
│   └── ModMenuIntegration.java    # ModMenu screen factory provider
└── mixin/                         # Bytecode injection layer
    ├── BatMixin.java              # Injects AI goals, flight forces, save data
    ├── GameEventDispatcherMixin.java # Acoustic vibration listener hook
    └── NaturalSpawnerMixin.java   # Dynamic ambient spawner weight replacement

🧩 Tanggung Jawab Kelas Utama ​

  • BatFlightHelper: Stateless mathematical engine computing flocking, cohesion, separation, alignment, and altitude bounds.
  • BatRoostHelper: Checks valid roosting blocks (dripstone, chains, lanterns, leaves, solid ceilings).
  • BatMixin: Surgical bytecode hooks ensuring complete vanilla world-save safety.

Next: Referensi Mixin & Injeksi | Profil Perilaku AI & Status

Official documentation & web portal for Dasik Igaijinn mods.