diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aecc5873a..468bc64fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,9 +9,6 @@ concurrency: group: ${{ github.workflow }} cancel-in-progress: true -permissions: - pull-requests: none - env: RELEASE_TYPE: "release" MINECRAFT_VERSION: "1.20.1" @@ -326,9 +323,59 @@ jobs: path: .pakku/multimc-overrides/${{ needs.info.outputs.project_full_name }}-multimc.zip if-no-files-found: error + release-github: + name: 🚀 Release to GitHub + needs: [info, build-modpack, build-server, build-multimc] + runs-on: ubuntu-latest + outputs: + url: ${{ steps.release.outputs.url }} + + steps: + - name: 📦 Checkout + uses: actions/checkout@v4.2.2 + + - name: 📦 Download artifact + uses: actions/download-artifact@v4.1.8 + with: + merge-multiple: true + + - name: 🚫 Сlose fixed in dev + uses: Xikaro/close-issues-based-on-label@master + env: + LABEL: "2. Status: In Dev" + COMMENT: In ${{ needs.info.outputs.project_version }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Format diff + id: format_diff + if: ${{ needs.info.outputs.diff != '' }} + uses: roamingowl/template-output-with-eta@v1.11.0 + with: + template: | + ```markdown + ${{ needs.info.outputs.diff }} + ``` + + - name: 🚀 Create release + id: release + uses: softprops/action-gh-release@v2.2.1 + with: + name: ${{ needs.info.outputs.project_version }} + tag_name: ${{ needs.info.outputs.project_version }} + body: | + ${{ needs.info.outputs.changelog }} + ${{ steps.format_diff.outputs.text }} + files: | + ${{ needs.info.outputs.project_full_name }}-curseforge.zip + ${{ needs.info.outputs.project_full_name }}-serverpack.zip + ${{ needs.info.outputs.project_full_name }}-multimc.zip + prerelease: ${{ needs.info.outputs.release_type != 'release' }} + generate_release_notes: true + token: ${{ secrets.GITHUB_TOKEN }} + release-curseforge: name: 🚀 Release to CurseForge - needs: [info, build-modpack, build-server] + needs: [info, build-modpack, build-server, release-github] runs-on: ubuntu-latest outputs: id: ${{ steps.release.outputs.id }} @@ -370,7 +417,7 @@ jobs: # release-modrinth: # name: 🚀 Release to Modrinth - # needs: [info, build-modpack, build-server] + # needs: [info, build-modpack, build-server, release-github] # runs-on: ubuntu-latest # steps: @@ -406,55 +453,6 @@ jobs: # server-display-name: ${{ needs.info.outputs.project_full_name }}-serverpack # release-type: ${{ needs.info.outputs.release_type }} - release-github: - name: 🚀 Release to GitHub - needs: [info, build-modpack, build-server, build-multimc] - runs-on: ubuntu-latest - outputs: - url: ${{ steps.release.outputs.url }} - - steps: - - name: 📦 Checkout - uses: actions/checkout@v4.2.2 - - - name: 📦 Download artifact - uses: actions/download-artifact@v4.1.8 - with: - merge-multiple: true - - - name: 🚫 Сlose fixed in dev - uses: Xikaro/close-issues-based-on-label@master - env: - LABEL: "2. Status: In Dev" - COMMENT: In ${{ needs.info.outputs.project_version }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Format diff - id: format_diff - if: ${{ needs.info.outputs.diff != '' }} - uses: roamingowl/template-output-with-eta@v1.11.0 - with: - template: | - ```markdown - ${{ needs.info.outputs.diff }} - ``` - - - name: 🚀 Create release - id: release - uses: softprops/action-gh-release@v2.1.0 - with: - name: ${{ needs.info.outputs.project_version }} - tag_name: ${{ needs.info.outputs.project_version }} - body: | - ${{ needs.info.outputs.changelog }} - ${{ steps.format_diff.outputs.text }} - files: | - ${{ needs.info.outputs.project_full_name }}-curseforge.zip - ${{ needs.info.outputs.project_full_name }}-serverpack.zip - ${{ needs.info.outputs.project_full_name }}-multimc.zip - prerelease: ${{ needs.info.outputs.release_type != 'release' }} - generate_release_notes: true - token: ${{ secrets.GITHUB_TOKEN }} discord-message: name: 📱 Discord Message @@ -484,4 +482,4 @@ jobs: ```markdown ${{ steps.truncated.outputs.text }} - ...``` - ** [Read more...](${{ needs.release-github.outputs.url }}) ** \ No newline at end of file + ** [Read more...](${{ needs.release-github.outputs.url }}) ** diff --git a/CHANGELOG.md b/CHANGELOG.md index d8f7ea01d..7de39dfa1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [0.7.17] - ? +### Changes +- Added ore index, started work on other TFC info category (Pyritie). + ## [0.7.16] - 12.01.2025 ### Changes - Removed links for excel spreadsheet ore gen (Pyritie). @@ -11,6 +15,11 @@ - Craft recipe for framed chest so it isn't cheaper then the alternatives (Juzrm). - RU_RU translation for tfc guide book (recently added pages) (8oyNextDoor). - Based gas multiblocks, more suffering! (Pyritie). +- Creosote treated planks fixes (Pyritie). +- Fixed mixer recipes for red/blue steel (Pyritie). +- Added another recipe for Create's electron tubes (Pyritie). +- Electric cheese, tomato sauce and cream (Saaghh). +- Leather producting using GTM machines (Saaghh). ## [0.7.15] - 08.01.2025 ### Changes diff --git a/kubejs/assets/gtceu/lang/en_us.json b/kubejs/assets/gtceu/lang/en_us.json index 2aa6312fc..a9bbbd31c 100644 --- a/kubejs/assets/gtceu/lang/en_us.json +++ b/kubejs/assets/gtceu/lang/en_us.json @@ -6,10 +6,16 @@ "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", + "gtceu.create_mixer": "Kinetic Mixer", "block.gtceu.lv_kinetic_mixer": "Basic Kinetic Mixer", "block.gtceu.mv_kinetic_mixer": "Advanced Kinetic Mixer", "block.gtceu.hv_kinetic_mixer": "Advanced Kinetic Mixer II", @@ -49,4 +55,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/categories/tfg_tips.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg_tips.json index d390c9ee9..eed90bbe8 100644 --- a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg_tips.json +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/categories/tfg_tips.json @@ -1,6 +1,6 @@ { "name": "TFG Info & Tips", - "description": "Differences in TerraFirmaGreg that are different from base TFC and GTCEu.$(br2)Stuck on something? Try looking in this book first or in the quests, and if you're still stumped, you can ask on our $(l:https://discord.com/invite/AEaCzCTUwQ)Discord$() or $(l:https://www.reddit.com/r/TerraFirmaGreg)Subreddit$()!", + "description": "Information about things in TerraFirmaGreg that are different from base TFC and GTCEu.", "icon": "gtceu:basic_electronic_circuit", "sortnum": 200 } 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..de92fcfc6 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/faqs.json @@ -0,0 +1,48 @@ +{ + "name": "Frequently Asked Questions", + "icon": "minecraft:spyglass", + "category": "tfc:tfg_tips", + "read_by_default": true, + "priority": true, + "pages": + [ + { + "type": "patchouli:text", + "title": "FAQs", + "text": "Stuck on something? Try looking through this book first and in the quests, but if you're still stumped, you can ask on our $(l:https://discord.com/invite/AEaCzCTUwQ)Discord$() or $(l:https://www.reddit.com/r/TerraFirmaGreg)Subreddit$()!" + }, + { + "type": "patchouli:text", + "text": "$(li)$(l:tfg_tips/faqs#boats)Why did my boat sink?$()$(li)$(l:tfg_tips/faqs#dried_fruit)How do I make yeast starter?$()$(li)$(l:tfg_tips/faqs#dried_fruit)How do I make pineapple fiber?$()$(li)$(l:tfg_tips/faqs#jam)How do I make jam?$()$(li)$(l:tfg_tips/faqs#resin)How do I make Sticky Resin?$()$(li)$(l:tfg_tips/faqs#chunks)How do I force-load a chunk or increase my limit?$()" + }, + { + "type": "patchouli:text", + "anchor": "boats", + "text": "$(italic)Why did my boat sink?$()$(br2)Build your boat on land, then push it or use a $(item)Lead$() to launch it. If it's already sunk, too bad, make another one." + }, + { + "type": "patchouli:text", + "anchor": "dried_fruit", + "text": "$(italic)How do I make yeast starter or pineapple fiber?$()$(br2)Make sure you dry the fruit first using a $(item)Drying Mat$(). Then follow the rest of the steps for $(l:firmalife/bread)bread$() or $(l:firmalife/berry_bushes)pineapple leather$()." + }, + { + "type": "patchouli:text", + "anchor": "jam", + "text": "$(italic)How do I make jam?$()$(br2)It's easiest with a $(l:firmalife/oven_appliances#vat)Vat$(). Follow the steps in that section, but you don't need to make a $(thing)Jarring Station$() or $(thing)Lids$() unless you want to automate it. Just right-click the Vat of $(thing)Fruity Fluid$() with an empty jar, then right-click it again to take it out, and it should be full of jam and sealed.$(br2)Make sure you $(bold)close the lid$() on the Vat with $(item)$(k:sneak)$() + $(item)$(k:use)$()!" + }, + { + "type": "patchouli:text", + "anchor": "chunks", + "text": "$(italic)How do I force-load a chunk?$()$(br2)Open your map with $(item)$(k:gui.xaero_open_map)$(), then right-click the chunk > $(thing)Claim Selected$(). Right-click a claimed chunk again > $(thing)Forceload Selected$().$(br2)To increase the number of forceloaded chunks, press $(item)$(k:gui.xaero_pac_key_open_menu)$(), then go to the player settings and increase the number of bonus chunk forceloads." + }, + { + "type": "patchouli:text", + "anchor": "resin", + "text": "$(italic)How do I make sticky resin?$()$(br2)First, grow some $(thing)Kapok$() trees and make some $(thing)Tree Taps$(). Place a tree tap on the main trunk of each kapok tree (more taps on a tree just splits the output). Right-click each tree tap with an empty $(thing)Wooden Bucket$(), then wait for the correct season (Feb-Oct, excluding July). When the bucket is full, $(item)$(k:use)$() it with an $(thing)empty hand$(). You can automate this with a $(l:mechanics/pumps)Mechanical Pump$() on the bucket, if you'd like." + }, + { + "type": "patchouli:text", + "text": "It's quickest to cook your latex in a $(l:firmalife/oven_appliances#vat)Vat$(). Combine your latex with $(item)Sulfur$() dust in the vat (put the GregTech one in a Quern to get the TFC one), add heat, and $(bold)close the lid$() on the Vat with $(item)$(k:sneak)$() + $(item)$(k:use)$().$(br2)You can automate this later with the $(thing)LV Centrifuge$()." + } + ] +} \ No newline at end of file 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..b2824f969 --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/infinite_resources.json @@ -0,0 +1,55 @@ +{ + "name": "Infinite Resources?!", + "icon": "minecraft:lava_bucket", + "category": "tfc:tfg_tips", + "read_by_default": true, + "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$(), and $(thing)Silicon Dioxide$().$(br2)Lava can also be used as $(item)infinite, free fuel$() for your steam boilers!" + }, + { + "type": "patchouli:spotlight", + "title": "Stone Dusts", + "item": { "tag": "tfg:stone_dusts" }, + "text": "The other source of infinite resources is through $(thing)Stone Dusts$(). You can obtain infinite raw rock through a $(item)Rock Crusher$(), and then macerate it into different dusts.$(br2)These stone dusts can then be centrifuged into different resources (though most require $(thing)MV$()). Most of them give Silicon Dioxide and Oxygen, so only other resources will be listed. " + }, + { + "type": "patchouli:text", + "title": "Sedimentary", + "text": "$(thing)Shale$(): Sodium, Metal Mixture$(br)$(thing)Claystone$(): Aluminium, Hematite$(br)$(thing)Limestone$(): Calcium, Metal Mixture$(br)$(thing)Conglomerate$(): Tricalcium Phosphate, Hematite$(br)$(thing)Dolomite$(): Magnesium, Calcium, Metal Mixture$(br)$(thing)Chert$(): Metal Mixture$(br)$(thing)Chalk$(): Calcium, Carbon, Metal Mixture" + }, + { + "type": "patchouli:text", + "title": "Metamorphic", + "text": "$(thing)Quartzite$(): Nothing$(br)$(thing)Slate$(): Metal Mixture$(br)$(thing)Phyllite$(): Calcium Chloride$(br)$(thing)Schist$(): Mica (Fluorine), Talc (Magnesium), Graphite, Metal Mixture$(br)$(thing)Gneiss$(): Biotite (Fluorine)$(br)$(thing)Marble$(): Magnesium, Calcite" + }, + { + "type": "patchouli:text", + "title": "Igneous Intrusive", + "text": "$(thing)Granite$(): Calcite, Flint$(br)$(thing)Gabbro$(): Titanium, Iron, Metal Mixture$(br)$(thing)Diorite$(): Clay, Aluminium, Sulfur, Sodium, Lithium" + }, + { + "type": "patchouli:text", + "title": "Igneous Extrusive", + "text": "$(thing)Rhyolite$(): Metal Mixture$(br)$(thing)Basalt$(): Olivine, Calcite, Flint, Dark Ashes$(br)$(thing)Andesite$(): Asbestos, Saltpeter$(br)$(thing)Dacite$(): Sodium, Calcium, Aluminium, Metal Mixture" + }, + { + "type": "patchouli:spotlight", + "title": "Dimensional Terrariums", + "item": "gtceu:nether_dome,gtceu:end_dome", + "text": "Later on, you'll be able to use the $(item)Netherarium$() and $(item)Enderarium$() to make $(thing)Redstone$(), $(thing)Nether Quartz$(), and $(thing)Ender Pearls$() renewable." + } + ] +} \ No newline at end of file diff --git a/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/lv_machines.json b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/lv_machines.json new file mode 100644 index 000000000..20814fe0d --- /dev/null +++ b/kubejs/assets/tfc/patchouli_books/field_guide/en_us/entries/tfg_tips/lv_machines.json @@ -0,0 +1,79 @@ +{ + "name": "Which LV machine first?", + "icon": "gtceu:lv_machine_hull", + "category": "tfc:tfg_tips", + "read_by_default": true, + "pages": + [ + { + "type": "patchouli:text", + "text": "So you've finally made a batch of colored steel and are ready to make your first step into $(thing)LV$(). The obvious first choice for an LV machine is a $(item)Steam Generator$(), but what about after that? There's so many options!$(br2)There's no simple answer to this, because it's subjective, but you should think of which part of progressing is the most painful and make the machine that helps the most with that.$(br)" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:lv_mixer", + "title": "Mixer", + "text": "The $(item)Mixer$() makes colored steel much cheaper.$(br2)The kinetic mixer requires both SU and EU (and has a high stress impact and needs to run at 64 RPM), but runs twice as fast as the pure electric one.$(br)Whether that's worth the bother is up to you!$(br2)It also has a recipe to make $(thing)Glowstone$().$(br)" + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:lv_assembler", + "title": "Assembler", + "text": "The $(item)Assembler$() is a very expensive machine, but can make LV casings just out of 8 steel (though this will likely change in future versions) and cheaper electronic components like $(thing)Vacuum Tubes$() and $(thing)Resistors$()." + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:lv_bender", + "title": "Bender", + "text": "The $(item)Bender$() can make 1:1 $(thing)Plates$() out of a single ingot. Finally, no more gambling with the Mechanical Press!$(br2)It can also make $(thing)Thin Sheets$() for things like a $(l:tfg_tips/infinite_resources)Hose Pulley$()." + }, + { + "type": "patchouli:spotlight", + "item": "gtceu:lv_wiremill", + "title": "Wiremill", + "text": "The $(item)Wiremill$() halves the cost of $(thing)Wire$(). Not much else to say here, except that there's no such thing as too many copper wires or tin cables." + }, + { + "type": "patchouli:spotlight", + "title": "Chem Reactor/Solidifer", + "item": "gtceu:lv_chemical_reactor,gtceu:lv_fluid_solidifier", + "text": "The $(item)Chemical Reactor$() makes much cheaper $(thing)Rubber$() which the $(item)Fluid Solidifier$() can turn into cheaper $(thing)Rubber Sheets$(), and can also make cheaper $(thing)Rotors$().$(br2)The $(item)Extractor$() is also useful paired up with the Fluid Solidifier, and is a big upgrade over the steam one because it can make metal fluids." + }, + { + "type": "patchouli:spotlight", + "title": "Centrifuge", + "item": "gtceu:lv_centrifuge", + "text": "The $(item)Centrifuge$() makes $(thing)Sticky Resin$() directly from Kapok logs, and much cheaper $(thing)Raw Rubber$() as well. No more latex!" + }, + { + "type": "patchouli:spotlight", + "title": "Polarizer", + "item": "gtceu:lv_polarizer", + "text": "The $(item)Polarizer$() makes $(thing)Magnetic Rods$() basically for free. If you're short on redstone, this is a good first machine, and it's dirt cheap too." + }, + { + "type": "patchouli:spotlight", + "title": "Miner", + "item": "gtceu:lv_miner", + "text": "Put the $(item)Miner$() (or multiple!) down over an ore vein, bring along a boiler, steam generator, water, and fuel, and then just chunk load it and walk away. No need to ever go mining again!" + }, + { + "type": "patchouli:spotlight", + "title": "Chemical Bath", + "item": "gtceu:lv_chemical_bath", + "text": "The $(item)Chemical Bath$() makes cheaper paper. That's about it. And once you have an $(thing)Assembler$() you won't need paper any more anyway.$(br2)It can also automate most of the steps to make $(thing)Leather$() if you're tired of barrels." + }, + { + "type": "patchouli:spotlight", + "title": "Arc Furnace", + "item": "gtceu:lv_arc_furnace", + "text": "It's not a good first machine, but the $(item)Arc Furnace$() can turn Cast Iron directly into $(thing)Wrought Iron$(), Sand into $(thing)Glass$(), and Copper into $(thing)Annealed Copper$(). All of its recipes need $(thing)Oxygen$() though, so it's useless without an $(item)Electrolyzer$() or $(item)Centrifuge$()." + }, + { + "type": "patchouli:spotlight", + "title": "Extruder", + "item": "gtceu:lv_extruder", + "text": "This is only here as a warning: do not make the $(item)Extruder$(). The only thing it can do is make tools and Thin Rubber Sheets (which the Bender can also do). All of the good extruder recipes are gated to $(thing)MV$() onwards." + } + ] +} \ 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 820683e04..742a8085c 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.')]) }) @@ -29,6 +32,14 @@ ItemEvents.tooltip(event => { text.add(3, text.of(`§cRequires 256 RPM to run.§r`)) }) event.addAdvanced(['create:blaze_burner'], (item, advanced, text) => { - text.add(1, text.of('§cSuperheat§r with Flawless and Exquisite coal gems.')) - }) + text.add(1, text.of('§cSuperheat§r with Flawless and Exquisite coal gems.')) + }) + 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/create/recipes.js b/kubejs/server_scripts/create/recipes.js index 42535a6ac..66325f06f 100644 --- a/kubejs/server_scripts/create/recipes.js +++ b/kubejs/server_scripts/create/recipes.js @@ -809,12 +809,34 @@ const registerCreateRecipes = (event) => { 'DED' ], { A: 'gtceu:glass_tube', - B: 'gtceu:resistor', + B: '#gtceu:resistors', C: 'gtceu:resin_circuit_board', D: 'gtceu:red_alloy_single_wire', E: '#forge:plates/wrought_iron' }).id('tfg:create/shaped/electron_tube') + event.shaped('2x create:electron_tube', [ + ' A ', + 'BCB', + 'DED' + ], { + A: 'gtceu:glass_tube', + B: '#gtceu:resistors', + C: 'gtceu:plastic_circuit_board', + D: 'gtceu:red_alloy_single_wire', + E: '#forge:plates/wrought_iron' + }).id('tfg:create/shaped/electron_tube2') + + event.shaped('3x create:electron_tube', [ + ' A ', + ' B ', + ' C ' + ], { + A: 'gtceu:glass_tube', + B: 'gtceu:nand_chip', + C: '#forge:plates/wrought_iron' + }).id('tfg:create/shaped/electron_tube3') + // Тюбик с клеем event.shaped('create:super_glue', [ 'BA', @@ -1189,13 +1211,13 @@ const registerCreateRecipes = (event) => { //#region Механизм точности event.recipes.gtceu.assembler('tfg:create/precision_mechanism') - .itemInputs('#forge:sheets/gold','3x create:cogwheel', '3x create:large_cogwheel', '3x #forge:nuggets/iron') - .itemOutputs('create:precision_mechanism') - .duration(2000) - .EUt(20) + .itemInputs('#forge:sheets/gold','3x create:cogwheel', '3x create:large_cogwheel', '3x #forge:nuggets/iron') + .itemOutputs('create:precision_mechanism') + .duration(2000) + .EUt(20) //#endregion - + //#region Blaze burner event.shaped('create:blaze_burner', [ diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 48558c399..efc23aff1 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) @@ -1273,16 +1272,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 Рецепты, которые итерируются по всем материалам @@ -1461,8 +1526,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( @@ -1713,5 +1781,18 @@ const registerGTCEURecipes = (event) => { .itemOutputs('gtceu:quantum_processor_mainframe') .duration(800) .EUt(7680) - //#endregion + //#endregion + + // #region fix mixer recipes for colored steel + + event.replaceInput({id: 'gtceu:mixer/red_steel'}, 'gtceu:sterling_silver_dust', 'gtceu:rose_gold_dust') + event.replaceInput({id: 'gtceu:create_mixer/red_steel'}, 'gtceu:sterling_silver_dust', 'gtceu:rose_gold_dust') + event.replaceInput({id: 'gtceu:mixer/red_steel'}, 'gtceu:bismuth_bronze_dust', 'gtceu:brass_dust') + event.replaceInput({id: 'gtceu:create_mixer/red_steel'}, 'gtceu:bismuth_bronze_dust', 'gtceu:brass_dust') + event.replaceInput({id: 'gtceu:mixer/blue_steel'}, 'gtceu:rose_gold_dust', 'gtceu:sterling_silver_dust') + event.replaceInput({id: 'gtceu:create_mixer/blue_steel'}, 'gtceu:rose_gold_dust', 'gtceu:sterling_silver_dust') + event.replaceInput({id: 'gtceu:mixer/blue_steel'}, 'gtceu:brass_dust', 'gtceu:bismuth_bronze_dust') + event.replaceInput({id: 'gtceu:create_mixer/blue_steel'}, 'gtceu:brass_dust', 'gtceu:bismuth_bronze_dust') + + // #endregion } diff --git a/kubejs/server_scripts/gregtech/tags.js b/kubejs/server_scripts/gregtech/tags.js index 23f04da80..6917a4e25 100644 --- a/kubejs/server_scripts/gregtech/tags.js +++ b/kubejs/server_scripts/gregtech/tags.js @@ -39,6 +39,8 @@ const registerGTCEUItemTags = (event) => { event.add('tfg:stone_dusts', 'gtceu:stone_dust') + event.remove('minecraft:planks', 'gtceu:treated_wood_planks') + //#endregion } 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/tfc/recipes.js b/kubejs/server_scripts/tfc/recipes.js index 2cb401eb8..2e35f8952 100644 --- a/kubejs/server_scripts/tfc/recipes.js +++ b/kubejs/server_scripts/tfc/recipes.js @@ -3044,6 +3044,140 @@ const registerTFCRecipes = (event) => { //#endregion + //#region СЫЫЫР 0_0 + + // Rennet + event.recipes.gtceu.fermenter('tfg:fermenter/vegetable_rennet') + .itemInputs('#tfg:ferments_to_rennet') + .itemOutputs('firmalife:rennet') + .duration(400) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/biomass_rennet') + .inputFluids(Fluid.of('gtceu:fermented_biomass', 100)) + .itemOutputs('firmalife:rennet') + .duration(2400) + .EUt(16) + + // Curdled milk + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_milk') + .inputFluids(Fluid.of('minecraft:milk', 1000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('tfc:curdled_milk')) + .duration(2400) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_yak_milk') + .inputFluids(Fluid.of('firmalife:yak_milk', 1000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('firmalife:curdled_yak_milk')) + .duration(2400) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/curdled_goat_milk') + .inputFluids(Fluid.of('firmalife:goat_milk', 1000)) + .itemInputs('firmalife:rennet') + .outputFluids(Fluid.of('firmalife:curdled_goat_milk')) + .duration(2400) + .EUt(16) + + //Curds + event.recipes.gtceu.fermenter('tfg:fermenter/milk_curd') + .inputFluids(Fluid.of('tfc:curdled_milk', 1000)) + .itemOutputs('firmalife:food/milk_curd') + .duration(1200) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/yak_curd') + .inputFluids(Fluid.of('firmalife:curdled_yak_milk', 1000)) + .itemOutputs('firmalife:food/yak_curd') + .duration(1200) + .EUt(16) + + event.recipes.gtceu.fermenter('tfg:fermenter/goat_curd') + .inputFluids(Fluid.of('firmalife:curdled_goat_milk', 1000)) + .itemOutputs('firmalife:food/goat_curd') + .duration(1200) + .EUt(16) + + // Cheese wheels + event.recipes.gtceu.fermenter('tfg:fermenter/gouda_wheel') + .inputFluids(Fluid.of('tfc:salt_water', 750)) + .itemInputs('3x firmalife:food/milk_curd') + .itemOutputs('firmalife:gouda_wheel') + .duration(12000) + .EUt(24) + + event.recipes.gtceu.fermenter('tfg:fermenter/shosha_wheel') + .inputFluids(Fluid.of('tfc:salt_water', 750)) + .itemInputs('3x firmalife:food/yak_curd') + .itemOutputs('firmalife:shosha_wheel') + .duration(12000) + .EUt(24) + + event.recipes.gtceu.fermenter('tfg:fermenter/feta_wheel') + .inputFluids(Fluid.of('tfc:salt_water', 750)) + .itemInputs('3x firmalife:food/goat_curd') + .itemOutputs('firmalife:feta_wheel') + .duration(12000) + .EUt(24) + + // Cutting + event.recipes.gtceu.cutter('tfg:cutter/gouda') + .itemInputs('firmalife:gouda_wheel') + .itemOutputs('4x firmalife:food/gouda') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/shosha') + .itemInputs('firmalife:shosha_wheel') + .itemOutputs('4x firmalife:food/shosha') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/feta') + .itemInputs('firmalife:feta_wheel') + .itemOutputs('4x firmalife:food/feta') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/cheddar') + .itemInputs('firmalife:cheddar_wheel') + .itemOutputs('4x firmalife:food/cheddar') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/chevre') + .itemInputs('firmalife:chevre_wheel') + .itemOutputs('4x firmalife:food/chevre') + .duration(40) + .EUt(28) + + event.recipes.gtceu.cutter('tfg:cutter/rajya_metok') + .itemInputs('firmalife:rajya_metok_wheel') + .itemOutputs('4x firmalife:food/rajya_metok') + .duration(40) + .EUt(28) + + // Misc + global.TFC_MILKS.forEach(milk => { + event.recipes.gtceu.fermenter(`tfg:fermenter/cream_from_${milk.id.replace(':', '_')}`) + .inputFluids(Fluid.of(milk.id, 1000)) + .outputFluids(Fluid.of('firmalife:cream')) + .duration(1200) + .EUt(24) + }) + + event.recipes.gtceu.mixer('tfg:mixer/tomato_sauce') + .itemInputs('firmalife:food/tomato_sauce_mix') + .inputFluids(Fluid.of('minecraft:water', 200)) + .itemOutputs('firmalife:food/tomato_sauce') + .duration(200) + .EUt(24) + + + //endregion + //#region Оливки event.recipes.gtceu.macerator(`tfg:tfc/olive_paste`) @@ -3074,6 +3208,121 @@ const registerTFCRecipes = (event) => { // А где? //#endregion + // Бумага + event.recipes.gtceu.cutter('tfg:unrefined_paper') + .itemInputs('tfc:unrefined_paper') + .itemOutputs('minecraft:paper') + .duration(100) + .EUt(16) + + // Limewater + event.recipes.gtceu.mixer('tfg:limewater_from_lime') + .itemInputs('tfc:powder/lime') + .inputFluids(Fluid.of('water', 500)) + .outputFluids(Fluid.of('tfc:limewater', 500)) + .duration(20) + .EUt(16) + + event.recipes.gtceu.mixer('tfg:limewater_from_flux') + .itemInputs('tfc:powder/flux') + .inputFluids(Fluid.of('water', 500)) + .outputFluids(Fluid.of('tfc:limewater', 500)) + .duration(20) + .EUt(16) + + // Tannin + event.recipes.gtceu.chemical_bath('tfg:tannin') + .itemInputs('#tfc:makes_tannin') + .inputFluids(Fluid.of('water', 1000)) + .outputFluids(Fluid.of('tfc:tannin', 1000)) + .duration(2400) + .EUt(16) + + // Soaked hides + event.recipes.gtceu.chemical_bath('tfg:small_soaked_hide') + .itemInputs('tfc:small_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 300)) + .itemOutputs('tfc:small_soaked_hide') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_soaked_hide') + .itemInputs('tfc:medium_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 400)) + .itemOutputs('tfc:medium_soaked_hide') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_soaked_hide') + .itemInputs('tfc:large_raw_hide') + .inputFluids(Fluid.of('tfc:limewater', 500)) + .itemOutputs('tfc:large_soaked_hide') + .duration(3200) + .EUt(16) + + // Scraped Hides + event.recipes.gtceu.cutter('tfg:small_scraped_hide') + .itemInputs('tfc:small_soaked_hide') + .itemOutputs('tfc:small_scraped_hide') + .duration(100) + .EUt(16) + + event.recipes.gtceu.cutter('tfg:medium_scraped_hide') + .itemInputs('tfc:medium_soaked_hide') + .itemOutputs('tfc:medium_scraped_hide') + .duration(100) + .EUt(16) + + event.recipes.gtceu.cutter('tfg:large_scraped_hide') + .itemInputs('tfc:large_soaked_hide') + .itemOutputs('tfc:large_scraped_hide') + .duration(100) + .EUt(16) + + // Prepared hides + event.recipes.gtceu.chemical_bath('tfg:small_prepared_hide') + .itemInputs('tfc:small_soaked_hide') + .inputFluids(Fluid.of('water', 300)) + .itemOutputs('tfc:small_prepared_hide') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_prepared_hide') + .itemInputs('tfc:medium_soaked_hide') + .inputFluids(Fluid.of('water', 400)) + .itemOutputs('tfc:medium_prepared_hide') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_prepared_hide') + .itemInputs('tfc:large_soaked_hide') + .inputFluids(Fluid.of('water', 500)) + .itemOutputs('tfc:large_prepared_hide') + .duration(3200) + .EUt(16) + + // Leather + event.recipes.gtceu.chemical_bath('tfg:small_leather') + .itemInputs('tfc:small_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 300)) + .itemOutputs('minecraft:leather') + .duration(1600) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:medium_leather') + .itemInputs('tfc:medium_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 400)) + .itemOutputs('2x minecraft:leather') + .duration(2400) + .EUt(16) + + event.recipes.gtceu.chemical_bath('tfg:large_leather') + .itemInputs('tfc:large_prepared_hide') + .inputFluids(Fluid.of('tfc:tannin', 500)) + .itemOutputs('3x minecraft:leather') + .duration(3200) + .EUt(16) + // Другое event.remove({ id: `tfc:crafting/trip_hammer` }) event.remove({ id: `tfc:anvil/steel_pump` }) diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index a746d2c62..9b9f50d93 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -29,6 +29,11 @@ const registerTFCItemTags = (event) => { event.add('tfc:usable_on_tool_rack', '#forge:tools/chainsaws') event.add('tfc:usable_on_tool_rack', '#forge:tools/buzzsaws') event.add('tfc:usable_on_tool_rack', '#forge:tools/drills') + + // Ингредиенты для закваски + event.add('tfg:ferments_to_rennet', 'tfc:food/soybean') + event.add('tfg:ferments_to_rennet', 'firmalife:food/fig') + event.add('tfg:ferments_to_rennet', 'tfc:plant/ivy') // Для складывания event.add('tfc:pileable_ingots', '#forge:ingots') 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 0b70a2ce2..3911cfed7 100644 --- a/kubejs/startup_scripts/gtceu/machines.js +++ b/kubejs/startup_scripts/gtceu/machines.js @@ -15,7 +15,14 @@ const registerGTCEuMachines = (event) => { .aisle("CCCYCCC", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", "XXXFXXX", " F ") .where('X', Predicates.blocks('ae2:quartz_glass')) .where('F', Predicates.frames('steel')) - .where('D', Predicates.blocks('tfc:dirt/silt').or(Predicates.blocks('tfc:dirt/loam')).or(Predicates.blocks('tfc:dirt/sandy_loam')).or(Predicates.blocks('tfc:dirt/silty_loam')).or(Predicates.blocks('tfc:grass/silt')).or(Predicates.blocks('tfc:grass/loam')).or(Predicates.blocks('tfc:grass/sandy_loam')).or(Predicates.blocks('tfc:grass/silty_loam'))) + .where('D', Predicates.blocks('tfc:dirt/silt') + .or(Predicates.blocks('tfc:dirt/loam')) + .or(Predicates.blocks('tfc:dirt/sandy_loam')) + .or(Predicates.blocks('tfc:dirt/silty_loam')) + .or(Predicates.blocks('tfc:grass/silt')) + .or(Predicates.blocks('tfc:grass/loam')) + .or(Predicates.blocks('tfc:grass/sandy_loam')) + .or(Predicates.blocks('tfc:grass/silty_loam'))) .where('C', Predicates.blocks('gtceu:steel_machine_casing').or(Predicates.autoAbilities(definition.getRecipeTypes()))) .where('#', Predicates.air()) .where(' ', Predicates.any()) @@ -23,7 +30,8 @@ const registerGTCEuMachines = (event) => { .build() ) .workableCasingRenderer('gtceu:block/casings/solid/machine_casing_solid_steel', 'gtceu:block/multiblock/implosion_compressor', false) - + + event.create('alternator', 'multiblock') .rotationState(RotationState.NON_Y_AXIS) .recipeType('alternator') @@ -34,28 +42,186 @@ const registerGTCEuMachines = (event) => { .where('A', Predicates.controller(Predicates.blocks(definition.get()))) .where('W', Predicates.blocks(GTBlocks.COIL_CUPRONICKEL.get())) .where("C", Predicates.blocks(GTBlocks.CASING_STEEL_SOLID.get()) - .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setExactLimit(1))) + .or(Predicates.abilities(PartAbility.IMPORT_ITEMS).setExactLimit(1))) .where('#', Predicates.any()) .where('K', Predicates.abilities(PartAbility.INPUT_KINETIC).setExactLimit(1)) .where('E', Predicates.abilities(PartAbility.OUTPUT_ENERGY).setExactLimit(1)) .build() ) - .shapeInfo(controller => MultiblockShapeInfo.builder() - .aisle("CCC", "CkC", " C ") - .aisle("WWW", "W W", "WWW") - .aisle("iAC", "CeC", " C ") - .where('A', controller, Direction.SOUTH) - .where('C', GTBlocks.CASING_STEEL_SOLID.get()) - .where(' ', Block.getBlock('minecraft:air')) - .where('W', GTBlocks.COIL_CUPRONICKEL.get()) - .where('k', Block.getBlock('gtceu:lv_kinetic_input_box')) - .where('e', GTMachines.ENERGY_OUTPUT_HATCH[GTValues.LV], Direction.SOUTH) - .where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.LV], Direction.SOUTH) - .build() - ) + .shapeInfo(controller => MultiblockShapeInfo.builder() + .aisle("CCC", "CkC", " C ") + .aisle("WWW", "W W", "WWW") + .aisle("iAC", "CeC", " C ") + .where('A', controller, Direction.SOUTH) + .where('C', GTBlocks.CASING_STEEL_SOLID.get()) + .where(' ', Block.getBlock('minecraft:air')) + .where('W', GTBlocks.COIL_CUPRONICKEL.get()) + .where('k', Block.getBlock('gtceu:lv_kinetic_input_box')) + .where('e', GTMachines.ENERGY_OUTPUT_HATCH[GTValues.LV], Direction.SOUTH) + .where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.LV], Direction.SOUTH) + .build() + ) .workableCasingRenderer( "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 + ) } 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_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/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 973c20ab7..5b91aaa30 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -1060,6 +1060,13 @@ global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS = [ { input: 'tfc:plant/cranberry_bush', fluid_amount: 6000, output: '3x tfc:food/cranberry', name: 'cranberry' }, ]; +global.TFC_MILKS = [ + {id: 'minecraft:milk'}, + {id: 'firmalife:yak_milk'}, + {id: 'firmalife:goat_milk'}, + {id: 'firmalife:coconut_milk'}, +]; + global.calcAmountOfMetal = (defaultAmount, percents) => { const value = defaultAmount / (100 / percents) return (value % 2 == 0) ? value : Math.round(value) - 1 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 diff --git a/pakku.json b/pakku.json index ef5602af5..ea22ac9a0 100644 --- a/pakku.json +++ b/pakku.json @@ -1,6 +1,6 @@ { "name": "TerraFirmaGreg-Modern", - "version": "0.7.15", + "version": "0.7.16", "description": "An innovative modpack that contains GregTech and TerraFirmaCraft on 1.20.x.", "author": "Exception, Xikaro", "overrides": [ @@ -188,4 +188,4 @@ "side": "CLIENT" } } -} \ No newline at end of file +}