Merge branch 'main' into main
Signed-off-by: Pyritie <pyritie@gmail.com>
This commit is contained in:
commit
1c55351bfc
21 changed files with 1016 additions and 94 deletions
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 }}) **
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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": "Доски из обработанного креозотом дерева"
|
||||
|
|
|
|||
|
|
@ -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.')])
|
||||
})
|
||||
|
|
@ -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.`))
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
})
|
||||
|
||||
|
|
@ -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
|
||||
)
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue