Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
123 changes: 106 additions & 17 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,13 @@ group = mod_group_id
sourceSets.main.resources {
// Include resources generated by data generators.
srcDir('src/generated/resources')
// Include compat resources generated by data generators.
srcDir('src/compat/generated/resources')

// Exclude common development only resources from finalized outputs
exclude("**/*.bbmodel") // BlockBench project files
exclude("src/generated/**/.cache") // datagen cache files
exclude("src/compat/generated/**/.cache") // compat datagen cache files
}

repositories {
Expand All @@ -50,6 +53,9 @@ repositories {
maven { url = "https://maven.ftb.dev/releases" }
// GeckoLib
maven { url = 'https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/' }

// Ender IO
maven { url = 'https://maven.rover656.dev/releases' }
}

base {
Expand All @@ -59,13 +65,55 @@ base {
// Mojang ships Java 25 to end users in 26.1.2, so mods should target Java 25.
java.toolchain.languageVersion = JavaLanguageVersion.of(25)

// Internal compat datagen module
// This source set is only included by runCompatData and is not packaged into Oritech
sourceSets {
compat {
java {
srcDir('src/compat/java')
}
resources {
srcDir('src/compat/resources')
}
}
}

// Sets up a dependency configuration called 'localRuntime'.
// This configuration should be used instead of 'runtimeOnly' to declare
// a dependency that will be present for runtime testing but that is
// "optional", meaning it will not be pulled by dependents of this mod.
configurations {
runtimeClasspath.extendsFrom localRuntime

// inherit the standard dependency configurations for compat configurations
compatImplementation.extendsFrom(implementation)
compatRuntimeOnly.extendsFrom(runtimeOnly)
}

neoForge {
// Specify the version of NeoForge to use.
version = project.neo_version

// This line is optional. Access Transformers are automatically detected
accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg')

addModdingDependenciesTo(sourceSets.compat)

mods {
// define mod <-> source bindings
// these are used to tell the game which sources are for which mod
// multi mod projects should define one per mod
"${mod_id}" {
sourceSet(sourceSets.main)
}
// oritech_compat is set up as a separate mod here so that the sourceSets can be cleanly filtered
// oritech_compat compile targets and added dependencies should not leak into other run configurations
// or into the distributed oritech jar
"oritech_compat" {
sourceSet(sourceSets.compat)
}
}

// Default run configurations.
// These can be tweaked, removed, or duplicated as needed.
runs {
Expand All @@ -74,12 +122,14 @@ neoForge {

// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
loadedMods = [mods."${mod_id}"]
}

server {
server()
programArgument '--nogui'
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
loadedMods = [mods."${mod_id}"]
}

// This run config launches GameTestServer and runs all registered gametests, then exits.
Expand All @@ -88,6 +138,7 @@ neoForge {
gameTestServer {
type = "gameTestServer"
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
loadedMods = [mods."${mod_id}"]
}

data {
Expand All @@ -98,6 +149,17 @@ neoForge {

// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
loadedMods = [mods."${mod_id}"]
}

compatData {
clientData()

sourceSet = sourceSets.compat

// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
programArguments.addAll '--mod', 'oritech_compat', '--all', '--output', file('src/compat/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
loadedMods = [mods."${mod_id}", mods.oritech_compat]
}

// applies to all the run configs above
Expand All @@ -115,23 +177,6 @@ neoForge {
logLevel = org.slf4j.event.Level.DEBUG
}
}

mods {
// define mod <-> source bindings
// these are used to tell the game which sources are for which mod
// multi mod projects should define one per mod
"${mod_id}" {
sourceSet(sourceSets.main)
}
}
}

// Sets up a dependency configuration called 'localRuntime'.
// This configuration should be used instead of 'runtimeOnly' to declare
// a dependency that will be present for runtime testing but that is
// "optional", meaning it will not be pulled by dependents of this mod.
configurations {
runtimeClasspath.extendsFrom localRuntime
}

dependencies {
Expand Down Expand Up @@ -171,6 +216,46 @@ dependencies {
// runtime testing mode
localRuntime "curse.maven:jade-324717:8326300" // jade

// compat datagen dependencies
// Oritech, from source
compatImplementation sourceSets.main.output

// AllTheOres 4.0.4 (5/1/2026)
compatImplementation "curse.maven:ato-405593:8023670"

// AE2 26.1.10 (6/16/2026)
compatImplementation "curse.maven:applied-energistics-2-223794:8257570"
// GuideME 26.1.12 (6/6/2026)
compatRuntimeOnly "curse.maven:guideme-1173950:8204880"

// ExtendedAE 1.0.2 (6/19/2026)
compatImplementation "curse.maven:ex-pattern-provider-892005:8284338"
// Glodium 1.2 (6/4/2026)
compatImplementation "curse.maven:glodium-957920:8196173"

// Ender IO 9.0.5-alpha (6/3/2026)
compatImplementation "com.enderio:enderio:9.0.5-alpha"

// EvilCraft 1.2.102 (8/6/2026)
compatImplementation "curse.maven:evilcraft-74610:8588654"
// Cyclops Core 1.30.2 (7/28/2026)
compatRuntimeOnly "curse.maven:cyclops-core-232758:8527468"

// FTB Materials 26.1.2.5 (6/24/2026)
compatImplementation "curse.maven:ftb-materials-1124942:8500413"
// FTB Library 26.1.2.7 (8/4/2026)
compatRuntimeOnly "curse.maven:ftb-library-forge-404465:8574542"

// GeOre 8.0.6 (6/20/2026)
compatImplementation "curse.maven:geore-530544:8288343"

// Powah! 7.0.4 (5/2/2026)
compatImplementation "curse.maven:powah-rearchitected-633483:8025339"
// Cloth Config 26.1.154 (3/26/2026)
compatRuntimeOnly "curse.maven:cloth-config-348521:7817583"

// Productive Metalworks 1.16.4 (6/22/2026)
compatImplementation "curse.maven:productive-metalworks-1184570:8303948"
}

// This block of code expands all declared replace properties in the specified resource targets.
Expand Down Expand Up @@ -296,3 +381,7 @@ publishMods {
minecraftVersions.add("26.1")
}
}

tasks.named("runCompatData") {
dependsOn tasks.named("compileCompatJava")
}
45 changes: 0 additions & 45 deletions disabled/datagen/compat/AlloyForgeryRecipeGenerator.java

This file was deleted.

20 changes: 0 additions & 20 deletions disabled/datagen/compat/ClutterRecipeGenerator.java

This file was deleted.

Loading
Loading