promotional bannermobile 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.32.jar

File namesidereon-1.1.32.jar
Uploader
LaercioAvilaLaercioAvila
Uploaded
Sep 18, 2026
Downloads
24
Size
555.8 KB
Mod Loaders
NeoForge
File ID
8915904
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

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

Learn more about Curse Maven

What's new

1.1.32 — Test Gate Path & Solar Contract Synchronization — V1

pt-BR

  • Promove oficialmente Sidereon 1.1.31 → 1.1.32, sem reutilizar ou regredir versões anteriores.
  • Corrige PostAuditHotPathAllocationGateTest para localizar a raiz real do projeto antes de ler src/main/java, removendo a dependência do diretório de trabalho escolhido pelo Gradle/JUnit.
  • Sincroniza SolarTwilightOptimizationGateTest com o contrato allocation-free vigente: prepareInto(...) prepara trigonometria uma vez e transformInto(...) reutiliza scratch para disco e halo.
  • Remove do gate legado as expectativas de sidereon$solarPreparedTransform, prepare(...) e transform(...) no hot path, sem reintroduzir alocações que a 1.1.30 eliminou.
  • Endurece o gate para distinguir alocações normais de vértice/scratch das exceções defensivas criadas apenas em caminhos inválidos.
  • Varre os testes de release para impedir retorno do padrão frágil Files.readString(Path.of("src/...")) e de expectativas do campo solar legado.
  • Não altera src/main/java: astronomia, renderer, Lua/estrelas independentes, Solar/Moon Illusion, refração, halo, twilight, compatibilidade e modos VANILLA/SIDEREON permanecem inalterados.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248 e Java 21.

en-US

  • Officially promotes Sidereon 1.1.31 → 1.1.32 without reusing or regressing previous releases.
  • Fixes PostAuditHotPathAllocationGateTest so it locates the actual project root before reading src/main/java, removing dependence on the Gradle/JUnit working directory.
  • Synchronizes SolarTwilightOptimizationGateTest with the active allocation-free contract: prepareInto(...) prepares trigonometry once and transformInto(...) reuses scratch for both disc and halo.
  • Removes legacy gate expectations for sidereon$solarPreparedTransform, prepare(...), and transform(...) in the renderer hot path without restoring allocations removed in 1.1.30.
  • Hardens the gate so normal vertex/scratch allocations are distinguished from defensive exception allocation on invalid-input paths.
  • Scans release tests to prevent reintroduction of fragile Files.readString(Path.of("src/...")) access and stale solar prepared-field expectations.
  • Does not change src/main/java: astronomy, renderer behavior, independent Moon/star motion, Solar/Moon Illusion, refraction, halo, twilight, compatibility, and VANILLA/SIDEREON modes remain unchanged.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, and Java 21.

1.1.31 — Post-Audit Correctness & Safety Hardening — V1

pt-BR

  • Promove oficialmente Sidereon 1.1.30 → 1.1.31, sem reutilizar ou regredir versões anteriores.
  • Corrige o estado de persistência de server.json e client-visuals.json: falha de I/O agora bloqueia escrita até um reload válido confirmar o arquivo, evitando sobrescrita de conteúdo/schema desconhecido.
  • Mantém configuração validada em memória quando somente a persistência da normalização falha.
  • Torna atômico o contrato check + register dos adapters de shader e sincroniza também o fechamento da registration.
  • Corrige a identidade fallback de sistemas celestes: apenas Overworld usa minecraft:overworld_system; Nether, End e dimensões modded recebem IDs determinísticos específicos da dimensão.
  • Endurece AstronomySyncPayload: payload live exige sampledAtGameTime >= 0, valida relógio/enum/season/dimension, rejeita luas duplicadas e remove factories sem timestamp autoritativo.
  • Normaliza vetores externos de constelação uma única vez na fronteira da API, preservando o invariante unitário no renderer.
  • Centraliza cache thread-safe de presença de mods opcionais em OptionalModDetector, sem cachear estados dinâmicos.
  • Endurece o mixin solar: somente o quad canônico do Sol pode receber transform; estado GL especial é aberto apenas no primeiro vértice solar válido; geometria incompatível degrada de forma fail-soft sem contaminar draws alheios.
  • Preserva astronomia, Lua/estrelas independentes, Moon/Solar Illusion, refração, halo, limb darkening, twilight, VANILLA vs SIDEREON, VBO/EBO/revision e integrações opcionais lightweight.

en-US

  • Officially promotes Sidereon 1.1.30 → 1.1.31 without reusing or regressing prior releases.
  • Fixes server.json and client-visuals.json persistence state: I/O uncertainty now locks writes until a successful reload verifies persisted state, preventing unknown/newer contents from being overwritten.
  • Keeps validated configuration in memory when only normalization persistence fails.
  • Makes shader-adapter duplicate-check + registration atomic and synchronizes registration close against the same registry lock.
  • Fixes fallback celestial-system identity: only Overworld uses minecraft:overworld_system; Nether, End and modded dimensions receive deterministic dimension-scoped IDs.
  • Hardens AstronomySyncPayload: live payloads require authoritative sampledAtGameTime, validate temporal/enum/season/dimension fields, reject duplicate moons, and remove factories that could create unsendable timestamp-less payloads.
  • Normalizes arbitrary external constellation vectors once at the API boundary, preserving the unit-vector invariant in render paths.
  • Centralizes thread-safe optional-mod presence caching in OptionalModDetector without freezing dynamic integration state.
  • Hardens the solar mixin: only the canonical Sun quad can be transformed; special GL state opens only on the first valid solar vertex; incompatible geometry falls back without contaminating unrelated draws.
  • Preserves astronomy, independent Moon/star motion, Moon/Solar Illusion, refraction, halo, limb darkening, twilight, VANILLA vs SIDEREON, VBO/EBO/revision behavior and lightweight optional integrations.

1.1.30 — Post-Audit Hot-Path Allocation Hotfix — V1

pt-BR

  • Promove oficialmente Sidereon 1.1.29 → 1.1.30, sem reutilizar ou regredir versões anteriores.
  • Corrige a alocação residual de SolarQuadTransformPolicy.PreparedTransform no caminho solar normal usando prepareInto(...) com scratch reutilizável do renderer.
  • Corrige as alocações de SolarQuadTransformPolicy.Vertex por vértice usando transformInto(...) com resultado mutável reutilizável; disco e halo preservam exatamente a mesma matemática.
  • Remove new Matrix4f(matrix) por draw do halo solar e substitui por uma matriz scratch dedicada, válida somente durante o renderSky corrente.
  • Mantém os métodos alocadores anteriores somente como conveniência de cold-path/testes; o hot path do renderer não os chama.
  • Preserva escala solar, compressão, refração, orientação, halo, limb darkening, sunrise/sunset, ownership, contexto único por frame e todos os contratos astronômicos/visuais da 1.1.29.
  • Mantém integrações Iris, DH, Sodium/Embeddium, EcoTermico e ShaderMax inalteradas e opcionais.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248 e Java 21.

en-US

  • Officially promotes Sidereon 1.1.29 → 1.1.30 without reusing or regressing previous releases.
  • Removes the remaining SolarQuadTransformPolicy.PreparedTransform allocation from the normal solar path by using renderer-owned scratch through prepareInto(...).
  • Removes per-vertex SolarQuadTransformPolicy.Vertex allocations by using transformInto(...) with reusable mutable output; disc and halo preserve the exact same math.
  • Removes the per-draw new Matrix4f(matrix) halo copy and replaces it with dedicated render-thread scratch valid only for the current renderSky.
  • Keeps the allocating methods only as cold-path/test convenience; the renderer hot path no longer calls them.
  • Preserves solar scale, compression, refraction, orientation, halo, limb darkening, sunrise/sunset, ownership, one context per frame, and every astronomical/visual contract from 1.1.29.
  • Keeps Iris, DH, Sodium/Embeddium, EcoTermico, and ShaderMax integrations unchanged and optional.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, and Java 21 unchanged.

1.1.29 — Celestial Math, Render Hot-Path and Compatibility Optimization — V1 — Estágio 10/10

pt-BR

  • Promove oficialmente Sidereon 1.1.28 → 1.1.29, mantendo 1.1.20 como baseline histórica do Estágio 1 e sem reutilizar/regredir nenhuma release já consolidada.
  • Consolida a coerência de partialTick e um único ClientCelestialRenderContext por frame para ownership de Sol/Lua, sunrise, atmosfera/chuva, estrelas e AFTER_SKY.
  • Mantém captura lazy do estado OpenGL: CelestialRenderStateScope.capture() só ocorre imediatamente antes do primeiro draw real, reduzindo glGet* em frames sem canais visíveis e preservando restauração exata do estado recebido.
  • Consolida a deduplicação do cálculo sideral e o reaproveitamento de vetores unitários/ortonormais conhecidos com guards numéricos e fallback de normalização para dados arbitrários.
  • Mantém transformação solar preparada uma vez por draw, reutilizando escala, compressão, refração e sin/cos nos vértices do disco/halo; twilight e sunrise calculam somente os campos realmente consumidos, sem aproximações de baixa precisão.
  • Preserva StellarHorizonMath.horizontalY, o teste escalar contínuo por Y, máscaras atualizadas em uma passagem, topologia imutável de constelações pré-resolvida, VBO estático, EBO/native staging reutilizáveis, revision e glBufferSubData.
  • Consolida scratch matrices independentes para Lua, esfera estelar e composição final, mantendo ordem/convenção exatas das multiplicações e sem persistir referências scratch fora do draw síncrono.
  • Mantém cache apenas da infraestrutura estática/reflexiva dos backends opcionais: Iris continua consultando dinamicamente isShaderPackInUse(), DH/Sodium/Embeddium mantêm presença estática cacheada e EcoTermico HUD continua relendo snapshots dinâmicos.
  • Mantém integração Distant Horizons lightweight, com lodIsPhysicalChunk=false, mayForceChunkLoading=false, zero terrain API, zero raycast/raymarch de LOD e zero force-load.
  • Mantém Iris somente na API pública net.irisshaders.iris.api.v0.IrisApi, sem classes internas.
  • Mantém EcoTermico read-only e opcional, sem duplicar relógio, estação, clima, game time, temperatura ou atmosfera.
  • Preserva os contratos públicos usados por ShaderMax/consumidores: LunarObservationSnapshot.current(), illuminatedFraction(), phaseProgress(), solarAngleDegrees(), lunarAngleDegrees(), siderealAngleDegrees() e as semânticas UNKNOWN/ABSENT/AVAILABLE, sem fabricar dados indisponíveis.
  • Mantém zero @Deprecated em src/main/java e não cria aliases legados para consumidores externos.
  • Preserva movimento independente Lua/estrelas, fases, Moon Illusion, refração, sunrise/sunset, halo, limb darkening, orientação, RA/Dec, axial tilt, polo celeste e resultados visuais/astronômicos consolidados.
  • Mantém somente VANILLA e SIDEREON; efeitos especiais de Sol, Lua, atmosfera e estrelas continuam exclusivos de SIDEREON.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248 e Java 21.
  • Adiciona o gate final do Estágio 10 para proteger zero deprecated, API astronômica pública, independência Lua/estrelas, VANILLA vs SIDEREON, ausência de force-load, optionalidade de DH/Iris/EcoTermico/ShaderMax e a nova baseline 1.1.29.

en-US

  • Officially promotes Sidereon 1.1.28 → 1.1.29, keeping 1.1.20 as the historical Stage 1 baseline without reusing or regressing any already consolidated release.
  • Consolidates coherent partialTick sampling and one ClientCelestialRenderContext per frame across Sun/Moon ownership, sunrise, atmosphere/rain, stars, and AFTER_SKY.
  • Keeps lazy OpenGL state capture: CelestialRenderStateScope.capture() runs only immediately before the first real draw, reducing glGet* work on frames with no visible channels while restoring the exact incoming state.
  • Consolidates sidereal-calculation deduplication and reuse of mathematically known unit/orthonormal vectors with numerical guards and normalization fallback for arbitrary external data.
  • Keeps the solar transform prepared once per draw, reusing scale, compression, refraction, and sin/cos for disc/halo vertices; twilight and sunrise compute only the fields actually consumed, with no low-precision curve approximations.
  • Preserves StellarHorizonMath.horizontalY, the continuous scalar Y horizon test, single-pass visibility accumulation, pre-resolved immutable constellation topology, static VBOs, reusable EBO/native staging, revisions, and glBufferSubData.
  • Consolidates independent scratch matrices for Moon, stellar sphere, and final composition while preserving exact multiplication order/conventions and never retaining scratch references beyond the synchronous draw path.
  • Caches only static/reflection infrastructure for optional backends: Iris still queries isShaderPackInUse() dynamically, DH/Sodium/Embeddium keep static presence caches, and the EcoTermico HUD bridge keeps re-reading dynamic snapshots.
  • Keeps Distant Horizons integration lightweight with lodIsPhysicalChunk=false, mayForceChunkLoading=false, no terrain API, no LOD raycast/raymarch, and no forced chunk loading.
  • Keeps Iris strictly on the public net.irisshaders.iris.api.v0.IrisApi with no renderer-internal classes.
  • Keeps EcoTermico read-only and optional without duplicating clock, season, weather, game time, temperature, or atmosphere authority.
  • Preserves public contracts consumed by ShaderMax/other integrations: LunarObservationSnapshot.current(), illuminatedFraction(), phaseProgress(), solarAngleDegrees(), lunarAngleDegrees(), siderealAngleDegrees(), and explicit UNKNOWN/ABSENT/AVAILABLE semantics, never inventing unavailable astronomical data.
  • Keeps zero @Deprecated declarations under src/main/java and adds no legacy aliases solely for external consumers.
  • Preserves independent Moon/star motion, phases, Moon Illusion, refraction, sunrise/sunset, halo, limb darkening, orientation, RA/Dec, axial tilt, celestial pole, and the consolidated visual/astronomical results.
  • Keeps only VANILLA and SIDEREON; special Sun, Moon, atmosphere, and star effects remain exclusive to SIDEREON.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, and Java 21 unchanged.
  • Adds the Stage 10 final gate protecting zero deprecated APIs, the public astronomical surface, independent Moon/star motion, VANILLA vs SIDEREON, no forced chunk loading, optional DH/Iris/EcoTermico/ShaderMax integrations, and the new 1.1.29 baseline.

Sidereon — Changelog

1.1.28 — EcoTermico e ShaderMax: Contratos do Lado Sidereon — Estágio 9/10

pt-BR

  • Promove oficialmente Sidereon 1.1.27 → 1.1.28, sem reutilizar a versão anterior.
  • Mantém EcoTermico opcional, read-only e como autoridade externa para relógio/estação/clima/temperatura/atmosfera quando seus contratos públicos estão disponíveis; não duplica nem escreve esses estados.
  • Faz EcoTermicoHudBridge cachear TemperatureAPI, getInstrumentPresence e os accessors públicos thermometer, clock, anemometer e compass, removendo Class.forName/getMethod repetidos do caminho normal de HUD.
  • Mantém o snapshot de presença dinâmico: getInstrumentPresence(player) continua sendo invocado em cada amostra necessária e nenhum valor de instrumento é congelado.
  • Não reintroduz acesso a br.com.laercio.ecotermico.config.*; como não existe contrato público externo de layout X/Y/scale/anchor, mantém o fallback determinístico atual em vez de ler configuração privada.
  • Mantém EcoTermicoTemporalBridge, EcoTermicoAtmosphereBridge, EcoTermicoSkyWeatherBridge, TemporalAuthorityMath e AtmosphericAuthorityPolicy byte a byte iguais à 1.1.27.
  • Preserva os contratos públicos consumíveis por shaders/mods: LunarObservationSnapshot.current(), illuminatedFraction(), phaseProgress(), SkyMotionSnapshot.solarAngleDegrees(), siderealAngleDegrees() e lunarAngleDegrees().
  • Preserva UNKNOWN, ABSENT e AVAILABLE; quando a posição lunar não é autoritativa, SkyMotionStateSnapshot.lunarAngleDegrees() continua vazio e os campos numéricos legados permanecem neutros, sem inventar astronomia.
  • Não adiciona dependência direta do ShaderMax nem aliases @Deprecated para consumidores externos.
  • Mantém Lua, Sol, atmosfera, estrelas e demais efeitos especiais exclusivos da apresentação SIDEREON, sem contaminar VANILLA.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248 e Java 21.

en-US

  • Officially promotes Sidereon 1.1.27 → 1.1.28 without reusing the previous release.
  • Keeps EcoTermico optional, read-only, and authoritative for its published clock/season/weather/temperature/atmosphere data; Sidereon does not duplicate or mutate those states.
  • Makes EcoTermicoHudBridge cache TemperatureAPI, getInstrumentPresence, and the public thermometer, clock, anemometer, and compass snapshot accessors, removing repeated Class.forName/getMethod from the normal HUD path.
  • Keeps presence values dynamic: getInstrumentPresence(player) is still invoked for each required sample and no instrument value is permanently cached.
  • Does not restore access to br.com.laercio.ecotermico.config.*; because no public external X/Y/scale/anchor layout contract exists, the existing deterministic fallback remains instead of reading private config.
  • Keeps EcoTermicoTemporalBridge, EcoTermicoAtmosphereBridge, EcoTermicoSkyWeatherBridge, TemporalAuthorityMath, and AtmosphericAuthorityPolicy byte-identical to 1.1.27.
  • Preserves public shader/mod consumer contracts: LunarObservationSnapshot.current(), illuminatedFraction(), phaseProgress(), SkyMotionSnapshot.solarAngleDegrees(), siderealAngleDegrees(), and lunarAngleDegrees().
  • Preserves UNKNOWN, ABSENT, and AVAILABLE; when lunar position is not authoritative, SkyMotionStateSnapshot.lunarAngleDegrees() remains empty and legacy numeric lunar fields remain neutral instead of fabricating astronomy.
  • Adds no direct ShaderMax dependency and no @Deprecated aliases solely for external consumers.
  • Keeps Moon, Sun, atmosphere, stars, and other special effects exclusive to SIDEREON presentation without contaminating VANILLA.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, and Java 21.

1.1.27 — Compatibilidade Iris, DH e Backend sem Reflexão Repetida — Estágio 8/10

pt-BR

  • Promove oficialmente Sidereon 1.1.26 → 1.1.27, sem reutilizar a versão anterior.
  • Mantém Iris exclusivamente na API pública net.irisshaders.iris.api.v0.IrisApi e passa a cachear presença, classe, getInstance, instância e método isShaderPackInUse após a primeira resolução válida.
  • Continua consultando dinamicamente isShaderPackInUse() em cada sample/tick necessário; o estado ativo do shaderpack não é cacheado permanentemente.
  • Mantém comportamento fail-soft para ausência, incompatibilidade, erro de reflexão, LinkageError e erro de runtime do Iris, sem recorrer a namespaces internos.
  • Faz Distant Horizons resolver presença via ModList uma única vez e reutilizar o resultado durante a sessão, sem terrain API, raycast/raymarch, force-load ou promoção do LOD a chunk físico.
  • Preserva explicitamente lodIsPhysicalChunk=false, mayForceChunkLoading=false e directApiIntegrationActive=false.
  • Faz Sodium/Embeddium resolverem presença estática uma única vez após bootstrap, preservando fallback Vanilla quando a detecção falhar ou a pilha for ambígua.
  • Remove do ClientRenderCompatibilityState os caches por tick de DH e backend; mantém somente os estados realmente dinâmicos de Iris e handshake externo.
  • Preserva os hot paths do Estágio 7, VBO/EBO/revision, contexto astronômico único por frame, render-state lazy, matemática, ownership e compatibilidade ShaderMax.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248 e Java 21; Iris, DH, Sodium e Embeddium continuam opcionais.

en-US

  • Officially promotes Sidereon 1.1.26 → 1.1.27 without reusing the previous release.
  • Keeps Iris strictly on the public net.irisshaders.iris.api.v0.IrisApi and caches presence, API class, getInstance, instance, and isShaderPackInUse method after the first valid resolution.
  • Continues querying isShaderPackInUse() dynamically for each required sample/tick; active shader-pack state is never permanently cached.
  • Preserves fail-soft behavior for absent/incompatible Iris APIs, reflection failures, LinkageError, and runtime failures without using internal namespaces.
  • Resolves Distant Horizons presence through ModList once and reuses it for the session, with no terrain API, raycast/raymarch, forced chunk loading, or promotion of LOD geometry to physical chunks.
  • Explicitly preserves lodIsPhysicalChunk=false, mayForceChunkLoading=false, and directApiIntegrationActive=false.
  • Resolves Sodium/Embeddium static presence once after bootstrap while preserving Vanilla fallback for failed or ambiguous detection.
  • Removes per-tick DH/backend caches from ClientRenderCompatibilityState; only truly dynamic Iris/external-handshake state remains tick-aware.
  • Preserves Stage 7 hot paths, VBO/EBO/revision behavior, one astronomical context per frame, lazy render-state capture, astronomy math, ownership, and ShaderMax compatibility.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, and Java 21; Iris, DH, Sodium, and Embeddium remain optional.

1.1.26 — Matrizes e Alocações do Hot Path — Estágio 7/10

pt-BR

  • Promove oficialmente Sidereon 1.1.25 → 1.1.26, sem reutilizar a versão anterior.
  • Adiciona três scratch matrices independentes no renderer para Lua, base da esfera estelar e composição final, evitando new Matrix4f(...) durante o frame normal.
  • Adiciona StellarRenderMatrixPolicy.composeInto(...), que reutiliza storage fornecido pelo renderer e rejeita alias acidental entre destino, sphere scratch e model-view do evento.
  • Preserva exatamente a composição estelar: model-view do evento, remoção de translation/parallax e uma única multiplicação pela base ortonormal da esfera celeste.
  • Substitui celestialMatrix(...) por celestialMatrixInto(...), preservando a ordem modelView → translation zero → rotateY(-90°) → rotateX(angle) → scale.
  • Garante que as scratch matrices sejam consumidas somente de forma síncrona nos draws e não sejam persistidas por buffers, callbacks ou renderers externos.
  • Remove a alocação por sample de HorizonVisibilitySummary, retornando um bitmask primitivo sem mudar o teste escalar de horizonte nem a atualização por revision.
  • Mantém catálogos, bootstrap, resource reload, VBOs estáticos, EBOs reutilizáveis, glBufferSubData, contexto único por frame, render-state lazy e compatibilidade ShaderMax/Iris/DH/Sodium/Embeddium.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248 e Java 21.

en-US

  • Officially promotes Sidereon 1.1.25 → 1.1.26 without reusing the previous release.
  • Adds three independent renderer-owned scratch matrices for the Moon, stellar-sphere basis, and final stellar composition, avoiding new Matrix4f(...) during normal frames.
  • Adds StellarRenderMatrixPolicy.composeInto(...), reusing caller-provided storage and rejecting accidental aliasing between destination, sphere scratch, and the event model-view matrix.
  • Preserves the exact stellar composition: event model-view, translation/parallax removal, then exactly one multiplication by the orthonormal celestial-sphere basis.
  • Replaces celestialMatrix(...) with celestialMatrixInto(...) while preserving modelView → zero translation → rotateY(-90°) → rotateX(angle) → scale.
  • Keeps scratch matrices synchronous to the draw path; no buffer, callback, or external renderer retains them.
  • Removes the per-sample HorizonVisibilitySummary allocation in favor of a primitive bitmask without changing the scalar horizon test or revision-driven updates.
  • Preserves catalogs, bootstrap, resource reload, static VBOs, reusable EBOs, glBufferSubData, one-context-per-frame, lazy render-state capture, and ShaderMax/Iris/DH/Sodium/Embeddium compatibility.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, and Java 21.

1.1.25 — Estrelas e Horizonte Astronômico sem Regressão — Estágio 6/10

pt-BR

  • Promove oficialmente Sidereon 1.1.24 → 1.1.25, sem reutilizar a versão anterior.
  • Preserva byte a byte StellarHorizonMath.horizontalY e mantém o teste exato do horizonte por componente Y, sem asin, atan2, ray casting, ray marching ou BVH.
  • Acumula anyStarVisible e anyConstellationVisible durante a própria atualização das máscaras, removendo varreduras completas posteriores apenas para descobrir se existe algum elemento visível.
  • Pré-resolve uma única vez a topologia imutável das constelações padrão: quantidade de segmentos e índices das estrelas de origem/destino de cada segmento.
  • Remove lookup/validação de ID de estrela do caminho por-frame das constelações, preservando a regra de segmento visível somente quando ambos os endpoints estão acima do horizonte.
  • Preserva ReusableVisibilityIndexBuffer, VBOs estáticos, EBOs reutilizáveis, native staging reutilizável, revisions de horizonte e uploads incrementais com glBufferSubData.
  • Mantém cálculo contínuo em todos os samples necessários, sem atualização temporal grosseira, popping de estrelas ou piscada de constelações.
  • Preserva Minecraft 1.21.1, NeoForge 21.1.248, Java 21, contexto único por frame, render-state lazy, ShaderMax/Iris/DH/Sodium/Embeddium e todos os contratos dos Estágios 1–5.

en-US

  • Officially promotes Sidereon 1.1.24 → 1.1.25 without reusing the previous release.
  • Keeps StellarHorizonMath.horizontalY byte-identical and retains the exact scalar Y-component horizon test, with no asin, atan2, ray casting, ray marching, or BVH.
  • Accumulates anyStarVisible and anyConstellationVisible during the mask update itself, removing later full-array scans that existed only to discover whether any element is visible.
  • Pre-resolves the immutable default constellation topology once: segment count and source/destination star indices for every segment.
  • Removes per-frame star-ID lookup/validation from constellation visibility while preserving the rule that a segment is visible only when both endpoints are above the horizon.
  • Preserves ReusableVisibilityIndexBuffer, static VBOs, reusable EBOs, reusable native staging, horizon revisions, and incremental glBufferSubData uploads.
  • Keeps continuous horizon evaluation at every required sample with no coarse temporal updates, stellar popping, or constellation flicker.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, one-context-per-frame, lazy render-state capture, ShaderMax/Iris/DH/Sodium/Embeddium compatibility, and all Stage 1–5 contracts.

1.1.24 — Sol, Refração e Twilight sem Trigonometria Repetida — Estágio 5/10

pt-BR

  • Promove oficialmente Sidereon 1.1.23 → 1.1.24, sem reutilizar a versão anterior.
  • Adiciona SolarQuadTransformPolicy.prepare(...) para resolver uma única vez por draw escala, compressão vertical, estado de refração, ângulo assinado, radianos, seno, cosseno e orientação.
  • Reutiliza o mesmo PreparedTransform nos quatro vértices do disco solar e, quando os parâmetros são iguais, nos quatro vértices do halo.
  • Remove Math.toRadians, Math.sin e Math.cos do hot path por vértice sem alterar tamanho, Solar Illusion, deformação, refração, orientação, halo, limb darkening ou matriz astronômica.
  • Faz ClientCelestialRenderContext.resolveTwilight() consumir diretamente twilightFactorFromSolarAltitude(...) quando somente o fator é necessário.
  • Faz LevelRendererMixin consumir diretamente sunriseColor(...) quando somente a cor localizada de nascer/pôr do sol é necessária.
  • Preserva integralmente as curvas atuais de twilight, horizon glow, visibilidade do disco solar e cor atmosférica; nenhuma aproximação de baixa precisão é introduzida.
  • Preserva Minecraft 1.21.1, NeoForge 21.1.248, Java 21, ownership por canal, ShaderMax/Iris/DH/Sodium/Embeddium e os contratos dos Estágios 1–4.

en-US

  • Officially promotes Sidereon 1.1.23 → 1.1.24 without reusing the previous release.
  • Adds SolarQuadTransformPolicy.prepare(...) to resolve scale, vertical compression, refraction state, signed angle, radians, sine, cosine, and orientation once per draw.
  • Reuses the same PreparedTransform across the four solar-disc vertices and, when parameters match, the four halo vertices.
  • Removes per-vertex Math.toRadians, Math.sin, and Math.cos from the hot path without changing size, Solar Illusion, deformation, refraction, orientation, halo, limb darkening, or the astronomical matrix.
  • Makes ClientCelestialRenderContext.resolveTwilight() consume twilightFactorFromSolarAltitude(...) directly when only the factor is required.
  • Makes LevelRendererMixin consume sunriseColor(...) directly when only localized dawn/dusk color is required.
  • Fully preserves the existing twilight, horizon-glow, solar-disc visibility, and atmospheric-color curves; no low-precision approximation is introduced.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, per-channel ownership, ShaderMax/Iris/DH/Sodium/Embeddium compatibility, and Stage 1–4 contracts unchanged.

1.1.23 — Eliminação de Cálculos Astronômicos Duplicados — Estágio 4/10

pt-BR

  • Promove a linha ativa Sidereon 1.1.22 → 1.1.23, mantendo 1.1.22 como baseline histórica do Estágio 3.
  • Faz CelestialAstronomyFrame.builtIn() reutilizar motion.siderealAngleDegrees() já calculado por CelestialMotionMath.builtIn(), removendo chamadas siderais duplicadas no mesmo frame.
  • Adiciona overload interno de StellarPositionMath.referenceFrame(...) para consumir ângulo sideral pré-calculado sem repetir dayTime / period * 360.
  • Mantém exatamente o período sideral, SkyMotionMath.AXIAL_TILT_DEGREES, orientação, RA/Dec, polo celeste e separação física entre relógios solar, lunar e estelar.
  • Substitui normalizações redundantes em vetores unitários construídos por seno/cosseno por Direction.fromUnitInvariant(...), que valida lengthSq e evita sqrt/divisão no caminho normal.
  • Mantém fallback de renormalização para pequeno drift de ponto flutuante e rejeita vetores fora da tolerância controlada; Direction.normalized(...) continua sendo o caminho para dados arbitrários.
  • Simplifica exatamente a base horizontal do observador Overworld fixo (0°, 0°), evitando trigonometria de latitude sem alterar a orientação resultante.
  • Faz CelestialSphereMath.northCelestialPole()/southCelestialPole() resolverem diretamente os polos, sem montar/rotacionar a esfera completa quando isso não é necessário.
  • Mantém AFTER_SKY, o contexto único por frame, render state lazy, Iris/ShaderMax/Sodium/Embeddium/Distant Horizons e política zero-deprecated acumulados dos Estágios 1–3.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo 7, API pública 1 e contrato celeste 2.

en-US

  • Advances the active line Sidereon 1.1.22 → 1.1.23, keeping 1.1.22 as the historical Stage 3 baseline.
  • Makes CelestialAstronomyFrame.builtIn() reuse motion.siderealAngleDegrees() already computed by CelestialMotionMath.builtIn(), removing duplicate sidereal calculations within the same frame.
  • Adds an internal StellarPositionMath.referenceFrame(...) overload that consumes a precomputed sidereal angle without repeating dayTime / period * 360.
  • Keeps the sidereal period, SkyMotionMath.AXIAL_TILT_DEGREES, orientation, RA/Dec, celestial pole, and the physical separation between solar, lunar, and stellar clocks unchanged.
  • Replaces redundant normalization of sine/cosine-constructed unit vectors with Direction.fromUnitInvariant(...), validating lengthSq while avoiding sqrt/division on the normal path.
  • Keeps a renormalization fallback for small floating-point drift and rejects vectors outside the controlled tolerance; Direction.normalized(...) remains the path for arbitrary data.
  • Exactly simplifies the fixed Overworld (0°, 0°) observer basis, avoiding latitude trigonometry without changing the resulting orientation.
  • Makes CelestialSphereMath.northCelestialPole()/southCelestialPole() resolve the poles directly instead of building/rotating the full sphere when unnecessary.
  • Preserves AFTER_SKY, the one-context-per-frame contract, lazy render-state capture, Iris/ShaderMax/Sodium/Embeddium/Distant Horizons compatibility, and the cumulative zero-deprecated policy from Stages 1–3.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 7, public API 1, and celestial contract 2 unchanged.

1.1.22 — Render State Lazy e Redução de glGet* — Estágio 3/10

pt-BR

  • Promove a linha ativa Sidereon 1.1.21 → 1.1.22, mantendo 1.1.21 como baseline histórica do Estágio 2.
  • Refatora RealisticNightSkyRenderer.onRenderLevel para concluir primeiro as decisões CPU de contexto, transform, horizonte, atmosfera, brilho, smoothing e disponibilidade de shader.
  • Introduz flags finais drawMoon, drawStars e drawConstellations; quando nenhum canal sobreviver, o renderer retorna antes de CelestialRenderStateScope.capture().
  • Reduz consultas glGet*/glIsEnabled nos frames sem desenho sem trocar a restauração exata por valores presumidos/default.
  • Mantém byte a byte CelestialRenderStateScope, preservando blend, fatores de blend, depth mask/test, shader color, texture unit, texture binding, VAO e shader program recebidos do backend anterior.
  • Mantém Distant Horizons fail-soft: requireSceneDepthTest() é aplicado somente depois da captura e somente quando existe pelo menos um draw final.
  • Mantém Lua, estrelas e constelações como canais nativos independentes e preserva Iris/ShaderMax/Sodium/Embeddium/Distant Horizons sem dependência direta nova.
  • Preserva integralmente o contexto único por frame do Estágio 2 e não cria relógio, interpolação ou fonte temporal adicional.
  • Mantém byte a byte os arquivos matemáticos/temporais protegidos, incluindo CelestialRenderClock, CelestialAstronomyFrame, CelestialMotionMath, CelestialProjectionMath, LunarPositionMath, LunarCycleMath e SiderealTimeMath.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo 7, API pública 1 e contrato celeste 2.

en-US

  • Advances the active line Sidereon 1.1.21 → 1.1.22, keeping 1.1.21 as the historical Stage 2 baseline.
  • Refactors RealisticNightSkyRenderer.onRenderLevel so CPU-side context, transform, horizon, atmosphere, brightness, smoothing, and shader-availability decisions finish before any OpenGL state snapshot.
  • Adds final drawMoon, drawStars, and drawConstellations flags; when all three are false, the renderer returns before CelestialRenderStateScope.capture().
  • Reduces glGet*/glIsEnabled work on zero-draw frames without replacing exact restoration with assumed/default values.
  • Keeps CelestialRenderStateScope byte-identical, preserving the incoming blend state/functions, depth mask/test, shader color, texture unit/binding, VAO, and shader program.
  • Keeps Distant Horizons fail-soft: requireSceneDepthTest() is applied only after capture and only when at least one final channel will draw.
  • Keeps Moon, stars, and constellations as independent native channels and preserves Iris/ShaderMax/Sodium/Embeddium/Distant Horizons compatibility without a new direct dependency.
  • Fully preserves Stage 2's one-context-per-frame contract and adds no second clock, interpolation source, or time authority.
  • Keeps protected mathematical/temporal files byte-identical, including CelestialRenderClock, CelestialAstronomyFrame, CelestialMotionMath, CelestialProjectionMath, LunarPositionMath, LunarCycleMath, and SiderealTimeMath.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocol 7, public API 1, and celestial contract 2 unchanged.

1.1.21 — Contexto Astronômico Coerente por Frame — Estágio 2/10

pt-BR

  • Promove a linha ativa Sidereon 1.1.20 → 1.1.21, mantendo 1.1.20 como baseline histórica do Estágio 1.
  • Captura o partialTick real diretamente no início de LevelRenderer.renderSky e o mantém como única amostra temporal de apresentação durante o frame celeste.
  • Remove o uso efetivo de 0.0F no ownership de textura solar/lunar quando existe uma amostra real; zero permanece apenas como fallback fail-soft quando o hook de captura não está disponível.
  • Faz ownership de Sol/Lua, sunrise, obscuração atmosférica/chuva, brilho Vanilla de estrelas, iluminação natural e AFTER_SKY reutilizarem o mesmo CelestialRenderContext.
  • Mantém um SkyFrameSample somente de apresentação, sem avançar tempo, sem interpolador paralelo e sem criar um segundo relógio astronômico.
  • Libera a amostra no final de AFTER_SKY, impedindo vazamento de contexto para o frame seguinte.
  • Preserva integralmente monotonicidade, interpolação canônica, movimento independente Lua/estrelas, fases, Moon Illusion, refração, sunrise/sunset e ownership por canal.
  • Mantém byte a byte os arquivos matemáticos/temporais protegidos do Estágio 1, incluindo CelestialRenderClock, CelestialAstronomyFrame, CelestialMotionMath, CelestialProjectionMath, LunarPositionMath, LunarCycleMath e SiderealTimeMath.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo 7, API pública 1 e contrato celeste 2.

en-US

  • Advances the active line Sidereon 1.1.20 → 1.1.21, keeping 1.1.20 as the historical Stage 1 baseline.
  • Captures the real partialTick directly at the start of LevelRenderer.renderSky and keeps it as the single celestial-presentation time sample for the frame.
  • Removes effective 0.0F sampling from Sun/Moon texture ownership whenever a real sample exists; zero remains only as a fail-soft fallback when the capture hook is unavailable.
  • Makes Sun/Moon ownership, sunrise, atmospheric/rain obscuration, Vanilla star brightness, natural lighting, and AFTER_SKY reuse the same CelestialRenderContext.
  • Keeps SkyFrameSample presentation-only: it never advances time, adds no parallel interpolation, and creates no second astronomical clock.
  • Releases the sample at the end of AFTER_SKY so no context leaks into the next frame.
  • Fully preserves monotonicity, canonical interpolation, independent Moon/star motion, phases, Moon Illusion, refraction, sunrise/sunset, and per-channel renderer ownership.
  • Keeps the Stage 1 protected mathematical/temporal files byte-identical, including CelestialRenderClock, CelestialAstronomyFrame, CelestialMotionMath, CelestialProjectionMath, LunarPositionMath, LunarCycleMath, and SiderealTimeMath.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocol 7, public API 1, and celestial contract 2 unchanged.

1.1.20 — Otimização Matemática, Renderer, Compatibilidade e Zero Deprecated — Estágio 1/10

pt-BR

  • Promove a linha ativa Sidereon 1.1.19 → 1.1.20, preservando 1.1.19 como baseline histórica congelada.
  • Remove todos os @Deprecated existentes em src/main/java depois de confirmar/migrar os consumidores atuais.
  • Remove os entrypoints legados de EcoTermicoHudBridge, MoonPhase, RealisticNightSkyRenderer, SidereonConfigManager, AstronomySyncPayload, EclipsePolicy, SkyMotionMath e o construtor vetorial legado de StarDefinition.
  • Migra o gate de eclipse para consumir CelestialAlignmentMath.SunMoonAlignment, mantendo a simulação de eclipse desabilitada e sem alterar a geometria astronômica.
  • Remove o acesso reflexivo ao br.com.laercio.ecotermico.config.ClientConfig; a integração HUD usa somente a API pública TemperatureAPI e fallback fail-soft determinístico.
  • Mantém o bridge Iris restrito à API pública net.irisshaders.iris.api.v0.IrisApi, sem dependência de classes internas/implementação.
  • Adiciona ZeroDeprecatedApiGateTest para impedir reintrodução de @Deprecated, entrypoints legados removidos e namespaces internos conhecidos de integrações opcionais.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo 7, API pública 1 e contrato celeste 2.
  • Não altera fase lunar, órbita, posição celeste, movimento sideral, cálculos solares/lunares, renderer astronômico ou ownership físico nesta etapa.

en-US

  • Advances the active line Sidereon 1.1.19 → 1.1.20, keeping 1.1.19 frozen as the historical baseline.
  • Removes every @Deprecated declaration from src/main/java after confirming/migrating current consumers.
  • Removes legacy entrypoints from EcoTermicoHudBridge, MoonPhase, RealisticNightSkyRenderer, SidereonConfigManager, AstronomySyncPayload, EclipsePolicy, SkyMotionMath, and the legacy vector constructor in StarDefinition.
  • Migrates the eclipse gate to CelestialAlignmentMath.SunMoonAlignment, keeping eclipse simulation disabled without changing astronomical geometry.
  • Removes reflective access to br.com.laercio.ecotermico.config.ClientConfig; HUD integration now relies only on the public TemperatureAPI plus a deterministic fail-soft fallback.
  • Keeps the Iris bridge restricted to the public net.irisshaders.iris.api.v0.IrisApi contract with no implementation/internal dependency.
  • Adds ZeroDeprecatedApiGateTest to block reintroduction of @Deprecated, removed legacy entrypoints, and known internal namespaces from optional integrations.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 7, public API 1, and celestial contract 2 unchanged.
  • Does not change lunar phase, orbit, celestial position, sidereal motion, Sun/Moon calculations, astronomical renderer behavior, or physical ownership in this stage.

1.1.19 — ShaderMax Compatibility Test Hotfix

pt-BR

  • Promove oficialmente Sidereon 1.1.18 → 1.1.19, sem reutilizar 1.1.18 e sem regredir para releases anteriores.
  • Corrige exclusivamente o gate ShaderMaxCompatibilityStage7Test.risingCulminatingSettingAndBelowHorizonUseTheSameAbsoluteLunarAngle().
  • Corrige o caso below-horizon: o teste aplica Math.abs(position.altitudeDegrees()), portanto a magnitude esperada correta é +90,0°, e não -90,0°.
  • Mantém intacta toda a implementação em src/main/java; não altera posição lunar, fase, iluminação, visibilidade, altitude, renderer ou ownership celeste.
  • Preserva integralmente o contrato ShaderMax 1.0.3 consolidado na 1.1.18, incluindo lunarAngleDegrees()/moonAngleDegrees(), ownership por canal e fallback conservador.
  • Preserva os efeitos exclusivos do modo SIDEREON e mantém VANILLA sem esses efeitos.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo 7, API pública 1 e contrato celeste 2.
  • Cria a baseline Sidereon 1.1.19, mantendo 1.1.18 congelada como baseline histórica anterior.

en-US

  • Officially promotes Sidereon 1.1.18 → 1.1.19 without reusing 1.1.18 or regressing to any earlier release.
  • Fixes only the ShaderMaxCompatibilityStage7Test.risingCulminatingSettingAndBelowHorizonUseTheSameAbsoluteLunarAngle() gate.
  • Fixes the below-horizon case: the assertion checks Math.abs(position.altitudeDegrees()), so the correct expected magnitude is +90.0°, not -90.0°.
  • Leaves all production implementation under src/main/java untouched; lunar position, phase, lighting, visibility, altitude, renderer, and celestial ownership are unchanged.
  • Fully preserves the ShaderMax 1.0.3 contract consolidated in 1.1.18, including lunarAngleDegrees()/moonAngleDegrees(), per-channel ownership, and conservative fallback.
  • Preserves all SIDEREON-exclusive effects and keeps VANILLA free of those effects.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocol 7, public API 1, and celestial contract 2 unchanged.
  • Creates the Sidereon 1.1.19 baseline while keeping 1.1.18 frozen as the prior historical baseline.

1.1.18 — ShaderMax Compatibility, Lunar Position Contract & Celestial Ownership Hardening

pt-BR

  • Promove oficialmente Sidereon 1.1.17 → 1.1.18, sem reutilizar 1.1.17 e sem regredir a qualquer release anterior.
  • Corrige o contrato público da posição lunar absoluta/aparente com lunarAngleDegrees() e alias compatível moonAngleDegrees(), mantendo um único valor canônico normalizado em 0° <= ângulo < 360°.
  • Preserva integralmente a semântica legada de lunarOrbitalDriftDegrees como drift relativo à referência anti-solar no Overworld.
  • Elimina a divergência lunar de 180° para consumidores externos: a posição absoluta passa a ser derivada uma única vez de solarAngle + 180° + lunarOrbitalDrift.
  • Unifica posição lunar entre API pública, renderer, snapshot astronômico, LunarObservation e Provider V2, preservando providers existentes e o contrato celeste 2.
  • Refatora ownership celeste por canal (SUN, MOON, STARS, CONSTELLATIONS, atmosfera e iluminação), removendo a antiga equivalência conceitual shader Iris ativo = ownership total do céu.
  • Adiciona handshake/capabilities genéricas para shaders externos, separando Iris instalado, shader ativo, shader reconhecido, capability declarada e ownership efetivamente concedido.
  • Permite coexistência do renderer Sidereon com shaders que apenas consomem dados astronômicos para iluminação, sombras, atmosfera, reflexos e integrações gráficas, sem lhes conceder automaticamente os corpos celestes.
  • Preserva Sol, Lua, estrelas e constelações Sidereon com ShaderMax 1.0.3 quando seus canais permanecem sob ownership do Sidereon; ShaderMax 1.0.3 não é alterado.
  • Mantém Moon Illusion, refração/coloração/deformação lunar, Sol realista, halo, limb darkening, nascer/pôr do Sol atmosférico, estrelas e constelações exclusivamente no modo SIDEREON; VANILLA permanece sem esses efeitos.
  • Reforça integração opcional e fallback conservador para Iris, Sodium, Embeddium, Distant Horizons e EcoTermico, sem dependência obrigatória de ShaderMax.
  • Adiciona gates automatizados de compatibilidade lunar, normalização angular, horizonte, ownership por canal, coexistência, ausência de dupla renderização e ausência de imports diretos do ShaderMax.
  • Cria a nova baseline Sidereon 1.1.18, mantendo 1.1.17 somente como histórico/baseline anterior.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, protocolo 7, API pública 1 e contrato celeste 2.

en-US

  • Officially promotes Sidereon 1.1.17 → 1.1.18 without reusing 1.1.17 or regressing to any earlier release.
  • Fixes the public absolute/apparent lunar-position contract with lunarAngleDegrees() and the compatible moonAngleDegrees() alias, both exposing one canonical value normalized to 0° <= angle < 360°.
  • Fully preserves the legacy meaning of lunarOrbitalDriftDegrees as drift relative to the anti-solar reference in the Overworld.
  • Eliminates the 180° lunar divergence seen by external consumers: the absolute position is derived exactly once from solarAngle + 180° + lunarOrbitalDrift.
  • Unifies lunar position across the public API, renderer, astronomical snapshot, LunarObservation, and Provider V2 while preserving existing providers and celestial contract 2.
  • Refactors celestial ownership per channel (SUN, MOON, STARS, CONSTELLATIONS, atmosphere, and lighting), removing the former conceptual rule active Iris shader = total sky ownership.
  • Adds a generic external-shader capability/handshake layer that separates Iris installed, shader active, shader recognized, declared capability, and actually granted ownership.
  • Allows the Sidereon renderer to coexist with shaders that only consume astronomical data for lighting, shadows, atmosphere, reflections, and graphics integration without automatically owning celestial bodies.
  • Preserves Sidereon Sun, Moon, stars, and constellations with ShaderMax 1.0.3 whenever those channels remain Sidereon-owned; ShaderMax 1.0.3 itself is unchanged.
  • Keeps Moon Illusion, lunar refraction/color/deformation, realistic Sun, solar halo, limb darkening, altitude-driven sunrise/sunset atmosphere, stars, and constellations exclusive to SIDEREON mode; VANILLA remains free of these effects.
  • Hardens optional integration and conservative fallback for Iris, Sodium, Embeddium, Distant Horizons, and EcoTermico without a mandatory ShaderMax dependency.
  • Adds automated gates for lunar compatibility, angular normalization, horizon states, per-channel ownership, coexistence, duplicate-render prevention, and the absence of direct ShaderMax imports.
  • Creates the new Sidereon 1.1.18 baseline while keeping 1.1.17 only as historical/prior baseline material.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, Java 21, network protocol 7, public API 1, and celestial contract 2 unchanged.

1.1.17 — Lunar Horizon Regression Test Hotfix & Project Root Cleanup

pt-BR

  • Promove oficialmente Sidereon 1.1.16 → 1.1.17, sem reutilizar nem regredir a versão anterior.
  • Corrige o único teste falho em LunarAtmosphericAppearancePolicyTest.apparentHorizonVisibilityIsProgressiveAndContinuous(): o ponto intermediário passa de 2,0° para 0,25°, permanecendo dentro da faixa de fade aparente definida entre -0,75° e +0,75°.
  • Mantém intacta a implementação de produção de LunarAtmosphericAppearancePolicy; refração visual, tint atmosférico, compressão vertical, fases e posição astronômica da Lua não foram alterados.
  • Organiza os relatórios históricos CHANGED_FILES_*.txt e CELESTIAL_VISUALS_MOTION_V1_REPORT.txt em docs/reports/history/, reduzindo a poluição da raiz do projeto.
  • Atualiza somente os validadores históricos que liam esses relatórios por caminho fixo, preservando seus conteúdos e responsabilidades.
  • Preserva integralmente VANILLA/SIDEREON, Sol, Lua, fases, estrelas, constelações, ownership do renderer e compatibilidades opcionais.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, protocolo de rede 7 e schemas 2/2 sem alteração.

en-US

  • Officially promotes Sidereon 1.1.16 → 1.1.17 without reusing or regressing the previous version.
  • Fixes the sole failing regression in LunarAtmosphericAppearancePolicyTest.apparentHorizonVisibilityIsProgressiveAndContinuous(): the intermediate sample moves from 2.0° to 0.25°, keeping it inside the apparent fade band defined from -0.75° to +0.75°.
  • Leaves the production LunarAtmosphericAppearancePolicy implementation unchanged; visual refraction, atmospheric tint, vertical compression, lunar phases and astronomical Moon position are untouched.
  • Moves historical CHANGED_FILES_*.txt reports and CELESTIAL_VISUALS_MOTION_V1_REPORT.txt into docs/reports/history/, keeping the project root clean.
  • Updates only historical validators that used fixed paths to those reports, preserving their contents and responsibilities.
  • Fully preserves VANILLA/SIDEREON, Sun, Moon, phases, stars, constellations, renderer ownership and optional compatibility.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, network protocol 7 and schemas 2/2 unchanged.

1.1.16 — Renderer Compile Hotfix — RenderCall Adapter

pt-BR

  • Promove oficialmente Sidereon 1.1.15 → 1.1.16, sem reutilizar nem alterar retroativamente a release 1.1.15 congelada.
  • Corrige a incompatibilidade de compilação em RealisticNightSkyRenderer: RenderSystem.recordRenderCall recebe agora transition::run, compatível com o RenderCall esperado pela base NeoForge/Minecraft atual.
  • Preserva a mesma transição visual existente: rebuild seletivo de buffers de estrelas/constelações e reset apenas do estado transitório quando aplicável.
  • Não remove, reduz ou substitui features; preserva VANILLA/SIDEREON, Sol, Lua, fases, estrelas, constelações, ownership e compatibilidades opcionais.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, protocolo de rede 7 e schemas 2/2 sem alteração.

en-US

  • Officially promotes Sidereon 1.1.15 → 1.1.16 without reusing or retroactively mutating the frozen 1.1.15 release.
  • Fixes the RealisticNightSkyRenderer compilation incompatibility: RenderSystem.recordRenderCall now receives transition::run, which is compatible with the RenderCall expected by the current NeoForge/Minecraft base.
  • Preserves the existing visual transition semantics: selective star/constellation buffer rebuild and transient-presentation reset only when required.
  • Removes no feature and preserves VANILLA/SIDEREON, Sun, Moon, phases, stars, constellations, renderer ownership and optional compatibility.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, network protocol 7 and schemas 2/2 unchanged.

1.1.15 — Release Integrity, Versioning & Regression Gate Hardening

pt-BR

  • Consolida oficialmente Sidereon 1.1.14 → 1.1.15 e congela a 1.1.15 como nova base mínima; qualquer mudança posterior de código, recurso, gate de release ou empacotamento publicada deve avançar para 1.1.16+.
  • Corrige a cobertura ausente do gate histórico Solar/Lunar Realism Stage 7, incluindo crepúsculo dirigido por altitude solar, ownership e continuidade das curvas atmosféricas.
  • Consolida os gates Stage 1–10 em um único agregador, com identificação e resultado independentes por estágio, Stage 7 obrigatório e falhas anteriores sem mascaramento.
  • Centraliza a auditoria de versão em mod_version, distinguindo explicitamente versão ativa, histórico, baseline de regressão e citações documentais.
  • Adiciona validação automática do JAR quando ele existir, comparando nome do artefato, metadata NeoForge, Minecraft/NeoForge, recursos, mixins, idiomas e identidade interna da versão.
  • Bloqueia divergências como sidereon-1.1.15.jar com metadata 1.1.14 e o cenário inverso, sem confundir changelogs ou histórico interno com regressão.
  • Reforça a fronteira VANILLA = aparência/renderer Vanilla e SIDEREON = aparência/renderer avançado Sidereon; CLASSIC/ENHANCED permanecem somente como aliases de migração.
  • Preserva a autoridade astronômica consolidada da 1.1.14: renderer/backend externo não pode alterar posição do Sol/Lua, fase, tempo sideral, coordenadas estelares ou horizonte astronômico.
  • Preserva integralmente as features de realismo solar/lunar da 1.1.14 e não introduz nova opção visual; en_us.json e pt_br.json mantêm paridade completa sem remoção ou adição desnecessária de traduções.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, protocolo de rede 7 e schemas 2/2. Esta release é exclusivamente de integridade, versionamento, gates, empacotamento e proteção contra regressão.

en-US

  • Officially consolidates Sidereon 1.1.14 → 1.1.15 and freezes 1.1.15 as the new minimum baseline; any later published code, resource, release-gate or packaging change must advance to 1.1.16+.
  • Restores the missing historical Solar/Lunar Realism Stage 7 gate coverage, including solar-altitude twilight, ownership and atmospheric-curve continuity.
  • Consolidates Stage 1–10 gates under one aggregator with independent stage identity/results, mandatory Stage 7 coverage and no masking of earlier failures.
  • Centralizes release-version auditing on mod_version, explicitly distinguishing active version, history, regression baseline and documentation citations.
  • Adds automated final-JAR validation when an artifact exists, comparing artifact filename, NeoForge metadata, Minecraft/NeoForge compatibility, resources, mixins, languages and internal version identity.
  • Rejects mismatches such as sidereon-1.1.15.jar carrying 1.1.14 metadata and the inverse case, without treating changelogs or internal history as regressions.
  • Reinforces VANILLA = Vanilla renderer/presentation and SIDEREON = advanced Sidereon renderer/presentation; CLASSIC/ENHANCED remain migration-only aliases.
  • Preserves the consolidated 1.1.14 astronomical authority: external renderers/backends cannot alter Sun/Moon position, lunar phase, sidereal time, stellar coordinates or the astronomical horizon.
  • Preserves all 1.1.14 solar/lunar realism features and adds no new visible option; en_us.json and pt_br.json retain complete key parity with no unnecessary translation additions or removals.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, network protocol 7 and schemas 2/2. This release is limited to integrity, versioning, gates, packaging and regression protection.

1.1.15 — Consolidação dos Gates Solar/Lunar Realism — Estágio 5/6

pt-BR

  • Cria scripts/validate-solar-lunar-realism.py como agregador único dos gates Stage 1–10, com registro contínuo, identificador próprio e resultado independente por estágio.
  • Torna o Stage 7 obrigatório no registro central, impedindo novamente a sequência incompleta 1,2,3,4,5,6,8,9,10.
  • Executa todos os estágios sem short-circuit: falha anterior continua registrada e não é mascarada por Stage posterior.
  • Adiciona smoke automatizado específico para o comportamento de não mascaramento do orquestrador.
  • Preserva VANILLA como apresentação Vanilla e SIDEREON como apresentação avançada Sidereon; CLASSIC/ENHANCED permanecem somente como aliases de migração.
  • Protege por hash a autoridade astronômica consolidada e verifica que backend gráfico é resolvido somente depois do frame astronômico.
  • Mantém renderer externo sem autoridade para alterar posição do Sol, posição da Lua, fase, tempo sideral, coordenadas estelares ou horizonte astronômico.
  • Normaliza o Stage 10 para validar sua própria responsabilidade de release, deixando a execução cumulativa exclusivamente com o novo agregador.
  • Mantém Sidereon 1.1.15, Minecraft 1.21.1, NeoForge 21.1.248, protocolo 7 e schemas 2/2.

en-US

  • Adds scripts/validate-solar-lunar-realism.py as the single cumulative Stage 1–10 gate aggregator, with a continuous registry, stable stage id and independent result per stage.
  • Makes Stage 7 mandatory in the central registry, preventing the incomplete 1,2,3,4,5,6,8,9,10 chain from returning.
  • Executes every stage without short-circuiting, so an earlier failure remains visible and cannot be masked by a later stage.
  • Adds an automated smoke test for the orchestrator's non-masking behavior.
  • Preserves VANILLA as Vanilla presentation and SIDEREON as advanced Sidereon presentation; CLASSIC/ENHANCED remain migration-only aliases.
  • Protects the consolidated astronomical authority by hash and verifies that graphics-backend selection happens only after the astronomical frame is resolved.
  • Keeps external renderers unable to alter Sun position, Moon position, phase, sidereal time, stellar coordinates or the astronomical horizon.
  • Normalizes Stage 10 to validate its own release responsibility while cumulative execution is owned exclusively by the new aggregator.
  • Keeps Sidereon 1.1.15, Minecraft 1.21.1, NeoForge 21.1.248, protocol 7 and schemas 2/2 unchanged.

1.1.15 — Integridade do JAR Final e Gate de Artefato — Estágio 4/6

pt-BR

  • Cria scripts/validate-release-artifact.py, gate reutilizável que deriva a identidade do JAR de mod_id e da versão canônica, sem hardcode da release ativa.
  • Valida nome do arquivo, META-INF/MANIFEST.MF, META-INF/neoforge.mods.toml, versão interna, Minecraft 1.21.1, NeoForge [21.1.248,), mixins, idiomas e os recursos SIDEREON de Sol, halo, Lua, estrelas e constelações.
  • Impede divergência entre nome externo e metadata interno e rejeita versões históricas quando elas tentam se apresentar como identidade ativa, sem considerar histórico documental legítimo como regressão.
  • Sem JAR em build/libs, executa 22/22 checks source/package e adia somente a inspeção profunda; uma fixture automatizada correta passa 117/117, enquanto fixtures com nome/metadata divergentes são rejeitadas.
  • Protege o source tree contra inclusão de JAR compilado e proíbe JAR Sidereon aninhado dentro do próprio artefato.
  • Faz o runner cumulativo desativar geração de __pycache__/.pyc, evitando que a própria validação invalide os manifests do projeto.
  • Mantém Sidereon 1.1.15, Minecraft 1.21.1, NeoForge 21.1.248, protocolo 7 e schemas 2/2; nenhum código de produção ou recurso runtime foi alterado.

en-US

  • Adds scripts/validate-release-artifact.py, a reusable gate that derives JAR identity from mod_id and the canonical release version, with no active-release hardcoding.
  • Validates filename, META-INF/MANIFEST.MF, META-INF/neoforge.mods.toml, internal version, Minecraft 1.21.1, NeoForge [21.1.248,), mixins, languages, and SIDEREON Sun, halo, Moon, star and constellation resources.
  • Prevents external filename/internal metadata mismatches and rejects historical versions only when they masquerade as active identity, while allowing legitimate historical documentation.
  • Without a JAR in build/libs, it runs 22/22 source/package checks and defers only deep artifact inspection; a valid automated fixture passes 117/117, while mismatched filename/metadata fixtures are rejected.
  • Protects the source tree against compiled-JAR inclusion and rejects a nested Sidereon JAR inside the final artifact.
  • Makes the cumulative runner disable __pycache__/.pyc generation so validation itself cannot invalidate project manifests.
  • Keeps Sidereon 1.1.15, Minecraft 1.21.1, NeoForge 21.1.248, protocol 7 and schemas 2/2; no production code or runtime resource changed.

1.1.15 — Política Central de Versionamento e Normalização de Referências — Estágio 3/6

pt-BR

  • Cria scripts/sidereon_release_policy.py como política canônica: a versão ativa é lida exclusivamente de mod_version em gradle.properties.
  • Cria scripts/validate-release-versioning.py, gate genérico e reutilizável para metadados, artefatos, documentação, progressão monotônica e classificação de referências de versão.
  • Distingue explicitamente versão ativa, versão histórica, baseline de regressão e citação documental.
  • Normaliza os validadores históricos da 1.1.14 para aceitarem 1.1.14 ou sucessoras, sem tratar 1.1.14 como a versão corrente.
  • Torna validate-current-sidereon-gates.py dinâmico: os gates release-integrity são descobertos a partir da versão ativa fornecida pela política canônica.
  • Protege a progressão 1.1.13 → 1.1.14 → 1.1.15 e estende automaticamente a verificação para 1.1.16, 1.1.17, ....
  • Mantém Sidereon 1.1.15, Minecraft 1.21.1, NeoForge 21.1.248, protocolo 7 e schemas 2/2; nenhum código de produção foi alterado neste estágio.

en-US

  • Adds scripts/sidereon_release_policy.py as the canonical policy: the active release is read exclusively from mod_version in gradle.properties.
  • Adds scripts/validate-release-versioning.py, a reusable generic gate for metadata, artifact naming, primary documentation, monotonic progression and version-reference classification.
  • Explicitly distinguishes active version, historical version, regression baseline and documentation citation.
  • Normalizes historical 1.1.14 validators so they accept 1.1.14 or monotonic successors instead of treating 1.1.14 as the current release.
  • Makes validate-current-sidereon-gates.py dynamic: release-integrity gates are discovered from the active version supplied by the canonical policy.
  • Protects 1.1.13 → 1.1.14 → 1.1.15 progression and automatically extends validation to 1.1.16, 1.1.17, ....
  • Keeps Sidereon 1.1.15, Minecraft 1.21.1, NeoForge 21.1.248, protocol 7 and schemas 2/2; no production code changes were made in this stage.

1.1.15 — Gate do Estágio 7, Continuidade do Crepúsculo e Integridade Cumulativa — Estágio 2/6

pt-BR

  • Adiciona o gate dedicado ausente validate-1.1.14-solar-lunar-realism-stage7.py sem recriar a implementação histórica do Estágio 7.
  • Valida que o crepúsculo SIDEREON usa prioritariamente sunPosition.altitudeDegrees, mantendo dayTime somente como fallback fora da apresentação atmosférica SIDEREON.
  • Valida isolamento de VANILLA: sem política atmosférica SIDEREON, cores customizadas de nascer/pôr do Sol ou refração solar SIDEREON.
  • Valida precedência de ownership para provider e shader externo antes da aplicação visual SIDEREON.
  • Adiciona regressões automatizadas para +45°, +20°, +10°, +5°, 0°, -1°, -3°, -6°, -12° e -18°, além de varredura densa das curvas para detectar degraus locais.
  • Corrige dois degraus preexistentes em horizonGlowAlpha() nos limites de +12° e -6°, preservando o mesmo modelo de glow residual mas tornando a curva matematicamente contínua.
  • Integra o gate do Estágio 7 ao validador cumulativo histórico dos Estágios 1–10 e ao conjunto atual de gates forward-compatible.
  • Mantém Sidereon 1.1.15, Minecraft 1.21.1, NeoForge 21.1.248, protocolo de rede 7 e schemas 2/2.

en-US

  • Adds the missing dedicated validate-1.1.14-solar-lunar-realism-stage7.py gate without reconstructing the historical Stage 7 implementation.
  • Verifies that SIDEREON twilight prioritizes sunPosition.altitudeDegrees, keeping dayTime only as the non-SIDEREON fallback.
  • Verifies VANILLA isolation from SIDEREON atmosphere policy, custom sunrise/sunset colors and SIDEREON solar refraction.
  • Verifies provider/external-shader ownership precedence before SIDEREON visual presentation is applied.
  • Adds automated regressions for +45°, +20°, +10°, +5°, 0°, -1°, -3°, -6°, -12° and -18°, plus dense curve scans for local discontinuities.
  • Fixes two pre-existing horizonGlowAlpha() steps at +12° and -6°, preserving the residual-glow model while making the curve mathematically continuous.
  • Integrates the Stage 7 gate into the historical Stage 1–10 cumulative validator and the current forward-compatible gate set.
  • Keeps Sidereon 1.1.15, Minecraft 1.21.1, NeoForge 21.1.248, network protocol 7 and schemas 2/2 unchanged.

1.1.15 — Correção de Versionamento, Gates e Integridade da Release — Estágio 1/6

pt-BR

  • Congela Sidereon 1.1.14 Stage 10 como baseline histórica e promove a linha ativa para 1.1.15, sem reutilizar a release fechada.
  • Atualiza mod_version para 1.1.15 mantendo Minecraft 1.21.1 e NeoForge 21.1.248.
  • Preserva byte a byte as árvores de código de produção Java, recursos e testes da 1.1.14 neste estágio; Moon Illusion, escala/refração/tonalidade/compressão lunar, novo Sol SIDEREON, halo, refração/compressão solar, nascer/pôr do Sol e crepúsculo por altitude permanecem intactos.
  • Mantém protocolo de rede 7, schema server-side 2, schema visual client-side 2, IDs e formatos persistidos.
  • Corrige o agregador de gates atuais para não tratar gates que exigem versões históricas literais como gates ativos da 1.1.15. Esses validadores permanecem preservados para auditoria histórica.
  • Adiciona gate automatizado específico da 1.1.15 / Estágio 1 para versionamento, metadados, hashes da baseline, modos VANILLA/SIDEREON, compatibilidades opcionais e integridade dos manifests, sem Gradle e sem teste manual.

en-US

  • Freezes Sidereon 1.1.14 Stage 10 as the historical baseline and promotes the active line to 1.1.15 without reusing the closed release.
  • Updates mod_version to 1.1.15 while keeping Minecraft 1.21.1 and NeoForge 21.1.248.
  • Preserves the 1.1.14 production Java, resources and test trees byte-for-byte in this stage; Moon Illusion, lunar scale/refraction/colour/compression, the rebuilt SIDEREON Sun, halo, solar refraction/compression, sunrise/sunset and altitude-driven twilight remain intact.
  • Keeps network protocol 7, server schema 2, client visual schema 2, IDs and persisted formats unchanged.
  • Fixes the current-gate aggregator so validators that intentionally require literal historical versions are no longer treated as active 1.1.15 gates. They remain preserved for historical auditing.
  • Adds an automated 1.1.15 / Stage 1 gate for versioning, metadata, baseline hashes, VANILLA/SIDEREON modes, optional compatibility and manifest integrity, with no Gradle or manual-test step.

1.1.14 — SIDEREON Celestial Realism, Moon Illusion & Atmospheric Horizons

en-US

  • Officially promotes Sidereon 1.1.13 → 1.1.14. Future release builds must continue monotonically with 1.1.15, 1.1.16, ...; 1.1.13 is never reused for new changes.
  • All new celestial-realism effects in this release belong exclusively to SIDEREON mode. VANILLA continues to use Minecraft's original Sun, Moon, scale, colours, sunrise/sunset and twilight presentation.
  • Corrects the SIDEREON lunar base scale and adds altitude-driven Moon Illusion: the Moon appears larger near the horizon, becomes smoothly smaller as it rises and naturally grows again as it approaches moonset.
  • Adds altitude-driven lunar atmospheric coloration, apparent refraction, progressive horizon visibility and subtle vertical compression without changing the Moon's true orbit, altitude, azimuth or phase.
  • Fixes the blue SIDEREON Sun issue by separating solar visual ownership from the Vanilla sky colour state and restoring blend, shader colour, alpha and texture state correctly.
  • Rebuilds the SIDEREON solar disc with a soft antialiased limb and subtle limb darkening, while moving the halo to an independent texture/pass to remove artificial borders and concentric artefacts.
  • Adds altitude-driven solar colour, controlled halo strength, slight apparent refraction, subtle near-horizon compression and restrained apparent-scale variation.
  • Improves SIDEREON sunrise and sunset with progressive warm-white → yellow → gold → orange → soft-red horizon transitions, followed by deep-blue twilight and night.
  • SIDEREON twilight now follows the Sun's actual apparent altitude instead of relying primarily on rigid dayTime bands; pre-sunrise brightening and post-sunset glow remain continuous.
  • Fully isolates VANILLA and SIDEREON, including visual cache invalidation, ownership restoration and selective buffer rebuilds during VANILLA ↔ SIDEREON changes.
  • Preserves optional compatibility with Sodium, Embeddium, Iris/shaders, Distant Horizons, resource packs, EcoTermico and WildVitals without introducing mandatory dependencies.
  • Preserves astronomical authority byte-for-byte against the 1.1.13 baseline for the protected Sun/Moon/stellar position authorities. Render backends and visual mode selection cannot change astronomical results.
  • Keeps Minecraft 1.21.1, NeoForge 21.1.248, network protocol 7, server configuration schema 2 and client visual schema 2. Existing visual configuration migration remains automatic and does not require a reset.

pt-BR

  • Promove oficialmente Sidereon 1.1.13 → 1.1.14. Futuras builds de release devem continuar monotonicamente em 1.1.15, 1.1.16, ...; a 1.1.13 nunca deve ser reutilizada para novas mudanças.
  • Todos os novos efeitos de realismo celeste desta release pertencem exclusivamente ao modo SIDEREON. O modo VANILLA continua utilizando a apresentação original do Minecraft para Sol, Lua, escala, cores, nascer/pôr do Sol e crepúsculo.
  • Corrige a escala-base da Lua SIDEREON e adiciona Moon Illusion dirigida por altitude: a Lua fica maior próxima ao horizonte, diminui suavemente conforme sobe e volta a aumentar naturalmente quando se aproxima do pôr.
  • Adiciona tonalidade lunar atmosférica por altitude, refração aparente, visibilidade progressiva no horizonte e achatamento vertical sutil sem alterar órbita, altitude, azimute ou fase reais da Lua.
  • Corrige definitivamente o Sol azul do SIDEREON ao separar o ownership visual solar do estado de cor do céu Vanilla e restaurar corretamente blend, cor do shader, alpha e textura.
  • Reconstrói o disco solar SIDEREON com borda suave antialias e limb darkening sutil, separando o halo em textura/passe independente para remover bordas artificiais e artefatos concêntricos.
  • Adiciona cor solar por altitude, intensidade controlada do halo, leve refração aparente, achatamento sutil próximo ao horizonte e pequena variação de escala aparente.
  • Melhora nascer e pôr do Sol SIDEREON com transições progressivas branco quente → amarelo → dourado → laranja → vermelho suave, seguidas por crepúsculo azul profundo e noite.
  • O crepúsculo SIDEREON agora acompanha a altitude aparente real do Sol em vez de depender principalmente de faixas rígidas de dayTime; o clareamento pré-nascer e o glow pós-pôr permanecem contínuos.
  • Isola completamente VANILLA e SIDEREON, incluindo invalidação de cache visual, restauração de ownership e reconstrução seletiva de buffers durante mudanças VANILLA ↔ SIDEREON.
  • Preserva compatibilidade opcional com Sodium, Embeddium, Iris/shaders, Distant Horizons, resource packs, EcoTermico e WildVitals sem introduzir dependências obrigatórias.
  • Preserva a autoridade astronômica byte a byte em relação à base 1.1.13 para as autoridades protegidas de posição do Sol/Lua/estrelas. Renderer e seleção de modo visual não podem alterar os resultados astronômicos.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, protocolo de rede 7, schema server-side 2 e schema visual client-side 2. A migração da configuração visual existente continua automática e não exige reset.