diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index 86c2e27f6..5dbf3af6b 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -928,6 +928,7 @@ "item.tfg.vial.filled": "Vial of %s", "item.tfg.lab_equipment": "Lab Equipment", "item.tfg.dirty_lab_equipment": "Dirty Lab Equipment", + "item.tfg.wireless_card": "Interplanetary Wireless Card", "material.tfg.latex": "Latex", "material.tfg.vulcanized_latex": "Vulcanized Latex", "material.tfg.fluix": "Fluix", @@ -1302,6 +1303,8 @@ "tfg.tooltip.single_itemstack_bus.0": "§6Item Slots: §f1", "tfg.tooltip.single_itemstack_bus.1": "§6Stack Size: §f1", "tfg.tooltip.growth_chamber": "This machine can run more recipes at once by increasing the number of layers.", + "tfg.tooltip.wireless_card_1": "Enables wireless connections from any range, even from different planets!", + "tfg.tooltip.wireless_card_2": "Items can still be transferred through the terminal but at a very high power cost.", "tfc.jei.flint_knapping": "Flint Knapping", "tfc.jei.straw_knapping": "Straw Knapping", "tfc.recipe.barrel.tfg.barrel.dyeing.decorative_vase.black": "Dyeing", diff --git a/kubejs/assets/tfg/models/item/wireless_card.json b/kubejs/assets/tfg/models/item/wireless_card.json new file mode 100644 index 000000000..84694c1c7 --- /dev/null +++ b/kubejs/assets/tfg/models/item/wireless_card.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tfg:item/wireless_card" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/item/wireless_card.png b/kubejs/assets/tfg/textures/item/wireless_card.png new file mode 100644 index 000000000..a45df0c68 Binary files /dev/null and b/kubejs/assets/tfg/textures/item/wireless_card.png differ diff --git a/kubejs/client_scripts/tooltips.js b/kubejs/client_scripts/tooltips.js index 7117e946b..31ffc6f15 100644 --- a/kubejs/client_scripts/tooltips.js +++ b/kubejs/client_scripts/tooltips.js @@ -167,7 +167,7 @@ const registerTooltips = (event) => { }) }) - //#region Nuclear Fission Tooltips + //Nuclear Fission Tooltips event.addAdvanced(['minecraft:blue_ice'], (item, advanced, text) => { text.add(1, Text.translate("tfg.tooltip.component.blue_ice")) @@ -176,9 +176,15 @@ const registerTooltips = (event) => { text.add(1, Text.translate("tfg.tooltip.component.glacian_fur")) }) - //#region Deprecated Items + // AE2 + event.addAdvanced(['tfg:wireless_card'], (item, advanced, text) => { + text.add(1, Text.translate('tfg.tooltip.wireless_card_1')) + text.add(2, Text.translate('tfg.tooltip.wireless_card_2')) + text.add(3, Text.translate('tfg.tooltip.wireless_card_3')) + }) + + // Deprecated Items event.addAdvanced(['vintageimprovements:lathe'], (item, advanced, text) => { text.add(1, Text.translate('tfg.tooltip.obsolete.depreciated')) }) - //#endregion } \ No newline at end of file diff --git a/kubejs/server_scripts/ae2/recipes.js b/kubejs/server_scripts/ae2/recipes.js index 52171f0bb..cefa7b84b 100644 --- a/kubejs/server_scripts/ae2/recipes.js +++ b/kubejs/server_scripts/ae2/recipes.js @@ -169,7 +169,7 @@ const registerAE2Recipes = (event) => { .id('tfg:crafting/equal_distribution_card') // Energy Card - event.shapeless('ae2:energy_card', ['ae2:advanced_card', '2x gtceu:hv_lithium_battery']) + event.shapeless('ae2:energy_card', ['ae2:advanced_card', '2x #gtceu:batteries/hv']) .id('tfg:crafting/energy_card') // Quartz Fixture @@ -194,8 +194,8 @@ const registerAE2Recipes = (event) => { B: 'ae2:terminal', C: 'ae2:engineering_processor', D: '#gtceu:circuits/hv', - E: 'gtceu:hv_lithium_battery', - F: '#forge:plates/nether_quartz' + E: '#gtceu:batteries/hv', + F: '#forge:plates/certus_quartz' }).id('tfg:crafting/wireless_terminal') // Basic Card @@ -932,7 +932,7 @@ global.MINECRAFT_DYE_NAMES.forEach(dye => { event.recipes.gtceu.assembler('ae2:cell_component_16k_4k') .itemInputs( '2x #gtceu:circuits/iv', - '4x gtceu:nano_cpu_chip', + '16x gtceu:ram_chip', '16x #forge:foils/polyvinyl_chloride', '16x ae2:logic_processor', '3x ae2:cell_component_4k') @@ -946,7 +946,7 @@ global.MINECRAFT_DYE_NAMES.forEach(dye => { event.recipes.gtceu.assembler('ae2:cell_component_16k') .itemInputs( '2x #gtceu:circuits/ev', - '4x gtceu:nano_cpu_chip', + '16x gtceu:ram_chip', '16x #forge:foils/polyvinyl_chloride', '16x ae2:logic_processor', '2x ae2:cell_component_4k') diff --git a/kubejs/server_scripts/ae2wtlib/recipes.js b/kubejs/server_scripts/ae2wtlib/recipes.js index 2b5be243a..f998e1b19 100644 --- a/kubejs/server_scripts/ae2wtlib/recipes.js +++ b/kubejs/server_scripts/ae2wtlib/recipes.js @@ -68,25 +68,18 @@ const registerAE2WTLibRecipes = (event) => { .EUt(64000) - event.remove({ output: 'ae2wtlib:wireless_universal_terminal' }) + event.remove({ id: 'ae2wtlib:wireless_universal_terminal/ae' }) + event.remove({ id: 'ae2wtlib:wireless_universal_terminal/ce' }) + event.remove({ id: 'ae2wtlib:wireless_universal_terminal/ca' }) event.recipes.gtceu.assembler('ae2wtlib:wireless_universal_terminal') .itemInputs( - 'ae2:wireless_crafting_terminal', - 'ae2wtlib:wireless_pattern_encoding_terminal', - 'ae2wtlib:wireless_pattern_access_terminal', - '1x gtceu:iv_sensor', - '1x gtceu:iv_emitter', + 'ae2:cell_component_16k', + '1x gtceu:ev_sensor', + '1x gtceu:ev_emitter', '2x #forge:plates/rhodium') + .inputFluids(Fluid.of('gtceu:epoxy', 144)) .itemOutputs(Item.of('ae2wtlib:wireless_universal_terminal', '{crafting:1b, pattern_access:1b, pattern_encoding:1b}')) .duration(300) - .EUt(GTValues.VA[GTValues.IV]) - - event.recipes.gtceu.assembler('ae2wtlib:wireless_universal_terminal_ex') - .itemInputs( - 'ae2wtlib:wireless_universal_terminal', - 'ae2wtlib:wireless_pattern_encoding_terminal') - .itemOutputs(Item.of('ae2wtlib:wireless_universal_terminal', '{crafting:1b, ex_pattern_access:1b, pattern_encoding:1b}')) - .duration(300) - .EUt(GTValues.VA[GTValues.IV]) + .EUt(GTValues.VA[GTValues.EV]) } \ No newline at end of file diff --git a/kubejs/server_scripts/extended_ae2/recipes.js b/kubejs/server_scripts/extended_ae2/recipes.js index 6c6842bac..13ea5a4ac 100644 --- a/kubejs/server_scripts/extended_ae2/recipes.js +++ b/kubejs/server_scripts/extended_ae2/recipes.js @@ -573,6 +573,21 @@ const registerExtendedAE2Recipes = (event) => { .itemOutputs('expatternprovider:wireless_ex_pat') .duration(30) .EUt(GTValues.VA[GTValues.IV]) + + event.shapeless('ae2wtlib:wireless_universal_terminal', ['expatternprovider:wireless_ex_pat', 'ae2wtlib:wireless_universal_terminal']) + .modifyResult((grid, result) => { + let orig = grid.find(Item.of('ae2wtlib:wireless_universal_terminal').ignoreNBT()) + result = result.withNBT(orig.nbt); + + if (orig.nbt == null) { + result.nbt = { ex_pattern_access: true }; + } + else { + result.nbt.put('ex_pattern_access', true); + } + + return result; + }) //#region ex molecular assembler diff --git a/kubejs/server_scripts/tfg/events.js b/kubejs/server_scripts/tfg/events.js index a5a5c95f7..c6242903e 100644 --- a/kubejs/server_scripts/tfg/events.js +++ b/kubejs/server_scripts/tfg/events.js @@ -1,138 +1,143 @@ "use strict"; +// TODO +TFGServerEvents.dimensionalPowerConsumption(event => { + //event.add("ad_astra:earth_orbit", 50); +}); + //#region Medicine - //Pills & Tablets - const pill_event = [ - 'haste', - 'luck', - 'night_vision', - 'poison', - 'regeneration', - 'slowness', - 'speed', - 'water_breathing', - 'weakness', - ]; +//Pills & Tablets +const pill_event = [ + 'haste', + 'luck', + 'night_vision', + 'poison', + 'regeneration', + 'slowness', + 'speed', + 'water_breathing', + 'weakness', +]; - pill_event.forEach(pill_event => { +pill_event.forEach(pill_event => { - ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z}} = event - if (item.id !== `tfg:${pill_event}_pill`) return - item.count-- - player.addItemCooldown(item, 100) - server.runCommandSilent(`effect give ${player.username} minecraft:${pill_event} 480 0 true`) - server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) - }); + ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:${pill_event}_pill`) return + item.count-- + player.addItemCooldown(item, 100) + server.runCommandSilent(`effect give ${player.username} minecraft:${pill_event} 480 0 true`) + server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) + }); - ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z}} = event - if (item.id !== `tfg:${pill_event}_tablet`) return - item.count-- - player.addItemCooldown(item, 100) - server.runCommandSilent(`effect give ${player.username} minecraft:${pill_event} 1800 0 true`) - server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) - }); - }); - - ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z}} = event - if (item.id !== `tfg:antipoison_pill`) return - item.count-- - player.addItemCooldown(item, 50) - event.player.removeEffect('minecraft:poison') - server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) - }); - - ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z}} = event - if (item.id !== `tfg:antipoison_tablet`) return - item.count-- - player.addItemCooldown(item, 50) - event.player.removeEffect('minecraft:poison') - event.player.removeEffect('minecraft:wither') - event.player.removeEffect('minecraft:weakness') - event.player.removeEffect('minecraft:slowness') - event.player.removeEffect('minecraft:mining_fatigue') - event.player.removeEffect('minecraft:nausea') - event.player.removeEffect('minecraft:blindness') - event.player.removeEffect('minecraft:hunger') - event.player.removeEffect('minecraft:bad_omen') - event.player.removeEffect('minecraft:darkness') - event.player.removeEffect('minecraft:unluck') - server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) - }); - - //salvos - const salvo_event = [ - 'fire_resistance', - 'invisibility', - 'luck', - 'resistance', - ]; - - salvo_event.forEach(salvo_event => { - - ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z}} = event - if (item.id !== `tfg:${salvo_event}_salvo`) return - item.count-- - player.addItemCooldown(item, 100) - server.runCommandSilent(`effect give ${player.username} minecraft:${salvo_event} 480 0 true`) - server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) - }); - }); - -ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z}} = event - if (item.id !== `tfg:absorption_salvo`) return - item.count-- - player.addItemCooldown(item, 200) - server.runCommandSilent(`effect give ${player.username} minecraft:absorption 480 4 true`) - server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) + ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:${pill_event}_tablet`) return + item.count-- + player.addItemCooldown(item, 100) + server.runCommandSilent(`effect give ${player.username} minecraft:${pill_event} 1800 0 true`) + server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) + }); }); ItemEvents.rightClicked(event => { - const {item,server,player,player:{x,y,z}} = event - if (item.id !== `tfg:instant_health_salvo`) return - item.count-- - player.addItemCooldown(item, 100) - server.runCommandSilent(`effect give ${player.username} minecraft:instant_health 1 1 true`) - server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:antipoison_pill`) return + item.count-- + player.addItemCooldown(item, 50) + event.player.removeEffect('minecraft:poison') + server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) +}); + +ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:antipoison_tablet`) return + item.count-- + player.addItemCooldown(item, 50) + event.player.removeEffect('minecraft:poison') + event.player.removeEffect('minecraft:wither') + event.player.removeEffect('minecraft:weakness') + event.player.removeEffect('minecraft:slowness') + event.player.removeEffect('minecraft:mining_fatigue') + event.player.removeEffect('minecraft:nausea') + event.player.removeEffect('minecraft:blindness') + event.player.removeEffect('minecraft:hunger') + event.player.removeEffect('minecraft:bad_omen') + event.player.removeEffect('minecraft:darkness') + event.player.removeEffect('minecraft:unluck') + server.runCommandSilent(`playsound minecraft:item.honey_bottle.drink player ${player.username} ${x} ${y} ${z} 10 1.5 1`) +}); + +//salvos +const salvo_event = [ + 'fire_resistance', + 'invisibility', + 'luck', + 'resistance', +]; + +salvo_event.forEach(salvo_event => { + + ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:${salvo_event}_salvo`) return + item.count-- + player.addItemCooldown(item, 100) + server.runCommandSilent(`effect give ${player.username} minecraft:${salvo_event} 480 0 true`) + server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) + }); +}); + +ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:absorption_salvo`) return + item.count-- + player.addItemCooldown(item, 200) + server.runCommandSilent(`effect give ${player.username} minecraft:absorption 480 4 true`) + server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) +}); + +ItemEvents.rightClicked(event => { + const { item, server, player, player: { x, y, z } } = event + if (item.id !== `tfg:instant_health_salvo`) return + item.count-- + player.addItemCooldown(item, 100) + server.runCommandSilent(`effect give ${player.username} minecraft:instant_health 1 1 true`) + server.runCommandSilent(`playsound minecraft:item.glow_ink_sac.use player ${player.username} ${x} ${y} ${z} 10 2 1`) }); //#endregion // Vase Sounds global.MINECRAFT_DYE_NAMES.forEach(color => { - BlockEvents.rightClicked(event => { - const {block,server,player} = event - if (block.id !== `tfg:decorative_vase/${color}`) return - server.runCommandSilent(`playsound tfc:block.quern.drag block ${player.username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`) - -}) + BlockEvents.rightClicked(event => { + const { block, server, player } = event + if (block.id !== `tfg:decorative_vase/${color}`) return + server.runCommandSilent(`playsound tfc:block.quern.drag block ${player.username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`) + + }) }); BlockEvents.rightClicked(event => { - const {block,server,player} = event - if (block.id !== 'tfg:decorative_vase') return - server.runCommandSilent(`playsound tfc:block.quern.drag block ${player.username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`) + const { block, server, player } = event + if (block.id !== 'tfg:decorative_vase') return + server.runCommandSilent(`playsound tfc:block.quern.drag block ${player.username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`) }); //#endregion BlockEvents.rightClicked(event => { - let item = event.item - if (item.id !== 'tfg:armor_stand_arms') return - let mob = event.block[event.facing].createEntity('minecraft:armor_stand') - mob.mergeNbt('{ShowArms:1b}') - mob.setPos(mob.x + 0.5, mob.y, mob.z + 0.5) - mob.setYaw(event.player.yaw + 180) - mob.spawn() - if (event.player.isCreative() === false){ - item.shrink(1) - } + let item = event.item + if (item.id !== 'tfg:armor_stand_arms') return + let mob = event.block[event.facing].createEntity('minecraft:armor_stand') + mob.mergeNbt('{ShowArms:1b}') + mob.setPos(mob.x + 0.5, mob.y, mob.z + 0.5) + mob.setYaw(event.player.yaw + 180) + mob.spawn() + if (event.player.isCreative() === false) { + item.shrink(1) + } }) /** @@ -141,106 +146,106 @@ BlockEvents.rightClicked(event => { * @returns {Internal.CompoundTag} */ function getTFGPersistentDataRoot(player) { - if (!player.persistentData.contains("tfg:custom_data")) { - player.persistentData.put("tfg:custom_data", {}); - } - return player.persistentData.getCompound("tfg:custom_data") + if (!player.persistentData.contains("tfg:custom_data")) { + player.persistentData.put("tfg:custom_data", {}); + } + return player.persistentData.getCompound("tfg:custom_data") } //#region Fishing Net - const fish = [ - 'cod', - 'crappie', - 'jellyfish', - 'lake_trout', - 'largemouth_bass', - 'rainbow_trout', - 'salmon', - 'smallmouth_bass', - 'tropical_fish', - 'bluegill' - ]; +const fish = [ + 'cod', + 'crappie', + 'jellyfish', + 'lake_trout', + 'largemouth_bass', + 'rainbow_trout', + 'salmon', + 'smallmouth_bass', + 'tropical_fish', + 'bluegill' +]; - const shellfish = [ - 'lobster', - 'isopod', - 'crayfish' - ]; +const shellfish = [ + 'lobster', + 'isopod', + 'crayfish' +]; - //tags wont work here (or at least I couldnt get it to work) so we need to manually declare each net tier. - const tiers = [ - 'wood', - 'brass', - 'rose_gold', - 'sterling_silver', - 'invar', - 'tin_alloy', - 'cupronickel', - 'magnalium' - ]; +//tags wont work here (or at least I couldnt get it to work) so we need to manually declare each net tier. +const tiers = [ + 'wood', + 'brass', + 'rose_gold', + 'sterling_silver', + 'invar', + 'tin_alloy', + 'cupronickel', + 'magnalium' +]; - //Event detects if fish is right clicked with fishing net and then teleports the mob into the void, plays some actions and gives the player the proper item. - tiers.forEach(tier => { - fish.forEach(fish => { - ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { - const {item, player, server, target} = event; +//Event detects if fish is right clicked with fishing net and then teleports the mob into the void, plays some actions and gives the player the proper item. +tiers.forEach(tier => { + fish.forEach(fish => { + ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { + const { item, player, server, target } = event; - if (target.type !== `tfc:${fish}`) return - server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) - server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) - server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) - event.player.give(`tfc:food/${fish}`) - player.swing() - if (player.isCreative() === false){ - item.damageValue++ - if (item.damageValue >= item.maxDamage) { - server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) - item.count-- - } - } - }) - }) + if (target.type !== `tfc:${fish}`) return + server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) + server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) + server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) + event.player.give(`tfc:food/${fish}`) + player.swing() + if (player.isCreative() === false) { + item.damageValue++ + if (item.damageValue >= item.maxDamage) { + server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) + item.count-- + } + } + }) + }) - //Shellfish Exception - shellfish.forEach(shellfish => { - ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { - const {item, player, server, target} = event; + //Shellfish Exception + shellfish.forEach(shellfish => { + ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { + const { item, player, server, target } = event; - if (target.type !== `tfc:${shellfish}`) return - server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) - server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) - server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) - event.player.give('tfc:food/shellfish') - player.swing() - if (player.isCreative() === false){ - item.damageValue++ - if (item.damageValue >= item.maxDamage) { - server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) - item.count-- - } - } - }) - }) + if (target.type !== `tfc:${shellfish}`) return + server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) + server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) + server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) + event.player.give('tfc:food/shellfish') + player.swing() + if (player.isCreative() === false) { + item.damageValue++ + if (item.damageValue >= item.maxDamage) { + server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) + item.count-- + } + } + }) + }) - //Pufferfish Exception - ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { - const {item, player, server, target} = event; + //Pufferfish Exception + ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => { + const { item, player, server, target } = event; - if (target.type !== 'tfc:pufferfish') return - server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) - server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) - server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) - event.player.give('minecraft:pufferfish') - player.swing() - if (player.isCreative() === false){ - item.damageValue++ - if (item.damageValue >= item.maxDamage) { - server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) - item.count-- - } - } - }) - }) + if (target.type !== 'tfc:pufferfish') return + server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`) + server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`) + server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`) + event.player.give('minecraft:pufferfish') + player.swing() + if (player.isCreative() === false) { + item.damageValue++ + if (item.damageValue >= item.maxDamage) { + server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`) + item.count-- + } + } + }) +}) //#endregion //#region Block Interactions @@ -272,180 +277,226 @@ const AA_REGULAR_STONES = ['moon', 'mars', 'venus', 'mercury', 'glacio'] // #region BRICK_INDEX /** @type {BrickVariant[]} */ global.BRICK_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({ - brick_type: tfc_stone, - brick: `tfc:rock/bricks/${tfc_stone}`, brick_stairs: `tfc:rock/bricks/${tfc_stone}_stairs`, brick_slab: `tfc:rock/bricks/${tfc_stone}_slab`, brick_wall: `tfc:rock/bricks/${tfc_stone}_wall`, - cracked_brick: `tfc:rock/cracked_bricks/${tfc_stone}`, cracked_stairs: `tfc:rock/cracked_bricks/${tfc_stone}_stairs`, cracked_slab: `tfc:rock/cracked_bricks/${tfc_stone}_slab`, cracked_wall: `tfc:rock/cracked_bricks/${tfc_stone}_wall`, - mossy_brick: `tfc:rock/mossy_bricks/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_bricks/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_bricks/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_bricks/${tfc_stone}_wall`, - smooth_brick: `tfc:rock/smooth/${tfc_stone}`, smooth_stairs: `tfc:rock/smooth/${tfc_stone}_stairs`, smooth_slab: `tfc:rock/smooth/${tfc_stone}_slab`, smooth_wall: `tfc:rock/smooth/${tfc_stone}_wall`, + brick_type: tfc_stone, + brick: `tfc:rock/bricks/${tfc_stone}`, brick_stairs: `tfc:rock/bricks/${tfc_stone}_stairs`, brick_slab: `tfc:rock/bricks/${tfc_stone}_slab`, brick_wall: `tfc:rock/bricks/${tfc_stone}_wall`, + cracked_brick: `tfc:rock/cracked_bricks/${tfc_stone}`, cracked_stairs: `tfc:rock/cracked_bricks/${tfc_stone}_stairs`, cracked_slab: `tfc:rock/cracked_bricks/${tfc_stone}_slab`, cracked_wall: `tfc:rock/cracked_bricks/${tfc_stone}_wall`, + mossy_brick: `tfc:rock/mossy_bricks/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_bricks/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_bricks/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_bricks/${tfc_stone}_wall`, + smooth_brick: `tfc:rock/smooth/${tfc_stone}`, smooth_stairs: `tfc:rock/smooth/${tfc_stone}_stairs`, smooth_slab: `tfc:rock/smooth/${tfc_stone}_slab`, smooth_wall: `tfc:rock/smooth/${tfc_stone}_wall`, chiseled_brick: `tfc:rock/chiseled/${tfc_stone}` })); (global.CREATE_DECO_BRICK_TYPES ? global.CREATE_DECO_BRICK_TYPES : []).slice(0, -1).forEach(create_brick => { - global.BRICK_INDEX.push({ - brick_type: create_brick, - brick: `createdeco:${create_brick}_bricks`, brick_stairs: `createdeco:${create_brick}_brick_stairs`, brick_slab: `createdeco:${create_brick}_brick_slab`, brick_wall: `createdeco:${create_brick}_brick_wall`, - cracked_brick: `createdeco:cracked_${create_brick}_bricks`, cracked_stairs: `createdeco:cracked_${create_brick}_brick_stairs`, cracked_slab: `createdeco:cracked_${create_brick}_brick_slab`, cracked_wall: `createdeco:cracked_${create_brick}_brick_wall`, - mossy_brick: `createdeco:mossy_${create_brick}_bricks`, mossy_stairs: `createdeco:mossy_${create_brick}_brick_stairs`, mossy_slab: `createdeco:mossy_${create_brick}_brick_slab`, mossy_wall: `createdeco:mossy_${create_brick}_brick_wall`, - smooth_brick: `createdeco:corner_${create_brick}_bricks`, smooth_stairs: `createdeco:corner_${create_brick}_brick_stairs`, smooth_slab: `createdeco:corner_${create_brick}_brick_slab`, smooth_wall: `createdeco:corner_${create_brick}_brick_wall`, + global.BRICK_INDEX.push({ + brick_type: create_brick, + brick: `createdeco:${create_brick}_bricks`, brick_stairs: `createdeco:${create_brick}_brick_stairs`, brick_slab: `createdeco:${create_brick}_brick_slab`, brick_wall: `createdeco:${create_brick}_brick_wall`, + cracked_brick: `createdeco:cracked_${create_brick}_bricks`, cracked_stairs: `createdeco:cracked_${create_brick}_brick_stairs`, cracked_slab: `createdeco:cracked_${create_brick}_brick_slab`, cracked_wall: `createdeco:cracked_${create_brick}_brick_wall`, + mossy_brick: `createdeco:mossy_${create_brick}_bricks`, mossy_stairs: `createdeco:mossy_${create_brick}_brick_stairs`, mossy_slab: `createdeco:mossy_${create_brick}_brick_slab`, mossy_wall: `createdeco:mossy_${create_brick}_brick_wall`, + smooth_brick: `createdeco:corner_${create_brick}_bricks`, smooth_stairs: `createdeco:corner_${create_brick}_brick_stairs`, smooth_slab: `createdeco:corner_${create_brick}_brick_slab`, smooth_wall: `createdeco:corner_${create_brick}_brick_wall`, chiseled_brick: `createdeco:tiled_${create_brick}_bricks` }) }); global.BRICK_INDEX = global.BRICK_INDEX.concat([ -// { brick_type: '', -// brick: '', brick_stairs: '', brick_slab: '', brick_wall: '', -// cracked_brick: '', cracked_stairs: '', cracked_slab: '', cracked_wall: '', -// mossy_brick: '', mossy_stairs: '', mossy_slab: '', mossy_wallL: '', -// smooth_brick: '', smooth_stairs: '', smooth_slab: '', smooth_wall: '', -// chiseled_brick: '' }, + // { brick_type: '', + // brick: '', brick_stairs: '', brick_slab: '', brick_wall: '', + // cracked_brick: '', cracked_stairs: '', cracked_slab: '', cracked_wall: '', + // mossy_brick: '', mossy_stairs: '', mossy_slab: '', mossy_wallL: '', + // smooth_brick: '', smooth_stairs: '', smooth_slab: '', smooth_wall: '', + // chiseled_brick: '' }, - { brick_type: 'red', - brick: 'minecraft:bricks', brick_stairs: 'minecraft:brick_stairs', brick_slab: 'minecraft:brick_slab', brick_wall: 'minecraft:brick_wall', - cracked_brick: 'createdeco:cracked_red_bricks', cracked_stairs: 'createdeco:cracked_red_brick_stairs', cracked_slab: 'createdeco:cracked_red_brick_slab', cracked_wall: 'createdeco:cracked_red_brick_wall', - mossy_brick: 'createdeco:mossy_red_bricks', mossy_stairs: 'createdeco:mossy_red_brick_stairs', mossy_slab: 'createdeco:mossy_red_brick_slab', mossy_wall: 'createdeco:mossy_red_brick_wall', - smooth_brick: 'createdeco:corner_red_bricks', smooth_stairs: 'createdeco:corner_red_brick_stairs', smooth_slab: 'createdeco:corner_red_brick_slab', smooth_wall: 'createdeco:corner_red_brick_wall', - chiseled_brick: 'createdeco:tiled_red_bricks' }, + { + brick_type: 'red', + brick: 'minecraft:bricks', brick_stairs: 'minecraft:brick_stairs', brick_slab: 'minecraft:brick_slab', brick_wall: 'minecraft:brick_wall', + cracked_brick: 'createdeco:cracked_red_bricks', cracked_stairs: 'createdeco:cracked_red_brick_stairs', cracked_slab: 'createdeco:cracked_red_brick_slab', cracked_wall: 'createdeco:cracked_red_brick_wall', + mossy_brick: 'createdeco:mossy_red_bricks', mossy_stairs: 'createdeco:mossy_red_brick_stairs', mossy_slab: 'createdeco:mossy_red_brick_slab', mossy_wall: 'createdeco:mossy_red_brick_wall', + smooth_brick: 'createdeco:corner_red_bricks', smooth_stairs: 'createdeco:corner_red_brick_stairs', smooth_slab: 'createdeco:corner_red_brick_slab', smooth_wall: 'createdeco:corner_red_brick_wall', + chiseled_brick: 'createdeco:tiled_red_bricks' + }, - { brick_type: 'light_concrete', - brick: 'gtceu:light_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, - cracked_brick: 'gtceu:cracked_light_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, - mossy_brick: 'gtceu:mossy_light_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'gtceu:polished_light_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: 'gtceu:chiseled_light_concrete' }, + { + brick_type: 'light_concrete', + brick: 'gtceu:light_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, + cracked_brick: 'gtceu:cracked_light_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, + mossy_brick: 'gtceu:mossy_light_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'gtceu:polished_light_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: 'gtceu:chiseled_light_concrete' + }, - { brick_type: 'dark_concrete', - brick: 'gtceu:dark_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, - cracked_brick: 'gtceu:cracked_dark_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, - mossy_brick: 'gtceu:mossy_dark_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'gtceu:polished_dark_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: 'gtceu:chiseled_dark_concrete' }, + { + brick_type: 'dark_concrete', + brick: 'gtceu:dark_concrete_bricks', brick_stairs: null, brick_slab: null, brick_wall: null, + cracked_brick: 'gtceu:cracked_dark_concrete_bricks', cracked_stairs: null, cracked_slab: null, cracked_wall: null, + mossy_brick: 'gtceu:mossy_dark_concrete_bricks', mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'gtceu:polished_dark_concrete', smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: 'gtceu:chiseled_dark_concrete' + }, - { brick_type: 'deepslate', - brick: 'minecraft:deepslate_bricks', brick_stairs: 'minecraft:deepslate_brick_stairs', brick_slab: 'minecraft:deepslate_brick_slab', brick_wall: 'minecraft:deepslate_brick_wall', - cracked_brick: 'minecraft:cracked_deepslate_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_deepslate_slab', cracked_wall: 'tfg:rock/cracked_bricks_deepslate_wall', - mossy_brick: 'tfg:rock/mossy_bricks_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_deepslate_slab', mossy_wall: 'tfg:rock/mossy_bricks_deepslate_wall', - smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', - chiseled_brick: 'minecraft:chiseled_deepslate' }, + { + brick_type: 'deepslate', + brick: 'minecraft:deepslate_bricks', brick_stairs: 'minecraft:deepslate_brick_stairs', brick_slab: 'minecraft:deepslate_brick_slab', brick_wall: 'minecraft:deepslate_brick_wall', + cracked_brick: 'minecraft:cracked_deepslate_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_deepslate_slab', cracked_wall: 'tfg:rock/cracked_bricks_deepslate_wall', + mossy_brick: 'tfg:rock/mossy_bricks_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_deepslate_slab', mossy_wall: 'tfg:rock/mossy_bricks_deepslate_wall', + smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', + chiseled_brick: 'minecraft:chiseled_deepslate' + }, - { brick_type: 'deepslate_tiles', - brick: 'minecraft:deepslate_tiles', brick_stairs: 'minecraft:deepslate_tile_stairs', brick_slab: 'minecraft:deepslate_tile_slab', brick_wall: 'minecraft:deepslate_tile_wall', - cracked_brick: 'minecraft:cracked_deepslate_tiles', cracked_stairs: 'tfg:rock/cracked_tiles_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_tiles_deepslate_slab', cracked_wall: 'tfg:rock/cracked_tiles_deepslate_wall', - mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', - chiseled_brick: 'minecraft:chiseled_deepslate' }, + { + brick_type: 'deepslate_tiles', + brick: 'minecraft:deepslate_tiles', brick_stairs: 'minecraft:deepslate_tile_stairs', brick_slab: 'minecraft:deepslate_tile_slab', brick_wall: 'minecraft:deepslate_tile_wall', + cracked_brick: 'minecraft:cracked_deepslate_tiles', cracked_stairs: 'tfg:rock/cracked_tiles_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_tiles_deepslate_slab', cracked_wall: 'tfg:rock/cracked_tiles_deepslate_wall', + mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: 'minecraft:polished_deepslate', smooth_stairs: 'minecraft:polished_deepslate_stairs', smooth_slab: 'minecraft:polished_deepslate_slab', smooth_wall: 'minecraft:polished_deepslate_wall', + chiseled_brick: 'minecraft:chiseled_deepslate' + }, - { brick_type: 'blackstone', - brick: 'minecraft:polished_blackstone_bricks', brick_stairs: 'minecraft:polished_blackstone_brick_stairs', brick_slab: 'minecraft:polished_blackstone_brick_slab', brick_wall: 'minecraft:polished_blackstone_brick_wall', - cracked_brick: 'minecraft:cracked_polished_blackstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_blackstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_blackstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_blackstone_wall', - mossy_brick: 'tfg:rock/mossy_bricks_blackstone', mossy_stairs: 'tfg:rock/mossy_bricks_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_blackstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_blackstone_wall', - smooth_brick: 'minecraft:polished_blackstone', smooth_stairs: 'minecraft:polished_blackstone_stairs', smooth_slab: 'minecraft:polished_blackstone_slab', smooth_wall: 'minecraft:polished_blackstone_wall', - chiseled_brick: 'minecraft:chiseled_blackstone' }, + { + brick_type: 'blackstone', + brick: 'minecraft:polished_blackstone_bricks', brick_stairs: 'minecraft:polished_blackstone_brick_stairs', brick_slab: 'minecraft:polished_blackstone_brick_slab', brick_wall: 'minecraft:polished_blackstone_brick_wall', + cracked_brick: 'minecraft:cracked_polished_blackstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_blackstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_blackstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_blackstone_wall', + mossy_brick: 'tfg:rock/mossy_bricks_blackstone', mossy_stairs: 'tfg:rock/mossy_bricks_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_blackstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_blackstone_wall', + smooth_brick: 'minecraft:polished_blackstone', smooth_stairs: 'minecraft:polished_blackstone_stairs', smooth_slab: 'minecraft:polished_blackstone_slab', smooth_wall: 'minecraft:polished_blackstone_wall', + chiseled_brick: 'minecraft:chiseled_blackstone' + }, - { brick_type: 'dripstone', - brick: 'create:cut_dripstone_bricks', brick_stairs: 'create:cut_dripstone_brick_stairs', brick_slab: 'create:cut_dripstone_brick_slab', brick_wall: 'create:cut_dripstone_brick_wall', - cracked_brick: 'tfg:rock/cracked_bricks_dripstone', cracked_stairs: 'tfg:rock/cracked_bricks_dripstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_dripstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_dripstone_wall', - mossy_brick: 'tfg:rock/mossy_bricks_dripstone', mossy_stairs: 'tfg:rock/mossy_bricks_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_dripstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_dripstone_wall', - smooth_brick: 'create:polished_cut_dripstone', smooth_stairs: 'create:polished_cut_dripstone_stairs', smooth_slab: 'create:polished_cut_dripstone_slab', smooth_wall: 'create:polished_cut_dripstone_wall', - chiseled_brick: 'create:small_dripstone_bricks' }, + { + brick_type: 'dripstone', + brick: 'create:cut_dripstone_bricks', brick_stairs: 'create:cut_dripstone_brick_stairs', brick_slab: 'create:cut_dripstone_brick_slab', brick_wall: 'create:cut_dripstone_brick_wall', + cracked_brick: 'tfg:rock/cracked_bricks_dripstone', cracked_stairs: 'tfg:rock/cracked_bricks_dripstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_dripstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_dripstone_wall', + mossy_brick: 'tfg:rock/mossy_bricks_dripstone', mossy_stairs: 'tfg:rock/mossy_bricks_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_bricks_dripstone_slab', mossy_wall: 'tfg:rock/mossy_bricks_dripstone_wall', + smooth_brick: 'create:polished_cut_dripstone', smooth_stairs: 'create:polished_cut_dripstone_stairs', smooth_slab: 'create:polished_cut_dripstone_slab', smooth_wall: 'create:polished_cut_dripstone_wall', + chiseled_brick: 'create:small_dripstone_bricks' + }, - { brick_type: 'crackrack', - brick: 'minecraft:nether_bricks', brick_stairs: 'minecraft:nether_bricks_stairs', brick_slab: 'minecraft:nether_bricks_slab', brick_wall: 'minecraft:nether_bricks_wall', - cracked_brick: 'minecraft:cracked_nether_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_nether_stairs', cracked_slab: 'tfg:rock/cracked_bricks_nether_slab', cracked_wall: 'tfg:rock/cracked_bricks_nether_wall', - mossy_brick: 'tfg:rock/mossy_bricks_nether', mossy_stairs: 'tfg:rock/mossy_bricks_nether_stairs', mossy_slab: 'tfg:rock/mossy_bricks_nether_slab', mossy_wall: 'tfg:rock/mossy_bricks_nether_wall', - smooth_brick: 'tfg:rock/polished_crackrack', smooth_stairs: 'tfg:rock/polished_crackrack_stairs', smooth_slab: 'tfg:rock/polished_crackrack_slab', smooth_wall: 'tfg:rock/polished_crackrack_wall', - chiseled_brick: 'minecraft:chiseled_nether_bricks' }, + { + brick_type: 'crackrack', + brick: 'minecraft:nether_bricks', brick_stairs: 'minecraft:nether_bricks_stairs', brick_slab: 'minecraft:nether_bricks_slab', brick_wall: 'minecraft:nether_bricks_wall', + cracked_brick: 'minecraft:cracked_nether_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_nether_stairs', cracked_slab: 'tfg:rock/cracked_bricks_nether_slab', cracked_wall: 'tfg:rock/cracked_bricks_nether_wall', + mossy_brick: 'tfg:rock/mossy_bricks_nether', mossy_stairs: 'tfg:rock/mossy_bricks_nether_stairs', mossy_slab: 'tfg:rock/mossy_bricks_nether_slab', mossy_wall: 'tfg:rock/mossy_bricks_nether_wall', + smooth_brick: 'tfg:rock/polished_crackrack', smooth_stairs: 'tfg:rock/polished_crackrack_stairs', smooth_slab: 'tfg:rock/polished_crackrack_slab', smooth_wall: 'tfg:rock/polished_crackrack_wall', + chiseled_brick: 'minecraft:chiseled_nether_bricks' + }, - { brick_type: 'moon_deepslate', - brick: 'tfg:rock/bricks_moon_deepslate', brick_stairs: 'tfg:rock/bricks_moon_deepslate_stairs', brick_slab: 'tfg:rock/bricks_moon_deepslate_slab', brick_wall: 'tfg:rock/bricks_moon_deepslate_wall', - cracked_brick: 'tfg:rock/cracked_bricks_moon_deepslate', cracked_stairs: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_moon_slab', cracked_wall: 'tfg:rock/cracked_bricks_moon_wall', - mossy_brick: 'tfg:rock/mossy_bricks_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_moon_slab', mossy_wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall', - smooth_brick: 'tfg:rock/polished_moon_deepslate', smooth_stairs: 'tfg:rock/polished_moon_deepslate_stairs', smooth_slab: 'ad_astra:polished_moon_stone_slab', smooth_wall: 'tfg:rock/polished_moon_deepslate_wall', - chiseled_brick: 'tfg:rock/chiseled_bricks_moon_deepslate' }, + { + brick_type: 'moon_deepslate', + brick: 'tfg:rock/bricks_moon_deepslate', brick_stairs: 'tfg:rock/bricks_moon_deepslate_stairs', brick_slab: 'tfg:rock/bricks_moon_deepslate_slab', brick_wall: 'tfg:rock/bricks_moon_deepslate_wall', + cracked_brick: 'tfg:rock/cracked_bricks_moon_deepslate', cracked_stairs: 'tfg:rock/cracked_bricks_moon_deepslate_stairs', cracked_slab: 'tfg:rock/cracked_bricks_moon_slab', cracked_wall: 'tfg:rock/cracked_bricks_moon_wall', + mossy_brick: 'tfg:rock/mossy_bricks_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_bricks_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_bricks_moon_slab', mossy_wall: 'tfg:rock/mossy_bricks_moon_deepslate_wall', + smooth_brick: 'tfg:rock/polished_moon_deepslate', smooth_stairs: 'tfg:rock/polished_moon_deepslate_stairs', smooth_slab: 'ad_astra:polished_moon_stone_slab', smooth_wall: 'tfg:rock/polished_moon_deepslate_wall', + chiseled_brick: 'tfg:rock/chiseled_bricks_moon_deepslate' + }, - { brick_type: 'permafrost', - brick: 'ad_astra:permafrost_bricks', brick_stairs: 'ad_astra:permafrost_brick_stairs', brick_slab: 'ad_astra:permafrost_brick_slab', brick_wall: 'ad_astra:permafrost_brick_wall', - cracked_brick: 'ad_astra:cracked_permafrost_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_permafrost_stairs', cracked_slab: 'tfg:rock/cracked_bricks_permafrost_slab', cracked_wall: 'tfg:rock/cracked_bricks_permafrost_wall', - mossy_brick: 'tfg:rock/mossy_bricks_permafrost', mossy_stairs: 'tfg:rock/mossy_bricks_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_bricks_permafrost_slab', mossy_wall: 'tfg:rock/mossy_bricks_permafrost_wall', - smooth_brick: 'ad_astra:polished_permafrost', smooth_stairs: 'ad_astra:polished_permafrost_stairs', smooth_slab: 'ad_astra:polished_permafrost_slab', smooth_wall: 'tfg:rock/polished_permafrost_wall', - chiseled_brick: 'ad_astra:chiseled_permafrost_bricks' }, + { + brick_type: 'permafrost', + brick: 'ad_astra:permafrost_bricks', brick_stairs: 'ad_astra:permafrost_brick_stairs', brick_slab: 'ad_astra:permafrost_brick_slab', brick_wall: 'ad_astra:permafrost_brick_wall', + cracked_brick: 'ad_astra:cracked_permafrost_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_permafrost_stairs', cracked_slab: 'tfg:rock/cracked_bricks_permafrost_slab', cracked_wall: 'tfg:rock/cracked_bricks_permafrost_wall', + mossy_brick: 'tfg:rock/mossy_bricks_permafrost', mossy_stairs: 'tfg:rock/mossy_bricks_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_bricks_permafrost_slab', mossy_wall: 'tfg:rock/mossy_bricks_permafrost_wall', + smooth_brick: 'ad_astra:polished_permafrost', smooth_stairs: 'ad_astra:polished_permafrost_stairs', smooth_slab: 'ad_astra:polished_permafrost_slab', smooth_wall: 'tfg:rock/polished_permafrost_wall', + chiseled_brick: 'ad_astra:chiseled_permafrost_bricks' + }, - { brick_type: 'red_granite', - brick: 'gtceu:red_granite_bricks', brick_stairs: 'tfg:rock/bricks_red_granite_stairs', brick_slab: 'tfg:rock/bricks_red_granite_slab', brick_wall: 'tfg:rock/bricks_red_granite_wall', - cracked_brick: 'gtceu:cracked_red_granite_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_red_granite_stairs', cracked_slab: 'tfg:rock/cracked_bricks_red_granite_slab', cracked_wall: 'tfg:rock/cracked_bricks_red_granite_wall', - mossy_brick: 'gtceu:mossy_red_granite_bricks', mossy_stairs: 'tfg:rock/mossy_bricks_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_bricks_red_granite_slab', mossy_wall: 'tfg:rock/mossy_bricks_red_granite_wall', - smooth_brick: 'gtceu:polished_red_granite', smooth_stairs: 'tfg:rock/polished_red_granite_stairs', smooth_slab: 'tfg:rock/polished_red_granite_slab', smooth_wall: 'tfg:rock/polished_red_granite_wall', - chiseled_brick: 'gtceu:chiseled_red_granite' }, + { + brick_type: 'red_granite', + brick: 'gtceu:red_granite_bricks', brick_stairs: 'tfg:rock/bricks_red_granite_stairs', brick_slab: 'tfg:rock/bricks_red_granite_slab', brick_wall: 'tfg:rock/bricks_red_granite_wall', + cracked_brick: 'gtceu:cracked_red_granite_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_red_granite_stairs', cracked_slab: 'tfg:rock/cracked_bricks_red_granite_slab', cracked_wall: 'tfg:rock/cracked_bricks_red_granite_wall', + mossy_brick: 'gtceu:mossy_red_granite_bricks', mossy_stairs: 'tfg:rock/mossy_bricks_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_bricks_red_granite_slab', mossy_wall: 'tfg:rock/mossy_bricks_red_granite_wall', + smooth_brick: 'gtceu:polished_red_granite', smooth_stairs: 'tfg:rock/polished_red_granite_stairs', smooth_slab: 'tfg:rock/polished_red_granite_slab', smooth_wall: 'tfg:rock/polished_red_granite_wall', + chiseled_brick: 'gtceu:chiseled_red_granite' + }, - { brick_type: 'venus_sandstone', - brick: 'ad_astra:venus_sandstone_bricks', brick_stairs: 'ad_astra:venus_sandstone_brick_stairs', brick_slab: 'ad_astra:venus_sandstone_brick_slab', brick_wall: 'tfg:rock/bricks_venus_sandstone_wall', - cracked_brick: 'ad_astra:cracked_venus_sandstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', - mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, - smooth_brick: null, smooth_stairs: null, smooth_slab: null, smooth_wall: null, - chiseled_brick: null }, + { + brick_type: 'venus_sandstone', + brick: 'ad_astra:venus_sandstone_bricks', brick_stairs: 'ad_astra:venus_sandstone_brick_stairs', brick_slab: 'ad_astra:venus_sandstone_brick_slab', brick_wall: 'tfg:rock/bricks_venus_sandstone_wall', + cracked_brick: 'ad_astra:cracked_venus_sandstone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_venus_sandstone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_venus_sandstone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', + mossy_brick: null, mossy_stairs: null, mossy_slab: null, mossy_wall: null, + smooth_brick: null, smooth_stairs: null, smooth_slab: null, smooth_wall: null, + chiseled_brick: null + }, - { brick_type: 'stone', - brick: 'minecraft:stone_bricks', brick_stairs: 'minecraft:stone_brick_stairs', brick_slab: 'minecraft:stone_brick_slab', brick_wall: 'minecraft:stone_brick_wall', - cracked_brick: 'minecraft:cracked_stone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_stone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_stone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', - mossy_brick: 'minecraft:mossy_stone_bricks', mossy_stairs: 'minecraft:mossy_stone_brick_stairs', mossy_slab: 'minecraft:mossy_stone_brick_slab', mossy_wall: 'minecraft:mossy_stone_brick_wall', - smooth_brick: 'minecraft:smooth_stone', smooth_stairs: 'tfg:rock/smooth_stone_stairs', smooth_slab: 'minecraft:smooth_stone_slab', smooth_wall: 'tfg:rock/smooth_stone_wall', - chiseled_brick: 'minecraft:chiseled_stone_bricks' } + { + brick_type: 'stone', + brick: 'minecraft:stone_bricks', brick_stairs: 'minecraft:stone_brick_stairs', brick_slab: 'minecraft:stone_brick_slab', brick_wall: 'minecraft:stone_brick_wall', + cracked_brick: 'minecraft:cracked_stone_bricks', cracked_stairs: 'tfg:rock/cracked_bricks_stone_stairs', cracked_slab: 'tfg:rock/cracked_bricks_stone_slab', cracked_wall: 'tfg:rock/cracked_bricks_stone_wall', + mossy_brick: 'minecraft:mossy_stone_bricks', mossy_stairs: 'minecraft:mossy_stone_brick_stairs', mossy_slab: 'minecraft:mossy_stone_brick_slab', mossy_wall: 'minecraft:mossy_stone_brick_wall', + smooth_brick: 'minecraft:smooth_stone', smooth_stairs: 'tfg:rock/smooth_stone_stairs', smooth_slab: 'minecraft:smooth_stone_slab', smooth_wall: 'tfg:rock/smooth_stone_wall', + chiseled_brick: 'minecraft:chiseled_stone_bricks' + } ]); -global.BRICK_INDEX = global.BRICK_INDEX.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { brick_type: stone, - brick: `ad_astra:${stone}_stone_bricks`, brick_stairs: `ad_astra:${stone}_stone_brick_stairs`, brick_slab: `ad_astra:${stone}_stone_brick_slab`, brick_wall: `ad_astra:${stone}_stone_brick_wall`, - cracked_brick: `ad_astra:cracked_${stone}_stone_bricks`, cracked_stairs: `tfg:rock/cracked_bricks_${stone}_stairs`, cracked_slab: `tfg:rock/cracked_bricks_${stone}_slab`, cracked_wall: `tfg:rock/cracked_bricks_${stone}_wall`, - mossy_brick: `tfg:rock/mossy_bricks_${stone}`, mossy_stairs: `tfg:rock/mossy_bricks_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_bricks_${stone}_slab`, mossy_wall: `tfg:rock/mossy_bricks_${stone}_wall`, - smooth_brick: `ad_astra:polished_${stone}_stone`, smooth_stairs: `ad_astra:polished_${stone}_stone_stairs`, smooth_slab: `ad_astra:polished_${stone}_stone_slab`, smooth_wall: `tfg:rock/polished_${stone}_wall`, - chiseled_brick: `ad_astra:chiseled_${stone}_stone_bricks` } -)) ) +global.BRICK_INDEX = global.BRICK_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { + brick_type: stone, + brick: `ad_astra:${stone}_stone_bricks`, brick_stairs: `ad_astra:${stone}_stone_brick_stairs`, brick_slab: `ad_astra:${stone}_stone_brick_slab`, brick_wall: `ad_astra:${stone}_stone_brick_wall`, + cracked_brick: `ad_astra:cracked_${stone}_stone_bricks`, cracked_stairs: `tfg:rock/cracked_bricks_${stone}_stairs`, cracked_slab: `tfg:rock/cracked_bricks_${stone}_slab`, cracked_wall: `tfg:rock/cracked_bricks_${stone}_wall`, + mossy_brick: `tfg:rock/mossy_bricks_${stone}`, mossy_stairs: `tfg:rock/mossy_bricks_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_bricks_${stone}_slab`, mossy_wall: `tfg:rock/mossy_bricks_${stone}_wall`, + smooth_brick: `ad_astra:polished_${stone}_stone`, smooth_stairs: `ad_astra:polished_${stone}_stone_stairs`, smooth_slab: `ad_astra:polished_${stone}_stone_slab`, smooth_wall: `tfg:rock/polished_${stone}_wall`, + chiseled_brick: `ad_astra:chiseled_${stone}_stone_bricks` + } +))) // #endregion BRICK_INDEX // #region COBBLE_INDEX global.COBBLE_INDEX = (global.TFC_STONE_TYPES ? global.TFC_STONE_TYPES : []).map(tfc_stone => ({ - cobble_type: tfc_stone, - block: `tfc:rock/cobble/${tfc_stone}`, stairs: `tfc:rock/cobble/${tfc_stone}_stairs`, slab: `tfc:rock/cobble/${tfc_stone}_slab`, wall: `tfc:rock/cobble/${tfc_stone}_wall`, - mossy_block: `tfc:rock/mossy_cobble/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_cobble/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_cobble/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_cobble/${tfc_stone}_wall` + cobble_type: tfc_stone, + block: `tfc:rock/cobble/${tfc_stone}`, stairs: `tfc:rock/cobble/${tfc_stone}_stairs`, slab: `tfc:rock/cobble/${tfc_stone}_slab`, wall: `tfc:rock/cobble/${tfc_stone}_wall`, + mossy_block: `tfc:rock/mossy_cobble/${tfc_stone}`, mossy_stairs: `tfc:rock/mossy_cobble/${tfc_stone}_stairs`, mossy_slab: `tfc:rock/mossy_cobble/${tfc_stone}_slab`, mossy_wall: `tfc:rock/mossy_cobble/${tfc_stone}_wall` })); global.COBBLE_INDEX = global.COBBLE_INDEX.concat([ - { cobble_type: 'deepslate', - block: 'minecraft:cobbled_deepslate', stairs: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall', - mossy_block: 'tfg:rock/mossy_cobble_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_deepslate_wall' }, - - { cobble_type: 'blackstone', - block: 'tfg:rock/cobble_blackstone', stairs: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall', - mossy_block: 'tfg:rock/mossy_cobble_blackstone', mossy_stairs: 'tfg:rock/mossy_cobble_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_blackstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_blackstone_wall' }, + { + cobble_type: 'deepslate', + block: 'minecraft:cobbled_deepslate', stairs: 'minecraft:cobbled_deepslate_stairs', slab: 'minecraft:cobbled_deepslate_slab', wall: 'minecraft:cobbled_deepslate_wall', + mossy_block: 'tfg:rock/mossy_cobble_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_deepslate_wall' + }, - { cobble_type: 'dripstone', - block: 'tfg:rock/cobble_dripstone', stairs: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall', - mossy_block: 'tfg:rock/mossy_cobble_dripstone', mossy_stairs: 'tfg:rock/mossy_cobble_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_dripstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_dripstone_wall' }, + { + cobble_type: 'blackstone', + block: 'tfg:rock/cobble_blackstone', stairs: 'tfg:rock/cobble_blackstone_stairs', slab: 'tfg:rock/cobble_blackstone_slab', wall: 'tfg:rock/cobble_blackstone_wall', + mossy_block: 'tfg:rock/mossy_cobble_blackstone', mossy_stairs: 'tfg:rock/mossy_cobble_blackstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_blackstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_blackstone_wall' + }, - { cobble_type: 'crackrack', - block: 'tfg:rock/cobble_crackrack', stairs: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall', - mossy_block: 'tfg:rock/mossy_cobble_crackrack', mossy_stairs: 'tfg:rock/mossy_cobble_crackrack_stairs', mossy_slab: 'tfg:rock/mossy_cobble_crackrack_slab', mossy_wall: 'tfg:rock/mossy_cobble_crackrack_wall' }, + { + cobble_type: 'dripstone', + block: 'tfg:rock/cobble_dripstone', stairs: 'tfg:rock/cobble_dripstone_stairs', slab: 'tfg:rock/cobble_dripstone_slab', wall: 'tfg:rock/cobble_dripstone_wall', + mossy_block: 'tfg:rock/mossy_cobble_dripstone', mossy_stairs: 'tfg:rock/mossy_cobble_dripstone_stairs', mossy_slab: 'tfg:rock/mossy_cobble_dripstone_slab', mossy_wall: 'tfg:rock/mossy_cobble_dripstone_wall' + }, - { cobble_type: 'moon_deepslate', - block: 'tfg:rock/cobble_moon_deepslate', stairs: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall', - mossy_block: 'tfg:rock/mossy_cobble_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall' }, + { + cobble_type: 'crackrack', + block: 'tfg:rock/cobble_crackrack', stairs: 'tfg:rock/cobble_crackrack_stairs', slab: 'tfg:rock/cobble_crackrack_slab', wall: 'tfg:rock/cobble_crackrack_wall', + mossy_block: 'tfg:rock/mossy_cobble_crackrack', mossy_stairs: 'tfg:rock/mossy_cobble_crackrack_stairs', mossy_slab: 'tfg:rock/mossy_cobble_crackrack_slab', mossy_wall: 'tfg:rock/mossy_cobble_crackrack_wall' + }, - { cobble_type: 'permafrost', - block: 'tfg:rock/cobble_permafrost', stairs: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall', - mossy_block: 'tfg:rock/mossy_cobble_permafrost', mossy_stairs: 'tfg:rock/mossy_cobble_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_cobble_permafrost_slab', mossy_wall: 'tfg:rock/mossy_cobble_permafrost_wall' }, + { + cobble_type: 'moon_deepslate', + block: 'tfg:rock/cobble_moon_deepslate', stairs: 'tfg:rock/cobble_moon_deepslate_stairs', slab: 'tfg:rock/cobble_moon_deepslate_slab', wall: 'tfg:rock/cobble_moon_deepslate_wall', + mossy_block: 'tfg:rock/mossy_cobble_moon_deepslate', mossy_stairs: 'tfg:rock/mossy_cobble_moon_deepslate_stairs', mossy_slab: 'tfg:rock/mossy_cobble_moon_deepslate_slab', mossy_wall: 'tfg:rock/mossy_cobble_moon_deepslate_wall' + }, - { cobble_type: 'red_granite', - block: 'gtceu:red_granite_cobblestone', stairs: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall', - mossy_block: 'gtceu:mossy_red_granite_cobblestone', mossy_stairs: 'tfg:rock/mossy_cobble_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_cobble_red_granite_slab', mossy_wall: 'tfg:rock/mossy_cobble_red_granite_wall' }, + { + cobble_type: 'permafrost', + block: 'tfg:rock/cobble_permafrost', stairs: 'tfg:rock/cobble_permafrost_stairs', slab: 'tfg:rock/cobble_permafrost_slab', wall: 'tfg:rock/cobble_permafrost_wall', + mossy_block: 'tfg:rock/mossy_cobble_permafrost', mossy_stairs: 'tfg:rock/mossy_cobble_permafrost_stairs', mossy_slab: 'tfg:rock/mossy_cobble_permafrost_slab', mossy_wall: 'tfg:rock/mossy_cobble_permafrost_wall' + }, - { cobble_type: 'stone', - block: 'minecraft:cobblestone', stairs: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall', - mossy_block: 'minecraft:mossy_cobblestone', mossy_stairs: 'minecraft:mossy_cobblestone_stairs', mossy_slab: 'minecraft:mossy_cobblestone_slab', mossy_wall: 'minecraft:mossy_cobblestone_wall' } + { + cobble_type: 'red_granite', + block: 'gtceu:red_granite_cobblestone', stairs: 'tfg:rock/cobble_red_granite_stairs', slab: 'tfg:rock/cobble_red_granite_slab', wall: 'tfg:rock/cobble_red_granite_wall', + mossy_block: 'gtceu:mossy_red_granite_cobblestone', mossy_stairs: 'tfg:rock/mossy_cobble_red_granite_stairs', mossy_slab: 'tfg:rock/mossy_cobble_red_granite_slab', mossy_wall: 'tfg:rock/mossy_cobble_red_granite_wall' + }, + + { + cobble_type: 'stone', + block: 'minecraft:cobblestone', stairs: 'minecraft:cobblestone_stairs', slab: 'minecraft:cobblestone_slab', wall: 'minecraft:cobblestone_wall', + mossy_block: 'minecraft:mossy_cobblestone', mossy_stairs: 'minecraft:mossy_cobblestone_stairs', mossy_slab: 'minecraft:mossy_cobblestone_slab', mossy_wall: 'minecraft:mossy_cobblestone_wall' + } ]); -global.COBBLE_INDEX = global.COBBLE_INDEX.concat( (AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( - { cobble_type: stone, - block: `ad_astra:${stone}_cobblestone`, stairs: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`, - mossy_block: `tfg:rock/mossy_cobble_${stone}`, mossy_stairs: `tfg:rock/mossy_cobble_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_cobble_${stone}_slab`, mossy_wall: `tfg:rock/mossy_cobble_${stone}_wall` } -)) ) +global.COBBLE_INDEX = global.COBBLE_INDEX.concat((AA_REGULAR_STONES ? AA_REGULAR_STONES : []).map(stone => ( + { + cobble_type: stone, + block: `ad_astra:${stone}_cobblestone`, stairs: `ad_astra:${stone}_cobblestone_stairs`, slab: `ad_astra:${stone}_cobblestone_slab`, wall: `tfg:rock/cobble_${stone}_wall`, + mossy_block: `tfg:rock/mossy_cobble_${stone}`, mossy_stairs: `tfg:rock/mossy_cobble_${stone}_stairs`, mossy_slab: `tfg:rock/mossy_cobble_${stone}_slab`, mossy_wall: `tfg:rock/mossy_cobble_${stone}_wall` + } +))) // #endregion COBBLE_INDEX @@ -464,50 +515,50 @@ global.COBBLE_INDEX = global.COBBLE_INDEX.concat( (AA_REGULAR_STONES ? AA_REGULA * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. */ function transformBlockWithTool(event, inputBlock, outputBlock, toolId, damageTool, soundId, particleId, copyBlockstate) { - const { server, item, player, block } = event; + const { server, item, player, block } = event; - if (!inputBlock || !outputBlock) return; + if (!inputBlock || !outputBlock) return; - if (inputBlock.startsWith('#')) { - if (!block.hasTag(inputBlock.substring(1))) return; - } else { - if (block.id.toString() !== inputBlock) return; - } + if (inputBlock.startsWith('#')) { + if (!block.hasTag(inputBlock.substring(1))) return; + } else { + if (block.id.toString() !== inputBlock) return; + } - if (toolId.startsWith('#')) { - if (item.isEmpty() || !player.mainHandItem.hasTag(toolId.substring(1))) return; - } else { - if (item.isEmpty() || player.mainHandItem.id !== toolId) return; - } + if (toolId.startsWith('#')) { + if (item.isEmpty() || !player.mainHandItem.hasTag(toolId.substring(1))) return; + } else { + if (item.isEmpty() || player.mainHandItem.id !== toolId) return; + } - if (!player.crouching) return; + if (!player.crouching) return; - let state = block.getBlockState().toString(); - if (state.includes('[') && copyBlockstate === true) { - state = state.substring(state.indexOf('[')); - } else { - state = ''; - } + let state = block.getBlockState().toString(); + if (state.includes('[') && copyBlockstate === true) { + state = state.substring(state.indexOf('[')); + } else { + state = ''; + } - if (soundId) { - server.runCommandSilent(`playsound ${soundId} player ${player.username} ${player.x} ${player.y} ${player.z} 1 2 1`) - } - if (particleId) { - server.runCommandSilent(`particle ${particleId} ${block.x} ${block.y + 0.8} ${block.z} 0.1 0.1 0.1 0.6 10`) - } - player.swing(); + if (soundId) { + server.runCommandSilent(`playsound ${soundId} player ${player.username} ${player.x} ${player.y} ${player.z} 1 2 1`) + } + if (particleId) { + server.runCommandSilent(`particle ${particleId} ${block.x} ${block.y + 0.8} ${block.z} 0.1 0.1 0.1 0.6 10`) + } + player.swing(); - if (!player.isCreative() && damageTool) { - item.damageValue++; - if (item.damageValue >= item.maxDamage) { - server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`); - item.count--; - } - } + if (!player.isCreative() && damageTool) { + item.damageValue++; + if (item.damageValue >= item.maxDamage) { + server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`); + item.count--; + } + } - const dim = block.level.name.getString(); - server.runCommandSilent(`execute in ${dim} run fill ${block.x} ${block.y} ${block.z} ${block.x} ${block.y} ${block.z} air`); - server.runCommandSilent(`execute in ${dim} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`); + const dim = block.level.name.getString(); + server.runCommandSilent(`execute in ${dim} run fill ${block.x} ${block.y} ${block.z} ${block.x} ${block.y} ${block.z} air`); + server.runCommandSilent(`execute in ${dim} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`); }; /** @@ -526,144 +577,144 @@ function transformBlockWithTool(event, inputBlock, outputBlock, toolId, damageTo * @param {boolean} copyBlockstate - Sets wether the blockstate should be copied from the input block to the output block. */ function transformBlockWithItem(event, inputBlock, outputBlock, itemId, consumeItem, consumeAmount, soundId, particleId, copyBlockstate) { - const { server, item, player, block } = event; + const { server, item, player, block } = event; - if (!inputBlock || !outputBlock) return; + if (!inputBlock || !outputBlock) return; - if (inputBlock.startsWith('#')) { - if (!block.hasTag(inputBlock.substring(1))) return; - } else { - if (block.id.toString() !== inputBlock) return; - } + if (inputBlock.startsWith('#')) { + if (!block.hasTag(inputBlock.substring(1))) return; + } else { + if (block.id.toString() !== inputBlock) return; + } - if (itemId.startsWith('#')) { - if (item.isEmpty() || !player.mainHandItem.hasTag(itemId.substring(1))) return; - } else { - if (item.isEmpty() || player.mainHandItem.id !== itemId) return; - } - if (!player.crouching) return; + if (itemId.startsWith('#')) { + if (item.isEmpty() || !player.mainHandItem.hasTag(itemId.substring(1))) return; + } else { + if (item.isEmpty() || player.mainHandItem.id !== itemId) return; + } + if (!player.crouching) return; - let state = block.getBlockState().toString() - if (state.includes('[') && copyBlockstate === true){ - state = state.substring(block.getBlockState().toString().indexOf('[')); - } else { - state = '' - } + let state = block.getBlockState().toString() + if (state.includes('[') && copyBlockstate === true) { + state = state.substring(block.getBlockState().toString().indexOf('[')); + } else { + state = '' + } - if (!player.isCreative() && consumeItem === true) { - if (item.count < consumeAmount) { - player.tell(`Item count is too low. Held amount = ${item.count}, required amount = ${consumeAmount}`) - return; - } - item.count -= consumeAmount; - } - if (soundId) { - server.runCommandSilent(`playsound ${soundId} player ${player.username} ${player.x} ${player.y} ${player.z} 1 2 1`) - } - if (particleId) { - server.runCommandSilent(`particle ${particleId} ${block.x} ${block.y + 0.8} ${block.z} 0.1 0.1 0.1 0.6 10`) - } - player.swing() - event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run fill ${block.x} ${block.y} ${block.z} ${block.x} ${block.y} ${block.z} air`) - event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`) + if (!player.isCreative() && consumeItem === true) { + if (item.count < consumeAmount) { + player.tell(`Item count is too low. Held amount = ${item.count}, required amount = ${consumeAmount}`) + return; + } + item.count -= consumeAmount; + } + if (soundId) { + server.runCommandSilent(`playsound ${soundId} player ${player.username} ${player.x} ${player.y} ${player.z} 1 2 1`) + } + if (particleId) { + server.runCommandSilent(`particle ${particleId} ${block.x} ${block.y + 0.8} ${block.z} 0.1 0.1 0.1 0.6 10`) + } + player.swing() + event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run fill ${block.x} ${block.y} ${block.z} ${block.x} ${block.y} ${block.z} air`) + event.server.runCommandSilent(`execute in ${event.block.level.name.getString()} run setblock ${block.x} ${block.y} ${block.z} ${outputBlock}${state}`) }; // Declare Events BlockEvents.rightClicked(event => { - //Brick index events - for (const b of global.BRICK_INDEX) { - //brick -> cracked - transformBlockWithTool(event, b.brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.brick_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - //brick -> mossy - transformBlockWithItem(event, b.brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.brick_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - //cracked -> mossy - transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - //mossy -> cracked - transformBlockWithTool(event, b.mossy_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - //mossy -> brick - transformBlockWithTool(event, b.mossy_brick, b.brick, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_brick, b.brick, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_stairs, b.brick_stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_stairs, b.brick_stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_slab, b.brick_slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_slab, b.brick_slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.mossy_wall, b.brick_wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.mossy_wall, b.brick_wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - //cracked -> brick - transformBlockWithItem(event, b.cracked_brick, b.brick, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_stairs, b.brick_stairs, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_slab, b.brick_slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - transformBlockWithItem(event, b.cracked_wall, b.brick_wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); - // brick -> smooth - transformBlockWithTool(event, b.brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - transformBlockWithTool(event, b.mossy_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - transformBlockWithTool(event, b.cracked_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); - // smooth -> brick - transformBlockWithTool(event, b.smooth_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); - transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithTool(event, b.smooth_brick, b.brick, '#forge:tools/files', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); - } - - //Cobble index events - for (const c of global.COBBLE_INDEX) { - //cobble -> mossy - transformBlockWithItem(event, c.block, c.mossy_block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.block, c.mossy_block, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.stairs, c.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.stairs, c.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.slab, c.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.slab, c.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.wall, c.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.wall, c.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); - //mossy -> cobble - transformBlockWithTool(event, c.mossy_block, c.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.mossy_block, c.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, c.mossy_stairs, c.stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.mossy_stairs, c.stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, c.mossy_slab, c.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.mossy_slab, c.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithTool(event, c.mossy_wall, c.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - transformBlockWithItem(event, c.mossy_wall, c.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); - } + //Brick index events + for (const b of global.BRICK_INDEX) { + //brick -> cracked + transformBlockWithTool(event, b.brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.brick_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + //brick -> mossy + transformBlockWithItem(event, b.brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.brick_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + //cracked -> mossy + transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_stairs, b.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_slab, b.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.cracked_wall, b.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + //mossy -> cracked + transformBlockWithTool(event, b.mossy_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_stairs, b.cracked_stairs, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_slab, b.cracked_slab, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_wall, b.cracked_wall, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + //mossy -> brick + transformBlockWithTool(event, b.mossy_brick, b.brick, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_brick, b.brick, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_stairs, b.brick_stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_stairs, b.brick_stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_slab, b.brick_slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_slab, b.brick_slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.mossy_wall, b.brick_wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.mossy_wall, b.brick_wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + //cracked -> brick + transformBlockWithItem(event, b.cracked_brick, b.brick, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_stairs, b.brick_stairs, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_slab, b.brick_slab, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + transformBlockWithItem(event, b.cracked_wall, b.brick_wall, 'tfc:mortar', true, 1, 'minecraft:item.ink_sac.use', 'minecraft:effect', true); + // brick -> smooth + transformBlockWithTool(event, b.brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + transformBlockWithTool(event, b.mossy_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + transformBlockWithTool(event, b.cracked_brick, b.smooth_brick, '#create:sandpaper', true, 'create:sanding_short', 'minecraft:crit', true); + // smooth -> brick + transformBlockWithTool(event, b.smooth_brick, b.cracked_brick, '#forge:tools/hammers', true, 'minecraft:block.copper.hit', 'minecraft:crit', true); + transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, b.smooth_brick, b.mossy_brick, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithTool(event, b.smooth_brick, b.brick, '#forge:tools/files', true, 'minecraft:block.beehive.shear', 'minecraft:crit', true); + } + + //Cobble index events + for (const c of global.COBBLE_INDEX) { + //cobble -> mossy + transformBlockWithItem(event, c.block, c.mossy_block, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.block, c.mossy_block, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.stairs, c.mossy_stairs, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.stairs, c.mossy_stairs, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.slab, c.mossy_slab, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.slab, c.mossy_slab, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.wall, c.mossy_wall, '#tfc:compost_greens_low', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.wall, c.mossy_wall, 'gtceu:plant_ball', true, 1, 'minecraft:block.moss.hit', 'minecraft:item_slime', true); + //mossy -> cobble + transformBlockWithTool(event, c.mossy_block, c.block, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_block, c.block, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_stairs, c.stairs, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_stairs, c.stairs, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_slab, c.slab, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_slab, c.slab, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithTool(event, c.mossy_wall, c.wall, '#forge:tools/knives', true, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + transformBlockWithItem(event, c.mossy_wall, c.wall, 'tfc:groundcover/pumice', true, 1, 'minecraft:item.axe.wax_off', 'minecraft:item_slime', true); + } }); // Makes scythes, hoes, and knives take damage when cutting grass BlockEvents.broken('tfc:mineable_with_sharp_tool', event => { - let player = event.player; - let toolUsed = player.mainHandItem; + let player = event.player; + let toolUsed = player.mainHandItem; - if (!toolUsed.hasTag('tfc:sharp_tools')) { - return; - } + if (!toolUsed.hasTag('tfc:sharp_tools')) { + return; + } - if (!player.isCreative()) { - toolUsed.damageValue++; - if (toolUsed.damageValue >= toolUsed.maxDamage) { - event.server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`); - toolUsed.count--; - } - } + if (!player.isCreative()) { + toolUsed.damageValue++; + if (toolUsed.damageValue >= toolUsed.maxDamage) { + event.server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`); + toolUsed.count--; + } + } }); //#endregion diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index 5743ba462..ca565d66e 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -43,12 +43,12 @@ function registerTFGMiscellaneousRecipes(event) { event.recipes.tfc.pot('tfc:powder/charcoal', Fluid.of('tfg:conifer_pitch', 1000), 1200, 300) .itemOutput('tfg:conifer_rosin') .id('tfg:pot/conifer_pitch_to_rosin') - + event.recipes.gtceu.fluid_solidifier('tfg:pitch_to_rosin') .inputFluids(Fluid.of('tfg:conifer_pitch', 1000)) .itemInputs('tfc:powder/charcoal') .itemOutputs('tfg:conifer_rosin') - .duration(20*12) + .duration(20 * 12) .EUt(GTValues.VA[GTValues.LV]) // Decorative Vases @@ -469,13 +469,13 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('10x tfg:dry_ice') .duration(60) .EUt(GTValues.VA[GTValues.HV]) - + event.recipes.gtceu.fluid_heater('tfg:fluid_heater/decompress_liq_co2') .itemInputs('1x tfg:dry_ice') .outputFluids(Fluid.of('gtceu:carbon_dioxide', 100)) .duration(20) .EUt(GTValues.VA[GTValues.ULV]) - + event.recipes.gtceu.fluid_heater('tfg:fluid_heater/decompress_dry_ice') .inputFluids(Fluid.of('gtceu:liquid_carbon_dioxide', 100)) .outputFluids(Fluid.of('gtceu:carbon_dioxide', 100)) @@ -718,7 +718,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('gtceu:mv_field_generator') .duration(100) .EUt(30) - + // Harvest Baskets event.shaped('tfg:harvest_basket', [ @@ -734,8 +734,8 @@ function registerTFGMiscellaneousRecipes(event) { event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_wood') .itemInputs( - '5x tfg:soaked_hardwood_strip', - ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), + '5x tfg:soaked_hardwood_strip', + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) ) .inputFluids(Fluid.of('gtceu:glue', 50)) @@ -756,8 +756,8 @@ function registerTFGMiscellaneousRecipes(event) { event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_papyrus') .itemInputs( - '5x tfc:soaked_papyrus_strip', - ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), + '5x tfc:soaked_papyrus_strip', + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2), ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1) ) .inputFluids(Fluid.of('gtceu:glue', 50)) @@ -768,25 +768,25 @@ function registerTFGMiscellaneousRecipes(event) { event.recipes.gtceu.assembler('tfg:assembler/aluminium_harvest_basket') .itemInputs( - ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 3), - ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 2), - ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Steel, 2), - ChemicalHelper.get(TagPrefix.rodLong, - GTMaterials.Aluminium, 1) + ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 3), + ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 2), + ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Steel, 2), + ChemicalHelper.get(TagPrefix.rodLong, + GTMaterials.Aluminium, 1) ) .inputFluids(Fluid.of('gtceu:cobalt_brass', 144)) .itemOutputs('tfg:aluminium_harvest_basket') .duration(200) .circuit(4) .EUt(GTValues.VA[GTValues.LV]) - + //Rock-wool stuff event.recipes.gtceu.mixer('tfg:aes_mix') .itemInputs('5x gtceu:silicon_dioxide_dust', '4x gtceu:quicklime_dust', 'gtceu:magnesia_dust') .itemOutputs('10x tfg:aes_mix_dust') .duration(160) .EUt(GTValues.VA[GTValues.EV]) - + event.recipes.gtceu.electric_blast_furnace('tfg:molten_aes') .itemInputs('2x tfg:aes_mix_dust') .outputFluids(Fluid.of('tfg:molten_aes', 1000)) @@ -795,7 +795,7 @@ function registerTFGMiscellaneousRecipes(event) { .duration(400) .blastFurnaceTemp(3000) .EUt(GTValues.VA[GTValues.EV]) - + event.recipes.gtceu.electric_blast_furnace('tfg:molten_aes_he') .itemInputs('2x tfg:aes_mix_dust') .inputFluids(Fluid.of('gtceu:helium', 200)) @@ -804,20 +804,20 @@ function registerTFGMiscellaneousRecipes(event) { .duration(140) .blastFurnaceTemp(3000) .EUt(GTValues.VA[GTValues.EV]) - + event.recipes.gtceu.centrifuge('tfg:aes_wool') .inputFluids(Fluid.of('tfg:molten_aes', 200)) .itemOutputs('tfg:aes_wool') .duration(30) .EUt(GTValues.VA[GTValues.EV]) - + event.recipes.gtceu.forming_press('tfg:aes_compressed_wool') .itemInputs('4x tfg:aes_wool') .notConsumable('gtceu:ingot_casting_mold') .itemOutputs('tfg:aes_compressed_wool') .duration(40) .EUt(GTValues.VA[GTValues.EV]) - + event.recipes.gtceu.chemical_bath('tfg:aes_insulation_sheet') .itemInputs('tfg:aes_compressed_wool') .inputFluids(Fluid.of('gtceu:epoxy', 72)) @@ -825,7 +825,7 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('tfg:aes_insulation_sheet') .duration(80) .EUt(GTValues.VA[GTValues.EV]) - + event.recipes.gtceu.chemical_bath('tfg:aes_insulation_roll') .itemInputs('9x tfg:aes_compressed_wool') .inputFluids(Fluid.of('gtceu:epoxy', 648)) @@ -833,14 +833,14 @@ function registerTFGMiscellaneousRecipes(event) { .circuit(9) .duration(400) .EUt(GTValues.VA[GTValues.EV]) - + event.recipes.gtceu.assembler('tfg:aes_insulation_roll') .itemInputs('9x tfg:aes_insulation_sheet') .itemOutputs('tfg:aes_insulation_roll') .circuit(0) .duration(20) .EUt(GTValues.VA[GTValues.LV]) - + event.shaped('tfg:aes_insulation_roll', [ 'AAA', 'AAA', @@ -848,18 +848,18 @@ function registerTFGMiscellaneousRecipes(event) { ], { A: 'tfg:aes_insulation_sheet', }).id('tfg:shaped/aes_insulation_roll') - + event.recipes.gtceu.assembler('tfg:aes_insulation_sheet') .itemInputs('9x tfg:aes_insulation_sheet') .itemOutputs('tfg:aes_insulation_roll') .circuit(0) .duration(20) .EUt(GTValues.VA[GTValues.LV]) - + event.shapeless('9x tfg:aes_insulation_sheet', [ 'tfg:aes_insulation_roll' ]).id('tfg:shapeless/aes_insulation_sheet') - + event.recipes.gtceu.electric_blast_furnace('tfg:smelt_aes_sheet') .itemInputs('tfg:aes_insulation_sheet') .inputFluids(Fluid.of('gtceu:helium', 200)) @@ -878,7 +878,7 @@ function registerTFGMiscellaneousRecipes(event) { .duration(1000) .blastFurnaceTemp(3000) .EUt(GTValues.VA[GTValues.EV]) - + event.recipes.gtceu.electric_blast_furnace('tfg:smelt_sniffer_wool') .itemInputs('tfg:sniffer_wool') .chancedOutput('gtceu:ash_dust', 7500, 0) @@ -898,7 +898,7 @@ function registerTFGMiscellaneousRecipes(event) { event.recipes.tfc.damage_inputs_shapeless_crafting( event.shapeless('8x tfc:wool_yarn', [ - 'tfc:spindle', + 'tfc:spindle', 'tfg:glacian_wool' ]).id('tfg:shapeless/glacian_wool_to_yarn')) @@ -923,7 +923,7 @@ function registerTFGMiscellaneousRecipes(event) { //endregion - + //#region Casings global.GTCEU_SUPERCONDUCTORS.forEach((type, index) => { const multiplier = index + 1 @@ -1012,7 +1012,7 @@ function registerTFGMiscellaneousRecipes(event) { .EUt(GTValues.VH[GTValues.MV]) //#endregion - + //region ammonia borane event.recipes.gtceu.chemical_reactor('tfg:sodium_hydride_synthesis') .itemInputs('#forge:dusts/sodium') @@ -1046,7 +1046,7 @@ function registerTFGMiscellaneousRecipes(event) { .duration(100) .EUt(GTValues.VA[GTValues.IV]) //endregion - + //region polyurethane event.recipes.gtceu.chemical_reactor('tfg:aniline_synthesis') .inputFluids(Fluid.of('gtceu:nitrobenzene', 1000), Fluid.of('gtceu:hydrogen', 6000)) @@ -1082,10 +1082,10 @@ function registerTFGMiscellaneousRecipes(event) { .itemOutputs('tfg:aes_polyurethane') .duration(80) .EUt(GTValues.VA[GTValues.IV]) - + addCircuitToRecipe(event, 'gtceu:chemical_reactor/acetic_acid_from_methanol', 1) //endregion - + //Aerogel event.recipes.gtceu.chemical_reactor('tfg:tmos_synthesis') .inputFluids(Fluid.of('tfg:dimethyl_carbonate', 2000)) @@ -1101,8 +1101,8 @@ function registerTFGMiscellaneousRecipes(event) { .duration(100) .EUt(GTValues.VA[GTValues.MV]) event.recipes.gtceu.large_chemical_reactor('tfg:silica_gel_synthesis') - .inputFluids(Fluid.of('tfg:tmos', 1000), Fluid.of('gtceu:ethanol', 2000), Fluid.of('gtceu:distilled_water', 500), - Fluid.of('gtceu:hydrochloric_acid', 100)) + .inputFluids(Fluid.of('tfg:tmos', 1000), Fluid.of('gtceu:ethanol', 2000), Fluid.of('gtceu:distilled_water', 500), + Fluid.of('gtceu:hydrochloric_acid', 100)) .outputFluids(Fluid.of('tfg:silica_gel', 1000)) .duration(300) .EUt(GTValues.VA[GTValues.IV]) @@ -1118,7 +1118,7 @@ function registerTFGMiscellaneousRecipes(event) { .duration(400) .EUt(GTValues.VA[GTValues.IV]) //endregion - + //Tier 3 insulation event.recipes.gtceu.forming_press('tfg:mli_shielding') .itemInputs('4x #forge:plates/ammonia_borane', '2x tfg:aes_polyurethane', '4x gtceu:carbon_fiber_plate') @@ -1130,154 +1130,154 @@ function registerTFGMiscellaneousRecipes(event) { //#region Universal compost //Greens - // Lows via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_greens', 1), [ - 'AB' - ], { - A: Ingredient.of(['#tfc:compost_greens_low']).subtract(['tfg:universal_compost_greens']), - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_greens_from_low') - - // Mediums via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_greens', 2), [ - 'AB' - ], { - A: '#tfc:compost_greens', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_greens_from_medium') - - // Highs via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_greens', 4), [ - 'AB' - ], { - A: '#tfc:compost_greens_high', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_greens_from_high') + // Lows via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_greens', 1), [ + 'AB' + ], { + A: Ingredient.of(['#tfc:compost_greens_low']).subtract(['tfg:universal_compost_greens']), + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_greens_from_low') - // Filters - const greens_low = Ingredient.of('#tfc:compost_greens_low') - const browns_low = Ingredient.of('#tfc:compost_browns_low').itemIds - const greens_medium = Ingredient.of('#tfc:compost_greens') - const browns_medium = Ingredient.of('#tfc:compost_browns').itemIds - const greens_high = Ingredient.of('#tfc:compost_greens_high') - const browns_high = Ingredient.of('#tfc:compost_browns_high').itemIds + // Mediums via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_greens', 2), [ + 'AB' + ], { + A: '#tfc:compost_greens', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_greens_from_medium') - let low_filtered = greens_low - let medium_filtered = greens_medium - let high_filtered = greens_high + // Highs via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_greens', 4), [ + 'AB' + ], { + A: '#tfc:compost_greens_high', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_greens_from_high') - browns_low.forEach(item => { - low_filtered = low_filtered.subtract(item) - low_filtered = low_filtered.subtract('tfg:universal_compost_greens') - }) - browns_medium.forEach(item => { - medium_filtered = medium_filtered.subtract(item) - }) - browns_high.forEach(item => { - high_filtered = high_filtered.subtract(item) - }) + // Filters + const greens_low = Ingredient.of('#tfc:compost_greens_low') + const browns_low = Ingredient.of('#tfc:compost_browns_low').itemIds + const greens_medium = Ingredient.of('#tfc:compost_greens') + const browns_medium = Ingredient.of('#tfc:compost_browns').itemIds + const greens_high = Ingredient.of('#tfc:compost_greens_high') + const browns_high = Ingredient.of('#tfc:compost_browns_high').itemIds - // Lows via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_low') - .itemInputs(low_filtered) - .itemOutputs('tfg:universal_compost_greens') - .duration(20) - .EUt(8) - - // Mediums via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_medium') - .itemInputs(medium_filtered) - .itemOutputs(Item.of('tfg:universal_compost_greens', 2)) - .duration(20) - .EUt(8) + let low_filtered = greens_low + let medium_filtered = greens_medium + let high_filtered = greens_high + + browns_low.forEach(item => { + low_filtered = low_filtered.subtract(item) + low_filtered = low_filtered.subtract('tfg:universal_compost_greens') + }) + browns_medium.forEach(item => { + medium_filtered = medium_filtered.subtract(item) + }) + browns_high.forEach(item => { + high_filtered = high_filtered.subtract(item) + }) + + // Lows via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_low') + .itemInputs(low_filtered) + .itemOutputs('tfg:universal_compost_greens') + .duration(20) + .EUt(8) + + // Mediums via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_medium') + .itemInputs(medium_filtered) + .itemOutputs(Item.of('tfg:universal_compost_greens', 2)) + .duration(20) + .EUt(8) + + // Highs via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_high') + .itemInputs(high_filtered) + .itemOutputs(Item.of('tfg:universal_compost_greens', 4)) + .duration(20) + .EUt(8) - // Highs via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_greens_high') - .itemInputs(high_filtered) - .itemOutputs(Item.of('tfg:universal_compost_greens', 4)) - .duration(20) - .EUt(8) - //Browns - // Lows via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_browns', 1), [ - 'BA' - ], { - A: Ingredient.of(['#tfc:compost_browns_low']).subtract(['tfg:universal_compost_browns']), - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_browns_from_low') - - // Mediums via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_browns', 2), [ - 'BA' - ], { - A: '#tfc:compost_browns', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_browns_from_medium') - - // Highs via crafting with mortar - event.shaped(Item.of('tfg:universal_compost_browns', 4), [ - 'BA' - ], { - A: '#tfc:compost_browns_high', - B: '#forge:tools/mortars' - }).id('tfg:shaped/universal_compost_browns_from_high') + // Lows via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_browns', 1), [ + 'BA' + ], { + A: Ingredient.of(['#tfc:compost_browns_low']).subtract(['tfg:universal_compost_browns']), + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_browns_from_low') - // Lows via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_low') - .itemInputs('#tfc:compost_browns_low') - .itemOutputs('tfg:universal_compost_browns') - .duration(20) - .EUt(8) - - // Mediums via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_medium') - .itemInputs('#tfc:compost_browns') - .itemOutputs(Item.of('tfg:universal_compost_browns', 2)) - .duration(20) - .EUt(8) + // Mediums via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_browns', 2), [ + 'BA' + ], { + A: '#tfc:compost_browns', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_browns_from_medium') - // Highs via forge hammer - event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_high') - .itemInputs('#tfc:compost_browns_high') - .itemOutputs(Item.of('tfg:universal_compost_browns', 4)) - .duration(20) - .EUt(8) + // Highs via crafting with mortar + event.shaped(Item.of('tfg:universal_compost_browns', 4), [ + 'BA' + ], { + A: '#tfc:compost_browns_high', + B: '#forge:tools/mortars' + }).id('tfg:shaped/universal_compost_browns_from_high') + + // Lows via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_low') + .itemInputs('#tfc:compost_browns_low') + .itemOutputs('tfg:universal_compost_browns') + .duration(20) + .EUt(8) + + // Mediums via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_medium') + .itemInputs('#tfc:compost_browns') + .itemOutputs(Item.of('tfg:universal_compost_browns', 2)) + .duration(20) + .EUt(8) + + // Highs via forge hammer + event.recipes.gtceu.forge_hammer('tfg:universal_compost_browns_high') + .itemInputs('#tfc:compost_browns_high') + .itemOutputs(Item.of('tfg:universal_compost_browns', 4)) + .duration(20) + .EUt(8) //#endregion // Etching Tip - event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('tfg:etching_diamond_tip',[ + event.recipes.tfc.damage_inputs_shapeless_crafting(event.recipes.minecraft.crafting_shapeless('tfg:etching_diamond_tip', [ '#forge:tools/hammers', '#tfc:chisels', 'minecraft:diamond' ])); - event.replaceInput({ id: "minecraft:jukebox"}, 'minecraft:diamond', 'tfg:etching_diamond_tip'); - + event.replaceInput({ id: "minecraft:jukebox" }, 'minecraft:diamond', 'tfg:etching_diamond_tip'); + //Large Nest event.shaped('tfg:large_nest_box', - [ - 'B B', - 'ABA', - 'AAA' - ], { + [ + 'B B', + 'ABA', + 'AAA' + ], { A: 'beneath:crimson_thatch', B: 'beneath:crimson_straw' }).id('tfg:shaped_large_nest_crimson') - + event.shaped('tfg:large_nest_box_warped', - [ - 'B B', - 'ABA', - 'AAA' - ], { + [ + 'B B', + 'ABA', + 'AAA' + ], { A: 'beneath:warped_thatch', B: 'beneath:warped_straw' }).id('tfg:shaped_large_nest_warped') - + //#endregion - + //#region flax stuff event.recipes.tfc.scraping( 'tfg:flax_waste', @@ -1286,7 +1286,7 @@ function registerTFGMiscellaneousRecipes(event) { 'tfg:item/flax_product', '2x tfg:flax_line' ).id('tfg:scraping/flax_line') - + event.recipes.tfc.scraping( 'tfc:groundcover/humus', 'tfg:flax_waste', @@ -1294,20 +1294,20 @@ function registerTFGMiscellaneousRecipes(event) { 'tfg:item/flax_waste', 'tfg:flax_tow' ).id('tfg:scraping/flax_tow') - + event.recipes.gtceu.centrifuge('tfg:flax_product') .itemInputs('tfg:flax_product') .itemOutputs('2x tfg:flax_line', 'tfg:flax_tow', 'tfc:groundcover/humus') .duration(200) .EUt(GTValues.VA[GTValues.LV]) - + event.custom({ type: 'vintageimprovements:centrifugation', ingredients: [{ item: 'tfg:flax_product' }], - results: [{ item: 'tfg:flax_line', count: 2 }, { item: 'tfg:flax_tow' }, { item: 'tfc:groundcover/humus' } ], + results: [{ item: 'tfg:flax_line', count: 2 }, { item: 'tfg:flax_tow' }, { item: 'tfc:groundcover/humus' }], processingTime: 40 * 10 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER }).id('tfg:vi_seperate_flax') - + //#region flax line spining event.recipes.tfc.damage_inputs_shapeless_crafting( event.shapeless('4x tfg:linen_thread', [ @@ -1315,20 +1315,20 @@ function registerTFGMiscellaneousRecipes(event) { 'tfc:spindle' ]).id('tfg:shapeless/linen_thread') ) - + event.custom({ type: 'vintageimprovements:coiling', ingredients: [{ item: 'tfg:flax_line' }], results: [{ item: 'tfg:linen_thread', count: 4 }], processingTime: 2 * 10 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER }).id('tfg:vi_spin_flax_line') - + event.recipes.gtceu.wiremill('tfg:spin_flax_line') .itemInputs('tfg:flax_line') .itemOutputs('4x tfg:linen_thread') .duration(80) .EUt(GTValues.VA[GTValues.LV]) - + //#region flax looming event.recipes.tfc.loom( '1x tfg:linen_cloth', @@ -1336,43 +1336,43 @@ function registerTFGMiscellaneousRecipes(event) { 8, 'tfc:block/burlap' ) - + event.recipes.tfc.loom( '1x tfc:burlap_cloth', '16x tfg:flax_tow', 12, 'tfc:block/burlap' ) - + event.recipes.gtceu.assembler('tfg:assembler/linen_cloth') .itemInputs('16x tfg:linen_thread') .circuit(10) .itemOutputs('tfg:linen_cloth') .duration(100) .EUt(4) - + event.recipes.gtceu.assembler('tfg:assembler/flax_burlap') .itemInputs('16x tfg:flax_tow') .circuit(10) .itemOutputs('tfc:burlap_cloth') .duration(100) .EUt(4) - + event.recipes.gtceu.assembler('tfg:ostrum_carbon_casing') .itemInputs('2x #forge:plates/ostrum', '2x #forge:plates/titanium_carbide', '#forge:frames/black_steel') .itemOutputs('2x tfg:casings/machine_casing_ostrum_carbon') .circuit(6) .duration(20 * (2.5)) .EUt(GTValues.VH[GTValues.LV]) - + event.recipes.gtceu.assembler('tfg:titanium_concrete') .itemInputs('2x #forge:rods/titanium', '4x #forge:dusts/kaolinite') - .inputFluids(Fluid.of('gtceu:concrete', 144*1.5)) + .inputFluids(Fluid.of('gtceu:concrete', 144 * 1.5)) .itemOutputs('tfg:titanium_concrete') .circuit(2) .duration(20) .EUt(GTValues.VH[GTValues.EV]) - + event.recipes.gtceu.laser_engraver('tfg:titanium_concrete_bricks') .itemInputs('tfg:polished_titanium_concrete') .notConsumable('#forge:lenses/light_blue') @@ -1404,4 +1404,19 @@ function registerTFGMiscellaneousRecipes(event) { .duration(20 * (2.5)) .EUt(GTValues.VA[GTValues.LV]) + // Interplanetary ae2 card + + event.recipes.gtceu.assembler('tfg:wireless_card') + .itemInputs( + 'ae2:advanced_card', + '4x ae2:wireless_booster', + 'ae2:cell_component_16k', + '2x ae2:wireless_receiver', + '2x gtceu:ev_emitter', + '#forge:exquisite_gems/fluix', + '2x #forge:plates/ruthenium') + .inputFluids(Fluid.of('gtceu:epoxy', 144)) + .itemOutputs('tfg:wireless_card') + .duration(300) + .EUt(GTValues.VA[GTValues.EV]) }