Auto convert grinder recipes to datagen
This commit is contained in:
parent
acccaaa84c
commit
d305a7f092
128 changed files with 675 additions and 2792 deletions
|
@ -153,4 +153,16 @@ public class StackIngredient extends RebornIngredient {
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
return count.orElse(1);
|
return count.orElse(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ItemStack getStack() {
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Optional<NbtCompound> getNbt() {
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRequireEmptyNbt() {
|
||||||
|
return requireEmptyNbt;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,4 +158,8 @@ public class TagIngredient extends RebornIngredient {
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
return count.orElse(1);
|
return count.orElse(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TagKey<Item> getTag() {
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ import net.minecraft.registry.RegistryKeys
|
||||||
import techreborn.TechReborn
|
import techreborn.TechReborn
|
||||||
import techreborn.datagen.models.BlockLootTableProvider
|
import techreborn.datagen.models.BlockLootTableProvider
|
||||||
import techreborn.datagen.models.ModelProvider
|
import techreborn.datagen.models.ModelProvider
|
||||||
|
import techreborn.datagen.recipes.Json2Datagen
|
||||||
import techreborn.datagen.recipes.crafting.CraftingRecipesProvider
|
import techreborn.datagen.recipes.crafting.CraftingRecipesProvider
|
||||||
import techreborn.datagen.recipes.machine.alloy_smelter.AlloySmelterRecipesProvider
|
import techreborn.datagen.recipes.machine.alloy_smelter.AlloySmelterRecipesProvider
|
||||||
import techreborn.datagen.recipes.machine.assembling_machine.AssemblingMachineRecipesProvider
|
import techreborn.datagen.recipes.machine.assembling_machine.AssemblingMachineRecipesProvider
|
||||||
|
@ -52,6 +53,11 @@ class TechRebornDataGen implements DataGeneratorEntrypoint {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
|
void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
|
||||||
|
// if (true) {
|
||||||
|
// Json2Datagen.processAll()
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
|
||||||
def pack = fabricDataGenerator.createPack()
|
def pack = fabricDataGenerator.createPack()
|
||||||
|
|
||||||
def add = { FabricDataGenerator.Pack.RegistryDependentFactory factory ->
|
def add = { FabricDataGenerator.Pack.RegistryDependentFactory factory ->
|
||||||
|
|
|
@ -0,0 +1,120 @@
|
||||||
|
/*
|
||||||
|
* This file is part of TechReborn, licensed under the MIT License (MIT).
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 TechReborn
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package techreborn.datagen.recipes
|
||||||
|
|
||||||
|
import com.google.gson.Gson
|
||||||
|
import com.google.gson.JsonObject
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.registry.Registries
|
||||||
|
import net.minecraft.util.Identifier
|
||||||
|
import reborncore.common.crafting.RebornRecipe
|
||||||
|
import reborncore.common.crafting.ingredient.RebornIngredient
|
||||||
|
import reborncore.common.crafting.ingredient.StackIngredient
|
||||||
|
import reborncore.common.crafting.ingredient.TagIngredient
|
||||||
|
import techreborn.init.ModRecipes
|
||||||
|
|
||||||
|
class Json2Datagen {
|
||||||
|
private static final Gson GSON = new Gson()
|
||||||
|
|
||||||
|
static void processAll() {
|
||||||
|
def sj = new StringJoiner("\n")
|
||||||
|
|
||||||
|
new File("../../src/main/resources/data/techreborn/recipes/grinder").eachFile {
|
||||||
|
def json = GSON.fromJson(it.text, JsonObject.class)
|
||||||
|
def recipe = ModRecipes.GRINDER.read(new Identifier("techreborn:convert"), json)
|
||||||
|
sj.add process(recipe)
|
||||||
|
}
|
||||||
|
|
||||||
|
println sj
|
||||||
|
}
|
||||||
|
|
||||||
|
static String process(RebornRecipe recipe) {
|
||||||
|
StringBuilder stringBuilder = new StringBuilder()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* offerAlloySmelterRecipe {
|
||||||
|
* power 6
|
||||||
|
* time 200
|
||||||
|
* ingredients new ItemStack(Items.COPPER_INGOT, 3), TRConventionalTags.ZINC_INGOTS
|
||||||
|
* output new ItemStack(TRContent.Ingots.BRASS, 4)
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
|
||||||
|
stringBuilder.append("offerGrinderRecipe {\n")
|
||||||
|
stringBuilder.append("\tpower ").append(recipe.power).append("\n")
|
||||||
|
stringBuilder.append("\ttime ").append(recipe.time).append("\n")
|
||||||
|
stringBuilder.append("\tingredients ").append(formatIngredients(recipe.getRebornIngredients())).append("\n")
|
||||||
|
stringBuilder.append("\toutputs ").append(formatOutputs(recipe.getOutputs())).append("\n")
|
||||||
|
stringBuilder.append("}")
|
||||||
|
|
||||||
|
return stringBuilder
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String formatOutputs(List<ItemStack> outputs) {
|
||||||
|
StringJoiner sj = new StringJoiner(", ")
|
||||||
|
|
||||||
|
for (ItemStack output : outputs) {
|
||||||
|
sj.add(formatStack(output))
|
||||||
|
}
|
||||||
|
|
||||||
|
return sj.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String formatIngredients(List<RebornIngredient> ingredients) {
|
||||||
|
StringJoiner sj = new StringJoiner(", ")
|
||||||
|
for (RebornIngredient ingredient : ingredients) {
|
||||||
|
if (ingredient instanceof StackIngredient) {
|
||||||
|
if (ingredient.getNbt().isPresent()) {
|
||||||
|
throw new UnsupportedOperationException()
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemStack stack = ingredient.getStack().copy()
|
||||||
|
stack.setCount(ingredient.getCount())
|
||||||
|
|
||||||
|
sj.add(formatStack(stack))
|
||||||
|
} else if (ingredient instanceof TagIngredient) {
|
||||||
|
int count = ingredient.getCount()
|
||||||
|
if (count == 1) {
|
||||||
|
sj.add("tag(\"%s\")".formatted(ingredient.getTag().id()))
|
||||||
|
} else {
|
||||||
|
sj.add("tag(\"%s\", \"%s\")".formatted(ingredient.getTag().id(), ingredient.getCount()))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new UnsupportedOperationException()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return sj.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String formatStack(ItemStack stack) {
|
||||||
|
String name = Registries.ITEM.getId(stack.getItem()).toString()
|
||||||
|
if (stack.getCount() == 1) {
|
||||||
|
return "stack(\"%s\")".formatted(name)
|
||||||
|
} else {
|
||||||
|
return "stack(\"%s\", %s)".formatted(name, stack.getCount())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -28,8 +28,12 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput
|
||||||
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider
|
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider
|
||||||
import net.minecraft.advancement.criterion.CriterionConditions
|
import net.minecraft.advancement.criterion.CriterionConditions
|
||||||
import net.minecraft.data.server.recipe.RecipeJsonProvider
|
import net.minecraft.data.server.recipe.RecipeJsonProvider
|
||||||
|
import net.minecraft.item.Item
|
||||||
import net.minecraft.item.ItemConvertible
|
import net.minecraft.item.ItemConvertible
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.recipe.Ingredient
|
import net.minecraft.recipe.Ingredient
|
||||||
|
import net.minecraft.registry.Registries
|
||||||
|
import net.minecraft.registry.RegistryKeys
|
||||||
import net.minecraft.registry.RegistryWrapper
|
import net.minecraft.registry.RegistryWrapper
|
||||||
import net.minecraft.registry.tag.TagKey
|
import net.minecraft.registry.tag.TagKey
|
||||||
import net.minecraft.util.Identifier
|
import net.minecraft.util.Identifier
|
||||||
|
@ -44,6 +48,8 @@ import java.util.function.Consumer
|
||||||
|
|
||||||
abstract class TechRebornRecipesProvider extends FabricRecipeProvider {
|
abstract class TechRebornRecipesProvider extends FabricRecipeProvider {
|
||||||
protected Consumer<RecipeJsonProvider> exporter
|
protected Consumer<RecipeJsonProvider> exporter
|
||||||
|
public Set<Identifier> exportedRecipes = []
|
||||||
|
|
||||||
TechRebornRecipesProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) {
|
TechRebornRecipesProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) {
|
||||||
super(output)
|
super(output)
|
||||||
}
|
}
|
||||||
|
@ -127,40 +133,59 @@ abstract class TechRebornRecipesProvider extends FabricRecipeProvider {
|
||||||
throw new IllegalArgumentException()
|
throw new IllegalArgumentException()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ItemStack stack(ItemConvertible itemConvertible, int count = 1) {
|
||||||
|
return new ItemStack(itemConvertible, count)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Todo refactor me out, used to help port json recipes
|
||||||
|
static ItemStack stack(String id, int count = 1) {
|
||||||
|
def item = Registries.ITEM.get(new Identifier(id))
|
||||||
|
return new ItemStack(item, count)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Todo refactor me out, used to help port json recipes
|
||||||
|
static TagKey<Item> tag(String id, count = 1) {
|
||||||
|
if (count != 1) {
|
||||||
|
throw new UnsupportedOperationException()
|
||||||
|
}
|
||||||
|
|
||||||
|
return TagKey.of(RegistryKeys.ITEM, new Identifier(id))
|
||||||
|
}
|
||||||
|
|
||||||
def offerAlloySmelterRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerAlloySmelterRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
MachineRecipeJsonFactory.create(ModRecipes.ALLOY_SMELTER, closure).offerTo(exporter)
|
MachineRecipeJsonFactory.create(ModRecipes.ALLOY_SMELTER, this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
def offerGrinderRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerGrinderRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
MachineRecipeJsonFactory.create(ModRecipes.GRINDER, closure).offerTo(exporter)
|
MachineRecipeJsonFactory.create(ModRecipes.GRINDER, this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
def offerCompressorRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerCompressorRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
MachineRecipeJsonFactory.create(ModRecipes.COMPRESSOR, closure).offerTo(exporter)
|
MachineRecipeJsonFactory.create(ModRecipes.COMPRESSOR, this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
def offerExtractorRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerExtractorRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
MachineRecipeJsonFactory.create(ModRecipes.EXTRACTOR, closure).offerTo(exporter)
|
MachineRecipeJsonFactory.create(ModRecipes.EXTRACTOR, this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
def offerChemicalReactorRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerChemicalReactorRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
MachineRecipeJsonFactory.create(ModRecipes.CHEMICAL_REACTOR, closure).offerTo(exporter)
|
MachineRecipeJsonFactory.create(ModRecipes.CHEMICAL_REACTOR, this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
def offerAssemblingMachineRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerAssemblingMachineRecipe(@DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
MachineRecipeJsonFactory.create(ModRecipes.ASSEMBLING_MACHINE, closure).offerTo(exporter)
|
MachineRecipeJsonFactory.create(ModRecipes.ASSEMBLING_MACHINE, this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
def offerBlastFurnaceRecipe(@DelegatesTo(value = BlastFurnaceRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerBlastFurnaceRecipe(@DelegatesTo(value = BlastFurnaceRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
BlastFurnaceRecipeJsonFactory.createBlastFurnace(closure).offerTo(exporter)
|
BlastFurnaceRecipeJsonFactory.createBlastFurnace(this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
def offerIndustrialGrinderRecipe(@DelegatesTo(value = IndustrialGrinderRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerIndustrialGrinderRecipe(@DelegatesTo(value = IndustrialGrinderRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
IndustrialGrinderRecipeJsonFactory.createIndustrialGrinder(closure).offerTo(exporter)
|
IndustrialGrinderRecipeJsonFactory.createIndustrialGrinder(this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
def offerIndustrialSawmillRecipe(@DelegatesTo(value = IndustrialSawmillRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
def offerIndustrialSawmillRecipe(@DelegatesTo(value = IndustrialSawmillRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
IndustrialSawmillRecipeJsonFactory.createIndustrialSawmill(closure).offerTo(exporter)
|
IndustrialSawmillRecipeJsonFactory.createIndustrialSawmill(this, closure).offerTo(exporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -67,7 +67,9 @@ class IngredientBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stacks.size() == 1) {
|
if (stacks.size() == 1) {
|
||||||
return new StackIngredient(stacks.get(0), Optional.of(stacks.get(0).getCount()), Optional.empty(), false)
|
def stack = stacks[0]
|
||||||
|
def count = stack.getCount() > 1 ? Optional.of(stack.getCount()) : Optional.empty()
|
||||||
|
return new StackIngredient(stack, count, Optional.empty(), false)
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new IllegalStateException()
|
throw new IllegalStateException()
|
||||||
|
|
|
@ -40,15 +40,18 @@ import net.minecraft.registry.tag.TagKey
|
||||||
import net.minecraft.resource.featuretoggle.FeatureFlag
|
import net.minecraft.resource.featuretoggle.FeatureFlag
|
||||||
import net.minecraft.util.Identifier
|
import net.minecraft.util.Identifier
|
||||||
import org.jetbrains.annotations.NotNull
|
import org.jetbrains.annotations.NotNull
|
||||||
|
import org.jetbrains.annotations.Nullable
|
||||||
import reborncore.common.crafting.RebornRecipe
|
import reborncore.common.crafting.RebornRecipe
|
||||||
import reborncore.common.crafting.RebornRecipeType
|
import reborncore.common.crafting.RebornRecipeType
|
||||||
import reborncore.common.crafting.RecipeUtils
|
import reborncore.common.crafting.RecipeUtils
|
||||||
import reborncore.common.crafting.ingredient.RebornIngredient
|
import reborncore.common.crafting.ingredient.RebornIngredient
|
||||||
|
import techreborn.datagen.recipes.TechRebornRecipesProvider
|
||||||
|
|
||||||
import java.util.function.Consumer
|
import java.util.function.Consumer
|
||||||
|
|
||||||
class MachineRecipeJsonFactory<R extends RebornRecipe> {
|
class MachineRecipeJsonFactory<R extends RebornRecipe> {
|
||||||
protected final RebornRecipeType<R> type
|
protected final RebornRecipeType<R> type
|
||||||
|
protected final TechRebornRecipesProvider provider
|
||||||
protected final Builder builder = Builder.create()
|
protected final Builder builder = Builder.create()
|
||||||
|
|
||||||
protected final List<RebornIngredient> ingredients = new ArrayList<>()
|
protected final List<RebornIngredient> ingredients = new ArrayList<>()
|
||||||
|
@ -59,16 +62,17 @@ class MachineRecipeJsonFactory<R extends RebornRecipe> {
|
||||||
protected String source = null
|
protected String source = null
|
||||||
protected List<ConditionJsonProvider> conditions = []
|
protected List<ConditionJsonProvider> conditions = []
|
||||||
|
|
||||||
protected MachineRecipeJsonFactory(RebornRecipeType<R> type) {
|
protected MachineRecipeJsonFactory(RebornRecipeType<R> type, TechRebornRecipesProvider provider) {
|
||||||
this.type = type
|
this.type = type
|
||||||
|
this.provider = provider
|
||||||
}
|
}
|
||||||
|
|
||||||
static <R extends RebornRecipe> MachineRecipeJsonFactory<R> create(RebornRecipeType<R> type) {
|
static <R extends RebornRecipe> MachineRecipeJsonFactory<R> create(RebornRecipeType<R> type, TechRebornRecipesProvider provider) {
|
||||||
return new MachineRecipeJsonFactory<R>(type)
|
return new MachineRecipeJsonFactory<R>(type, provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
static <R extends RebornRecipe> MachineRecipeJsonFactory<R> create(RebornRecipeType<R> type, @DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
static <R extends RebornRecipe> MachineRecipeJsonFactory<R> create(RebornRecipeType<R> type, TechRebornRecipesProvider provider, @DelegatesTo(value = MachineRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
def factory = new MachineRecipeJsonFactory<R>(type)
|
def factory = new MachineRecipeJsonFactory<R>(type, provider)
|
||||||
closure.setDelegate(factory)
|
closure.setDelegate(factory)
|
||||||
closure.call(factory)
|
closure.call(factory)
|
||||||
return factory
|
return factory
|
||||||
|
@ -114,19 +118,25 @@ class MachineRecipeJsonFactory<R extends RebornRecipe> {
|
||||||
|
|
||||||
def outputs(Object... objects) {
|
def outputs(Object... objects) {
|
||||||
for (object in objects) {
|
for (object in objects) {
|
||||||
if (object instanceof ItemStack) {
|
def stack = ofStack(object)
|
||||||
output(object)
|
outputs.add(stack)
|
||||||
} else if (object instanceof ItemConvertible) {
|
|
||||||
output(new ItemStack(object.asItem()))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
def output(ItemStack stack) {
|
private static ItemStack ofStack(Object object) {
|
||||||
outputs.add(stack)
|
if (object instanceof ItemStack) {
|
||||||
return this
|
return object
|
||||||
|
} else if (object instanceof ItemConvertible) {
|
||||||
|
return new ItemStack(object.asItem())
|
||||||
|
} else if (object instanceof String) {
|
||||||
|
// TODO remove me, done to aid porting from json files
|
||||||
|
def item = Registries.ITEM.get(new Identifier(object))
|
||||||
|
return new ItemStack(item)
|
||||||
|
} else {
|
||||||
|
throw new UnsupportedOperationException()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def power(int power) {
|
def power(int power) {
|
||||||
|
@ -196,7 +206,21 @@ class MachineRecipeJsonFactory<R extends RebornRecipe> {
|
||||||
|
|
||||||
void offerTo(Consumer<RecipeJsonProvider> exporter) {
|
void offerTo(Consumer<RecipeJsonProvider> exporter) {
|
||||||
validate()
|
validate()
|
||||||
Identifier recipeId = getIdentifier()
|
def recipeId = getIdentifier()
|
||||||
|
|
||||||
|
if (provider.exportedRecipes.contains(recipeId) && !customId) {
|
||||||
|
int i = 1
|
||||||
|
def id
|
||||||
|
do {
|
||||||
|
i++
|
||||||
|
id = new Identifier(recipeId.toString() + "_" + i)
|
||||||
|
} while (provider.exportedRecipes.contains(id))
|
||||||
|
|
||||||
|
recipeId = id
|
||||||
|
}
|
||||||
|
|
||||||
|
provider.exportedRecipes.add(recipeId)
|
||||||
|
|
||||||
Identifier advancementId = new Identifier(recipeId.getNamespace(), "recipes/" + recipeId.getPath())
|
Identifier advancementId = new Identifier(recipeId.getNamespace(), "recipes/" + recipeId.getPath())
|
||||||
RecipeUtils.addToastDefaults(builder, recipeId)
|
RecipeUtils.addToastDefaults(builder, recipeId)
|
||||||
exporter.accept(new MachineRecipeJsonProvider<R>(type, createRecipe(recipeId), advancementId, builder, conditions))
|
exporter.accept(new MachineRecipeJsonProvider<R>(type, createRecipe(recipeId), advancementId, builder, conditions))
|
||||||
|
|
|
@ -28,6 +28,7 @@ import net.minecraft.fluid.Fluid
|
||||||
import net.minecraft.fluid.Fluids
|
import net.minecraft.fluid.Fluids
|
||||||
import reborncore.common.crafting.RebornFluidRecipe
|
import reborncore.common.crafting.RebornFluidRecipe
|
||||||
import reborncore.common.crafting.RebornRecipeType
|
import reborncore.common.crafting.RebornRecipeType
|
||||||
|
import techreborn.datagen.recipes.TechRebornRecipesProvider
|
||||||
|
|
||||||
abstract class MachineRecipeWithFluidJsonFactory<R extends RebornFluidRecipe> extends MachineRecipeJsonFactory<R> {
|
abstract class MachineRecipeWithFluidJsonFactory<R extends RebornFluidRecipe> extends MachineRecipeJsonFactory<R> {
|
||||||
protected Fluid fluid = Fluids.WATER // default
|
protected Fluid fluid = Fluids.WATER // default
|
||||||
|
@ -43,8 +44,8 @@ abstract class MachineRecipeWithFluidJsonFactory<R extends RebornFluidRecipe> ex
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
protected MachineRecipeWithFluidJsonFactory(RebornRecipeType<R> type) {
|
protected MachineRecipeWithFluidJsonFactory(RebornRecipeType<R> type, TechRebornRecipesProvider provider) {
|
||||||
super(type)
|
super(type, provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -44,36 +44,36 @@ class AlloySmelterRecipesProvider extends TechRebornRecipesProvider {
|
||||||
offerAlloySmelterRecipe {
|
offerAlloySmelterRecipe {
|
||||||
power 6
|
power 6
|
||||||
time 200
|
time 200
|
||||||
ingredients new ItemStack(Items.COPPER_INGOT, 3), TRConventionalTags.ZINC_INGOTS
|
ingredients stack(Items.COPPER_INGOT, 3), TRConventionalTags.ZINC_INGOTS
|
||||||
output new ItemStack(TRContent.Ingots.BRASS, 4)
|
outputs stack(TRContent.Ingots.BRASS, 4)
|
||||||
}
|
}
|
||||||
|
|
||||||
offerAlloySmelterRecipe {
|
offerAlloySmelterRecipe {
|
||||||
power 6
|
power 6
|
||||||
time 200
|
time 200
|
||||||
ingredients new ItemStack(Items.COPPER_INGOT, 3), TRConventionalTags.TIN_INGOTS
|
ingredients stack(Items.COPPER_INGOT, 3), TRConventionalTags.TIN_INGOTS
|
||||||
output new ItemStack(TRContent.Ingots.BRONZE, 4)
|
outputs stack(TRContent.Ingots.BRONZE, 4)
|
||||||
}
|
}
|
||||||
|
|
||||||
offerAlloySmelterRecipe {
|
offerAlloySmelterRecipe {
|
||||||
power 6
|
power 6
|
||||||
time 200
|
time 200
|
||||||
ingredients Items.GOLD_INGOT, TRConventionalTags.SILVER_INGOTS
|
ingredients Items.GOLD_INGOT, TRConventionalTags.SILVER_INGOTS
|
||||||
output new ItemStack(TRContent.Ingots.ELECTRUM, 2)
|
outputs stack(TRContent.Ingots.ELECTRUM, 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
offerAlloySmelterRecipe {
|
offerAlloySmelterRecipe {
|
||||||
power 6
|
power 6
|
||||||
time 200
|
time 200
|
||||||
ingredients new ItemStack(Items.IRON_INGOT, 3), TRConventionalTags.NICKEL_INGOTS
|
ingredients stack(Items.IRON_INGOT, 3), TRConventionalTags.NICKEL_INGOTS
|
||||||
output new ItemStack(TRContent.Ingots.INVAR, 3)
|
outputs stack(TRContent.Ingots.INVAR, 3)
|
||||||
}
|
}
|
||||||
|
|
||||||
offerAlloySmelterRecipe {
|
offerAlloySmelterRecipe {
|
||||||
power 6
|
power 6
|
||||||
time 600
|
time 600
|
||||||
ingredients new ItemStack(Items.GOLD_INGOT, 10), new ItemStack(Items.NETHERITE_SCRAP, 10)
|
ingredients stack(Items.GOLD_INGOT, 10), stack(Items.NETHERITE_SCRAP, 10)
|
||||||
output new ItemStack(Items.NETHERITE_INGOT, 3)
|
outputs stack(Items.NETHERITE_INGOT, 3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,8 +64,8 @@ class AssemblingMachineRecipesProvider extends TechRebornRecipesProvider {
|
||||||
(Items.YELLOW_DYE): Items.YELLOW_BED
|
(Items.YELLOW_DYE): Items.YELLOW_BED
|
||||||
].each {(wool, bed) ->
|
].each {(wool, bed) ->
|
||||||
offerAssemblingMachineRecipe {
|
offerAssemblingMachineRecipe {
|
||||||
ingredients new ItemStack(wool, 2), ItemTags.PLANKS
|
ingredients stack(wool, 2), ItemTags.PLANKS
|
||||||
output bed
|
outputs bed
|
||||||
source "wool"
|
source "wool"
|
||||||
power 25
|
power 25
|
||||||
time 250
|
time 250
|
||||||
|
|
|
@ -26,6 +26,7 @@ package techreborn.datagen.recipes.machine.blast_furnace
|
||||||
|
|
||||||
import net.minecraft.util.Identifier
|
import net.minecraft.util.Identifier
|
||||||
import techreborn.api.recipe.recipes.BlastFurnaceRecipe
|
import techreborn.api.recipe.recipes.BlastFurnaceRecipe
|
||||||
|
import techreborn.datagen.recipes.TechRebornRecipesProvider
|
||||||
import techreborn.datagen.recipes.machine.MachineRecipeJsonFactory
|
import techreborn.datagen.recipes.machine.MachineRecipeJsonFactory
|
||||||
import techreborn.init.ModRecipes
|
import techreborn.init.ModRecipes
|
||||||
|
|
||||||
|
@ -37,16 +38,16 @@ class BlastFurnaceRecipeJsonFactory extends MachineRecipeJsonFactory<BlastFurnac
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
protected BlastFurnaceRecipeJsonFactory() {
|
protected BlastFurnaceRecipeJsonFactory(TechRebornRecipesProvider provider) {
|
||||||
super(ModRecipes.BLAST_FURNACE)
|
super(ModRecipes.BLAST_FURNACE, provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
static BlastFurnaceRecipeJsonFactory create() {
|
static BlastFurnaceRecipeJsonFactory create(TechRebornRecipesProvider provider) {
|
||||||
return new BlastFurnaceRecipeJsonFactory()
|
return new BlastFurnaceRecipeJsonFactory(provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
static BlastFurnaceRecipeJsonFactory createBlastFurnace(@DelegatesTo(value = BlastFurnaceRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
static BlastFurnaceRecipeJsonFactory createBlastFurnace(TechRebornRecipesProvider provider, @DelegatesTo(value = BlastFurnaceRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
def factory = new BlastFurnaceRecipeJsonFactory()
|
def factory = new BlastFurnaceRecipeJsonFactory(provider)
|
||||||
closure.setDelegate(factory)
|
closure.setDelegate(factory)
|
||||||
closure.call(factory)
|
closure.call(factory)
|
||||||
return factory
|
return factory
|
||||||
|
|
|
@ -65,11 +65,11 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateBoots() {
|
void generateBoots() {
|
||||||
final int count = 2
|
final int count = 2
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_BOOTS) : new ItemStack(Items.GOLD_INGOT, count),
|
(Items.GOLDEN_BOOTS) : stack(Items.GOLD_INGOT, count),
|
||||||
(Items.IRON_BOOTS) : new ItemStack(Items.IRON_INGOT, count),
|
(Items.IRON_BOOTS) : stack(Items.IRON_INGOT, count),
|
||||||
(TRContent.BRONZE_BOOTS) : new ItemStack(TRContent.Ingots.BRONZE, count),
|
(TRContent.BRONZE_BOOTS) : stack(TRContent.Ingots.BRONZE, count),
|
||||||
(TRContent.SILVER_BOOTS) : new ItemStack(TRContent.Ingots.SILVER, count),
|
(TRContent.SILVER_BOOTS) : stack(TRContent.Ingots.SILVER, count),
|
||||||
(TRContent.STEEL_BOOTS) : new ItemStack(TRContent.Ingots.STEEL, count)
|
(TRContent.STEEL_BOOTS) : stack(TRContent.Ingots.STEEL, count)
|
||||||
].each {boots, materialStack ->
|
].each {boots, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients boots, Items.SAND
|
ingredients boots, Items.SAND
|
||||||
|
@ -86,11 +86,11 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateChestplate() {
|
void generateChestplate() {
|
||||||
final int count = 5
|
final int count = 5
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_CHESTPLATE) : new ItemStack(Items.GOLD_INGOT, count),
|
(Items.GOLDEN_CHESTPLATE) : stack(Items.GOLD_INGOT, count),
|
||||||
(Items.IRON_CHESTPLATE) : new ItemStack(Items.IRON_INGOT, count),
|
(Items.IRON_CHESTPLATE) : stack(Items.IRON_INGOT, count),
|
||||||
(TRContent.BRONZE_CHESTPLATE) : new ItemStack(TRContent.Ingots.BRONZE, count),
|
(TRContent.BRONZE_CHESTPLATE) : stack(TRContent.Ingots.BRONZE, count),
|
||||||
(TRContent.SILVER_CHESTPLATE) : new ItemStack(TRContent.Ingots.SILVER, count),
|
(TRContent.SILVER_CHESTPLATE) : stack(TRContent.Ingots.SILVER, count),
|
||||||
(TRContent.STEEL_CHESTPLATE) : new ItemStack(TRContent.Ingots.STEEL, count)
|
(TRContent.STEEL_CHESTPLATE) : stack(TRContent.Ingots.STEEL, count)
|
||||||
].each {chestplate, materialStack ->
|
].each {chestplate, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients chestplate, Items.SAND
|
ingredients chestplate, Items.SAND
|
||||||
|
@ -107,11 +107,11 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateHelmet() {
|
void generateHelmet() {
|
||||||
final int count = 3
|
final int count = 3
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_HELMET) : new ItemStack(Items.GOLD_INGOT, count),
|
(Items.GOLDEN_HELMET) : stack(Items.GOLD_INGOT, count),
|
||||||
(Items.IRON_HELMET) : new ItemStack(Items.IRON_INGOT, count),
|
(Items.IRON_HELMET) : stack(Items.IRON_INGOT, count),
|
||||||
(TRContent.BRONZE_HELMET) : new ItemStack(TRContent.Ingots.BRONZE, count),
|
(TRContent.BRONZE_HELMET) : stack(TRContent.Ingots.BRONZE, count),
|
||||||
(TRContent.SILVER_HELMET) : new ItemStack(TRContent.Ingots.SILVER, count),
|
(TRContent.SILVER_HELMET) : stack(TRContent.Ingots.SILVER, count),
|
||||||
(TRContent.STEEL_HELMET) : new ItemStack(TRContent.Ingots.STEEL, count)
|
(TRContent.STEEL_HELMET) : stack(TRContent.Ingots.STEEL, count)
|
||||||
].each {helmet, materialStack ->
|
].each {helmet, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients helmet, Items.SAND
|
ingredients helmet, Items.SAND
|
||||||
|
@ -128,11 +128,11 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateLeggings() {
|
void generateLeggings() {
|
||||||
final int count = 4
|
final int count = 4
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_LEGGINGS) : new ItemStack(Items.GOLD_INGOT, count),
|
(Items.GOLDEN_LEGGINGS) : stack(Items.GOLD_INGOT, count),
|
||||||
(Items.IRON_LEGGINGS) : new ItemStack(Items.IRON_INGOT, count),
|
(Items.IRON_LEGGINGS) : stack(Items.IRON_INGOT, count),
|
||||||
(TRContent.BRONZE_LEGGINGS) : new ItemStack(TRContent.Ingots.BRONZE, count),
|
(TRContent.BRONZE_LEGGINGS) : stack(TRContent.Ingots.BRONZE, count),
|
||||||
(TRContent.SILVER_LEGGINGS) : new ItemStack(TRContent.Ingots.SILVER, count),
|
(TRContent.SILVER_LEGGINGS) : stack(TRContent.Ingots.SILVER, count),
|
||||||
(TRContent.STEEL_LEGGINGS) : new ItemStack(TRContent.Ingots.STEEL, count)
|
(TRContent.STEEL_LEGGINGS) : stack(TRContent.Ingots.STEEL, count)
|
||||||
].each {leggings, materialStack ->
|
].each {leggings, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients leggings, Items.SAND
|
ingredients leggings, Items.SAND
|
||||||
|
@ -149,8 +149,8 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateHorseArmor() {
|
void generateHorseArmor() {
|
||||||
final int count = 4
|
final int count = 4
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_HORSE_ARMOR) : new ItemStack(Items.GOLD_INGOT, count),
|
(Items.GOLDEN_HORSE_ARMOR) : stack(Items.GOLD_INGOT, count),
|
||||||
(Items.IRON_HORSE_ARMOR) : new ItemStack(Items.IRON_INGOT, count)
|
(Items.IRON_HORSE_ARMOR) : stack(Items.IRON_INGOT, count)
|
||||||
].each {horseArmor, materialStack ->
|
].each {horseArmor, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients horseArmor, Items.SAND
|
ingredients horseArmor, Items.SAND
|
||||||
|
@ -167,9 +167,9 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateSword() {
|
void generateSword() {
|
||||||
final int count = 5
|
final int count = 5
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_SWORD) : new ItemStack(Items.GOLD_NUGGET, count),
|
(Items.GOLDEN_SWORD) : stack(Items.GOLD_NUGGET, count),
|
||||||
(Items.IRON_SWORD) : new ItemStack(Items.IRON_NUGGET, count),
|
(Items.IRON_SWORD) : stack(Items.IRON_NUGGET, count),
|
||||||
(TRContent.BRONZE_SWORD) : new ItemStack(TRContent.Nuggets.BRONZE, count)
|
(TRContent.BRONZE_SWORD) : stack(TRContent.Nuggets.BRONZE, count)
|
||||||
].each {sword, materialStack ->
|
].each {sword, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients sword, Items.SAND
|
ingredients sword, Items.SAND
|
||||||
|
@ -186,9 +186,9 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateShovel() {
|
void generateShovel() {
|
||||||
final int count = 3
|
final int count = 3
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_SHOVEL) : new ItemStack(Items.GOLD_NUGGET, count),
|
(Items.GOLDEN_SHOVEL) : stack(Items.GOLD_NUGGET, count),
|
||||||
(Items.IRON_SHOVEL) : new ItemStack(Items.IRON_NUGGET, count),
|
(Items.IRON_SHOVEL) : stack(Items.IRON_NUGGET, count),
|
||||||
(TRContent.BRONZE_SPADE) : new ItemStack(TRContent.Nuggets.BRONZE, count)
|
(TRContent.BRONZE_SPADE) : stack(TRContent.Nuggets.BRONZE, count)
|
||||||
].each {shovel, materialStack ->
|
].each {shovel, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients shovel, Items.SAND
|
ingredients shovel, Items.SAND
|
||||||
|
@ -205,9 +205,9 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateHoe() {
|
void generateHoe() {
|
||||||
final int count = 5
|
final int count = 5
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_HOE) : new ItemStack(Items.GOLD_NUGGET, count),
|
(Items.GOLDEN_HOE) : stack(Items.GOLD_NUGGET, count),
|
||||||
(Items.IRON_HOE) : new ItemStack(Items.IRON_NUGGET, count),
|
(Items.IRON_HOE) : stack(Items.IRON_NUGGET, count),
|
||||||
(TRContent.BRONZE_HOE) : new ItemStack(TRContent.Nuggets.BRONZE, count)
|
(TRContent.BRONZE_HOE) : stack(TRContent.Nuggets.BRONZE, count)
|
||||||
].each {hoe, materialStack ->
|
].each {hoe, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients hoe, Items.SAND
|
ingredients hoe, Items.SAND
|
||||||
|
@ -224,9 +224,9 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generateAxe() {
|
void generateAxe() {
|
||||||
final int count = 1
|
final int count = 1
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_AXE) : new ItemStack(Items.GOLD_INGOT, count),
|
(Items.GOLDEN_AXE) : stack(Items.GOLD_INGOT, count),
|
||||||
(Items.IRON_AXE) : new ItemStack(Items.IRON_INGOT, count),
|
(Items.IRON_AXE) : stack(Items.IRON_INGOT, count),
|
||||||
(TRContent.BRONZE_AXE) : new ItemStack(TRContent.Ingots.BRONZE, count)
|
(TRContent.BRONZE_AXE) : stack(TRContent.Ingots.BRONZE, count)
|
||||||
].each {axe, materialStack ->
|
].each {axe, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients axe, Items.SAND
|
ingredients axe, Items.SAND
|
||||||
|
@ -243,9 +243,9 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
void generatePickaxe() {
|
void generatePickaxe() {
|
||||||
final int count = 1
|
final int count = 1
|
||||||
[
|
[
|
||||||
(Items.GOLDEN_PICKAXE) : new ItemStack(Items.GOLD_INGOT, count),
|
(Items.GOLDEN_PICKAXE) : stack(Items.GOLD_INGOT, count),
|
||||||
(Items.IRON_PICKAXE) : new ItemStack(Items.IRON_INGOT, count),
|
(Items.IRON_PICKAXE) : stack(Items.IRON_INGOT, count),
|
||||||
(TRContent.BRONZE_PICKAXE) : new ItemStack(TRContent.Ingots.BRONZE, count)
|
(TRContent.BRONZE_PICKAXE) : stack(TRContent.Ingots.BRONZE, count)
|
||||||
].each {pickaxe, materialStack ->
|
].each {pickaxe, materialStack ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients pickaxe, Items.SAND
|
ingredients pickaxe, Items.SAND
|
||||||
|
@ -280,8 +280,8 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
(Items.YELLOW_STAINED_GLASS_PANE) : Items.YELLOW_STAINED_GLASS
|
(Items.YELLOW_STAINED_GLASS_PANE) : Items.YELLOW_STAINED_GLASS
|
||||||
].each {(pane,glass) ->
|
].each {(pane,glass) ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients new ItemStack(pane, 10)
|
ingredients stack(pane, 10)
|
||||||
outputs new ItemStack(glass, 3)
|
outputs stack(glass, 3)
|
||||||
power 128
|
power 128
|
||||||
time 150
|
time 150
|
||||||
heat 1000
|
heat 1000
|
||||||
|
@ -298,8 +298,8 @@ class BlastFurnaceRecipesProvider extends TechRebornRecipesProvider {
|
||||||
(Items.DAMAGED_ANVIL) : 6,
|
(Items.DAMAGED_ANVIL) : 6,
|
||||||
].each {(anvil,amount) ->
|
].each {(anvil,amount) ->
|
||||||
offerBlastFurnaceRecipe {
|
offerBlastFurnaceRecipe {
|
||||||
ingredients anvil, new ItemStack(Items.SAND, 2)
|
ingredients anvil, stack(Items.SAND, 2)
|
||||||
outputs new ItemStack(Items.IRON_INGOT, amount), new ItemStack(TRContent.Dusts.DARK_ASHES, 2)
|
outputs stack(Items.IRON_INGOT, amount), stack(TRContent.Dusts.DARK_ASHES, 2)
|
||||||
power 128
|
power 128
|
||||||
time 300
|
time 300
|
||||||
heat 1500
|
heat 1500
|
||||||
|
|
|
@ -56,8 +56,8 @@ class ChemicalReactorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
for (ColoredItem color : ColoredItem.values())
|
for (ColoredItem color : ColoredItem.values())
|
||||||
ColoredItem.createExtendedMixingColorStream(color, false, true).forEach(pair ->
|
ColoredItem.createExtendedMixingColorStream(color, false, true).forEach(pair ->
|
||||||
offerChemicalReactorRecipe {
|
offerChemicalReactorRecipe {
|
||||||
ingredients color.getDye(), new ItemStack(pair.getLeft().getWool(), 4)
|
ingredients color.getDye(), stack(pair.getLeft().getWool(), 4)
|
||||||
output new ItemStack(pair.getRight().getWool(), 4)
|
outputs stack(pair.getRight().getWool(), 4)
|
||||||
source pair.getLeft().getWool().toString() + "_with_" + color.getDye().toString()
|
source pair.getLeft().getWool().toString() + "_with_" + color.getDye().toString()
|
||||||
power DYE_POWER
|
power DYE_POWER
|
||||||
time DYE_TIME
|
time DYE_TIME
|
||||||
|
@ -70,8 +70,8 @@ class ChemicalReactorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
for (ColoredItem color : ColoredItem.values())
|
for (ColoredItem color : ColoredItem.values())
|
||||||
ColoredItem.createExtendedMixingColorStream(color, false, true).forEach(pair ->
|
ColoredItem.createExtendedMixingColorStream(color, false, true).forEach(pair ->
|
||||||
offerChemicalReactorRecipe {
|
offerChemicalReactorRecipe {
|
||||||
ingredients color.getDye(), new ItemStack(pair.getLeft().getCarpet(), 8)
|
ingredients color.getDye(), stack(pair.getLeft().getCarpet(), 8)
|
||||||
output new ItemStack(pair.getRight().getCarpet(), 8)
|
outputs stack(pair.getRight().getCarpet(), 8)
|
||||||
source pair.getLeft().getCarpet().toString() + "_with_" + color.getDye().toString()
|
source pair.getLeft().getCarpet().toString() + "_with_" + color.getDye().toString()
|
||||||
power DYE_POWER
|
power DYE_POWER
|
||||||
time DYE_TIME
|
time DYE_TIME
|
||||||
|
@ -84,8 +84,8 @@ class ChemicalReactorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
for (ColoredItem color : ColoredItem.values())
|
for (ColoredItem color : ColoredItem.values())
|
||||||
ColoredItem.createExtendedMixingColorStream(color, false, true).forEach(pair ->
|
ColoredItem.createExtendedMixingColorStream(color, false, true).forEach(pair ->
|
||||||
offerChemicalReactorRecipe {
|
offerChemicalReactorRecipe {
|
||||||
ingredients color.getDye(), new ItemStack(pair.getLeft().getConcretePowder(), 8)
|
ingredients color.getDye(), stack(pair.getLeft().getConcretePowder(), 8)
|
||||||
output new ItemStack(pair.getRight().getCarpet(), 8)
|
outputs stack(pair.getRight().getCarpet(), 8)
|
||||||
source pair.getLeft().getConcretePowder().toString() + "_with_" + color.getDye().toString()
|
source pair.getLeft().getConcretePowder().toString() + "_with_" + color.getDye().toString()
|
||||||
power DYE_POWER
|
power DYE_POWER
|
||||||
time DYE_TIME
|
time DYE_TIME
|
||||||
|
@ -101,8 +101,8 @@ class ChemicalReactorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
if (color != ColoredItem.NEUTRAL)
|
if (color != ColoredItem.NEUTRAL)
|
||||||
ColoredItem.createExtendedMixingColorStream(color, true, true).forEach(pair ->
|
ColoredItem.createExtendedMixingColorStream(color, true, true).forEach(pair ->
|
||||||
offerChemicalReactorRecipe {
|
offerChemicalReactorRecipe {
|
||||||
ingredients color.getDye(), new ItemStack(pair.getLeft().getCandle(), 2)
|
ingredients color.getDye(), stack(pair.getLeft().getCandle(), 2)
|
||||||
output new ItemStack(pair.getRight().getCandle(), 2)
|
outputs stack(pair.getRight().getCandle(), 2)
|
||||||
source pair.getLeft().getCandle().toString() + "_with_" + color.getDye().toString()
|
source pair.getLeft().getCandle().toString() + "_with_" + color.getDye().toString()
|
||||||
power DYE_POWER
|
power DYE_POWER
|
||||||
time DYE_TIME
|
time DYE_TIME
|
||||||
|
@ -117,8 +117,8 @@ class ChemicalReactorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
if (color != ColoredItem.NEUTRAL)
|
if (color != ColoredItem.NEUTRAL)
|
||||||
ColoredItem.createExtendedMixingColorStream(color, true, true).forEach(pair ->
|
ColoredItem.createExtendedMixingColorStream(color, true, true).forEach(pair ->
|
||||||
offerChemicalReactorRecipe {
|
offerChemicalReactorRecipe {
|
||||||
ingredients color.getDye(), new ItemStack(pair.getLeft().getGlass(), 12)
|
ingredients color.getDye(), stack(pair.getLeft().getGlass(), 12)
|
||||||
output new ItemStack(pair.getRight().getGlass(), 12)
|
outputs stack(pair.getRight().getGlass(), 12)
|
||||||
source pair.getLeft().getGlass().toString() + "_with_" + color.getDye().toString()
|
source pair.getLeft().getGlass().toString() + "_with_" + color.getDye().toString()
|
||||||
power DYE_POWER
|
power DYE_POWER
|
||||||
time DYE_TIME
|
time DYE_TIME
|
||||||
|
@ -133,8 +133,8 @@ class ChemicalReactorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
if (color != ColoredItem.NEUTRAL)
|
if (color != ColoredItem.NEUTRAL)
|
||||||
ColoredItem.createExtendedMixingColorStream(color, true, true).forEach(pair ->
|
ColoredItem.createExtendedMixingColorStream(color, true, true).forEach(pair ->
|
||||||
offerChemicalReactorRecipe {
|
offerChemicalReactorRecipe {
|
||||||
ingredients color.getDye(), new ItemStack(pair.getLeft().getGlassPane(), 16)
|
ingredients color.getDye(), stack(pair.getLeft().getGlassPane(), 16)
|
||||||
output new ItemStack(pair.getRight().getGlassPane(), 16)
|
outputs stack(pair.getRight().getGlassPane(), 16)
|
||||||
source pair.getLeft().getGlassPane().toString() + "_with_" + color.getDye().toString()
|
source pair.getLeft().getGlassPane().toString() + "_with_" + color.getDye().toString()
|
||||||
power DYE_POWER
|
power DYE_POWER
|
||||||
time DYE_TIME
|
time DYE_TIME
|
||||||
|
@ -149,8 +149,8 @@ class ChemicalReactorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
if (color != ColoredItem.NEUTRAL)
|
if (color != ColoredItem.NEUTRAL)
|
||||||
ColoredItem.createExtendedMixingColorStream(color, true, true).forEach(pair ->
|
ColoredItem.createExtendedMixingColorStream(color, true, true).forEach(pair ->
|
||||||
offerChemicalReactorRecipe {
|
offerChemicalReactorRecipe {
|
||||||
ingredients color.getDye(), new ItemStack(pair.getLeft().getTerracotta(), 8)
|
ingredients color.getDye(), stack(pair.getLeft().getTerracotta(), 8)
|
||||||
output new ItemStack(pair.getRight().getTerracotta(), 8)
|
outputs stack(pair.getRight().getTerracotta(), 8)
|
||||||
source pair.getLeft().getTerracotta().toString() + "_with_" + color.getDye().toString()
|
source pair.getLeft().getTerracotta().toString() + "_with_" + color.getDye().toString()
|
||||||
power DYE_POWER
|
power DYE_POWER
|
||||||
time DYE_TIME
|
time DYE_TIME
|
||||||
|
|
|
@ -49,7 +49,7 @@ class CompressorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
var ingredient = TagConvertible.convertIf(plate.getSource())
|
var ingredient = TagConvertible.convertIf(plate.getSource())
|
||||||
offerCompressorRecipe {
|
offerCompressorRecipe {
|
||||||
ingredients ingredient
|
ingredients ingredient
|
||||||
outputs new ItemStack(plate, 1)
|
outputs stack(plate, 1)
|
||||||
power 10
|
power 10
|
||||||
time 300
|
time 300
|
||||||
criterion getCriterionName(ingredient), getCriterionConditions(ingredient)
|
criterion getCriterionName(ingredient), getCriterionConditions(ingredient)
|
||||||
|
@ -59,7 +59,7 @@ class CompressorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
var ingredient = TagConvertible.convertIf(plate.getSourceBlock())
|
var ingredient = TagConvertible.convertIf(plate.getSourceBlock())
|
||||||
offerCompressorRecipe {
|
offerCompressorRecipe {
|
||||||
ingredients ingredient
|
ingredients ingredient
|
||||||
outputs new ItemStack(plate, 9)
|
outputs stack(plate, 9)
|
||||||
power 10
|
power 10
|
||||||
time 300
|
time 300
|
||||||
source "block"
|
source "block"
|
||||||
|
|
|
@ -69,7 +69,7 @@ class ExtractorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { item, dye ->
|
].each { item, dye ->
|
||||||
offerExtractorRecipe {
|
offerExtractorRecipe {
|
||||||
ingredients item
|
ingredients item
|
||||||
outputs new ItemStack(dye, 2)
|
outputs stack(dye, 2)
|
||||||
source item.toString()
|
source item.toString()
|
||||||
power 10
|
power 10
|
||||||
time 300
|
time 300
|
||||||
|
@ -88,7 +88,7 @@ class ExtractorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { item, dye ->
|
].each { item, dye ->
|
||||||
offerExtractorRecipe {
|
offerExtractorRecipe {
|
||||||
ingredients item
|
ingredients item
|
||||||
outputs new ItemStack(dye, 4)
|
outputs stack(dye, 4)
|
||||||
source item.toString()
|
source item.toString()
|
||||||
power 10
|
power 10
|
||||||
time 300
|
time 300
|
||||||
|
@ -104,7 +104,7 @@ class ExtractorRecipesProvider extends TechRebornRecipesProvider {
|
||||||
(Items.PEARLESCENT_FROGLIGHT) : Items.PURPLE_DYE
|
(Items.PEARLESCENT_FROGLIGHT) : Items.PURPLE_DYE
|
||||||
].each { item, dye ->
|
].each { item, dye ->
|
||||||
offerExtractorRecipe {
|
offerExtractorRecipe {
|
||||||
ingredients new ItemStack(item, 3)
|
ingredients stack(item, 3)
|
||||||
outputs dye
|
outputs dye
|
||||||
source item.toString()
|
source item.toString()
|
||||||
power 10
|
power 10
|
||||||
|
|
|
@ -58,6 +58,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
generateRedSand()
|
generateRedSand()
|
||||||
generateConcretePowder()
|
generateConcretePowder()
|
||||||
generateSawdust()
|
generateSawdust()
|
||||||
|
generateMiscRecipes()
|
||||||
}
|
}
|
||||||
|
|
||||||
void generateVanillaRawMetals() {
|
void generateVanillaRawMetals() {
|
||||||
|
@ -68,7 +69,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { raw, oreTag ->
|
].each { raw, oreTag ->
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients oreTag
|
ingredients oreTag
|
||||||
outputs new ItemStack(raw, 2)
|
outputs stack(raw, 2)
|
||||||
power 2
|
power 2
|
||||||
time 270
|
time 270
|
||||||
criterion getCriterionName(oreTag), getCriterionConditions(oreTag)
|
criterion getCriterionName(oreTag), getCriterionConditions(oreTag)
|
||||||
|
@ -81,7 +82,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
if (!ore.isIndustrial())
|
if (!ore.isIndustrial())
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients ore.asTag()
|
ingredients ore.asTag()
|
||||||
outputs new ItemStack(raw, 2)
|
outputs stack(raw, 2)
|
||||||
power 2
|
power 2
|
||||||
time 270
|
time 270
|
||||||
criterion getCriterionName(ore.asTag()), getCriterionConditions(ore.asTag())
|
criterion getCriterionName(ore.asTag()), getCriterionConditions(ore.asTag())
|
||||||
|
@ -101,7 +102,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
if (gem.getOre() != null)
|
if (gem.getOre() != null)
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients gem.getOre().asTag()
|
ingredients gem.getOre().asTag()
|
||||||
outputs new ItemStack(dust,2)
|
outputs stack(dust,2)
|
||||||
power 2
|
power 2
|
||||||
time 220
|
time 220
|
||||||
source "ore"
|
source "ore"
|
||||||
|
@ -110,7 +111,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
if (gem.getStorageBlock() != null)
|
if (gem.getStorageBlock() != null)
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients gem.getStorageBlock().asTag()
|
ingredients gem.getStorageBlock().asTag()
|
||||||
outputs new ItemStack(dust,9)
|
outputs stack(dust,9)
|
||||||
power 2
|
power 2
|
||||||
time 1500
|
time 1500
|
||||||
source "block"
|
source "block"
|
||||||
|
@ -131,7 +132,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
if (ingot.getStorageBlock() != null)
|
if (ingot.getStorageBlock() != null)
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients ingot.getStorageBlock().asTag()
|
ingredients ingot.getStorageBlock().asTag()
|
||||||
outputs new ItemStack(dust,9)
|
outputs stack(dust,9)
|
||||||
power 5
|
power 5
|
||||||
time 1500
|
time 1500
|
||||||
source "block"
|
source "block"
|
||||||
|
@ -155,7 +156,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {item, count ->
|
].each {item, count ->
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients item
|
ingredients item
|
||||||
outputs new ItemStack(Items.SAND, count)
|
outputs stack(Items.SAND, count)
|
||||||
power count
|
power count
|
||||||
time 200
|
time 200
|
||||||
source item.toString()
|
source item.toString()
|
||||||
|
@ -179,7 +180,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {item, count ->
|
].each {item, count ->
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients item
|
ingredients item
|
||||||
outputs new ItemStack(Items.RED_SAND, count)
|
outputs stack(Items.RED_SAND, count)
|
||||||
power count
|
power count
|
||||||
time 200
|
time 200
|
||||||
source item.toString()
|
source item.toString()
|
||||||
|
@ -232,7 +233,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { item, count ->
|
].each { item, count ->
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients item
|
ingredients item
|
||||||
outputs new ItemStack(TRContent.SmallDusts.SAW, count)
|
outputs stack(TRContent.SmallDusts.SAW, count)
|
||||||
power 3
|
power 3
|
||||||
time 180
|
time 180
|
||||||
source item.id().path
|
source item.id().path
|
||||||
|
@ -246,7 +247,7 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { item, count ->
|
].each { item, count ->
|
||||||
offerGrinderRecipe {
|
offerGrinderRecipe {
|
||||||
ingredients item
|
ingredients item
|
||||||
outputs new ItemStack(TRContent.SmallDusts.SAW, count)
|
outputs stack(TRContent.SmallDusts.SAW, count)
|
||||||
power 3
|
power 3
|
||||||
time 180
|
time 180
|
||||||
source item.toString()
|
source item.toString()
|
||||||
|
@ -254,4 +255,331 @@ class GrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void generateMiscRecipes() {
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 220
|
||||||
|
ingredients stack("minecraft:glowstone")
|
||||||
|
outputs stack("minecraft:glowstone_dust", 4)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients stack("minecraft:netherrack")
|
||||||
|
outputs stack("techreborn:netherrack_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 200
|
||||||
|
ingredients tag("c:lapis_ores")
|
||||||
|
outputs stack("minecraft:lapis_lazuli", 10)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 180
|
||||||
|
ingredients stack("minecraft:gravel")
|
||||||
|
outputs stack("minecraft:sand")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 1080
|
||||||
|
ingredients stack("minecraft:quartz_block")
|
||||||
|
outputs stack("techreborn:quartz_dust", 4)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 220
|
||||||
|
ingredients tag("c:sphalerite_ores")
|
||||||
|
outputs stack("techreborn:sphalerite_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 100
|
||||||
|
ingredients tag("techreborn:calcite_small_dust_material")
|
||||||
|
outputs stack("techreborn:calcite_small_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 300
|
||||||
|
ingredients stack("minecraft:shroomlight")
|
||||||
|
outputs stack("techreborn:glowstone_small_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 230
|
||||||
|
ingredients stack("minecraft:coal")
|
||||||
|
outputs stack("techreborn:coal_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients tag("c:emerald_ores")
|
||||||
|
outputs stack("minecraft:emerald")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 170
|
||||||
|
ingredients stack("minecraft:bone")
|
||||||
|
outputs stack("minecraft:bone_meal", 6)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 180
|
||||||
|
ingredients tag("techreborn:gravel_material")
|
||||||
|
outputs stack("minecraft:gravel")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 3
|
||||||
|
time 300
|
||||||
|
ingredients tag("minecraft:wool")
|
||||||
|
outputs stack("minecraft:string", 4)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 400
|
||||||
|
ingredients tag("c:froglights")
|
||||||
|
outputs stack("minecraft:prismarine_crystals", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 400
|
||||||
|
ingredients stack("minecraft:sea_lantern")
|
||||||
|
outputs stack("minecraft:prismarine_crystals", 4)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 180
|
||||||
|
ingredients stack("minecraft:clay_ball")
|
||||||
|
outputs stack("techreborn:clay_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients tag("c:pyrite_ores")
|
||||||
|
outputs stack("techreborn:pyrite_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients stack("minecraft:blaze_rod")
|
||||||
|
outputs stack("minecraft:blaze_powder", 4)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 150
|
||||||
|
ingredients stack("minecraft:glow_berries", 4)
|
||||||
|
outputs stack("techreborn:glowstone_small_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients stack("minecraft:andesite")
|
||||||
|
outputs stack("techreborn:andesite_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients stack("minecraft:emerald")
|
||||||
|
outputs stack("techreborn:emerald_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 270
|
||||||
|
ingredients tag("c:cinnabar_ores")
|
||||||
|
outputs stack("techreborn:cinnabar_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 220
|
||||||
|
ingredients tag("c:sodalite_ores")
|
||||||
|
outputs stack("techreborn:sodalite_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients stack("minecraft:ender_pearl")
|
||||||
|
outputs stack("techreborn:ender_pearl_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients stack("minecraft:ender_eye")
|
||||||
|
outputs stack("techreborn:ender_eye_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients tag("c:sponges")
|
||||||
|
outputs stack("techreborn:sponge_piece", 5)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 400
|
||||||
|
ingredients stack("minecraft:coal_block")
|
||||||
|
outputs stack("techreborn:coal_dust", 9)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients stack("minecraft:crimson_nylium")
|
||||||
|
outputs stack("techreborn:netherrack_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 230
|
||||||
|
ingredients stack("minecraft:charcoal")
|
||||||
|
outputs stack("techreborn:charcoal_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 400
|
||||||
|
ingredients tag("techreborn:calcite_dust_material")
|
||||||
|
outputs stack("techreborn:calcite_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients tag("c:diamond_ores")
|
||||||
|
outputs stack("minecraft:diamond")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients stack("minecraft:amethyst_block")
|
||||||
|
outputs stack("techreborn:amethyst_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 500
|
||||||
|
ingredients stack("minecraft:conduit")
|
||||||
|
outputs stack("techreborn:calcite_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients tag("c:bauxite_ores")
|
||||||
|
outputs stack("techreborn:bauxite_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients stack("minecraft:end_stone")
|
||||||
|
outputs stack("techreborn:endstone_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients stack("minecraft:ancient_debris")
|
||||||
|
outputs stack("minecraft:netherite_scrap", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 1440
|
||||||
|
ingredients stack("minecraft:diorite")
|
||||||
|
outputs stack("techreborn:diorite_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 270
|
||||||
|
ingredients tag("c:galena_ores")
|
||||||
|
outputs stack("techreborn:galena_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 220
|
||||||
|
ingredients tag("c:sulfur_ores")
|
||||||
|
outputs stack("techreborn:sulfur_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 200
|
||||||
|
ingredients tag("c:sulfurs")
|
||||||
|
outputs stack("techreborn:sulfur_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 400
|
||||||
|
ingredients stack("minecraft:prismarine_bricks")
|
||||||
|
outputs stack("minecraft:prismarine_shard", 7)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 180
|
||||||
|
ingredients tag("c:limestone")
|
||||||
|
outputs stack("techreborn:marble_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients stack("minecraft:granite")
|
||||||
|
outputs stack("techreborn:granite_dust", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients tag("c:redstone_ores")
|
||||||
|
outputs stack("minecraft:redstone", 8)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients stack("minecraft:nether_quartz_ore")
|
||||||
|
outputs stack("minecraft:quartz", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 180
|
||||||
|
ingredients tag("c:marble")
|
||||||
|
outputs stack("techreborn:marble_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients stack("minecraft:diamond")
|
||||||
|
outputs stack("techreborn:diamond_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 270
|
||||||
|
ingredients stack("minecraft:quartz")
|
||||||
|
outputs stack("techreborn:quartz_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 6
|
||||||
|
time 400
|
||||||
|
ingredients stack("minecraft:obsidian")
|
||||||
|
outputs stack("techreborn:obsidian_dust", 4)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 200
|
||||||
|
ingredients tag("c:coal_ores")
|
||||||
|
outputs stack("minecraft:coal", 2)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 4
|
||||||
|
time 200
|
||||||
|
ingredients stack("minecraft:warped_nylium")
|
||||||
|
outputs stack("techreborn:netherrack_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 400
|
||||||
|
ingredients stack("minecraft:prismarine")
|
||||||
|
outputs stack("minecraft:prismarine_shard", 3)
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 270
|
||||||
|
ingredients stack("minecraft:flint")
|
||||||
|
outputs stack("techreborn:flint_dust")
|
||||||
|
}
|
||||||
|
offerGrinderRecipe {
|
||||||
|
power 2
|
||||||
|
time 180
|
||||||
|
ingredients tag("c:basalt")
|
||||||
|
outputs stack("techreborn:basalt_dust")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,21 +28,22 @@ import net.minecraft.util.Identifier
|
||||||
import reborncore.common.fluid.FluidValue
|
import reborncore.common.fluid.FluidValue
|
||||||
import reborncore.common.fluid.container.FluidInstance
|
import reborncore.common.fluid.container.FluidInstance
|
||||||
import techreborn.api.recipe.recipes.IndustrialGrinderRecipe
|
import techreborn.api.recipe.recipes.IndustrialGrinderRecipe
|
||||||
|
import techreborn.datagen.recipes.TechRebornRecipesProvider
|
||||||
import techreborn.datagen.recipes.machine.MachineRecipeWithFluidJsonFactory
|
import techreborn.datagen.recipes.machine.MachineRecipeWithFluidJsonFactory
|
||||||
import techreborn.init.ModRecipes
|
import techreborn.init.ModRecipes
|
||||||
|
|
||||||
class IndustrialGrinderRecipeJsonFactory extends MachineRecipeWithFluidJsonFactory<IndustrialGrinderRecipe> {
|
class IndustrialGrinderRecipeJsonFactory extends MachineRecipeWithFluidJsonFactory<IndustrialGrinderRecipe> {
|
||||||
|
|
||||||
protected IndustrialGrinderRecipeJsonFactory() {
|
protected IndustrialGrinderRecipeJsonFactory(TechRebornRecipesProvider provider) {
|
||||||
super(ModRecipes.INDUSTRIAL_GRINDER)
|
super(ModRecipes.INDUSTRIAL_GRINDER, provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
static IndustrialGrinderRecipeJsonFactory create() {
|
static IndustrialGrinderRecipeJsonFactory create(TechRebornRecipesProvider provider) {
|
||||||
return new IndustrialGrinderRecipeJsonFactory()
|
return new IndustrialGrinderRecipeJsonFactory(provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
static IndustrialGrinderRecipeJsonFactory createIndustrialGrinder(@DelegatesTo(value = IndustrialGrinderRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
static IndustrialGrinderRecipeJsonFactory createIndustrialGrinder(TechRebornRecipesProvider provider, @DelegatesTo(value = IndustrialGrinderRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
def factory = new IndustrialGrinderRecipeJsonFactory()
|
def factory = new IndustrialGrinderRecipeJsonFactory(provider)
|
||||||
closure.setDelegate(factory)
|
closure.setDelegate(factory)
|
||||||
closure.call(factory)
|
closure.call(factory)
|
||||||
return factory
|
return factory
|
||||||
|
|
|
@ -72,7 +72,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {boots, smallDust ->
|
].each {boots, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients boots
|
ingredients boots
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count-1), new ItemStack(smallDust, 2)
|
outputs stack(dustMap.get(smallDust), count-1), stack(smallDust, 2)
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -81,7 +81,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients boots
|
ingredients boots
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count+1), smallDust
|
outputs stack(dustMap.get(smallDust), count+1), smallDust
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -102,7 +102,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {chestplate, smallDust ->
|
].each {chestplate, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients chestplate
|
ingredients chestplate
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count-1), new ItemStack(smallDust, 2)
|
outputs stack(dustMap.get(smallDust), count-1), stack(smallDust, 2)
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -111,7 +111,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients chestplate
|
ingredients chestplate
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count+1), smallDust
|
outputs stack(dustMap.get(smallDust), count+1), smallDust
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -132,7 +132,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {helmet, smallDust ->
|
].each {helmet, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients helmet
|
ingredients helmet
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count-1), new ItemStack(smallDust, 2)
|
outputs stack(dustMap.get(smallDust), count-1), stack(smallDust, 2)
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -141,7 +141,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients helmet
|
ingredients helmet
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count+1), smallDust
|
outputs stack(dustMap.get(smallDust), count+1), smallDust
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -162,7 +162,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {leggings, smallDust ->
|
].each {leggings, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients leggings
|
ingredients leggings
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count-1), new ItemStack(smallDust, 2)
|
outputs stack(dustMap.get(smallDust), count-1), stack(smallDust, 2)
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -171,7 +171,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients leggings
|
ingredients leggings
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count+1), smallDust
|
outputs stack(dustMap.get(smallDust), count+1), smallDust
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -189,7 +189,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {horseArmor, smallDust ->
|
].each {horseArmor, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients horseArmor
|
ingredients horseArmor
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count-1), new ItemStack(smallDust, 2)
|
outputs stack(dustMap.get(smallDust), count-1), stack(smallDust, 2)
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -198,7 +198,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients horseArmor
|
ingredients horseArmor
|
||||||
outputs new ItemStack(dustMap.get(smallDust), count+1), smallDust
|
outputs stack(dustMap.get(smallDust), count+1), smallDust
|
||||||
power ARMOR_POWER
|
power ARMOR_POWER
|
||||||
time ARMOR_TIME
|
time ARMOR_TIME
|
||||||
fluidAmount ARMOR_FLUID_AMOUNT
|
fluidAmount ARMOR_FLUID_AMOUNT
|
||||||
|
@ -218,7 +218,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {sword, smallDust ->
|
].each {sword, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients sword
|
ingredients sword
|
||||||
outputs new ItemStack(smallDust, 2), TRContent.SmallDusts.SAW
|
outputs stack(smallDust, 2), TRContent.SmallDusts.SAW
|
||||||
power TOOL_POWER
|
power TOOL_POWER
|
||||||
time TOOL_TIME
|
time TOOL_TIME
|
||||||
fluidAmount TOOL_FLUID_AMOUNT
|
fluidAmount TOOL_FLUID_AMOUNT
|
||||||
|
@ -256,7 +256,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients shovel
|
ingredients shovel
|
||||||
outputs new ItemStack(smallDust, 2), TRContent.SmallDusts.SAW
|
outputs stack(smallDust, 2), TRContent.SmallDusts.SAW
|
||||||
power TOOL_POWER
|
power TOOL_POWER
|
||||||
time TOOL_TIME
|
time TOOL_TIME
|
||||||
fluidAmount TOOL_FLUID_AMOUNT
|
fluidAmount TOOL_FLUID_AMOUNT
|
||||||
|
@ -276,7 +276,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {hoe, smallDust ->
|
].each {hoe, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients hoe
|
ingredients hoe
|
||||||
outputs new ItemStack(smallDust, 2), TRContent.SmallDusts.SAW
|
outputs stack(smallDust, 2), TRContent.SmallDusts.SAW
|
||||||
power TOOL_POWER
|
power TOOL_POWER
|
||||||
time TOOL_TIME
|
time TOOL_TIME
|
||||||
fluidAmount TOOL_FLUID_AMOUNT
|
fluidAmount TOOL_FLUID_AMOUNT
|
||||||
|
@ -305,7 +305,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {axe, smallDust ->
|
].each {axe, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients axe
|
ingredients axe
|
||||||
outputs new ItemStack(smallDust, 3), TRContent.SmallDusts.SAW
|
outputs stack(smallDust, 3), TRContent.SmallDusts.SAW
|
||||||
power TOOL_POWER
|
power TOOL_POWER
|
||||||
time TOOL_TIME
|
time TOOL_TIME
|
||||||
fluidAmount TOOL_FLUID_AMOUNT
|
fluidAmount TOOL_FLUID_AMOUNT
|
||||||
|
@ -314,7 +314,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients axe
|
ingredients axe
|
||||||
outputs dustMap.get(smallDust), new ItemStack(smallDust, 3), TRContent.SmallDusts.SAW
|
outputs dustMap.get(smallDust), stack(smallDust, 3), TRContent.SmallDusts.SAW
|
||||||
power TOOL_POWER
|
power TOOL_POWER
|
||||||
time TOOL_TIME
|
time TOOL_TIME
|
||||||
fluidAmount TOOL_FLUID_AMOUNT
|
fluidAmount TOOL_FLUID_AMOUNT
|
||||||
|
@ -334,7 +334,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {pickaxe, smallDust ->
|
].each {pickaxe, smallDust ->
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients pickaxe
|
ingredients pickaxe
|
||||||
outputs new ItemStack(smallDust, 3), TRContent.SmallDusts.SAW
|
outputs stack(smallDust, 3), TRContent.SmallDusts.SAW
|
||||||
power TOOL_POWER
|
power TOOL_POWER
|
||||||
time TOOL_TIME
|
time TOOL_TIME
|
||||||
fluidAmount TOOL_FLUID_AMOUNT
|
fluidAmount TOOL_FLUID_AMOUNT
|
||||||
|
@ -343,7 +343,7 @@ class IndustrialGrinderRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialGrinderRecipe {
|
offerIndustrialGrinderRecipe {
|
||||||
ingredients pickaxe
|
ingredients pickaxe
|
||||||
outputs dustMap.get(smallDust), new ItemStack(smallDust, 3), TRContent.SmallDusts.SAW
|
outputs dustMap.get(smallDust), stack(smallDust, 3), TRContent.SmallDusts.SAW
|
||||||
power TOOL_POWER
|
power TOOL_POWER
|
||||||
time TOOL_TIME
|
time TOOL_TIME
|
||||||
fluidAmount TOOL_FLUID_AMOUNT
|
fluidAmount TOOL_FLUID_AMOUNT
|
||||||
|
|
|
@ -29,21 +29,22 @@ import net.minecraft.util.Identifier
|
||||||
import reborncore.common.fluid.FluidValue
|
import reborncore.common.fluid.FluidValue
|
||||||
import reborncore.common.fluid.container.FluidInstance
|
import reborncore.common.fluid.container.FluidInstance
|
||||||
import techreborn.api.recipe.recipes.IndustrialSawmillRecipe
|
import techreborn.api.recipe.recipes.IndustrialSawmillRecipe
|
||||||
|
import techreborn.datagen.recipes.TechRebornRecipesProvider
|
||||||
import techreborn.datagen.recipes.machine.MachineRecipeWithFluidJsonFactory
|
import techreborn.datagen.recipes.machine.MachineRecipeWithFluidJsonFactory
|
||||||
import techreborn.init.ModRecipes
|
import techreborn.init.ModRecipes
|
||||||
|
|
||||||
class IndustrialSawmillRecipeJsonFactory extends MachineRecipeWithFluidJsonFactory<IndustrialSawmillRecipe> {
|
class IndustrialSawmillRecipeJsonFactory extends MachineRecipeWithFluidJsonFactory<IndustrialSawmillRecipe> {
|
||||||
|
|
||||||
protected IndustrialSawmillRecipeJsonFactory() {
|
protected IndustrialSawmillRecipeJsonFactory(TechRebornRecipesProvider provider) {
|
||||||
super(ModRecipes.INDUSTRIAL_SAWMILL)
|
super(ModRecipes.INDUSTRIAL_SAWMILL, provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
static IndustrialSawmillRecipeJsonFactory create() {
|
static IndustrialSawmillRecipeJsonFactory create(TechRebornRecipesProvider provider) {
|
||||||
return new IndustrialSawmillRecipeJsonFactory()
|
return new IndustrialSawmillRecipeJsonFactory(provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
static IndustrialSawmillRecipeJsonFactory createIndustrialSawmill(@DelegatesTo(value = IndustrialSawmillRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
static IndustrialSawmillRecipeJsonFactory createIndustrialSawmill(TechRebornRecipesProvider provider, @DelegatesTo(value = IndustrialSawmillRecipeJsonFactory.class, strategy = Closure.DELEGATE_FIRST) Closure closure) {
|
||||||
def factory = new IndustrialSawmillRecipeJsonFactory()
|
def factory = new IndustrialSawmillRecipeJsonFactory(provider)
|
||||||
closure.setDelegate(factory)
|
closure.setDelegate(factory)
|
||||||
closure.call(factory)
|
closure.call(factory)
|
||||||
return factory
|
return factory
|
||||||
|
|
|
@ -57,7 +57,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {logs, planks ->
|
].each {logs, planks ->
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients logs
|
ingredients logs
|
||||||
outputs new ItemStack(planks,4), new ItemStack(TRContent.Dusts.SAW, 3)
|
outputs stack(planks,4), stack(TRContent.Dusts.SAW, 3)
|
||||||
power 40
|
power 40
|
||||||
time 200
|
time 200
|
||||||
fluidAmount 1000 // in millibuckets
|
fluidAmount 1000 // in millibuckets
|
||||||
|
@ -65,7 +65,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients ItemTags.BAMBOO_BLOCKS
|
ingredients ItemTags.BAMBOO_BLOCKS
|
||||||
outputs new ItemStack(Items.BAMBOO_PLANKS,2), new ItemStack(TRContent.Dusts.SAW, 1)
|
outputs stack(Items.BAMBOO_PLANKS,2), stack(TRContent.Dusts.SAW, 1)
|
||||||
power 40
|
power 40
|
||||||
time 100
|
time 100
|
||||||
fluidAmount 500 // in millibuckets
|
fluidAmount 500 // in millibuckets
|
||||||
|
@ -85,7 +85,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { stairs, slab ->
|
].each { stairs, slab ->
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients stairs
|
ingredients stairs
|
||||||
outputs slab, new ItemStack(TRContent.Dusts.SAW, 2)
|
outputs slab, stack(TRContent.Dusts.SAW, 2)
|
||||||
power 30
|
power 30
|
||||||
time 100
|
time 100
|
||||||
fluidAmount 250 // in millibuckets
|
fluidAmount 250 // in millibuckets
|
||||||
|
@ -99,7 +99,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { stairs, slab ->
|
].each { stairs, slab ->
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients stairs
|
ingredients stairs
|
||||||
outputs slab, new ItemStack(TRContent.Dusts.SAW, 2)
|
outputs slab, stack(TRContent.Dusts.SAW, 2)
|
||||||
power 30
|
power 30
|
||||||
time 100
|
time 100
|
||||||
fluidAmount 250 // in millibuckets
|
fluidAmount 250 // in millibuckets
|
||||||
|
@ -122,7 +122,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { slab, plate ->
|
].each { slab, plate ->
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients slab
|
ingredients slab
|
||||||
outputs new ItemStack(plate, 2), new ItemStack(TRContent.Dusts.SAW, 2)
|
outputs stack(plate, 2), stack(TRContent.Dusts.SAW, 2)
|
||||||
power 30
|
power 30
|
||||||
time 200
|
time 200
|
||||||
fluidAmount 250 // in millibuckets
|
fluidAmount 250 // in millibuckets
|
||||||
|
@ -136,7 +136,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { slab, plate ->
|
].each { slab, plate ->
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients slab
|
ingredients slab
|
||||||
outputs new ItemStack(plate, 2), new ItemStack(TRContent.Dusts.SAW, 2)
|
outputs stack(plate, 2), stack(TRContent.Dusts.SAW, 2)
|
||||||
power 30
|
power 30
|
||||||
time 200
|
time 200
|
||||||
fluidAmount 250 // in millibuckets
|
fluidAmount 250 // in millibuckets
|
||||||
|
@ -157,7 +157,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each { item, count ->
|
].each { item, count ->
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients item
|
ingredients item
|
||||||
outputs new ItemStack(TRContent.Dusts.SAW, count)
|
outputs stack(TRContent.Dusts.SAW, count)
|
||||||
power 30
|
power 30
|
||||||
time 200
|
time 200
|
||||||
fluidAmount 125*count // in millibuckets
|
fluidAmount 125*count // in millibuckets
|
||||||
|
@ -177,7 +177,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
].each {item, count ->
|
].each {item, count ->
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients item
|
ingredients item
|
||||||
outputs new ItemStack(TRContent.SmallDusts.SAW, count)
|
outputs stack(TRContent.SmallDusts.SAW, count)
|
||||||
power 30
|
power 30
|
||||||
time 100
|
time 100
|
||||||
fluidAmount 100 // in millibuckets
|
fluidAmount 100 // in millibuckets
|
||||||
|
@ -187,7 +187,7 @@ class IndustrialSawmillRecipesProvider extends TechRebornRecipesProvider {
|
||||||
}
|
}
|
||||||
offerIndustrialSawmillRecipe {
|
offerIndustrialSawmillRecipe {
|
||||||
ingredients ItemTags.WOODEN_BUTTONS
|
ingredients ItemTags.WOODEN_BUTTONS
|
||||||
outputs new ItemStack(TRContent.SmallDusts.SAW, 1)
|
outputs stack(TRContent.SmallDusts.SAW, 1)
|
||||||
power 20
|
power 20
|
||||||
time 50
|
time 50
|
||||||
fluidAmount 50 // in millibuckets
|
fluidAmount 50 // in millibuckets
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/amethyst_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_amethyst_block": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:amethyst_block"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/amethyst_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_amethyst_block",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/andesite_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_andesite": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:andesite"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/andesite_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_andesite",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/basalt_dust_from_basalt"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_basalt": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:basalt"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/basalt_dust_from_basalt"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_basalt",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/bauxite_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_bauxite_ore": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:bauxite_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/bauxite_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_bauxite_ore",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/blaze_powder"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_blaze_rod": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:blaze_rod"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/blaze_powder"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_blaze_rod",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/bone_meal"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_bone": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:bone"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/bone_meal"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_bone",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/calcite_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_calcite_dust_material": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "techreborn:calcite_dust_material"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/calcite_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_calcite_dust_material",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/calcite_dust_from_conduit"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_conduit": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:conduit"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/calcite_dust_from_conduit"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_conduit",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/calcite_small_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_calcite_small_dust_material": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "techreborn:calcite_small_dust_material"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/calcite_small_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_calcite_small_dust_material",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/charcoal_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_charcoal": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:charcoal"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/charcoal_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_charcoal",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/cinnabar_dust_dust_from_ore"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_cinnabar_ore": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:cinnabar_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/cinnabar_dust_dust_from_ore"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_cinnabar_ore",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/clay_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_clay_ball": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:clay_ball"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/clay_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_clay_ball",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/coal"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_coal_ores": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:coal_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/coal"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_coal_ores",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/coal_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_coal": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:coal"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/coal_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_coal",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/coal_dust_from_block"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_coal_block": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:coal_block"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/coal_dust_from_block"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_coal_block",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/diamond"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_diamond_ores": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:diamond_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/diamond"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_diamond_ores",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/diamond_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_diamond": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:diamond"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/diamond_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_diamond",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/diorite_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_diorite": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:diorite"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/diorite_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_diorite",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/emerald"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_emerald_ores": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:emerald_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/emerald"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_emerald_ores",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/emerald_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_emerald": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:emerald"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/emerald_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_emerald",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/ender_pearl_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_ender_pearl": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:ender_pearl"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/ender_pearl_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_ender_pearl",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/endstone_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_endstone": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:end_stone"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/endstone_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_endstone",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/flint_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_flint": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:flint"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/flint_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_flint",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/galena_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_galena_ore": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:galena_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/galena_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_galena_ore",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/glowstone_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_glowstone": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:glowstone"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/glowstone_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_glowstone",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/glowstone_small_dust_from_glow_berries"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_glow_berries": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:glow_berries"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/glowstone_small_dust_from_glow_berries"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_glow_berries",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/glowstone_small_dust_from_shroomlight"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_shroomlight": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:shroomlight"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/glowstone_small_dust_from_shroomlight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_shroomlight",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/granite_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_granite": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:granite"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/granite_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_granite",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/gravel"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_gravel_material": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "techreborn:gravel_material"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/gravel"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_gravel_material",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/lapis_lazuli"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_lapis_lazuli_ores": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:lapis_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/lapis_lazuli"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_lapis_lazuli_ores",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/marble_dust_from_limestone"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_limestone": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:limestone"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/marble_dust_from_limestone"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_limestone",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"fabric:load_conditions": [
|
|
||||||
{
|
|
||||||
"condition": "fabric:item_tags_populated",
|
|
||||||
"values": [
|
|
||||||
"c:limestone"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/marble_dust_from_marble"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_marble": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:marble"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/marble_dust_from_marble"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_marble",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"fabric:load_conditions": [
|
|
||||||
{
|
|
||||||
"condition": "fabric:item_tags_populated",
|
|
||||||
"values": [
|
|
||||||
"c:marble"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/netherite_scrap"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_ancient_debris": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:ancient_debris"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/netherite_scrap"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_ancient_debris",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/netherrack_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_netherrack": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:netherrack"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/netherrack_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_netherrack",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/netherrack_dust_from_crimson"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_crimson_nylium": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:crimson_nylium"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/netherrack_dust_from_crimson"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_crimson_nylium",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/netherrack_dust_from_warped"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_warped_nylium": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:warped_nylium"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/netherrack_dust_from_warped"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_warped_nylium",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/obsidian_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_obsidian": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:obsidian"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/obsidian_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_obsidian",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/prismarine_crystals"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_prismarine_shard": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:prismarine_shard"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/prismarine_crystals"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_prismarine_shard",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/prismarine_crystals_from_froglight"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_froglight": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:froglight"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/prismarine_crystals_from_froglight"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_froglight",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/prismarine_crystals_from_sea_lantern"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_sea_lantern": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:sea_lantern"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/prismarine_crystals_from_sea_lantern"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_sea_lantern",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/prismarine_shards_from_prismarine"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_prismarine": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:prismarine"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/prismarine_shards_from_prismarine"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_prismarine",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/prismarine_shards_from_prismarine_bricks"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_prismarine": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:prismarine"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/prismarine_shards_from_prismarine_bricks"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_prismarine",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/pyrite_dust_from_ore"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_pyrite_ore": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:pyrite_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/pyrite_dust_from_ore"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_pyrite_ore",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/quartz"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_nether_quartz_ore": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:nether_quartz_ore"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/quartz"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_nether_quartz_ore",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/quartz_dust_from_gem"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_quartz": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:quartz"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/quartz_dust_from_gem"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_quartz",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/quartz_dust_from_quartz_block"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_quartz": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:quartz_block"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/quartz_dust_from_quartz_block"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_quartz",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/redstone"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_redstone_ores": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:redstone_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/redstone"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_redstone_ores",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/sand"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_gravel": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"items": ["minecraft:gravel"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/sand"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_gravel",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/sodalite_dust_from_ore"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_sodalite_ore": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:sodalite_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/sodalite_dust_from_ore"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_sodalite_ore",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/sphalerite_dust_from_ore"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_sphalerite_ore": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:sphalerite_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/sphalerite_dust_from_ore"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_sphalerite_ore",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/sponge_piece"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_sponges": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:sponges"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/sponge_piece"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_sponges",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/string_from_wool"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_wool": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "minecraft:wool"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/string_from_wool"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_wool",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/sulfur_dust"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_sulfur": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:sulfurs"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/sulfur_dust"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_sulfur",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"fabric:load_conditions": [
|
|
||||||
{
|
|
||||||
"condition": "fabric:item_tags_populated",
|
|
||||||
"values": [
|
|
||||||
"c:sulfurs"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
"parent": "minecraft:recipes/root",
|
|
||||||
"rewards": {
|
|
||||||
"recipes": [
|
|
||||||
"techreborn:grinder/sulfur_dust_from_ore"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"criteria": {
|
|
||||||
"has_sulfur_ore": {
|
|
||||||
"trigger": "minecraft:inventory_changed",
|
|
||||||
"conditions": {
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"tag": "c:sulfur_ores"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has_the_recipe": {
|
|
||||||
"trigger": "minecraft:recipe_unlocked",
|
|
||||||
"conditions": {
|
|
||||||
"recipe": "techreborn:grinder/sulfur_dust_from_ore"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requirements": [
|
|
||||||
[
|
|
||||||
"has_sulfur_ore",
|
|
||||||
"has_the_recipe"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"fabric:load_conditions": [
|
|
||||||
{
|
|
||||||
"condition": "fabric:item_tags_populated",
|
|
||||||
"values": [
|
|
||||||
"c:sulfur_ores"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:amethyst_block"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:amethyst_dust",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:andesite"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:andesite_dust",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 180,
|
|
||||||
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"tag": "c:basalt"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "techreborn:basalt_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"tag": "c:bauxite_ores"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:bauxite_dust",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 200,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:blaze_rod"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:blaze_powder",
|
|
||||||
"count": 4
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 170,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:bone"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:bone_meal",
|
|
||||||
"count": 6
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 400,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"tag": "techreborn:calcite_dust_material"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "techreborn:calcite_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 500,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:conduit"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "techreborn:calcite_dust",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 100,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"tag": "techreborn:calcite_small_dust_material"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "techreborn:calcite_small_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 230,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:charcoal"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "techreborn:charcoal_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"tag": "c:cinnabar_ores"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:cinnabar_dust",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 180,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:clay_ball"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "techreborn:clay_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 200,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"tag": "c:coal_ores"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:coal",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 230,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:coal"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "techreborn:coal_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 400,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:coal_block"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "techreborn:coal_dust",
|
|
||||||
"count": 9
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"tag": "c:diamond_ores"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:diamond"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:diamond"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:diamond_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 1440,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:diorite",
|
|
||||||
"count": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:diorite_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"tag": "c:emerald_ores"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:emerald"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:emerald"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:emerald_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 200,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:ender_eye"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:ender_eye_dust",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 200,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:ender_pearl"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:ender_pearl_dust",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 4,
|
|
||||||
"time": 200,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:end_stone"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:endstone_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"item": "minecraft:flint"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:flint_dust"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 270,
|
|
||||||
"ingredients": [
|
|
||||||
{
|
|
||||||
"tag": "c:galena_ores"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results": [
|
|
||||||
{
|
|
||||||
"item": "techreborn:galena_dust",
|
|
||||||
"count": 2
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"type": "techreborn:grinder",
|
|
||||||
"power": 2,
|
|
||||||
"time": 220,
|
|
||||||
"ingredients" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:glowstone"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"results" : [
|
|
||||||
{
|
|
||||||
"item": "minecraft:glowstone_dust",
|
|
||||||
"count": 4
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue