neuralgia/kubejs/startup_scripts/tfg/blocks.nether.js
Adrien Vidal c856ec9398
[Molden] Stone TFGfication p3 - Aqueducts, Supports + Cutting and Grinding fixes (#1919)
* Aqueducts + move stone characs to constants

* Supports

Supports for all stones
Remapped to the original textures rather than copies (all removed)

* Support tooltips

+ recipe rocks regions added

* Macerator Recipes

- Add Macerator missing grinding recipes
- Change the TFC stone Macerator recipes to the same ratios

* aqueduct recipes + stonecutting fixes

* Remove redundant tags

---------

Signed-off-by: Adrien Vidal <vidal.adrien2@gmail.com>
2025-09-28 12:10:33 -05:00

586 lines
No EOL
20 KiB
JavaScript

"use strict";
function registerTFGNetherBlocks(event) {
const SHAPES = ['stairs', 'slab', 'wall']
// #region Raw Stones
SHAPES.forEach(shape => {
event.create(`tfg:rock/deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/deepslate')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.textureAll('minecraft:block/dripstone_block')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.textureAll('beneath:block/crackrack')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #endregion Raw Stones
// #region Hardened Stones
event.create('tfg:rock/hardened_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.property(BlockProperties.AXIS)
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/deepslate' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/blackstone' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/hardened_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.stoneSoundType()
.requiresTool(true)
.item(item => {
item.modelJson({ parent: 'minecraft:item/dripstone_block' })
})
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
// #endregion Hardened stones
// #region Spikes
event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/dripstone_block')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.tagBlock('minecraft:mineable/pickaxe')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
// #endregion Spikes
// #region Loose Stones
event.create('tfg:loose/deepslate', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.deepslate.sound)
.itemTexture('tfg:item/loose/deepslate')
.rockTypeModel(global.STONE_CHARACS.deepslate.type)
.translationKey("block.tfg.loose.deepslate")
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.deepslate.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.tagItem("rnr:loose_rock_items")
event.create('tfg:loose/dripstone', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.dripstone.sound)
.itemTexture('tfg:item/loose/dripstone')
.rockTypeModel(global.STONE_CHARACS.dripstone.type)
.translationKey("block.tfg.loose.dripstone")
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.dripstone.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.tagItem("rnr:loose_rock_items")
event.create('tfg:loose/crackrack', 'tfc:loose_rock')
.soundType(global.STONE_CHARACS.crackrack.sound)
.itemTexture('tfg:item/loose/crackrack')
.rockTypeModel(global.STONE_CHARACS.crackrack.type)
.translationKey("block.tfg.loose.crackrack")
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem(`tfc:${global.STONE_CHARACS.crackrack.type}_rock`)
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.tagItem("rnr:loose_rock_items")
// #endregion Loose rocks
// #region Cobblestones
// Deepslate
event.create('tfg:rock/mossy_cobble_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Blackstone
event.create('tfg:rock/cobble_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.textureAll('minecraft:block/blackstone_top')
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Dripstone
event.create('tfg:rock/cobble_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Crackrack
event.create('tfg:rock/cobble_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cobble_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_cobble_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_cobble_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #region Smooth (Polished/Cut) Stones
event.create('tfg:rock/polished_crackrack')
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth('forge:smooth_stone')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfc:rock/smooth')
.mapColor('crimson_stem')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/polished_crackrack_${shape}`, shape)
.soundType(global.STONE_CHARACS.crackrack.sound)
.tagBoth(`tfg:rock_${shape}s`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #endregion Smooth (Polished/Cut) Stones
// #region Gravels
event.create('tfg:rock/gravel_deepslate')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_blackstone')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_dripstone')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_crackrack')
.soundType('gravel')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth(`tfc:${global.STONE_CHARACS.crackrack.type}_items`)
.mapColor(global.STONE_CHARACS.crackrack.mapColor)
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
// #endregion Gravels
// #region Bricks / Decorative
// Deepslate
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/cracked_deepslate_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_tiles_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.textureAll('minecraft:block/cracked_deepslate_tiles')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_deepslate')
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_deepslate_${shape}`, shape)
.soundType(global.STONE_CHARACS.deepslate.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.deepslate.type}_items`)
.mapColor(global.STONE_CHARACS.deepslate.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Blackstone
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.textureAll('minecraft:block/cracked_polished_blackstone_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_blackstone')
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_blackstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.blackstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.blackstone.type}_items`)
.mapColor(global.STONE_CHARACS.blackstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Dripstone
event.create('tfg:rock/cracked_bricks_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_dripstone')
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_dripstone_${shape}`, shape)
.soundType(global.STONE_CHARACS.dripstone.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.dripstone.type}_items`)
.mapColor(global.STONE_CHARACS.dripstone.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// Crackrack
SHAPES.forEach(shape => {
event.create(`tfg:rock/cracked_bricks_nether_${shape}`, shape)
.soundType(global.STONE_CHARACS.nether.sound)
.textureAll('minecraft:block/cracked_nether_bricks')
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
event.create('tfg:rock/mossy_bricks_nether')
.soundType(global.STONE_CHARACS.nether.sound)
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/mossy_bricks')
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
SHAPES.forEach(shape => {
event.create(`tfg:rock/mossy_bricks_nether_${shape}`, shape)
.soundType(global.STONE_CHARACS.nether.sound)
.tagBoth(`tfg:brick_${shape}`.replace(/ss/g, 's'))
.tagBoth(`tfc:${global.STONE_CHARACS.nether.type}_items`)
.mapColor(global.STONE_CHARACS.nether.mapColor)
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
})
// #endregion Bricks / Decorative
// #region Plants
event.create('tfg:mushroom_roots', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfc:plants')
event.create('tfg:mushroom_sprouts', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfc:plants')
event.create('tfg:charred_log')
.fullBlock(true)
.woodSoundType()
.property(BlockProperties.AXIS)
.tagBoth('minecraft:mineable/axe')
.tagBoth('tfc:logs_that_log')
.tagBoth('afc:logs_that_log')
.tagBoth('minecraft:logs')
.mapColor('black')
}