Datagen tags

This commit is contained in:
DBotThePony 2022-09-06 21:45:53 +07:00
parent 2b3d2e3d75
commit 14eece598a
Signed by: DBot
GPG Key ID: DCC23B5715498507
22 changed files with 373 additions and 349 deletions

View File

@ -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)

View File

@ -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 {

View 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,
)
}

View File

@ -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
}
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:tritanium_ore"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:advanced_control_circuit"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:basic_control_circuit"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:tritanium_ingot"
]
}

View File

@ -1,7 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:tritanium_ore",
"overdrive_that_matters:tritanium_ore_clump"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"minecraft:piston"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:iron_plate"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:tritanium_plate"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:tritanium_raw_block"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:tritanium_ore_clump"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:copper_wiring"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:gold_wiring"
]
}

View File

@ -1,8 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:black_hole",
"overdrive_that_matters:gravitation_stabilizer",
"overdrive_that_matters:gravitation_stabilizer_lens"
]
}

View File

@ -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"
]
}

View File

@ -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"
]
}

View File

@ -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"
]
}

View File

@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"overdrive_that_matters:black_hole"
]
}