diff --git a/src/main/java/ru/betterend/integration/Integrations.java b/src/main/java/ru/betterend/integration/Integrations.java index 769c7598..e139c5df 100644 --- a/src/main/java/ru/betterend/integration/Integrations.java +++ b/src/main/java/ru/betterend/integration/Integrations.java @@ -9,6 +9,7 @@ import ru.betterend.integration.byg.BYGIntegration; public class Integrations { public static final List INTEGRATIONS = Lists.newArrayList(); public static final ModIntegration BYG = register(new BYGIntegration()); + public static final ModIntegration NOURISH = register(new NourishIntegration()); //public static final ModIntegration EXTRA_PIECES = register(new ExtraPiecesIntegration()); //public static final ModIntegration ADORN = register(new AdornIntegration()); diff --git a/src/main/java/ru/betterend/integration/ModIntegration.java b/src/main/java/ru/betterend/integration/ModIntegration.java index 0e560852..ef39fa69 100644 --- a/src/main/java/ru/betterend/integration/ModIntegration.java +++ b/src/main/java/ru/betterend/integration/ModIntegration.java @@ -4,9 +4,15 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import net.fabricmc.fabric.api.tag.TagRegistry; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.item.Item; +import net.minecraft.tag.BlockTags; +import net.minecraft.tag.ItemTags; +import net.minecraft.tag.Tag; +import net.minecraft.tag.Tag.Identified; import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.Registry; @@ -168,4 +174,16 @@ public abstract class ModIntegration { } return null; } + + public Tag.Identified getItemTag(String name) { + Identifier id = getID(name); + Tag tag = ItemTags.getTagGroup().getTag(id); + return tag == null ? (Identified) TagRegistry.item(id) : (Identified) tag; + } + + public Tag.Identified getBlockTag(String name) { + Identifier id = getID(name); + Tag tag = BlockTags.getTagGroup().getTag(id); + return tag == null ? (Identified) TagRegistry.block(id) : (Identified) tag; + } } diff --git a/src/main/java/ru/betterend/integration/NourishIntegration.java b/src/main/java/ru/betterend/integration/NourishIntegration.java new file mode 100644 index 00000000..3e700dbd --- /dev/null +++ b/src/main/java/ru/betterend/integration/NourishIntegration.java @@ -0,0 +1,28 @@ +package ru.betterend.integration; + +import net.minecraft.item.Item; +import net.minecraft.tag.Tag; +import ru.betterend.registry.EndItems; +import ru.betterend.util.TagHelper; + +public class NourishIntegration extends ModIntegration { + public NourishIntegration() { + super("nourish"); + } + + @Override + public void register() { + Tag.Identified fats = getItemTag("fats"); + Tag.Identified fruit = getItemTag("fruit"); + Tag.Identified protein = getItemTag("protein"); + Tag.Identified sweets = getItemTag("sweets"); + + TagHelper.addTag(fats, EndItems.END_FISH_RAW, EndItems.END_FISH_COOKED); + TagHelper.addTag(fruit, EndItems.SHADOW_BERRY_RAW, EndItems.SHADOW_BERRY_COOKED, EndItems.BLOSSOM_BERRY, EndItems.SHADOW_BERRY_JELLY, EndItems.SWEET_BERRY_JELLY); + TagHelper.addTag(protein, EndItems.END_FISH_RAW, EndItems.END_FISH_COOKED); + TagHelper.addTag(sweets, EndItems.SHADOW_BERRY_JELLY, EndItems.SWEET_BERRY_JELLY); + } + + @Override + public void addBiomes() {} +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 71c71e3c..a832e8b1 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -44,6 +44,7 @@ }, "suggests": { "byg": ">=1.1.3", - "blockus": ">=2.0.2" + "blockus": ">=2.0.2", + "nourish": ">=1.2.0" } }