Updates backend dependencies and fixes amber random DNA implementation

This commit is contained in:
2026-06-09 21:18:11 -04:00
parent 51191fa245
commit 5786bfec65
13 changed files with 139 additions and 57 deletions
+8 -8
View File
@@ -61,33 +61,33 @@ dependencies {
}
neoForge {
val at = project.file("build/resources/main/META-INF/accesstransformer.cfg");
val at = file("build/resources/main/META-INF/accesstransformer.cfg");
accessTransformers.from(at.absolutePath)
validateAccessTransformers = true
val commonResources = project(":common").file("src/main/resources").absolutePath
val localResources = project.file("src/main/resources").absolutePath
val generatedResources = project.file("src/generated/resources").absolutePath
val localResources = file("src/main/resources").absolutePath
val generatedResources = file("src/generated/resources").absolutePath
runs {
register("client") {
client()
ideName = "NeoForge Client (${project.path})"
ideName = "NeoForge Client (${path})"
}
if (stonecutter.eval(stonecutter.current.version, ">=1.21.4")) {
register("clientData") {
clientData()
ideName = "NeoForge Client Data (${project.path})"
ideName = "NeoForge Client Data (${path})"
}
register("serverData") {
serverData()
ideName = "NeoForge Server Data (${project.path})"
ideName = "NeoForge Server Data (${path})"
}
} else {
register("data") {
data()
ideName = "NeoForge Data (${project.path})"
ideName = "NeoForge Data (${path})"
programArguments.addAll(
"--mod", commonMod.id,
"--all",
@@ -99,7 +99,7 @@ neoForge {
}
register("server") {
server()
ideName = "NeoForge Server (${project.path})"
ideName = "NeoForge Server (${path})"
}
}
@@ -181,12 +181,36 @@ public class NeoForgeRecipeProvider extends RecipeProvider implements ModRecipeP
//?}
}
@Override
public void amberRandomDNA(ItemLike testTube, ItemLike amber, ItemLike defaultDna, int count) {
//? if >1.20.1 {
DNAExtractingRecipeBuilder.amberRandomDNAUniform(testTube, amber, defaultDna, count)
.unlockedBy("has_amber", has(amber))
.save(output);
//?}
}
@Override
public void amberRandomDNA(ItemLike testTube, ItemLike amber, ItemLike defaultDna, Object... weightedDnaAndCount) {
//? if >1.20.1 {
int count = getAmberRandomDNACount(weightedDnaAndCount);
DNAExtractingRecipeBuilder builder = DNAExtractingRecipeBuilder.amberRandomDNAUniform(testTube, amber, defaultDna, count);
addAmberRandomDNAWeights(builder, weightedDnaAndCount);
builder.unlockedBy("has_amber", has(amber))
.save(output);
//?}
}
private static int getAmberRandomDNACount(Object... weightedDnaAndCount) {
if (weightedDnaAndCount.length == 0 || !(weightedDnaAndCount[weightedDnaAndCount.length - 1] instanceof Number count)) {
throw new IllegalArgumentException("amberRandomDNA requires the final argument to be the recipe count");
}
return count.intValue();
}
private static void addAmberRandomDNAWeights(DNAExtractingRecipeBuilder builder, Object... weightedDnaAndCount) {
if ((weightedDnaAndCount.length - 1) % 2 != 0) {
throw new IllegalArgumentException("amberRandomDNA weights must be provided as ItemLike, weight pairs before the count");
}
for (int i = 0; i < weightedDnaAndCount.length - 1; i += 2) {
if (!(weightedDnaAndCount[i] instanceof ItemLike dnaItem) || !(weightedDnaAndCount[i + 1] instanceof Number weight)) {
throw new IllegalArgumentException("amberRandomDNA weights must be provided as ItemLike, weight pairs before the count");
}
builder.addDNAWeight(dnaItem, weight.intValue());
}
}
}