Updates backend dependencies and fixes amber random DNA implementation
This commit is contained in:
@@ -60,14 +60,14 @@ dependencies {
|
||||
|
||||
|
||||
legacyForge {
|
||||
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
|
||||
|
||||
fun net.neoforged.moddevgradle.dsl.RunModel.includeMixinConfigs() {
|
||||
programArguments.addAll(
|
||||
@@ -79,19 +79,19 @@ legacyForge {
|
||||
runs {
|
||||
register("client") {
|
||||
client()
|
||||
ideName = "MinecraftForge Client (${project.path})"
|
||||
ideName = "MinecraftForge Client (${path})"
|
||||
logLevel = Level.TRACE
|
||||
includeMixinConfigs()
|
||||
}
|
||||
register("gameTestServer") {
|
||||
type = "gameTestServer"
|
||||
ideName = "MinecraftForge GameTestServer (${project.path})"
|
||||
ideName = "MinecraftForge GameTestServer (${path})"
|
||||
logLevel = Level.TRACE
|
||||
includeMixinConfigs()
|
||||
}
|
||||
register("data") {
|
||||
data()
|
||||
ideName = "MinecraftForge Data (${project.path})"
|
||||
ideName = "MinecraftForge Data (${path})"
|
||||
logLevel = Level.TRACE
|
||||
programArguments.addAll(
|
||||
"--mod", commonMod.id,
|
||||
@@ -104,7 +104,7 @@ legacyForge {
|
||||
}
|
||||
register("server") {
|
||||
server()
|
||||
ideName = "MinecraftForge Server (${project.path})"
|
||||
ideName = "MinecraftForge Server (${path})"
|
||||
logLevel = Level.TRACE
|
||||
includeMixinConfigs()
|
||||
}
|
||||
|
||||
+30
-6
@@ -164,10 +164,34 @@ public class ForgeRecipeProvider extends RecipeProvider implements ModRecipeProv
|
||||
.save(output);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void amberRandomDNA(ItemLike testTube, ItemLike amber, ItemLike defaultDna, int count) {
|
||||
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) {
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user