Skip to content

Commit 72680bc

Browse files
Merge remote-tracking branch 'origin/1.21.1-release' into 1.21.1-release
2 parents 38677b2 + 78eb571 commit 72680bc

File tree

58 files changed

+1457
-43
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1457
-43
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ tasks.withType(ProcessResources).configureEach {
180180
mod_description : mod_description
181181
]
182182
inputs.properties replaceProperties
183-
183+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
184184
filesMatching(['META-INF/neoforge.mods.toml']) {
185185
expand replaceProperties
186186
}

src/main/java/com/rae/creatingspace/content/datagen/CSDatagen.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,30 @@
44
import com.google.gson.JsonObject;
55
import com.rae.creatingspace.CreatingSpace;
66

7+
import com.rae.creatingspace.content.datagen.recipe.CSPressingRecipeGen;
8+
import com.rae.creatingspace.content.datagen.recipe.CSStandardRecipeGen;
79
import com.simibubi.create.foundation.utility.FilesHelper;
810
import com.tterrag.registrate.providers.ProviderType;
11+
import com.tterrag.registrate.providers.RegistrateDataProvider;
12+
import net.minecraft.core.HolderLookup;
913
import net.minecraft.data.DataGenerator;
14+
import net.minecraft.data.PackOutput;
1015
import net.neoforged.neoforge.common.data.ExistingFileHelper;
1116
import net.neoforged.neoforge.data.event.GatherDataEvent;
1217

1318
import java.util.Map.Entry;
19+
import java.util.concurrent.CompletableFuture;
1420
import java.util.function.BiConsumer;
1521

22+
import static com.rae.creatingspace.CreatingSpace.REGISTRATE;
23+
1624
public class CSDatagen {
1725
public static void gatherData(GatherDataEvent event) {
1826
addExtraRegistrateData();
1927

2028
DataGenerator generator = event.getGenerator();
29+
PackOutput output = generator.getPackOutput();
30+
CompletableFuture<HolderLookup.Provider> lookupProvider = event.getLookupProvider();
2131
ExistingFileHelper existingFileHelper = event.getExistingFileHelper();
2232

2333
if (event.includeClient()) {
@@ -35,13 +45,20 @@ public static void gatherData(GatherDataEvent event) {
3545
//ProcessingRecipeGen.registerAll(generator);
3646

3747
// AllOreFeatureConfigEntries.gatherData(event);
48+
49+
//CS Recipes
50+
generator.addProvider(true, new CSStandardRecipeGen(output, lookupProvider));
51+
generator.addProvider(true, new CSPressingRecipeGen(output, lookupProvider));
52+
53+
event.getGenerator().addProvider(true, REGISTRATE.setDataProvider(new RegistrateDataProvider(REGISTRATE, CreatingSpace.MODID, event)));
3854
}
3955
}
4056

4157
private static void addExtraRegistrateData() {
4258
//CreateRegistrateTags.addGenerators();
4359

44-
CreatingSpace.REGISTRATE.addDataGenerator(ProviderType.LANG, provider -> {
60+
/*
61+
REGISTRATE.addDataGenerator(ProviderType.LANG, provider -> {
4562
BiConsumer<String, String> langConsumer = provider::add;
4663
4764
provideDefaultLang("interface", langConsumer);
@@ -50,6 +67,7 @@ private static void addExtraRegistrateData() {
5067
//AllSoundEvents.provideLang(langConsumer);
5168
providePonderLang(langConsumer);
5269
});
70+
*/
5371
}
5472

5573
private static void provideDefaultLang(String fileName, BiConsumer<String, String> consumer) {
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.rae.creatingspace.content.datagen;
2+
3+
import com.rae.creatingspace.content.datagen.recipe.CSMetalRecipeHelper;
4+
import com.rae.creatingspace.init.ingameobject.BlockInit;
5+
import com.rae.creatingspace.init.ingameobject.ItemInit;
6+
import com.simibubi.create.AllTags;
7+
import net.minecraft.data.recipes.RecipeOutput;
8+
import net.minecraft.world.item.Item;
9+
10+
import javax.annotation.Nullable;
11+
import java.util.List;
12+
13+
public class CSMetalSets {
14+
15+
public static final MetalSet ALUMINUM = new MetalSet(
16+
"aluminum",
17+
true,
18+
ItemInit.ALUMINUM_NUGGET.get(),
19+
ItemInit.ALUMINUM_INGOT.get(),
20+
BlockInit.ALUMINUM_BLOCK.asItem(),
21+
ItemInit.RAW_ALUMINUM.get(),
22+
BlockInit.MOON_ALUMINUM_ORE.asItem(),
23+
null
24+
);
25+
26+
public static final MetalSet COBALT = new MetalSet(
27+
"cobalt",
28+
true,
29+
ItemInit.COBALT_NUGGET.get(),
30+
ItemInit.COBALT_INGOT.get(),
31+
BlockInit.COBALT_BLOCK.asItem(),
32+
ItemInit.RAW_COBALT.get(),
33+
BlockInit.MOON_COBALT_ORE.asItem(),
34+
null
35+
);
36+
37+
public static final MetalSet NICKEL = new MetalSet(
38+
"nickel",
39+
true,
40+
ItemInit.NICKEL_NUGGET.get(),
41+
ItemInit.NICKEL_INGOT.get(),
42+
BlockInit.NICKEL_BLOCK.asItem(),
43+
ItemInit.RAW_NICKEL.get(),
44+
BlockInit.NICKEL_ORE.asItem(),
45+
BlockInit.MOON_NICKEL_ORE.asItem()
46+
);
47+
48+
public static final List<String> ALL = List.of("aluminum","cobalt", "nickel");
49+
50+
public record MetalSet(
51+
String name,
52+
boolean generateSmelting,
53+
Item nugget,
54+
Item ingot,
55+
Item block,
56+
@Nullable Item rawOre,
57+
@Nullable Item ore,
58+
@Nullable Item deepslateOre
59+
){}
60+
61+
protected void buildRecipes(RecipeOutput recipeOutput) {
62+
}
63+
64+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.rae.creatingspace.content.datagen;
2+
3+
import net.minecraft.core.HolderLookup;
4+
import net.minecraft.data.PackOutput;
5+
import net.minecraft.data.recipes.RecipeOutput;
6+
import net.minecraft.data.recipes.RecipeProvider;
7+
import org.jetbrains.annotations.NotNull;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
import java.util.concurrent.CompletableFuture;
12+
13+
public class CSRecipeProvider extends RecipeProvider {
14+
15+
protected final List<GeneratedRecipe> all = new ArrayList<>();
16+
17+
public CSRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
18+
super(output, registries);
19+
}
20+
21+
@Override
22+
protected void buildRecipes(@NotNull RecipeOutput pRecipeOutput) {
23+
all.forEach(c -> c.register(pRecipeOutput));
24+
}
25+
26+
protected GeneratedRecipe register(GeneratedRecipe recipe) {
27+
all.add(recipe);
28+
return recipe;
29+
}
30+
31+
@FunctionalInterface
32+
public interface GeneratedRecipe {
33+
void register(RecipeOutput output);
34+
}
35+
36+
public static class Marker {
37+
}
38+
}
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
package com.rae.creatingspace.content.datagen.recipe;
2+
3+
import com.rae.creatingspace.CreatingSpace;
4+
import com.rae.creatingspace.content.datagen.CSMetalSets;
5+
import com.rae.creatingspace.init.EngineMaterialInit;
6+
import com.rae.creatingspace.init.ingameobject.ItemInit;
7+
import com.simibubi.create.AllTags;
8+
import com.simibubi.create.foundation.data.recipe.PressingRecipeGen;
9+
import net.minecraft.advancements.Criterion;
10+
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
11+
import net.minecraft.core.HolderLookup;
12+
import net.minecraft.data.PackOutput;
13+
import net.minecraft.data.recipes.RecipeCategory;
14+
import net.minecraft.data.recipes.RecipeOutput;
15+
import net.minecraft.data.recipes.ShapedRecipeBuilder;
16+
import net.minecraft.data.recipes.ShapelessRecipeBuilder;
17+
import net.minecraft.resources.ResourceLocation;
18+
import net.minecraft.world.item.Item;
19+
20+
import java.util.concurrent.CompletableFuture;
21+
22+
import static com.rae.creatingspace.CreatingSpace.resource;
23+
24+
public class CSMetalRecipeHelper {
25+
26+
public static void generateMetalRecipes(RecipeOutput output, CSMetalSets.MetalSet metal) {
27+
// 9 Nuggets → 1 Ingot
28+
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, metal.ingot())
29+
.define('#', AllTags.commonItemTag("nuggets/" + metal.name()))
30+
.pattern("###")
31+
.pattern("###")
32+
.pattern("###")
33+
.unlockedBy("has_nugget", has(metal.nugget()))
34+
.save(output, resource(metal.name() + "_ingot_from_nuggets"));
35+
36+
// 1 Ingot → 9 Nuggets
37+
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, metal.nugget(), 9)
38+
.requires(AllTags.commonItemTag("ingots/" + metal.name()))
39+
.unlockedBy("has_ingot", has(metal.ingot()))
40+
.save(output, resource(metal.name() + "_nugget"));
41+
42+
// 9 Ingots → 1 Block
43+
ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, metal.block())
44+
.define('#', AllTags.commonItemTag("ingots/" + metal.name()))
45+
.pattern("###")
46+
.pattern("###")
47+
.pattern("###")
48+
.unlockedBy("has_ingot", has(metal.ingot()))
49+
.save(output, resource(metal.name() + "_block"));
50+
51+
// 1 Block → 9 Ingots
52+
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, metal.ingot(), 9)
53+
.requires(AllTags.commonItemTag("storage_blocks/" + metal.name()))
54+
.unlockedBy("has_block", has(metal.block()))
55+
.save(output, resource(metal.name() + "_ingot_from_block"));
56+
}
57+
58+
public static void generateMetalAlloyRecipes(RecipeOutput output, CSMetalSets.MetalSet metal) {
59+
// 9 Nuggets → 1 Ingot
60+
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, metal.ingot())
61+
.define('#', AllTags.commonItemTag("nuggets/" + metal.name()))
62+
.pattern("###")
63+
.pattern("###")
64+
.pattern("###")
65+
.unlockedBy("has_nugget", has(metal.nugget()))
66+
.save(output, ResourceLocation.fromNamespaceAndPath(CreatingSpace.MODID, metal.name() + "_ingot_from_nuggets"));
67+
68+
// 1 Ingot → 9 Nuggets
69+
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, metal.nugget(), 9)
70+
.requires(AllTags.commonItemTag("ingots/" + metal.name()))
71+
.unlockedBy("has_ingot", has(metal.ingot()))
72+
.save(output, ResourceLocation.fromNamespaceAndPath(CreatingSpace.MODID, metal.name() + "_nugget"));
73+
74+
// 9 Ingots → 1 Block
75+
ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, metal.block())
76+
.define('#', AllTags.commonItemTag("ingots/" + metal.name()))
77+
.pattern("###")
78+
.pattern("###")
79+
.pattern("###")
80+
.unlockedBy("has_ingot", has(metal.ingot()))
81+
.save(output, ResourceLocation.fromNamespaceAndPath(CreatingSpace.MODID, metal.name() + "_block"));
82+
83+
// 1 Block → 9 Ingots
84+
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, metal.ingot(), 9)
85+
.requires(AllTags.commonItemTag("storage_blocks/" + metal.name()))
86+
.unlockedBy("has_block", has(metal.block()))
87+
.save(output, ResourceLocation.fromNamespaceAndPath(CreatingSpace.MODID, metal.name() + "_ingot_from_block"));
88+
}
89+
90+
public static void generateMetalPressingRecipes(RecipeOutput output, CSMetalSets.MetalSet metal) {
91+
92+
}
93+
94+
// helper for criteria
95+
private static Criterion<InventoryChangeTrigger.TriggerInstance> has(Item item) {
96+
return InventoryChangeTrigger.TriggerInstance.hasItems(item);
97+
}
98+
99+
private ResourceLocation createLocation(String recipeName) {
100+
return ResourceLocation.fromNamespaceAndPath(CreatingSpace.MODID, recipeName);
101+
}
102+
}
103+
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.rae.creatingspace.content.datagen.recipe;
2+
3+
import com.rae.creatingspace.content.datagen.CSRecipeProvider;
4+
import com.rae.creatingspace.init.ingameobject.ItemInit;
5+
import com.simibubi.create.AllRecipeTypes;
6+
import com.simibubi.create.AllTags;
7+
import com.simibubi.create.content.processing.recipe.ProcessingRecipe;
8+
import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder;
9+
import com.simibubi.create.content.processing.recipe.ProcessingRecipeSerializer;
10+
import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen;
11+
import net.createmod.catnip.registry.RegisteredObjectsHelper;
12+
import net.minecraft.core.HolderLookup;
13+
import net.minecraft.data.PackOutput;
14+
import net.minecraft.resources.ResourceLocation;
15+
import net.minecraft.world.item.Item;
16+
import net.minecraft.world.item.crafting.Ingredient;
17+
import net.minecraft.world.level.ItemLike;
18+
19+
import java.util.concurrent.CompletableFuture;
20+
import java.util.function.Supplier;
21+
import java.util.function.UnaryOperator;
22+
23+
import static com.rae.creatingspace.CreatingSpace.resource;
24+
25+
@SuppressWarnings("unused")
26+
public class CSPressingRecipeGen extends ProcessingRecipeGen {
27+
28+
GeneratedRecipe
29+
30+
ALUMINUM_SHEET = create(resource("aluminum_sheet"), b -> b
31+
.require(AllTags.commonItemTag("ingots/aluminum"))
32+
.output(ItemInit.ALUMINUM_SHEET)),
33+
NICKEL_SHEET = create(resource( "nickel_sheet"), b -> b.require(AllTags.commonItemTag("ingots/nickel"))
34+
.output(ItemInit.NICKEL_SHEET)),
35+
COBALT_SHEET = create(resource("cobalt_sheet"), b -> b.require(AllTags.commonItemTag("ingots/cobalt"))
36+
.output(ItemInit.COBALT_SHEET)),
37+
COPRONICKEL_SHEET = create(resource("copronickel_sheet"), b -> b
38+
.require(AllTags.commonItemTag("ingots/copronickel"))
39+
.output(resource("copronickel_sheet"))),
40+
REINFORCED_COPPER_SHEET = create(resource("reinforced_copper_sheet"), b -> b
41+
.require(AllTags.commonItemTag("ingots/reinforced_copper"))
42+
.output(resource("reinforced_copper_sheet"))),
43+
MONEL_SHEET = create(resource("monel_sheet"), b -> b
44+
.require(AllTags.commonItemTag("ingots/monel"))
45+
.output(resource("monel_sheet"))),
46+
INCONEL_SHEET = create(resource("inconel_sheet"), b -> b
47+
.require(AllTags.commonItemTag("ingots/inconel"))
48+
.output(resource("inconel_sheet"))),
49+
HASTELLOY_SHEET = create(resource("hastelloy_sheet"), b -> b
50+
.require(AllTags.commonItemTag("ingots/hastelloy"))
51+
.output(resource("hastelloy_sheet")));
52+
53+
public CSPressingRecipeGen(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
54+
super(output, registries);
55+
}
56+
57+
@Override
58+
protected AllRecipeTypes getRecipeType() {
59+
return AllRecipeTypes.PRESSING;
60+
}
61+
}

0 commit comments

Comments
 (0)