Housekeep remaining tags, correct recipes

This commit is contained in:
DBotThePony 2022-09-26 16:14:28 +07:00
parent c91e3b0bc6
commit b4b0afa9d5
Signed by: DBot
GPG Key ID: DCC23B5715498507
7 changed files with 74 additions and 71 deletions

View File

@ -4,6 +4,7 @@ import net.minecraft.data.recipes.FinishedRecipe
import net.minecraft.data.recipes.ShapedRecipeBuilder import net.minecraft.data.recipes.ShapedRecipeBuilder
import net.minecraft.data.recipes.ShapelessRecipeBuilder import net.minecraft.data.recipes.ShapelessRecipeBuilder
import net.minecraft.tags.ItemTags import net.minecraft.tags.ItemTags
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items import net.minecraft.world.item.Items
import net.minecraft.world.item.crafting.Ingredient import net.minecraft.world.item.crafting.Ingredient
import net.minecraftforge.common.Tags import net.minecraftforge.common.Tags
@ -28,9 +29,9 @@ fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
.save(consumer) .save(consumer)
ShapelessRecipeBuilder(crate, 1) ShapelessRecipeBuilder(crate, 1)
.requires(Ingredient.of(MItemTags.CARGO_CRATES), 1) .requires(Ingredient.of(MRegistry.CARGO_CRATES.allItems.entries.stream().filter { it.key != dye }.map { ItemStack(it.value) }))
.requires(Ingredient.of(dye.tag), 1) .requires(dye.tag)
.unlockedBy("has_tritanium_crate", has(MItemTags.CARGO_CRATES)) .unlockedBy(MRegistry.CARGO_CRATES.allItems.entries.stream().filter { it.key != dye }.map { it.value })
.save(consumer, "${crate.registryName}_alt") .save(consumer, "${crate.registryName}_alt")
} }

View File

@ -18,6 +18,7 @@ import ru.dbotthepony.mc.otm.datagen.DataGen
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipe import ru.dbotthepony.mc.otm.recipe.PlatePressRecipe
import java.util.LinkedList import java.util.LinkedList
import java.util.function.Consumer import java.util.function.Consumer
import java.util.stream.Stream
private typealias RecipeBuilderCallback = (MatteryRecipeProvider, consumer: Consumer<FinishedRecipe>) -> Unit private typealias RecipeBuilderCallback = (MatteryRecipeProvider, consumer: Consumer<FinishedRecipe>) -> Unit
@ -43,13 +44,23 @@ fun inventoryTrigger(vararg p_126012_: ItemPredicate): InventoryChangeTrigger.Tr
) )
} }
fun RecipeBuilder.unlockedBy(item: ItemLike): RecipeBuilder { fun <T : RecipeBuilder> T.unlockedBy(item: ItemLike): T {
val location = item.asItem().registryName!! val location = item.asItem().registryName!!
return unlockedBy("has_${location.namespace}_${location.path}", has(item)) unlockedBy("has_${location.namespace}_${location.path}", has(item))
return this
} }
fun RecipeBuilder.unlockedBy(item: TagKey<Item>): RecipeBuilder { fun <T : RecipeBuilder> T.unlockedBy(item: Stream<out ItemLike>): T {
return unlockedBy("has_${item.location.namespace}_${item.location.path}", has(item)) for (value in item) {
unlockedBy(value)
}
return this
}
fun <T : RecipeBuilder> T.unlockedBy(item: TagKey<Item>): T {
unlockedBy("has_${item.location.namespace}_${item.location.path}", has(item))
return this
} }
class MatteryRecipeProvider(generatorIn: DataGenerator) : RecipeProvider(generatorIn) { class MatteryRecipeProvider(generatorIn: DataGenerator) : RecipeProvider(generatorIn) {

View File

@ -3,7 +3,9 @@ package ru.dbotthepony.mc.otm.datagen.recipes
import net.minecraft.data.recipes.FinishedRecipe import net.minecraft.data.recipes.FinishedRecipe
import net.minecraft.data.recipes.ShapelessRecipeBuilder import net.minecraft.data.recipes.ShapelessRecipeBuilder
import net.minecraft.world.item.DyeColor import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items import net.minecraft.world.item.Items
import net.minecraft.world.item.crafting.Ingredient
import ru.dbotthepony.mc.otm.core.registryName import ru.dbotthepony.mc.otm.core.registryName
import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.datagen.modLocation
import ru.dbotthepony.mc.otm.registry.MItemTags import ru.dbotthepony.mc.otm.registry.MItemTags
@ -21,9 +23,9 @@ fun addShapelessRecipes(consumer: Consumer<FinishedRecipe>) {
.save(consumer) .save(consumer)
ShapelessRecipeBuilder(MItems.CARGO_CRATE_MINECARTS[color]!!, 1) ShapelessRecipeBuilder(MItems.CARGO_CRATE_MINECARTS[color]!!, 1)
.requires(MItemTags.MINECART_CARGO_CRATES) .requires(Ingredient.of(MItems.CARGO_CRATE_MINECARTS.entries.stream().filter { it.key != color }.map { ItemStack(it.value) }))
.requires(color.tag) .requires(color.tag)
.unlockedBy(MItemTags.MINECART_CARGO_CRATES) .unlockedBy(MItems.CARGO_CRATE_MINECARTS.entries.stream().filter { it.key != color }.map { it.value })
.save(consumer, modLocation(MItems.CARGO_CRATE_MINECARTS[color]!!.registryName!!.path + "_alt")) .save(consumer, modLocation(MItems.CARGO_CRATE_MINECARTS[color]!!.registryName!!.path + "_alt"))
} }

View File

@ -4,6 +4,7 @@ import net.minecraft.world.effect.MobEffects
import net.minecraft.world.item.DyeColor import net.minecraft.world.item.DyeColor
import net.minecraft.world.item.Items import net.minecraft.world.item.Items
import net.minecraft.world.item.Tiers import net.minecraft.world.item.Tiers
import ru.dbotthepony.mc.otm.registry.MBlockTags
import ru.dbotthepony.mc.otm.registry.MBlocks import ru.dbotthepony.mc.otm.registry.MBlocks
import ru.dbotthepony.mc.otm.registry.MItemTags import ru.dbotthepony.mc.otm.registry.MItemTags
import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.registry.MItems
@ -57,6 +58,10 @@ fun addTags(tagsProvider: TagsProvider) {
MRegistry.INDUSTRIAL_GLASS.forEachBlock { s, _, block -> tagsProvider.blocks.forge("hardened_glass/$s").add(block) } MRegistry.INDUSTRIAL_GLASS.forEachBlock { s, _, block -> tagsProvider.blocks.forge("hardened_glass/$s").add(block) }
MRegistry.INDUSTRIAL_GLASS_PANE.forEachBlock { s, _, block -> tagsProvider.blocks.forge("hardened_glass_panes/$s").add(block) } MRegistry.INDUSTRIAL_GLASS_PANE.forEachBlock { s, _, block -> tagsProvider.blocks.forge("hardened_glass_panes/$s").add(block) }
tagsProvider.items.appender(MItemTags.INDUSTRIAL_GLASS).add(MRegistry.INDUSTRIAL_GLASS.allItems.values)
tagsProvider.blocks.appender(MBlockTags.INDUSTRIAL_GLASS).add(MRegistry.INDUSTRIAL_GLASS.allBlocks.values)
tagsProvider.blocks.appender(MBlockTags.CARGO_CRATES).add(MRegistry.CARGO_CRATES.allBlocks.values)
tagsProvider.requiresPickaxe(listOf( tagsProvider.requiresPickaxe(listOf(
MBlocks.ANDROID_STATION, MBlocks.ANDROID_STATION,
MBlocks.BATTERY_BANK, MBlocks.BATTERY_BANK,

View File

@ -1,9 +1,11 @@
package ru.dbotthepony.mc.otm.registry package ru.dbotthepony.mc.otm.registry
import net.minecraft.resources.ResourceLocation import net.minecraft.resources.ResourceLocation
import net.minecraft.tags.BlockTags
import net.minecraft.tags.ItemTags import net.minecraft.tags.ItemTags
import net.minecraft.tags.TagKey import net.minecraft.tags.TagKey
import net.minecraft.world.item.Item import net.minecraft.world.item.Item
import net.minecraft.world.level.block.Block
import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.OverdriveThatMatters
@Suppress("unused") @Suppress("unused")
@ -62,3 +64,47 @@ object MItemTags {
val HARDENED_GLASS_WHITE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/white")) val HARDENED_GLASS_WHITE: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/white"))
val HARDENED_GLASS_YELLOW: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/yellow")) val HARDENED_GLASS_YELLOW: TagKey<Item> = ItemTags.create(ResourceLocation("forge", "hardened_glass/yellow"))
} }
@Suppress("unused")
object MBlockTags {
val CARGO_CRATES: TagKey<Block> = BlockTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "cargo_crates"))
val INDUSTRIAL_GLASS: TagKey<Block> = BlockTags.create(ResourceLocation(OverdriveThatMatters.MOD_ID, "industrial_glass"))
val HARDENED_GLASS_PANES: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes"))
val HARDENED_GLASS_PANES_BLACK: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/black"))
val HARDENED_GLASS_PANES_BLUE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/blue"))
val HARDENED_GLASS_PANES_BROWN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/brown"))
val HARDENED_GLASS_PANES_COLORLESS: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/colorless"))
val HARDENED_GLASS_PANES_CYAN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/cyan"))
val HARDENED_GLASS_PANES_GRAY: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/gray"))
val HARDENED_GLASS_PANES_GREEN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/green"))
val HARDENED_GLASS_PANES_LIGHT_BLUE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/light_blue"))
val HARDENED_GLASS_PANES_LIGHT_GRAY: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/light_gray"))
val HARDENED_GLASS_PANES_LIME: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/lime"))
val HARDENED_GLASS_PANES_MAGENTA: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/magenta"))
val HARDENED_GLASS_PANES_ORANGE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/orange"))
val HARDENED_GLASS_PANES_PINK: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/pink"))
val HARDENED_GLASS_PANES_PURPLE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/purple"))
val HARDENED_GLASS_PANES_RED: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/red"))
val HARDENED_GLASS_PANES_WHITE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/white"))
val HARDENED_GLASS_PANES_YELLOW: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass_panes/yellow"))
val HARDENED_GLASS: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass"))
val HARDENED_GLASS_BLACK: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/black"))
val HARDENED_GLASS_BLUE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/blue"))
val HARDENED_GLASS_BROWN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/brown"))
val HARDENED_GLASS_COLORLESS: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/colorless"))
val HARDENED_GLASS_CYAN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/cyan"))
val HARDENED_GLASS_GRAY: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/gray"))
val HARDENED_GLASS_GREEN: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/green"))
val HARDENED_GLASS_LIGHT_BLUE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/light_blue"))
val HARDENED_GLASS_LIGHT_GRAY: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/light_gray"))
val HARDENED_GLASS_LIME: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/lime"))
val HARDENED_GLASS_MAGENTA: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/magenta"))
val HARDENED_GLASS_ORANGE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/orange"))
val HARDENED_GLASS_PINK: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/pink"))
val HARDENED_GLASS_PURPLE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/purple"))
val HARDENED_GLASS_RED: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/red"))
val HARDENED_GLASS_WHITE: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/white"))
val HARDENED_GLASS_YELLOW: TagKey<Block> = BlockTags.create(ResourceLocation("forge", "hardened_glass/yellow"))
}

View File

@ -1,40 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:industrial_glass",
"overdrive_that_matters:industrial_glass_pane",
"overdrive_that_matters:industrial_glass_white",
"overdrive_that_matters:industrial_glass_pane_white",
"overdrive_that_matters:industrial_glass_orange",
"overdrive_that_matters:industrial_glass_pane_orange",
"overdrive_that_matters:industrial_glass_magenta",
"overdrive_that_matters:industrial_glass_pane_magenta",
"overdrive_that_matters:industrial_glass_light_blue",
"overdrive_that_matters:industrial_glass_pane_light_blue",
"overdrive_that_matters:industrial_glass_yellow",
"overdrive_that_matters:industrial_glass_pane_yellow",
"overdrive_that_matters:industrial_glass_lime",
"overdrive_that_matters:industrial_glass_pane_lime",
"overdrive_that_matters:industrial_glass_pink",
"overdrive_that_matters:industrial_glass_pane_pink",
"overdrive_that_matters:industrial_glass_gray",
"overdrive_that_matters:industrial_glass_pane_gray",
"overdrive_that_matters:industrial_glass_light_gray",
"overdrive_that_matters:industrial_glass_pane_light_gray",
"overdrive_that_matters:industrial_glass_cyan",
"overdrive_that_matters:industrial_glass_pane_cyan",
"overdrive_that_matters:industrial_glass_purple",
"overdrive_that_matters:industrial_glass_pane_purple",
"overdrive_that_matters:industrial_glass_blue",
"overdrive_that_matters:industrial_glass_pane_blue",
"overdrive_that_matters:industrial_glass_brown",
"overdrive_that_matters:industrial_glass_pane_brown",
"overdrive_that_matters:industrial_glass_green",
"overdrive_that_matters:industrial_glass_pane_green",
"overdrive_that_matters:industrial_glass_red",
"overdrive_that_matters:industrial_glass_pane_red",
"overdrive_that_matters:industrial_glass_black",
"overdrive_that_matters:industrial_glass_pane_black"
]
}

View File

@ -1,22 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:cargo_crate",
"overdrive_that_matters:cargo_crate_white",
"overdrive_that_matters:cargo_crate_orange",
"overdrive_that_matters:cargo_crate_magenta",
"overdrive_that_matters:cargo_crate_light_blue",
"overdrive_that_matters:cargo_crate_yellow",
"overdrive_that_matters:cargo_crate_lime",
"overdrive_that_matters:cargo_crate_pink",
"overdrive_that_matters:cargo_crate_gray",
"overdrive_that_matters:cargo_crate_light_gray",
"overdrive_that_matters:cargo_crate_cyan",
"overdrive_that_matters:cargo_crate_purple",
"overdrive_that_matters:cargo_crate_blue",
"overdrive_that_matters:cargo_crate_brown",
"overdrive_that_matters:cargo_crate_green",
"overdrive_that_matters:cargo_crate_red",
"overdrive_that_matters:cargo_crate_black"
]
}