Skip to content

🌿 Registre des plantes et cultures universelles

Agrarian Reform intègre un moteur universel de découverte de cultures (AgrarianCropRules.java) avec cache $O(1)$. Toutes les cultures vanilla ou de mods sont reconnues automatiquement, simulées hors-ligne et associées à une GameRule.


🔍 Moteur de détection dynamique et classification

                               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

📊 Index des plantes prises en charge et stades de croissance

CatégorieClasse Java / TagExemples VanillaTicks moyens / StadeSimulation hors-lignePoudre d'os
Cultures courantesCropBlock, #c:cropsBlé, carottes, pommes de terre, betteraves$\sim 6,241\text{ ticks}$✅ Oui (File régulée)Natif vanilla
Hautes tigesSugarCaneBlock, CactusBlockCanne à sucre, cactus$1,365\text{ ticks}$✅ Oui (Hauteur max 3)✅ Étendu
Flore du NetherNetherWartBlockVerrue du Nether$13,650\text{ ticks}$✅ Oui (Stades 0 $\to$ 3)✅ Étendu
Gousses et baiesCocoaBlock, SweetBerryBushBlockCacao, baies sucrées$6,825\text{ ticks}$✅ Oui (Stades 0 $\to$ 2/3)✅ Étendu
Lianes et feuillageVineBlockLianesVariable✅ Oui (Propagation bas)✅ Étendu
Arbres et poussesSaplingBlockPousses de chêne, sapin, bouleau, cerisier$95,550\text{ ticks}$✅ Oui (Pousse d'arbre)Natif vanilla
Agriculture de modsTout #c:crops ou AgeBlockFarmer's Delight, Mystical AgricultureConfigurable✅ Oui (Delta ajusté)Dynamique / Étendu

🌾 Résolution de la hiérarchie des multiplicateurs

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;
}

🔄 Découverte dynamique et tolérance au retrait de mods

  1. Découverte en jeu : AgrarianCropRules intercepte les ticks et interactions. Les nouvelles cultures de mods sont détectées en direct, stockées en cache $O(1)$ et dotées de GameRules sans redémarrage.
  2. Protection contre la suppression de mods : Les règles s'appuient sur des chaînes Identifier (namespace:path). Si un mod est désinstallé, les blocs absents sont ignorés sans crash ni ClassNotFoundException.

🏷️ Intégration des tags de datapacks (AgrarianTags)

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

See also: Le Continuum (Croissance hors-ligne), Multiplicateur global de croissance, and Configuration à deux niveaux.

Official documentation & web portal for Dasik Igaijinn mods.