Skip to content

💻 Technical Architecture & Mixin Integration

NOTE

📌 Pernyataan Sumber Kode Repositori: Dokumentasi dalam Wiki ini mencerminkan status kode sumber saat ini di repositori (v1.3.4+26.2), yang mungkin mencakup komit terbaru yang belum dirilis atau fitur pengembangan mendahului rilis publik di CurseForge dan Modrinth.


📋 Technical Infobox

Technical PropertySpecification
Platform TargetFabric Mod Loader (>=0.19.1)
Java Release TargetJava 25+ (release = 25)
Primary Dependencydasik-library (>=1.8.35)
Mixin Configurationnatural-reproduction.mixins.json
Compatibility ModeServer-Side Compatible (Vanilla Client Connect)
Build ToolingGradle 9.3+ / Fabric Loom 1.15+

🏗️ Architecture & Package Layout

text
net.vanillaoutsider.naturalreproduction/
├── NaturalReproductionFabric.java           - Main entrypoint, GameRules initialization, event listeners
├── command/
│   └── NaturalReproductionCommand.java      - Brigadier command suite (/naturalreproduction)
├── config/
│   ├── NaturalReproductionConfig.java       - Data record schema for config persistence
│   └── ModMenuIntegration.java              - Client YACL v3 & ModMenu GUI bridge
├── helper/
│   ├── AnimalBiomeHelper.java               - Biome fertility multipliers and variant skin adaptation
│   ├── AnimalCrampedSpaceHelper.java        - Confinement detection and spacious recovery curves
│   ├── AnimalDropHelper.java                - Item drop scaling math based on physical scale
│   ├── AnimalGestationHelper.java           - Pregnancy countdown ticker and prenatal vitality
│   ├── AnimalHabitatHelper.java             - 27-species environmental block trigger evaluation
│   ├── AnimalLineageHelper.java             - Multi-generational pedigree and inbreeding degradation
│   ├── AnimalPastureHelper.java             - Pasture enrichment structure scores and overgrazing wear
│   ├── ChickenEggHelper.java                - Fertilized Egg delivery and hatch chance handling
│   ├── HerdSocialHelper.java                - Alpha leader election and panic stampede triggers
│   └── SpatialBreedingCacheHelper.java      - Fast-fail spatial density cache
├── ai/
│   └── FollowHerdLeaderGoal.java            - Pastoral flocking AI goal (Priority 3)
├── logging/
│   └── BreedingTrackerLogger.java           - In-memory circular buffer for reproduction diagnostics
└── mixin/
    ├── AnimalBreedingMixin.java             - Injects gestation countdown & wild breeding hooks
    ├── AnimalDropScaleMixin.java            - Intercepts loot table drops to apply scale multipliers
    └── ThrownEggMixin.java                  - Intercepts thrown egg impact for Fertilized Egg mechanics

💉 Complete Mixin Target Matrix

Mixin ClassTarget Minecraft ClassInjection TargetPurpose
AnimalBreedingMixinnet.minecraft.world.entity.animal.Animal@Inject at tick() HEADDrives staggered autonomous breeding evaluations and gestation timers.
AnimalBreedingMixinnet.minecraft.world.entity.animal.Animal@Inject at spawnChildFromBreeding() HEADIntercepts offspring birth to apply inbreeding, scale, and prenatal vitality.
AnimalDropScaleMixinnet.minecraft.world.entity.LivingEntity@Inject at dropFromLootTable()Multiplies item drop counts by the entity's physical minecraft:scale.
ThrownEggMixinnet.minecraft.world.entity.projectile.ThrownEgg@Inject at onHit() HEADHandles guaranteed 100% hatch mechanics for Fertilized Egg items.

🧬 DasikLibrary API Integration

Natural Reproduction leverages DasikLibrary for standardized genetics, data-driven registries, and dynamic GameRule management:

java
// Query or mutate entity physical genetics via DasikAnimalGeneticsAPI
float currentScale = DasikAnimalGeneticsAPI.getScale(animal);
DasikAnimalGeneticsAPI.setScale(animal, 1.25f);

// Access universal genetics registry
EntityGeneticsRecord record = EntityGeneticsRegistry.getRecord(animal.getType());

🔨 Building & Testing from Source

1. Requirements

  • JDK 25+ installed and configured on JAVA_HOME.
  • Git repository cloned.

2. Gradle Build Commands

bash
# Compile and run automated GameTests / JUnit assertions
./gradlew test --no-daemon

# Build production release JAR
./gradlew build --no-daemon

Dukungan Pengembangan: Jika Anda menikmati mod ini, dukung kreator di Ko-fi untuk akses build pengembangan awal!


Official documentation & web portal for Dasik Igaijinn mods.