Skip to content

Commit 5221bd9

Browse files
committed
added data gen
1 parent 4ee7be7 commit 5221bd9

39 files changed

+200
-330
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
package crystallized.modid;
22

3+
import crystallized.modid.datagen.ModBlockTagProvider;
4+
import crystallized.modid.datagen.ModLootTableProvider;
5+
import crystallized.modid.datagen.ModModelProvider;
6+
import crystallized.modid.datagen.ModRecipeProvider;
37
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
48
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
59

610
public class CrystallizedModDataGenerator implements DataGeneratorEntrypoint {
711
@Override
812
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
13+
FabricDataGenerator.Pack data = fabricDataGenerator.createPack();
914

15+
data.addProvider(ModBlockTagProvider::new);
16+
data.addProvider(ModLootTableProvider::new);
17+
data.addProvider(ModModelProvider::new);
18+
data.addProvider(ModRecipeProvider::new);
1019
}
1120
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package crystallized.modid.datagen;
2+
3+
import crystallized.modid.block.ModBlocks;
4+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
5+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
6+
import net.minecraft.registry.RegistryWrapper;
7+
import net.minecraft.registry.tag.BlockTags;
8+
9+
import java.util.concurrent.CompletableFuture;
10+
11+
public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider {
12+
public ModBlockTagProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) {
13+
super(output, registriesFuture);
14+
}
15+
16+
@Override
17+
protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) {
18+
valueLookupBuilder(BlockTags.PICKAXE_MINEABLE)
19+
.add(ModBlocks.CRYSTALLIZED_BLOCK)
20+
.add(ModBlocks.CRYSTALLIZED_ORE)
21+
.add(ModBlocks.ENDO_BLOCK);
22+
23+
valueLookupBuilder(BlockTags.NEEDS_DIAMOND_TOOL)
24+
.add(ModBlocks.CRYSTALLIZED_BLOCK)
25+
.add(ModBlocks.CRYSTALLIZED_ORE)
26+
.add(ModBlocks.ENDO_BLOCK);
27+
}
28+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package crystallized.modid.datagen;
2+
3+
import crystallized.modid.item.ModItemGroups;
4+
import crystallized.modid.item.ModItems;
5+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
6+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
7+
import net.minecraft.registry.RegistryWrapper;
8+
import org.jetbrains.annotations.Nullable;
9+
10+
import java.util.concurrent.CompletableFuture;
11+
12+
public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
13+
public ModItemTagProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture, @Nullable BlockTagProvider blockTagProvider) {
14+
super(output, registriesFuture, blockTagProvider);
15+
}
16+
17+
@Override
18+
protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) {
19+
20+
}
21+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package crystallized.modid.datagen;
2+
3+
import crystallized.modid.block.ModBlocks;
4+
import crystallized.modid.item.ModItems;
5+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
6+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider;
7+
import net.minecraft.block.Block;
8+
import net.minecraft.enchantment.Enchantment;
9+
import net.minecraft.enchantment.Enchantments;
10+
import net.minecraft.item.Item;
11+
import net.minecraft.loot.LootTable;
12+
import net.minecraft.loot.entry.ItemEntry;
13+
import net.minecraft.loot.entry.LeafEntry;
14+
import net.minecraft.loot.function.ApplyBonusLootFunction;
15+
import net.minecraft.loot.function.SetCountLootFunction;
16+
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
17+
import net.minecraft.registry.RegistryKeys;
18+
import net.minecraft.registry.RegistryWrapper;
19+
20+
import java.util.concurrent.CompletableFuture;
21+
22+
public class ModLootTableProvider extends FabricBlockLootTableProvider {
23+
private final RegistryWrapper.WrapperLookup registryLookup;
24+
25+
public ModLootTableProvider(FabricDataOutput dataOutput, CompletableFuture<RegistryWrapper.WrapperLookup> registryLookup) {
26+
super(dataOutput, registryLookup);
27+
this.registryLookup = registryLookup.join();
28+
}
29+
30+
@Override
31+
public void generate() {
32+
addDrop(ModBlocks.CRYSTALLIZED_BLOCK);
33+
addDrop(ModBlocks.CRYSTALLIZED_ORE, multipleOreDrops(ModBlocks.CRYSTALLIZED_ORE, ModItems.RAW_CRYSTALLIZED, 1,3));
34+
addDrop(ModBlocks.ENDO_BLOCK);
35+
36+
37+
}
38+
39+
public LootTable.Builder multipleOreDrops(Block drop, Item item, float minDrops, float maxDrops) {
40+
RegistryWrapper<Enchantment> impl = this.registryLookup.getOrThrow(RegistryKeys.ENCHANTMENT);
41+
return this.dropsWithSilkTouch(drop, this.applyExplosionDecay(drop, ((LeafEntry.Builder<?>)
42+
ItemEntry.builder(item).apply(SetCountLootFunction.builder(UniformLootNumberProvider.create(minDrops, maxDrops)))
43+
.apply(ApplyBonusLootFunction.oreDrops(impl.getOrThrow(Enchantments.FORTUNE)))
44+
)));
45+
}
46+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package crystallized.modid.datagen;
2+
3+
import crystallized.modid.block.ModBlocks;
4+
import crystallized.modid.item.ModItems;
5+
import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider;
6+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
7+
import net.minecraft.client.data.BlockStateModelGenerator;
8+
import net.minecraft.client.data.ItemModelGenerator;
9+
import net.minecraft.client.data.Models;
10+
11+
public class ModModelProvider extends FabricModelProvider {
12+
public ModModelProvider(FabricDataOutput output) {
13+
super(output);
14+
}
15+
16+
@Override
17+
public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) {
18+
blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.ENDO_BLOCK);
19+
blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.CRYSTALLIZED_BLOCK);
20+
blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.CRYSTALLIZED_ORE);
21+
}
22+
23+
@Override
24+
public void generateItemModels(ItemModelGenerator itemModelGenerator) {
25+
itemModelGenerator.register(ModItems.CRYSTALLIZED_INGOT, Models.GENERATED);
26+
itemModelGenerator.register(ModItems.RAW_CRYSTALLIZED, Models.GENERATED);
27+
itemModelGenerator.register(ModItems.ENDO_INGOT, Models.GENERATED);
28+
itemModelGenerator.register(ModItems.EXALTER, Models.GENERATED);
29+
}
30+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package crystallized.modid.datagen;
2+
3+
import crystallized.modid.block.ModBlocks;
4+
import crystallized.modid.item.ModItems;
5+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
6+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider;
7+
import net.minecraft.MinecraftVersion;
8+
import net.minecraft.data.recipe.RecipeExporter;
9+
import net.minecraft.data.recipe.RecipeGenerator;
10+
import net.minecraft.item.ItemConvertible;
11+
import net.minecraft.recipe.book.RecipeCategory;
12+
import net.minecraft.registry.RegistryWrapper;
13+
14+
import java.util.List;
15+
import java.util.concurrent.CompletableFuture;
16+
17+
public class ModRecipeProvider extends FabricRecipeProvider {
18+
public ModRecipeProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) {
19+
super(output, registriesFuture);
20+
}
21+
22+
@Override
23+
protected RecipeGenerator getRecipeGenerator(RegistryWrapper.WrapperLookup wrapperLookup, RecipeExporter recipeExporter) {
24+
return new RecipeGenerator(wrapperLookup, recipeExporter) {
25+
@Override
26+
public void generate() {
27+
List<ItemConvertible> CRYSTALLIZED_SMELTABLES = List.of(ModItems.RAW_CRYSTALLIZED, ModBlocks.CRYSTALLIZED_ORE);
28+
29+
offerSmelting(CRYSTALLIZED_SMELTABLES, RecipeCategory.MISC, ModItems.CRYSTALLIZED_INGOT, 1f, 220, "crystallized");
30+
offerBlasting(CRYSTALLIZED_SMELTABLES, RecipeCategory.MISC, ModItems.CRYSTALLIZED_INGOT, 1f, 120, "crystallized");
31+
32+
offerReversibleCompactingRecipes(RecipeCategory.BUILDING_BLOCKS, ModItems.CRYSTALLIZED_INGOT, RecipeCategory.DECORATIONS, ModBlocks.CRYSTALLIZED_BLOCK);
33+
34+
createShaped(RecipeCategory.MISC, ModBlocks.ENDO_BLOCK)
35+
.pattern("EEE")
36+
.pattern("EEE")
37+
.pattern("EEE")
38+
.input('E', ModBlocks.ENDO_BLOCK)
39+
.criterion(hasItem(ModItems.ENDO_INGOT), conditionsFromItem(ModItems.ENDO_INGOT))
40+
.offerTo(exporter);
41+
42+
createShaped(RecipeCategory.COMBAT, ModItems.EXALTER)
43+
.pattern("I")
44+
.pattern("#")
45+
.input('I', ModItems.CRYSTALLIZED_INGOT)
46+
.input('#', net.minecraft.item.Items.STICK)
47+
.criterion(hasItem(ModItems.CRYSTALLIZED_INGOT), conditionsFromItem(ModItems.CRYSTALLIZED_INGOT))
48+
.offerTo(exporter);
49+
50+
createShapeless(RecipeCategory.MISC, ModItems.ENDO_INGOT, 9)
51+
.input(ModBlocks.ENDO_BLOCK)
52+
.criterion(hasItem(ModBlocks.ENDO_BLOCK), conditionsFromItem(ModBlocks.ENDO_BLOCK))
53+
.offerTo(exporter);
54+
55+
56+
57+
58+
}
59+
};
60+
}
61+
62+
@Override
63+
public String getName() {
64+
return "Recipes";
65+
}
66+
}

src/main/resources/assets/crystallized-mod/blockstates/crystallized_block.json

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

src/main/resources/assets/crystallized-mod/blockstates/crystallized_ore.json

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

src/main/resources/assets/crystallized-mod/blockstates/endo_block.json

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

src/main/resources/assets/crystallized-mod/items/crystallized_block.json

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

0 commit comments

Comments
 (0)