From 7bdf13b30409ad97a02f155b2c5254dda72c3309 Mon Sep 17 00:00:00 2001 From: Yusuf Arfan Ismail Date: Sat, 29 Jun 2024 09:36:29 +0100 Subject: [PATCH] done --- gradle.properties | 4 +- .../2a28fcdbeac64b3f0fb1da9f964f3a73de497648 | 3 ++ .../9e626b95ebbec93dbf63c677d19e13e520c20d6b | 6 ++- .../tags/block/mineable/pickaxe.json | 2 +- .../minecraft/tags/block/needs_iron_tool.json | 5 +++ .../tutorialmod/tags/block/example_block.json | 5 +++ .../tutorialmod/tags/item/example_block.json | 5 +++ .../tutorialmod/tags/item/example_item.json | 5 +++ .../realyusufismail/data/DataGenerators.java | 5 ++- .../data/tag/ModBlockTagsProvider.java | 9 +++- .../data/tag/ModItemTagProvider.java | 29 ++++++++++++ .../github/realyusufismail/init/TagsInit.java | 45 +++++++++++++++++++ 12 files changed, 116 insertions(+), 7 deletions(-) create mode 100644 src/generated/resources/.cache/2a28fcdbeac64b3f0fb1da9f964f3a73de497648 create mode 100644 src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json create mode 100644 src/generated/resources/data/tutorialmod/tags/block/example_block.json create mode 100644 src/generated/resources/data/tutorialmod/tags/item/example_block.json create mode 100644 src/generated/resources/data/tutorialmod/tags/item/example_item.json create mode 100644 src/main/java/io/github/realyusufismail/data/tag/ModItemTagProvider.java create mode 100644 src/main/java/io/github/realyusufismail/init/TagsInit.java diff --git a/gradle.properties b/gradle.properties index 1768dc7..9492660 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,9 +16,9 @@ minecraft_version=1.21 # as they do not follow standard versioning conventions. minecraft_version_range=[1.21,1.21.1) # The Neo version must agree with the Minecraft version to get a valid artifact -neo_version=21.0.20-beta +neo_version=21.0.42-beta # The Neo version range can use any version of Neo as bounds -neo_version_range=[21.0.20-beta,) +neo_version_range=[21.0.42-beta,) # The loader version range can only use the major version of FML as bounds loader_version_range=[4,) diff --git a/src/generated/resources/.cache/2a28fcdbeac64b3f0fb1da9f964f3a73de497648 b/src/generated/resources/.cache/2a28fcdbeac64b3f0fb1da9f964f3a73de497648 new file mode 100644 index 0000000..862e7bc --- /dev/null +++ b/src/generated/resources/.cache/2a28fcdbeac64b3f0fb1da9f964f3a73de497648 @@ -0,0 +1,3 @@ +// 1.21 2024-06-29T09:32:44.039614 Tags for minecraft:item mod id tutorialmod +c83f9edda4547a4af3f0016fda0c2621839849b3 data/tutorialmod/tags/item/example_block.json +45f5e001644f26668bdf88ee06c051953b522b28 data/tutorialmod/tags/item/example_item.json diff --git a/src/generated/resources/.cache/9e626b95ebbec93dbf63c677d19e13e520c20d6b b/src/generated/resources/.cache/9e626b95ebbec93dbf63c677d19e13e520c20d6b index 16609a9..5f695cf 100644 --- a/src/generated/resources/.cache/9e626b95ebbec93dbf63c677d19e13e520c20d6b +++ b/src/generated/resources/.cache/9e626b95ebbec93dbf63c677d19e13e520c20d6b @@ -1,2 +1,4 @@ -// 1.21 2024-06-19T15:13:52.90318 Tags for minecraft:block mod id tutorialmod -c83f9edda4547a4af3f0016fda0c2621839849b3 data/minecraft/tags/block/mineable/pickaxe.json +// 1.21 2024-06-29T09:32:44.037156 Tags for minecraft:block mod id tutorialmod +b8703e5871ce664cf6783f815f1c5120f04d8ce8 data/minecraft/tags/block/mineable/pickaxe.json +b8703e5871ce664cf6783f815f1c5120f04d8ce8 data/minecraft/tags/block/needs_iron_tool.json +c83f9edda4547a4af3f0016fda0c2621839849b3 data/tutorialmod/tags/block/example_block.json diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json index 69d4f01..b8995c7 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -1,5 +1,5 @@ { "values": [ - "tutorialmod:example_block" + "#tutorialmod:example_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json b/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json new file mode 100644 index 0000000..b8995c7 --- /dev/null +++ b/src/generated/resources/data/minecraft/tags/block/needs_iron_tool.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#tutorialmod:example_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tutorialmod/tags/block/example_block.json b/src/generated/resources/data/tutorialmod/tags/block/example_block.json new file mode 100644 index 0000000..69d4f01 --- /dev/null +++ b/src/generated/resources/data/tutorialmod/tags/block/example_block.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:example_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tutorialmod/tags/item/example_block.json b/src/generated/resources/data/tutorialmod/tags/item/example_block.json new file mode 100644 index 0000000..69d4f01 --- /dev/null +++ b/src/generated/resources/data/tutorialmod/tags/item/example_block.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:example_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tutorialmod/tags/item/example_item.json b/src/generated/resources/data/tutorialmod/tags/item/example_item.json new file mode 100644 index 0000000..f678dc2 --- /dev/null +++ b/src/generated/resources/data/tutorialmod/tags/item/example_item.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tutorialmod:example_item" + ] +} \ No newline at end of file diff --git a/src/main/java/io/github/realyusufismail/data/DataGenerators.java b/src/main/java/io/github/realyusufismail/data/DataGenerators.java index a406371..287e3cb 100644 --- a/src/main/java/io/github/realyusufismail/data/DataGenerators.java +++ b/src/main/java/io/github/realyusufismail/data/DataGenerators.java @@ -4,6 +4,7 @@ import io.github.realyusufismail.data.lang.ModEnLangProvider; import io.github.realyusufismail.data.loottable.ModLootTables; import io.github.realyusufismail.data.tag.ModBlockTagsProvider; +import io.github.realyusufismail.data.tag.ModItemTagProvider; import io.github.realyusufismail.data.texture.ModBlockStateProvider; import io.github.realyusufismail.data.texture.ModItemStateProvider; import net.minecraft.data.DataGenerator; @@ -22,7 +23,9 @@ public static void gatherData(GatherDataEvent event) { generator.addProvider(true, new ModEnLangProvider(output)); generator.addProvider(true, new ModItemStateProvider(output, existingFileHelper)); generator.addProvider(true, new ModBlockStateProvider(output, existingFileHelper)); - generator.addProvider(true, new ModBlockTagsProvider(output, event.getLookupProvider(), existingFileHelper)); + ModBlockTagsProvider modBlockTagsProvider = new ModBlockTagsProvider(output, event.getLookupProvider(), existingFileHelper); + generator.addProvider(true, modBlockTagsProvider); + generator.addProvider(true, new ModItemTagProvider(output, event.getLookupProvider(), modBlockTagsProvider, existingFileHelper)); generator.addProvider(true, new ModLootTables(output, event.getLookupProvider())); } catch (RuntimeException e) { TutorialMod.logger.error("Failed to gather data", e); diff --git a/src/main/java/io/github/realyusufismail/data/tag/ModBlockTagsProvider.java b/src/main/java/io/github/realyusufismail/data/tag/ModBlockTagsProvider.java index d840868..f8d7b99 100644 --- a/src/main/java/io/github/realyusufismail/data/tag/ModBlockTagsProvider.java +++ b/src/main/java/io/github/realyusufismail/data/tag/ModBlockTagsProvider.java @@ -2,6 +2,7 @@ import io.github.realyusufismail.TutorialMod; import io.github.realyusufismail.init.BlockInit; +import io.github.realyusufismail.init.TagsInit; import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; import net.minecraft.tags.BlockTags; @@ -19,7 +20,13 @@ public ModBlockTagsProvider(PackOutput output, CompletableFuture netherite = createNeoForgeTag("needs_netherite_tool") + tag(BlockTags.NEEDS_IRON_TOOL).addTag(TagsInit.BlockTagsInit.EXAMPLE_BLOCK_TAG); } } diff --git a/src/main/java/io/github/realyusufismail/data/tag/ModItemTagProvider.java b/src/main/java/io/github/realyusufismail/data/tag/ModItemTagProvider.java new file mode 100644 index 0000000..0d41fb0 --- /dev/null +++ b/src/main/java/io/github/realyusufismail/data/tag/ModItemTagProvider.java @@ -0,0 +1,29 @@ +package io.github.realyusufismail.data.tag; + +import io.github.realyusufismail.TutorialMod; +import io.github.realyusufismail.init.ItemInit; +import io.github.realyusufismail.init.TagsInit; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.ItemTagsProvider; +import net.minecraft.tags.ItemTags; +import net.minecraft.world.level.block.Block; +import net.neoforged.neoforge.common.data.BlockTagsProvider; +import net.neoforged.neoforge.common.data.ExistingFileHelper; + +import java.util.concurrent.CompletableFuture; + +public class ModItemTagProvider extends ItemTagsProvider { + public ModItemTagProvider(PackOutput pOutput, CompletableFuture pLookupProvider, BlockTagsProvider provider, ExistingFileHelper existingFileHelper) { + super(pOutput, pLookupProvider, provider.contentsGetter(), TutorialMod.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider pProvider) { + copy(TagsInit.BlockTagsInit.EXAMPLE_BLOCK_TAG, TagsInit.ItemTagsInit.EXAMPLE_BLOCK_TAG); + + tag(TagsInit.ItemTagsInit.EXAMPLE_ITEM_TAG).add(ItemInit.EXAMPLE_ITEM.get()); + + // tag(ItemTags.TRIMMABLE_ARMOR) + } +} diff --git a/src/main/java/io/github/realyusufismail/init/TagsInit.java b/src/main/java/io/github/realyusufismail/init/TagsInit.java new file mode 100644 index 0000000..43f0cfe --- /dev/null +++ b/src/main/java/io/github/realyusufismail/init/TagsInit.java @@ -0,0 +1,45 @@ +package io.github.realyusufismail.init; + +import io.github.realyusufismail.TutorialMod; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; + +public class TagsInit { + public static ResourceLocation createOreLocation(String name) { + return ResourceLocation.fromNamespaceAndPath(TutorialMod.MOD_ID, "ores/" + name); + } + + public static ResourceLocation createBlockLocation(String name) { + return ResourceLocation.fromNamespaceAndPath(TutorialMod.MOD_ID, name); + } + + public static ResourceLocation createGenericItemsLocation(String name) { + return ResourceLocation.fromNamespaceAndPath(TutorialMod.MOD_ID, name); + } + + public static ResourceLocation createRawItemsLocation(String name) { + return ResourceLocation.fromNamespaceAndPath(TutorialMod.MOD_ID, "raw/" + name); + } + + public static TagKey createToolTag(String name) { + return TagKey.create(BuiltInRegistries.BLOCK.key(), ResourceLocation.fromNamespaceAndPath(TutorialMod.MOD_ID, name)); + } + + public static class ItemTagsInit { + // Items + public static final TagKey EXAMPLE_ITEM_TAG = ItemTags.create(createGenericItemsLocation("example_item")); + + // Blocks + public static final TagKey EXAMPLE_BLOCK_TAG = ItemTags.create(createBlockLocation("example_block")); + } + + public static class BlockTagsInit { + public static final TagKey EXAMPLE_BLOCK_TAG = + BlockTags.create(createBlockLocation("example_block")); + } +}