Datagen tags
This commit is contained in:
parent
2b3d2e3d75
commit
14eece598a
@ -34,6 +34,8 @@ import ru.dbotthepony.mc.otm.datagen.lang.MatteryLanguageProvider
|
|||||||
import ru.dbotthepony.mc.otm.datagen.loot.addLootModifiers
|
import ru.dbotthepony.mc.otm.datagen.loot.addLootModifiers
|
||||||
import ru.dbotthepony.mc.otm.datagen.loot.addLootTables
|
import ru.dbotthepony.mc.otm.datagen.loot.addLootTables
|
||||||
import ru.dbotthepony.mc.otm.datagen.recipes.addCraftingTableRecipes
|
import ru.dbotthepony.mc.otm.datagen.recipes.addCraftingTableRecipes
|
||||||
|
import ru.dbotthepony.mc.otm.datagen.tags.TagsProvider
|
||||||
|
import ru.dbotthepony.mc.otm.datagen.tags.addTags
|
||||||
import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock
|
import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock
|
||||||
import ru.dbotthepony.mc.otm.registry.objects.DecorativeBlock
|
import ru.dbotthepony.mc.otm.registry.objects.DecorativeBlock
|
||||||
|
|
||||||
@ -119,7 +121,6 @@ object DataGen {
|
|||||||
private fun decoratives(list: ColoredDecorativeBlock) {
|
private fun decoratives(list: ColoredDecorativeBlock) {
|
||||||
for (block in list.coloredBlocks) {
|
for (block in list.coloredBlocks) {
|
||||||
decorativeCubeAll(block)
|
decorativeCubeAll(block)
|
||||||
lootTableProvider.dropsSelf(block)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (item in list.coloredItems) {
|
for (item in list.coloredItems) {
|
||||||
@ -130,7 +131,6 @@ object DataGen {
|
|||||||
private fun decoratives(list: DecorativeBlock) {
|
private fun decoratives(list: DecorativeBlock) {
|
||||||
for (block in list.blocks) {
|
for (block in list.blocks) {
|
||||||
decorativeCubeAll(block)
|
decorativeCubeAll(block)
|
||||||
lootTableProvider.dropsSelf(block)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (item in list.items) {
|
for (item in list.items) {
|
||||||
@ -150,6 +150,9 @@ object DataGen {
|
|||||||
lootModifier = LootModifiers(event.generator)
|
lootModifier = LootModifiers(event.generator)
|
||||||
languageProvider = MatteryLanguageProvider(event.generator)
|
languageProvider = MatteryLanguageProvider(event.generator)
|
||||||
|
|
||||||
|
val tagsProvider = TagsProvider(event)
|
||||||
|
|
||||||
|
addTags(tagsProvider)
|
||||||
AddEnglishLanguage(languageProvider)
|
AddEnglishLanguage(languageProvider)
|
||||||
|
|
||||||
event.generator.addProvider(true, blockModelProvider)
|
event.generator.addProvider(true, blockModelProvider)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package ru.dbotthepony.mc.otm.datagen.loot
|
package ru.dbotthepony.mc.otm.datagen.loot
|
||||||
|
|
||||||
import com.mojang.datafixers.util.Pair
|
import com.mojang.datafixers.util.Pair
|
||||||
|
import it.unimi.dsi.fastutil.objects.ObjectArraySet
|
||||||
import net.minecraft.data.DataGenerator
|
import net.minecraft.data.DataGenerator
|
||||||
import net.minecraft.data.loot.LootTableProvider
|
import net.minecraft.data.loot.LootTableProvider
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
@ -42,7 +43,13 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
|||||||
providers.add(Pair(Supplier {provider}, LootContextParamSets.BLOCK))
|
providers.add(Pair(Supplier {provider}, LootContextParamSets.BLOCK))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val seenStuff = ObjectArraySet<Any>()
|
||||||
|
|
||||||
fun dropsSelf(block: Block) {
|
fun dropsSelf(block: Block) {
|
||||||
|
if (!seenStuff.add(block)) {
|
||||||
|
throw IllegalStateException("Already seen $block")
|
||||||
|
}
|
||||||
|
|
||||||
block {
|
block {
|
||||||
it.accept(block.lootTable, singleLootPool {
|
it.accept(block.lootTable, singleLootPool {
|
||||||
it.add(LootItem.lootTableItem(block))
|
it.add(LootItem.lootTableItem(block))
|
||||||
@ -59,6 +66,10 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun tile(block: Block, f: (CopyNbtFunction.Builder) -> Unit = {}) {
|
fun tile(block: Block, f: (CopyNbtFunction.Builder) -> Unit = {}) {
|
||||||
|
if (!seenStuff.add(block)) {
|
||||||
|
throw IllegalStateException("Already seen $block")
|
||||||
|
}
|
||||||
|
|
||||||
block {
|
block {
|
||||||
it.accept(block.lootTable, singleLootPool {
|
it.accept(block.lootTable, singleLootPool {
|
||||||
it.add(LootItem.lootTableItem(block).also {
|
it.add(LootItem.lootTableItem(block).also {
|
||||||
|
82
src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt
Normal file
82
src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.datagen.tags
|
||||||
|
|
||||||
|
import net.minecraft.world.item.Items
|
||||||
|
import net.minecraft.world.item.Tiers
|
||||||
|
import ru.dbotthepony.mc.otm.registry.MBlocks
|
||||||
|
import ru.dbotthepony.mc.otm.registry.MItems
|
||||||
|
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||||
|
|
||||||
|
fun addTags(tagsProvider: TagsProvider) {
|
||||||
|
tagsProvider.items.forge("pistons").add(Items.PISTON)
|
||||||
|
tagsProvider.circuits.add("basic", MItems.BASIC_CONTROL_CIRCUIT)
|
||||||
|
tagsProvider.circuits.add("advanced", MItems.ADVANCED_CONTROL_CIRCUIT)
|
||||||
|
|
||||||
|
tagsProvider.ingots.add("tritanium", MItems.TRITANIUM_INGOT)
|
||||||
|
|
||||||
|
tagsProvider.ore("tritanium", MBlocks.TRITANIUM_ORE)
|
||||||
|
tagsProvider.ore("tritanium", MBlocks.DEEPSLATE_TRITANIUM_ORE)
|
||||||
|
tagsProvider.clump("tritanium", MItems.TRITANIUM_ORE_CLUMP, MBlocks.TRITANIUM_RAW_BLOCK)
|
||||||
|
|
||||||
|
tagsProvider.wires.add("copper", MItems.COPPER_WIRING)
|
||||||
|
tagsProvider.wires.add("gold", MItems.GOLD_WIRING)
|
||||||
|
|
||||||
|
tagsProvider.requiresPickaxe(
|
||||||
|
MBlocks.MATTER_CABLE,
|
||||||
|
MBlocks.STORAGE_CABLE
|
||||||
|
)
|
||||||
|
|
||||||
|
tagsProvider.requiresPickaxe(listOf(
|
||||||
|
MBlocks.ANDROID_STATION,
|
||||||
|
MBlocks.BATTERY_BANK,
|
||||||
|
MBlocks.MATTER_DECOMPOSER,
|
||||||
|
MBlocks.MATTER_CAPACITOR_BANK,
|
||||||
|
MBlocks.PATTERN_STORAGE,
|
||||||
|
MBlocks.MATTER_SCANNER,
|
||||||
|
MBlocks.MATTER_PANEL,
|
||||||
|
MBlocks.MATTER_REPLICATOR,
|
||||||
|
MBlocks.MATTER_BOTTLER,
|
||||||
|
MBlocks.ENERGY_COUNTER,
|
||||||
|
MBlocks.CHEMICAL_GENERATOR,
|
||||||
|
MBlocks.PLATE_PRESS,
|
||||||
|
MBlocks.MATTER_RECYCLER,
|
||||||
|
|
||||||
|
MBlocks.STORAGE_BUS,
|
||||||
|
MBlocks.STORAGE_IMPORTER,
|
||||||
|
MBlocks.STORAGE_EXPORTER,
|
||||||
|
|
||||||
|
MBlocks.DRIVE_VIEWER,
|
||||||
|
MBlocks.DRIVE_RACK,
|
||||||
|
MBlocks.ITEM_MONITOR,
|
||||||
|
MBlocks.STORAGE_POWER_SUPPLIER,
|
||||||
|
), Tiers.IRON)
|
||||||
|
|
||||||
|
tagsProvider.requiresPickaxe(MBlocks.TRITANIUM_STRIPED_BLOCK, Tiers.IRON)
|
||||||
|
tagsProvider.requiresPickaxe(MBlocks.CARBON_FIBRE_BLOCK, Tiers.IRON)
|
||||||
|
|
||||||
|
tagsProvider.requiresPickaxe(MRegistry.VENT.blocks, Tiers.IRON)
|
||||||
|
tagsProvider.requiresPickaxe(MRegistry.VENT_ALTERNATIVE.blocks, Tiers.IRON)
|
||||||
|
tagsProvider.requiresPickaxe(MRegistry.TRITANIUM_BLOCK.blocks, Tiers.IRON)
|
||||||
|
tagsProvider.requiresPickaxe(MRegistry.TRITANIUM_STRIPED_BLOCK.blocks, Tiers.IRON)
|
||||||
|
tagsProvider.requiresPickaxe(MRegistry.FLOOR_TILES.coloredBlocks)
|
||||||
|
|
||||||
|
tagsProvider.requiresShovel(MRegistry.UNREFINED_FLOOR_TILES.coloredBlocks)
|
||||||
|
|
||||||
|
tagsProvider.requiresPickaxe(MRegistry.INDUSTRIAL_GLASS.blocks, Tiers.STONE)
|
||||||
|
tagsProvider.requiresPickaxe(MRegistry.INDUSTRIAL_GLASS_PANE.blocks, Tiers.STONE)
|
||||||
|
tagsProvider.requiresPickaxe(MBlocks.CRATE_LIST, Tiers.STONE)
|
||||||
|
|
||||||
|
tagsProvider.requiresPickaxe(listOf(
|
||||||
|
MBlocks.GRAVITATION_STABILIZER,
|
||||||
|
MBlocks.GRAVITATION_STABILIZER_LENS,
|
||||||
|
), Tiers.DIAMOND)
|
||||||
|
|
||||||
|
tagsProvider.dragonImmune.add(
|
||||||
|
MBlocks.BLACK_HOLE,
|
||||||
|
MBlocks.GRAVITATION_STABILIZER,
|
||||||
|
MBlocks.GRAVITATION_STABILIZER_LENS,
|
||||||
|
)
|
||||||
|
|
||||||
|
tagsProvider.witherImmune.add(
|
||||||
|
MBlocks.BLACK_HOLE,
|
||||||
|
)
|
||||||
|
}
|
@ -0,0 +1,275 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.datagen.tags
|
||||||
|
|
||||||
|
import it.unimi.dsi.fastutil.objects.ObjectArraySet
|
||||||
|
import net.minecraft.core.Registry
|
||||||
|
import net.minecraft.resources.ResourceLocation
|
||||||
|
import net.minecraft.tags.BlockTags
|
||||||
|
import net.minecraft.tags.TagKey
|
||||||
|
import net.minecraft.world.item.Item
|
||||||
|
import net.minecraft.world.item.Tier
|
||||||
|
import net.minecraft.world.item.Tiers
|
||||||
|
import net.minecraft.world.level.block.Block
|
||||||
|
import net.minecraftforge.data.event.GatherDataEvent
|
||||||
|
import ru.dbotthepony.mc.otm.datagen.DataGen
|
||||||
|
import net.minecraft.data.tags.TagsProvider as MinecraftTagsProvider
|
||||||
|
|
||||||
|
interface MTagAppender<T> {
|
||||||
|
fun add(value: T): TagsProvider
|
||||||
|
fun addSafe(value: T): Boolean
|
||||||
|
fun add(vararg values: T): TagsProvider
|
||||||
|
fun addSafe(vararg values: T): Boolean {
|
||||||
|
var any = false
|
||||||
|
for (value in values) any = addSafe(value)
|
||||||
|
return any
|
||||||
|
}
|
||||||
|
|
||||||
|
fun add(values: List<T>): TagsProvider
|
||||||
|
|
||||||
|
fun addSafe(values: List<T>): Boolean {
|
||||||
|
var any = false
|
||||||
|
for (value in values) any = addSafe(value)
|
||||||
|
return any
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ForgeTagAppender<T> : MTagAppender<T> {
|
||||||
|
fun add(key: String, value: T): TagsProvider
|
||||||
|
fun addSafe(key: String, value: T): Boolean
|
||||||
|
fun add(key: String, vararg values: T): TagsProvider
|
||||||
|
fun addSafe(key: String, vararg values: T): Boolean {
|
||||||
|
var any = false
|
||||||
|
for (value in values) any = addSafe(key, value)
|
||||||
|
return any
|
||||||
|
}
|
||||||
|
|
||||||
|
fun add(key: String, values: List<T>): TagsProvider
|
||||||
|
|
||||||
|
fun addSafe(key: String, values: List<T>): Boolean {
|
||||||
|
var any = false
|
||||||
|
for (value in values) any = addSafe(key, value)
|
||||||
|
return any
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TagsProvider(
|
||||||
|
private val event: GatherDataEvent
|
||||||
|
) {
|
||||||
|
inner class Delegate<T>(registry: Registry<T>) : MinecraftTagsProvider<T>(event.generator, registry, DataGen.MOD_ID, event.existingFileHelper) {
|
||||||
|
private val tags = HashMap<TagKey<T>, ObjectArraySet<T>>()
|
||||||
|
|
||||||
|
override fun addTags() {
|
||||||
|
if (tags.isEmpty()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for ((tag, values) in tags) {
|
||||||
|
tag(tag).also {
|
||||||
|
for (value in values) {
|
||||||
|
it.add(value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getSet(tag: TagKey<T>): MutableSet<T> {
|
||||||
|
return tags.computeIfAbsent(tag) { ObjectArraySet() }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getSet(location: ResourceLocation) = getSet(TagKey.create(registry.key(), location))
|
||||||
|
|
||||||
|
fun appender(tag: TagKey<T>, message: ((T) -> Any) = { "$it is already in $tag" }): MTagAppender<T> {
|
||||||
|
val list = getSet(tag)
|
||||||
|
|
||||||
|
return object : MTagAppender<T> {
|
||||||
|
override fun add(value: T): TagsProvider {
|
||||||
|
if (!list.add(value)) {
|
||||||
|
throw IllegalStateException(message.invoke(value).toString())
|
||||||
|
}
|
||||||
|
|
||||||
|
return this@TagsProvider
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun add(values: List<T>): TagsProvider {
|
||||||
|
for (value in values) add(value)
|
||||||
|
return this@TagsProvider
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun addSafe(value: T): Boolean {
|
||||||
|
return list.add(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun add(vararg values: T): TagsProvider {
|
||||||
|
values.forEach(this::add)
|
||||||
|
return this@TagsProvider
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun forge(path: String): ForgeTagAppender<T> {
|
||||||
|
val parent by lazy { appender(ResourceLocation("forge", path)) }
|
||||||
|
|
||||||
|
return object : ForgeTagAppender<T> {
|
||||||
|
override fun add(key: String, value: T): TagsProvider {
|
||||||
|
val tag = TagKey.create(registry.key(), ResourceLocation("forge", "$path/$key"))
|
||||||
|
|
||||||
|
if (!getSet(tag).add(value)) {
|
||||||
|
throw IllegalStateException("$value is already in $tag")
|
||||||
|
}
|
||||||
|
|
||||||
|
return this@TagsProvider
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun addSafe(key: String, value: T): Boolean {
|
||||||
|
val tag = TagKey.create(registry.key(), ResourceLocation("forge", "$path/$key"))
|
||||||
|
return getSet(tag).add(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun add(key: String, vararg values: T): TagsProvider {
|
||||||
|
for (value in values) add(key, value)
|
||||||
|
return this@TagsProvider
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun add(key: String, values: List<T>): TagsProvider {
|
||||||
|
for (value in values) add(key, value)
|
||||||
|
return this@TagsProvider
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun add(value: T): TagsProvider {
|
||||||
|
return parent.add(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun addSafe(value: T): Boolean {
|
||||||
|
return parent.addSafe(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun add(vararg values: T): TagsProvider {
|
||||||
|
return parent.add(*values)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun add(values: List<T>): TagsProvider {
|
||||||
|
return parent.add(values)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun appender(location: ResourceLocation): MTagAppender<T> {
|
||||||
|
return appender(TagKey.create(registry.key(), location))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun appender(location: ResourceLocation, message: (T) -> Any): MTagAppender<T> {
|
||||||
|
return appender(TagKey.create(registry.key(), location), message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val blocks = Delegate(Registry.BLOCK)
|
||||||
|
val items = Delegate(Registry.ITEM)
|
||||||
|
|
||||||
|
val requiresShovel = blocks.appender(BlockTags.MINEABLE_WITH_SHOVEL)
|
||||||
|
val requiresAxe = blocks.appender(BlockTags.MINEABLE_WITH_AXE)
|
||||||
|
val requiresHoe = blocks.appender(BlockTags.MINEABLE_WITH_HOE)
|
||||||
|
val requiresPickaxe = blocks.appender(BlockTags.MINEABLE_WITH_PICKAXE)
|
||||||
|
|
||||||
|
val requiresStoneTool = blocks.appender(BlockTags.NEEDS_STONE_TOOL)
|
||||||
|
val requiresIronTool = blocks.appender(BlockTags.NEEDS_IRON_TOOL)
|
||||||
|
val requiresDiamondTool = blocks.appender(BlockTags.NEEDS_DIAMOND_TOOL)
|
||||||
|
|
||||||
|
val witherImmune = blocks.appender(BlockTags.WITHER_IMMUNE)
|
||||||
|
val dragonImmune = blocks.appender(BlockTags.DRAGON_IMMUNE)
|
||||||
|
|
||||||
|
fun ore(key: String, block: Block): TagsProvider {
|
||||||
|
val forgeKey = ResourceLocation("forge", "ores/$key")
|
||||||
|
val b = TagKey.create(Registry.BLOCK_REGISTRY, forgeKey)
|
||||||
|
val i = TagKey.create(Registry.ITEM_REGISTRY, forgeKey)
|
||||||
|
|
||||||
|
items.getSet(i).add(block.asItem())
|
||||||
|
blocks.getSet(b).add(block)
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun clump(key: String, clump: Item): TagsProvider {
|
||||||
|
itemOres.add(key, clump)
|
||||||
|
rawOres.add(key, clump)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun clump(key: String, clump: Item, rawBlock: Block): TagsProvider {
|
||||||
|
itemOres.add(key, clump)
|
||||||
|
rawOres.add(key, clump)
|
||||||
|
rawBlocksAsItem.add(key, rawBlock.asItem())
|
||||||
|
rawBlocksAsBlock.add(key, rawBlock)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
val circuits = items.forge("circuits")
|
||||||
|
val ingots = items.forge("ingots")
|
||||||
|
val itemOres = items.forge("ores")
|
||||||
|
val blockOres = blocks.forge("ores")
|
||||||
|
val plates = items.forge("plates")
|
||||||
|
val rawBlocksAsItem = items.forge("raw_blocks")
|
||||||
|
val rawBlocksAsBlock = blocks.forge("raw_blocks")
|
||||||
|
val rawOres = items.forge("raw_ores")
|
||||||
|
val wires = items.forge("wires")
|
||||||
|
|
||||||
|
init {
|
||||||
|
event.generator.addProvider(true, blocks)
|
||||||
|
event.generator.addProvider(true, items)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requiresPickaxe(block: Block, tier: Tier? = null): TagsProvider {
|
||||||
|
requiresPickaxe.add(block)
|
||||||
|
|
||||||
|
when (tier) {
|
||||||
|
Tiers.STONE -> requiresStoneTool.add(block)
|
||||||
|
Tiers.IRON -> requiresIronTool.add(block)
|
||||||
|
Tiers.DIAMOND, Tiers.NETHERITE -> requiresDiamondTool.add(block)
|
||||||
|
}
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requiresPickaxe(blocks: List<Block>, tier: Tier? = null): TagsProvider {
|
||||||
|
for (block in blocks) requiresPickaxe(block, tier)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requiresPickaxe(vararg blocks: Block, tier: Tier? = null): TagsProvider {
|
||||||
|
for (block in blocks) requiresPickaxe(block, tier)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requiresShovel(block: Block, tier: Tier? = null): TagsProvider {
|
||||||
|
requiresShovel.add(block)
|
||||||
|
|
||||||
|
when (tier) {
|
||||||
|
Tiers.STONE -> requiresStoneTool.add(block)
|
||||||
|
Tiers.IRON -> requiresIronTool.add(block)
|
||||||
|
Tiers.DIAMOND, Tiers.NETHERITE -> requiresDiamondTool.add(block)
|
||||||
|
}
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requiresShovel(blocks: List<Block>, tier: Tier? = null): TagsProvider {
|
||||||
|
for (block in blocks) requiresShovel(block, tier)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requiresAxe(block: Block, tier: Tier? = null): TagsProvider {
|
||||||
|
requiresAxe.add(block)
|
||||||
|
|
||||||
|
when (tier) {
|
||||||
|
Tiers.STONE -> requiresStoneTool.add(block)
|
||||||
|
Tiers.IRON -> requiresIronTool.add(block)
|
||||||
|
Tiers.DIAMOND, Tiers.NETHERITE -> requiresDiamondTool.add(block)
|
||||||
|
}
|
||||||
|
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requiresAxe(blocks: List<Block>, tier: Tier? = null): TagsProvider {
|
||||||
|
for (block in blocks) requiresAxe(block, tier)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:tritanium_ore"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:advanced_control_circuit"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:basic_control_circuit"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:tritanium_ingot"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:tritanium_ore",
|
|
||||||
"overdrive_that_matters:tritanium_ore_clump"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"minecraft:piston"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:iron_plate"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:tritanium_plate"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:tritanium_raw_block"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:tritanium_ore_clump"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:copper_wiring"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:gold_wiring"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:black_hole",
|
|
||||||
"overdrive_that_matters:gravitation_stabilizer",
|
|
||||||
"overdrive_that_matters:gravitation_stabilizer_lens"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,128 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:android_station",
|
|
||||||
"overdrive_that_matters:battery_bank",
|
|
||||||
"overdrive_that_matters:matter_decomposer",
|
|
||||||
"overdrive_that_matters:matter_capacitor_bank",
|
|
||||||
"overdrive_that_matters:matter_cable",
|
|
||||||
"overdrive_that_matters:pattern_storage",
|
|
||||||
"overdrive_that_matters:matter_scanner",
|
|
||||||
"overdrive_that_matters:matter_panel",
|
|
||||||
"overdrive_that_matters:matter_replicator",
|
|
||||||
"overdrive_that_matters:matter_bottler",
|
|
||||||
"overdrive_that_matters:drive_viewer",
|
|
||||||
"overdrive_that_matters:matter_recycler",
|
|
||||||
|
|
||||||
"overdrive_that_matters:tritanium_block",
|
|
||||||
|
|
||||||
"overdrive_that_matters:tritanium_block_white",
|
|
||||||
"overdrive_that_matters:tritanium_block_orange",
|
|
||||||
"overdrive_that_matters:tritanium_block_magenta",
|
|
||||||
"overdrive_that_matters:tritanium_block_light_blue",
|
|
||||||
"overdrive_that_matters:tritanium_block_yellow",
|
|
||||||
"overdrive_that_matters:tritanium_block_lime",
|
|
||||||
"overdrive_that_matters:tritanium_block_pink",
|
|
||||||
"overdrive_that_matters:tritanium_block_gray",
|
|
||||||
"overdrive_that_matters:tritanium_block_light_gray",
|
|
||||||
"overdrive_that_matters:tritanium_block_cyan",
|
|
||||||
"overdrive_that_matters:tritanium_block_purple",
|
|
||||||
"overdrive_that_matters:tritanium_block_blue",
|
|
||||||
"overdrive_that_matters:tritanium_block_brown",
|
|
||||||
"overdrive_that_matters:tritanium_block_green",
|
|
||||||
"overdrive_that_matters:tritanium_block_red",
|
|
||||||
"overdrive_that_matters:tritanium_block_black",
|
|
||||||
|
|
||||||
"overdrive_that_matters:floor_tiles_white",
|
|
||||||
"overdrive_that_matters:floor_tiles_orange",
|
|
||||||
"overdrive_that_matters:floor_tiles_magenta",
|
|
||||||
"overdrive_that_matters:floor_tiles_light_blue",
|
|
||||||
"overdrive_that_matters:floor_tiles_yellow",
|
|
||||||
"overdrive_that_matters:floor_tiles_lime",
|
|
||||||
"overdrive_that_matters:floor_tiles_pink",
|
|
||||||
"overdrive_that_matters:floor_tiles_gray",
|
|
||||||
"overdrive_that_matters:floor_tiles_light_gray",
|
|
||||||
"overdrive_that_matters:floor_tiles_cyan",
|
|
||||||
"overdrive_that_matters:floor_tiles_purple",
|
|
||||||
"overdrive_that_matters:floor_tiles_blue",
|
|
||||||
"overdrive_that_matters:floor_tiles_brown",
|
|
||||||
"overdrive_that_matters:floor_tiles_green",
|
|
||||||
"overdrive_that_matters:floor_tiles_red",
|
|
||||||
"overdrive_that_matters:floor_tiles_black",
|
|
||||||
|
|
||||||
"overdrive_that_matters:tritanium_striped_block",
|
|
||||||
"overdrive_that_matters:carbon_fibre_block",
|
|
||||||
|
|
||||||
"overdrive_that_matters:energy_counter",
|
|
||||||
"overdrive_that_matters:chemical_generator",
|
|
||||||
"overdrive_that_matters:plate_press",
|
|
||||||
"overdrive_that_matters:gravitation_stabilizer",
|
|
||||||
|
|
||||||
"overdrive_that_matters:crate_red",
|
|
||||||
"overdrive_that_matters:crate_blue",
|
|
||||||
"overdrive_that_matters:crate_yellow",
|
|
||||||
"overdrive_that_matters:crate_green",
|
|
||||||
"overdrive_that_matters:crate_black",
|
|
||||||
"overdrive_that_matters:crate_pink",
|
|
||||||
"overdrive_that_matters:crate_purple",
|
|
||||||
"overdrive_that_matters:cargo_crate",
|
|
||||||
|
|
||||||
"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",
|
|
||||||
|
|
||||||
"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",
|
|
||||||
|
|
||||||
"overdrive_that_matters:tritanium_ore",
|
|
||||||
"overdrive_that_matters:deepslate_tritanium_ore",
|
|
||||||
"overdrive_that_matters:tritanium_raw_block"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,119 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:android_station",
|
|
||||||
"overdrive_that_matters:battery_bank",
|
|
||||||
"overdrive_that_matters:matter_decomposer",
|
|
||||||
"overdrive_that_matters:matter_capacitor_bank",
|
|
||||||
"overdrive_that_matters:matter_cable",
|
|
||||||
"overdrive_that_matters:pattern_storage",
|
|
||||||
"overdrive_that_matters:matter_scanner",
|
|
||||||
"overdrive_that_matters:matter_panel",
|
|
||||||
"overdrive_that_matters:matter_replicator",
|
|
||||||
"overdrive_that_matters:matter_bottler",
|
|
||||||
"overdrive_that_matters:drive_viewer",
|
|
||||||
"overdrive_that_matters:matter_recycler",
|
|
||||||
|
|
||||||
"overdrive_that_matters:tritanium_block",
|
|
||||||
|
|
||||||
"overdrive_that_matters:tritanium_block_white",
|
|
||||||
"overdrive_that_matters:tritanium_block_orange",
|
|
||||||
"overdrive_that_matters:tritanium_block_magenta",
|
|
||||||
"overdrive_that_matters:tritanium_block_light_blue",
|
|
||||||
"overdrive_that_matters:tritanium_block_yellow",
|
|
||||||
"overdrive_that_matters:tritanium_block_lime",
|
|
||||||
"overdrive_that_matters:tritanium_block_pink",
|
|
||||||
"overdrive_that_matters:tritanium_block_gray",
|
|
||||||
"overdrive_that_matters:tritanium_block_light_gray",
|
|
||||||
"overdrive_that_matters:tritanium_block_cyan",
|
|
||||||
"overdrive_that_matters:tritanium_block_purple",
|
|
||||||
"overdrive_that_matters:tritanium_block_blue",
|
|
||||||
"overdrive_that_matters:tritanium_block_brown",
|
|
||||||
"overdrive_that_matters:tritanium_block_green",
|
|
||||||
"overdrive_that_matters:tritanium_block_red",
|
|
||||||
"overdrive_that_matters:tritanium_block_black",
|
|
||||||
|
|
||||||
"overdrive_that_matters:floor_tiles_white",
|
|
||||||
"overdrive_that_matters:floor_tiles_orange",
|
|
||||||
"overdrive_that_matters:floor_tiles_magenta",
|
|
||||||
"overdrive_that_matters:floor_tiles_light_blue",
|
|
||||||
"overdrive_that_matters:floor_tiles_yellow",
|
|
||||||
"overdrive_that_matters:floor_tiles_lime",
|
|
||||||
"overdrive_that_matters:floor_tiles_pink",
|
|
||||||
"overdrive_that_matters:floor_tiles_gray",
|
|
||||||
"overdrive_that_matters:floor_tiles_light_gray",
|
|
||||||
"overdrive_that_matters:floor_tiles_cyan",
|
|
||||||
"overdrive_that_matters:floor_tiles_purple",
|
|
||||||
"overdrive_that_matters:floor_tiles_blue",
|
|
||||||
"overdrive_that_matters:floor_tiles_brown",
|
|
||||||
"overdrive_that_matters:floor_tiles_green",
|
|
||||||
"overdrive_that_matters:floor_tiles_red",
|
|
||||||
"overdrive_that_matters:floor_tiles_black",
|
|
||||||
|
|
||||||
"overdrive_that_matters:tritanium_striped_block",
|
|
||||||
"overdrive_that_matters:carbon_fibre_block",
|
|
||||||
|
|
||||||
"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",
|
|
||||||
|
|
||||||
"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",
|
|
||||||
|
|
||||||
"overdrive_that_matters:energy_counter",
|
|
||||||
"overdrive_that_matters:chemical_generator",
|
|
||||||
"overdrive_that_matters:plate_press",
|
|
||||||
"overdrive_that_matters:gravitation_stabilizer",
|
|
||||||
|
|
||||||
"overdrive_that_matters:tritanium_ore",
|
|
||||||
"overdrive_that_matters:deepslate_tritanium_ore",
|
|
||||||
"overdrive_that_matters:tritanium_raw_block"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:crate_red",
|
|
||||||
"overdrive_that_matters:crate_blue",
|
|
||||||
"overdrive_that_matters:crate_yellow",
|
|
||||||
"overdrive_that_matters:crate_green",
|
|
||||||
"overdrive_that_matters:crate_black",
|
|
||||||
"overdrive_that_matters:crate_pink",
|
|
||||||
"overdrive_that_matters:crate_purple",
|
|
||||||
"overdrive_that_matters:cargo_crate"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"overdrive_that_matters:black_hole"
|
|
||||||
]
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user