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-1.2.9.jar

File nameEcoTermico-1.2.9.jar
Uploader
LaercioAvilaLaercioAvila
Uploaded
Sep 9, 2026
Downloads
9
Size
1.1 MB
Mod Loaders
NeoForge
File ID
8841329
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

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

Learn more about Curse Maven

What's new

1.2.9 - ServerPlayer Climate Sync Compile Hotfix / Hotfix de Compilação da Sincronização Climática ServerPlayer

EN-US

  • Fixes the NeoForge 1.21.1 Java compilation error in PlayerThermalHandler: PlayerClimateStateSync.syncTo(...) requires ServerPlayer, while the tick handler previously kept the entity statically typed as Player.
  • Preserves the original generic Player thermal flow and adds a separate instanceof ServerPlayer narrowing only for the climate-sync calls, keeping existing overload resolution/behavior and the syncTo(ServerPlayer) contract intact.
  • Preserves the 1.2.8 Administration → Performance labels, descriptions, red disabled-state reasons, draft + Apply workflow, season/phenology order guards, precipitation, hydrology, API V1 and network protocol unchanged.
  • Adds a dedicated static regression gate that rejects reintroduction of a generic Player at the climate-sync call sites and confirms the 1.2.8 UI implementation remains present.

PT-BR

  • Corrige o erro de compilação Java/NeoForge 1.21.1 em PlayerThermalHandler: PlayerClimateStateSync.syncTo(...) exige ServerPlayer, enquanto o tick handler mantinha a entidade tipada estaticamente como Player.
  • O handler de pós-tick preserva o fluxo térmico original tipado como Player e adiciona um narrowing separado com instanceof ServerPlayer apenas para as chamadas de sincronização climática, mantendo a resolução de overloads/comportamento existente e o contrato syncTo(ServerPlayer).
  • Preserva sem alteração funcional as labels, descrições e motivos em vermelho da Administração → Desempenho da 1.2.8, o fluxo rascunho + Aplicar, as guardas de ordem fenológica, precipitação, hidrologia, API V1 e protocolo de rede.
  • Adiciona gate estático dedicado que impede a reintrodução de Player genérico nos pontos de sincronização climática e confirma que a implementação visual da 1.2.8 continua presente.

1.2.8 - Performance Control Clarity and Disabled-State Explanations / Clareza dos Controles de Desempenho e Motivos de Desabilitação

EN-US

  • Reworks Administration → Performance labels so every row explicitly identifies whether it controls cache lifetime or an update interval.
  • Adds a short practical description for Environment, Rooms, Thermal Sources, Body and Atmosphere whenever the available vertical space can display it without overlapping controls.
  • Keeps compact layouts safe by prioritizing buttons/values and omitting the secondary description when there is not enough space.
  • Shows the preset lock reason in red when Environment/Rooms/Sources are disabled outside CUSTOM.
  • Shows a red explanation above the footer whenever Apply settings is disabled because there are no pending changes or an apply operation is already in progress.
  • Preserves server-authoritative validation, the existing draft + Apply workflow, API V1 and the current network protocol.

PT-BR

  • Reformula os rótulos de Administração → Desempenho para deixar explícito em cada linha se o ajuste controla cache/TTL ou intervalo de atualização.
  • Adiciona uma descrição prática curta para Ambiente, Recintos, Fontes térmicas, Corpo e Atmosfera quando houver altura suficiente sem sobrepor controles.
  • Mantém layouts compactos seguros, priorizando botões/valores e omitindo a descrição secundária quando não houver espaço.
  • Mostra em vermelho o motivo do bloqueio de Ambiente/Recintos/Fontes quando o preset não é CUSTOM.
  • Mostra em vermelho, acima do rodapé, por que Aplicar configurações está desabilitado quando não existem alterações pendentes ou quando uma aplicação já está em andamento.
  • Preserva validação autoritativa do servidor, fluxo rascunho + Aplicar, API V1 e protocolo de rede atuais.

1.2.7 - Foliage Order Guard and Night Transitions / Guarda de Ordem Fenológica e Transições Noturnas

EN-US

  • Adds a client-side per-chunk structural phenology guard so cold acceleration cannot visibly jump directly from green to orange/brown or from dry autumn to frosted winter in one observed visual day.
  • Preserves the ordered structural sequence GREEN -> AUTUMN_YELLOW -> AUTUMN_ORANGE -> AUTUMN_DRY -> WINTER_DORMANT -> WINTER_FROSTED.
  • Newly loaded chunks still reconstruct the deterministic current target immediately instead of replaying historical stages.
  • Spring remains the explicit biological renewal boundary where green may return; summer/autumn/winter cannot regress an already-started senescence sequence.
  • Treats SNOW_COVERED as a transient overlay rather than persisted structural progression, allowing snow to appear/disappear without causing a false green flash.
  • Uses the shared night-resolved visual-day serial, cleans state on world/dimension changes, prunes tracked chunks during nearby rebuild scheduling and keeps a defensive bounded cache.
  • Applies the same progression guard to foliage and ground vegetation and adds dedicated regression tests/static validation.

PT-BR

  • Adiciona guarda estrutural client-side por chunk para que a antecipação pelo frio não salte visualmente de verde direto para laranja/marrom nem de marrom seco direto para geada em um único dia visual observado.
  • Preserva a sequência estrutural GREEN -> AUTUMN_YELLOW -> AUTUMN_ORANGE -> AUTUMN_DRY -> WINTER_DORMANT -> WINTER_FROSTED.
  • Chunks carregados tardiamente continuam reconstruindo diretamente o target determinístico atual, sem reproduzir estágios históricos que o jogador não viu.
  • A primavera continua sendo o boundary biológico explícito em que o verde pode retornar; verão/outono/inverno não podem regredir uma senescência já iniciada.
  • Trata SNOW_COVERED como overlay temporário, e não como progressão estrutural persistida, permitindo a neve aparecer/desaparecer sem produzir um flash verde falso.
  • Usa o mesmo serial de dia visual resolvido à noite, limpa o estado na troca de mundo/dimensão, poda chunks rastreados durante o rebuild próximo e mantém cache defensivamente limitado.
  • Aplica a mesma guarda a folhas e vegetação do solo e adiciona testes/gate estático dedicados.

1.2.6 - Auditoria Final de Runtime, Paridade Climática e Robustez de Release — V1

EN-US

  • Makes seasonal foliage/ground-vegetation visual progression advance at night. The following sunrise keeps the same effective visual calendar position, so color transitions are not introduced in daylight; unloaded chunks deterministically reconstruct the correct stage from the global calendar.
  • Adds a server-authoritative season clock summary (Season • Day current/total • Beginning/Middle/End). Stage thirds come from one shared SeasonCalendarMath.stageForDay(...) rule and cover non-divisible season lengths without gaps or overlaps.
  • Adds a synchronized read-only client climate policy and reuses the server biome-blend, altitude, seasonal and soft-limit math for client rain/snow rendering. Client and server share the exact snow-threshold predicate through PrecipitationTemperatureMath.
  • Refreshes season/client climate policy immediately on login, periodic thermal sync and successful administrator Apply, while keeping the server authoritative and player settings visual-only.
  • Hardens the Guide thermal-source catalog: at most 4096 entries are serialized, the real total and truncation state are transmitted, and the Guide shows a localized partial-list notice instead of allowing an oversized catalog to fail construction.
  • Bumps the internal network protocol from 5 to 6 because GuideOpenPayload wire format changed.
  • Preserves the Minecraft 1.21.1 Biome#getPrecipitationAt(BlockPos) hotfix; the invalid 1.21.2+ WeatherEffectRenderer mixin remains removed.
  • Adds regression tests and a dedicated 1.2.6 static release gate covering night transitions, season-stage math, client/server precipitation parity, runtime event registrations, bounded thermal payloads, translations and documentation/version parity.
  • Full Gradle/NeoForge runtime certification remains a separate release gate. In the packaging environment used for this release, the Gradle wrapper cannot resolve services.gradle.org, so clean test, clean build, runClient and runServer are not falsely marked as passed.

PT-BR

  • Faz a progressão visual sazonal da folhagem e vegetação do chão avançar durante a noite. O amanhecer seguinte mantém exatamente a mesma posição visual efetiva, evitando introduzir troca de cor durante o dia; chunks descarregados reconstroem deterministicamente o estágio correto a partir do calendário global.
  • Adiciona ao relógio o resumo server-authoritative Estação • Dia atual/total • Início/Meio/Fim. Os terços vêm de uma única regra SeasonCalendarMath.stageForDay(...) e cobrem também durações não divisíveis por 3 sem lacunas ou sobreposição.
  • Adiciona política climática read-only sincronizada para o cliente e reutiliza no renderer de chuva/neve a mesma mistura de biomas, altitude, modificadores sazonais e soft limits do servidor. Cliente e servidor compartilham o mesmo predicado térmico de neve em PrecipitationTemperatureMath.
  • Sincroniza imediatamente estação/política visual no login, no refresh térmico periódico e depois de um Aplicar configurações administrativo bem-sucedido, mantendo o servidor autoritativo e preferências do jogador apenas visuais.
  • Endurece o catálogo de fontes térmicas do Guia: no máximo 4096 entradas são serializadas, total real e estado de truncamento são transmitidos e a interface informa lista parcial em vez de deixar um catálogo enorme falhar na construção do payload.
  • Eleva o protocolo interno de rede de 5 para 6 porque o wire format de GuideOpenPayload mudou.
  • Preserva o hotfix Minecraft 1.21.1 baseado em Biome#getPrecipitationAt(BlockPos); o mixin inválido de WeatherEffectRenderer (1.21.2+) continua removido.
  • Adiciona testes de regressão e gate estático próprio da 1.2.6 para transições noturnas, matemática de estágios, paridade cliente/servidor da precipitação, registradores de runtime, payload térmico limitado, traduções e paridade documentação/versão.
  • A certificação completa Gradle/NeoForge continua sendo gate separado. No ambiente de empacotamento desta execução, o wrapper não consegue resolver services.gradle.org; por isso clean test, clean build, runClient e runServer não são marcados falsamente como aprovados.

1.2.5 - Exposição Térmica de Blocos e Itens Emissores — V1

EN-US

  • Compile hotfix: replaces the invalid 1.21.2+ WeatherEffectRenderer target with a Minecraft 1.21.1-native Biome#getPrecipitationAt(BlockPos) client hook, covering vanilla rain/snow form queries without fragile renderer-internal redirects.
  • Adds a server-authoritative Thermal sources Guide page listing only configured non-zero ambient heat/cold emitters, including placeable item forms, signed maximum ΔT, radius, falloff and activation condition.
  • Uses the effective source-profile precedence (config/ecotermico/thermal > Data Map > public tags) and keeps unlit configured sources visible without activating them physically.
  • Keeps insulation, resistances and personal equipment heating/cooling outside the ambient-emitter catalog.
  • Adds ThermalSourceDefinition, getConfiguredBlockThermalSourceProperties and getConfiguredThermalSourceDefinitions as additive API V1 surfaces.
  • Synchronizes a bounded read-only source catalog in the Guide payload, bumps the internal network protocol to 5, adds localized search/scrolling and uses correct Celsius/Fahrenheit delta conversion.
  • Does not change existing source values, runtime requiresLit, source falloff, diminishing returns, caps, spatial indexing, precipitation, hydrology or phenology.

PT-BR

  • Hotfix de compilação: substitui o alvo inválido WeatherEffectRenderer (1.21.2+) por um hook client nativo da 1.21.1 em Biome#getPrecipitationAt(BlockPos), cobrindo consultas Vanilla de chuva/neve sem redirects frágeis em métodos internos do renderer.
  • Adiciona a página Fontes térmicas no Guia, alimentada pelo servidor e contendo somente emissores ambientais configurados com calor/frio diferente de zero, incluindo a forma de item colocável, ΔT máximo com sinal, alcance, queda e condição de ativação.
  • Usa a precedência efetiva do perfil (config/ecotermico/thermal > Data Map > tags públicas) e consegue mostrar uma fonte configurada apagada sem ativá-la fisicamente.
  • Isolamento, resistências e aquecimento/resfriamento pessoal de equipamentos ficam fora do catálogo de emissão ambiental.
  • Adiciona ThermalSourceDefinition, getConfiguredBlockThermalSourceProperties e getConfiguredThermalSourceDefinitions de forma aditiva à API V1.
  • Sincroniza um catálogo read-only limitado pelo payload do Guia, eleva o protocolo interno de rede para 5, adiciona busca/rolagem e respeita a conversão correta de delta Celsius/Fahrenheit.
  • Não altera valores existentes das fontes, requiresLit do runtime, falloff, diminishing returns, caps, índice espacial, precipitação, hidrologia ou fenologia.

1.2.4 - Precipitação Sazonal, Neve Física e Transição Primavera–Verão — V1

EN-US

  • Adds a server-authoritative seasonal precipitation opportunity scheduler over already-loaded chunks. It never uses the player list as the climate clock and never force-loads terrain.
  • Season changes precipitation probability/duration, not precipitation type. Local temperature, altitude and biome rainAllowed/snowAllowed still decide rain versus snow through the existing physical resolver.
  • Spring becomes progressively wetter in compatible climates and gains a late-season drought breaker for sufficiently wet regions; dry/desert profiles remain protected.
  • Humid summer climates keep plausible rainfall and warm/unstable conditions may increase convective thunder probability instead of making summer globally dry.
  • Adds physical vanilla snow-layer accumulation for EcoTermico SNOW/BLIZZARD with persistent ownership. Only EcoTermico-created snow is thawed by this module; natural/generated/player snow is left untouched.
  • Adds a client weather-renderer mixin so visual RAIN/SNOW/NONE follows local EcoTermico temperature/altitude/biome rules during a physical precipitation window.
  • Spring plant regrowth keeps its cheap physical-rain pre-gate, but that window can now originate from EcoTermico seasonal scheduling rather than only Vanilla RNG; local WeatherType still rejects snow/blizzard.
  • Adds nine server configuration keys, pure policy/snow math tests and validate-seasonal-precipitation-v1.py.

PT-BR

  • Adiciona um scheduler server-authoritative de oportunidades de precipitação sazonal baseado somente em chunks já carregados. Não usa lista de jogadores como relógio climático e nunca força carregamento de terreno.
  • A estação muda chance/duração da precipitação, não o tipo. Temperatura local, altitude e rainAllowed/snowAllowed do bioma continuam decidindo chuva versus neve no resolvedor físico existente.
  • A primavera fica progressivamente mais úmida nos climas compatíveis e recebe um drought-breaker no fim da estação somente para regiões suficientemente úmidas; perfis secos/desérticos continuam protegidos.
  • Verões úmidos continuam podendo chover e calor + instabilidade podem elevar a chance de trovões convectivos, sem transformar o verão inteiro em estação seca.
  • Adiciona acúmulo físico de camadas Vanilla de neve para SNOW/BLIZZARD, com ownership persistente. Apenas neve criada pelo EcoTermico pode ser derretida por esse módulo; neve natural/gerada/do jogador permanece intocada.
  • Adiciona mixin no renderer meteorológico cliente para que RAIN/SNOW/NONE visual acompanhe temperatura, altitude e permissões locais do EcoTermico durante a janela física de precipitação.
  • O regrowth de plantas na primavera mantém o pré-gate físico barato de chuva, mas essa janela agora também pode ser criada pelo scheduler sazonal do EcoTermico em vez de depender apenas do RNG Vanilla; o WeatherType local continua rejeitando neve/nevasca.
  • Adiciona nove chaves SERVER, testes de matemática pura e validate-seasonal-precipitation-v1.py.

1.2.3 - Dormência Física Sazonal e Regrowth por Chuva — V1 / Etapa 2

EN-US

  • Adds a separate server-side phenology world-mutation module; it does not depend on hydrology or client foliage rendering.
  • Adds public data-driven block tags for autumn dormancy flowers, plants and vegetables. Conservative defaults mutate only simple vanilla flowers; plant/vegetable tags remain empty for modpack opt-in.
  • Persists chunk provenance so only newly generated/known-safe chunks are mutated by default. Legacy/unknown chunks remain protected unless the advanced override is explicitly enabled.
  • Tracks player-placed seasonal positions as protected and stores the exact removed BlockState for natural dormant plants.
  • Dormant plants return only during locally resolved spring rain/thunder. Snow/blizzard does not trigger regrowth. Occupied or no-longer-survivable sites are discarded instead of overwriting the world.
  • Adds a dedicated cold-biome exemption tag and ignores double-height plants, fluid/waterlogged states and block entities in V1.
  • Adds a bounded round-robin column budget with no player-list clock and no chunk force-loading. Disabling dormancy/seasons restores outstanding records safely in loaded chunks.

PT-BR

  • Adiciona o módulo server-side phenology para mutação física sazonal, separado de hydrology e do renderer de cores do cliente.
  • Cria tags públicas data-driven para flores, plantas e vegetais que entram em dormência no outono. O default mutável contém apenas flores vanilla simples; plantas/vegetais ficam vazios para opt-in seguro de modpacks.
  • Persiste provenance de chunks: por padrão apenas chunks novos/seguros podem sofrer mutação; chunks antigos/ambíguos permanecem protegidos.
  • Posições sazonais colocadas por jogador ficam protegidas e o BlockState exato da planta natural removida é persistido.
  • O retorno ocorre somente durante chuva ou trovão local na primavera. Neve/nevasca não contam. Se a posição foi ocupada ou a planta não pode mais sobreviver, o registro é descartado sem sobrescrever o mundo.
  • Biomas frios recebem tag de exceção própria; plantas de duas alturas, waterlogged/fluidas e blocos com block entity ficam fora da V1.
  • Scheduler independente com orçamento round-robin por dimensão, sem lista de jogadores e sem force-load. Desligar dormência/estações restaura registros pendentes de forma segura em chunks carregados.

1.2.2 - Auditoria Fenológica e Congelamento Dinâmico — V1 / Etapa 1

EN-US

  • Starts Phenology Audit, Dynamic Water Freezing and Module Decoupling V1 on top of 1.2.1.
  • Replaces enum-ordinal phenology progression with explicit ranks and adds regression tests proving autumn brown cannot jump back to green before winter dormant/frosted states.
  • Adds a server-authoritative hydrology module that only scans already-loaded chunks with a bounded round-robin column budget and never uses the player list as the climate clock.
  • Freshwater freezes at 0.0 °C by default; ocean water uses -1.8 °C, modeling delayed seawater freezing without adding a separate salt-water fluid. Separate thaw thresholds provide hysteresis.
  • Persists ownership only for ice created by EcoTermico, so natural/generated/player ice is never thawed by this system. Naturally frozen biomes are excluded through the extensible #ecotermico:dynamic_water_freeze_exempt biome tag.
  • Plant/vegetable seasonal groups plus autumn flower removal / first-spring-rain regrowth remain the next checklist stage; no placeholder world mutation was coupled into the water scheduler.

PT-BR

  • Inicia EcoTermico — Checklist de Auditoria Fenológica, Congelamento Dinâmico da Água e Desacoplamento de Módulos — V1 sobre a base 1.2.1.
  • A progressão fenológica deixa de depender da ordem do enum: cada estado possui rank explícito. Novos testes varrem a fronteira outono→inverno e impedem regressão marrom/seco -> verde -> cinzento.
  • Adiciona o módulo server-authoritative hydrology, com matemática pura, classificação de bioma, ownership persistente do gelo e scheduler separado. Ele só processa chunks já carregados, em round-robin com orçamento limitado, sem usar presença de jogador como relógio climático e sem force-load.
  • Água doce congela em 0,0 °C por padrão. Oceanos congelam apenas em -1,8 °C ou menos, simulando o efeito do sal sem criar uma água nova. Limites separados de descongelamento evitam oscilação água↔gelo perto do ponto crítico.
  • O EcoTermico grava somente o gelo que ele próprio criou; gelo natural, gerado ou colocado pelo jogador não é descongelado pelo módulo. Biomas já naturalmente congelados ficam fora do fenômeno por #ecotermico:dynamic_water_freeze_exempt, extensível por datapack/mod.
  • Os grupos sazonais de plantas/vegetais e a remoção de flores no outono com retorno na primeira chuva da primavera ficam explicitamente para a próxima etapa, sem criar acoplamento provisório com hidrologia.

This mod has no additional files