EcoTermico-1.2.24.jar
Curse Maven Snippet
What's new
1.2.24 - Release Documentation Integrity / Organização e Integridade da Documentação de Release — V1
EN-US
- Reorganizes
docs/RELEASE_CHECKLIST.mdinto explicit current-release, inherited-baseline and historical zones. - Moves 1.2.16/protocol-7 closure requirements out of the current-release area without deleting historical evidence.
- Synchronizes living documentation headers and current mod-version metadata to 1.2.24 while preserving API V1, Capability Contract V1 and internal protocol 8.
- Adds a dedicated validator that rejects stale release/protocol metadata inside the current zone and verifies changelog parity.
- Preserves every pre-1.2.24 changelog section byte-for-byte.
PT-BR
- Reorganiza
docs/RELEASE_CHECKLIST.mdem zonas explícitas de release atual, baseline herdada e histórico. - Move requisitos de fechamento da 1.2.16/protocolo 7 para fora da área de release atual sem apagar evidências históricas.
- Sincroniza cabeçalhos da documentação viva e metadados da versão atual para 1.2.24, preservando API V1, Capability Contract V1 e protocolo interno 8.
- Adiciona validator dedicado que rejeita metadados antigos de release/protocolo dentro da zona atual e confere paridade dos changelogs.
- Preserva byte a byte todas as seções de changelog anteriores à 1.2.24.
1.2.23 - Weather Authority Semantics / Correção da Semântica physicallyAuthoritative — V1
EN-US
- Preserves the public API V1
WeatherSnapshotrecord and constructor while correctingphysicallyAuthoritativeto mean only that an authoritative physical core is present. - Normalizes physical authority to false for unavailable snapshots, invalid sample times or non-finite physical temperature/humidity.
- Adds additive
physicalDataAvailable(),forecastAvailable()anddataSource()helpers plusWeatherDataSource(UNAVAILABLE,PHYSICAL_WITH_FORECAST,FORECAST_ESTIMATE). - Keeps cloud potential/cover, sky condition, fog, visibility and precipitation intensity explicitly derived/forecast/presentation data even inside a physically backed envelope.
- Hardens
PlayerWeatherSyncData.toSnapshot()so a client only preserves physical authority after a valid owning-player server sync. - Preserves the existing sync wire layout, public API V1, Capability Contract V1 and internal protocol 8.
- Adds server/sync/client round-trip, unavailable, forecast-only, invalid timestamp and malformed physical-core regressions.
PT-BR
- Preserva o record público V1
WeatherSnapshote seu construtor, corrigindophysicallyAuthoritativepara significar somente presença de núcleo físico autoritativo. - Normaliza autoridade física para
falseem snapshot indisponível, timestamp inválido ou temperatura/umidade físicas não finitas. - Adiciona de forma aditiva
physicalDataAvailable(),forecastAvailable()edataSource(), além deWeatherDataSource(UNAVAILABLE,PHYSICAL_WITH_FORECAST,FORECAST_ESTIMATE). - Mantém potencial/cobertura de nuvens, condição do céu, neblina, visibilidade e intensidade de precipitação explicitamente como dados derivados/forecast/apresentação mesmo dentro de envelope com base física.
- Endurece
PlayerWeatherSyncData.toSnapshot()para o cliente preservar autoridade física somente após sync válido do servidor para o próprio jogador. - Preserva o layout existente do sync, API pública V1, Capability Contract V1 e protocolo interno 8.
- Adiciona regressões de round-trip servidor/sync/cliente, indisponível, apenas forecast, timestamp inválido e núcleo físico malformado.
1.2.22 - Seasonal Fallback Fairness / Justiça e Priorização do Fallback Sazonal — V1
EN-US
- Evolves regional seasonal event history to SavedData V3 with independent RAIN/SNOW/THUNDER/BLIZZARD timestamps and typed missed-opportunity debt.
- Ranks fallback candidates by the event actually expected by the loaded region: missing characteristic, missed opportunities, season progress, characteristic-event recency, loaded status and deterministic tie-breaks.
- Preserves semantic families: THUNDER satisfies RAIN and BLIZZARD satisfies SNOW; snow never satisfies rain and rain never satisfies snow.
- Removes iteration-order dependence by using one pure comparator for same-region aggregation and global selection.
- Consumes only the selected expected-event debt after a forced opportunity so one region cannot monopolize fallback without falsely recording an event.
- Adds DEBUG priority reasons plus regression/stress coverage for 2, 10 and 64 simultaneous regions and the minimum 3-day season.
- Preserves public API V1, Capability Contract V1, internal protocol 8 and the canonical atmospheric region grid from 1.2.21.
PT-BR
- Evolui o histórico sazonal regional para SavedData V3 com horários independentes de RAIN/SNOW/THUNDER/BLIZZARD e dívida de oportunidades perdidas tipada.
- Prioriza o fallback pelo evento realmente esperado na região carregada: ausência característica, oportunidades perdidas, progresso da estação, recência do evento característico, estado loaded e desempates determinísticos.
- Preserva famílias semânticas: THUNDER satisfaz RAIN e BLIZZARD satisfaz SNOW; neve nunca satisfaz chuva e chuva nunca satisfaz neve.
- Remove dependência da ordem de iteração usando o mesmo comparador puro na agregação da região e na seleção global.
- Consome somente a dívida do evento esperado selecionado após uma oportunidade forçada, evitando monopólio sem registrar evento falso.
- Adiciona motivo da prioridade em DEBUG e regressões/estresse com 2, 10 e 64 regiões simultâneas e estação mínima de 3 dias.
- Preserva API pública V1, Capability Contract V1, protocolo interno 8 e a malha atmosférica canônica da 1.2.21.
1.2.21 - Canonical Atmospheric Region Grid / Remoção do 128 Fixo em CloudCoverMath — V1
EN-US
- Removes the hardcoded 128-block division from
CloudCoverMathandPhysicalSkyTransmissionMath; both now receive already-resolvedregionX/regionZ. - Adds pure
AtmosphereRegionGridas the canonical block-to-region resolver using the effectiveCommonConfig.ATMOSPHERE_REGION_SIZE_BLOCKS. - Aligns physical atmosphere, LOCAL virtual cells, cloud cover, physical sky transmission, regional seasonal history and late-season fallback to the same grid boundaries.
- Resolves regional size once at runtime boundaries instead of reading configuration repeatedly inside pure math.
- Adds regression coverage for 32/64/128/256/512, negative coordinates and exact positive/negative boundaries.
- Preserves public API V1, Capability Contract V1 and internal network protocol 8.
PT-BR
- Remove a divisão fixa de 128 blocos de
CloudCoverMathePhysicalSkyTransmissionMath; ambas passam a receberregionX/regionZjá resolvidos. - Adiciona
AtmosphereRegionGridpura como resolver canônico bloco→região usando oCommonConfig.ATMOSPHERE_REGION_SIZE_BLOCKSefetivo. - Alinha atmosfera física, células virtuais LOCAL, nebulosidade, transmissão física do céu, histórico sazonal regional e fallback de fim de estação às mesmas fronteiras de malha.
- Resolve o tamanho regional nos limites de runtime em vez de reler configuração dentro da matemática pura.
- Adiciona regressões para 32/64/128/256/512, coordenadas negativas e fronteiras exatas positivas/negativas.
- Preserva API pública V1, Capability Contract V1 e protocolo interno de rede 8.
1.2.20 - regionSizeBlocks Persistence & Reindex V1 / Persistência e Reindexação de regionSizeBlocks — V1
EN-US
- Adds per-dimension
ecotermico_worldSavedData for the structural regional geometry, persisting schema version, appliedregionSizeBlocksand last reindex game time. - First use persists the effective value without fabricating a reindex; unchanged values do not dirty SavedData every tick.
- Centralizes application so the in-memory physical regional index is rebuilt before a persisted mismatch is acknowledged as applied.
- Config/restart changes rebuild tracked-chunk membership, discard old physical regional snapshots, refresh urgent keys and reset round-robin scheduling before the new geometry becomes live.
- Applies the structural check on chunk lifecycle and server-level ticks, including while the atmosphere feature is disabled.
- Adds JUnit/static regression coverage while preserving public API V1, Capability Contract V1 and internal protocol 8.
- Reconciles at
LevelEvent.Loadand invalidates onlySeasonalClimateEventSavedDataentries whose keys depend on the previous region geometry before acknowledging the new size. - Unknown future
ecotermico_worldschemas are preserved as passthrough NBT and remain write-blocked to prevent downgrade. - Explicit migration regression cases cover 128→256, 256→128 and 64→512, plus first-use/restart/future-schema behavior.
PT-BR
- Adiciona
SavedDatapor dimensãoecotermico_worldpara a geometria regional estrutural, persistindo versão de schema,regionSizeBlocksaplicado e game time da última reindexação. - No primeiro uso, persiste o valor efetivo sem inventar uma reindexação; valor inalterado não marca o SavedData como dirty a cada tick.
- Centraliza a aplicação para reconstruir o índice regional físico em memória antes de reconhecer uma divergência persistida como aplicada.
- Mudanças por config/restart refazem o membership dos chunks rastreados, descartam snapshots regionais físicos antigos, renovam a fila urgente e zeram o round-robin antes de ativar a nova geometria.
- A verificação estrutural ocorre no ciclo de vida de chunks e no tick do nível, inclusive com a atmosfera desativada.
- Adiciona cobertura JUnit/estática preservando API pública V1, Capability Contract V1 e protocolo interno 8.
- Reconcilia também em
LevelEvent.Loade invalida somente entradas deSeasonalClimateEventSavedDatacujas chaves dependem da geometria regional anterior antes de reconhecer o novo tamanho. - Schemas futuros desconhecidos de
ecotermico_worldsão preservados como NBT passthrough e permanecem bloqueados para escrita, evitando downgrade. - Casos explícitos de regressão cobrem 128→256, 256→128 e 64→512, além de primeiro uso/restart/schema futuro.
1.2.19 - Virtual / Physical Atmosphere Separation V1 / Separação entre Atmosfera Virtual e Física — V1
EN-US
- Starts the six-stage separation of virtual/predictive atmosphere from physical gameplay authority while preserving public API V1, Capability Contract V1 and internal protocol 8.
- Stage 1/6 maps the authority boundary and records the existing physical-consumer leaks before behavior changes.
- Defines one allowed direction: loaded physical/predictive state may anchor a virtual forecast; virtual cells must never drive physical temperature, wind, precipitation, damage or lightning.
- Adds a reusable static audit that tracks the direct/indirect virtual-to-physical edges until the final strict gate reaches zero.
- Stage 2/6 removes virtual-atmosphere input from physical microclimate/solar heating and introduces a loaded-world-only physical sky transmission model.
- Extra storm cooling now follows only the resolved physical THUNDER/BLIZZARD WeatherType, never reconciled/virtual instability.
- Stage 3/6 seals regional physical authority: VIRTUAL reconciliation remains diagnostic/API metadata but has zero physical influence over instability, humidity, sustained wind, gusts, storm wind multiplier or lightning scheduling.
- RETAINED_PHYSICAL continuity remains available only inside the same regional state, while EcoTermico lightning now depends only on physical precipitation, biome thunder permission and physical/retained-physical instability.
- Stage 4/6 removes visual
getCloudPotential()from the physical seasonal precipitation scheduler and replaces it with loaded-world-only condensation/precipitation potential derived from biome downfall, physical humidity/instability, season and ambient temperature. getCloudPotential()andWeatherSnapshotremain API/visual forecast surfaces, whilePhysicalPrecipitationResolverremains the final local authority for rain, snow, thunder and blizzard form.- Stage 5/6 preserves API V1, Capability Contract V1 and protocol 8 while converting legacy virtual-influence/lightning reconciliation config keys into compatibility no-ops for physical gameplay.
- Public docs now classify physical, hybrid-presentation and virtual/long-range atmospheric snapshots explicitly; historical changelog entries remain untouched.
- Stage 6/6 closes the separation gate: strict audit reports zero virtual-to-physical paths, pure Java boundary tests prove VIRTUAL reconciliation cannot change physical results, and physical/predictive coverage remains allowed to anchor only the virtual forecast representation.
- Final cumulative validation covers public API/protocol integrity, commands/methods, documentation, packaging hygiene and regression gates; Gradle/JUnit/NeoForge runtime status remains explicit rather than inferred.
PT-BR
- Inicia a separação em seis estágios entre atmosfera virtual/preditiva e autoridade física de gameplay, preservando API pública V1, Capability Contract V1 e protocolo interno 8.
- O Estágio 1/6 mapeia a fronteira de autoridade e registra os vazamentos atuais para consumidores físicos antes das mudanças comportamentais.
- Define uma única direção permitida: estado físico/preditivo carregado pode ancorar o forecast virtual; células virtuais nunca podem dirigir temperatura, vento, precipitação, dano ou raios físicos.
- Adiciona auditoria estática reutilizável que acompanha os caminhos virtual -> físico até o gate final estrito chegar a zero.
- O Estágio 2/6 remove a entrada da atmosfera virtual do microclima/aquecimento solar físico e introduz um modelo de transmissão do céu baseado apenas no mundo carregado.
- O resfriamento extra de tempestade passa a seguir somente o WeatherType físico THUNDER/BLIZZARD já resolvido, nunca instabilidade reconciliada/virtual.
- O Estágio 3/6 sela a autoridade física regional: a reconciliação VIRTUAL permanece como metadado de diagnóstico/API, mas passa a ter influência física zero sobre instabilidade, umidade, vento sustentado, rajadas, multiplicador de tempestade ou agenda de raios.
- A continuidade RETAINED_PHYSICAL permanece somente dentro do estado da mesma região, enquanto os raios extras do EcoTermico passam a depender apenas de precipitação física, permissão de trovão do bioma e instabilidade física/retida física.
- O Estágio 4/6 remove o
getCloudPotential()visual do scheduler físico de precipitação sazonal e o substitui por potencial de condensação/precipitação derivado somente dedownfalldo bioma, umidade/instabilidade físicas, estação e temperatura ambiente carregada. getCloudPotential()eWeatherSnapshotpermanecem superfícies de API/forecast visual, enquantoPhysicalPrecipitationResolvercontinua sendo a autoridade local final para a forma física de chuva, neve, trovão e nevasca.- O Estágio 5/6 preserva API V1, Capability Contract V1 e protocolo 8, mantendo as chaves legadas de influência virtual/progresso de raio apenas como compatibilidade de configuração e sem efeito no gameplay físico.
- A documentação pública passa a classificar explicitamente snapshots físicos, híbridos de apresentação e virtuais/de longo alcance, sem reescrever entradas históricas do changelog.
1.2.18 - Internal Protocol 8 Preservation & Rationale V1 / Preservação e Justificativa do Protocolo Interno 8 — V1
EN-US
- Starts the incremental Protocol 8 preservation checklist without changing gameplay or the public API V1 contract.
- Documents beside
ModPayloads.NETWORK_VERSIONthat protocol8replaced7becauseGuideOpenPayloadadded the serializeddynamicCloudCoverEnabledandseasonalClimateGuaranteeEnabledbooleans. - Makes the internal wire protocol explicitly independent from
TemperatureAPI.API_VERSIONand forbids lowering the current protocol merely to match historical documentation. - Adds living technical documentation that records the origin, release lineage and future bump rule for protocol 8.
- Stage 2/5 completed: formalizes API V1 / Capability Contract V1 / internal protocol 8 as independent version domains and keeps the network protocol private from external integrations.
- Updates living API/release documentation to 1.2.18 and explicitly preserves historical protocol-7 references only in the releases that used them.
- Stage 3/5 completed: audits all 25
GuideOpenPayloadwire positions, authoritative factories, client/server consumers, defensive bounds and ordinal fallbacks. - Documents the canonical protocol-8 wire layout and adds a dedicated static integrity gate for future incompatible payload changes.
- Stage 4/5 completed: adds a real
GuideOpenPayload.STREAM_CODECJUnit round-trip and freezes the 25-component protocol-8 record shape together with network version8. - Makes the historical 1.2.17 feature gate forward-compatible with newer releases/protocols while still requiring the preserved 1.2.17
7 -> 8rationale. - Pins all evidence under
docs/history/1.2.13anddocs/history/1.2.16by SHA-256 in the stage-4 regression gate; historical files are not rewritten. - Stage 5/5 completed: closes living documentation, release evidence and the permanent evolution policy; source 1.2.18 is finalized with public API V1 / Capability Contract V1 / internal protocol 8.
- Future protocol changes must document the exact wire change, compatibility impact, migration/fallback, tests and regression risks; precautionary bumps and historical downgrades are explicitly forbidden.
- Runtime certification remains explicit: JUnit/Gradle/NeoForge tasks are PASS only after real execution; wrapper/network blocking remains BLOCKED/PENDING.
PT-BR
- Inicia a implementação incremental da checklist de preservação do Protocolo 8 sem alterar gameplay nem o contrato da API pública V1.
- Documenta junto de
ModPayloads.NETWORK_VERSIONque o protocolo8substituiu o7porqueGuideOpenPayloadpassou a serializar os booleanosdynamicCloudCoverEnabledeseasonalClimateGuaranteeEnabled. - Torna explícita a independência entre o protocolo interno de wire e
TemperatureAPI.API_VERSIONe proíbe reduzir o protocolo atual apenas para coincidir com documentação histórica. - Adiciona documentação técnica viva registrando origem, release de introdução e regra para futuros bumps do protocolo 8.
- Estágio 2/5 concluído: formaliza API V1 / Capability Contract V1 / protocolo interno 8 como domínios independentes e mantém o protocolo de rede privado para integrações externas.
- Atualiza documentação viva de API/release para 1.2.18 e preserva referências históricas ao protocolo 7 somente nas releases que realmente o utilizaram.
- Estágio 3/5 concluído: audita as 25 posições de wire de
GuideOpenPayload, factories autoritativas, consumidores client/server, limites defensivos e fallbacks de ordinais. - Documenta o layout canônico do protocolo 8 e adiciona gate estático dedicado de integridade contra futuras mudanças incompatíveis do payload.
- Estágio 4/5 concluído: adiciona round-trip JUnit real por
GuideOpenPayload.STREAM_CODECe congela os 25 componentes do record do protocolo 8 junto da versão de rede8. - Torna o gate histórico da 1.2.17 forward-compatible com releases/protocolos posteriores, mantendo obrigatória a justificativa histórica
7 -> 8na seção da 1.2.17. - Fixa por SHA-256 todas as evidências em
docs/history/1.2.13edocs/history/1.2.16no gate de regressão do Estágio 4; arquivos históricos não são reescritos. - Estágio 5/5 concluído: fecha documentação viva, evidências de release e a política permanente de evolução; a fonte 1.2.18 fica finalizada com API pública V1 / Capability Contract V1 / protocolo interno 8.
- Futuras mudanças de protocolo devem documentar a alteração exata de wire, impacto de compatibilidade, migração/fallback, testes e riscos de regressão; bumps preventivos e downgrades para satisfazer histórico ficam explicitamente proibidos.
- A certificação runtime permanece explícita: tasks JUnit/Gradle/NeoForge só recebem PASS após execução real; bloqueio de wrapper/rede permanece BLOCKED/PENDENTE.
1.2.17 - API Reconciliation, Atmospheric Cloud Cover & Seasonal Climate Guarantees
EN-US
- Based on the official 1.2.16 line; restores the published API capability-discovery contract without removing existing API V1 signatures.
- Keeps
TemperatureAPI.API_VERSION = 1andCAPABILITY_CONTRACT_VERSION = 1; adds four stable weather capability IDs. - Adds
SkyCondition,WeatherSnapshot,cloudCover, cloud/overcast helpers, atmospheric visibility and solar-transmission queries. - Uses the existing virtual atmosphere as the single canonical source of
cloudPotential; no second cloud-potential formula remains. - Cloud cover now attenuates direct solar microclimate heating while preserving the established precipitation attenuation bound.
- Seasonal event history is persistent and regional; loaded regions keep being sampled during global precipitation windows and late-season fallback prioritizes regions with more missed eligible opportunities.
- A late-season guarantee creates only an eligible weather opportunity; local biome permissions, moisture and thermal snow threshold still determine whether precipitation can occur and whether it is rain or snow.
- Adds Administration controls for dynamic cloud cover and seasonal climate guarantees using the existing Apply/persistence flow.
- Internal network protocol changes from 7 to 8 because
GuideOpenPayloadadds two serialized booleans. This is not a public API V1 break. - Fog density/visibility remain meteorological estimates; independent physical fog, drizzle, heat-wave/cold-wave and dry-event systems are not claimed by this release.
PT-BR
- Parte da linha oficial 1.2.16 e restaura o contrato publicado de descoberta por capabilities sem remover assinaturas existentes da API V1.
- Mantém
TemperatureAPI.API_VERSION = 1eCAPABILITY_CONTRACT_VERSION = 1; acrescenta quatro IDs meteorológicos estáveis. - Adiciona
SkyCondition,WeatherSnapshot,cloudCover, consultas de nublado/encoberto, visibilidade atmosférica e transmissão solar. - Reutiliza a atmosfera virtual existente como única fonte canônica de
cloudPotential; não permanece uma segunda fórmula concorrente. - A cobertura de nuvens passa a atenuar o aquecimento solar direto do microclima, preservando como limite a atenuação histórica de precipitação.
- O histórico de eventos passa a ser persistente e regional; regiões carregadas continuam sendo amostradas durante janelas globais de precipitação e o fallback prioriza regiões com mais oportunidades elegíveis perdidas.
- A garantia de fim de estação cria somente uma oportunidade climaticamente elegível; permissões do bioma, umidade e limiar térmico continuam decidindo se ocorre precipitação e se ela será chuva ou neve.
- Administração recebe controles de nebulosidade dinâmica e garantia climática sazonal usando o fluxo existente de Aplicar/persistir.
- O protocolo interno muda de 7 para 8 porque
GuideOpenPayloadganhou dois booleanos serializados. Isso não é quebra da API pública V1. - Densidade de neblina/visibilidade ainda são estimativas meteorológicas; neblina física independente, garoa, ondas de calor/frio e eventos secos não são declarados implementados nesta release.
This mod has no additional files