#809 finally got around to changing loose to cobble

This commit is contained in:
Pyritie 2025-12-26 22:17:05 +00:00
parent a74ff52e38
commit 9e27221791
5 changed files with 141 additions and 190 deletions

View file

@ -3,6 +3,7 @@
## Unreleased
### Breaking Changes
- The LCR recipe for BTX fuel now requires circuit 24, to fix a recipe conflict (#2515) @TomPlop
- Loose stones now compress into cobblestone (without any mortar) and vice versa. So if you're currently using gravel to store your loose stones, uncraft them before updating. (#809) @Pyritie
### Changes
- Added casting molds for small gears, nuggets, and rods (#2470) @glitchplaysgames714
- Added some new illages to the hot and dry, and cold and dry climates of the world! @MVG31

View file

@ -34,6 +34,10 @@ function removeGTCEURecipes(event) {
removeMaceratorRecipe(event, 'macerate_diorite')
removeMaceratorRecipe(event, 'macerate_cobblestone_slab')
removeMaceratorRecipe(event, 'macerate_andesite')
event.remove({ id: 'gtceu:shaped/stone_hammer' })
event.remove({ id: 'gtceu:mixer/mossy_cobblestone_from_moss_block' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/mossy_cobblestone_from_moss_block' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/mossy_cobblestone_from_vine' })
//#endregion
@ -729,6 +733,9 @@ function removeGTCEURecipes(event) {
event.remove({ id: 'gtceu:laser_engraver/engrave_small_red_granite_bricks' })
event.remove({ id: 'gtceu:laser_engraver/engrave_square_red_granite_bricks' })
event.remove({ id: 'gtceu:laser_engraver/engrave_chiseled_red_granite' })
event.remove({ id: 'gtceu:mixer/mossy_red_granite_cobblestone_from_moss_block' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/mossy_red_granite_cobblestone_from_moss_block' })
event.remove({ id: 'greate:mixing/integration/gtceu/mixer/mossy_red_granite_cobblestone_from_vine' })
event.remove({ id: 'gtceu:lathe/stone_rod_from_cobblestone' })

View file

@ -8,46 +8,21 @@ function registerTFGRockRecipes(event) {
// #region GLUEING_TOGETHER
// loose rocks to cobble, bricks to brick blocks
// raw rock to hardened, bricks to brick blocks
const GLUEING_TOGETHER = [
{ loose: 'tfg:loose/deepslate', block: 'minecraft:cobbled_deepslate' },
{ loose: 'tfg:brick/deepslate', block: '4x minecraft:deepslate_bricks' },
{ loose: 'beneath:blackstone_pebble', block: 'tfg:rock/cobble_blackstone' },
{ loose: 'beneath:blackstone_brick', block: '4x minecraft:polished_blackstone_bricks' },
{ loose: 'tfg:loose/dripstone', block: 'tfg:rock/cobble_dripstone' },
{ loose: 'tfg:brick/dripstone', block: '4x create:cut_dripstone_bricks' },
{ loose: 'tfg:loose/crackrack', block: 'tfg:rock/cobble_crackrack' },
{ loose: 'minecraft:nether_brick', block: '4x minecraft:nether_bricks' },
{ loose: 'tfg:loose/moon_stone', block: 'ad_astra:moon_cobblestone' },
{ loose: 'tfg:brick/moon_stone', block: '4x ad_astra:moon_stone_bricks' },
{ loose: 'tfg:loose/moon_deepslate', block: 'tfg:rock/cobble_moon_deepslate' },
{ loose: 'tfg:brick/moon_deepslate', block: '4x tfg:rock/bricks_moon_deepslate' },
{ loose: 'tfg:loose/mars_stone', block: 'ad_astra:mars_cobblestone' },
{ loose: 'tfg:brick/mars_stone', block: '4x ad_astra:mars_stone_bricks' },
{ loose: 'tfg:loose/venus_stone', block: 'ad_astra:venus_cobblestone' },
{ loose: 'tfg:brick/venus_stone', block: '4x ad_astra:venus_stone_bricks' },
{ loose: 'tfg:loose/red_granite', block: 'gtceu:red_granite_cobblestone' },
{ loose: 'tfg:brick/red_granite', block: '4x gtceu:red_granite_bricks' },
{ loose: 'tfg:loose/mercury_stone', block: 'ad_astra:mercury_cobblestone' },
{ loose: 'tfg:brick/mercury_stone', block: '4x ad_astra:mercury_stone_bricks' },
{ loose: 'tfg:loose/glacio_stone', block: 'ad_astra:glacio_cobblestone' },
{ loose: 'tfg:brick/glacio_stone', block: '4x ad_astra:glacio_stone_bricks' },
{ loose: 'tfg:loose/permafrost', block: 'tfg:rock/cobble_permafrost' },
{ loose: 'tfg:brick/permafrost', block: '4x ad_astra:permafrost_bricks' },
{ loose: 'minecraft:popped_chorus_fruit', block: '4x minecraft:purpur_block' },
{ loose: 'gtceu:stone_ingot', block: '4x minecraft:stone_bricks' },
{ loose: 'minecraft:deepslate', block: '2x tfg:rock/hardened_deepslate' },
@ -79,65 +54,51 @@ function registerTFGRockRecipes(event) {
.circuit(1)
.duration(50)
.EUt(2)
if( x.loose.includes('loose') || x.loose.includes('pebble') ){
event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_${x.block}`.replace(/[: ]/g, '_'))
.itemInputs(`1x ${x.block}`)
.itemOutputs(`4x ${x.loose}`)
.circuit(1)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
}
})
// #endregion GLUEING_TOGETHER
// #region COBBLE_TO_LOOSE
const COBBLE_TO_LOOSE = [
{ cobble: 'minecraft:blackstone', loose: 'beneath:blackstone_pebble' },
{ cobble: 'tfg:rock/cobble_blackstone', loose: 'beneath:blackstone_pebble' },
{ cobble: 'minecraft:cobbled_deepslate', loose: 'tfg:loose/deepslate' },
{ cobble: 'tfg:rock/cobble_dripstone', loose: 'tfg:loose/dripstone' },
{ cobble: 'tfg:rock/cobble_crackrack', loose: 'tfg:loose/crackrack' },
{ cobble: 'ad_astra:moon_cobblestone', loose: 'tfg:loose/moon_stone' },
{ cobble: 'tfg:rock/cobble_moon_deepslate', loose: 'tfg:loose/moon_deepslate' },
{ cobble: 'gtceu:red_granite_cobblestone', loose: 'tfg:brick/red_granite' },
{ cobble: 'tfg:rock/cobble_permafrost', loose: 'tfg:loose/permafrost' },
{ cobble: 'gtceu:red_granite_cobblestone', loose: 'tfg:loose/red_granite' }
{ cobble: 'ad_astra:mars_cobblestone', loose: 'tfg:loose/mars_stone' },
{ cobble: 'ad_astra:venus_cobblestone', loose: 'tfg:loose/venus_stone' },
{ cobble: 'ad_astra:mercury_cobblestone', loose: 'tfg:loose/mercury_stone' },
{ cobble: 'ad_astra:glacio_cobblestone', loose: 'tfg:loose/glacio_stone' },
{ cobble: 'gtceu:red_granite_cobblestone', loose: 'tfg:loose/red_granite' },
{ cobble: 'tfg:rock/cobble_permafrost', loose: 'tfg:loose/permafrost' }
]
COBBLE_TO_LOOSE.forEach(x => {
event.shapeless(`4x ${x.loose}`, [x.cobble])
event.shapeless(`4x ${x.loose}`, [x.cobble]);
event.shaped(x.cobble, [
'AA',
'AA'
], {
A: x.loose
});
event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_${x.cobble}`.replace(/[: ]/g, '_'))
.itemInputs(`1x ${x.cobble}`)
.itemOutputs(`4x ${x.loose}`)
.circuit(1)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.packer(`tfc:gtceu/packer/packing_${x.cobble}`.replace(/[: ]/g, '_'))
.itemInputs(`4x ${x.loose}`)
.itemOutputs(`1x ${x.cobble}`)
.circuit(1)
.duration(20)
.EUt(GTValues.VA[GTValues.ULV])
})
// #endregion COBBLE_TO_LOOSE
// #region LOOSE_TO_GRAVEL
const LOOSE_TO_GRAVEL = [
{ loose: 'tfg:loose/deepslate', gravel: 'tfg:rock/gravel_deepslate' },
{ loose: 'beneath:blackstone_pebble', gravel: 'tfg:rock/gravel_blackstone' },
{ loose: 'tfg:loose/dripstone', gravel: 'tfg:rock/gravel_dripstone' },
{ loose: 'tfg:loose/crackrack', gravel: 'tfg:rock/gravel_crackrack' },
{ loose: 'tfg:loose/moon_stone', gravel: 'tfg:rock/gravel_moon' },
{ loose: 'tfg:loose/moon_deepslate', gravel: 'tfg:rock/gravel_moon_deepslate' },
{ loose: 'tfg:loose/glacio_stone', gravel: 'tfg:rock/gravel_glacio' },
{ loose: 'tfg:loose/mars_stone', gravel: 'tfg:rock/gravel_mars' },
{ loose: 'tfg:loose/venus_stone', gravel: 'tfg:rock/gravel_venus' },
{ loose: 'tfg:loose/mercury_stone', gravel: 'tfg:rock/gravel_mercury' },
{ loose: 'tfg:loose/permafrost', gravel: 'tfg:rock/gravel_permafrost' },
{ loose: 'tfg:loose/red_granite', gravel: 'tfg:rock/gravel_red_granite' }
]
LOOSE_TO_GRAVEL.forEach(x => {
event.shapeless(x.gravel, [`4x ${x.loose}`])
event.shapeless(`16x ${x.loose}`, [`4x ${x.gravel}`])
var stone = x.gravel.replace('tfg:rock/gravel_', '')
event.recipes.gtceu.packer(`tfc:gtceu/packer/packing_loose_${stone}_to_gravel`)
.itemInputs(`4x ${x.loose}`)
.itemOutputs(x.gravel)
.circuit(2)
.duration(30)
.EUt(GTValues.VA[GTValues.LV])
})
// #region LOOSE_TO_BRICKS
const LOOSE_TO_BRICKS = [
{ loose: 'tfg:loose/deepslate', brick: 'tfg:brick/deepslate' },
@ -200,11 +161,41 @@ function registerTFGRockRecipes(event) {
.itemOutputs(x.aqueduct)
.duration(50)
.EUt(2)
})
})
// #endregion AQUEDUCT
// #region COBBLE TO MOSSY COBBLE
const COBBLE_TO_MOSSY = [
{ cobble: 'minecraft:cobblestone', mossy: 'minecraft:mossy_cobblestone' },
{ cobble: 'tfg:rock/cobble_blackstone', mossy: 'tfg:rock/mossy_cobble_blackstone' },
{ cobble: 'minecraft:cobbled_deepslate', mossy: 'tfg:rock/mossy_cobble_deepslate' },
{ cobble: 'tfg:rock/cobble_dripstone', mossy: 'tfg:rock/mossy_cobble_dripstone' },
{ cobble: 'tfg:rock/cobble_crackrack', mossy: 'tfg:rock/mossy_cobble_crackrack' },
{ cobble: 'ad_astra:moon_cobblestone', mossy: 'tfg:rock/mossy_cobble_moon' },
{ cobble: 'tfg:rock/cobble_moon_deepslate', mossy: 'tfg:rock/mossy_cobble_moon_deepslate' },
{ cobble: 'ad_astra:mars_cobblestone', mossy: 'tfg:rock/mossy_cobble_mars' },
{ cobble: 'ad_astra:venus_cobblestone', mossy: 'tfg:rock/mossy_cobble_venus' },
{ cobble: 'ad_astra:mercury_cobblestone', mossy: 'tfg:rock/mossy_cobble_mercury' },
{ cobble: 'ad_astra:glacio_cobblestone', mossy: 'tfg:rock/mossy_cobble_glacio' },
{ cobble: 'tfg:rock/cobble_permafrost', mossy: 'tfg:rock/mossy_cobble_permafrost' },
{ cobble: 'gtceu:red_granite_cobblestone', mossy: 'gtceu:mossy_red_granite_cobblestone' },
{ cobble: 'gtceu:light_concrete_cobblestone', mossy: 'gtceu:mossy_light_concrete_cobblestone' },
{ cobble: 'gtceu:dark_concrete_cobblestone', mossy: 'gtceu:mossy_dark_concrete_cobblestone' }
];
COBBLE_TO_MOSSY.forEach(x => {
event.recipes.gtceu.assembler(`${x.mossy}_cobble_rocks_to_mossy_cobble`.replace(/: /g, '_'))
.itemInputs(x.cobble, '#tfc:compost_greens_low')
.circuit(0)
.inputFluids("#tfg:clean_water 144")
.itemOutputs(x.mossy)
.duration(50)
.EUt(2)
})
// #endregion
// #region RAW_TO_POLISHED
const RAW_TO_POLISHED = [
@ -390,7 +381,7 @@ function registerTFGRockRecipes(event) {
.EUt(8)
event.recipes.greate.pressing(x.cracked, x.raw)
.recipeTier(1)
.recipeTier(0)
.id(`greate:pressing/${x.raw}_to_${x.cracked}`.replace(/:/g, '_'))
})
// #endregion CRACKING
@ -885,7 +876,7 @@ function registerTFGRockRecipes(event) {
])
CUT_GRIND.forEach(x => {
if (x.raw != null && x.dust != null ) {
if (x.raw != null && x.dust != null) {
try{
event.recipes.gtceu.macerator(x.raw.replace(/.*:/g, 'macerate_'))
.itemInputs(x.raw)
@ -940,7 +931,7 @@ function registerTFGRockRecipes(event) {
}
}
if (x.wall != null) {
if (x.raw != null) {
if (x.raw != null) {
if (x.stonecutting) {
event.stonecutting(x.wall, x.raw).id(`${x.raw}_to_${x.wall}`.replace(/:/g, '_'))
}
@ -957,10 +948,9 @@ function registerTFGRockRecipes(event) {
.EUt(2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
}
}
if (x.loose != null && x.raw != null) {
event.shapeless(`4x ${x.loose}`, [x.raw])
if (x.loose != null) {
event.shapeless(`2x ${x.loose}`, [x.wall])
}
}
})

View file

@ -33,10 +33,10 @@ function registerTFCStoneRecipes(event) {
.itemInputs(`tfc:rock/raw/${stone}`)
.itemOutputs(`tfc:rock/cobble/${stone}`)
.duration(10)
.EUt(16)
.EUt(7)
event.recipes.greate.pressing(`tfc:rock/cobble/${stone}`, `tfc:rock/raw/${stone}`)
.recipeTier(1)
.recipeTier(0)
.id(`greate:pressing/${stone}_raw_to_cobble`)
// Raw Pressure Plate
@ -63,33 +63,20 @@ function registerTFCStoneRecipes(event) {
generateCutterRecipe(event, `tfc:rock/pressure_plate/${stone}`, `6x tfc:rock/button/${stone}`, 50, 2, `${stone}_raw_button`)
// Gravel Crafting
event.shapeless(`1x tfc:rock/gravel/${stone}`, [
`4x tfc:rock/loose/${stone}`
]).id(`tfc:shapeless/loose_${stone}_to_gravel`)
event.shapeless(`1x tfc:rock/gravel/${stone}`, [
`4x tfc:rock/mossy_loose/${stone}`
]).id(`tfc:shapeless/mossy_loose_${stone}_to_gravel`)
event.shapeless(`16x tfc:rock/loose/${stone}`, [
`4x tfc:rock/gravel/${stone}`
]).id(`tfc:shapeless/gravel_to_loose_${stone}`)
// Gravel Packing
event.recipes.gtceu.packer(`tfc:gtceu/packer/packing_loose_${stone}_to_gravel`)
// Cobble Packing
event.recipes.gtceu.packer(`tfc:gtceu/packer/packing_loose_${stone}_to_cobble`)
.itemInputs(`4x tfc:rock/loose/${stone}`)
.itemOutputs(`1x tfc:rock/gravel/${stone}`)
.itemOutputs(`1x tfc:rock/cobble/${stone}`)
.circuit(1)
.duration(30)
.EUt(GTValues.VA[GTValues.LV])
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.packer(`tfc:gtceu/packer/packing_mossy_loose_${stone}_to_gravel`)
event.recipes.gtceu.packer(`tfc:gtceu/packer/packing_mossy_loose_${stone}_to_cobble`)
.itemInputs(`4x tfc:rock/mossy_loose/${stone}`)
.itemOutputs(`1x tfc:rock/gravel/${stone}`)
.itemOutputs(`1x tfc:rock/mossy_cobble/${stone}`)
.circuit(1)
.duration(30)
.EUt(GTValues.VA[GTValues.LV])
.EUt(GTValues.VA[GTValues.ULV])
// Cobble Unpacking
event.recipes.gtceu.packer(`tfc:gtceu/packer/unpacking_${stone}_cobble_into_loose`)
@ -167,30 +154,12 @@ function registerTFCStoneRecipes(event) {
.itemInputs(`tfc:rock/cobble/${stone}`)
.itemOutputs(`tfc:rock/gravel/${stone}`)
.duration(10)
.EUt(16)
.EUt(7)
event.recipes.greate.pressing(`tfc:rock/gravel/${stone}`, `tfc:rock/cobble/${stone}`)
.recipeTier(1)
.recipeTier(0)
.id(`greate:pressing/${stone}_cobble_to_gravel`)
// Glueing Losse to Cobble
event.shaped(`tfc:rock/cobble/${stone}`, [
'ABA',
'BAB',
'ABA'
], {
A: `tfc:rock/loose/${stone}`,
B: '#tfc:mortar'
}).id(`tfc:crafting/rock/${stone}_loose_rocks_to_cobble`)
event.recipes.gtceu.assembler(`${stone}_loose_rocks_to_cobble`)
.itemInputs(`4x tfc:rock/loose/${stone}`)
.circuit(2)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`tfc:rock/cobble/${stone}`)
.duration(50)
.EUt(2)
// #endregion
@ -212,10 +181,10 @@ function registerTFCStoneRecipes(event) {
.itemInputs(`tfc:rock/bricks/${stone}`)
.itemOutputs(`tfc:rock/cracked_bricks/${stone}`)
.duration(25)
.EUt(8)
.EUt(7)
event.recipes.greate.pressing(`tfc:rock/cracked_bricks/${stone}`, `tfc:rock/bricks/${stone}`)
.recipeTier(1)
.recipeTier(0)
.id(`greate:pressing/cracked_bricks_${stone}`)
//#endregion
@ -223,22 +192,6 @@ function registerTFCStoneRecipes(event) {
//#region Mossy Cobble
// Cobble -> Mossy Cobble
event.shaped(`tfc:rock/mossy_cobble/${stone}`, [
'ABA',
'BAB',
'ABA'
], {
A: `tfc:rock/mossy_loose/${stone}`,
B: '#tfc:mortar'
}).id(`tfc:crafting/rock/${stone}_mossy_loose_rocks_to_cobble`)
event.recipes.gtceu.assembler(`${stone}_mossy_loose_rocks_to_mossy_cobble`)
.itemInputs(`4x tfc:rock/mossy_loose/${stone}`)
.circuit(0)
.inputFluids(Fluid.of('gtceu:concrete', 72))
.itemOutputs(`tfc:rock/mossy_cobble/${stone}`)
.duration(50)
.EUt(2)
event.recipes.gtceu.assembler(`${stone}_cobble_rocks_to_mossy_cobble`)
.itemInputs(`tfc:rock/cobble/${stone}`, '#tfc:compost_greens_low')

View file

@ -216,91 +216,91 @@ global.STONE_CHARACS = { // Sets of stone block properties used for block regist
/** @type {Hammering[]} */
global.HAMMERING = [ // Crushing relationships for manual block hammering, create press hammering and gtceu forge hammer crushing.
// 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/mossy_cobble_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 16 },
{ raw: 'minecraft:deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_deepslate', hammered: 'minecraft:cobbled_deepslate', duration: 10, eu: 7 },
{ raw: 'minecraft:cobbled_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_deepslate', hammered: 'tfg:rock/gravel_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_deepslate', hammered: 'tfc:sand/black', duration: 70, eu: 16 },
{ 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/mossy_cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 16 },
{ raw: 'minecraft:blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_blackstone', hammered: 'tfg:rock/cobble_blackstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_blackstone', hammered: 'tfg:rock/gravel_blackstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_blackstone', hammered: 'tfc:sand/black', duration: 70, eu: 16 },
{ 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/mossy_cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 16 },
{ raw: 'minecraft:dripstone_block', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_dripstone', hammered: 'tfg:rock/cobble_dripstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_dripstone', hammered: 'tfg:rock/gravel_dripstone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_dripstone', hammered: 'tfc:sand/brown', duration: 70, eu: 16 },
{ 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/mossy_cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 16 },
{ raw: 'beneath:crackrack', hammered: 'tfg:rock/cobble_crackrack', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_crackrack', hammered: 'tfg:rock/gravel_crackrack', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_crackrack', hammered: 'tfc:sand/pink', duration: 70, eu: 16 },
{ raw: 'minecraft:basalt', hammered: 'tfc:rock/cobble/basalt', duration: 10, eu: 16 },
{ raw: 'minecraft:basalt', hammered: 'tfc:rock/cobble/basalt', duration: 10, eu: 7 },
// 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/mossy_cobble_moon', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 16 },
{ raw: 'ad_astra:moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_moon_stone', hammered: 'ad_astra:moon_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:moon_cobblestone', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_moon', hammered: 'tfg:rock/gravel_moon', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_moon', hammered: 'ad_astra:moon_sand', duration: 70, eu: 16 },
{ raw: 'ad_astra:moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 16 },
{ raw: 'tfg:rock/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/mossy_cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 16 },
{ raw: 'ad_astra:moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_moon_deepslate', hammered: 'tfg:rock/cobble_moon_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_moon_deepslate', hammered: 'tfg:rock/gravel_moon_deepslate', duration: 10, eu: 7 },
{ 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/mossy_cobble_glacio', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 16 },
{ raw: 'ad_astra:glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_glacio_stone', hammered: 'ad_astra:glacio_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:glacio_cobblestone', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_glacio', hammered: 'tfg:rock/gravel_glacio', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_glacio', hammered: 'tfc:sand/white', duration: 70, eu: 16 },
// 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/mossy_cobble_mars', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 16 },
{ raw: 'ad_astra:mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_mars_stone', hammered: 'ad_astra:mars_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:mars_cobblestone', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_mars', hammered: 'tfg:rock/gravel_mars', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_mars', hammered: 'ad_astra:mars_sand', duration: 70, eu: 16 },
{ 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: 'gtceu:mossy_red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 16 },
{ raw: 'gtceu:red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_red_granite', hammered: 'gtceu:red_granite_cobblestone', duration: 10, eu: 7 },
{ raw: 'gtceu:red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 7 },
{ raw: 'gtceu:mossy_red_granite_cobblestone', hammered: 'tfg:rock/gravel_red_granite', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_red_granite', hammered: 'minecraft:red_sand', duration: 70, eu: 16 },
// 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_venus', duration: 10, eu: 16 },
{ raw: 'tfg:rock/mossy_cobble_venus', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 16 },
{ raw: 'ad_astra:venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_venus_stone', hammered: 'ad_astra:venus_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:venus_cobblestone', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_venus', hammered: 'tfg:rock/gravel_venus', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_venus', hammered: 'ad_astra:venus_sand', duration: 70, eu: 16 },
{ raw: 'ad_astra:venus_sandstone', hammered: '4x ad_astra:venus_sand', duration: 70, eu: 16 },
// 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_mercury', duration: 10, eu: 16 },
{ raw: 'tfg:rock/mossy_cobble_mercury', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 16 },
{ raw: 'ad_astra:mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 7 },
{ raw: 'tfg:rock/hardened_mercury_stone', hammered: 'ad_astra:mercury_cobblestone', duration: 10, eu: 7 },
{ raw: 'ad_astra:mercury_cobblestone', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_mercury', hammered: 'tfg:rock/gravel_mercury', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_mercury', hammered: 'tfc:sand/red', duration: 70, eu: 16 },
// 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/mossy_cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 16 },
{ raw: 'ad_astra:permafrost', hammered: 'tfg:rock/cobble_permafrost', duration: 10, eu: 7 },
{ raw: 'tfg:rock/cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 7 },
{ raw: 'tfg:rock/mossy_cobble_permafrost', hammered: 'tfg:rock/gravel_permafrost', duration: 10, eu: 7 },
{ raw: 'tfg:rock/gravel_permafrost', hammered: '4x gtceu:ice_dust', duration: 70, eu: 16 },
// Misc
{ raw: 'ad_astra:conglomerate', hammered: 'tfc:rock/gravel/conglomerate', duration: 10, eu: 16 },
{ raw: 'ad_astra:conglomerate', hammered: 'tfc:rock/gravel/conglomerate', duration: 10, eu: 7 },
{ raw: 'minecraft:stone', hammered: 'minecraft:cobblestone', duration: 10, eu: 16 }
{ raw: 'minecraft:stone', hammered: 'minecraft:cobblestone', duration: 10, eu: 7 }
]
global.COOLING_FOODS = [