const registerTFGBlocks = (event) => { event.create('tfg:artificial_end_portal_frame') .stoneSoundType() .tagBlock('minecraft:mineable/pickaxe') .requiresTool(true) .fullBlock(true) .item(item => { item.modelJson({ parent: 'minecraft:block/end_portal_frame' }) }) global.MINECRAFT_DYE_NAMES.forEach(color => { event.create(`tfg:decorative_vase/generated/${color}`, 'cardinal') .model(`tfg:block/decorative_vase/loot_vase_${color}`) .soundType('decorated_pot') .hardness(0.7) .tagBlock('minecraft:mineable/pickaxe') .mapColor(`color_${color}`) .box(2, 0, 2, 14, 20, 14) .fullBlock(false) .opaque(false) .renderType('cutout') event.create(`tfg:decorative_vase/${color}`, 'cardinal') .model(`tfg:block/decorative_vase/vase_${color}`) .soundType('decorated_pot') .hardness(0.7) .tagBlock('minecraft:mineable/pickaxe') .mapColor(`color_${color}`) .box(2, 0, 2, 14, 20, 14) .fullBlock(false) .opaque(false) .renderType('cutout') .blockEntity(be => { be.attach('tfc:inventory', { width: 9, height: 1, size: size => size.isSmallerThan('large') }) be.rightClickOpensInventory() }) event.create(`tfg:decorative_vase/unfired/${color}`, 'cardinal') .model(`tfg:block/decorative_vase/vase_unfired_${color}`) .soundType('decorated_pot') .hardness(0.7) .tagBlock('minecraft:mineable/pickaxe') .mapColor(`color_${color}`) .box(2, 0, 2, 14, 20, 14) .fullBlock(false) .opaque(false) .renderType('cutout') }) event.create('tfg:decorative_vase', 'cardinal') .model('tfg:block/decorative_vase/vase') .soundType('decorated_pot') .hardness(0.7) .tagBlock('minecraft:mineable/pickaxe') .mapColor(`color_gray`) .box(2, 0, 2, 14, 20, 14) .fullBlock(false) .opaque(false) .renderType('cutout') .blockEntity(be => { be.attach('tfc:inventory', { width: 9, height: 1, size: size => size.isSmallerThan('large') }) be.rightClickOpensInventory() }) event.create('tfg:decorative_vase/unfired', 'cardinal') .model('tfg:block/decorative_vase/vase_unfired') .soundType('decorated_pot') .hardness(0.7) .tagBlock('minecraft:mineable/pickaxe') .mapColor(`color_gray`) .box(2, 0, 2, 14, 20, 14) .fullBlock(false) .opaque(false) .renderType('cutout') const $Blocks = Java.loadClass('net.minecraft.world.level.block.Blocks') const $Properties = Java.loadClass('net.minecraft.world.level.block.state.BlockBehaviour$Properties') // #region Deprecated tree tap event.create('treetap:tap') .requiresTool(false) .textureAll('tfg:item/deprecated') // #endregion // #region Nether blocks event.create('tfg:rock/hardened_deepslate') .soundType('deepslate') .property(BlockProperties.AXIS) .requiresTool(true) .item(item => { item.modelJson({ parent: 'minecraft:item/deepslate' }) }) .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') .tagBlock('minecraft:mineable/pickaxe') .mapColor('terracotta_grey') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_blackstone') .stoneSoundType() .requiresTool(true) .item(item => { item.modelJson({ parent: 'minecraft:item/blackstone' }) }) .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') .mapColor('terracotta_grey') .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) event.create('tfg:rock/hardened_dripstone') .soundType('dripstone_block') .stoneSoundType() .requiresTool(true) .item(item => { item.modelJson({ parent: 'minecraft:item/dripstone_block' }) }) .tagBlock('tfc:can_carve') .tagBoth('forge:stone') .tagBoth('tfc:rock/hardened') .mapColor('terracotta') .tagBlock('minecraft:mineable/pickaxe') .fullBlock(true) .opaque(true) event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike') .soundType('dripstone_block') .noItem() event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike') .soundType('deepslate') .noItem() event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike') .stoneSoundType() .noItem() event.create('tfg:loose/deepslate', 'tfc:loose_rock') .itemTexture('tfg:item/loose/deepslate') .rockTypeModel('metamorphic') .soundType('deepslate') .translationKey("block.tfg.loose.deepslate") .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') .tagItem('tfc:metamorphic_rock') event.create('tfg:loose/dripstone', 'tfc:loose_rock') .itemTexture('tfg:item/loose/dripstone') .rockTypeModel('sedimentary') .soundType('dripstone_block') .translationKey("block.tfg.loose.dripstone") .tagBlock('tfc:loose_rocks') .tagItem('tfc:any_knapping') .tagItem('tfc:rock_knapping') .tagItem('tfc:sedimentary_rock') const $SproutsBlock = Java.loadClass('net.minecraft.world.level.block.NetherSproutsBlock') event.createCustom('tfg:mushroom_roots', () => new $SproutsBlock($Properties.copy($Blocks.WARPED_ROOTS))) event.createCustom('tfg:mushroom_sprouts', () => new $SproutsBlock($Properties.copy($Blocks.NETHER_SPROUTS))) 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') // #endregion //#region Custom Supports event.create('tfg:light_concrete_support', 'tfc:support') .textureAll('tfg:block/support/light_concrete_support') .horizontal(horizontal => { horizontal.textureAll('tfg:block/support/light_concrete_support') horizontal.soundType('stone') horizontal.hardness(5) horizontal.resistance(16) horizontal.mapColor('color_light_gray') horizontal.tagBlock('minecraft:mineable/pickaxe') horizontal.requiresTool(true) }) .soundType('stone') .hardness(5) .resistance(16) .mapColor('color_light_gray') .tagBlock('minecraft:mineable/pickaxe') .requiresTool(true) event.create('tfg:dark_concrete_support', 'tfc:support') .textureAll('tfg:block/support/dark_concrete_support') .horizontal(horizontal => { horizontal.textureAll('tfg:block/support/dark_concrete_support') horizontal.soundType('stone') horizontal.hardness(5) horizontal.resistance(16) horizontal.mapColor('color_gray') horizontal.tagBlock('minecraft:mineable/pickaxe') horizontal.requiresTool(true) }) .soundType('stone') .hardness(5) .resistance(16) .mapColor('color_gray') .tagBlock('minecraft:mineable/pickaxe') .requiresTool(true) event.create('tfg:reinforced_light_concrete_support', 'tfc:support') .textureAll('tfg:block/support/reinforced_light_concrete_support') .horizontal(horizontal => { horizontal.textureAll('tfg:block/support/reinforced_light_concrete_support') horizontal.soundType('stone') horizontal.hardness(5) horizontal.resistance(64) horizontal.mapColor('color_light_gray') horizontal.tagBlock('minecraft:mineable/pickaxe') horizontal.requiresTool(true) }) .soundType('stone') .hardness(5) .resistance(64) .mapColor('color_light_gray') .tagBlock('minecraft:mineable/pickaxe') .requiresTool(true) event.create('tfg:reinforced_dark_concrete_support', 'tfc:support') .textureAll('tfg:block/support/reinforced_dark_concrete_support') .horizontal(horizontal => { horizontal.textureAll('tfg:block/support/reinforced_dark_concrete_support') horizontal.soundType('stone') horizontal.hardness(5) horizontal.resistance(64) horizontal.mapColor('color_gray') horizontal.tagBlock('minecraft:mineable/pickaxe') horizontal.requiresTool(true) }) .soundType('stone') .hardness(5) .resistance(64) .mapColor('color_gray') .tagBlock('minecraft:mineable/pickaxe') .requiresTool(true) event.create('tfg:rebar_support', 'tfc:support') .textureAll('tfg:block/support/rebar_support') .horizontal(horizontal => { horizontal.textureAll('tfg:block/support/rebar_support') horizontal.soundType('chain') horizontal.hardness(3) horizontal.resistance(16) horizontal.mapColor('color_orange') horizontal.tagBlock('minecraft:mineable/pickaxe') horizontal.tagBlock('minecraft:climbable') horizontal.requiresTool(true) horizontal.renderType('cutout') horizontal.opaque(false) }) .soundType('chain') .hardness(3) .resistance(16) .mapColor('color_orange') .tagBlock('minecraft:mineable/pickaxe') .tagBlock('minecraft:climbable') .requiresTool(true) .renderType('cutout') .opaque(false) event.create('tfg:steel_support', 'tfc:support') .textureAll('tfg:block/support/steel_support') .horizontal(horizontal => { horizontal.textureAll('tfg:block/support/steel_support') horizontal.soundType('metal') horizontal.hardness(5) horizontal.resistance(64) horizontal.mapColor('color_gray') horizontal.tagBlock('minecraft:mineable/pickaxe') horizontal.requiresTool(true) }) .soundType('metal') .hardness(5) .resistance(64) .mapColor('color_gray') .tagBlock('minecraft:mineable/pickaxe') .requiresTool(true) const other_stone = ['pyroxenite', 'migmatite', 'travertine'] const stone_types = global.TFC_STONE_TYPES.concat(other_stone) stone_types.forEach(stone => { event.create(`tfg:${stone}_support`, 'tfc:support') .textureAll(`tfg:block/support/${stone}_support`) .horizontal(horizontal => { horizontal.textureAll(`tfg:block/support/${stone}_support`) horizontal.soundType('stone') horizontal.hardness(5) horizontal.resistance(8) horizontal.mapColor('color_gray') horizontal.tagBlock('minecraft:mineable/pickaxe') horizontal.requiresTool(true) }) .soundType('stone') .hardness(5) .resistance(8) .mapColor('color_gray') .tagBlock('minecraft:mineable/pickaxe') .requiresTool(true) }) //#endregion }