diff --git a/src/generated/resources/data/forge/tags/items/tools/axes.json b/src/generated/resources/data/forge/tags/items/tools/axes.json new file mode 100644 index 00000000..e0b0876a --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/tools/axes.json @@ -0,0 +1,7 @@ +{ + "values": [ + "naturesaura:depth_axe", + "naturesaura:infused_iron_axe", + "naturesaura:sky_axe" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/tools/hoes.json b/src/generated/resources/data/forge/tags/items/tools/hoes.json new file mode 100644 index 00000000..244c8b17 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/tools/hoes.json @@ -0,0 +1,7 @@ +{ + "values": [ + "naturesaura:depth_hoe", + "naturesaura:infused_iron_hoe", + "naturesaura:sky_hoe" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/tools/pickaxes.json b/src/generated/resources/data/forge/tags/items/tools/pickaxes.json new file mode 100644 index 00000000..ca6e8c7f --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/tools/pickaxes.json @@ -0,0 +1,7 @@ +{ + "values": [ + "naturesaura:depth_pickaxe", + "naturesaura:infused_iron_pickaxe", + "naturesaura:sky_pickaxe" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/tools/shovels.json b/src/generated/resources/data/forge/tags/items/tools/shovels.json new file mode 100644 index 00000000..cc2aca8a --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/tools/shovels.json @@ -0,0 +1,7 @@ +{ + "values": [ + "naturesaura:depth_shovel", + "naturesaura:infused_iron_shovel", + "naturesaura:sky_shovel" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/tools/swords.json b/src/generated/resources/data/forge/tags/items/tools/swords.json new file mode 100644 index 00000000..a09fe5fd --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/tools/swords.json @@ -0,0 +1,7 @@ +{ + "values": [ + "naturesaura:depth_sword", + "naturesaura:infused_iron_sword", + "naturesaura:sky_sword" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/items/cluster_max_harvestables.json b/src/generated/resources/data/minecraft/tags/items/cluster_max_harvestables.json index e8bf1c01..ca6e8c7f 100644 --- a/src/generated/resources/data/minecraft/tags/items/cluster_max_harvestables.json +++ b/src/generated/resources/data/minecraft/tags/items/cluster_max_harvestables.json @@ -1,7 +1,7 @@ { "values": [ + "naturesaura:depth_pickaxe", "naturesaura:infused_iron_pickaxe", - "naturesaura:sky_pickaxe", - "naturesaura:depth_pickaxe" + "naturesaura:sky_pickaxe" ] } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/naturesaura/data/ItemTagProvider.java b/src/main/java/de/ellpeck/naturesaura/data/ItemTagProvider.java index 8cce3625..84a70d1b 100644 --- a/src/main/java/de/ellpeck/naturesaura/data/ItemTagProvider.java +++ b/src/main/java/de/ellpeck/naturesaura/data/ItemTagProvider.java @@ -3,6 +3,9 @@ package de.ellpeck.naturesaura.data; import de.ellpeck.naturesaura.NaturesAura; import de.ellpeck.naturesaura.compat.Compat; import de.ellpeck.naturesaura.items.ModItems; +import de.ellpeck.naturesaura.items.tools.*; +import de.ellpeck.naturesaura.reg.IModItem; +import de.ellpeck.naturesaura.reg.ModRegistry; import net.minecraft.data.DataGenerator; import net.minecraft.data.tags.BlockTagsProvider; import net.minecraft.data.tags.ItemTagsProvider; @@ -13,6 +16,8 @@ import net.minecraft.world.item.Item; import net.minecraftforge.common.Tags; import net.minecraftforge.common.data.ExistingFileHelper; +import java.util.Comparator; + public class ItemTagProvider extends ItemTagsProvider { public ItemTagProvider(DataGenerator generatorIn, BlockTagsProvider blockTagProvider, ExistingFileHelper helper) { @@ -29,7 +34,22 @@ public class ItemTagProvider extends ItemTagsProvider { this.copy(BlockTags.SLABS, ItemTags.SLABS); this.tag(Tags.Items.RODS_WOODEN).add(ModItems.ANCIENT_STICK); - this.tag(ItemTags.CLUSTER_MAX_HARVESTABLES).add(ModItems.INFUSED_IRON_PICKAXE, ModItems.SKY_PICKAXE, ModItems.DEPTH_PICKAXE); + + // sort these so that they don't change the json every time we run data (because it's a set) + ModRegistry.ALL_ITEMS.stream().sorted(Comparator.comparing(IModItem::getBaseName)).filter(i -> i instanceof Item).map(i -> (Item) i).forEach(i -> { + if (i instanceof ItemPickaxe) { + this.tag(ItemTags.CLUSTER_MAX_HARVESTABLES).add(i); + this.tag(Tags.Items.TOOLS_PICKAXES).add(i); + } else if (i instanceof ItemAxe) { + this.tag(Tags.Items.TOOLS_AXES).add(i); + } else if (i instanceof ItemHoe) { + this.tag(Tags.Items.TOOLS_HOES).add(i); + } else if (i instanceof ItemSword) { + this.tag(Tags.Items.TOOLS_SWORDS).add(i); + } else if (i instanceof ItemShovel) { + this.tag(Tags.Items.TOOLS_SHOVELS).add(i); + } + }); Compat.addItemTags(this); }