Merge branch 'main' into create-additions
Signed-off-by: Pyritie <pyritie@gmail.com>
This commit is contained in:
108
.github/workflows/build.yml
vendored
108
.github/workflows/build.yml
vendored
@@ -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 }}) **
|
||||
** [Read more...](${{ needs.release-github.outputs.url }}) **
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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": "Доски из обработанного креозотом дерева"
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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$()."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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.`))
|
||||
})
|
||||
})
|
||||
|
||||
@@ -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', [
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -39,6 +39,8 @@ const registerGTCEUItemTags = (event) => {
|
||||
|
||||
event.add('tfg:stone_dusts', 'gtceu:stone_dust')
|
||||
|
||||
event.remove('minecraft:planks', 'gtceu:treated_wood_planks')
|
||||
|
||||
//#endregion
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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` })
|
||||
|
||||
@@ -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')
|
||||
|
||||
233
kubejs/server_scripts/tfg/terrariums.js
Normal file
233
kubejs/server_scripts/tfg/terrariums.js
Normal file
@@ -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')
|
||||
})
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
// })
|
||||
// })
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
11
kubejs/startup_scripts/tfg/blocks.js
Normal file
11
kubejs/startup_scripts/tfg/blocks.js
Normal file
@@ -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' })
|
||||
})
|
||||
}
|
||||
28
kubejs/startup_scripts/tfg/fluids.js
Normal file
28
kubejs/startup_scripts/tfg/fluids.js
Normal file
@@ -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()
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user