TFG-fication of all exotic stone types (#1764)

* Deepslate, Blackstone and Dripstone + hammer crushing refactor

* crackrack and space stones

* tags + stonecutting + fixes

* Moon deepslate set + QoL recipes + tags fixes

* pyroxenite tags

* Update tags.js

* Update constants.js

* Update constants.js

---------

Signed-off-by: Pyritie <pyritie@gmail.com>
Co-authored-by: Pyritie <pyritie@gmail.com>
This commit is contained in:
Adrien Vidal 2025-09-09 01:16:27 +02:00 committed by GitHub
parent 51aeb7cfea
commit 96188e761d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
111 changed files with 2462 additions and 132 deletions

View file

@ -3,6 +3,7 @@
global.BENEATH_DISABLED_ITEMS = [
"beneath:cobblerack",
"beneath:crackrack_rock",
"beneath:lost_page",
"beneath:ore/slimed_netherrack",
"beneath:raw_slime",

View file

@ -2,6 +2,7 @@
function registerTFGNetherBlocks(event) {
// Hardened stones
event.create('tfg:rock/hardened_deepslate')
.soundType('deepslate')
.property(BlockProperties.AXIS)
@ -12,6 +13,7 @@ function registerTFGNetherBlocks(event) {
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth('tfc:metamorphic_items')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_grey')
.fullBlock(true)
@ -26,7 +28,8 @@ function registerTFGNetherBlocks(event) {
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.mapColor('terracotta_grey')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('color_black')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
@ -41,14 +44,17 @@ function registerTFGNetherBlocks(event) {
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.mapColor('terracotta')
.tagBoth('tfc:sedimentary_items')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta')
.fullBlock(true)
.opaque(true)
// Spikes
event.create('tfg:spike/dripstone_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/dripstone_block')
.soundType('dripstone_block')
.tagBoth('tfc:sedimentary_items')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
@ -57,6 +63,7 @@ function registerTFGNetherBlocks(event) {
event.create('tfg:spike/deepslate_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/deepslate')
.soundType('deepslate')
.tagBoth('tfc:metamorphic_items')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
@ -65,11 +72,13 @@ function registerTFGNetherBlocks(event) {
event.create('tfg:spike/blackstone_spike', 'tfc:rock_spike')
.textureAll('minecraft:block/blackstone')
.stoneSoundType()
.tagBoth('tfc:igneous_intrusive_items')
.hardness(0.8)
.resistance(0.8)
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
// Loose rocks
event.create('tfg:loose/deepslate', 'tfc:loose_rock')
.itemTexture('tfg:item/loose/deepslate')
.rockTypeModel('metamorphic')
@ -92,6 +101,117 @@ function registerTFGNetherBlocks(event) {
.tagItem('tfc:sedimentary_rock')
.tagItem("rnr:loose_rock_items")
event.create('tfg:loose/crackrack', 'tfc:loose_rock')
.itemTexture('tfg:item/loose/crackrack')
.rockTypeModel('igneous_intrusive')
.soundType('basalt')
.translationKey("block.tfg.loose.crackrack")
.tagBlock('tfc:loose_rocks')
.tagItem('tfc:any_knapping')
.tagItem('tfc:rock_knapping')
.tagItem('tfc:igneous_intrusive_rock')
.tagItem("rnr:loose_rock_items")
// Cobblestones
event.create('tfg:rock/cobble_blackstone')
.soundType('stone')
.model('tfg:block/rock/cobble_blackstone')
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('color_black')
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/cobble_dripstone')
.soundType('dripstone_block')
.model('tfg:block/rock/cobble_dripstone')
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth('tfc:sedimentary_items')
.mapColor('terracotta')
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/cobble_crackrack')
.soundType('netherrack')
.model('tfg:block/rock/cobble_crackrack')
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('crimson_stem')
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
// Smooth Stones
event.create('tfg:rock/polished_crackrack')
.soundType('basalt')
.model('tfg:block/rock/polished_crackrack')
.tagBoth('forge:smooth_stone')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfc:rock/smooth')
.mapColor('crimson_stem')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
// Gravels
event.create('tfg:rock/gravel_deepslate')
.soundType('gravel')
.model('tfg:block/rock/gravel_deepslate')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:metamorphic_items')
.mapColor('terracotta_grey')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_blackstone')
.soundType('gravel')
.model('tfg:block/rock/gravel_blackstone')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('color_black')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_dripstone')
.soundType('gravel')
.model('tfg:block/rock/gravel_dripstone')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:sedimentary_items')
.mapColor('terracotta')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_crackrack')
.soundType('gravel')
.model('tfg:block/rock/gravel_crackrack')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('crimson_stem')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
// Plants
event.create('tfg:mushroom_roots', 'tfg:decorative_plant')
.soundType('nether_wart')
.tagItem('tfc:plants')

View file

@ -51,6 +51,7 @@ function registerTFGSpaceBlocks(event) {
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth('tfc:igneous_intrusive_items')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_cyan')
.fullBlock(true)
@ -65,6 +66,7 @@ function registerTFGSpaceBlocks(event) {
.tagBlock('tfc:can_carve')
.tagBoth('forge:stone')
.tagBoth('tfc:rock/hardened')
.tagBoth('tfc:igneous_intrusive_items')
.tagBlock('minecraft:mineable/pickaxe')
.mapColor('terracotta_blue')
.fullBlock(true)
@ -280,6 +282,202 @@ function registerTFGSpaceBlocks(event) {
.requiresTool(true)
.tagBlock('minecraft:mineable/pickaxe')
// Cobblestones
event.create('tfg:rock/cobble_moon_deepslate')
.soundType('deepslate')
.model('tfg:block/rock/cobble_moon_deepslate')
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('terracotta_blue')
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/cobble_permafrost')
.soundType('stone')
.model('tfg:block/rock/cobble_permafrost')
.tagBoth('forge:cobblestone')
.tagBoth('forge:cobblestone/normal')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('snow')
.tagBlock('minecraft:mineable/pickaxe')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
// Gravels
event.create('tfg:rock/gravel_moon')
.soundType('gravel')
.model('tfg:block/rock/gravel_moon')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('terracotta_cyan')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_moon_deepslate')
.soundType('gravel')
.model('tfg:block/rock/gravel_moon_deepslate')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('terracotta_blue')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_glacio')
.soundType('gravel')
.model('tfg:block/rock/gravel_glacio')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('terracotta_light_blue')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_mars')
.soundType('gravel')
.model('tfg:block/rock/gravel_mars')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('terracotta_orange')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_venus')
.soundType('gravel')
.model('tfg:block/rock/gravel_venus')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('terracotta_yellow')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_mercury')
.soundType('gravel')
.model('tfg:block/rock/gravel_mercury')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('terracotta_purple')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_permafrost')
.soundType('gravel')
.model('tfg:block/rock/gravel_permafrost')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('snow')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/gravel_red_granite')
.soundType('gravel')
.model('tfg:block/rock/gravel_red_granite')
.tagBoth('forge:gravel')
.tagBoth('tfc:rock/gravel')
.tagBoth('tfc:igneous_intrusive_items')
.mapColor('terracotta_red')
.tagBlock('minecraft:mineable/shovel')
.tagBlock('tfc:can_landslide')
.fullBlock(true)
.opaque(true)
// Smooth Stones
event.create('tfg:rock/polished_moon_deepslate')
.soundType('deepslate')
.model('tfg:block/rock/polished_moon_deepslate')
.tagBoth('forge:smooth_stone')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfc:rock/smooth')
.tagBoth('tfg:brick_index')
.mapColor('terracotta_blue')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
// Decorative
event.create('tfg:rock/bricks_moon_deepslate')
.soundType('deepslate')
.model('tfg:block/rock/bricks_moon_deepslate')
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfg:brick_index')
.tagBoth('tfg:moon_deepslate_cutter_set')
.mapColor('terracotta_blue')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/cracked_bricks_moon_deepslate')
.soundType('deepslate')
.model('tfg:block/rock/cracked_bricks_moon_deepslate')
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/cracked_bricks')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfg:brick_index')
.tagBoth('tfg:moon_deepslate_cutter_set')
.mapColor('terracotta_blue')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/chiseled_bricks_moon_deepslate')
.soundType('deepslate')
.model('tfg:block/rock/chiseled_bricks_moon_deepslate')
.tagBoth('minecraft:stone_bricks')
.tagBoth('forge:stone_bricks')
.tagBoth('tfc:rock/bricks')
.tagBoth('tfc:rock/chiseled_bricks')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfg:brick_index')
.tagBoth('tfg:moon_deepslate_cutter_set')
.mapColor('terracotta_blue')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
event.create('tfg:rock/pillar_moon_deepslate')
.property(BlockProperties.AXIS)
.placementState(event => event.set(BlockProperties.AXIS, event.clickedFace.axis))
.soundType('deepslate')
.tagBoth('tfc:igneous_intrusive_items')
.tagBoth('tfg:moon_deepslate_cutter_set')
.mapColor('terracotta_blue')
.tagBlock('minecraft:mineable/pickaxe')
.fullBlock(true)
.opaque(true)
// #region Plants
/*

View file

@ -167,6 +167,83 @@ global.FOOD_FRUIT = [
{name: 'shadow_berry', id: 'betterend:shadow_berry_cooked', saturation: 1, water: 5, fruit: 1.5, decay: 2 }
];
/** @type {Hammering[]} */
global.HAMMERING = [
// Beneath
{ raw: 'minecraft:deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 16 },
{ raw: 'minecraft:cobbled_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_deepslate', hammered: 'tfc:sand/black', duration: 70, eu: 2 },
{ raw: 'minecraft:blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_blackstone', hammered: 'tfc:sand/black', duration: 70, eu: 2 },
{ raw: 'minecraft:dripstone_block', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_dripstone', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_dripstone', hammered: 'tfc:sand/brown', duration: 70, eu: 2 },
{ raw: 'beneath:crackrack', hammered: 'tfg:rock/cobble_crackrack', duration: 10, eu: 16 },
{ raw: 'tfg:rock/cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_crackrack', hammered: 'tfc:sand/pink', duration: 70, eu: 2 },
{ raw: 'minecraft:basalt', hammered: 'tfc:rock/cobble/basalt', duration: 10, eu: 16 },
// Moon
{ raw: 'ad_astra:moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 16 },
{ raw: 'ad_astra:moon_cobblestone', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_moon', hammered: 'ad_astra:moon_sand', duration: 70, eu: 2 },
{ raw: 'ad_astra:moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 },
{ raw: 'ad_astra:hardened_moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 },
{ raw: 'tfg:rock/cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_moon_deepslate', hammered: 'ad_astra:moon_sand', duration: 10, eu: 16 },
{ raw: 'ad_astra:glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 16 },
{ raw: 'ad_astra:glacio_cobblestone', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_glacio', hammered: 'tfc:sand/white', duration: 70, eu: 2 },
// Mars
{ raw: 'ad_astra:mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 16 },
{ raw: 'ad_astra:mars_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:mars_sand', duration: 70, eu: 2 },
{ raw: 'minecraft:red_sandstone', hammered: '4x minecraft:red_sand', duration: 10, eu: 16 },
{ raw: 'gtceu:red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 16 },
{ raw: 'gtceu:red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_red_granite', hammered: 'minecraft:red_sand', duration: 70, eu: 2 },
// Venus
{ raw: 'ad_astra:venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 16 },
{ raw: 'ad_astra:venus_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:venus_sand', duration: 70, eu: 2 },
{ raw: 'ad_astra:venus_sandstone', hammered: '4x ad_astra:venus_sand', duration: 70, eu: 2 },
// Mercury
{ raw: 'ad_astra:mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 16 },
{ raw: 'tfg:rock/hardened_mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 16 },
{ raw: 'ad_astra:mercury_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_mars', hammered: 'tfc:sand/red', duration: 70, eu: 2 },
// Europa
{ raw: 'ad_astra:permafrost', hammered: 'tfg:rock/cobble_permafrost', duration: 10, eu: 16 },
{ raw: 'tfg:rock/cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 16 },
{ raw: 'tfg:rock/gravel_permafrost', hammered: '4x gtceu:ice_dust', duration: 70, eu: 2 },
// Misc
{ raw: 'ad_astra:conglomerate', hammered: 'tfc:rock/gravel/conglomerate', duration: 10, eu: 16 }
]
global.COOLING_FOODS = [
'firmalife:food/vanilla_ice_cream',
'firmalife:food/chocolate_ice_cream',
@ -185,4 +262,4 @@ global.WARMING_FOODS = [
'tfc:food/vegetables_soup',
'tfc:food/protein_soup',
'tfc:food/dairy_soup'
];
];

View file

@ -86,6 +86,10 @@ const registerTFGItems = (event) => {
.translationKey('item.tfg.brick.glacio_stone')
event.create('tfg:brick/permafrost')
.translationKey('item.tfg.brick.permafrost')
event.create('tfg:brick/red_granite')
.translationKey('item.tfg.red_granite')
event.create('tfg:brick/moon_deepslate')
.translationKey('item.tfg.moon_deepslate')
// #endregion
// #region Primitive rubber gloves