regenerative_agriculture-0.1.0.jar
Curse Maven Snippet
What's new
First commit with this development MVP:
## Fases
### Fase 1 — Estaciones y clima ✅
**Calendario (hemisferio sur).** La fecha sale del reloj del mundo, así que `/time`, dormir, etc. la mueven.
- El año empieza el **1 de septiembre** en **primavera**.
Primavera = sep-nov, verano = dic-feb, otoño = mar-may, invierno = jun-ago.
- Cada estación dura **15 días de Minecraft** por defecto (año = 60 días ≈ 20 h de juego; meses de 5 días).
- Los días cambian a medianoche (00:00).
**Clima.** Temperatura en °C, calculada a partir de:
- La temperatura base del bioma (llanura ≈ 15 °C de media anual, desierto ≈ 25 °C, nevado ≈ 1 °C).
- Una curva estacional de ±9 °C (pico a mitad del verano, mínimo a mitad del invierno).
- Una variación diaria aleatoria pero **fija para cada mundo**: el pronóstico siempre se cumple.
- La altura: −0,6 °C cada 10 bloques por encima de y=70.
- El ciclo diario: más calor a las 15 h, más frío de madrugada.
Rangos: **Helada** (< 0 °C), **Frío** (0-10), **Templado** (10-24), **Cálido** (24-32), **Calor extremo** (> 32).
**Comandos**
| Comando | Qué hace |
|---|---|
| `/season` | Estación, día, fecha, hora y temperatura donde estás |
| `/season forecast [días]` | Pronóstico (mín/máx, rango, aviso de helada); 7 días por defecto, hasta 30 |
| `/season set <spring\|summer\|autumn\|winter>` | Avanza al inicio de esa estación (solo operadores) |
| `/gamerule regenerative_agriculture:season_length <días>` | Cambia la duración de cada estación (1-120) |
**HUD.** Arriba a la izquierda: estación y día, fecha y hora, temperatura local. Se oculta con F1 y con F3.
**Código:** `season/` (`SeasonCalendar`, `ClimateModel`, `SeasonManager`), `command/SeasonCommand`,
`client/hud/SeasonHud`. Tests en `src/test/.../season/`.
### Fase 2 — Cultivos que dependen de la estación ✅
Cada cultivo tiene un **perfil** que dice en qué estaciones crece y qué temperaturas tolera. Por ahora aplica a
los cultivos vanilla; los del mod (fase 3) usan el mismo sistema.
| Cultivo | Familia | Estaciones | Temp. (mín / óptima / máx) | Tolera heladas |
|---|---|---|---|---|
| Trigo | Gramíneas | otoño, invierno, primavera | 0 / 10-22 / 30 °C | sí |
| Papa | Solanáceas | primavera, verano | 6 / 15-24 / 32 °C | no |
| Zanahoria | Umbelíferas | otoño, invierno, primavera | 3 / 12-22 / 28 °C | sí |
| Remolacha | Amarantáceas | otoño, primavera | 4 / 12-24 / 30 °C | sí |
**Cómo afecta al crecimiento** (en cada *random tick* del cultivo):
- **Fuera de estación:** no crece.
- **Temperatura media del día:** crece al 100 % dentro del rango óptimo, cada vez más lento hacia el mínimo o el
máximo, y nada fuera de ellos.
- **Helada** (temperatura actual < 0 °C) en plantas que no la toleran: la planta retrocede una etapa
(25 % por tick) y, si ya estaba recién plantada, muere.
- **Calor extremo** (4 °C por encima de su máximo): se marchita igual que con la helada.
- **Polvo de hueso:** no hace nada si la planta no puede crecer en ese momento (se gasta igual).
**Comando de diagnóstico:** `/season crop <x y z>` muestra a qué porcentaje de la velocidad normal está creciendo
el cultivo en esa posición y por qué (fuera de estación, frío, helada…).
**Perfiles en JSON (modificables por datapack).** Están en
`data/<namespace>/regenerative_agriculture/crop_profile/<nombre>.json`:
```json
{
"block": "minecraft:wheat",
"family": "grasses",
"seasons": ["autumn", "winter", "spring"],
"temperature": { "min": 0, "optimal_min": 10, "optimal_max": 22, "max": 30 },
"frost_tolerant": true,
"growth_rate": 1.0,
"regrow_age": 5
}
```
`growth_rate` (0-1) hace más lentos los cultivos de ciclo largo. `regrow_age` (opcional, fase 4) permite cosechar
con tijeras de poda. Familias: `grasses`, `nightshades`, `brassicas`,
`legumes`, `umbellifers`, `amaranths`, `composites`, `cucurbits`, `alliums`, `mints` (se usan para la rotación de la fase 6).
**Código:** `crop/` (`CropProfile`, `CropProfiles`, `GrowthCalculator`, `CropClimate`) y `mixin/CropBlockMixin`.
### Fase 3 — Cultivos nuevos y plantas silvestres ✅
**8 cultivos nuevos.** Cada uno tiene semillas, producto cosechado y una versión silvestre.
| Cultivo | Producto | Familia | Estaciones | Temp. (mín / óptima / máx) | Helada | Velocidad | Silvestre en |
|---|---|---|---|---|---|---|---|
| Lechuga | Lechuga (comida) | Compuestas | otoño, invierno, primavera | 2 / 10-20 / 26 °C | tolera | 100 % | bosques |
| Rúcula | Rúcula (comida) | Brásicas | otoño, invierno, primavera | 0 / 8-20 / 27 °C | tolera | 100 % | llanuras, praderas |
| Brócoli | Brócoli (comida) | Brásicas | otoño, invierno | 2 / 10-20 / 26 °C | tolera | 60 % | taigas |
| Tomate | Tomate (comida) | Solanáceas | primavera, verano | 10 / 18-28 / 35 °C | no | 60 % | sabanas, junglas |
| Soja | Porotos de soja (comida) | Leguminosas | primavera, verano | 10 / 20-30 / 36 °C | no | 70 % | llanuras, sabanas |
| Girasol | Cabeza de girasol | Compuestas | primavera, verano | 8 / 18-30 / 38 °C | no | 70 % | llanuras (y de girasoles) |
| Albahaca | Albahaca (comida) | Lamiáceas | primavera, verano | 12 / 20-30 / 36 °C | no | 80 % | junglas |
| Zapallo | Zapallo (comida) | Cucurbitáceas | primavera, verano | 12 / 20-30 / 36 °C | no | 50 % | junglas, bosques |
La regla general: los de **estación fría** (lechuga, rúcula, brócoli) se siembran en otoño-invierno, y los de
**estación cálida** (tomate, soja, girasol, albahaca, zapallo) en primavera-verano. En verano la lechuga no solo deja
de crecer: en las tardes calurosas se marchita.
**Cómo se consiguen las semillas**
- **Plantas silvestres:** aparecen solas al generar el mundo, en parches, según el bioma de la tabla. Al romperlas
dan semillas. No se pueden colocar a mano (no tienen ítem).
- **Cosechando:** un cultivo maduro da el producto y semillas (Fortuna aumenta las semillas); uno sin madurar
devuelve la semilla.
- **Crafteo:** 1 producto → semillas (2 en general, 3 de tomate y zapallo, 4 de girasol).
**Solo en tierra preparada.** Las semillas únicamente se plantan en tierra arada (farmland), como el trigo.
**Pestaña creativa** "Cultivo regenerativo" con todas las semillas y productos.
Las texturas actuales son provisorias (pixel art generado); los modelos van en 4 etapas visuales para las 8 edades.
**Código:** `block/` (`SeasonalCropBlock`, `WildPlantBlock`), `registry/ModCrops`, `worldgen/ModWorldGen`,
datagen en `client/datagen/`, perfiles en `data/regenerative_agriculture/regenerative_agriculture/crop_profile/`.
Gametest en `src/gametest/` (perfiles cargados, features registradas, semillas solo en farmland y el mixin aplicado).
### Fase 4 — Invernaderos y salas de cultivo subterráneas ✅
El mod mira los bloques alrededor de cada cultivo para saber **dónde está creciendo**. `/season crop <x y z>`
lo muestra en la línea "Lugar".
**Invernadero.** Tiene que cumplir dos condiciones:
- **Techo de vidrio:** el primer bloque sobre el cultivo, hasta 12 bloques arriba, es vidrio o panel de vidrio
(tag `regenerative_agriculture:greenhouse_glass`). Las luces de cultivo no cuentan como techo.
- **Paredes:** en las 4 direcciones hay un bloque sólido (pared, vidrio, puerta…) a 8 bloques o menos.
Efectos:
- Ignora las estaciones: solo importa la temperatura.
- Adentro hace **+8 °C** que afuera.
- Con una **fuente de calor** cerca (fogata, horno, ahumador, alto horno, magma o lava, a 4 bloques o menos) suma
**+6 °C** más. Sirve para no perder cultivos sensibles a la helada en invierno.
- **Con extractor** (ver abajo) nunca pasa de **26 °C**.
- **Sin extractor** no hay tope de temperatura. Además, **en verano, fuera de los biomas nevados**, crece **a la
mitad** ("ventilación insuficiente") y en las tardes de calor las plantas se pueden marchitar.
- **En desiertos y badlands no funciona:** se sobrecalienta (+8 °C sin tope), no protege de las estaciones y
quema los cultivos. Tag de biomas: `regenerative_agriculture:greenhouse_overheats`.
**Sala de cultivo subterránea.** Es la forma de cultivar fuera de estación en el desierto. Necesita:
1. **Estar bajo tierra:** sin cielo arriba, y con un techo que no sea de vidrio.
2. **Luz de cultivo** a 2 bloques o menos hacia los costados y 1 a 5 bloques por encima del cultivo.
3. **Extractor de aire** a 8 bloques o menos con un **respiradero**: la columna sobre el extractor tiene que estar
libre hasta la superficie. Puede ser aire, barrotes de hierro o trampillas (tag `regenerative_agriculture:vent_passable`).
Si cumple todo, mantiene **20 °C constantes** todo el año y en cualquier bioma. Sin un extractor que funcione el
aire se vicia y **no crece nada**.
**Bloques nuevos**
| Bloque | Receta | Uso |
|---|---|---|
| Luz de cultivo | `IRI` / `GLG` — I hierro, R redstone, G panel de vidrio, L piedra luminosa | Panel de LEDs **colgado del techo** con dos cables (modelo 3D). Solo se coloca debajo de un bloque y se cae si se lo sacan. Luz 15; habilita la sala de cultivo |
| Extractor de aire | `IBI` / `RCR` / `IBI` — I hierro, B barrotes de hierro, R redstone, C lingote de cobre | Ventila invernaderos y salas (necesita pico). Arriba tiene un **panel solar**: se regula solo, sin redstone ni energía. Por eso necesita la columna libre hasta el cielo. **El ventilador gira** (textura animada) cuando el respiradero está libre; lo revisa cada 2 segundos |
**Tijeras de poda** (`I I` / ` I ` / `S S` — I hierro, S palo; 238 usos). Algunas plantas se cosechan **sin
arrancarlas**. Con las tijeras sobre la planta madura cae el producto (1-2) y la planta vuelve a una etapa anterior
para producir otra vez:
| Planta | Vuelve a la etapa | Se cosecha con tijeras |
|---|---|---|
| Tomate, zapallo, brócoli (brotes laterales) | 5 de 7 | sí |
| Albahaca, lechuga, rúcula (corte y rebrote) | 4 de 7 | sí |
| Soja, girasol | — | no: se rompen para cosechar |
Si la planta no está madura o se cosecha una sola vez, las tijeras avisan en pantalla y no hacen nada. Romper la
planta a mano sigue dando la cosecha normal. Se configura en el perfil de cada cultivo con `"regrow_age"`
(si falta, la planta se cosecha una sola vez).
**Código:** `greenhouse/` (`Shelter`, `ShelterDetector`), `item/PruningShearsItem`, `registry/ModBlocks`, `registry/ModTags`, tags en
`data/regenerative_agriculture/tags/`. Gametest `ShelterGameTest`: arma un invernadero, le agrega un extractor, lo
convierte en sala subterránea y le tapa el respiradero, comprobando el resultado en cada paso.
`PruningShearsGameTest`: cosecha un tomate con tijeras (rebrota) y comprueba que la soja no se puede.
### Fase 5 — Estación climática ✅
**Bloque "Estación climática"** (receta `CKC` / `GRG` / `III`: C lingote de cobre, K reloj, G panel de vidrio,
R redstone, I hierro; se rompe con pico). Con click derecho abre una pantalla con los datos **del lugar donde
está puesta** (bioma y altura):
- **Hoy:** estación y día, fecha, hora, temperatura actual (grande, con el color del rango) y el nombre del bioma.
- **Pronóstico de 7 días:** mínima y máxima, una barra de temperatura de −15 a 40 °C con el color del rango y ❄
los días con helada. Como el clima es determinístico, **el pronóstico siempre se cumple**.
- **Sembrar ahora al aire libre:** cultivos que están en su estación, con temperatura media de los próximos 7 días
adecuada y sin heladas en el pronóstico si no las toleran. Pasando el mouse sobre un ícono se ve el nombre.
- **Preparar semillas para la próxima estación:** cultivos que todavía no van pero sí en la estación siguiente, y
cuántos días faltan.
La pantalla se actualiza sola cada segundo y no pausa el juego. Los datos se calculan en el cliente con el clima y
los perfiles sincronizados: el servidor solo avisa que se abrió la estación.
**Código:** `block/WeatherStationBlock`, `crop/PlantingAdvisor` (lógica de recomendaciones, con tests),
`network/OpenWeatherStationPayload`, `client/screen/WeatherStationScreen`. El gametest de cliente
`ScreenshotClientGameTest` saca capturas del HUD y de la pantalla en invierno y en verano.
### Extra — Termohigrómetro, humedad, extractores y hongos ✅
**Humedad relativa.** Se calcula igual que la temperatura (determinística, por lugar y hora):
- Depende de cuánto llueve en el bioma: desierto ≈ 15-25 %, llanura ≈ 55 %, jungla/pantano ≈ 80 %.
- Es más alta en invierno y de madrugada, y más baja en verano y a la tarde, con una variación diaria.
- Dentro de un refugio, **las plantas evaporan agua** (ver capacidad de los extractores, abajo):
- **Invernadero bien ventilado:** 45-75 %.
- **Invernadero sin extractores suficientes:** hasta +25 % según cuántas plantas queden sin ventilar.
Un invernadero chico con 2 o 3 plantas casi no se humedece; uno grande y cerrado, sí.
- **Sala de cultivo:** de 60 % (bien ventilada) a 95 % (sin ventilación).
**Capacidad de los extractores.** Cada extractor ventila **20 plantas**. Se cuentan los cultivos y los extractores
que funcionan alrededor de cada planta: 8 bloques a los costados, 2 hacia abajo y 5 hacia arriba. Con menos
extractores de los necesarios, el lugar queda **parcialmente ventilado**:
- la humedad sube en proporción a las plantas sin cubrir;
- el tope de 26 °C del invernadero se aplica solo en parte;
- la penalización de verano va del 50 % (sin extractores) al 100 % (con todos los necesarios).
`/season crop` y el termohigrómetro muestran "extractores X/Y" (los que hay / los que hacen falta).
**Hongos.** En un **invernadero o sala de cultivo con más de 85 % de humedad**, cada cultivo tiene un 5 % de
chance por random tick de convertirse en un **cultivo con moho**:
- no da cosecha;
- **contagia** a los cultivos vecinos (30 % por tick, a uno de los 4 lados) mientras la humedad siga alta.
Al aire libre no hay hongos. La solución es poner más extractores. El aire seco no penaliza el crecimiento.
**Termohigrómetro** (`CGC` / `CRC` / `CKC` — C lingote de cobre, G panel de vidrio, R redstone, K brújula). Es un
dispositivo tipo celular. **Mientras lo tenés en la mano** (principal o secundaria) aparece una pantallita abajo a
la derecha, que se actualiza cada medio segundo, con los datos de donde estás parado:
- temperatura y humedad;
- qué tipo de lugar detecta (aire libre, invernadero con o sin extractor, sala de cultivo…);
- un diagnóstico:
| Consejo | Cuándo |
|---|---|
| Falta un extractor con respiradero | Sala subterránea con luces pero sin ventilación |
| El invernadero necesita extractor | Invernadero cerrado en verano (fuera de biomas nevados) |
| Extractor recomendado | Invernadero cerrado en otras estaciones (se acumula humedad) |
| Se sobrecalienta: usá una sala subterránea | Invernadero en desierto o badlands |
| Falta luz de cultivo | Bajo tierra sin luz de cultivo cerca |
| Helada / calor extremo | Menos de 0 °C / más de 32 °C |
| Faltan extractores (X plantas, hay Y, hacen falta Z) | Hay extractores pero no alcanzan para todas las plantas |
| Riesgo de hongos | Más de 85 % de humedad en un invernadero o sala |
| Aire muy seco | Menos de 30 % (solo informativo) |
| Condiciones OK | Nada que corregir |
**Código:** `greenhouse/MicroClimate` (medición), `greenhouse/ClimateAdvice` (diagnóstico, con tests),
`greenhouse/Mold` y `block/MoldyCropBlock` (hongos), `Shelter.Ventilation` (capacidad),
`ClimateModel.humidityAt`, `block/GrowLightBlock`, `block/ExtractorBlock`, `client/hud/ThermohygrometerHud`. El
modelo de la luz está hecho a mano en `assets/regenerative_agriculture/models/block/grow_light.json`. El `downfall` de los
biomas se lee gracias a `regenerative_agriculture.classtweaker`. Gametest `EquipmentGameTest`: la luz se cae sin techo, y
el ventilador se prende y se apaga según el respiradero. `VentilationGameTest`: 25 cultivos necesitan 2
extractores (con uno, 50 % de ventilación), y en una sala sin ventilación el tomate se cubre de moho. Las capturas del cliente incluyen una sala de cultivo con y
sin ventilación.
### Fase 6 — Suelo regenerativo ✅
Cada bloque de **tierra arada** guarda su propio estado. Se guarda con el mundo, dentro del chunk, y sigue ahí
aunque vuelvas a arar.
| Dato | Rango | Qué hace |
|---|---|---|
| Nitrógeno | 0-100 (empieza en 60) | Fertilidad: con 50 o más, crecimiento al 100 %; en 0, solo al 40 % |
| Materia orgánica | 0-100 (empieza en 30) | Hasta +15 % de crecimiento y libera nitrógeno con cada cosecha |
| Historial | últimas 3 familias | Para la rotación |
| Mulch | cosechas restantes | Protección contra heladas y aporte de materia orgánica |
**Cosechar cambia el suelo.** Pasa al romper un cultivo maduro o al cortarlo con las tijeras:
- se suma o se resta el nitrógeno del cultivo (`"nitrogen"` en su perfil);
- la materia orgánica libera 1 de nitrógeno cada 20 puntos y se descompone 2 puntos;
- la familia se anota en el historial.
| Cultivo | Nitrógeno por cosecha |
|---|---|
| **Soja** (leguminosa) | **+20** (fija nitrógeno del aire) |
| Albahaca, rúcula, lechuga, zanahoria | −4 a −6 |
| Remolacha, trigo, girasol | −8 a −10 |
| Tomate, papa | −12 |
| Brócoli, zapallo | −14 |
**Rotación.** Volver a plantar la misma familia donde se cosechó la última vez → **−30 %**. Tres cosechas
seguidas de la misma familia (monocultivo) → **−50 %**. La idea es alternar, por ejemplo tomate → soja → lechuga.
**Asociación de cultivos (policultivo).** Se miran los cultivos a 2 bloques o menos, al mismo nivel:
- **planta compañera** cerca → **+15 %**;
- **antagonista** cerca → **−25 %**;
- **3 especies distintas o más** (contando la propia) → **+10 %**.
| Cultivo | Compañeras | Antagonistas |
|---|---|---|
| Tomate | albahaca, zanahoria | papa, brócoli |
| Albahaca | tomate | — |
| Lechuga | zanahoria, rúcula, remolacha | — |
| Rúcula | lechuga | — |
| Brócoli | lechuga, remolacha | tomate |
| Soja | trigo, zapallo | — |
| Zapallo | soja, girasol | — |
| Girasol | zapallo | papa |
| Papa | — | tomate, girasol |
| Trigo | soja | — |
| Zanahoria | lechuga, tomate | — |
| Remolacha | lechuga, brócoli | — |
Todo esto está en los perfiles JSON (`"companions"`, `"antagonists"`, `"nitrogen"`), así que se puede cambiar con
datapacks.
**Bloques e ítems nuevos**
| | Receta | Uso |
|---|---|---|
| **Compostera** | `P P` / `PDP` / `PPP` — P tablas, D tierra | Se llena como el compostador (acepta los productos y semillas del mod); cuando está lista da **2 de compost** en vez de polvo de hueso. Las tolvas no pueden sacar polvo de hueso de ella |
| **Compost** | de la compostera | Click derecho en tierra arada (o en el cultivo): **+25 materia orgánica, +15 nitrógeno** |
| **Mulch de paja** | 3 trigo → 2 | Cubre la tierra arada por **4 cosechas**: los cultivos no sufren heladas de hasta −5 °C y cada cosecha suma +3 de materia orgánica |
| **Kit de análisis de suelo** | frasco + papel + redstone | Click derecho en tierra arada o en un cultivo: nitrógeno, materia orgánica, fertilidad, mulch, historial, rotación, vecinos y efecto total |
Los productos y semillas del mod también se pueden echar al **compostador vanilla**.
**Corrección:** durante las fases 4 y 5 las recetas de la **estación climática**, las **tijeras de poda** y el
**termohigrómetro** no se estaban generando (un error de codificación en un script de edición). Ya están, y el test
`RecipesTest` comprueba que exista la receta de cada bloque y herramienta.
**Código:** `soil/` (`SoilData`, `SoilRules` con tests, `SoilManager`), `block/CompostBinBlock`,
`item/SoilAmendmentItem`, `item/SoilTestKitItem`. Gametest `SoilGameTest`: las cosechas cambian el suelo, el
compost lo recupera, la soja fija nitrógeno, se detectan compañeras/antagonistas y la compostera da compost.
### Fase 7 — Comidas compuestas y dieta variada ✅
Las verduras se cocinan en comidas que dan efectos según lo que tienen. Todas se apilan de a 16, y las que van en
bowl o botella te los devuelven al terminar.
| Comida | Receta (sin forma) | Hambre | Efecto |
|---|---|---|---|
| **Hamburguesa** | pan + carne cocida + lechuga + tomate | **20 (barra llena)** | — |
| **Ensalada verde** | bowl + lechuga + rúcula + tomate | 6 | **Vitalidad**: +10 % de velocidad, 2 min |
| **Brócoli al vapor** | bowl + 2 brócoli + albahaca | 6 | Cura veneno, hambre y náuseas + **Inmunidad** contra ellos, 3 min |
| **Guiso de soja** | bowl + 2 soja + zanahoria + papa | 8 | Fuerza I, 2 min |
| **Sopa de zapallo** | bowl + zapallo + papa | 8 | **Calor**: la nieve polvo no te congela, 4 min |
| **Semillas de girasol tostadas** | flor de girasol en horno, ahumador o fogata | 3 | Absorción, 30 s (se comen rápido) |
| **Pasta al pesto** | bowl + 2 trigo + 2 albahaca + girasol | 8 | Prisa I, 3 min |
| **Jugo de tomate** | botella + 2 tomates | 4 | Regeneración I, 10 s |
**Efectos propios:** Vitalidad, Inmunidad, Calor y Bien nutrido, cada uno con su ícono.
**Dieta variada.** Comer **4 verduras distintas en un mismo día** de Minecraft te da **Bien nutrido**: +2
corazones de vida máxima durante un día.
- Cuentan las verduras del mod crudas y las de cada comida (la ensalada suma lechuga, rúcula y tomate).
- También cuentan las de vanilla: zanahoria, papa (también asada), remolacha (también en sopa) y zapallo (pastel
de calabaza).
- Repetir la misma verdura no suma. Lo comido hace más de un día se olvida.
- Se guarda por jugador y se reinicia al morir.
**Código:** `effect/ModEffects`, `registry/ModFoods`, `food/Diet` (con tests) y `food/DietTracker`. Mixins nuevos:
`FoodPropertiesMixin` registra cada comida y `LivingEntityMixin` hace que no te congeles con Calor. El gametest
`FoodGameTest` comprueba que la hamburguesa llena el hambre, que la ensalada da +10 % de velocidad y devuelve el bowl,
que el brócoli cura y bloquea el veneno, que la sopa evita el congelamiento y que la dieta variada da +2 corazones.
### Fase 7.5 — Más cultivos, secado y curado ✅
**10 cultivos nuevos.** Cada uno tiene planta silvestre, semillas y perfil de clima:
| Cultivo | Estaciones | Familia | Notas | Silvestre en |
|---|---|---|---|---|
| Cebolla | otoño–primavera | aliáceas | resiste heladas | llanuras, prados |
| Ajo | otoño–invierno | aliáceas | se planta con dientes; resiste heladas | prados, colinas, cerezos |
| Cannabis | primavera–verano | cannabáceas | | sabanas, prados |
| Tabaco | primavera–verano | solanáceas | antagonista del tomate y la papa | selvas, sabanas |
| Café | primavera–otoño | rubiáceas | perenne (se cosecha con tijeras); muy sensible al frío | selvas |
| Ají | primavera–verano | solanáceas | perenne con tijeras | sabanas, badlands |
| Lúpulo | primavera–verano | cannabáceas | perenne con tijeras | bosques |
| Yerba mate | primavera–otoño | aquifoliáceas | perenne con tijeras | selvas, bosques |
| Maíz | primavera–verano | gramíneas | consume mucho nitrógeno (−16) | llanuras, sabanas |
| Poroto | primavera–verano | leguminosas | fija nitrógeno (+18) | llanuras, bosques |
**Las tres hermanas:** maíz, poroto y zapallo son compañeros entre sí (+15 % cada uno, más el bonus de policultivo).
**Secadero** (`SSS` / `H H` / `S S` — S palos, H hilo). Click derecho con la cosecha para colgarla (hasta 16).
Click con la mano vacía muestra cómo va (porcentaje, temperatura, humedad, velocidad y horas que faltan) y, cuando
está listo, la descuelga. Agachado + click la descuelga en cualquier momento.
El secado depende del aire donde está el secadero, el mismo que mide el termohigrómetro:
- **Humedad:** con 50 % seca a velocidad normal, con 30 % ×1,5, con 70 % ×0,5 y con 90 % no seca.
- **Temperatura:** debajo de 5 °C ×0,4, entre 5 y 15 °C ×0,7, más de 30 °C ×1,3.
- **Lluvia:** si le llueve, no seca.
- **Moho:** con humedad de 85 % o más (o lluvia) durante un día entero, la cosecha se arruina y sirve solo para
compost. Un rato de aire seco hace que vuelva a empezar la cuenta.
En climas húmedos conviene secar bajo techo con extractores. El bloque muestra si está vacío, secando, seco o
arruinado.
| Fresco | Seco | Días |
|---|---|---|
| Ajo / cebolla | ajo / cebolla curados | 2 |
| Hoja de tabaco | tabaco seco | 2 |
| Cogollo de cannabis | cannabis seco | 1,5 |
| Cerezas de café | café verde | 3 |
| Ají | ají seco | 2 |
| Lúpulo | lúpulo seco | 1 |
| Hojas de yerba | yerba seca | 1 |
| Choclo | maíz seco | 2 |
**Frasco de curado** (` L ` / `V V` / `VVV` — L losa de madera, V vidrio). Lo seco se cura con el tiempo y gana
**calidad (★ a ★★★)**:
- Click con la mano vacía muestra el día y las estrellas.
- Agachado + click lo saca. Si todavía no llegó a ★, sale tal como entró.
- La calidad pasa a lo que se craftea con el producto (si se mezclan calidades, queda la menor).
- Cada estrella alarga los efectos: ★ ×1, ★★ ×1,5, ★★★ ×2.
| Entra | Sale | ★ / ★★ / ★★★ (días) |
|---|---|---|
| Tabaco seco | tabaco curado | 3 / 6 / 10 |
| Cannabis seco | cannabis curado | 2 / 4 / 7 |
| Yerba seca | yerba estacionada | 2 / 5 / 9 |
**Productos y comidas nuevas**
| Item | Receta | Efecto |
|---|---|---|
| Café tostado | café verde en horno, ahumador o fogata | — |
| Café | botella + 2 café tostado + balde de agua | Prisa I 3 min + Velocidad 30 s |
| Mate y cerveza | ver la fase 7.6 | |
| Ají molido | ají seco → 2 | — |
| Chimichurri | botella + ajo curado + ají molido + albahaca | — |
| Asado con chimichurri | 2 carnes cocidas + chimichurri | 14 de hambre, Fuerza I 3 min + Regeneración |
| Locro | bowl + maíz seco + porotos + zapallo + ají molido + cebolla curada | 10 de hambre, Calor 6 min + Resistencia 2 min (cuenta 5 verduras para la dieta) |
| Choclo asado | choclo en horno, ahumador o fogata | 6 de hambre |
| Porro | cannabis curado + papel | **Relajado** 90 s (según calidad) |
| Brownie | cannabis curado + cacao + trigo + huevo + azúcar → 2 | **Relajado** 3 min (según calidad) |
| Cigarro | 2 tabaco curado | Prisa I 1 min (según calidad) |
**Relajado** (efecto nuevo):
- −15 % de velocidad, cura medio corazón cada 4 s y da hambre ("bajón").
- Mientras dura, un halo verde-violeta tiñe los bordes de la pantalla.
**Corrección del mulch (pedido en el juego):**
- **Se ve:** la tierra con mulch pasa a ser un bloque de **tierra arada con paja**. Cuando se gastan las 4 cosechas
vuelve a ser tierra arada común. Si se pisa o se seca y vuelve a ser tierra, el mulch se pierde.
- **Uno por suelo:** el mulch de paja solo se puede poner en tierra que no tenga. Si ya tiene, avisa "Este suelo ya
tiene mulch" y no gasta el ítem.
**Código:**
- `processing/`: `DryingRules` y `Quality` (con tests), `ProcessingRecipes` y `QualityEffectsConsumeEffect`.
- `block/`: `DryingRackBlock`, `CuringJarBlock` y `MulchedFarmlandBlock`, más los block entities en `block/entity/`.
- `registry/ModComponents` (componente `quality`) y `effect/RelaxedEffect`.
- Mixin `ShapelessRecipeMixin`, para que la calidad pase al crafteo.
- Cliente: `hud/RelaxedHud`.
- Gametest `ProcessingGameTest`: secado, moho, curado con estrellas, calidad que alarga efectos y mulch visible y
único.
### Fase 7.6 — Microcervecería y mate con termo ✅
**Microcervecería.** Son tres máquinas que tienen que estar **una al lado de la otra**, con la olla en el medio
tocando a las otras dos. Si falta alguna no funcionan y avisan "Microcervecería incompleta". El mosto pasa solo de
una a la otra.
| Máquina | Receta | Qué hace |
|---|---|---|
| **Macerador** | `H H` / `HBH` / `HHH` — H hierro, B barril | Balde de agua + **4 de malta** → macera 1 hora del juego → mosto. Quedan **2 de bagazo**, que van al compost |
| **Olla de cocción** | `C C` / `C C` / `CCC` — C cobre | Recibe el mosto y le ponés **2 de lúpulo seco**. Necesita **fuego abajo** (fogata, fuego, lava, magma u horno prendido). Hierve 1 hora y pasa el mosto al fermentador |
| **Fermentador** | `HBH` / `H H` / ` H ` — B botella | Recibe el mosto hervido. Con **levadura** fermenta **7 días**. Al terminar se llenan **8 botellas** con click con botellas vacías |
- **Malta:** trigo secado 1 día en el secadero.
- **Levadura:** pan + azúcar → 2.
- **Calidad de la cerveza:** depende de la temperatura donde está el fermentador durante los 7 días. El ideal está
entre **16 y 22 °C** (★★★); a pocos grados de eso, ★★; más lejos, ★. Conviene un sótano o una sala con
extractores en verano. La calidad alarga los efectos de la cerveza.
- **Densímetro** (botella + vidrio + pepita de hierro): click derecho en el fermentador. Muestra la **densidad**
(baja de 1,050 a 1,010), el **% de alcohol** (llega a 5,25 %), el día, la temperatura actual, la calidad que va
teniendo y un aviso si hace demasiado frío o calor.
- Cada máquina tiene un **modelo 3D** propio que cambia según la etapa:
- **Macerador:** cuba de acero con válvula; se ve agua, el macerado con la pala o el mosto.
- **Olla:** de cobre, con manijas y termómetro; el mosto hierve con burbujas animadas y sale vapor.
- **Fermentador:** tanque cónico sobre patas con mirilla y airlock; la mirilla muestra el nivel y burbujea
mientras fermenta.
- Con click con la mano vacía, cada máquina dice qué le falta.
**Mate.**
- **Calabaza:** el zapallo se cura 4 días en el secadero y da la **calabaza curada**. Con una pepita de hierro (la
bombilla) se hace el **mate**. El mate es reutilizable y tiene modelo 3D: calabaza con virola, bombilla y la
yerba seca o mojada según el estado.
- **Cargar:** con **yerba estacionada en la otra mano**, click derecho. Rinde **10 cebadas** y conserva la calidad
de la yerba.
- **Cebar:** con el **termo con agua caliente en la otra mano**, el mate se ceba solo antes de tomar y otra vez
después de cada sorbo, usando una cebada del termo cada vez. **Sin termo** el mate cebado rinde una sola vez.
- **Efecto:** cada mate da Prisa I por 2 min (más con mejor yerba) y un poco de comida. Cuando la yerba se lava hay
que cargar de nuevo.
- **Termo** (pepita de hierro arriba de 2 lingotes; modelo 3D verde con manija y tapa-taza):
- se llena de agua fría con click derecho en cualquier fuente de agua, con una botella de agua en la otra mano o
con un balde de agua en la mesa de crafteo;
- en horno, ahumador o fogata sale como **termo con agua a 85 °C**, con **10 cebadas**;
- cuando se acaba vuelve a ser un termo vacío.
Se sacaron el mosto en frasco y la receta vieja del mate: la cerveza ahora sale de la microcervecería.
**Código:**
- `brewing/`: `BrewingRules` (densidad, alcohol y calidad, con tests), `Brewery` (conexión y fuego) y `BrewStage`.
- `block/`: `BreweryBlock` y sus tres máquinas, con los block entities.
- `item/`: `MateItem`, `ThermosItem` y `HydrometerItem`.
- Los modelos 3D están en `models/block` y `models/item`.
- Gametest `BreweryGameTest`: de la malta a la cerveza ★★★, la máquina sola no funciona, la olla necesita fuego y
el mate con termo.
### Fase 8 — Manual con ruta de logros ✅
**Manual de agricultura regenerativa.** Cada jugador lo recibe la primera vez que entra al mundo. También se fabrica
con libro + semillas de trigo. Click derecho lo abre: es un **libro abierto de dos páginas** con **marcadores de
colores** al costado, uno por capítulo.
| Marcador | Qué tiene |
|---|---|
| **Ruta** | Mapa de **nodos unidos**, estilo árbol de habilidades (Path of Exile o Thaumcraft) o pantalla de logros. Se arrastra con el mouse o la rueda |
| **Estaciones** | Fecha de hoy, días por estación y qué cultivos crecen en cada estación |
| **Cultivos** | Todos los cultivos (del mod y vanilla). Click en uno abre su ficha: familia, estaciones, temperatura óptima y rango, heladas, velocidad, si rebrota con tijeras, nitrógeno, compañeras, antagonistas y en qué se convierte en el secadero |
| **Suelo** | Fertilidad, rotación, asociación, compost y mulch |
| **Clima e invernaderos** | Invernaderos, salas de cultivo, extractores y hongos |
| **Secado y curado** | Secadero, humedad, moho, frasco y calidad |
| **Cocina** | Todas las comidas: efecto, hambre y verduras que cuentan para la dieta |
| **Cervecería y mate** | Los tres pasos de la cerveza, el densímetro, el mate y el termo |
Las fichas, las estaciones y la cocina salen de los datos del juego (perfiles de cultivo y comidas), así que siempre
están al día. Los capítulos de texto tienen páginas: se pasan con las flechas o la rueda del mouse.
**Ruta (23 nodos).** Cada nodo es un **logro real de Minecraft**, así que:
- el progreso se guarda con el jugador;
- avisa con la notificación de logro;
- también aparece una pestaña nueva en la pantalla de logros (L).
En el libro, un nodo **completo** se ve dorado con ✔, uno **disponible** (sus anteriores ya están) blanco, y uno
**bloqueado** gris. Pasando el mouse se ve qué hay que hacer o qué falta antes. Los objetivos tienen marco verde y
los desafíos violeta.
```
Semillas silvestres ─┬─ Primera cosecha ─┬─ Tijeras de poda
│ ├─ Leer el suelo ─┬─ Compost
│ │ └─ Cobertura (mulch)
│ ├─ Ensalada verde ── Hamburguesa ── Bien nutrido
│ └─ Secadero ── Al aire ─┬─ Paciencia (curado)
│ ├─ Un mate ── Agua a 85 °C
│ └─ Malta ── Microcervecería ── Cerveza artesanal
└─ Mirar el cielo ── Medir el aire ─┬─ Bajo vidrio (cosechar en invernadero)
├─ Ventilación ─┐
└─ Luz de cultivo ┴─ Sala de cultivo
```
"Bajo vidrio" y "Sala de cultivo" usan triggers propios, que se activan al cosechar un cultivo maduro en un
invernadero o en una sala de cultivo. El resto se cumple consiguiendo o comiendo cosas.
**Código:**
- `guide/RouteNodes` es la única definición de la ruta: posición, ícono y padres de cada nodo.
- `guide/Guide`: triggers, manual al entrar y apertura.
- `item/ManualItem`.
- Cliente: `screen/manual/ManualScreen` (libro, marcadores y capítulos) y `RouteMap` (mapa de nodos).
- Datagen: `ModAdvancementProvider` genera los logros desde `RouteNodes`.
- Tests:
- `RouteGameTest`: todos los nodos son logros cargados con el padre correcto, y los triggers de invernadero y sala
de cultivo funcionan.
- `RouteLangTest`: cada nodo y capítulo tiene texto en los 4 idiomas.
### Fase 9 — Aldeanos y sonidos propios ✅
**Intercambios** (data-driven, en `data/regenerative_agriculture/villager_trade/` más los tags
`data/minecraft/tags/villager_trade/...`, que se suman a los de vanilla):
| Quién | Nivel | Compra | Vende |
|---|---|---|---|
| Granjero | 1 Novato | lechuga, tomate, soja, choclo, cebolla → esmeralda | — |
| Granjero | 2 Aprendiz | zapallo | semillas de lechuga, tomate, albahaca, rúcula y poroto |
| Granjero | 3 Oficial | ajo curado, maíz seco | compost, mulch de paja |
| Granjero | 4 Experto | — | kit de suelo, tijeras de poda, termohigrómetro |
| Granjero | 5 Maestro | tabaco curado, cerveza, yerba estacionada | — |
| Comerciante errante | — | — | semillas raras: café, yerba mate, tabaco, cannabis, lúpulo, ají, ajo y maíz |
**Sonidos propios.** El mod tiene 9 eventos de sonido. Por ahora suenan con sonidos parecidos de vanilla, configurados
en `assets/regenerative_agriculture/sounds.json`:
| Evento | Cuándo suena | Provisorio (vanilla) |
|---|---|---|
| `item.mate.sip` | cada sorbo mientras tomás mate | beber, más agudo |
| `item.mate.slurp` | el ruidito del final del mate | beber miel, más grave |
| `item.mate.pour` | cebar con el termo | vaciar botella |
| `item.mate.load` | cargar yerba | compostador |
| `item.thermos.fill` | llenar el termo en el agua | llenar botella |
| `item.smoke.inhale` | mientras fumás (porro o cigarro) | inhalación del breeze |
| `item.smoke.exhale` | al terminar de fumar | fuego que se apaga, suave |
| `block.brew_kettle.boil` | la olla hirviendo | columna de burbujas |
| `block.fermenter.bubble` | el airlock del fermentador | burbuja |
#### Cómo poner tus grabaciones
1. **Grabá** cada sonido (el celular o Audacity alcanzan). Que sea corto: entre 0,3 y 2 segundos (la pitada hasta
2 s), sin silencio al principio ni al final.
2. **Convertí a OGG Vorbis, mono**, 44100 Hz. En Audacity: *Pistas → Mezclar → Mezclar estéreo a mono*, después
*Archivo → Exportar → Exportar como OGG*, calidad 5. Tiene que ser **mono**: los sonidos en estéreo no se ubican
en el espacio (se escuchan igual estés donde estés).
3. **Copiá los archivos** a `src/main/resources/assets/regenerative_agriculture/sounds/`. Usá nombres en minúscula, sin
espacios ni tildes. Conviene grabar 2 o 3 versiones de cada uno para que no suene siempre igual:
```
sounds/mate/sip1.ogg sounds/mate/sip2.ogg sounds/mate/sip3.ogg
sounds/mate/slurp1.ogg
sounds/smoke/inhale1.ogg sounds/smoke/exhale1.ogg ...
```
4. **En `sounds.json`** reemplazá la entrada provisoria de ese evento por tus archivos. El nombre va **sin** `.ogg`
y **sin** la carpeta `sounds/`:
```json
"item.mate.sip": {
"subtitle": "subtitles.regenerative_agriculture.item.mate.sip",
"sounds": [
"regenerative_agriculture:mate/sip1",
"regenerative_agriculture:mate/sip2",
{ "name": "regenerative_agriculture:mate/sip3", "volume": 0.8, "pitch": 1.1 }
]
}
```
Cuando hay varios, el juego elige uno al azar. `volume` (0–1) y `pitch` (0,5–2) son opcionales.
5. **Probá** con `./gradlew runClient`. Con **F3 + T** se recargan los recursos sin cerrar el juego. Para escuchar un
sonido suelto: `/playsound regenerative_agriculture:item.mate.sip master @s`.
6. Si un archivo falta o tiene mal el nombre, el log dice `Unable to play unknown soundEvent` o
`File ... does not exist`, y no suena nada (el juego no se rompe).
Para un sonido nuevo, uno que todavía no existe en el mod, hay que registrarlo en `registry/ModSounds.java` (una línea
como las demás), agregarlo a `sounds.json` y reproducirlo desde el código.
**Código:**
- `registry/ModSounds` y `assets/regenerative_agriculture/sounds.json`.
- El mate suena a sorbos con `onUseTick`; al cebar y al terminar suenan el cebado y el ruidito final.
- Fumar inhala mientras se usa y exhala al terminar (`PlaySoundConsumeEffect`).
- La olla y el fermentador suenan de vez en cuando mientras trabajan.
- Gametest `TradesGameTest`: los intercambios cargan y están en los pools del granjero y del comerciante errante.
### Texturas definitivas de las plantas ✅
Se redibujaron todas las plantas con un kit de pixel-art propio:
- hojas con punta, nervadura y lado iluminado;
- frutos esféricos con luz desde arriba a la izquierda y brillo;
- contorno oscuro en los ítems, como en vanilla.
Cada cultivo tiene su propia forma:
| | |
|---|---|
| Lechuga | roseta que forma cabeza |
| Tomate | tutor de madera con la planta enroscada y tomates con cáliz |
| Rúcula | hojas lobuladas con flores |
| Brócoli | hojas azuladas y pella |
| Soja | arbusto de hojas trifoliadas con vainas |
| Girasol | flor con pétalos y centro |
| Albahaca | pares de hojas y espigas blancas |
| Zapallo | guía rastrera con hojas grandes y fruto con gajos |
| Cebolla | hojas tubulares y bulbo violeta |
| Ajo | hojas planas, escapo enrulado y cabeza blanca |
| Cannabis | hojas palmeadas de cinco dedos y cogollos con pistilos |
| Tabaco | hojas grandes y flores rosas |
| Café | arbusto con ramas y cerezas |
| Ají | ramas con ajíes rojos y verdes |
| Lúpulo | trepando por hilos, con conos colgando |
| Yerba mate | arbusto leñoso |
| Maíz | caña con hojas arqueadas, panoja y choclos con barba |
| Poroto | trepando por tutores, con vainas |
Hay 4 etapas de crecimiento: brote con cotiledones, planta joven, planta adulta (algunas con flor) y madura con
fruto. La planta silvestre sale entre matas de pasto.
Las semillas tienen forma propia: dientes de ajo, granos de maíz, porotos, semillas rayadas de girasol, etc. Los
productos secos y curados se derivan de los dibujos nuevos cambiando el color (por ejemplo, el tabaco se pone dorado
al secarse y marrón al curarse).
**Secadero y frasco con el contenido a la vista.**
- El secadero muestra lo que tiene colgado, hasta 3 manojos según la cantidad. Se ve cómo pasa de fresco a seco o a
arruinado.
- El frasco de curado muestra lo que se está curando a través del vidrio.
- Lo dibuja `client/render/ProcessingRenderer`, un block entity renderer como el de la fogata. El servidor sincroniza
el contenido con los clientes.
This mod has no additional files

