Skip to content

Commit ade486d

Browse files
authored
Merge pull request #936 from L-Lawlite/1.21.1
1.21.1
2 parents fb647c9 + f8d4dc4 commit ade486d

File tree

12 files changed

+283
-83
lines changed

12 files changed

+283
-83
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"type": "createaddition:charging",
3+
"energy": 10000000,
4+
"ingredient": {
5+
"item": "minecraft:book"
6+
},
7+
"max_charge_rate": 1000,
8+
"result": {
9+
"components": {
10+
"minecraft:stored_enchantments": {
11+
"levels": {
12+
"minecraft:channeling": 1
13+
}
14+
}
15+
},
16+
"count": 1,
17+
"id": "minecraft:enchanted_book"
18+
}
19+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"type": "createaddition:charging",
3+
"energy": 4000,
4+
"ingredient": {
5+
"item": "minecraft:exposed_copper"
6+
},
7+
"max_charge_rate": 200,
8+
"result": {
9+
"count": 1,
10+
"id": "minecraft:copper_block"
11+
}
12+
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public static void gatherData(GatherDataEvent event) {
3535
generator.addProvider(event.includeServer(), blockTags);
3636
generator.addProvider(event.includeServer(), new CAFluidTagProvider(output, lookupProvider, existingFileHelper));
3737
generator.addProvider(event.includeServer(), new CAItemTagProvider(output, lookupProvider, blockTags.contentsGetter(), existingFileHelper));
38-
// generator.addProvider(event.includeServer(), new CALootTableProvider(output,lookupProvider));
3938
generator.addProvider(event.includeServer(), new CACraftingRecipeProvider(output, lookupProvider));
4039
generator.addProvider(event.includeServer(), new CACrushingRecipeGen(output, lookupProvider));
4140
generator.addProvider(event.includeServer(), new CACompactingRecipeGen(output, lookupProvider));
@@ -44,6 +43,8 @@ public static void gatherData(GatherDataEvent event) {
4443
generator.addProvider(event.includeServer(), new CAMechanicalCrafterRecipeGen(output, lookupProvider));
4544
generator.addProvider(event.includeServer(), new CAPressingRecipeGen(output, lookupProvider));
4645

46+
generator.addProvider(event.includeServer(), new CAChargingRecipeProvider(output,lookupProvider));
47+
4748
generator.addProvider(event.includeServer(), new DatapackBuiltinEntriesProvider(output, lookupProvider, new RegistrySetBuilder()
4849
.add(Registries.DAMAGE_TYPE, CADamageTypesDatagen::bootstrap)
4950
.add(CreateRegistries.POTATO_PROJECTILE_TYPE, CAPotatoProjectileTypesDatagen::bootstrap),

src/main/java/com/mrh0/createaddition/datagen/LootTableProvider/CABlockLootTableSubProvider.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/main/java/com/mrh0/createaddition/datagen/LootTableProvider/CALootTableProvider.java

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
package com.mrh0.createaddition.datagen.RecipeBuilders;
2+
3+
import com.mrh0.createaddition.CreateAddition;
4+
import com.mrh0.createaddition.recipe.charging.ChargingRecipe;
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 CAChargingRecipeBuilder extends CARecipeBuilder {
19+
protected Ingredient ingredient;
20+
protected int energy , maxChargeRate;
21+
22+
public CAChargingRecipeBuilder(ItemStack result) {
23+
super(result);
24+
this.ingredient = Ingredient.EMPTY;
25+
this.energy = 0;
26+
this.maxChargeRate = 0;
27+
}
28+
29+
30+
31+
public static CAChargingRecipeBuilder charging(ItemStack itemStack) {
32+
return new CAChargingRecipeBuilder(itemStack);
33+
}
34+
35+
public static CAChargingRecipeBuilder charging(ItemLike result, int count) {
36+
return charging(new ItemStack(result,count));
37+
}
38+
39+
public static CAChargingRecipeBuilder charging(ItemLike result) {
40+
return charging(new ItemStack(result));
41+
}
42+
43+
public static CAChargingRecipeBuilder charging(Item result, int count) {
44+
return charging(new ItemStack(result,count));
45+
}
46+
47+
48+
public static CAChargingRecipeBuilder charging(Item result) {
49+
return charging(new ItemStack(result));
50+
}
51+
52+
public static CAChargingRecipeBuilder charging(ItemStack item, ResourceKey<Enchantment> enchantmentKey, HolderLookup.Provider provider) {
53+
item.enchant(provider.holderOrThrow(enchantmentKey),1);
54+
return charging(item);
55+
}
56+
57+
public CAChargingRecipeBuilder require(Ingredient ingredient) {
58+
this.ingredient = ingredient;
59+
return this;
60+
}
61+
62+
public CAChargingRecipeBuilder require(ItemLike item) {
63+
this.require(Ingredient.of(item));
64+
return this;
65+
}
66+
67+
public CAChargingRecipeBuilder require(ItemStack item) {
68+
this.require(Ingredient.of(item));
69+
return this;
70+
}
71+
72+
public CAChargingRecipeBuilder require(ItemLike item, int count) {
73+
for(int i=0; i< count; ++i) {
74+
this.require(Ingredient.of(item));
75+
}
76+
return this;
77+
}
78+
79+
public CAChargingRecipeBuilder energy(int energy) {
80+
this.energy = energy;
81+
return this;
82+
}
83+
84+
public CAChargingRecipeBuilder maxChargeRate(int maxChargeRate) {
85+
this.maxChargeRate = maxChargeRate;
86+
return this;
87+
}
88+
89+
@Override
90+
public void save(RecipeOutput recipeOutput, ResourceLocation resourceLocation) {
91+
ChargingRecipe chargingRecipe = new ChargingRecipe(
92+
Objects.requireNonNullElse(this.group,""),
93+
this.ingredient,
94+
this.result,
95+
this.energy,
96+
this.maxChargeRate
97+
);
98+
recipeOutput.accept(resourceLocation.withPrefix("charging/"), chargingRecipe, null);
99+
}
100+
101+
@Override
102+
public void save(RecipeOutput recipeOutput) {
103+
save(recipeOutput, BuiltInRegistries.ITEM.getKey(this.result.getItem()));
104+
}
105+
106+
@Override
107+
public void save(RecipeOutput recipeOutput, String id) {
108+
save(recipeOutput, ResourceLocation.fromNamespaceAndPath(CreateAddition.MODID,id));
109+
}
110+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.mrh0.createaddition.datagen.RecipeBuilders;
2+
3+
import net.minecraft.advancements.Criterion;
4+
import net.minecraft.data.recipes.RecipeBuilder;
5+
import net.minecraft.world.item.Item;
6+
import net.minecraft.world.item.ItemStack;
7+
import org.jetbrains.annotations.Nullable;
8+
9+
import java.util.LinkedHashMap;
10+
import java.util.Map;
11+
12+
public abstract class CARecipeBuilder implements RecipeBuilder {
13+
protected final ItemStack result;
14+
protected final Map<String, Criterion<?>> criteria = new LinkedHashMap<>();
15+
@Nullable protected String group = null;
16+
17+
public CARecipeBuilder(ItemStack result) {
18+
this.result = result;
19+
}
20+
21+
@Override
22+
public RecipeBuilder unlockedBy(String s, Criterion<?> criterion) {
23+
return this;
24+
}
25+
26+
@Override
27+
public RecipeBuilder group(@Nullable String group) {
28+
this.group = group;
29+
return this;
30+
}
31+
32+
@Override
33+
public Item getResult() {
34+
return this.result.getItem();
35+
}
36+
37+
38+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
@ParametersAreNonnullByDefault
2+
@MethodsReturnNonnullByDefault
3+
package com.mrh0.createaddition.datagen.RecipeBuilders;
4+
5+
import net.minecraft.MethodsReturnNonnullByDefault;
6+
7+
import javax.annotation.ParametersAreNonnullByDefault;
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
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.index.CARecipes;
6+
import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen;
7+
import com.simibubi.create.foundation.recipe.IRecipeTypeInfo;
8+
import net.minecraft.core.HolderLookup;
9+
import net.minecraft.core.registries.BuiltInRegistries;
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.ItemStack;
14+
import net.minecraft.world.item.Items;
15+
import net.minecraft.world.item.crafting.Recipe;
16+
import net.minecraft.world.item.crafting.RecipeInput;
17+
import net.minecraft.world.item.crafting.RecipeSerializer;
18+
import net.minecraft.world.item.crafting.RecipeType;
19+
import net.minecraft.world.item.enchantment.Enchantments;
20+
import org.jetbrains.annotations.NotNull;
21+
22+
import java.util.concurrent.CompletableFuture;
23+
import java.util.concurrent.ExecutionException;
24+
25+
public class CAChargingRecipeProvider extends ProcessingRecipeGen {
26+
public static final IRecipeTypeInfo recipeType = new IRecipeTypeInfo() {
27+
@Override
28+
public ResourceLocation getId() {
29+
return CARecipes.CHARGING.getId();
30+
}
31+
32+
@Override
33+
public <T extends RecipeSerializer<?>> T getSerializer() {
34+
return (T) CARecipes.CHARGING.get();
35+
}
36+
37+
@Override
38+
public <V extends RecipeInput, R extends Recipe<V>> RecipeType<R> getType() {
39+
return (RecipeType<R>) CARecipes.CHARGING_TYPE.get();
40+
}
41+
};
42+
private final HolderLookup.Provider provider;
43+
44+
public CAChargingRecipeProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
45+
super(output, registries);
46+
try {
47+
this.provider = registries.get();
48+
} catch (InterruptedException | ExecutionException e) {
49+
throw new RuntimeException(e);
50+
}
51+
}
52+
53+
@Override
54+
protected void buildRecipes(@NotNull RecipeOutput output) {
55+
CAChargingRecipeBuilder.charging(Items.COPPER_BLOCK)
56+
.require(Items.EXPOSED_COPPER)
57+
.energy(4000)
58+
.maxChargeRate(200)
59+
.save(output, ResourceLocation.fromNamespaceAndPath(CreateAddition.MODID, BuiltInRegistries.ITEM.getKey(Items.COPPER_BLOCK).getPath()));
60+
CAChargingRecipeBuilder.charging(new ItemStack(Items.ENCHANTED_BOOK), Enchantments.CHANNELING, provider)
61+
.require(Items.BOOK)
62+
.maxChargeRate(1000)
63+
.energy(10000000)
64+
.save(output, ResourceLocation.fromNamespaceAndPath(CreateAddition.MODID, Enchantments.CHANNELING.location().getPath()));
65+
// CAChargingRecipeBuilder.charging(AllBlocks.COPPER_SHINGLES.get( CopperBlockSet.SlabVariant.INSTANCE, WeatheringCopper.WeatherState.UNAFFECTED,false).asItem());
66+
67+
}
68+
69+
70+
@Override
71+
protected IRecipeTypeInfo getRecipeType() {
72+
return recipeType;
73+
}
74+
75+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"type": "minecraft:block",
3+
"pools": [
4+
{
5+
"name": "createaddition:electrum_block",
6+
"rolls": 1,
7+
"entries": [
8+
{
9+
"type": "minecraft:item",
10+
"name": "createaddition:electrum_block"
11+
}
12+
],
13+
"conditions": [
14+
{
15+
"condition": "minecraft:survives_explosion"
16+
}
17+
]
18+
}
19+
]
20+
}

0 commit comments

Comments
 (0)