Skip to content

🏛️ Systemarchitektur & Paket-Layout ​

📌 Quellcode-Hinweis: Die Dokumentation in diesem Wiki gibt den aktuellen Stand des Quellcodes im Repository wieder, einschließlich unfertiger Commits und Entwicklungsfunktionen vor der offiziellen Veröffentlichung auf CurseForge und 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)

☕ Solo-Entwickler-Notiz: Wenn dir die realistischen 3D-Fledermausschwärme und die Guano-Düngung deiner Felder gefallen, unterstütze mich gerne auf Ko-fi!


🌳 Paket-Hierarchiebaum ​

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

🧩 Klassenverantwortlichkeiten ​

  • 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: Mixin-Referenz & Injektionen | Verhaltensprofile & Status

Official documentation & web portal for Dasik Igaijinn mods.