diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index 2aa6312fc..ffc710e1e 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -6,6 +6,11 @@ "block.gtceu.alternator": "Alternator", "gtceu.alternator": "Alternator", + + "block.gtceu.nether_dome": "Netherarium", + "gtceu.nether_dome": "Netherarium", + "block.gtceu.end_dome": "Enderarium", + "gtceu.end_dome": "Enderarium", "material.treated_wood": "Creosote-Treated Wood", "block.gtceu.treated_wood_planks": "Creosote-Treated Wood Planks", @@ -49,4 +54,4 @@ "block.gtceu.luv_kinetic_output_box": "Ludicrous Voltage Kinetic Output Box", "block.gtceu.zpm_kinetic_output_box": "ZPM Voltage Kinetic Output Box", "block.gtceu.uv_kinetic_output_box": "Ultimate Voltage Kinetic Output Box" -} +} \ No newline at end of file diff --git a/kubejs/assets/gtceu/lang/ru_ru.json b/kubejs/assets/gtceu/lang/ru_ru.json index 0b2d775e3..b155c028d 100644 --- a/kubejs/assets/gtceu/lang/ru_ru.json +++ b/kubejs/assets/gtceu/lang/ru_ru.json @@ -6,6 +6,11 @@ "block.gtceu.alternator": "Генератор переменного тока", "gtceu.alternator": "Генератор переменного тока", + + "block.gtceu.nether_dome": "Террариум нижнего мира", + "gtceu.nether_dome": "Террариум нижнего мира", + "block.gtceu.end_dome": "Террариум края", + "gtceu.end_dome": "Террариум края", "material.treated_wood": "Обработанное креозотом дерево", "block.gtceu.treated_wood_planks": "Доски из обработанного креозотом дерева" diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/glassworking.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/glassworking.json index 5d8140eb0..ce4f2ba8c 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/glassworking.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/mechanics/glassworking.json @@ -25,7 +25,7 @@ "anchor": "potash", "recipe": "tfg:smelting/dried_seaweed_to_soda", "recipe2": "tfg:smelting/dried_kelp_to_soda", - "text": "A type of $(thing)Potash$() or equivalent is also required for glass batches. $(thing)Soda Ash$() can be used, which is a powder made from heating $(thing)Dried Seaweed$() or $(thing)Kelp$(). $(l:the_world/ores_and_minerals#saltpeter)Saltpeter$() can be used as well." + "text": "A type of $(thing)Potash$() or equivalent is also required for glass batches. $(thing)Soda Ash$() can be used, which is a powder made from heating $(thing)Dried Seaweed$() or $(thing)Kelp$(). $(l:tfg_ores/normal_saltpeter)Saltpeter$() can be used as well." }, { "type": "patchouli:text", @@ -79,4 +79,4 @@ "tfc:jacks": 8, "tfc:gem_saw": 9 } -} \ No newline at end of file +} diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/faqs.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/faqs.json new file mode 100644 index 000000000..e69de29bb diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/infinite_resources.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/infinite_resources.json new file mode 100644 index 000000000..a49ec0454 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/infinite_resources.json @@ -0,0 +1,48 @@ +{ + "name": "Infinite Resources?!", + "icon": "tfc:rock/dust/diorite", + "category": "tfc:tfg_tips", + "pages": + [ + { + "type": "patchouli:text", + "text": "Most of the raw resources you'll need are non-renewable and will require you to mine for them, but a few of them are infinitely renewable once you get to $(thing)LV$() and $(thing)MV$().$(br2)A lot of these methods are pretty slow, however, so it's up to you whether it's worth setting these up or just digging up another ore vein." + }, + { + "type": "patchouli:spotlight", + "title": "Fluids", + "item": "create:hose_pulley", + "text": "$(thing)Water$(), $(thing)Sea Water$(), and $(thing)Lava$() are all renewable through a $(item)Hose Pulley$() and a single source block of fluid. You can pull out of the hose pulley with a $(l:mechanics/pumps)Mechanical Pump$()." + }, + { + "type": "patchouli:text", + "text": "$(item)Sea Water$() can be centrifuged for Water and $(thing)Salt$(), which can be electrolyzed into $(thing)Chlorine$() and $(thing)Sodium$().$(br2)$(item)Lava$() can be centrifuged into $(thing)Gold Nuggets$(), $(thing)Tantalite$(), $(thing)Sapphire$(), $(thing)Quicklime$(), $(thing)Silicon Dioxide$(), and ___.$(br2)Lava can also be used to fuel your steam boilers!" + }, + { + "type": "patchouli:spotlight", + "title": "Stone Dusts", + "item": { "tag": "tfc:stone/dusts" }, + "text": "The other source of infinite resources is through $(thing)Stone Dusts$(). You can obtain infinite raw rock through a $(item)Rock Breaker$(), and then macerate it into different dusts.$(br2)These stone dusts can then be centrifuged into different resources. Most of them give Silicon Dioxide and Oxygen, so only other resources will be listed." + }, + { + "type": "patchouli:text", + "title": "Sedimentary", + "text": "$(li)$(thing)Shale$(): Sodium, Metal Mixture$(li)$(thing)Claystone$(): Aluminium, Hematite$(li)$(thing)Limestone$(): Calcium, Metal Mixture$(li)$(thing)Conglomerate$(): Tricalcium Phosphate, Hematite$(li)$(thing)Dolomite$(): Magnesium, Calcium, Metal Mixture$(li)$(thing)Chert$(): Metal Mixture$(li)$(thing)Chalk$(): Calcium, Carbon, Metal Mixture" + }, + { + "type": "patchouli:text", + "title": "Metamorphic", + "text": "$(li)$(thing)Quartzite$(): Nothing$(li)$(thing)Slate$(): Metal Mixture$(li)$(thing)Phyllite$(): Calcium Chloride$(li)$(thing)Schist$(): Mica, Talc, Graphite, Metal Mixture$(li)$(thing)Gneiss$():Biotite (Fluorine)$(li)$(thing)Marble$(): Magnesium, Calcite" + }, + { + "type": "patchouli:text", + "title": "Igneous Intrusive", + "text": "$(li)$(thing)Granite$(): Redrock (which gives...?$(li)$(thing)Gabbro$(): Titanium, Iron, Metal Mixture$(li)$(thing)Diorite$(): Clay Dust, Mirabilite$(li2)Aluminium, Sulfur, Sodium, Lithium..." + }, + { + "type": "patchouli:text", + "title": "Igneous Extrusive", + "text": "$(li)$(thing)Rhyolite$(): Metal Mixture$(li)$(thing)Basalt$(): Olivine, Calcite, Flint, Dark Ashes$(li)$(thing)Andesite$(): Asbestos, Saltpeter$(li)$(thing)Dacite$(): Sodium, Calcium, Aluminium, Metal Mixture" + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/artificial_end_portal_frame.json b/kubejs/assets/tfg/models/block/artificial_end_portal_frame.json new file mode 100644 index 000000000..1b8e182a0 --- /dev/null +++ b/kubejs/assets/tfg/models/block/artificial_end_portal_frame.json @@ -0,0 +1,84 @@ +{ + "textures": { + "particle": "block/end_portal_frame_side", + "bottom": "block/end_stone", + "top": "block/end_portal_frame_top", + "side": "block/end_portal_frame_side", + "eye": "block/end_portal_frame_eye" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#top" + }, + "north": { + "uv": [ + 0, + 3, + 16, + 16 + ], + "texture": "#side", + "cullface": "north" + }, + "south": { + "uv": [ + 0, + 3, + 16, + 16 + ], + "texture": "#side", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 3, + 16, + 16 + ], + "texture": "#side", + "cullface": "west" + }, + "east": { + "uv": [ + 0, + 3, + 16, + 16 + ], + "texture": "#side", + "cullface": "east" + } + } + } + ] +} \ No newline at end of file diff --git a/kubejs/client_scripts/tooltips.js b/kubejs/client_scripts/tooltips.js index 323f0ead5..0ae8ec39b 100644 --- a/kubejs/client_scripts/tooltips.js +++ b/kubejs/client_scripts/tooltips.js @@ -1,4 +1,7 @@ ItemEvents.tooltip(event => { + event.addAdvanced(['tfc:red_kaolin_clay','tfc:pink_kaolin_clay','tfc:white_kaolin_clay','gtceu:brass_block'], (item, advanced, text) => { + text.add(1, [text.of('Used in glassblowing as a replacement for Brass Plated Blocks')]) + }) event.addAdvanced(['gtceu:lv_macerator','gtceu:mv_macerator', 'gtceu:hp_steam_macerator'], (item, advanced, text) => { text.add(1, [text.of('Only outputs the first slot shown in EMI/JEI until HV.')]) }) @@ -23,4 +26,12 @@ ItemEvents.tooltip(event => { event.addAdvanced(['firmalife:beehive'], (item, advanced, text) => { text.add(1, [text.of('Needs to be filled with empty frames and surrounded by flowers to attract bees.')]) }) + event.addAdvanced(['gtceu:nether_dome'], (item, advanced, text) => { + text.add(1, text.of('Artificial enviroment to simulate the Nether.')), + text.add(2, text.of(`The interior is customizable! Check the multiblock preview in JEI.`)) + }) + event.addAdvanced(['gtceu:end_dome'], (item, advanced, text) => { + text.add(1, text.of('Artificial enviroment to simulate the End.')), + text.add(2, text.of(`The interior is customizable! Check the multiblock preview in JEI.`)) + }) }) diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 674170b2b..25e1c4b19 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1050,12 +1050,11 @@ const registerGTCEURecipes = (event) => { event.remove({ id: 'gtceu:extractor/extract_raw_rubber_dust' }) // Пыль звезды незера - // TODO: удалить после имплементации ада event.recipes.gtceu.chemical_reactor('tfg:gtceu/nether_star_dust') .itemInputs('2x #forge:dusts/iridium', '#forge:dusts/diamond') .circuit(10) .itemOutputs('gtceu:nether_star_dust') - .inputFluids(Fluid.of('gtceu:sulfur_dioxide', 6000), Fluid.of('gtceu:carbon_monoxide', 8000)) + .inputFluids(Fluid.of('gtceu:nether_air', 1000)) .duration(700) .EUt(2720) @@ -1277,16 +1276,82 @@ const registerGTCEURecipes = (event) => { .EUt(24) //#endregion - - // Add circuit to assembler recipe for redstone lamp. - // Avoids conflict with AE2 smart cables. - event.remove({ id: 'gtceu:assembler/redstone_lamp' }) - event.recipes.gtceu.assembler('redstone_lamp') - .itemInputs('4x #forge:dusts/redstone', '4x #forge:dusts/glowstone') - .itemOutputs('1x minecraft:redstone_lamp') - .circuit(1) - .duration(100) - .EUt(1) + + //#region remove LV casing exploit + + /*event.remove({ id: 'gtceu:assembler/casing_lv' }) + event.recipes.gtceu.assembler('tfg:assembler/casing_lv') + .itemInputs('4x gtceu:blue_steel_plate', '4x gtceu:red_steel_plate') + .itemOutputs('gtceu:lv_machine_casing') + .circuit(8) + .duration(50) + .EUt(16)*/ + + //#endregion + + //#region make colored steel a bit easier to compensate + + event.recipes.gtceu.arc_furnace('tfg:black_steel_dust_to_ingot') + .itemInputs('gtceu:black_steel_dust') + .itemOutputs('gtceu:black_steel_ingot') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(500) + .EUt(24) + + event.recipes.gtceu.arc_furnace('tfg:red_steel_dust_to_ingot') + .itemInputs('gtceu:red_steel_dust') + .itemOutputs('gtceu:red_steel_ingot') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(700) + .EUt(32) + + event.recipes.gtceu.arc_furnace('tfg:blue_steel_dust_to_ingot') + .itemInputs('gtceu:blue_steel_dust') + .itemOutputs('gtceu:blue_steel_ingot') + .inputFluids(Fluid.of('gtceu:oxygen', 72)) + .duration(700) + .EUt(32) + + //#endregion + + //#region add regular furnace recipes for other tfc alloys + + event.remove({id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_black_bronze' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' }) + event.remove({id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' }) + event.remove({id: 'gtceu:vacuum_freezer/black_bronze' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_sterling_silver' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_rose_gold' }) + event.remove({id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' }) + + event.recipes.gtceu.electric_furnace('tfg:bismuth_bronze_dust_to_ingot') + .itemInputs('gtceu:bismuth_bronze_dust') + .itemOutputs('gtceu:bismuth_bronze_ingot') + .duration(200) + .EUt(16) + + event.recipes.gtceu.electric_furnace('tfg:black_bronze_dust_to_ingot') + .itemInputs('gtceu:black_bronze_dust') + .itemOutputs('gtceu:black_bronze_ingot') + .duration(200) + .EUt(16) + + event.recipes.gtceu.electric_furnace('tfg:sterling_silver_dust_to_ingot') + .itemInputs('gtceu:sterling_silver_dust') + .itemOutputs('gtceu:sterling_silver_ingot') + .duration(300) + .EUt(20) + + event.recipes.gtceu.electric_furnace('tfg:rose_gold_dust_to_ingot') + .itemInputs('gtceu:rose_gold_dust') + .itemOutputs('gtceu:rose_gold_ingot') + .duration(300) + .EUt(20) + + //#endregion //#region Рецепты, которые итерируются по всем материалам @@ -1465,8 +1530,11 @@ const registerGTCEURecipes = (event) => { } }); - //#endregion + //#endregion + + //#region fix more duping + // Fix LV recycling producing red/blue steel. // Replace red steel outputs with 8x steel, delete blue steel outputs. event.replaceOutput( diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 921c3b673..0aa85775f 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -3262,8 +3262,8 @@ const registerMinecraftRecipes = (event) => { //#region Glowstone event.recipes.gtceu.mixer('gtceu:lv_glowstone') - .inputFluids(Fluid.of('gtceu:creosote', 1000), Fluid.of('gtceu:distilled_water', 1000)) - .itemInputs('gtceu:stone_dust', 'minecraft:redstone', 'gtceu:sulfur_dust', 'gtceu:sodium_dust') + .inputFluids(Fluid.of('gtceu:creosote', 1000)) + .itemInputs('gtceu:gold_dust', 'minecraft:redstone', 'gtceu:sulfur_dust', 'gtceu:coal_dust') .itemOutputs('minecraft:glowstone_dust') .circuit(32) .duration(1200) diff --git a/kubejs/server_scripts/tfg/terrariums.js b/kubejs/server_scripts/tfg/terrariums.js new file mode 100644 index 000000000..e93c725b0 --- /dev/null +++ b/kubejs/server_scripts/tfg/terrariums.js @@ -0,0 +1,233 @@ +ServerEvents.recipes(event => { + + event.remove({ id: 'gtceu:gas_collector/nether_air' }) + event.remove({ id: 'minecraft:netherite_upgrade_smithing_template' }) + event.remove({ id: 'gtceu:gas_collector/ender_air' }) + event.remove({ id: 'gtceu:macerator/macerate_end_stone' }) + event.remove({ id: 'minecraft:ender_chest' }) + event.remove({ id: 'gtceu:assembler/ender_chest' }) + event.remove({ id: 'minecraft:end_crystal' }) + event.remove({ id: 'gtceu:assembler/end_crystal' }) + + // nether slurry + + event.recipes.gtceu.mixer('tfg:nether_slurry') + .itemInputs('gtceu:basalt_dust', 'minecraft:blaze_powder', 'minecraft:gold_nugget') + .inputFluids(Fluid.of('minecraft:lava', 1000)) + .outputFluids(Fluid.of('tfg:nether_slurry', 1000)) + .duration(200) + .EUt(512) + + event.recipes.gtceu.mixer('tfg:enriched_nether_slurry') + .itemInputs('minecraft:quartz', 'minecraft:redstone') + .inputFluids(Fluid.of('tfg:nether_slurry', 2000)) + .outputFluids(Fluid.of('tfg:enriched_nether_slurry', 2000)) + .duration(200) + .EUt(512) + + // nether air + + event.recipes.gtceu.nether_dome('tfg:slurry_to_air') + .inputFluids(Fluid.of('tfg:nether_slurry', 100)) + .outputFluids(Fluid.of('gtceu:nether_air', 32000)) + .duration(200) + .EUt(256) + + event.recipes.gtceu.nether_dome('tfg:enriched_slurry_to_air') + .inputFluids(Fluid.of('tfg:enriched_nether_slurry', 100)) + .outputFluids(Fluid.of('gtceu:nether_air', 128000)) + .duration(200) + .EUt(256) + + event.recipes.gtceu.nether_dome('tfg:quartz') + .itemInputs('gtceu:quartzite_gem') + .inputFluids(Fluid.of('tfg:nether_slurry', 25)) + .itemOutputs('minecraft:quartz') + .duration(200) + .EUt(512) + + // netherarium + + /*event.shaped('gtceu:nether_dome', [ + 'GCB', + 'DEH', + 'FAF' + ], { + A: 'minecraft:flint_and_steel', + B: 'minecraft:gold_nugget', + C: 'minecraft:blaze_rod', + D: 'minecraft:quartz', + E: 'gtceu:hv_gas_collector', + F: 'gtceu:dense_obsidian_plate', + G: 'minecraft:rotten_flesh', + H: 'minecraft:bone' + }).id('tfg:shaped/nether_dome')*/ + + event.shaped('gtceu:nether_dome', [ + 'ADA', + 'CEC', + 'FBF' + ], { + A: 'minecraft:quartz', + B: 'minecraft:gold_block', + C: 'minecraft:blaze_rod', + D: 'gtceu:hv_emitter', + E: 'gtceu:hv_gas_collector', + F: 'gtceu:dense_obsidian_plate' + }).id('tfg:shaped/nether_dome2') + + // netherrack + + event.recipes.gtceu.chemical_bath('tfg:netherrack') + .itemInputs('#forge:stone') + .inputFluids(Fluid.of('gtceu:blaze', 144)) + .itemOutputs('minecraft:netherrack') + .duration(200) + .EUt(512) + + event.recipes.gtceu.macerator('tfg:obsidian') + .itemInputs('minecraft:obsidian') + .itemOutputs('gtceu:obsidian_dust') + .duration(100) + .EUt(512) + + // nether bricks + + event.shaped('4x minecraft:nether_bricks', [ + 'ABA', + 'BAB', + 'ABA' + ], { + A: 'minecraft:nether_brick', + B: 'tfc:mortar' + }).id('tfg:shaped/nether_bricks') + + event.recipes.gtceu.assembler('tfg:nether_bricks') + .itemInputs('5x minecraft:nether_brick') + .itemOutputs('4x minecraft:nether_bricks') + .inputFluids(Fluid.of('gtceu:concrete', 72)) + .duration(50) + .EUt(2) + + // ender slurry + + event.recipes.gtceu.mixer('tfg:ender_slurry') + .itemInputs('gtceu:obsidian_dust', 'minecraft:end_stone') + .inputFluids(Fluid.of('gtceu:helium', 200), Fluid.of('gtceu:radon', 50)) + .outputFluids(Fluid.of('tfg:ender_slurry', 250)) + .duration(200) + .EUt(2048) + + event.recipes.gtceu.mixer('tfg:enriched_ender_slurry') + .itemInputs('minecraft:chorus_fruit', 'ae2:ender_dust') + .inputFluids(Fluid.of('tfg:ender_slurry', 500)) + .outputFluids(Fluid.of('tfg:enriched_ender_slurry', 500)) + .duration(200) + .EUt(2048) + + // ender air + + event.recipes.gtceu.end_dome('tfg:slurry_to_air') + .inputFluids(Fluid.of('tfg:ender_slurry', 25)) + .outputFluids(Fluid.of('gtceu:ender_air', 32000)) + .duration(200) + .EUt(1024) + + event.recipes.gtceu.end_dome('tfg:enriched_slurry_to_air') + .inputFluids(Fluid.of('tfg:enriched_ender_slurry', 25)) + .outputFluids(Fluid.of('gtceu:ender_air', 128000)) + .duration(200) + .EUt(1024) + + event.recipes.gtceu.end_dome('tfg:pearls') + .itemInputs('gtceu:quantum_eye') + .inputFluids(Fluid.of('tfg:ender_slurry', 10)) + .itemOutputs('2x minecraft:ender_pearl') + .duration(200) + .EUt(2048) + + // enderarium + + /*event.recipes.gtceu.assembler('tfg:end_dome') + .itemInputs('12x minecraft:ender_eye', 'minecraft:chorus_fruit', 'minecraft:end_crystal', '#minecraft:beds', 'gtceu:ev_gas_collector', 'tfc:metal/bars/wrought_iron', 'minecraft:bow', 'minecraft:end_stone', 'minecraft:obsidian') + .itemOutputs('gtceu:end_dome') + .duration(600) + .EUt(2048)*/ + + event.shaped('gtceu:end_dome', [ + 'DAD', + 'CEC', + 'FBF' + ], { + A: 'gtceu:ev_emitter', + B: 'minecraft:end_stone', + C: 'tfc:metal/bars/wrought_iron', + D: 'minecraft:end_crystal', + E: 'gtceu:ev_gas_collector', + F: 'gtceu:dense_obsidian_plate' + }).id('tfg:shaped/end_dome') + + // parts for the ender dome + + event.shaped('minecraft:end_crystal', [ + 'AAA', + 'ABA', + 'ACA' + ], { + A: 'gtceu:tempered_glass', + B: 'gtceu:quantum_eye', + C: '#forge:exquisite_gems' + }).id('tfg:shaped/end_crystal') + + // chorus fruit + + event.recipes.gtceu.large_chemical_reactor('tfg:chorus_fruit_uranium') + .itemInputs('#tfc:foods/fruits', 'gtceu:uranium_235_dust') + .itemOutputs('minecraft:chorus_fruit', 'gtceu:uranium_dust') + .duration(500) + .EUt(480) + + event.recipes.gtceu.large_chemical_reactor('tfg:chorus_fruit_plutonium') + .itemInputs('#tfc:foods/fruits', 'gtceu:plutonium_241_dust') + .itemOutputs('minecraft:chorus_fruit', 'gtceu:plutonium_dust') + .duration(200) + .EUt(480) + + event.recipes.gtceu.centrifuge('tfg:kovarex') + .itemInputs('40x gtceu:uranium_235_dust', '5x gtceu:uranium_dust') + .itemOutputs('41x gtceu:uranium_235_dust', '2x gtceu:uranium_dust') + .duration(1000) + .EUt(512) + + // end stone + + + event.recipes.gtceu.chemical_bath('tfg:end_stone') + .itemInputs('#forge:stone') + .inputFluids(Fluid.of('gtceu:argon', 100)) + .itemOutputs('minecraft:end_stone') + .duration(100) + .EUt(2048) + + // dragon egg + + event.recipes.gtceu.chemical_bath('tfg:dragon_egg') + .itemInputs('#forge:eggs') + .inputFluids(Fluid.of('gtceu:thorium', 1296)) + .itemOutputs('minecraft:dragon_egg') + .duration(2000) + .EUt(2048) + + // end portal frame + + event.shaped('tfg:artificial_end_portal_frame', [ + 'A', + 'B', + 'C' + ], { + A: 'minecraft:ender_eye', + B: 'minecraft:cyan_carpet', + C: 'minecraft:end_stone' + }).id('tfg:shaped/artificial_end_portal_frame') +}) + diff --git a/kubejs/startup_scripts/gtceu/machines.js b/kubejs/startup_scripts/gtceu/machines.js index 0a415b613..de2de707d 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -24,7 +24,7 @@ const registerGTCEuMachines = (event) => { ) .workableCasingRenderer('gtceu:block/casings/solid/machine_casing_solid_steel', 'gtceu:block/multiblock/implosion_compressor', false) - event.create('alternator', 'multiblock') + event.create('alternator', 'multiblock') .rotationState(RotationState.NON_Y_AXIS) .recipeType('alternator') .pattern(definition => FactoryBlockPattern.start() @@ -44,4 +44,163 @@ const registerGTCEuMachines = (event) => { "gtceu:block/casings/solid/machine_casing_solid_steel", "gtceu:block/multiblock/implosion_compressor", false ) + + event.create('nether_dome', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('nether_dome') + .appearanceBlock(GTBlocks.CASING_PTFE_INERT) + .pattern(definition => FactoryBlockPattern.start() + .aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ") + .aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ") + .aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ") + .aisle("CBBBBBC", "F#####F", "F#####F", "F#####F", "FTTTTTF", "FQQQQQF") + .aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ") + .aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ") + .aisle(" CCXCC ", " QGOGQ ", " QOPOQ ", " QOPOQ ", " QGOGQ ", " ") + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('B', Predicates.blocks('tfc:rock/magma/basalt').setMinGlobalLimited(6) + .or(Predicates.blocks('minecraft:netherrack').setMinGlobalLimited(10))) + .where('T', Predicates.blocks('minecraft:glowstone').setMinGlobalLimited(5) + .or(Predicates.blocks('minecraft:netherrack').setMinGlobalLimited(10))) + .where('O', Predicates.blocks('minecraft:obsidian')) + .where('F', Predicates.frames('black_steel')) + .where('Q', Predicates.blocks('ae2:quartz_glass')) + .where('G', Predicates.blocks('minecraft:gold_block') + .or(Predicates.blocks('tfc:rock/raw/basalt')) + .or(Predicates.blocks('tfc:rock/hardened/basalt')) + .or(Predicates.blocks('tfc:rock/bricks/basalt')) + .or(Predicates.blocks('tfc:rock/chiseled/basalt')) + .or(Predicates.blocks('minecraft:obsidian')) + .or(Predicates.blocks('minecraft:nether_bricks'))) + .where('P', Predicates.blocks('minecraft:purple_stained_glass_pane')) + .where('C', Predicates.blocks(GTBlocks.CASING_PTFE_INERT.get()).setMinGlobalLimited(10) + .or(Predicates.autoAbilities(definition.getRecipeTypes())) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) + .where('#', Predicates.air() + .or(Predicates.blocks('minecraft:netherrack')) + .or(Predicates.blocks('tfc:rock/magma/basalt')) + .or(Predicates.blocks('minecraft:glowstone')) + .or(Predicates.blocks('minecraft:nether_bricks'))) + .where(' ', Predicates.any()) + .build() + ) + .shapeInfo(controller => MultiblockShapeInfo.builder() + .aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ") + .aisle("CMMMNNC", "Q NQ", "Q Q", "Q Q", "QNTTNNQ", " QQQQQ ") + .aisle("iMMNNNf", "QR Q", "QR Q", "Q T Q", "QNTTTNQ", " QQQQQ ") + .aisle("CNMMMNC", "F NF", "F F", "F F", "FNNTNNF", "FQQQQQF") + .aisle("tNNNMNl", "Q NQ", "Q NQ", "Q Q", "QNNNNNQ", " QQQQQ ") + .aisle("CNNNNNC", "QN NNQ", "Q NQ", "Q NQ", "QNNNNNQ", " QQQQQ ") + .aisle(" mCXCC ", " QGOGQ ", " QOPOQ ", " QOPOQ ", " QGOGQ ", " ") + .where('X', controller, Direction.SOUTH) + .where('C', GTBlocks.CASING_PTFE_INERT.get()) + .where('N', Block.getBlock('minecraft:netherrack')) + .where('M', Block.getBlock('tfc:rock/magma/basalt')) + .where('T', Block.getBlock('minecraft:glowstone')) + .where('Q', Block.getBlock('ae2:quartz_glass')) + .where('F', Block.getBlock('gtceu:black_steel_frame')) + .where('G', Block.getBlock('minecraft:gold_block')) + .where('O', Block.getBlock('minecraft:obsidian')) + .where('P', Block.getBlock('minecraft:purple_stained_glass_pane')) + .where('R', Block.getBlock('minecraft:nether_bricks')) + .where(' ', Block.getBlock('minecraft:air')) + + .where('m', GTMachines.MAINTENANCE_HATCH, Direction.SOUTH) + .where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST) + .where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.WEST) + .where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST) + .where('l', GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST) + .where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.MV], Direction.NORTH) + .build() + ) + .workableCasingRenderer( + "gtceu:block/casings/solid/machine_casing_inert_ptfe", + "gtceu:block/machines/gas_collector", false + ) + + event.create('end_dome', 'multiblock') + .rotationState(RotationState.NON_Y_AXIS) + .recipeType('end_dome') + .appearanceBlock(GTBlocks.CASING_TITANIUM_STABLE) + .pattern(definition => FactoryBlockPattern.start() + .aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ") + .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ") + .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ") + .aisle("CBBBBBC", "FOOEOOF", "FOOOOOF", "FOOOOOF", "FOOOOOF", "FSNNNSF", " G G ") + .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ") + .aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ") + .aisle(" CCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ") + .where('X', Predicates.controller(Predicates.blocks(definition.get()))) + .where('B', Predicates.blocks('minecraft:end_stone').setMinGlobalLimited(20) + .or(Predicates.blocks('minecraft:black_concrete'))) + .where('O', Predicates.blocks('minecraft:obsidian').setMinGlobalLimited(8) + .or(Predicates.air())) + .where('F', Predicates.frames('titanium')) + .where('Q', Predicates.blocks('ae2:quartz_glass')) + .where('E', Predicates.blocks('minecraft:dragon_egg')) + .where('S', Predicates.blocks('tfg:artificial_end_portal_frame')) + .where('N', Predicates.blocks('minecraft:black_concrete')) + .where('G', Predicates.blocks('tfc:ore/small_malachite') + .or(Predicates.blocks('tfc:ore/small_native_copper')) + .or(Predicates.blocks('tfc:ore/small_native_gold')) + .or(Predicates.blocks('tfc:ore/small_hematite')) + .or(Predicates.blocks('tfc:ore/small_native_silver')) + .or(Predicates.blocks('tfc:ore/small_cassiterite')) + .or(Predicates.blocks('tfc:ore/small_bismuthinite')) + .or(Predicates.blocks('tfc:ore/small_garnierite')) + .or(Predicates.blocks('tfc:ore/small_malachite')) + .or(Predicates.blocks('tfc:ore/small_magnetite')) + .or(Predicates.blocks('tfc:ore/small_limonite')) + .or(Predicates.blocks('tfc:ore/small_sphalerite')) + .or(Predicates.blocks('tfc:ore/small_tetrahedrite'))) + .where('C', Predicates.blocks(GTBlocks.CASING_TITANIUM_STABLE.get()).setMinGlobalLimited(10) + .or(Predicates.autoAbilities(definition.getRecipeTypes())) + .or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1))) + .where(' ', Predicates.any()) + .build() + ) + .shapeInfo(controller => MultiblockShapeInfo.builder() + .aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ") + .aisle("CBBBBBC", "Q O Q", "Q O Q", "Q Q", "Q Q", " QSSSQ ", " 123 ") + .aisle("iBBBBBf", "QO OQ", "QO Q", "QO Q", "Q Q", " SNNNS ", " y 4 ") + .aisle("CBBBBBC", "F E F", "F F", "F F", "F F", "FSNNNSF", " z 5 ") + .aisle("tBBBBNl", "Q O Q", "Q O Q", "Q Q", "Q Q", " SNNNS ", " 0 6 ") + .aisle("CNBBNNC", "Q Q", "Q Q", "Q Q", "Q Q", " QSSSQ ", " 987 ") + .aisle(" mCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ") + .where('X', controller, Direction.SOUTH) + .where('C', GTBlocks.CASING_TITANIUM_STABLE.get()) + .where('B', Block.getBlock('minecraft:end_stone')) + .where('N', Block.getBlock('minecraft:black_concrete')) + .where('O', Block.getBlock('minecraft:obsidian')) + .where('F', Block.getBlock('gtceu:titanium_frame')) + .where('Q', Block.getBlock('ae2:quartz_glass')) + .where(' ', Block.getBlock('minecraft:air')) + .where('S', Block.getBlock('tfg:artificial_end_portal_frame')) + .where('E', Block.getBlock('minecraft:dragon_egg')) + + .where('1', Block.getBlock('tfc:ore/small_native_copper')) + .where('2', Block.getBlock('tfc:ore/small_native_gold')) + .where('3', Block.getBlock('tfc:ore/small_hematite')) + .where('4', Block.getBlock('tfc:ore/small_native_silver')) + .where('5', Block.getBlock('tfc:ore/small_cassiterite')) + .where('6', Block.getBlock('tfc:ore/small_bismuthinite')) + .where('7', Block.getBlock('tfc:ore/small_garnierite')) + .where('8', Block.getBlock('tfc:ore/small_malachite')) + .where('9', Block.getBlock('tfc:ore/small_magnetite')) + .where('0', Block.getBlock('tfc:ore/small_limonite')) + .where('z', Block.getBlock('tfc:ore/small_sphalerite')) + .where('y', Block.getBlock('tfc:ore/small_tetrahedrite')) + + .where('m', GTMachines.MAINTENANCE_HATCH, Direction.SOUTH) + .where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST) + .where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.WEST) + .where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST) + .where('l', GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST) + .where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.HV], Direction.NORTH) + .build() + ) + .workableCasingRenderer( + "gtceu:block/casings/solid/machine_casing_stable_titanium", + "gtceu:block/machines/gas_collector", false + ) } \ No newline at end of file diff --git a/kubejs/startup_scripts/gtceu/recipe_types.js b/kubejs/startup_scripts/gtceu/recipe_types.js index eb4144c95..7f6f60476 100644 --- a/kubejs/startup_scripts/gtceu/recipe_types.js +++ b/kubejs/startup_scripts/gtceu/recipe_types.js @@ -15,5 +15,22 @@ const registerGTCEuRecipeTypes = (event) => { .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW, FillDirection.LEFT_TO_RIGHT) .setSound(GTSoundEntries.ARC) .setMaxTooltips(6) + + + event.create('nether_dome') + .category('nether_dome') + .setEUIO('in') + .setMaxIOSize(1, 1, 1, 1) + .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.FIRE) + + event.create('end_dome') + .category('end_dome') + .setEUIO('in') + .setMaxIOSize(1, 1, 1, 1) + .setSlotOverlay(false, false, GuiTextures.SOLIDIFIER_OVERLAY) + .setProgressBar(GuiTextures.PROGRESS_BAR_GAS_COLLECTOR, FillDirection.LEFT_TO_RIGHT) + .setSound(GTSoundEntries.FIRE) } diff --git a/kubejs/startup_scripts/main_server_script.js b/kubejs/startup_scripts/main_server_script.js new file mode 100644 index 000000000..5adb7f640 --- /dev/null +++ b/kubejs/startup_scripts/main_server_script.js @@ -0,0 +1,143 @@ +// priority: 1 + +/** + * Событие регистрации предмет-тэгов. + */ +ServerEvents.tags('item', event => { + registerAE2ItemTags(event) + registerAsticorCartsItemTags(event) + registerChiselAndBitsItemTags(event) + registerComputerCraftItemTags(event) + registerCreateItemTags(event) + registerCreateAdditionsItemTags(event) + registerExtendedAE2ItemTags(event) + registerFirmaCivItemTags(event) + registerFirmaLifeItemTags(event) + registerFramedBlocksItemTags(event) + registerFTBQuestsItemTags(event) + registerGTCEUItemTags(event) + registerMegaCellsItemTags(event) + registerMinecraftItemTags(event) + registerMoreRedItemTags(event) + registerHotOrNotItemTags(event) + registerRailWaysItemTags(event) + registerSophisticatedBackpacksItemTags(event) + registerTFCItemTags(event) +}) + +/** + * Событие регистрации блок-тэгов. + */ +ServerEvents.tags('block', event => { + registerAE2BlockTags(event) + registerAsticorCartsBlockTags(event) + registerChiselAndBitsBlockTags(event) + registerComputerCraftBlockTags(event) + registerCreateBlockTags(event) + registerCreateAdditionsBlockTags(event) + registerExtendedAE2BlockTags(event) + registerFirmaCivBlockTags(event) + registerFirmaLifeBlockTags(event) + registerFramedBlocksBlockTags(event) + registerFTBQuestsBlockTags(event) + registerGTCEUBlockTags(event) + registerMegaCellsBlockTags(event) + registerMinecraftBlockTags(event) + registerMoreRedBlockTags(event) + registerHotOrNotBlockTags(event) + registerRailWaysBlockTags(event) + registerSophisticatedBackpacksBlockTags(event) + registerTFCBlockTags(event) +}) + +/** + * Событие регистрации жидкость-тэгов. + */ +ServerEvents.tags('fluid', event => { + registerCreateFluidTags(event) + registerCreateAdditionsFluidTags(event) + registerFirmaLifeBlockTags(event) + registerTFCFluidTags(event) +}) + +/** + * Событие регистрации тегов структур. + */ +ServerEvents.tags('worldgen/placed_feature', event => { + registerFirmaLifePlacedFeatures(event) + registerTFCPlacedFeatures(event) +}) + +/** + * Событие регистрации датапаков (Здесь можно регистрировать теги, данные, рецепты, общий метод короче). + * Срабатывает до инициализации рецептов, но после тегов. + */ +ServerEvents.highPriorityData(event => { + registerComputerCraftData(event) +}) + +/** + * Событие регистрации датапаков для TFC (Здесь можно регистрировать теги, данные, рецепты, общий метод короче). + * Срабатывает до инициализации рецептов, но после тегов. + */ +TFCEvents.data(event => { + registerTFCDataForGTCEU(event) + registerTFCDataForTFC(event) + registerTFCDataForTreeTap(event) + registerTFCDataForWaterFlasks(event) +}) + +/** + * Событие регистрации лут-тейблов. + * Срабатывает до инициализации рецептов, но после датапаков и тегов. + */ +LootJS.modifiers((event) => { + registerGTCEULoots(event) +}); + +/** + * Событие регистрации рудных жил. + * Не представляю когда срабатывает, но явно после тегов и датапаков. + */ +GTCEuServerEvents.oreVeins(event => { + // event.removeAll() +}) + +/** + * Событие регистрации рецептов. + * Срабатывает после инициализации датапаков и тегов. + */ +ServerEvents.recipes(event => { + registerAE2Recipes(event) + registerAsticorCartsRecipes(event) + registerAE2InsertExportCardRecipes(event) + registerAE2NetworkAnalyzerRecipes(event) + registerAE2WTLibRecipes(event) + registerChiselAndBitsRecipes(event) + registerComputerCraftRecipes(event) + registerCreateRecipes(event) + registerCreateAdditionsRecipes(event) + registerCreateConnectedRecipes(event) + registerExtendedAE2Recipes(event) + registerExposureRecipes(event) + registerEtchedRecipes(event) + registerFirmaCivRecipes(event) + registerFirmaLifeRecipes(event) + registerFramedBlocksRecipes(event) + registerFTBQuestsRecipes(event) + registerGTCEURecipes(event) + registerHandGliderRecipes(event) + registerHotOrNotRecipes(event) + registerMegaCellsRecipes(event) + registerMERequesterRecipes(event) + registerMinecraftRecipes(event) + registerMoreRedRecipes(event) + registerRailWaysRecipes(event) + registerSophisticatedBackpacksRecipes(event) + registerTfceaRecipes(event) + registerTFCRecipes(event) + registerTFCGroomingStationRecipes(event) + registerToolBeltRecipes(event) + registerTreeTapRecipes(event) + registerWaterFlasksRecipes(event) +}) \ No newline at end of file diff --git a/kubejs/startup_scripts/main_startup_script.js b/kubejs/startup_scripts/main_startup_script.js index b36fa8b48..3cf9d793a 100644 --- a/kubejs/startup_scripts/main_startup_script.js +++ b/kubejs/startup_scripts/main_startup_script.js @@ -12,8 +12,7 @@ StartupEvents.registry('item', event => { */ StartupEvents.registry('block', event => { registerGTCEuBlocks(event) - - + registerTFGBlocks(event) }) /** @@ -31,7 +30,9 @@ ItemEvents.modification(event => {}) /** * Событие регистрации жидкостей. */ -StartupEvents.registry('fluid', event => {}) +StartupEvents.registry('fluid', event => { + registerTFGFluids(event) +}) /** * Событие регистрации типов рецептов. @@ -52,4 +53,4 @@ GTCEuStartupEvents.registry('gtceu:machine', event => { */ // TFGStartupEvents.materialInfo(event => { // registerGTCEuMaterialInfo(event) -// }) \ No newline at end of file +// }) diff --git a/kubejs/startup_scripts/minecraft/constants.js b/kubejs/startup_scripts/minecraft/constants.js index 329cfd31d..ca7218bb3 100644 --- a/kubejs/startup_scripts/minecraft/constants.js +++ b/kubejs/startup_scripts/minecraft/constants.js @@ -83,7 +83,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:prismarine_shard', // Эндстоун - 'minecraft:end_stone', + //'minecraft:end_stone', 'minecraft:end_stone_bricks', 'minecraft:end_stone_brick_stairs', 'minecraft:end_stone_brick_slab', @@ -491,8 +491,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:burn_pottery_sherd', // Шаблоны брони - 'minecraft:wayfinder_armor_trim_smithing_template', - 'minecraft:netherite_upgrade_smithing_template', + /*'minecraft:wayfinder_armor_trim_smithing_template', 'minecraft:dune_armor_trim_smithing_template', 'minecraft:snout_armor_trim_smithing_template', 'minecraft:shaper_armor_trim_smithing_template', @@ -507,7 +506,8 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:raiser_armor_trim_smithing_template', 'minecraft:wild_armor_trim_smithing_template', 'minecraft:sentry_armor_trim_smithing_template', - 'minecraft:ward_armor_trim_smithing_template', + 'minecraft:ward_armor_trim_smithing_template',*/ + 'minecraft:netherite_upgrade_smithing_template', // Свечи 'minecraft:candle', @@ -666,7 +666,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:honey_bottle', 'minecraft:honeycomb_block', 'minecraft:honey_block', - 'minecraft:chorus_fruit', + //'minecraft:chorus_fruit', 'minecraft:popped_chorus_fruit', 'minecraft:purpur_pillar', 'minecraft:purpur_block', @@ -700,7 +700,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:mushroom_stem', 'minecraft:brown_mushroom_block', 'minecraft:red_mushroom_block', - 'minecraft:dragon_egg', + //'minecraft:dragon_egg', 'minecraft:end_portal_frame', 'minecraft:mushroom_stew', 'minecraft:structure_void', @@ -766,8 +766,8 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:polished_blackstone_brick_stairs', 'minecraft:polished_blackstone_brick_slab', 'minecraft:polished_blackstone_brick_wall', - 'minecraft:netherrack', - 'minecraft:nether_bricks', + //'minecraft:netherrack', + //'minecraft:nether_bricks', 'minecraft:cracked_nether_bricks', 'minecraft:nether_brick_stairs', 'minecraft:nether_brick_slab', @@ -815,7 +815,7 @@ global.MINECRAFT_DISABLED_ITEMS = [ 'minecraft:wither_skeleton_skull', 'minecraft:weeping_vines', 'minecraft:crimson_roots', - 'minecraft:nether_brick', + //'minecraft:nether_brick', 'minecraft:nether_wart', 'minecraft:twisting_vines', 'minecraft:warped_fungus', diff --git a/kubejs/startup_scripts/tfg/blocks.js b/kubejs/startup_scripts/tfg/blocks.js new file mode 100644 index 000000000..e9fe4451b --- /dev/null +++ b/kubejs/startup_scripts/tfg/blocks.js @@ -0,0 +1,11 @@ +const registerTFGBlocks = (event) => { + + event.create('tfg:artificial_end_portal_frame') + .stoneSoundType() + .tagBlock('minecraft:mineable/pickaxe') + .requiresTool(true) + .fullBlock(true) + .item(item => { + item.modelJson({ parent: 'minecraft:block/end_portal_frame' }) + }) +} \ No newline at end of file diff --git a/kubejs/startup_scripts/tfg/fluids.js b/kubejs/startup_scripts/tfg/fluids.js new file mode 100644 index 000000000..0e475ab81 --- /dev/null +++ b/kubejs/startup_scripts/tfg/fluids.js @@ -0,0 +1,28 @@ +const registerTFGFluids = (event) => { + + event.create('tfg:nether_slurry') + .thickTexture(0x6b281b) + .bucketColor(0x6b281b) + .temperature(1000) + .luminosity(7) + .noBlock() + + event.create('tfg:enriched_nether_slurry') + .thickTexture(0x99594d) + .bucketColor(0x99594d) + .temperature(1000) + .luminosity(7) + .noBlock() + + event.create('tfg:ender_slurry') + .thickTexture(0x1b5c51) + .bucketColor(0x1b5c51) + .luminosity(2) + .noBlock() + + event.create('tfg:enriched_ender_slurry') + .thickTexture(0x3a9178) + .bucketColor(0x3a9178) + .luminosity(2) + .noBlock() +} \ No newline at end of file