💻 Configuração de desenvolvimento e compilação
Este guia traz requisitos, comandos Gradle, submódulos multi-versão e testes automatizados para desenvolvedores do Agrarian Reform.
🛠️ Pré-requisitos de ambiente
- Kit de Desenvolvimento Java: JDK 25 (
release = 25). - Versão do Gradle: Gradle 9.3+ (usando
./gradlew). - Fabric Loom: Loom 1.15.5.
- Mapeamentos: Ambiente moderno desobfustado (mapeamentos oficiais da Mojang).
- IDE: IntelliJ IDEA 2025.3+ ou Eclipse com suporte a Java 25.
🏗️ Estrutura de subprojetos multi-versão
O Agrarian Reform segue a regra estrita de 1 Jar 1 Version com pastas próprias para cada versão suportada:
Agrarian Reform/
├── Agrarian Reform v26.2/
│ └── agrarian-reform/ (Targets MC 26.2 / ">=26.2-")
├── Agrarian Reform v26.3/
│ └── agrarian-reform/ (Targets MC 26.3 / ">=26.3-")
└── Archive Jar of all versions/
├── MC 26.2/
└── MC 26.3/Compilação a partir do código-fonte
bash
# Clonar o repositório
git clone https://github.com/Rifaditya/Agrarian-reform-MC-mod.git
# Compilar JAR para MC 26.2
cd "Agrarian Reform v26.2/agrarian-reform"
./gradlew check test build --no-daemon
# Compilar JAR para MC 26.3
cd "../../Agrarian Reform v26.3/agrarian-reform"
./gradlew check test build --no-daemonOs arquivos JAR gerados (agrarian-reform-2.2.18+26.2.jar e agrarian-reform-2.2.18+26.3.jar) são validados e guardados em Archive Jar of all versions/.
🧪 Testes unitários headless automatizados
Seguindo a política de testes GameTest automatizados, suítes sem interface gráfica são executadas em ./gradlew test e ./gradlew check:
ContinuumMathTest.java:- Valida a escala de crescimento offline para curvas de crescimento padrão e de mods.
- Valida a regra de congelamento ($-1 \to \text{effectiveDelta} = 0$).
- Valida a limpeza de marcas temporais com mais de 30 dias ($51,840,000\text{ ticks}$).
- Valida a geometria de anéis concêntricos de Chebyshev ($r = \max(|dx|, |dz|)$).
AgrarianConfigTest.java:- Valida a estabilidade e invariantes do esquema de configuração padrão.
- Valida a resolução hierárquica de multiplicadores (específico, congelado, fallback global).
- Valida a desduplicação ao registrar novas plantas.
- Valida a segurança entre threads no gerenciamento de alterações pendentes.
bash
# Executar todos os testes automatizados
./gradlew test🔒 Cabeçalho de licença obrigatório
Todos os arquivos de código Java devem conter o cabeçalho de licença de linha única padrão:
java
// Copyright (C) 2026 Dasik (Rifaditya) | GNU GPLv3See also: Arquitetura e mixins and Compatibilidade de versões e ciclo de vida.
