
OmniGen
Stop Server Lag. Start Shared Generation. Unleash your CPU with OmniGen's distributed architecture.
Список изменений
OmniGen 0.3.21-BETA — Changelog
🔧 Correctifs critiques
Bundle-once multi-dimension (Nether fix)
Le système de sentinel "bundle-once" ne prenait pas en compte la dimension. Un worker ayant déjà généré de l'Overworld recevait une sentinel vide pour son premier chunk Nether → IllegalStateException → fallback pierre sur tous les chunks du Nether. Corrigé : la clé de tracking est maintenant composite workerId:noiseKey, une sentinel indépendante par dimension et par worker.
PortalPreloader — boucle infinie
Les chunks pré-générés près d'un portail Nether étaient déchargés après quelques secondes. getChunkNow() retournait alors null, ce qui faisait croire au PreLoader que les chunks n'existaient pas → re-dispatch toutes les 5s en boucle, monopolisant des slots worker en permanence. Corrigé : ajout d'un set persistant completedPreloads qui survit aux cycles evict().
✨ Nouveau : Système anti-couture (Seam Verify + Retry)
Après injection d'un résultat worker, le serveur vérifie maintenant les hauteurs de terrain sur les 4 bordures cardinales du chunk. Si un décalage > 16 blocs est détecté avec un voisin, le chunk est re-dispatché automatiquement (max 2 tentatives, avec re-sampling des heightmaps voisins). Zero impact sur les chunks propres — la vérification est O(64) lectures heightmap.
✨ Nouveau : DegradedChunkRegistry — réparation post-promotion
Si un chunk présente encore un décalage de bordure après les 2 tentatives, il est enregistré dans le DegradedChunkRegistry. Toutes les 5 secondes, le serveur tente une réparation en setBlock sur les colonnes de bordure (remplissage STONE/AIR) une fois que le chunk et ses 4 voisins sont promus au statut FULL. Contrainte anti-domino stricte : aucune modification pendant ChunkStatus.NOISE, zéro risque de deadlock ChunkMap.
