Skip to content

Commit dc23794

Browse files
committed
wip rolling and liquid burning recipe datagen
1 parent ade486d commit dc23794

File tree

13 files changed

+334
-103
lines changed

13 files changed

+334
-103
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "createaddition:liquid_burning",
3+
"burnTime": 24000,
4+
"input": {
5+
"type": "fluid_tag",
6+
"amount": 1000,
7+
"fluid_tag": "c:biofuel"
8+
}
9+
}

src/main/java/com/mrh0/createaddition/datagen/CreateAdditionsDataGen.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public static void gatherData(GatherDataEvent event) {
4444
generator.addProvider(event.includeServer(), new CAPressingRecipeGen(output, lookupProvider));
4545

4646
generator.addProvider(event.includeServer(), new CAChargingRecipeProvider(output,lookupProvider));
47+
generator.addProvider(event.includeServer(), new CARollingRecipeProvider(output,lookupProvider));
48+
generator.addProvider(event.includeServer(), new CALiquidBurningRecipeProvider(output,lookupProvider));
4749

4850
generator.addProvider(event.includeServer(), new DatapackBuiltinEntriesProvider(output, lookupProvider, new RegistrySetBuilder()
4951
.add(Registries.DAMAGE_TYPE, CADamageTypesDatagen::bootstrap)

src/main/java/com/mrh0/createaddition/datagen/RecipeBuilders/CAChargingRecipeBuilder.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ public CAChargingRecipeBuilder(ItemStack result) {
2626
this.maxChargeRate = 0;
2727
}
2828

29-
30-
3129
public static CAChargingRecipeBuilder charging(ItemStack itemStack) {
3230
return new CAChargingRecipeBuilder(itemStack);
3331
}
@@ -89,7 +87,7 @@ public CAChargingRecipeBuilder maxChargeRate(int maxChargeRate) {
8987
@Override
9088
public void save(RecipeOutput recipeOutput, ResourceLocation resourceLocation) {
9189
ChargingRecipe chargingRecipe = new ChargingRecipe(
92-
Objects.requireNonNullElse(this.group,""),
90+
Objects.requireNonNullElse(this.group, ""),
9391
this.ingredient,
9492
this.result,
9593
this.energy,
@@ -105,6 +103,6 @@ public void save(RecipeOutput recipeOutput) {
105103

106104
@Override
107105
public void save(RecipeOutput recipeOutput, String id) {
108-
save(recipeOutput, ResourceLocation.fromNamespaceAndPath(CreateAddition.MODID,id));
106+
save(recipeOutput, ResourceLocation.fromNamespaceAndPath(CreateAddition.MODID, id));
109107
}
110108
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package com.mrh0.createaddition.datagen.RecipeBuilders;
2+
3+
import com.mrh0.createaddition.CreateAddition;
4+
import com.mrh0.createaddition.datagen.TagProvider.CATagRegister;
5+
import com.mrh0.createaddition.index.CAFluids;
6+
import com.mrh0.createaddition.recipe.charging.ChargingRecipe;
7+
import com.mrh0.createaddition.recipe.liquid_burning.LiquidBurningRecipe;
8+
import com.simibubi.create.foundation.fluid.FluidIngredient;
9+
import net.minecraft.core.HolderLookup;
10+
import net.minecraft.core.registries.BuiltInRegistries;
11+
import net.minecraft.data.recipes.RecipeOutput;
12+
import net.minecraft.resources.ResourceKey;
13+
import net.minecraft.resources.ResourceLocation;
14+
import net.minecraft.tags.TagKey;
15+
import net.minecraft.world.item.Item;
16+
import net.minecraft.world.item.ItemStack;
17+
import net.minecraft.world.item.crafting.Ingredient;
18+
import net.minecraft.world.item.enchantment.Enchantment;
19+
import net.minecraft.world.level.ItemLike;
20+
import net.minecraft.world.level.material.Fluid;
21+
22+
import java.util.Objects;
23+
24+
public class CALiquidBurningRecipeBuilder extends CARecipeBuilder {
25+
protected FluidIngredient ingredient;
26+
protected int burnTime;
27+
protected boolean superheated;
28+
29+
public CALiquidBurningRecipeBuilder(int burnTime) {
30+
super(ItemStack.EMPTY);
31+
this.ingredient = FluidIngredient.EMPTY;
32+
this.burnTime = burnTime;
33+
this.superheated = false;
34+
}
35+
36+
public static CALiquidBurningRecipeBuilder liquidBurning(int burnTime) {
37+
return new CALiquidBurningRecipeBuilder(burnTime);
38+
}
39+
40+
public CALiquidBurningRecipeBuilder require(FluidIngredient ingredient) {
41+
this.ingredient = ingredient;
42+
return this;
43+
}
44+
45+
public CALiquidBurningRecipeBuilder require(Fluid fluid) {
46+
this.ingredient = FluidIngredient.fromFluid(fluid, 1000);
47+
return this;
48+
}
49+
50+
public CALiquidBurningRecipeBuilder require(TagKey<Fluid> fluidTag) {
51+
this.ingredient = FluidIngredient.fromTag(fluidTag, 1000);
52+
return this;
53+
}
54+
55+
public CALiquidBurningRecipeBuilder superheated() {
56+
this.superheated = true;
57+
return this;
58+
}
59+
60+
@Override
61+
public void save(RecipeOutput recipeOutput, ResourceLocation resourceLocation) {
62+
LiquidBurningRecipe chargingRecipe = new LiquidBurningRecipe(
63+
Objects.requireNonNullElse(this.group, ""),
64+
this.ingredient,
65+
this.burnTime,
66+
this.superheated
67+
);
68+
recipeOutput.accept(resourceLocation.withPrefix("liquid_burning/"), chargingRecipe, null);
69+
}
70+
71+
@Override
72+
public void save(RecipeOutput recipeOutput, String id) {
73+
save(recipeOutput, ResourceLocation.fromNamespaceAndPath(CreateAddition.MODID, id));
74+
}
75+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package com.mrh0.createaddition.datagen.RecipeBuilders;
2+
3+
import com.mrh0.createaddition.CreateAddition;
4+
import com.mrh0.createaddition.recipe.rolling.RollingRecipe;
5+
import net.minecraft.core.HolderLookup;
6+
import net.minecraft.core.registries.BuiltInRegistries;
7+
import net.minecraft.data.recipes.RecipeOutput;
8+
import net.minecraft.resources.ResourceKey;
9+
import net.minecraft.resources.ResourceLocation;
10+
import net.minecraft.world.item.Item;
11+
import net.minecraft.world.item.ItemStack;
12+
import net.minecraft.world.item.crafting.Ingredient;
13+
import net.minecraft.world.item.enchantment.Enchantment;
14+
import net.minecraft.world.level.ItemLike;
15+
16+
import java.util.Objects;
17+
18+
public class CARollingRecipeBuilder extends CARecipeBuilder {
19+
protected Ingredient ingredient;
20+
21+
public CARollingRecipeBuilder(ItemStack result) {
22+
super(result);
23+
this.ingredient = Ingredient.EMPTY;
24+
}
25+
26+
public static CARollingRecipeBuilder rolling(ItemStack itemStack) {
27+
return new CARollingRecipeBuilder(itemStack);
28+
}
29+
30+
public static CARollingRecipeBuilder rolling(ItemLike result, int count) {
31+
return rolling(new ItemStack(result,count));
32+
}
33+
34+
public static CARollingRecipeBuilder rolling(ItemLike result) {
35+
return rolling(new ItemStack(result));
36+
}
37+
38+
public static CARollingRecipeBuilder rolling(Item result, int count) {
39+
return rolling(new ItemStack(result,count));
40+
}
41+
42+
43+
public static CARollingRecipeBuilder rolling(Item result) {
44+
return rolling(new ItemStack(result));
45+
}
46+
47+
public static CARollingRecipeBuilder rolling(ItemStack item, ResourceKey<Enchantment> enchantmentKey, HolderLookup.Provider provider) {
48+
item.enchant(provider.holderOrThrow(enchantmentKey),1);
49+
return rolling(item);
50+
}
51+
52+
public CARollingRecipeBuilder require(Ingredient ingredient) {
53+
this.ingredient = ingredient;
54+
return this;
55+
}
56+
57+
public CARollingRecipeBuilder require(ItemLike item) {
58+
this.require(Ingredient.of(item));
59+
return this;
60+
}
61+
62+
public CARollingRecipeBuilder require(ItemStack item) {
63+
this.require(Ingredient.of(item));
64+
return this;
65+
}
66+
67+
public CARollingRecipeBuilder require(ItemLike item, int count) {
68+
for(int i=0; i< count; ++i) {
69+
this.require(Ingredient.of(item));
70+
}
71+
return this;
72+
}
73+
74+
@Override
75+
public void save(RecipeOutput recipeOutput, ResourceLocation resourceLocation) {
76+
RollingRecipe rollingRecipe = new RollingRecipe(
77+
Objects.requireNonNullElse(this.group, ""),
78+
this.ingredient,
79+
this.result
80+
);
81+
recipeOutput.accept(resourceLocation.withPrefix("rolling/"), rollingRecipe, null);
82+
}
83+
84+
@Override
85+
public void save(RecipeOutput recipeOutput) {
86+
save(recipeOutput, BuiltInRegistries.ITEM.getKey(this.result.getItem()));
87+
}
88+
89+
@Override
90+
public void save(RecipeOutput recipeOutput, String id) {
91+
save(recipeOutput, ResourceLocation.fromNamespaceAndPath(CreateAddition.MODID, id));
92+
}
93+
}

src/main/java/com/mrh0/createaddition/datagen/RecipeProvider/CAChargingRecipeProvider.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public <V extends RecipeInput, R extends Recipe<V>> RecipeType<R> getType() {
3939
return (RecipeType<R>) CARecipes.CHARGING_TYPE.get();
4040
}
4141
};
42+
4243
private final HolderLookup.Provider provider;
4344

4445
public CAChargingRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
@@ -66,10 +67,8 @@ protected void buildRecipes(@NotNull RecipeOutput output) {
6667

6768
}
6869

69-
7070
@Override
7171
protected IRecipeTypeInfo getRecipeType() {
7272
return recipeType;
7373
}
74-
7574
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.mrh0.createaddition.datagen.RecipeProvider;
2+
3+
import com.mrh0.createaddition.CreateAddition;
4+
import com.mrh0.createaddition.datagen.RecipeBuilders.CAChargingRecipeBuilder;
5+
import com.mrh0.createaddition.datagen.RecipeBuilders.CALiquidBurningRecipeBuilder;
6+
import com.mrh0.createaddition.datagen.TagProvider.CATagRegister;
7+
import com.mrh0.createaddition.index.CAFluids;
8+
import com.mrh0.createaddition.index.CARecipes;
9+
import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen;
10+
import com.simibubi.create.foundation.fluid.FluidIngredient;
11+
import com.simibubi.create.foundation.recipe.IRecipeTypeInfo;
12+
import net.minecraft.core.HolderLookup;
13+
import net.minecraft.core.registries.BuiltInRegistries;
14+
import net.minecraft.data.PackOutput;
15+
import net.minecraft.data.recipes.RecipeOutput;
16+
import net.minecraft.resources.ResourceLocation;
17+
import net.minecraft.world.item.ItemStack;
18+
import net.minecraft.world.item.Items;
19+
import net.minecraft.world.item.crafting.Recipe;
20+
import net.minecraft.world.item.crafting.RecipeInput;
21+
import net.minecraft.world.item.crafting.RecipeSerializer;
22+
import net.minecraft.world.item.crafting.RecipeType;
23+
import net.minecraft.world.item.enchantment.Enchantments;
24+
import org.jetbrains.annotations.NotNull;
25+
26+
import java.util.concurrent.CompletableFuture;
27+
import java.util.concurrent.ExecutionException;
28+
29+
public class CALiquidBurningRecipeProvider extends ProcessingRecipeGen {
30+
public static final IRecipeTypeInfo recipeType = new IRecipeTypeInfo() {
31+
@Override
32+
public ResourceLocation getId() {
33+
return CARecipes.LIQUID_BURNING.getId();
34+
}
35+
36+
@Override
37+
public <T extends RecipeSerializer<?>> T getSerializer() {
38+
return (T) CARecipes.LIQUID_BURNING.get();
39+
}
40+
41+
@Override
42+
public <V extends RecipeInput, R extends Recipe<V>> RecipeType<R> getType() {
43+
return (RecipeType<R>) CARecipes.LIQUID_BURNING_TYPE.get();
44+
}
45+
};
46+
47+
private final HolderLookup.Provider provider;
48+
49+
public CALiquidBurningRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
50+
super(output, registries);
51+
try {
52+
this.provider = registries.get();
53+
} catch (InterruptedException | ExecutionException e) {
54+
throw new RuntimeException(e);
55+
}
56+
}
57+
58+
@Override
59+
protected void buildRecipes(@NotNull RecipeOutput output) {
60+
CALiquidBurningRecipeBuilder.liquidBurning(24000)
61+
.require(CATagRegister.Fluids.BIOFUEL)
62+
.save(output, "biofuel");
63+
}
64+
65+
@Override
66+
protected IRecipeTypeInfo getRecipeType() {
67+
return recipeType;
68+
}
69+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package com.mrh0.createaddition.datagen.RecipeProvider;
2+
3+
import com.mrh0.createaddition.datagen.RecipeBuilders.CARollingRecipeBuilder;
4+
import com.mrh0.createaddition.index.CAItems;
5+
import com.mrh0.createaddition.index.CARecipes;
6+
import com.simibubi.create.AllItems;
7+
import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen;
8+
import com.simibubi.create.foundation.recipe.IRecipeTypeInfo;
9+
import net.minecraft.core.HolderLookup;
10+
import net.minecraft.data.PackOutput;
11+
import net.minecraft.data.recipes.RecipeOutput;
12+
import net.minecraft.resources.ResourceLocation;
13+
import net.minecraft.world.item.Items;
14+
import net.minecraft.world.item.crafting.Recipe;
15+
import net.minecraft.world.item.crafting.RecipeInput;
16+
import net.minecraft.world.item.crafting.RecipeSerializer;
17+
import net.minecraft.world.item.crafting.RecipeType;
18+
import org.jetbrains.annotations.NotNull;
19+
20+
import java.util.concurrent.CompletableFuture;
21+
import java.util.concurrent.ExecutionException;
22+
23+
public class CARollingRecipeProvider extends ProcessingRecipeGen {
24+
public static final IRecipeTypeInfo recipeType = new IRecipeTypeInfo() {
25+
@Override
26+
public ResourceLocation getId() {
27+
return CARecipes.ROLLING.getId();
28+
}
29+
30+
@Override
31+
public <T extends RecipeSerializer<?>> T getSerializer() {
32+
return (T) CARecipes.ROLLING.get();
33+
}
34+
35+
@Override
36+
public <V extends RecipeInput, R extends Recipe<V>> RecipeType<R> getType() {
37+
return (RecipeType<R>) CARecipes.ROLLING_TYPE.get();
38+
}
39+
};
40+
41+
private final HolderLookup.Provider provider;
42+
43+
public CARollingRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
44+
super(output, registries);
45+
try {
46+
this.provider = registries.get();
47+
} catch (InterruptedException | ExecutionException e) {
48+
throw new RuntimeException(e);
49+
}
50+
}
51+
52+
@Override
53+
protected void buildRecipes(@NotNull RecipeOutput output) {
54+
/*
55+
CARollingRecipeBuilder.rolling(CAItems.STRAW)
56+
.require(Items.BAMBOO)
57+
.save(output);
58+
59+
CARollingRecipeBuilder.rolling(CAItems.BRASS_ROD)
60+
.require(AllItems.BRASS_INGOT)
61+
.save(output);
62+
CARollingRecipeBuilder.rolling(CAItems.COPPER_ROD)
63+
.require(Items.COPPER_INGOT)
64+
.save(output);
65+
CARollingRecipeBuilder.rolling(CAItems.ELECTRUM_ROD)
66+
.require(CAItems.ELECTRUM_INGOT)
67+
.save(output);
68+
CARollingRecipeBuilder.rolling(CAItems.IRON_ROD)
69+
.require(Items.IRON_INGOT)
70+
.save(output);
71+
CARollingRecipeBuilder.rolling(CAItems.GOLD_ROD)
72+
.require(Items.GOLD_INGOT)
73+
.save(output);
74+
*/
75+
}
76+
77+
@Override
78+
protected IRecipeTypeInfo getRecipeType() {
79+
return recipeType;
80+
}
81+
}

src/main/java/com/mrh0/createaddition/datagen/TagProvider/CABlockTagProvider.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public CABlockTagProvider(PackOutput output, CompletableFuture<HolderLookup.Prov
1919

2020
@Override
2121
protected void addTags(HolderLookup.Provider provider) {
22-
System.out.println("addTags HERE");
2322
tag(AllTags.AllBlockTags.FAN_PROCESSING_CATALYSTS_BLASTING.tag).add(
2423
CABlocks.LIQUID_BLAZE_BURNER.get()
2524
);

0 commit comments

Comments
 (0)