-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture and Package Layout
Rifaditya edited this page Aug 9, 2026
·
1 revision
| Design Principle | Architectural Policy |
|---|---|
| Core Philosophy | Vanilla Outsider (VO) โ Diegetic, non-destructive, input-consistent |
| Design Rule | 1 File, 1 Function Law (Single-responsibility Cohesion) |
| Main Package Namespace | net.vanillaoutsider.betterbats |
| Thread Safety Model | Server-Thread Main Looper Sync (No async world mutation) |
net.vanillaoutsider.betterbats
โโโ BetterBatsFabric.java [ModInitializer: GameRules, Genetics setup]
โโโ BetterBatsFabricClient.java [ClientModInitializer]
โโโ BatStateAccessor.java [State Accessor Interface: Panic & Goals]
โ
โโโ ai
โ โโโ BatDiveBombGoal.java [Predatory Attack Goal on Silverfish & Endermites]
โ โโโ BatFlightHelper.java [3D BOIDs Flocking & Environmental Flight Steering]
โ โโโ BatHuntLightGoal.java [Phototaxis Light Orbiting & Banking AI Goal]
โ โโโ BatPanicGoal.java [Vibration Scattering Panic Flight AI Goal]
โ โโโ BatRoostHelper.java [Roost Surface Surface Validator Helper]
โ โโโ BatSleepGoal.java [Photophobia Daytime Cave Roosting AI Goal]
โ
โโโ config
โ โโโ BetterBatsConfig.java [Config Data Record & JSON Helper]
โ โโโ ClothConfigScreenHelper.java [Cloth Config GUI Integration Helper]
โ โโโ ModMenuIntegration.java [ModMenu API Screen Provider]
โ
โโโ mixin
โ โโโ BatMixin.java [Core Bat Overhaul: Tick, AI, Guano, Echolocation]
โ โโโ GameEventDispatcherMixin.java [Vibration Listener: Explosion, Step, Destroy]
โ โโโ MobAccessor.java [Exposes Mob.getGoalSelector()]
โ โโโ NaturalSpawnerMixin.java [Dynamic Ambient Spawn Weight Interceptor]
โ
โโโ util
โโโ ModVersionGuard.java [Zero-Dependency Version Safety Checker]
Every class in Better Bats follows strict single-function responsibility:
-
BatFlightHelper: Purely handles vector math calculations for BOIDs flocking, ground/ceiling avoidance, and day/night flight steering. -
BatRoostHelper: Purely evaluates block state suitability for bat hanging/roosting. -
GameEventDispatcherMixin: Purely listens for world vibration events and triggers panic accessors.
Better Bats Wiki โข Copyright ยฉ 2026 Dasik (Rifaditya) โข Licensed under GNU GPLv3
๐ The documentation in this Wiki reflects the current source code state in the repository.
- Bat Ecology & Photophobia
- 3D BOIDs Flocking & Math
- Guano Crop Fertilization
- Phototaxis & Light Orbiting
- Pest Control Combat
- Echolocation & Panic
- Chiroptera Genetics
- Dynamic GameRules
- Ambient Spawning Rules
- HUD & Client GUI Config
- Commands & Advancements
- Sounds & Particle Effects
- Troubleshooting & FAQ