promotional bannermobile promotional banner

Ecotermico

EcoTermico is a realistic thermal simulation mod for Minecraft that adds dynamic temperature, weather, wind, water, shelter, environmental heat propagation, player thermal effects, and server administration tools.
Back to Files

EcoTermico-2.0.18.jar

File nameEcoTermico-2.0.18.jar
Uploader
LaercioAvilaLaercioAvila
Uploaded
Sep 18, 2026
Downloads
26
Size
1.8 MB
Mod Loaders
NeoForge
File ID
8916019
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:ecotermico-1685124:8916019"

Learn more about Curse Maven

What's new

2.0.18 — Gradle Test Root Resolution e Canonical Morning Phase-Debt Contract Hotfix — V1

  • Promove manualmente EcoTermico 2.0.17 → EcoTermico 2.0.18; não reutiliza 2.0.17 e não regride runtime, API, configuração, IDs persistidos ou features.
  • Corrige AtmosphericRegionalSample217CompileContractTest: leitura de fonte deixa de depender do working directory do executor Gradle e passa a resolver o root real do projeto antes de abrir src/main/....
  • Audita a árvore de testes contra o mesmo padrão frágil Files.readString(Path.of(relative...)); nenhum outro leitor direto equivalente permanece ativo.
  • Corrige o contrato histórico SeasonAdministrativeForwardRebase210Stage6Test para a semântica vigente desde 2.0.14: saltos sazonais aterrissam em 1000 ticks da manhã e podem reter somente dívida visual de fase negativa, paga por FAST_FORWARD_CONVERGENCE, em vez de exigir incorretamente offset zero.
  • O caso 23000 → manhã 1000 retém -2000 ticks de fase: a apresentação fica atrás da autoridade e acelera somente para frente; não cria dívida positiva, rewind visual nem carry absoluto de dias.
  • Adiciona TemporalTestContract218HotfixContractTest e temporalRelease218TestContractHotfix ao gate cumulativo.
  • src/main permanece byte-idêntico à 2.0.17; a correção é exclusivamente de contratos/testes/release evidence.
  • Mantém Minecraft 1.21.1, NeoForge 21.1.248, Java 21, API_VERSION = 1, autoridade temporal 2.0.x, epoch/revision/snapshots e ADMIN_CALENDAR_JUMP.

2.0.17 — Atmospheric Regional Sample Compile Hotfix — V1

  • Promove manualmente EcoTermico 2.0.16 → EcoTermico 2.0.17, preservando a 2.0.16 como baseline histórica imutável.
  • Corrige falha de compilação em AtmosphericStormManager.updateRegion(...) causada por cinco referências residuais ao antigo snapshot local debug após a migração do hot path atmosférico para RegionalClimateSample climate.
  • Substitui exclusivamente essas leituras residuais por climate.weather() e climate.humidity(), mantendo a mesma autoridade física já usada pelo restante do método.
  • Preserva classificação de precipitação, convecção, reconciliação atmosférica, umidade física retida, vento, relâmpagos, budgets, lifecycle de chunks, ADMIN_CALENDAR_JUMP, morning tick 1000 e toda a arquitetura temporal 2.0.x.
  • Adiciona contrato automatizado e validador estrutural para impedir retorno de debug.weather()/debug.humidity() dentro do manager atmosférico regional.
  • API V1, chaves de configuração, IDs de registry/network e SavedData permanecem compatíveis com 2.0.16.
  • Versionamento permanece manual; nenhum script de bump/promote automático foi criado.

2.0.16 — Physical Work Fairness e Chunk Lifecycle Thermal Revision Hotfix — V1

  • Promove manualmente EcoTermico 2.0.15 → EcoTermico 2.0.16, preservando 2.0.15 como baseline histórica imutável.
  • Corrige starvation no EcoThermalWorldWorkBudget: os tetos por domínio agora somam exatamente o teto mundial de 256 unidades/tick (16 reconciliação + 64 água + 64 neve + 32 plantas + 16 crops + 64 mutações).
  • Mantém o teto físico independente da duração do ciclo solar e evita que a ordem dos listeners consuma todo o orçamento antes de plantas/crops receberem sua cota de scan/avaliação.
  • Preserva o budget global de mutações como limite compartilhado; nenhuma aceleração solar aumenta scans, consultas ou mutações físicas.
  • Corrige lifecycle térmico de chunks: ChunkEvent.Load publica uma nova revisão física monotônica em O(1), enquanto unload remove a revisão carregada.
  • Corrige também o stamp físico de raio: ele deixa de usar apenas max(revision) e passa a gerar fingerprint determinístico do conjunto de chunks rastreados, detectando unload de um chunk mesmo quando outro vizinho possui revisão mais nova.
  • Garante que ThermalRoomCache e ThermalSourceIndex recalculados enquanto um chunk vizinho estava descarregado não voltem a parecer válidos quando esse chunk é carregado novamente.
  • Não introduz clearCaches, Map.clear, removeIf ou varredura global no chunk load; a invalidação ocorre pelo stamp físico já usado pelos caches.
  • Torna o gate histórico 2.0.15 forward-compatible para versões 2.0.x posteriores sem alterar sua evidência congelada.
  • Adiciona testes de todas as 720 ordens possíveis dos seis domínios de budget e contrato estrutural para chunk-load revision.
  • Preserva integralmente ADMIN_CALENDAR_JUMP, morning tick 1000, autoridade temporal única, budgets estáveis, fila térmica incremental e hot path de precipitação endurecido.

2.0.15 — Test Contract Hotfix, Release Gate Alignment e Build/Test Stability — V1

  • Promove manualmente EcoTermico 2.0.14 → EcoTermico 2.0.15, preservando 2.0.14 como baseline histórica imutável.
  • Não altera o runtime de src/main; o hotfix corrige exclusivamente contratos automatizados e gates de release que ainda exigiam trechos da arquitetura anterior ao hardening 2.0.14.
  • Corrige SeasonChunkReconciliationSeparation214Stage4ContractTest e SeasonTimeAdvance210Stage6ContractTest para exigir ThermalTemporalCadence.physicalWorkBudget(...) seguido de EcoThermalWorldWorkBudget.claimReconciliationEvaluations(...), em vez do budget direto legado.
  • Mantém a proteção contra regressão: os testes continuam exigindo budget físico estável, teto compartilhado por dimensão/tick e ausência de force-load.
  • Torna os validadores 2.0.14 forward-compatible para releases posteriores, preservando a evidência histórica 2.0.14 sem comparar seu full-source manifest imutável contra uma árvore de versão posterior.
  • Adiciona gate 2.0.15 específico para impedir reintrodução do contrato de teste obsoleto.
  • Mantém integralmente ADMIN_CALENDAR_JUMP, destino sazonal O(1), morning tick 1000, autoridade temporal única, invalidação térmica incremental, budgets físicos estáveis, precipitação limitada e convergência ecológica/dimensional/cliente introduzidos em 2.0.14.
  • Versionamento permanece manual; nenhum script de bump/promote automático foi criado.

2.0.14 — Administrative Season Jump, Temporal Workload Decoupling, Thermal Invalidation Hardening e Runtime TPS Stability — V1

  • Promove manualmente EcoTermico 2.0.13 → EcoTermico 2.0.14, sem reutilizar 2.0.13 e sem regressão para qualquer 2.0.x anterior ou 1.x.
  • Introduz a semântica explícita ADMIN_CALENDAR_JUMP para /ecotermico season <season> <stage>: o destino é resolvido em O(1) e escrito uma única vez por TemporalForwardAdvanceAPI, sem replay de ticks, dias ou estações intermediárias.
  • Todo salto sazonal administrativo termina no primeiro dia do estágio solicitado e no horário canônico morning tick 1000, sempre com targetDayTime > currentDayTime; a ocorrência exatamente atual é resolvida na próxima ocorrência futura compatível.
  • SeasonCalendarMath.firstDayForStage(...) usa fórmula fechada O(1), preservando exatamente a divisão proporcional existente de EARLY, MID e END.
  • Remove TemperatureAPI.clearCaches(level) do salto sazonal. EnvironmentTemperatureCache invalida naturalmente por DynamicStamp (dayTime, estação, weather e physicalRevision), enquanto geometria de salas, fontes, terreno/DH e a inércia térmica de água/salas permanecem acumuladas e convergem normalmente.
  • Remove o reenfileiramento global de chunks carregados do comando sazonal. ADMIN_CALENDAR_JUMP não é OFFLINE_CHUNK_RECONCILIATION; chunks retornando de unload continuam reconciliados pelo lifecycle normal e budgets existentes.
  • Consolida LevelThermalMutationMixin como autoridade única de mutação física para physicalRevision + invalidação térmica lógica, removendo invalidações manuais duplicadas em água, neve, dormência de plantas e morte térmica de crops.
  • Endurece ThermalCacheInvalidationManager: saturação da fila limitada não promove mais para full cache clear. Entradas antigas tornam-se logicamente obsoletas por revisão/generation e a limpeza física permanece incremental e orçamentada.
  • Desacopla velocidade solar de orçamento físico: ciclo mínimo de 2 minutos não multiplica scans, heightmap/biome queries, mutações de bloco ou invalidações. EcoThermalWorldWorkBudget fornece teto compartilhado por dimensão/tick para água, neve, plantas, crops, mutações e reconciliação.
  • Reduz o hot path de precipitação para amostragem rotativa limitada, com RegionalClimateSample/PrecipitationClimateSample; getDebugSnapshot() deixa os managers intensivos de runtime e permanece voltado a diagnóstico/administração.
  • Água, neve, gelo/degelo, plantas, crops, temperaturas e precipitação convergem naturalmente nos ticks seguintes sob orçamento estável, sem tentar materializar meses de simulação no tick do comando.
  • ADMIN_CALENDAR_JUMP reancora a ecologia sem conceder Spring→Summer→Autumn→Winter como transições vividas; repetir comandos de estação não acelera sucessão ecológica.
  • Mantém o Overworld como única autoridade temporal. Dimensões supportsSeasons=true resolvem imediatamente o estado sazonal; Nether, End e dimensões supportsSeasons=false continuam retornando estado disabled ao cliente.
  • Cliente retargeta diretamente o estado final preservando forwardPhaseEquivalentDebt; refresh de folhagem usa cursor incremental/fila limitada em vez de scan+sort de milhares de chunks no mesmo frame.
  • Diagnóstico temporal reconhece /ecotermico season como ADMIN_CALENDAR_JUMP autorizado sem enfraquecer detecção de rewind real, mudança externa inesperada, epoch inconsistente ou writer concorrente.
  • Preserva integralmente a arquitetura temporal 2.0.x: gameTime independente de dayTime, autoridade única, epoch/revision/snapshots, monotonic guards, correção visual e sincronização cliente/servidor.
  • Fecha a release com matriz automatizada das 12 combinações sazonais × 5 horários, gates estruturais de ausência de replay/full-clear/reconciliação/reroll, testes de fila térmica, precipitação, budget físico de ciclo mínimo, ecologia, dimensões e diagnóstico.
  • Versionamento permanece exclusivamente manual; nenhum set-version, bump-version, promote-version ou auto-version foi criado.

This mod has no additional files