From c6bf2ab6a3630ba47e7e6a7a4b4a5c22f078db37 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 4 Sep 2024 22:09:54 +0700 Subject: [PATCH] Add "dyed with" neoforge tags to items --- .../dbotthepony/mc/otm/datagen/tags/Tags.kt | 49 ++++++++++++++++++- .../mc/otm/datagen/tags/TagsProvider.kt | 18 +++++++ 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt index 0d9e0cdbd..2d46e61b2 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt @@ -1,6 +1,5 @@ package ru.dbotthepony.mc.otm.datagen.tags -import net.minecraft.resources.ResourceLocation import net.minecraft.tags.BlockTags import net.minecraft.tags.ItemTags import net.minecraft.world.effect.MobEffects @@ -237,6 +236,54 @@ fun addTags(tagsProvider: TagsProvider) { MBlocks.ITEM_OUTPUT_HATCH, ), Tiers.IRON) + tagsProvider.addToDyeTags(MRegistry.CARGO_CRATES.allItems) + + tagsProvider.addToDyeTags(MRegistry.INDUSTRIAL_GLASS.allItems) + tagsProvider.addToDyeTags(MRegistry.INDUSTRIAL_GLASS_PANE.allItems) + + tagsProvider.addToDyeTags(MRegistry.DECORATIVE_CRATE.items) + + tagsProvider.addToDyeTags(MItems.TRITANIUM_DOOR) + tagsProvider.addToDyeTags(MItems.TRITANIUM_TRAPDOOR) + tagsProvider.addToDyeTags(MRegistry.TRITANIUM_PRESSURE_PLATE.allItems) + + tagsProvider.addToDyeTags(MRegistry.FLOOR_TILES_STAIRS.items) + tagsProvider.addToDyeTags(MRegistry.TRITANIUM_STAIRS.items) + + tagsProvider.addToDyeTags(MRegistry.TRITANIUM_SLAB.items) + tagsProvider.addToDyeTags(MRegistry.FLOOR_TILES_SLAB.items) + tagsProvider.addToDyeTags(MRegistry.UNREFINED_FLOOR_TILES.items) + + tagsProvider.addToDyeTags(MRegistry.TRITANIUM_WALL.items) + + tagsProvider.addToDyeTags(MItems.ANDROID_STATION) + tagsProvider.addToDyeTags(MItems.ENERGY_SERVO) + tagsProvider.addToDyeTags(MItems.MATTER_DECOMPOSER) + tagsProvider.addToDyeTags(MItems.MATTER_CAPACITOR_BANK) + tagsProvider.addToDyeTags(MItems.BATTERY_BANK) + tagsProvider.addToDyeTags(MItems.MATTER_SCANNER) + tagsProvider.addToDyeTags(MItems.MATTER_PANEL) + tagsProvider.addToDyeTags(MItems.MATTER_REPLICATOR) + tagsProvider.addToDyeTags(MItems.MATTER_BOTTLER) + tagsProvider.addToDyeTags(MItems.ENERGY_COUNTER) + tagsProvider.addToDyeTags(MItems.CHEMICAL_GENERATOR) + tagsProvider.addToDyeTags(MItems.PLATE_PRESS) + tagsProvider.addToDyeTags(MItems.TWIN_PLATE_PRESS) + tagsProvider.addToDyeTags(MItems.MATTER_RECYCLER) + + tagsProvider.addToDyeTags(MItems.POWERED_FURNACE) + tagsProvider.addToDyeTags(MItems.POWERED_SMOKER) + tagsProvider.addToDyeTags(MItems.POWERED_BLAST_FURNACE) + + tagsProvider.addToDyeTags(MItems.DRIVE_VIEWER) + tagsProvider.addToDyeTags(MItems.ITEM_MONITOR) + tagsProvider.addToDyeTags(MItems.STORAGE_POWER_SUPPLIER) + + tagsProvider.addToDyeTags(MItems.COBBLESTONE_GENERATOR) + tagsProvider.addToDyeTags(MItems.ESSENCE_STORAGE) + tagsProvider.addToDyeTags(MItems.MATTER_RECONSTRUCTOR) + tagsProvider.addToDyeTags(MItems.ANDROID_CHARGER) + tagsProvider.requiresPickaxe(MBlocks.TRITANIUM_ANVIL, Tiers.IRON) tagsProvider.requiresPickaxe(MBlocks.TRITANIUM_ORE, Tiers.IRON) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/TagsProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/TagsProvider.kt index 31f4bac00..5f35ce734 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/TagsProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/TagsProvider.kt @@ -11,6 +11,7 @@ import net.minecraft.resources.ResourceLocation import net.minecraft.tags.BlockTags import net.minecraft.tags.GameEventTags import net.minecraft.tags.TagKey +import net.minecraft.world.item.DyeColor import net.minecraft.world.item.Item import net.minecraft.world.item.Tier import net.minecraft.world.item.Tiers @@ -21,6 +22,7 @@ import net.neoforged.neoforge.registries.NeoForgeRegistries import ru.dbotthepony.mc.otm.capability.MatteryPlayer import ru.dbotthepony.mc.otm.core.ResourceLocation import ru.dbotthepony.mc.otm.datagen.DataGen +import java.util.EnumMap import java.util.stream.Stream import net.minecraft.data.tags.TagsProvider as MinecraftTagsProvider @@ -178,6 +180,22 @@ class TagsProvider(private val event: GatherDataEvent) { val mobEffects = Delegate(BuiltInRegistries.MOB_EFFECT) val damageTypes = Delegate(Registries.DAMAGE_TYPE) + private val coloredItems = EnumMap.Appender>(DyeColor::class.java) + + init { + DyeColor.entries.forEach { + coloredItems[it] = items.Appender(it.dyedTag) + } + } + + fun addToDyeTags(values: Map) { + for ((c, it) in values) { + if (c != null) { + coloredItems[c]!!.add(it) + } + } + } + val androidImmuneEffects = mobEffects.Appender(MatteryPlayer.ANDROID_IMMUNE_EFFECTS) val requiresShovel = blocks.Appender(BlockTags.MINEABLE_WITH_SHOVEL)