Skip to content

🌿 Registro de plantas y soporte universal de cultivos

Agrarian Reform incorpora un motor universal de detección de cultivos (AgrarianCropRules.java) con caché $O(1)$. Cualquier cultivo vanilla o de mod se detecta automáticamente, se incluye en la simulación offline y obtiene su propia GameRule.


🔍 Motor dinámico de descubrimiento y clasificación

                               BLOCK INSPECTION

                     ┌────────────────┴────────────────┐
                     ▼                                 ▼
          Known Cached Crop (O(1))            Uncached Block Type
                     │                                 │
                     ▼                                 ▼
            Return Multiplier              3-Tier Discovery Pipeline
                                           1. Class Hierarchy: CropBlock, SaplingBlock, BonemealableBlock
                                           2. Tag Membership: #c:crops, #minecraft:crops, #farmersdelight:wild_crops
                                           3. Property Inspection: BlockState with "age" IntegerProperty

                                                       ▼ (If Match Found)
                                           DYNAMIC REGISTRATION
                                           - Cache in DYNAMIC_CROPS Set
                                           - Register GameRule: agrarian_reform:crop_growth_multiplier_<id>
                                           - Mark AgrarianConfig dirty = true

📊 Índice de plantas soportadas y etapas de crecimiento

CategoríaClase Java / EtiquetaEjemplos VanillaTicks medios / FaseSimulación offlinePolvo de hueso
Cultivos estándarCropBlock, #c:cropsTrigo, zanahorias, patatas, remolachas$\sim 6,241\text{ ticks}$✅ Sí (Cola regulada)Nativo vanilla
Tallos altosSugarCaneBlock, CactusBlockCaña de azúcar, cactus$1,365\text{ ticks}$✅ Sí (Altura máx 3)✅ Soporte ampliado
Flora del NetherNetherWartBlockVerruga del Nether$13,650\text{ ticks}$✅ Sí (Fases 0 $\to$ 3)✅ Soporte ampliado
Vainas y bayasCocoaBlock, SweetBerryBushBlockCacao, bayas dulces$6,825\text{ ticks}$✅ Sí (Fases 0 $\to$ 2/3)✅ Soporte ampliado
Enredaderas y lianasVineBlockEnredaderasVariable✅ Sí (Propagación hacia abajo)✅ Soporte ampliado
Árboles y brotesSaplingBlockBrotes de roble, abeto, abedul, cerezo$95,550\text{ ticks}$✅ Sí (Crecimiento de árbol)Nativo vanilla
Agricultura de modsCualquier #c:crops o AgeBlockFarmer's Delight, Mystical AgricultureConfigurable✅ Sí (Delta escalado)Dinámico / Ampliado

🌾 Resolución de jerarquía de multiplicadores

java
public static int getEffectiveGrowthMultiplier(Level level, Block block) {
    Identifier id = BuiltInRegistries.BLOCK.getKey(block);
    // 1. Check world-specific GameRule
    GameRule<Integer> dynamicRule = DYNAMIC_GAMERULES.get(id);
    if (dynamicRule != null && level instanceof ServerLevel serverLevel) {
        int val = DynamicGameRuleManager.getInt(serverLevel, dynamicRule);
        if (val > 0) return val;       // Positive override
        if (val == -1) return 0;       // -1 = Frozen (0% growth)
    }
    // 2. Fall back to Global Multiplier
    if (level instanceof ServerLevel serverLevel) {
        return DynamicGameRuleManager.getInt(serverLevel, AgrarianGameRules.GLOBAL_GROWTH_MULTIPLIER);
    }
    return 100;
}

🔄 Detección en tiempo de ejecución y resistencia a borrado de mods

  1. Detección dinámica en partida: AgrarianCropRules intercepta ticks aleatorios, escaneos de chunks y eventos de uso. Las plantas de mods nuevos se detectan al instante y generan su GameRule sin reiniciar.
  2. Seguridad ante desinstalación de mods: Las reglas utilizan cadenas Identifier estándar (namespace:path). Al desinstalar un mod, los bloques ausentes se ignoran de forma segura sin causar caídas ClassNotFoundException.

🏷️ Integración de tags de datapacks (AgrarianTags)

json
{
  "replace": false,
  "values": [
    "#minecraft:crops",
    "#c:crops",
    "farmersdelight:cabbage",
    "farmersdelight:tomatoes",
    "farmersdelight:onions"
  ]
}

See also: El Continuo (Crecimiento offline), Multiplicador global de crecimiento, and Configuración de dos niveles.

Official documentation & web portal for Dasik Igaijinn mods.