💻 Détail de l'architecture et des Mixins (Minecraft 26.3)
📌 Avis de non-responsabilité concernant le code source du dépôt : La documentation de ce Wiki reflète l'état actuel du code source dans le dépôt, qui peut inclure des commits récents non publiés ou des fonctionnalités en cours de développement en avance sur les versions publiques sur CurseForge et Modrinth.
📋 Architectural Infobox
| Component | Technical Details |
|---|---|
| Package Root | net.vanillaoutsider.creativeflyspeed |
| Main Mod Initializer | [CreativeFlySpeedFabric.java](file:///Creative%20Fly%20Speed%20v26.3/Creative%20Fly%20Speed%2026.3/src/main/java/net/vanillaoutsider/creativeflyspeed/CreativeFlySpeedFabric.java) |
| GameRule Registry | [CreativeFlySpeedRules.java](file:///Creative%20Fly%20Speed%20v26.3/Creative%20Fly%20Speed%2026.3/src/main/java/net/vanillaoutsider/creativeflyspeed/CreativeFlySpeedRules.java) |
| Mixin Target Class | net.minecraft.server.level.ServerPlayer |
| Bytecode Injector | @Inject(method = "tick", at = @At("HEAD")) |
| Library Dependency | net.dasik:dasik-library:1.8.36 |
🏗️ Architectural Flow & Package Hierarchy
net.vanillaoutsider.creativeflyspeed/
├── CreativeFlySpeedFabric.java # Mod initialization & GameRule registration
├── CreativeFlySpeedFabricClient.java # Client-side lifecycle stub
├── CreativeFlySpeedRules.java # Dynamic GameRule constants and registration
└── mixin/
└── ServerPlayerMixin.java # Per-tick abilities evaluation & epsilon syncFlow Diagram
[ ServerPlayer.tick() ]
│
▼
[ ServerPlayerMixin.onTick() ]
│
├── Check gameMode (CREATIVE / SPECTATOR)
├── Compute targetSpeed = 0.05f * (permille / 1000f)
│
▼
[ Epsilon Guard: |current - target| > 1e-6f ? ]
├── NO ──> (Zero packets sent, return immediately)
└── YES ──> abilities.setFlyingSpeed(targetSpeed)
player.onUpdateAbilities() (Dispatches sync packet)