Merge branch 'main' into main

Signed-off-by: Pyritie <pyritie@gmail.com>
This commit is contained in:
Pyritie 2025-01-12 08:48:23 +00:00 committed by GitHub
commit 1c55351bfc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 1016 additions and 94 deletions

View file

@ -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 }}) **

View file

@ -11,6 +11,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.
## [0.7.15] - 08.01.2025
### Changes

View file

@ -6,6 +6,11 @@
"block.gtceu.alternator": "Alternator",
"gtceu.alternator": "Alternator",
"block.gtceu.nether_dome": "Netherarium",
"gtceu.nether_dome": "Netherarium",
"block.gtceu.end_dome": "Enderarium",
"gtceu.end_dome": "Enderarium",
"material.treated_wood": "Creosote-Treated Wood",
"block.gtceu.treated_wood_planks": "Creosote-Treated Wood Planks",
@ -50,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"
}
}

View file

@ -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": "Доски из обработанного креозотом дерева"

View file

@ -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"
}
}
}
]
}

View file

@ -1,4 +1,7 @@
ItemEvents.tooltip(event => {
event.addAdvanced(['tfc:red_kaolin_clay','tfc:pink_kaolin_clay','tfc:white_kaolin_clay','gtceu:brass_block'], (item, advanced, text) => {
text.add(1, [text.of('Used in glassblowing as a replacement for Brass Plated Blocks')])
})
event.addAdvanced(['gtceu:lv_macerator','gtceu:mv_macerator', 'gtceu:hp_steam_macerator'], (item, advanced, text) => {
text.add(1, [text.of('Only outputs the first slot shown in EMI/JEI until HV.')])
})
@ -23,4 +26,12 @@ ItemEvents.tooltip(event => {
event.addAdvanced(['firmalife:beehive'], (item, advanced, text) => {
text.add(1, [text.of('Needs to be filled with empty frames and surrounded by flowers to attract bees.')])
})
event.addAdvanced(['gtceu:nether_dome'], (item, advanced, text) => {
text.add(1, text.of('Artificial enviroment to simulate the Nether.')),
text.add(2, text.of(`The interior is customizable! Check the multiblock preview in JEI.`))
})
event.addAdvanced(['gtceu:end_dome'], (item, advanced, text) => {
text.add(1, text.of('Artificial enviroment to simulate the End.')),
text.add(2, text.of(`The interior is customizable! Check the multiblock preview in JEI.`))
})
})

View file

@ -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,11 +1211,10 @@ 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
}

View file

@ -1050,12 +1050,11 @@ const registerGTCEURecipes = (event) => {
event.remove({ id: 'gtceu:extractor/extract_raw_rubber_dust' })
// Пыль звезды незера
// TODO: удалить после имплементации ада
event.recipes.gtceu.chemical_reactor('tfg:gtceu/nether_star_dust')
.itemInputs('2x #forge:dusts/iridium', '#forge:dusts/diamond')
.circuit(10)
.itemOutputs('gtceu:nether_star_dust')
.inputFluids(Fluid.of('gtceu:sulfur_dioxide', 6000), Fluid.of('gtceu:carbon_monoxide', 8000))
.inputFluids(Fluid.of('gtceu:nether_air', 1000))
.duration(700)
.EUt(2720)
@ -1277,16 +1276,82 @@ const registerGTCEURecipes = (event) => {
.EUt(24)
//#endregion
// Add circuit to assembler recipe for redstone lamp.
// Avoids conflict with AE2 smart cables.
event.remove({ id: 'gtceu:assembler/redstone_lamp' })
event.recipes.gtceu.assembler('redstone_lamp')
.itemInputs('4x #forge:dusts/redstone', '4x #forge:dusts/glowstone')
.itemOutputs('1x minecraft:redstone_lamp')
.circuit(1)
.duration(100)
.EUt(1)
//#region remove LV casing exploit
/*event.remove({ id: 'gtceu:assembler/casing_lv' })
event.recipes.gtceu.assembler('tfg:assembler/casing_lv')
.itemInputs('4x gtceu:blue_steel_plate', '4x gtceu:red_steel_plate')
.itemOutputs('gtceu:lv_machine_casing')
.circuit(8)
.duration(50)
.EUt(16)*/
//#endregion
//#region make colored steel a bit easier to compensate
event.recipes.gtceu.arc_furnace('tfg:black_steel_dust_to_ingot')
.itemInputs('gtceu:black_steel_dust')
.itemOutputs('gtceu:black_steel_ingot')
.inputFluids(Fluid.of('gtceu:oxygen', 72))
.duration(500)
.EUt(24)
event.recipes.gtceu.arc_furnace('tfg:red_steel_dust_to_ingot')
.itemInputs('gtceu:red_steel_dust')
.itemOutputs('gtceu:red_steel_ingot')
.inputFluids(Fluid.of('gtceu:oxygen', 72))
.duration(700)
.EUt(32)
event.recipes.gtceu.arc_furnace('tfg:blue_steel_dust_to_ingot')
.itemInputs('gtceu:blue_steel_dust')
.itemOutputs('gtceu:blue_steel_ingot')
.inputFluids(Fluid.of('gtceu:oxygen', 72))
.duration(700)
.EUt(32)
//#endregion
//#region add regular furnace recipes for other tfc alloys
event.remove({id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze' })
event.remove({id: 'gtceu:electric_blast_furnace/blast_bismuth_bronze_gas' })
event.remove({id: 'gtceu:electric_blast_furnace/blast_black_bronze' })
event.remove({id: 'gtceu:electric_blast_furnace/blast_black_bronze_gas' })
event.remove({id: 'gtceu:vacuum_freezer/cool_hot_black_bronze_ingot' })
event.remove({id: 'gtceu:vacuum_freezer/black_bronze' })
event.remove({id: 'gtceu:electric_blast_furnace/blast_sterling_silver' })
event.remove({id: 'gtceu:electric_blast_furnace/blast_sterling_silver_gas' })
event.remove({id: 'gtceu:electric_blast_furnace/blast_rose_gold' })
event.remove({id: 'gtceu:electric_blast_furnace/blast_rose_gold_gas' })
event.recipes.gtceu.electric_furnace('tfg:bismuth_bronze_dust_to_ingot')
.itemInputs('gtceu:bismuth_bronze_dust')
.itemOutputs('gtceu:bismuth_bronze_ingot')
.duration(200)
.EUt(16)
event.recipes.gtceu.electric_furnace('tfg:black_bronze_dust_to_ingot')
.itemInputs('gtceu:black_bronze_dust')
.itemOutputs('gtceu:black_bronze_ingot')
.duration(200)
.EUt(16)
event.recipes.gtceu.electric_furnace('tfg:sterling_silver_dust_to_ingot')
.itemInputs('gtceu:sterling_silver_dust')
.itemOutputs('gtceu:sterling_silver_ingot')
.duration(300)
.EUt(20)
event.recipes.gtceu.electric_furnace('tfg:rose_gold_dust_to_ingot')
.itemInputs('gtceu:rose_gold_dust')
.itemOutputs('gtceu:rose_gold_ingot')
.duration(300)
.EUt(20)
//#endregion
//#region Рецепты, которые итерируются по всем материалам
@ -1465,8 +1530,11 @@ const registerGTCEURecipes = (event) => {
}
});
//#endregion
//#endregion
//#region fix more duping
// Fix LV recycling producing red/blue steel.
// Replace red steel outputs with 8x steel, delete blue steel outputs.
event.replaceOutput(
@ -1717,5 +1785,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
}

View file

@ -39,6 +39,8 @@ const registerGTCEUItemTags = (event) => {
event.add('tfg:stone_dusts', 'gtceu:stone_dust')
event.remove('minecraft:planks', 'gtceu:treated_wood_planks')
//#endregion
}

View file

@ -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)

View file

@ -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` })

View file

@ -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')

View 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')
})

View file

@ -24,7 +24,7 @@ const registerGTCEuMachines = (event) => {
)
.workableCasingRenderer('gtceu:block/casings/solid/machine_casing_solid_steel', 'gtceu:block/multiblock/implosion_compressor', false)
event.create('alternator', 'multiblock')
event.create('alternator', 'multiblock')
.rotationState(RotationState.NON_Y_AXIS)
.recipeType('alternator')
.pattern(definition => FactoryBlockPattern.start()
@ -44,4 +44,163 @@ const registerGTCEuMachines = (event) => {
"gtceu:block/casings/solid/machine_casing_solid_steel",
"gtceu:block/multiblock/implosion_compressor", false
)
event.create('nether_dome', 'multiblock')
.rotationState(RotationState.NON_Y_AXIS)
.recipeType('nether_dome')
.appearanceBlock(GTBlocks.CASING_PTFE_INERT)
.pattern(definition => FactoryBlockPattern.start()
.aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ")
.aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ")
.aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ")
.aisle("CBBBBBC", "F#####F", "F#####F", "F#####F", "FTTTTTF", "FQQQQQF")
.aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ")
.aisle("CBBBBBC", "Q#####Q", "Q#####Q", "Q#####Q", "QTTTTTQ", " QQQQQ ")
.aisle(" CCXCC ", " QGOGQ ", " QOPOQ ", " QOPOQ ", " QGOGQ ", " ")
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
.where('B', Predicates.blocks('tfc:rock/magma/basalt').setMinGlobalLimited(6)
.or(Predicates.blocks('minecraft:netherrack').setMinGlobalLimited(10)))
.where('T', Predicates.blocks('minecraft:glowstone').setMinGlobalLimited(5)
.or(Predicates.blocks('minecraft:netherrack').setMinGlobalLimited(10)))
.where('O', Predicates.blocks('minecraft:obsidian'))
.where('F', Predicates.frames('black_steel'))
.where('Q', Predicates.blocks('ae2:quartz_glass'))
.where('G', Predicates.blocks('minecraft:gold_block')
.or(Predicates.blocks('tfc:rock/raw/basalt'))
.or(Predicates.blocks('tfc:rock/hardened/basalt'))
.or(Predicates.blocks('tfc:rock/bricks/basalt'))
.or(Predicates.blocks('tfc:rock/chiseled/basalt'))
.or(Predicates.blocks('minecraft:obsidian'))
.or(Predicates.blocks('minecraft:nether_bricks')))
.where('P', Predicates.blocks('minecraft:purple_stained_glass_pane'))
.where('C', Predicates.blocks(GTBlocks.CASING_PTFE_INERT.get()).setMinGlobalLimited(10)
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
.where('#', Predicates.air()
.or(Predicates.blocks('minecraft:netherrack'))
.or(Predicates.blocks('tfc:rock/magma/basalt'))
.or(Predicates.blocks('minecraft:glowstone'))
.or(Predicates.blocks('minecraft:nether_bricks')))
.where(' ', Predicates.any())
.build()
)
.shapeInfo(controller => MultiblockShapeInfo.builder()
.aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ")
.aisle("CMMMNNC", "Q NQ", "Q Q", "Q Q", "QNTTNNQ", " QQQQQ ")
.aisle("iMMNNNf", "QR Q", "QR Q", "Q T Q", "QNTTTNQ", " QQQQQ ")
.aisle("CNMMMNC", "F NF", "F F", "F F", "FNNTNNF", "FQQQQQF")
.aisle("tNNNMNl", "Q NQ", "Q NQ", "Q Q", "QNNNNNQ", " QQQQQ ")
.aisle("CNNNNNC", "QN NNQ", "Q NQ", "Q NQ", "QNNNNNQ", " QQQQQ ")
.aisle(" mCXCC ", " QGOGQ ", " QOPOQ ", " QOPOQ ", " QGOGQ ", " ")
.where('X', controller, Direction.SOUTH)
.where('C', GTBlocks.CASING_PTFE_INERT.get())
.where('N', Block.getBlock('minecraft:netherrack'))
.where('M', Block.getBlock('tfc:rock/magma/basalt'))
.where('T', Block.getBlock('minecraft:glowstone'))
.where('Q', Block.getBlock('ae2:quartz_glass'))
.where('F', Block.getBlock('gtceu:black_steel_frame'))
.where('G', Block.getBlock('minecraft:gold_block'))
.where('O', Block.getBlock('minecraft:obsidian'))
.where('P', Block.getBlock('minecraft:purple_stained_glass_pane'))
.where('R', Block.getBlock('minecraft:nether_bricks'))
.where(' ', Block.getBlock('minecraft:air'))
.where('m', GTMachines.MAINTENANCE_HATCH, Direction.SOUTH)
.where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST)
.where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.WEST)
.where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST)
.where('l', GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST)
.where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.MV], Direction.NORTH)
.build()
)
.workableCasingRenderer(
"gtceu:block/casings/solid/machine_casing_inert_ptfe",
"gtceu:block/machines/gas_collector", false
)
event.create('end_dome', 'multiblock')
.rotationState(RotationState.NON_Y_AXIS)
.recipeType('end_dome')
.appearanceBlock(GTBlocks.CASING_TITANIUM_STABLE)
.pattern(definition => FactoryBlockPattern.start()
.aisle(" CCCCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ")
.aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ")
.aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ")
.aisle("CBBBBBC", "FOOEOOF", "FOOOOOF", "FOOOOOF", "FOOOOOF", "FSNNNSF", " G G ")
.aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " SNNNS ", " G G ")
.aisle("CBBBBBC", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", "QOOOOOQ", " QSSSQ ", " GGG ")
.aisle(" CCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ")
.where('X', Predicates.controller(Predicates.blocks(definition.get())))
.where('B', Predicates.blocks('minecraft:end_stone').setMinGlobalLimited(20)
.or(Predicates.blocks('minecraft:black_concrete')))
.where('O', Predicates.blocks('minecraft:obsidian').setMinGlobalLimited(8)
.or(Predicates.air()))
.where('F', Predicates.frames('titanium'))
.where('Q', Predicates.blocks('ae2:quartz_glass'))
.where('E', Predicates.blocks('minecraft:dragon_egg'))
.where('S', Predicates.blocks('tfg:artificial_end_portal_frame'))
.where('N', Predicates.blocks('minecraft:black_concrete'))
.where('G', Predicates.blocks('tfc:ore/small_malachite')
.or(Predicates.blocks('tfc:ore/small_native_copper'))
.or(Predicates.blocks('tfc:ore/small_native_gold'))
.or(Predicates.blocks('tfc:ore/small_hematite'))
.or(Predicates.blocks('tfc:ore/small_native_silver'))
.or(Predicates.blocks('tfc:ore/small_cassiterite'))
.or(Predicates.blocks('tfc:ore/small_bismuthinite'))
.or(Predicates.blocks('tfc:ore/small_garnierite'))
.or(Predicates.blocks('tfc:ore/small_malachite'))
.or(Predicates.blocks('tfc:ore/small_magnetite'))
.or(Predicates.blocks('tfc:ore/small_limonite'))
.or(Predicates.blocks('tfc:ore/small_sphalerite'))
.or(Predicates.blocks('tfc:ore/small_tetrahedrite')))
.where('C', Predicates.blocks(GTBlocks.CASING_TITANIUM_STABLE.get()).setMinGlobalLimited(10)
.or(Predicates.autoAbilities(definition.getRecipeTypes()))
.or(Predicates.abilities(PartAbility.MAINTENANCE).setExactLimit(1)))
.where(' ', Predicates.any())
.build()
)
.shapeInfo(controller => MultiblockShapeInfo.builder()
.aisle(" CeCeC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ")
.aisle("CBBBBBC", "Q O Q", "Q O Q", "Q Q", "Q Q", " QSSSQ ", " 123 ")
.aisle("iBBBBBf", "QO OQ", "QO Q", "QO Q", "Q Q", " SNNNS ", " y 4 ")
.aisle("CBBBBBC", "F E F", "F F", "F F", "F F", "FSNNNSF", " z 5 ")
.aisle("tBBBBNl", "Q O Q", "Q O Q", "Q Q", "Q Q", " SNNNS ", " 0 6 ")
.aisle("CNBBNNC", "Q Q", "Q Q", "Q Q", "Q Q", " QSSSQ ", " 987 ")
.aisle(" mCXCC ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " QQFQQ ", " F ", " ")
.where('X', controller, Direction.SOUTH)
.where('C', GTBlocks.CASING_TITANIUM_STABLE.get())
.where('B', Block.getBlock('minecraft:end_stone'))
.where('N', Block.getBlock('minecraft:black_concrete'))
.where('O', Block.getBlock('minecraft:obsidian'))
.where('F', Block.getBlock('gtceu:titanium_frame'))
.where('Q', Block.getBlock('ae2:quartz_glass'))
.where(' ', Block.getBlock('minecraft:air'))
.where('S', Block.getBlock('tfg:artificial_end_portal_frame'))
.where('E', Block.getBlock('minecraft:dragon_egg'))
.where('1', Block.getBlock('tfc:ore/small_native_copper'))
.where('2', Block.getBlock('tfc:ore/small_native_gold'))
.where('3', Block.getBlock('tfc:ore/small_hematite'))
.where('4', Block.getBlock('tfc:ore/small_native_silver'))
.where('5', Block.getBlock('tfc:ore/small_cassiterite'))
.where('6', Block.getBlock('tfc:ore/small_bismuthinite'))
.where('7', Block.getBlock('tfc:ore/small_garnierite'))
.where('8', Block.getBlock('tfc:ore/small_malachite'))
.where('9', Block.getBlock('tfc:ore/small_magnetite'))
.where('0', Block.getBlock('tfc:ore/small_limonite'))
.where('z', Block.getBlock('tfc:ore/small_sphalerite'))
.where('y', Block.getBlock('tfc:ore/small_tetrahedrite'))
.where('m', GTMachines.MAINTENANCE_HATCH, Direction.SOUTH)
.where('i', GTMachines.ITEM_IMPORT_BUS[GTValues.ULV], Direction.WEST)
.where('t', GTMachines.ITEM_EXPORT_BUS[GTValues.ULV], Direction.WEST)
.where('f', GTMachines.FLUID_IMPORT_HATCH[GTValues.MV], Direction.EAST)
.where('l', GTMachines.FLUID_EXPORT_HATCH[GTValues.MV], Direction.EAST)
.where('e', GTMachines.ENERGY_INPUT_HATCH[GTValues.HV], Direction.NORTH)
.build()
)
.workableCasingRenderer(
"gtceu:block/casings/solid/machine_casing_stable_titanium",
"gtceu:block/machines/gas_collector", false
)
}

View file

@ -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)
}

View file

@ -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)
// })
// })

View file

@ -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',

View file

@ -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

View 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' })
})
}

View 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()
}

View file

@ -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"
}
}
}
}