promotional banner

Sidereon

Sidereon adds dynamic astronomical cycles, lunar phases, celestial observation tools, and multidimensional sky support to Minecraft.
Back to Files

sidereon-1.1.86.jar

File namesidereon-1.1.86.jar
Uploader
LaercioAvilaLaercioAvila
Uploaded
Sep 24, 2026
Downloads
3
Size
602.7 KB
Mod Loaders
NeoForge
File ID
8962634
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:sidereon-1689234:8962634"

Learn more about Curse Maven

What's new

1.1.86 - Gradle Regression Suite and Civil-Clock Test Coherence

EN-US

  • Officially promotes Sidereon 1.1.85 → Sidereon 1.1.86 without reusing or regressing any previous release.
  • Repairs the Gradle regression suite after the civil solar-clock phase correction: tests that still treated dayTime=12000 as a high Full Moon now use the canonical midnight/high-Moon anchor at dayTime=18000.
  • Replaces the obsolete Full-Moon daytime visibility sample with a physically coherent waning-gibbous morning sample while preserving the invariant that lunar presentation has no binary daytime gate.
  • Updates SkyMotionMathTest so sidereal daily drift is measured as a delta between sidereal samples instead of mixing the absolute solar cardinal phase offset into the assertion.
  • Updates structural release gates to the eager captured-context, visual invalidation, AFTER_SKY boundary and renderSky-reentrancy contracts introduced in 1.1.80–1.1.85.
  • Makes legacy file-reading gates use ReleaseGatePaths instead of process-relative Path.of(...), removing Gradle working-directory sensitivity and the reported NoSuchFileException failures.
  • Does not change production astronomy, celestial rendering, lunar lighting, network protocol, API, EcoTermico integration or ShaderMax/Iris/Distant Horizons ownership.

PT-BR

  • Promove oficialmente Sidereon 1.1.85 → Sidereon 1.1.86 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige a suíte de regressão do Gradle após a correção de fase do relógio civil solar: testes que ainda tratavam dayTime=12000 como Lua Cheia alta passam a usar a âncora canônica de meia-noite/Lua alta em dayTime=18000.
  • Substitui a amostra obsoleta de Lua Cheia durante o dia por uma amostra matinal fisicamente coerente de Lua gibosa minguante, preservando o invariante de que a apresentação lunar não possui bloqueio binário por horário diurno.
  • Atualiza SkyMotionMathTest para medir a deriva sideral diária como delta entre amostras siderais, sem misturar o offset cardinal absoluto do Sol na asserção.
  • Atualiza gates estruturais para os contratos de contexto eager capturado, invalidação visual, boundary AFTER_SKY e reentrância de renderSky introduzidos em 1.1.80–1.1.85.
  • Faz gates legados de leitura de arquivos utilizarem ReleaseGatePaths em vez de Path.of(...) relativo ao processo, removendo dependência do diretório de trabalho do Gradle e os NoSuchFileException reportados.
  • Não altera astronomia de produção, renderer celeste, iluminação lunar, protocolo de rede, API, integração EcoTermico nem ownership ShaderMax/Iris/Distant Horizons.

1.1.85 - RenderSky Mixin Local Reentrancy Coherence

EN-US

  • Officially promotes Sidereon 1.1.84 → Sidereon 1.1.85 without reusing or regressing any previous release.
  • Fixes the remaining renderSky reentrancy hole outside ClientCelestialRenderContext: LevelRendererMixin previously kept partial tick, solar appearance/state scope, transform flags/counters and shared scratch preparation in one mutable field set, so a nested sky invocation could overwrite the outer invocation's local presentation state.
  • Adds a parent-linked SidereonRenderSkyPresentationSnapshot stack for mixin-local presentation state. A backup is allocated only when actual renderSky reentrancy occurs; the normal outer-only frame path remains allocation-free.
  • Nested entry freezes the outer partial tick, SolarDiscRenderStateScope, solar appearance/orientation, transform counters, center-correction input rotations and the captured astronomical halo matrix. If the outer solar scope is currently active, it is suspended to restore its incoming GL state before the child renders; child-local fields are then detached without closing the parent's scope.
  • Nested return restores the exact parent partial tick/state, rebuilds SolarQuadTransformPolicy plus SolarRenderCenterCorrectionPolicy scratch from the frozen parent inputs, restores the halo matrix, and resumes the same outer SolarDiscRenderStateScope before the outer sky invocation continues.
  • A fresh outer renderSky also fail-soft clears any stale local solar capture left by an abnormal previous invocation before beginning a new presentation scope.
  • Preserves the established 1.1.83–1.1.84 parent-linked celestial frame/AFTER_SKY lifecycle; this change is limited to mixin-local presentation state and does not create a second astronomical authority.
  • Does not change celestial time, Sun/Moon/star coordinates, lunar phases, sidereal motion, Moon Illusion, refraction, twilight, atmosphere physics, terrain lighting or celestial artwork.
  • Keeps EcoTermico optional/read-only and preserves ShaderMax/Iris/Distant Horizons per-channel presentation ownership.
  • Network protocol remains 8, AstronomySyncPayload remains V4, public API remains 1, and celestial-context contract remains 2.

PT-BR

  • Promove oficialmente Sidereon 1.1.84 → Sidereon 1.1.85 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige a lacuna restante de reentrância de renderSky fora de ClientCelestialRenderContext: o LevelRendererMixin ainda mantinha partial tick, aparência/escopo de estado solar, flags/contadores de transformação e preparação dos scratches em um único conjunto mutável de campos, permitindo que uma chamada aninhada sobrescrevesse o estado local da chamada externa.
  • Adiciona uma pilha pai/filho SidereonRenderSkyPresentationSnapshot para o estado local de apresentação do mixin. O backup é alocado somente quando há reentrância real de renderSky; o caminho normal com apenas o frame externo continua sem nova alocação.
  • A entrada aninhada congela o partial tick externo, SolarDiscRenderStateScope, aparência/orientação solar, contadores de transformação, rotações de entrada da correção de centro e a matriz astronômica capturada para o halo. Se o escopo solar externo estiver ativo, ele é suspenso para restaurar o estado GL de entrada antes do render filho; depois os campos locais do filho são desacoplados sem fechar o escopo do pai.
  • No retorno aninhado, o partial tick/estado exatos do pai são restaurados, os scratches de SolarQuadTransformPolicy e SolarRenderCenterCorrectionPolicy são reconstruídos, a matriz do halo é recuperada e o mesmo SolarDiscRenderStateScope externo é retomado antes de a chamada externa continuar.
  • Um novo renderSky externo também limpa de forma fail-soft qualquer captura solar local obsoleta deixada por uma invocação anterior anormal antes de iniciar o novo escopo de apresentação.
  • Preserva o lifecycle pai/filho de frame celeste/AFTER_SKY consolidado nas versões 1.1.83–1.1.84; esta mudança fica limitada ao estado local de apresentação do mixin e não cria uma segunda autoridade astronômica.
  • Não altera tempo celeste, coordenadas de Sol/Lua/estrelas, fases lunares, movimento sideral, Moon Illusion, refração, twilight, física atmosférica, iluminação do terreno nem artwork celeste.
  • Mantém EcoTermico opcional/read-only e preserva o ownership de apresentação por canal com ShaderMax/Iris/Distant Horizons.
  • O protocolo de rede permanece 8, AstronomySyncPayload permanece V4, a API pública permanece 1 e o contrato de contexto celeste permanece 2.

1.1.84 - AFTER_SKY Boundary Generation Coherence

EN-US

  • Officially promotes Sidereon 1.1.83 → Sidereon 1.1.84 without reusing or regressing any previous release.
  • Fixes the remaining terminal-frame race where the LOWEST AFTER_SKY completion callback did not carry the identity of the AFTER_SKY event it was finishing and could therefore release a newer pending sky frame created before the older event finished dispatching.
  • Adds a monotonic AfterSkyBoundarySample stack. A HIGHEST AFTER_SKY listener freezes the exact pending outer SkyFrameSample before normal consumers execute.
  • resolveAfterSky(...) now prefers the frame frozen by the active AFTER_SKY boundary, so a nested render/event cannot change the context seen by the older event while it is still dispatching.
  • finishSkyFrame() pops exactly the active AFTER_SKY boundary and only clears pendingAfterSkyFrameSample when the completed boundary still owns that exact frame.
  • Nested AFTER_SKY boundaries that reference the same frame defer release to their parent, preventing premature cleanup while outer lower-priority consumers still need the frozen context.
  • If a nested boundary captures a newer sky frame, it may complete and release that newer pending frame without destroying the older parent boundary's immutable context.
  • Hard world/session invalidation now clears both renderSky and AFTER_SKY boundary stacks; client-only visual invalidation preserves an active AFTER_SKY boundary until terminal completion.
  • Does not change celestial time, Sun/Moon/star coordinates, lunar phases, sidereal motion, Moon Illusion, refraction, twilight, atmosphere physics, terrain lighting or celestial artwork.
  • Keeps EcoTermico optional/read-only and preserves ShaderMax/Iris/Distant Horizons per-channel presentation ownership.
  • Network protocol remains 8, AstronomySyncPayload remains V4, public API remains 1, and celestial-context contract remains 2.

PT-BR

  • Promove oficialmente Sidereon 1.1.83 → Sidereon 1.1.84 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige a corrida terminal restante em que o callback LOWEST de conclusão do AFTER_SKY não carregava a identidade do evento AFTER_SKY que estava encerrando e, por isso, podia liberar um sky frame pendente mais novo criado antes de a dispatch antiga terminar.
  • Adiciona uma pilha monotônica AfterSkyBoundarySample. Um listener HIGHEST de AFTER_SKY congela o SkyFrameSample externo pendente exato antes dos consumidores normais.
  • resolveAfterSky(...) passa a priorizar o frame congelado pelo boundary AFTER_SKY ativo, impedindo que um render/evento aninhado altere o contexto visto pelo evento antigo enquanto sua dispatch ainda está em andamento.
  • finishSkyFrame() desempilha exatamente o boundary AFTER_SKY ativo e só limpa pendingAfterSkyFrameSample quando o boundary concluído ainda possui exatamente aquele frame.
  • Boundaries AFTER_SKY aninhados que referenciam o mesmo frame deixam a liberação para o pai, evitando cleanup prematuro enquanto consumidores externos de prioridade inferior ainda precisam do contexto congelado.
  • Se um boundary aninhado capturar um sky frame mais novo, ele pode concluir e liberar esse pending frame novo sem destruir o contexto imutável do boundary pai antigo.
  • A invalidação dura de mundo/sessão passa a limpar tanto a pilha renderSky quanto a pilha de boundaries AFTER_SKY; a invalidação visual client-only preserva um boundary AFTER_SKY ativo até sua conclusão terminal.
  • Não altera tempo celeste, coordenadas de Sol/Lua/estrelas, fases lunares, movimento sideral, Moon Illusion, refração, twilight, física atmosférica, iluminação do terreno nem artwork celeste.
  • Mantém EcoTermico opcional/read-only e preserva o ownership de apresentação por canal com ShaderMax/Iris/Distant Horizons.
  • O protocolo de rede permanece 8, AstronomySyncPayload permanece V4, a API pública permanece 1 e o contrato de contexto celeste permanece 2.

1.1.83 - Sky Frame Reentrancy Coherence

EN-US

  • Officially promotes Sidereon 1.1.82 → 1.1.83 without reusing or regressing any previous release.
  • Fixes a remaining renderSky reentrancy hole: a nested sky invocation can no longer overwrite the outer immutable SkyFrameSample and then terminate the outer sky pass when the nested call returns.
  • Adds a parent-linked SkyFrameSample chain. Nested passes receive their own monotonically newer generation while retaining the exact outer sample as their parent.
  • Adds a separate pendingAfterSkyFrameSample so NeoForge AFTER_SKY remains bound to the outermost sky invocation rather than whichever nested invocation happened to run last.
  • endSkyPass() now restores the parent sample for nested calls and only closes the active sky pass when the outermost invocation returns.
  • finishSkyFrame() now releases the pending outer AFTER_SKY sample without destroying a newer/nested sky pass that is still active at that boundary.
  • Parent frames are required to precede child generations and to share the exact ClientLevel/dimension identity, preventing cross-world nesting contamination.
  • Keeps the 1.1.82 live-time isolation rule: an in-flight frame never re-reads live gameTime, while the reusable inter-frame CacheEntry still observes gameTime normally.
  • Keeps celestial astronomy, Sun/Moon/star positions, lunar phase, Moon Illusion, refraction, twilight, optional EcoTermico integration, ShaderMax/Iris/Distant Horizons ownership, network protocol 8, AstronomySyncPayload V4, public API 1 and celestial-context contract 2 unchanged.

PT-BR

  • Promove oficialmente o Sidereon 1.1.82 → 1.1.83 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige uma lacuna restante de reentrância do renderSky: uma chamada celeste aninhada não pode mais substituir o SkyFrameSample imutável externo e depois encerrar o sky pass externo quando a chamada interna retorna.
  • Adiciona uma cadeia pai/filho de SkyFrameSample. Passes aninhados recebem geração monotonicamente mais nova e preservam a amostra externa exata como pai.
  • Adiciona pendingAfterSkyFrameSample separado para que o AFTER_SKY do NeoForge permaneça ligado à chamada celeste mais externa, e não à última chamada aninhada executada.
  • endSkyPass() passa a restaurar a amostra pai nas chamadas aninhadas e somente encerra o sky pass ativo quando a invocação mais externa retorna.
  • finishSkyFrame() passa a liberar a amostra externa pendente de AFTER_SKY sem destruir uma chamada mais nova/aninhada que ainda esteja ativa nesse limite.
  • Frames pais precisam ter geração anterior ao filho e compartilhar exatamente a mesma identidade de ClientLevel/dimensão, evitando contaminação de nesting entre mundos.
  • Mantém a regra de isolamento temporal da 1.1.82: um frame em andamento nunca relê o gameTime vivo, enquanto o CacheEntry reutilizável entre frames continua observando gameTime normalmente.
  • Mantém inalterados astronomia celeste, posições de Sol/Lua/estrelas, fase lunar, Moon Illusion, refração, twilight, integração opcional com EcoTermico, ownership ShaderMax/Iris/Distant Horizons, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2.

1.1.82 - Sky Frame Live-Time Isolation Coherence

EN-US

  • Officially promotes Sidereon 1.1.81 → 1.1.82 without reusing or regressing any previous release.
  • Fixes a remaining intra-frame temporal coherence hole: an already-captured SkyFrameSample no longer re-reads live ClientLevel.getGameTime() to decide whether it is still the same frame.
  • Adds an internal monotonically increasing sky-frame generation and requires the active sample to match that generation plus the exact ClientLevel and dimension identity.
  • Removes gameTime from SkyFrameSample identity while preserving gameTime in the normal reusable CacheEntry key, so time changes still invalidate subsequent frame resolutions normally.
  • Preserves the complete immutable CelestialRenderContext captured at renderSky HEAD through the rest of the sky pass and AFTER_SKY, even if another mod or synchronization path changes world time during that frame.
  • Keeps celestial astronomy, Sun/Moon/star positions, lunar phase, Moon Illusion, refraction, twilight, optional EcoTermico integration, ShaderMax/Iris/Distant Horizons ownership, network protocol 8, AstronomySyncPayload V4, public API 1 and celestial-context contract 2 unchanged.

PT-BR

  • Promove oficialmente o Sidereon 1.1.81 → 1.1.82 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige uma lacuna temporal restante dentro do frame: um SkyFrameSample já capturado deixa de reler ClientLevel.getGameTime() vivo para decidir se ainda pertence ao mesmo frame.
  • Adiciona uma geração interna monotônica do sky frame e exige que a amostra ativa corresponda a essa geração, ao ClientLevel exato e à identidade da dimensão.
  • Remove gameTime da identidade de SkyFrameSample, preservando gameTime na chave normal de CacheEntry; assim, mudanças de tempo continuam invalidando normalmente as resoluções dos frames seguintes.
  • Preserva o CelestialRenderContext completo e imutável capturado no HEAD de renderSky durante todo o restante do sky pass e AFTER_SKY, mesmo se outro mod ou uma sincronização alterar o tempo do mundo durante esse frame.
  • Mantém inalterados astronomia celeste, posições de Sol/Lua/estrelas, fase lunar, Moon Illusion, refração, twilight, integração opcional com EcoTermico, ownership ShaderMax/Iris/Distant Horizons, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2.

1.1.81 - Sky Frame Context Capture Coherence

EN-US

  • Officially promotes Sidereon 1.1.80 → 1.1.81 without reusing or regressing any previous release.
  • Fixes the remaining sky-frame race between the renderSky HEAD capture and the first celestial consumer. In 1.1.80, SkyFrameSample already preserved the frame after it had resolved a context, but that context itself was still created lazily. A visual-config or runtime shader/ownership change in that short interval could therefore make the started frame observe a newer presentation sample than the one that existed when HEAD ran.
  • ClientCelestialRenderContext.beginSkyFrame(...) now resolves one capturedContext immediately from the captured partial tick and stores it as a final member of SkyFrameSample.
  • resolveSkyPass(...) and resolveAfterSky(...) now return the exact captured context instead of triggering a first-use re-resolution. The frame therefore freezes visual revision, shader handshake/capability, celestial ownership, DH/Iris state, atmosphere, twilight and astronomy from HEAD through terminal AFTER_SKY.
  • Updates historical structural gates that explicitly required the old lazy SkyFrameSample behavior so they now protect single-context frame coherence without reintroducing the race.
  • Preserves all 1.1.78–1.1.80 lifecycle/generation protections, astronomy, Sun/Moon/star positions, lunar phases, Moon Illusion, refraction, stellar catalogue, optional EcoTermico integration and ShaderMax/Iris/Distant Horizons presentation contracts.
  • Network protocol remains 8, AstronomySyncPayload remains V4, public API remains 1, and the celestial-context contract remains 2.

PT-BR

  • Promove oficialmente o Sidereon 1.1.80 → 1.1.81 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige a corrida restante do sky frame entre a captura no HEAD de renderSky e o primeiro consumidor celeste. Na 1.1.80, SkyFrameSample já preservava o frame depois que um contexto havia sido resolvido, porém o próprio contexto ainda era criado de forma lazy. Uma mudança de configuração visual ou de shader/ownership nesse curto intervalo podia fazer o frame já iniciado observar uma amostra de apresentação mais nova do que a existente quando o HEAD executou.
  • ClientCelestialRenderContext.beginSkyFrame(...) agora resolve imediatamente um único capturedContext usando o partial tick capturado e o armazena como membro final de SkyFrameSample.
  • resolveSkyPass(...) e resolveAfterSky(...) passam a devolver exatamente o contexto capturado, sem fazer uma primeira resolução tardia. O frame congela revisão visual, handshake/capability de shader, ownership celeste, estado DH/Iris, atmosfera, twilight e astronomia desde o HEAD até o AFTER_SKY terminal.
  • Atualiza gates estruturais históricos que exigiam explicitamente o comportamento lazy antigo de SkyFrameSample, para que passem a proteger a coerência de um único contexto por frame sem reintroduzir a corrida.
  • Preserva todas as proteções de lifecycle/geração das versões 1.1.78–1.1.80, astronomia, posições de Sol/Lua/estrelas, fases lunares, Moon Illusion, refração, catálogo estelar, integração EcoTermico opcional e contratos de apresentação ShaderMax/Iris/Distant Horizons.
  • O protocolo de rede permanece 8, AstronomySyncPayload permanece V4, a API pública permanece 1 e o contrato de contexto celeste permanece 2.

1.1.80 - Visual Frame Invalidation Coherence

EN-US

  • Officially promotes Sidereon 1.1.79 → 1.1.80 without reusing or regressing any previous release.
  • Fixes a frame-coherence race where a client visual change could call the hard ClientCelestialRenderContext.invalidate() while Minecraft's current renderSky sample was still active or waiting for AFTER_SKY, allowing one rendered frame to resolve more than one visual contract.
  • Adds ClientCelestialRenderContext.invalidateVisualPresentation(), which clears the reusable presentation cache but preserves an already captured skyFrameSample while skyPassActive or skyFramePendingAfterSky is true.
  • CelestialVisualModeTransitionCoordinator now uses the narrow visual invalidation path. A frame that already captured a context remains immutable through its terminal AFTER_SKY; the new visual revision is resolved naturally by the next frame.
  • Keeps hard invalidate() semantics unchanged for logout, world/dimension replacement and other real lifecycle boundaries: those paths still drop cached context, sky-frame sample and observed-level identity immediately.
  • Preserves the 1.1.79 stellar transition generation guards and the 1.1.78 GPU-owner/lifecycle cleanup guards without widening their authority into astronomy.
  • Does not change celestial time, Sun/Moon/star coordinates, lunar phases, sidereal motion, Moon Illusion, refraction, twilight, atmospheric/physical visibility or terrain lighting.
  • Keeps EcoTermico optional/read-only and preserves ShaderMax/Iris/Distant Horizons per-channel ownership semantics.
  • Network protocol remains 8, AstronomySyncPayload remains V4, public API remains 1, and celestial-context contract remains 2.

PT-BR

  • Promove oficialmente Sidereon 1.1.79 → Sidereon 1.1.80 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige uma corrida de coerência de frame em que uma mudança visual do cliente podia chamar o ClientCelestialRenderContext.invalidate() completo enquanto a amostra atual de renderSky ainda estava ativa ou aguardando o AFTER_SKY, permitindo que um mesmo frame resolvesse mais de um contrato visual.
  • Adiciona ClientCelestialRenderContext.invalidateVisualPresentation(), que limpa o cache reutilizável de apresentação, mas preserva um skyFrameSample já capturado enquanto skyPassActive ou skyFramePendingAfterSky estiver ativo.
  • CelestialVisualModeTransitionCoordinator passa a usar a invalidação visual estreita. Um frame que já capturou contexto permanece imutável até seu AFTER_SKY terminal; a nova revisão visual é resolvida naturalmente no frame seguinte.
  • Mantém inalterada a semântica de invalidate() completo para logout, troca de mundo/dimensão e outras fronteiras reais de lifecycle: esses caminhos continuam descartando imediatamente cache, amostra do frame e identidade do nível observado.
  • Preserva as proteções geracionais de transição estelar da 1.1.79 e os guards de owner/lifecycle de recursos GPU da 1.1.78, sem ampliar a autoridade deles para a astronomia.
  • Não altera tempo celeste, coordenadas de Sol/Lua/estrelas, fases lunares, movimento sideral, Moon Illusion, refração, twilight, visibilidade atmosférica/física nem iluminação do terreno.
  • Mantém EcoTermico opcional/read-only e preserva a semântica de ownership por canal com ShaderMax/Iris/Distant Horizons.
  • O protocolo de rede permanece 8, AstronomySyncPayload permanece V4, a API pública permanece 1 e o contrato de contexto celeste permanece 2.

1.1.79 - Stellar Transition Generation Coherence

EN-US

  • Officially promotes Sidereon 1.1.78 → 1.1.79 without reusing or regressing any previous release.
  • Fixes the remaining queued stellar-presentation race where an older VANILLA/SIDEREON transition could reach the render thread after a newer stellar style or a newer world/session had already become authoritative.
  • Adds a monotonic STELLAR_PRESENTATION_TRANSITION_GENERATION and an immutable StellarPresentationTransition token carrying the transition generation, the presentation-lifecycle generation that created it, and the target CelestialVisualContract.
  • Queued stellar cleanup now validates both generations before touching any star/constellation VBO. A newer stellar transition invalidates older visual callbacks, while a world/dimension/session boundary invalidates callbacks from the previous presentation lifecycle.
  • Keeps the render-path fallback independent from deferred callback identity: when the current immutable frame needs a different stellar presentation, the render thread may still rebuild directly from that frame's CelestialVisualContract.
  • Preserves the existing no-op optimization when buffers already match the target useSidereonStarArtwork() state, avoiding unnecessary VBO destruction/rebuild.
  • Keeps the 1.1.78 GraphicsResourceOwner, presentation lifecycle generation and exact-instance Moon suppression texture guards unchanged.
  • Does not change celestial astronomy, Sun/Moon/star coordinates, lunar phases, sidereal motion, Moon Illusion, refraction, twilight, atmospheric/physical visibility, or terrain lighting.
  • Keeps EcoTermico optional/read-only and preserves ShaderMax/Iris/Distant Horizons per-channel ownership semantics.
  • Network protocol remains 8, AstronomySyncPayload remains V4, public API remains 1, and celestial-context contract remains 2.

PT-BR

  • Promove oficialmente Sidereon 1.1.78 → Sidereon 1.1.79 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige a corrida restante das transições estelares enfileiradas, em que uma transição VANILLA/SIDEREON antiga podia chegar à render thread depois que um estilo estelar mais novo ou uma nova sessão/mundo já havia se tornado autoritativa.
  • Adiciona a geração monotônica STELLAR_PRESENTATION_TRANSITION_GENERATION e um token imutável StellarPresentationTransition contendo a geração da transição, a geração do lifecycle de apresentação que a originou e o CelestialVisualContract alvo.
  • A limpeza estelar enfileirada passa a validar as duas gerações antes de tocar qualquer VBO de estrelas/constelações. Uma transição estelar mais nova invalida callbacks visuais antigos, enquanto uma fronteira de mundo/dimensão/sessão invalida callbacks do lifecycle anterior.
  • Mantém o fallback do hot path independente da identidade do callback adiado: quando o frame imutável atual exige outra apresentação estelar, a render thread ainda pode reconstruir diretamente a partir do CelestialVisualContract daquele frame.
  • Preserva a otimização existente de no-op quando os buffers já correspondem ao estado alvo de useSidereonStarArtwork(), evitando destruição/rebuild desnecessários de VBO.
  • Mantém inalteradas as proteções da 1.1.78 com GraphicsResourceOwner, geração do lifecycle de apresentação e identidade exata da textura interna de supressão lunar.
  • Não altera astronomia celeste, coordenadas de Sol/Lua/estrelas, fases lunares, movimento sideral, Moon Illusion, refração, twilight, visibilidade atmosférica/física nem iluminação do terreno.
  • Mantém EcoTermico opcional/read-only e preserva a semântica de ownership por canal com ShaderMax/Iris/Distant Horizons.
  • O protocolo de rede permanece 8, AstronomySyncPayload permanece V4, a API pública permanece 1 e o contrato de contexto celeste permanece 2.

1.1.78 - Deferred Render Cleanup Generation Coherence

EN-US

  • Officially promotes Sidereon 1.1.77 → 1.1.78 without reusing or regressing any previous release.
  • Fixes a deferred render-thread cleanup race where a world/session cleanup queued for an older ClientLevel could execute after a newer level had already claimed or rebuilt Sidereon GPU resources.
  • Adds an immutable GraphicsResourceOwner generation token carrying the owning ClientLevel and dimension. Deferred VBO cleanup captures the exact token and becomes a no-op if ownership has changed before execution.
  • Adds a separate monotonic presentation-lifecycle generation to deferred cleanup. World/dimension/session boundaries invalidate older callbacks, including ownerless requests, so delayed cleanup cannot reset smoothing or CelestialRenderClock for a newer session; off-render-thread cleanup always executes through the render queue.
  • Keeps the synchronous render-path fallback: when AFTER_SKY itself observes an owner replacement, it releases only the owner generation it observed and then claims a new generation for the current level.
  • Prevents queued stellar-style cleanup from tearing down star/constellation buffers that the render thread already rebuilt for the requested target presentation.
  • Makes InternalTransparentCelestialTexture generation-safe by capturing the exact DynamicTexture instance scheduled for release; an older callback cannot unregister a newer recreated Moon-suppression texture.
  • Preserves the existing selective lifecycle behavior: immutable astronomy, lunar geometry, star catalogues, phase logic, Moon Illusion, refraction, twilight and physical visibility rules are unchanged.
  • Keeps EcoTermico optional/read-only and preserves ShaderMax/Iris/Distant Horizons per-channel ownership semantics.
  • Network protocol remains 8, AstronomySyncPayload remains V4, public API remains 1, and celestial-context contract remains 2.

PT-BR

  • Promove oficialmente Sidereon 1.1.77 → 1.1.78 sem reutilizar nem regredir nenhuma versão anterior.
  • Corrige uma corrida de limpeza enfileirada na render thread em que um cleanup pertencente a um ClientLevel antigo podia executar depois que um nível mais novo já havia reivindicado ou reconstruído recursos GPU do Sidereon.
  • Adiciona um token imutável GraphicsResourceOwner com geração, ClientLevel proprietário e dimensão. A limpeza adiada dos VBOs captura o token exato e vira no-op se o ownership tiver mudado antes da execução.
  • Adiciona uma geração monotônica separada para o lifecycle de apresentação. Fronteiras de mundo/dimensão/sessão invalidam callbacks antigos, inclusive pedidos sem owner, impedindo que uma limpeza atrasada reinicie smoothing ou CelestialRenderClock de uma sessão mais nova; cleanup fora da render thread sempre passa pela fila de render.
  • Preserva o fallback síncrono do renderer: quando o próprio AFTER_SKY detecta troca de owner, ele libera somente a geração observada e então reivindica uma nova geração para o nível atual.
  • Impede que uma limpeza estelar enfileirada destrua buffers de estrelas/constelações que a render thread já reconstruiu para a apresentação visual alvo.
  • Torna InternalTransparentCelestialTexture segura por geração ao capturar a instância exata de DynamicTexture destinada à liberação; um callback antigo não pode remover uma textura transparente de supressão lunar recriada mais nova.
  • Preserva o lifecycle seletivo existente: astronomia imutável, geometria lunar, catálogos estelares, lógica de fases, Moon Illusion, refração, twilight e regras físicas de visibilidade permanecem inalterados.
  • Mantém EcoTermico opcional/read-only e preserva a semântica de ownership por canal com ShaderMax/Iris/Distant Horizons.
  • O protocolo de rede permanece 8, AstronomySyncPayload permanece V4, a API pública permanece 1 e o contrato de contexto celeste permanece 2.

1.1.77 - Visual Transition Temporal Isolation

EN-US

  • Officially promotes Sidereon 1.1.76 → 1.1.77 without reusing or regressing previous releases.
  • Fixes a presentation/temporal coupling where a client-only VANILLA ↔ SIDEREON style change could call resetPresentationState() and consequently reset CelestialRenderClock.
  • Makes visualConfigRevision an explicit presentation epoch for CelestialPresentationSmoothingState. A changed revision clears only Moon/star late-channel smoothing; the same revision is a no-op and preserves normal frame-to-frame interpolation.
  • RealisticNightSkyRenderer validates the immutable frame's visualConfigRevision() before consuming any late-channel smoothing, closing the race between an off-render-thread config change and a queued GPU-resource transition.
  • onVisualConfigChanged(...) now handles only presentation-dependent GPU resource work. It no longer resets the astronomical render timeline for a graphics preference change.
  • Keeps CelestialRenderClock.reset() exclusively on world/dimension/session presentation lifecycle boundaries through resetPresentationState().
  • Adds regression coverage proving that visual revision changes discard visual interpolation history while lifecycle resets still clear both smoothing and the render clock boundary.
  • Preserves Sun/Moon/star positions, lunar phases, Moon Illusion, refraction, twilight, physical horizon, weather authority, stellar catalogue/motion and per-channel shader ownership.
  • Keeps EcoTermico optional and preserves ShaderMax/Iris/Distant Horizons integration behavior.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.76 → 1.1.77, sem reutilizar nem regredir versões anteriores.
  • Corrige um acoplamento entre apresentação e tempo no qual uma troca client-only VANILLA ↔ SIDEREON podia chamar resetPresentationState() e, por consequência, reiniciar CelestialRenderClock.
  • Torna visualConfigRevision um epoch explícito de apresentação para CelestialPresentationSmoothingState. Quando a revisão muda, apenas o smoothing tardio de Lua/estrelas é descartado; a mesma revisão é no-op e preserva a interpolação normal entre frames.
  • RealisticNightSkyRenderer valida visualConfigRevision() do frame imutável antes de consumir qualquer smoothing tardio, fechando a corrida entre uma mudança de configuração fora da render thread e uma transição de recursos GPU enfileirada.
  • onVisualConfigChanged(...) passa a cuidar somente do trabalho de recursos GPU dependentes da apresentação. Ele não reinicia mais a timeline astronômica por causa de uma preferência gráfica.
  • Mantém CelestialRenderClock.reset() exclusivamente nas fronteiras reais de ciclo de vida de mundo/dimensão/sessão por meio de resetPresentationState().
  • Adiciona cobertura de regressão provando que mudanças de revisão visual descartam apenas histórico de interpolação visual, enquanto resets de ciclo de vida continuam limpando smoothing e a fronteira do relógio de render.
  • Preserva posições de Sol/Lua/estrelas, fases lunares, Moon Illusion, refração, twilight, horizonte físico, autoridade climática, catálogo/movimento estelar e ownership de shader por canal.
  • Mantém EcoTermico opcional e preserva o comportamento de integração com ShaderMax/Iris/Distant Horizons.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.76 - Late-Channel Ownership Smoothing Coherence

EN-US

  • Officially promotes Sidereon 1.1.75 → 1.1.76 without reusing or regressing previous releases.
  • Fixes stale late-render smoothing state when optional render integrations change per-channel ownership at runtime. Moon and stellar presentation no longer share one smoothing clock/history.
  • Adds CelestialPresentationSmoothingState, with independent lunar and stellar timelines, initialization state and reset/deactivation boundaries.
  • Stops driving an unowned Moon toward a synthetic opacity of 1.0; when an external shader owns the Moon, Sidereon discards its lunar smoothing history instead of accumulating hidden presentation state.
  • When Moon ownership returns to Sidereon, the first local sample starts from the current resolved target, preventing stale brightness/fade flashes from a previous ownership epoch.
  • Applies the same ownership-scoped reset rule to stars/constellations and clears both late-channel histories whenever no Sidereon late channel is drawable or Distant Horizons vetoes the late overlay.
  • Makes the AFTER_SKY hot path channel-lazy: lunar visibility/opacity is resolved only when Sidereon owns the Moon, while stellar visibility is resolved only when Sidereon owns stars or constellations.
  • Reuses the already-captured CelestialRenderContext.atmosphere() directly; no redundant weather-influence branch is repeated inside the late renderer.
  • Does not change solar/lunar orbit, phases, Moon Illusion, refraction, twilight, physical horizon, terrain groundLightFactor, stellar catalogue/motion or GPU ownership rules.
  • Keeps EcoTermico optional and preserves ShaderMax/Iris/Distant Horizons per-channel ownership boundaries.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.75 → 1.1.76, sem reutilizar nem regredir versões anteriores.
  • Corrige estado de suavização tardia obsoleto quando integrações gráficas opcionais mudam o ownership por canal em runtime. Lua e apresentação estelar deixam de compartilhar um único relógio/histórico de smoothing.
  • Adiciona CelestialPresentationSmoothingState, com timelines, inicialização e fronteiras de reset/desativação independentes para Lua e camada estelar.
  • Deixa de empurrar uma Lua sem ownership do Sidereon para uma opacidade sintética de 1.0; quando um shader externo possui a Lua, o Sidereon descarta o histórico de smoothing lunar em vez de acumular estado visual oculto.
  • Quando o ownership lunar retorna ao Sidereon, a primeira amostra local parte do alvo atualmente resolvido, evitando flashes de brilho/fade herdados de uma época de ownership anterior.
  • Aplica a mesma regra de reset por ownership a estrelas/constelações e limpa os dois históricos tardios quando nenhum canal tardio do Sidereon pode ser desenhado ou quando o Distant Horizons veta o overlay tardio.
  • Torna o hot path de AFTER_SKY lazy por canal: visibilidade/opacidade lunar só é resolvida quando o Sidereon possui a Lua, enquanto visibilidade estelar só é resolvida quando possui estrelas ou constelações.
  • Reutiliza diretamente CelestialRenderContext.atmosphere() já capturado; o renderer tardio não repete mais um branch redundante de influência climática.
  • Não altera órbita solar/lunar, fases, Moon Illusion, refração, twilight, horizonte físico, groundLightFactor do terreno, catálogo/movimento estelar nem regras de ownership GPU.
  • Mantém EcoTermico opcional e preserva as fronteiras de ownership por canal com ShaderMax/Iris/Distant Horizons.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.75 - Lunar Frame Geometry Reuse Coherence

EN-US

  • Officially promotes Sidereon 1.1.74 → 1.1.75 without reusing or regressing previous releases.
  • Removes the remaining duplicate lunar-geometry derivation from the SIDEREON late-render path: the renderer now consumes the Sun/Moon positions already captured in CelestialAstronomyFrame instead of re-projecting the same MotionState.
  • Adds a pre-resolved-position overload to CelestialAlignmentMath.sunMoon(...), preserving the exact captured HorizontalPosition instances while deriving only their angular separation.
  • Adds a LunarVisibilityPolicy.evaluate(CelestialAstronomyFrame, ...) overload so lunar altitude, astronomical horizon and Sun/Moon separation are resolved from the same immutable frame geometry used by the rest of celestial presentation.
  • Adds a resolved-visibility overload for presentationOpacityWithoutHorizon(...), allowing the renderer to reuse the already-computed sky luminance, illuminated fraction and solar separation without a second orbital projection/alignment pass.
  • Preserves all historical MotionState overloads and their behavior for non-render callers.
  • Does not change lunar orbit, phase timing, Moon Illusion, apparent refraction, twilight, physical horizon rules, atmospheric transmission or terrain groundLightFactor.
  • Keeps EcoTermico optional and preserves ShaderMax/Iris/Distant Horizons ownership boundaries.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.74 → 1.1.75, sem reutilizar nem regredir versões anteriores.
  • Remove a derivação duplicada restante da geometria lunar no caminho de render tardio SIDEREON: o renderer passa a consumir as posições de Sol/Lua já capturadas em CelestialAstronomyFrame, em vez de reprojetar o mesmo MotionState.
  • Adiciona um overload de CelestialAlignmentMath.sunMoon(...) para posições já resolvidas, preservando exatamente as instâncias de HorizontalPosition capturadas e derivando apenas a separação angular.
  • Adiciona LunarVisibilityPolicy.evaluate(CelestialAstronomyFrame, ...), fazendo altitude lunar, horizonte astronômico e separação Sol–Lua virem da mesma geometria imutável do frame usada pelo restante da apresentação celeste.
  • Adiciona um overload de presentationOpacityWithoutHorizon(...) baseado na visibilidade já resolvida, permitindo reutilizar luminância do céu, fração iluminada e separação solar sem uma segunda projeção/alinhamento orbital.
  • Preserva todos os overloads históricos baseados em MotionState e seu comportamento para callers fora do renderer.
  • Não altera órbita lunar, timing das fases, Moon Illusion, refração aparente, twilight, regra física de horizonte, transmissão atmosférica nem groundLightFactor do terreno.
  • Mantém EcoTermico opcional e preserva as fronteiras de ownership com ShaderMax/Iris/Distant Horizons.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.74 - Lunar Presentation Twilight Coherence

EN-US

  • Officially promotes Sidereon 1.1.73 → 1.1.74 without reusing or regressing previous releases.
  • Fixes the remaining SIDEREON lunar-presentation mismatch where stars/atmosphere used the frame-resolved CelestialRenderContext.twilight() while Moon contrast independently recalculated SkyMotionMath.twilightFactor(dayTime).
  • Adds explicit-twilight overloads to LunarVisibilityPolicy.evaluate(...) and presentationOpacityWithoutHorizon(...), allowing the renderer to consume one already-resolved dusk/dawn authority for the entire celestial frame.
  • Updates RealisticNightSkyRenderer to pass the exact same renderContext.twilight() to lunar visibility and unhorizoned Moon-opacity resolution that it already uses for stars.
  • Keeps legacy overloads intact; callers without a frame-resolved twilight retain the previous SkyMotionMath.twilightFactor(...) fallback semantics.
  • Restricts the explicit twilight signal to apparent sky luminance and lunar display contrast. It does not change the Moon's astronomical altitude/azimuth, phase, Sun/Moon separation, physical horizon, atmospheric physical transmission or groundLightFactor.
  • Preserves the 1.1.72/1.1.73 solar/cardinal/render-center corrections byte-for-byte outside the two intended lunar-presentation consumers.
  • Keeps EcoTermico optional and does not add any time/cardinal/weather dependency.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.73 → 1.1.74, sem reutilizar nem regredir versões anteriores.
  • Corrige a divergência restante da apresentação lunar SIDEREON em que estrelas/atmosfera usavam CelestialRenderContext.twilight() já resolvido no frame, enquanto o contraste da Lua recalculava independentemente SkyMotionMath.twilightFactor(dayTime).
  • Adiciona overloads com twilight explícito em LunarVisibilityPolicy.evaluate(...) e presentationOpacityWithoutHorizon(...), permitindo que o renderer consuma uma única autoridade de amanhecer/entardecer já resolvida para todo o frame celeste.
  • Atualiza RealisticNightSkyRenderer para passar exatamente o mesmo renderContext.twilight() à visibilidade lunar e à opacidade sem horizonte da Lua que já é usada pelas estrelas.
  • Mantém os overloads históricos; callers sem twilight resolvido por frame preservam a semântica anterior com fallback em SkyMotionMath.twilightFactor(...).
  • Restringe o twilight explícito à luminância aparente do céu e ao contraste visual da Lua. Ele não altera altitude/azimute astronômicos, fase, separação Sol-Lua, horizonte físico, transmissão atmosférica física nem groundLightFactor.
  • Preserva byte a byte as correções solar/cardinal/centro de render das 1.1.72/1.1.73 fora dos dois consumidores de apresentação lunar intencionalmente alterados.
  • Mantém EcoTermico opcional e não adiciona dependência de tempo/cardinal/clima.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.73 - Solar Render Center Coherence

EN-US

  • Officially promotes Sidereon 1.1.72 → 1.1.73 without reusing or regressing previous releases.
  • Fixes the remaining SIDEREON Sun mismatch where CelestialAstronomyFrame used Sidereon's uniform civil-clock solar angle while the visible Sun center still inherited Minecraft's separate ClientLevel#getTimeOfDay(partialTick) * 360° render curve.
  • Adds SolarRenderCenterCorrectionPolicy, a pure presentation-only local-X correction that computes the shortest angular delta Sidereon target - Vanilla sky-matrix rotation once per solar draw and reuses cached sine/cosine for all disc and halo vertices.
  • Keeps Minecraft's existing solar sky pass, base quad, depth/occlusion behavior and draw ordering; the correction pre-rotates that same local quad so the unchanged Vanilla matrix lands the final center on Sidereon's already-authoritative solar position.
  • Captures the exact renderSky partial tick and uses it both for Sidereon's frame sample and for the Vanilla solar angle used by the correction, preventing mixed interpolation samples inside one sky pass.
  • Applies the same center correction after Sidereon's existing scale/compression/refraction transform for both the solar disc and independent halo, preserving the intended apparent effects while making their center identical.
  • Leaves VANILLA, dimension-provider-owned and explicitly external-shader-owned Sun channels untouched; no second Sun renderer is added and RealisticNightSkyRenderer remains Moon/star/constellation-only.
  • Preserves the 1.1.72 solar civil phase, cardinal frame, lunar orbit/phases, sidereal motion, twilight astronomy and all public/network contracts.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.72 → 1.1.73, sem reutilizar nem regredir versões anteriores.
  • Corrige a divergência restante do Sol SIDEREON em que CelestialAstronomyFrame usava o ângulo solar uniforme do relógio civil Sidereon, mas o centro visível do Sol ainda herdava a curva separada de render ClientLevel#getTimeOfDay(partialTick) * 360° do Minecraft.
  • Adiciona SolarRenderCenterCorrectionPolicy, uma correção local-X pura e exclusivamente de apresentação que calcula uma vez por desenho solar a menor diferença angular alvo Sidereon - rotação da matriz solar Vanilla e reutiliza seno/cosseno em todos os vértices do disco e halo.
  • Mantém o sky pass solar existente do Minecraft, quad base, comportamento de depth/oclusão e ordem de desenho; a correção pré-rotaciona esse mesmo quad local para que a matriz Vanilla inalterada termine no centro solar já autoritativo do Sidereon.
  • Captura o partialTick exato de renderSky e usa a mesma amostra tanto no frame Sidereon quanto no ângulo solar Vanilla usado pela correção, impedindo mistura de interpolação dentro do mesmo sky pass.
  • Aplica a mesma correção de centro depois da transformação já existente de escala/compressão/refração tanto no disco solar quanto no halo independente, preservando os efeitos aparentes e mantendo o centro idêntico.
  • Mantém intactos os caminhos de Sol VANILLA, dimension-provider-owned e explicitamente externalizados para shader; nenhum segundo renderer de Sol é criado e RealisticNightSkyRenderer continua restrito a Lua/estrelas/constelações.
  • Preserva a fase solar civil da 1.1.72, referencial cardinal, órbita/fases lunares, movimento sideral, astronomia de twilight e todos os contratos públicos/de rede.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.72 - Solar Civil Clock Phase Coherence

EN-US

  • Officially promotes Sidereon 1.1.71 → 1.1.72 without reusing or regressing previous releases.
  • Corrects the built-in solar phase so authoritative Minecraft/EcoTermico civil dayTime and Sidereon's physical Sun position describe the same quarter-day anchors: 0/06:00 = east horizon, 6000/12:00 = zenith, 12000/18:00 = west horizon and 18000/00:00 = nadir.
  • Keeps the solar period exactly 24,000 ticks and the Sidereon solar angular speed uniform; only the reference phase is shifted by the canonical 6,000-tick local-noon offset.
  • Applies the same solar reference shift to the built-in Moon before synodic elongation, preserving lunar phase timing, synodic period, Sun/Moon angular separation and Moon motion against the stellar field.
  • Aligns the corrected 1.1.71 cardinal frame with Minecraft's own civil-hour interpretation, removing the contradiction where AstronomyMath.hour(0) reported 06:00 while the Sidereon Sun was at zenith.
  • Keeps the exact-horizon rule unchanged (altitude > 0° is above): at 06:00 the Sun is on the eastern horizon and a Full Moon is on the western horizon.
  • Canonicalizes only machine-scale trigonometric residues at exact cardinal quarter-turns so 90°/270° resolve to vertical component 0.0 exactly instead of ±6e-17; exact sunrise/sunset can no longer flip the strict horizon flag because of floating-point residue.
  • Advances the protected Solar/Lunar CelestialMotionMath hash baseline deliberately for the phase correction while keeping CelestialProjectionMath, CelestialAstronomyFrame, StellarPositionMath and SiderealTimeMath unchanged.
  • Keeps EcoTermico optional. When its public temporal bridge supplies authoritative dayTime, Sidereon consumes the same civil phase convention without adding any EcoTermico cardinal dependency.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.71 → 1.1.72, sem reutilizar nem regredir versões anteriores.
  • Corrige a fase solar built-in para que o dayTime civil autoritativo do Minecraft/EcoTermico e a posição física do Sol no Sidereon descrevam os mesmos pontos de quarto de dia: 0/06:00 = horizonte leste, 6000/12:00 = zênite, 12000/18:00 = horizonte oeste e 18000/00:00 = nadir.
  • Mantém o período solar exatamente em 24.000 ticks e a velocidade angular solar do Sidereon uniforme; somente a fase de referência é deslocada pelo offset canônico de 6.000 ticks do meio-dia local.
  • Aplica a mesma correção de referência solar à Lua built-in antes da elongação sinódica, preservando fases lunares, período sinódico, separação angular Sol/Lua e movimento da Lua contra o campo estelar.
  • Alinha o referencial cardinal corrigido na 1.1.71 à interpretação de hora civil do próprio Minecraft, removendo a contradição em que AstronomyMath.hour(0) informava 06:00 enquanto o Sol do Sidereon estava no zênite.
  • Mantém a regra exata de horizonte (altitude > 0° significa acima): às 06:00 o Sol fica exatamente no horizonte leste e uma Lua Cheia fica exatamente no horizonte oeste.
  • Canonicaliza somente resíduos trigonométricos em escala de máquina nos quartos de volta cardinais exatos para que 90°/270° resultem em componente vertical 0.0 exato, em vez de ±6e-17; nascer/pôr exatos deixam de poder inverter a flag estrita de horizonte por resíduo de ponto flutuante.
  • Avança deliberadamente a baseline protegida de hash Solar/Lunar de CelestialMotionMath para a correção de fase, mantendo CelestialProjectionMath, CelestialAstronomyFrame, StellarPositionMath e SiderealTimeMath inalterados.
  • Mantém EcoTermico opcional. Quando seu bridge temporal público fornece dayTime autoritativo, o Sidereon consome a mesma convenção de fase civil sem adicionar dependência cardinal do EcoTermico.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.71 - Celestial Cardinal Reference Coherence

EN-US

  • Officially promotes Sidereon 1.1.70 → 1.1.71 without reusing or regressing previous releases.
  • Corrects the built-in Sun/Moon horizontal great-circle basis so it matches the Minecraft/Sidereon world-cardinal frame already used by stars and by the renderer: +X east, -X west, -Z north and +Z south.
  • Keeps apparent angle 0° at zenith and 180° at nadir while making 90° the western horizon (azimuth 270°) and 270° the eastern horizon (azimuth 90°), matching the renderer's established east/west celestial plane.
  • Adds HorizontalPosition.greatCircleRefractionSignComponent() so presentation-only refraction keeps the historical rising/setting sign without coupling renderer code to a stale Z-axis assumption.
  • Updates both solar and lunar presentation paths to consume the canonical great-circle sign while leaving true astronomical altitude/azimuth immutable after projection.
  • Preserves solar clock, lunar synodic/orbital motion, Moon phases, Sun/Moon angular separation, stellar sidereal motion, horizon altitude and all visual features; this is a coordinate-plane/azimuth coherence correction, not a temporal or orbital rewrite.
  • Advances the protected Solar/Lunar projection hash baseline deliberately for CelestialProjectionMath only; the other protected astronomy authority files remain unchanged.
  • Keeps EcoTermico optional. Cardinal orientation is owned by the Minecraft world/Sidereon coordinate frame, so no new EcoTermico dependency or guessed cardinal API is introduced; existing public-API bridges remain limited to their current optional time/weather responsibilities.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.70 → 1.1.71, sem reutilizar nem regredir versões anteriores.
  • Corrige a base horizontal do grande círculo built-in de Sol/Lua para corresponder ao referencial cardinal do mundo Minecraft/Sidereon já usado pelas estrelas e pelo renderer: +X leste, -X oeste, -Z norte e +Z sul.
  • Mantém ângulo aparente 0° no zênite e 180° no nadir, passando a representar 90° no horizonte oeste (azimute 270°) e 270° no horizonte leste (azimute 90°), coerente com o plano celeste leste/oeste já desenhado pelo renderer.
  • Adiciona HorizontalPosition.greatCircleRefractionSignComponent() para preservar o sinal histórico de refração visual no nascer/pôr sem acoplar o renderer a uma suposição antiga sobre o eixo Z.
  • Atualiza os caminhos de apresentação solar e lunar para consumir o sinal canônico do grande círculo, mantendo altitude/azimute astronômicos verdadeiros imutáveis após a projeção.
  • Preserva relógio solar, movimento sinódico/orbital lunar, fases da Lua, separação angular Sol/Lua, movimento sideral estelar, altitude de horizonte e todas as features visuais; trata-se de uma correção de plano de coordenadas/azimute, não de uma reescrita temporal ou orbital.
  • Avança deliberadamente a baseline protegida de hash Solar/Lunar somente para CelestialProjectionMath; os demais arquivos protegidos de autoridade astronômica permanecem inalterados.
  • Mantém EcoTermico opcional. A orientação cardinal pertence ao referencial do mundo Minecraft/Sidereon, portanto nenhuma nova dependência do EcoTermico nem API cardinal presumida é introduzida; os bridges de API pública existentes continuam limitados às responsabilidades opcionais atuais de tempo/clima.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.70 - Authoritative Astronomy Sample Config Coherence Hardening

EN-US

  • Officially promotes Sidereon 1.1.69 → 1.1.70 without reusing or regressing previous releases.
  • Hardens the internal AstronomicalSnapshot boundary so null enum state, invalid world/day-time ranges, invalid hour/minute values, impossible stellar calendar state and ECOTERMICO provenance without the EcoTermico bridge cannot enter astronomy consumers.
  • Keeps the internal snapshot contract aligned with the already-hardened public API and AstronomySyncPayload boundaries instead of allowing direct construction to bypass their universal invariants.
  • Hardens AstronomyService.ResolvedAstronomySample so the captured astronomy and captured SidereonConfig must describe the same stellarEnabled state, lunar-phase enablement semantics and external-time authority.
  • Requires VANILLA samples to retain the same daysPerSeason as the captured Sidereon configuration, while deliberately allowing EcoTermico/provider-observed season lengths to differ because those paths may own their calendar.
  • Fixes old provider-only test fixtures that still represented the impossible combination stellarEnabled=true with AstronomicalSeason.NONE; the tests now carry a concrete season without changing the behaviors they exercise.
  • Adds dedicated regression coverage for invalid direct-constructor states and for valid VANILLA, disabled-stellar, EcoTermico and provider samples.
  • Does not change Sun/Moon/star calculations, renderer behavior, shader/DH ownership, network fields, public API record layouts or visual features.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.69 → 1.1.70, sem reutilizar nem regredir versões anteriores.
  • Endurece a fronteira interna AstronomicalSnapshot para impedir que enums nulos, faixas inválidas de dia/dayTime, hora/minuto inválidos, calendário estelar impossível ou proveniência ECOTERMICO sem a bridge carregada entrem nos consumidores astronômicos.
  • Mantém o contrato do snapshot interno alinhado às fronteiras já endurecidas da API pública e do AstronomySyncPayload, impedindo que construção direta contorne suas invariantes universais.
  • Endurece AstronomyService.ResolvedAstronomySample para exigir que astronomia capturada e SidereonConfig capturada descrevam o mesmo estado de stellarEnabled, a mesma semântica de habilitação das fases lunares e a mesma autoridade de tempo externo.
  • Exige que amostras VANILLA mantenham o mesmo daysPerSeason da configuração Sidereon capturada, preservando deliberadamente a possibilidade de EcoTermico/providers informarem duração observada diferente quando essas integrações possuem autoridade sobre o calendário.
  • Corrige fixtures antigos exclusivos de provider que ainda representavam a combinação impossível stellarEnabled=true com AstronomicalSeason.NONE; os testes passam a usar uma estação concreta sem alterar o comportamento exercitado.
  • Adiciona regressões dedicadas para estados inválidos por construção direta e para amostras válidas VANILLA, com calendário estelar desativado, EcoTermico e provider.
  • Não altera cálculos de Sol/Lua/estrelas, renderer, ownership de shader/DH, campos de rede, layouts dos records da API pública ou features visuais.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.69 - Client Synchronized Celestial State Coherence Hardening

EN-US

  • Officially promotes Sidereon 1.1.68 → 1.1.69 without reusing or regressing previous releases.
  • Hardens ClientLunarContext so direct construction cannot bypass the same moon-count, unique-ID, finite-number and contract/availability semantics already enforced by AstronomySyncPayload.
  • Requires unscoped lunar state to remain the empty built-in UNKNOWN sentinel, legacy provider V1 to remain UNKNOWN, provider V2 to publish AVAILABLE or ABSENT, and built-in contexts to never claim authoritative lunar absence.
  • Hardens ClientLunarContext.MoonState against non-finite illumination/longitude and invalid synodic periods before those values can enter effective-context mapping or cache keys.
  • Hardens ClientEffectiveCelestialContext.ResolvedState so the captured source matches the astronomy snapshot, provider ownership matches the synchronized contract, the effective contract cannot drift from the lunar contract, and revisions/timestamps cannot carry invalid values.
  • Hardens SidereonClientState.EffectiveContextState so ClientLevel identity and active dimension remain paired, synchronized lunar data cannot belong to another dimension, provider/built-in provenance remains coherent, and a synchronized sample cannot exist without active scoped lunar state.
  • Adds regression coverage for invalid direct-constructor states while preserving valid built-in, legacy-provider and provider-V2 client paths.
  • Does not change astronomy calculations, renderer behavior, network fields, public API record layouts, provider interfaces, or visual features.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.68 → 1.1.69, sem reutilizar nem regredir versões anteriores.
  • Endurece ClientLunarContext para impedir que construção direta contorne as mesmas regras de quantidade de Luas, IDs únicos, números finitos e coerência contrato/disponibilidade já exigidas por AstronomySyncPayload.
  • Exige que estado lunar fora de escopo permaneça o sentinela built-in UNKNOWN vazio, provider legado V1 permaneça UNKNOWN, provider V2 publique AVAILABLE ou ABSENT e contextos built-in nunca reivindiquem ausência lunar autoritativa.
  • Endurece ClientLunarContext.MoonState contra iluminação/longitude não finitas e períodos sinódicos inválidos antes que esses valores entrem no mapeamento de contexto efetivo ou nas chaves de cache.
  • Endurece ClientEffectiveCelestialContext.ResolvedState para exigir que a fonte capturada corresponda ao snapshot astronômico, ownership de provider corresponda ao contrato sincronizado, o contrato efetivo não divirja do contrato lunar e revisões/timestamps não carreguem valores inválidos.
  • Endurece SidereonClientState.EffectiveContextState para manter identidade de ClientLevel e dimensão ativa em par, impedir dados lunares sincronizados de outra dimensão, preservar a proveniência provider/built-in e impedir amostra sincronizada sem estado lunar ativo e scoped.
  • Adiciona cobertura de regressão para estados inválidos criados diretamente pelos construtores, preservando os caminhos válidos de cliente built-in, provider legado e provider V2.
  • Não altera cálculos astronômicos, comportamento do renderer, campos de rede, layouts de records da API pública, interfaces de provider ou features visuais.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.68 - Resolved Astronomy Identity Coherence Hardening

EN-US

  • Officially promotes Sidereon 1.1.67 → 1.1.68 without reusing or regressing previous releases.
  • Hardens DimensionAstronomyRegistry.ResolvedDimensionAstronomy so provider identity and astronomy data are mandatory and an attached V2 celestial context must match the same dimension, celestial system, and primary body.
  • Hardens AstronomyService.ResolvedAstronomy so providerId presence must match the DIMENSION_PROVIDER temporal source, built-in astronomy cannot retain provider-only extensions, and V2 context identity cannot diverge from the resolved dimension/system/body.
  • Hardens EffectiveCelestialContext against duplicate Moon IDs, unavailable lunar states that still retain Moon entries, and impossible moon/primary availability combinations.
  • Requires available primary-Moon lighting to describe the exact selected primary Moon phase and illumination, preventing lunar-lighting data from being mixed with another resolved Moon snapshot.
  • Requires scoped provider contracts to retain provider renderer ownership, prevents built-in contexts from claiming provider ownership, rejects presentation-only external-shader ownership at the effective astronomy boundary, and keeps unscoped contexts explicitly unknown and Vanilla-owned.
  • Adds regression coverage for invalid direct-constructor states while preserving all valid built-in, legacy-provider, and provider-V2 resolver paths.
  • Does not change celestial calculations, renderer behavior, public API record layouts, network wire format, provider interfaces, or visual features.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.67 → 1.1.68, sem reutilizar nem regredir versões anteriores.
  • Endurece DimensionAstronomyRegistry.ResolvedDimensionAstronomy para exigir identidade do provider e dados astronômicos, além de obrigar qualquer contexto celeste V2 anexado a corresponder à mesma dimensão, sistema celeste e corpo primário.
  • Endurece AstronomyService.ResolvedAstronomy para exigir que a presença de providerId corresponda à fonte temporal DIMENSION_PROVIDER, impedir extensões exclusivas de provider em astronomia built-in e impedir divergência de identidade do contexto V2 em relação à dimensão/sistema/corpo resolvidos.
  • Endurece EffectiveCelestialContext contra IDs lunares duplicados, estados lunares indisponíveis que ainda carreguem entradas de Lua e combinações impossíveis entre disponibilidade do sistema lunar e da Lua primária.
  • Exige que a iluminação da Lua primária disponível descreva exatamente a fase e a iluminação da Lua primária selecionada, impedindo mistura de dados de iluminação com outro snapshot lunar resolvido.
  • Exige ownership de renderer do provider em contratos provider scoped, impede contextos built-in de reivindicarem ownership de provider, rejeita ownership de shader externo (exclusivo da camada de apresentação) na fronteira astronômica efetiva e mantém contextos fora de escopo explicitamente desconhecidos e sob ownership Vanilla.
  • Adiciona cobertura de regressão para estados inválidos criados diretamente pelos construtores, preservando todos os caminhos válidos dos resolvers built-in, provider legado e provider V2.
  • Não altera cálculos celestes, comportamento do renderer, layouts dos records da API pública, formato wire de rede, interfaces de provider ou features visuais.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

1.1.67 - Public API Snapshot Invariant Hardening

EN-US

  • Officially promotes Sidereon 1.1.66 → 1.1.67 without reusing or regressing previous releases.
  • Hardens AstronomySnapshot so required celestial identities, temporal ranges, stellar-season state, and providerId/DIMENSION_PROVIDER provenance cannot contradict one another.
  • Hardens SkyVisibilitySnapshot so its weather category is non-blank and every published visibility/light fraction is finite within [0,1].
  • Hardens SkyMotionSnapshot against NaN/infinite public motion values while preserving finite wrapped/unbounded angular values exactly as supplied.
  • Hardens CelestialMoonSnapshot so Moon identity, phase, illumination, synodic period, and solar-relative longitude are valid before entering a public celestial-system snapshot.
  • Hardens CelestialSystemSnapshot so sidereal parameters are finite, provider-extended systems retain provider identity, Moon IDs are unique, and primaryMoonId agrees with exactly one primary Moon flag.
  • Hardens CelestialContextSnapshot required identity fields and LunarObservationSnapshot phase sequence, illumination, progress sentinel, and remaining-time sentinel.
  • Keeps all public record component layouts unchanged; this release adds constructor invariants only and does not change astronomy calculations, renderer ownership, network payloads, or visual features.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 8, AstronomySyncPayload V4, public API 1, and celestial context contract 2 unchanged.

PT-BR

  • Promove oficialmente Sidereon 1.1.66 → 1.1.67, sem reutilizar nem regredir versões anteriores.
  • Endurece AstronomySnapshot para impedir contradições entre identidades celestes obrigatórias, faixas temporais básicas, estado estelar/estação e a proveniência providerId/DIMENSION_PROVIDER.
  • Endurece SkyVisibilitySnapshot para exigir categoria de clima não vazia e todas as frações públicas de visibilidade/luz finitas dentro de [0,1].
  • Endurece SkyMotionSnapshot contra valores públicos de movimento NaN/infinitos, preservando exatamente ângulos finitos válidos mesmo quando estejam fora de uma volta normalizada.
  • Endurece CelestialMoonSnapshot para validar identidade da Lua, fase, iluminação, período sinódico e longitude solar-relativa antes da entrada em um snapshot público do sistema celeste.
  • Endurece CelestialSystemSnapshot para exigir parâmetros siderais finitos, identidade de provider em sistemas estendidos, IDs lunares únicos e correspondência exata entre primaryMoonId e uma única flag de Lua primária.
  • Endurece os campos obrigatórios de identidade de CelestialContextSnapshot e a sequência de fases, iluminação, sentinela de progresso e sentinela de tempo restante de LunarObservationSnapshot.
  • Mantém inalterado o layout dos componentes de todos os records públicos; esta release adiciona apenas invariantes de construtor e não altera cálculos astronômicos, ownership do renderer, payloads de rede ou features visuais.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo de rede 8, AstronomySyncPayload V4, API pública 1 e contrato de contexto celeste 2 inalterados.

This mod has no additional files