🦇 3D-BOIDs-Schwarmverhalten, Höhenbegrenzung & Flugmathematik
📌 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.
| Math Parameter | Symbol | Value / Formula | Description |
|---|---|---|---|
| Separation Radius | $r_{\text{sep}$ | 1.5 blocks | Minimum distance before repulsion force triggers |
| Neighbor Radius | $r_{\text{nbr}$ | 8.0 blocks | Bounding sphere for cohesion and alignment |
| Cohesion Weight | $W_{\text{coh}$ | 0.02 | Force pulling towards average flock centroid |
| Alignment Weight | $W_{\text{ali}$ | 0.05 | Force matching average velocity vector of neighbors |
| Separation Weight | $W_{\text{sep}$ | 0.08 | Force pushing away from overlapping bats |
| Max Acceleration | $a_{\text{max}$ | 0.05 blocks/tick² | Maximum steering delta applied per tick |
🧮 Mathematische Formulierung des 3D-BOIDs-Algorithmus
The composite steering force applied to each bat per tick is governed by the classic Reynolds BOIDs vector equation:
$$\vec{F}{\text{steer} = W{\text{coh}\vec{F}{\text{cohesion} + W{\text{ali}\vec{F}{\text{alignment} + W{\text{sep}\vec{F}_{\text{separation}$$
Where each component vector is evaluated against the set of $N$ visible flock neighbors:
$$\vec{F}{\text{cohesion} = \frac{1}{N}\sum^N (\vec{P}i - \vec{P}{\text{self})$$ $$\vec{F}{\text{alignment} = \frac{1}{N}\sum^N \vec{V}i - \vec{V}{\text{self}$$ $$\vec{F}{\text{separation} = \sum^M \frac{\vec{P}_{\text{self} - \vec{P}j}{|\vec{P}{\text{self} - \vec{P}_j|^2}$$
☕ 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!
📈 Höhenbegrenzung über dem Boden
To prevent bats from soaring into upper atmospheric void or despawn ceilings, BatFlightHelper samples the terrain height $Y_{\text{surface}$ directly below the bat and applies a downward restoration force when $Y > Y_{\text{surface} + 12$:
$$F_y = -0.04 \times \frac{Y - (Y_{\text{surface} + 12)}{4.0}$$
Next: Phototaxis & Licht-Kreisen | Schädlingsjagd & Sturzflug
