This commit is contained in:
Pyritie 2025-07-15 22:29:56 +01:00
commit b24ac77bb3
79 changed files with 6785 additions and 1006 deletions

View file

@ -1,8 +1,12 @@
# Changelog
## [Unreleased]
### Major changes
- Added harvest baskets to pick fruit from fruit trees and berry bushes (#1338) @Redeix
### Minor changes
- Added ice soup @Pyritie
- Gave plants tag to bushes so they can be used for other things (#1338) @Redeix
- Allowed elytra's to be repaired regardless of damage (#1338) @Redeix
### Bug fixes
- Fixed yeast food processor conflict (#1310) @Redeix
- Fixed seed oil voiding in barrels (#1310) @Redeix
@ -22,6 +26,10 @@
- Fixed create + greate configs (#1300) @HiddenOwlllll1 @Pyritie
- Fixed blue steel diving suit looking like netherite (#1293) @Pyritie
- Fixed anthracite not working with blaze burners @Pyritie
- Fixed baked potato recipe missing from oven (#1338) @Redeix
- Fixed sea water barrel recipes (#1338) @Redeix
- Fixed Quests #1318 #1291 and finish other quests related stuffs @TomPlop
- Integrated Ad Astra wood types with tfc (#1346) @Redeix
## [0.10.0] - 13.07.2025
- [!WARNING] If you're upgrading your world from 0.9 to 0.10, please read the upgrade guide [here](https://github.com/TerraFirmaGreg-Team/Modpack-Modern/wiki/%5BEN%5D-Upgrading-from-0.9-to-0.10). We do not recommend using Alpha versions for progression, but if you do, please make frequent backups!

View file

@ -73,11 +73,11 @@
quests: [
{
dependencies: ["00A2566109144D7F"]
description: ["With your first step on the Moon comes access to your first &bCertus Quartz&r vein.\\nDon't worry they're quite common and should be easy to locate, though having a decent &9Ore Scanner&r wouldn't hurt.\\n\\nWhether you decide to set up a miner or manually dig out a full vein, make sure to gather a &dhefty amount&r you'll need it to progress through &bAE2&r."]
description: ["{quests.ae2.certus_quartz.desc}"]
id: "396E85A39FF414CF"
shape: "gear"
size: 2.0d
subtitle: "A first step for you, a big leap for AE2"
subtitle: "{quests.ae2.certus_quartz.subtitle}"
tasks: [{
id: "2BD92F72533B9DA8"
item: {
@ -87,17 +87,19 @@
"ftbfiltersystem:filter": "or(item(gtceu:poor_raw_certus_quartz)item(gtceu:raw_certus_quartz)item(gtceu:rich_raw_certus_quartz))"
}
}
title: "{quests.ae2.certus_quartz.task}"
type: "item"
}]
title: "Certus Quartz"
title: "{quests.ae2.certus_quartz.title}"
x: -9.5d
y: 0.0d
}
{
dependencies: ["396E85A39FF414CF"]
description: ["One of your main resources for &dApplied Energistics 2&r will be &bCharged Certus Quartz&r.\\n\\nTo obtain it, theres really only one method: crafting a &6HV&r Polarizer and feeding it power to polarize standard Certus Quartz Crystals.\\n\\nYoull quickly notice how long this recipe takes, so its strongly recommended to dedicate a Polarizer exclusively to this task.\\n\\nIt may seem expensive or daunting at first, but don't worry—its absolutely worth it.\\n\\nAlso, remember not to charge all your Certus Quartz!\\nYoull need some uncharged ones for items like the &aAnnihilation Core&r, so always keep a small reserve on hand."]
description: ["{quests.ae2.polarizer.desc}"]
icon: "gtceu:hv_polarizer"
id: "016D8D348A03C684"
subtitle: "{quests.ae2.polarizer.subtitle}"
tasks: [
{
id: "01CB170E98F09DCB"
@ -110,14 +112,16 @@
type: "item"
}
]
title: "{quests.ae2.polarizer.title}"
x: -8.0d
y: -0.5d
}
{
dependencies: ["396E85A39FF414CF"]
description: ["These two machines are mandatory to progress in &dApplied Energistics 2&r.\\n\\nThe &eSifter&r is used for ore processing to increase your yield of &bCertus Quartz&r, &7Quartzite&r, &fNether Quartz&r, &cRuby&r, and &dArmalcolite&r—all of which are essential for AE2. Alternatively, you can smelt the ores directly in a Furnace if you prefer mining more over processing.\\n\\nThe second machine, the &eMixer&r, is your only method to create &dFluix Crystals&r (more about that in the next quest). Dont forget that you can also use the &6Greate Mixer&r as a &6HS&r-tier machine.\\n\\nLastly, keep in mind that an &aAutoclave&r can help you generate even more gems from dusts. Once you have the resources, crafting one will make your life significantly easier."]
description: ["{quests.ae2.hv_machines.desc}"]
icon: "gtceu:hv_mixer"
id: "050ECFC3BAF00D4B"
subtitle: "{quests.ae2.hv_machines.subtitle}"
tasks: [
{
id: "1CAC123EC6257297"
@ -128,6 +132,7 @@
"ftbfiltersystem:filter": "or(item(gtceu:hv_mixer)item(greate:stainless_steel_mechanical_mixer))"
}
}
title: "{quests.ae2.hv_machines.task}"
type: "item"
}
{
@ -143,6 +148,7 @@
type: "item"
}
]
title: "{quests.ae2.hv_machines.title}"
x: -8.0d
y: 0.5d
}
@ -151,8 +157,9 @@
"016D8D348A03C684"
"050ECFC3BAF00D4B"
]
description: ["As you can see, there are multiple ways to create &dFluix Crystals&r using a &eMixer&r.\\n\\nThe higher the purity of your input gems, the better the yield—thats exactly why we recommended crafting a &eSifter&r earlier.\\n\\nYoull need a massive amount of &dFluix Crystals&r, especially since the &5liquid version&r is used in most &dApplied Energistics 2&r recipes.\\n\\nSo prepare yourself—youre going to need a lot!"]
description: ["{quests.ae2.fluix_crystal.desc}"]
id: "673433C6D5A451F8"
subtitle: "{quests.ae2.fluix_crystal.subtitle}"
tasks: [{
id: "5C6F651131F36EC4"
item: "ae2:fluix_crystal"
@ -163,9 +170,10 @@
}
{
dependencies: ["673433C6D5A451F8"]
description: ["Most of your &dFluix Crystals&r will be converted into &5Liquid Fluix&r.\\nHowever, make sure to keep a few in their crystal form for the occasional recipe that specifically requires it.\\n\\nAny &eExtractor&r will do the job here—no need for anything fancy."]
description: ["{quests.ae2.extractor.desc}"]
icon: "gtceu:hv_extractor"
id: "0DE253C8F7F37FB6"
subtitle: "{quests.ae2.extractor.subtitle}"
tasks: [{
id: "0AE307B47D2589BA"
item: {
@ -175,16 +183,19 @@
"ftbfiltersystem:filter": "or(item(gtceu:lv_extractor)item(gtceu:mv_extractor)item(gtceu:hv_extractor)item(gtceu:ev_extractor))"
}
}
title: "{quests.ae2.extractor.task}"
type: "item"
}]
title: "{quests.ae2.extractor.title}"
x: -5.0d
y: -0.5d
}
{
dependencies: ["0DE253C8F7F37FB6"]
description: ["We told you you'd need a vast quantity of &dLiquid Fluix&r… but we didnt mention theres a way to drastically increase your yield per &dFluix Crystal&r.\\n\\nIntroducing: &bCryogenized Fluix&r, an ultra-cold fluid only craftable on the Moon using a &bVacuum Freezer&r. Simply combine &dLiquid Fluix&r with &bHelium-3&r.\\n\\nThis special fluid can be used as a substitute in nearly all recipes that require &dLiquid Fluix&r—but only when you're crafting on the Moon.\\n\\nMoon-based AE2 recipes come with huge benefits: reduced &6energy&r costs, less &ecomponents&r needed or sometimes both. Investing in a proper Moon base for AE2 production will pay off massively, especially in early game.\\n\\nIts not strictly mandatory—yet. But setting up a second base now will ease your future progression, as planet-based infrastructure becomes essential later on. So… why not get ahead of the curve?"]
description: ["{quests.ae2.fluix_liquid.desc}"]
icon: "tfg:fluix_bucket"
id: "5C98FE05CAE3DFD8"
subtitle: "{quests.ae2.fluix_liquid.subtitle}"
tasks: [
{
id: "7C0B612DC3D05042"
@ -210,12 +221,13 @@
type: "dimension"
}
]
title: "{quests.ae2.fluix_liquid.title}"
x: -3.5d
y: -0.5d
}
{
dependencies: ["0C0B09D66D0CFFBA"]
description: ["Here you are, ready to begin your &bAE2&r infrastructure!\\n\\nThis chapter will mainly guide you through what you can and cannot craft yet.\\nWell also highlight the most important items you should focus on.\\n\\nHowever, to fully understand &bApplied Energistics 2&r, we strongly recommend:\\n\\n&7- Use the &b\"G\"&r keybind or open the &bME Guide&r we provide as a reward from this quest. Its the best in-game tutorial for &bAE2&r.\\n&7- Watch some online videos about &bAE2&r on &61.20.1&r for more detailed explanations.\\n\\n&dPro tip&r: Many &bAE2&r recipes have &6alternative Moon recipes&r that are much cheaper.\\nOnce again, investing in your &bMoon base&r will greatly reward you throughout the entire game."]
description: ["{quests.ae2.ae_guide.desc}"]
id: "6CF08AFB924905F0"
rewards: [{
id: "34825A998EA88DB4"
@ -224,11 +236,13 @@
}]
shape: "none"
size: 1.0d
subtitle: "{quests.ae2.ae_guide.subtitle}"
tasks: [{
id: "427156A026BF966E"
title: "Welcome to AE2"
title: "{quests.ae2.ae_guide.title}"
type: "checkmark"
}]
title: "{quests.ae2.ae_guide.title}"
x: 0.5d
y: 0.0d
}
@ -254,20 +268,23 @@
}
{
dependencies: ["1DF9B1FB98CCD6EB"]
description: ["To get the printed circuits, you'll need to craft the &6HV&r Forming Press.\\n\\nThe good news? It has multiple input slots, meaning you can insert all your circuit &ePresses&r at once. With that setup, a single &6HV&r Forming Press is enough to handle every printed circuit type."]
description: ["{quests.ae2.forming_press.desc}"]
id: "674ACE84D9EA6FB9"
subtitle: "{quests.ae2.forming_press.subtitle}"
tasks: [{
id: "454FB38514F59E0E"
item: "gtceu:hv_forming_press"
type: "item"
}]
title: "{quests.ae2.forming_press.title}"
x: -3.5d
y: 0.5d
}
{
description: ["One of the last things youll need before diving fully into &dApplied Energistics 2&r is collecting the 4 &ePresses&r.\\n\\nTo obtain them, you must locate an &eAE2 Meteorite&r on the &3Moon&r. Luckily, they aren't particularly rare, and a single meteorite should contain all four &ePresses&r.\\n\\n&cBe careful though&r — these meteorites are often guarded, and hostile entities may spawn nearby.\\n\\nGear up, bring a scanner if you have one, and happy hunting!"]
description: ["{quests.ae2.ae_press.desc}"]
id: "1DF9B1FB98CCD6EB"
shape: "none"
subtitle: "{quests.ae2.ae_press.subtitle}"
tasks: [
{
id: "20DB15A3C709E5AB"
@ -290,7 +307,7 @@
type: "item"
}
]
title: "Inscriber Press"
title: "{quests.ae2.ae_press.title}"
x: -3.5d
y: 2.0d
}
@ -447,8 +464,9 @@
"5C98FE05CAE3DFD8"
"674ACE84D9EA6FB9"
]
description: ["All three &eProcessors&r will be used extensively across &dApplied Energistics 2&r recipes.\\n\\nThis also gives you a great opportunity to see how effective the &3Moon&r recipes can be for crafting them.\\n\\n&6But in the end, the choice is yours&r — build your infrastructure where it suits you best."]
description: ["{quests.ae2.ae_processor.desc}"]
id: "0C0B09D66D0CFFBA"
subtitle: "{quests.ae2.ae_processor.subtitle}"
tasks: [
{
id: "50014040C38749DF"
@ -466,6 +484,7 @@
type: "item"
}
]
title: "{quests.ae2.ae_processor.title}"
x: -2.0d
y: 0.0d
}
@ -1224,5 +1243,6 @@
y: -10.5d
}
]
subtitle: ["{quests.ae2.subtitle}"]
title: "{quests.ae2}"
}

View file

@ -847,7 +847,11 @@
y: 1.5d
}
{
dependencies: ["109C57B63EE95E35"]
dependencies: [
"109C57B63EE95E35"
"5826EC76931359B8"
]
dependency_requirement: "one_completed"
description: [
"{quests.gregtech_energy.large_solar.desc.1}"
"{@pagebreak}"
@ -856,12 +860,64 @@
icon: "gtceu:large_solar_panel"
id: "0585527D1854628B"
subtitle: "{quests.gregtech_energy.large_solar.subtitle}"
tasks: [{
disable_toast: true
id: "198E956830F835B2"
item: "gtceu:large_solar_panel"
type: "item"
}]
tasks: [
{
disable_toast: true
id: "198E956830F835B2"
item: "gtceu:large_solar_panel"
type: "item"
}
{
id: "794BF3FC434ACB5B"
item: "gtceu:lv_input_bus"
type: "item"
}
{
id: "43C2823947C4AE47"
item: "gtceu:auto_maintenance_hatch"
type: "item"
}
{
id: "07B517D79E7CDAF0"
item: "gtceu:ev_energy_input_hatch"
type: "item"
}
{
count: 54L
id: "120C887A59B89D66"
item: "tfg:casings/machine_casing_iron_desh"
type: "item"
}
{
count: 24L
id: "166503BF54649F4A"
item: "tfg:casings/machine_casing_red_solar_panel"
type: "item"
}
{
id: "3E71E1F848336782"
item: "ad_astra:iron_plating"
type: "item"
}
{
count: 16L
id: "294567EB2BE47456"
item: { Count: 16, id: "gtceu:cleanroom_glass" }
type: "item"
}
{
count: 20L
id: "516481695EBA7FCD"
item: { Count: 20, id: "ad_astra:iron_plateblock" }
type: "item"
}
{
count: 3L
id: "1764824C0C01F914"
item: { Count: 3, id: "ad_astra:glowing_iron_pillar" }
type: "item"
}
]
title: "{quests.gregtech_energy.large_solar.title}"
x: -8.5d
y: 1.5d

View file

@ -19,6 +19,20 @@
x: -7.5d
y: -6.5d
}
{
id: "33D3C2A9337335D2"
linked_quest: "493D733A5438DD7E"
x: 10.0d
y: 0.0d
}
{
id: "2CDC2C148418F176"
linked_quest: "396E85A39FF414CF"
shape: "gear"
size: 2.0d
x: 13.0d
y: -6.0d
}
]
quests: [
{
@ -266,11 +280,7 @@
}
{
dependencies: ["197A13A0790F000B"]
description: [
"{quests.high_voltage.rutile_loop.desc.1}"
"{@pagebreak}"
"{quests.high_voltage.rutile_loop.desc.2}"
]
description: ["{quests.high_voltage.rutile_loop.desc}"]
icon: "gtceu:rutile_dust"
id: "59DFC4DA7D29C315"
shape: "square"
@ -326,7 +336,7 @@
{
dependencies: ["7E755297E9685374"]
description: [
"{quests.high_voltage.nichrome_coils.desc.1"
"{quests.high_voltage.nichrome_coils.desc.1}"
"{@pagebreak}"
"{quests.high_voltage.nichrome_coils.desc.2}"
]
@ -408,7 +418,7 @@
item: "gtceu:hv_circuit_assembler"
type: "item"
}]
title: "{quests.high_voltage.circuit_assembler.title"
title: "{quests.high_voltage.circuit_assembler.title}"
x: 10.0d
y: 2.0d
}
@ -452,7 +462,7 @@
description: [
"{quests.high_voltage.cleanroom.desc.1}"
"{@pagebreak}"
"{quests.high_voltage.cleanroom.desc.2"
"{quests.high_voltage.cleanroom.desc.2}"
]
icon: "gtceu:cleanroom"
id: "3568BC9742092FC5"
@ -954,9 +964,13 @@
"05ABC370D7153350"
"16B735F9C391D260"
]
description: ["To make the &6Rocket Alloy&r, you will need to put &7Aluminium&r, &7Stainless Steel&r and &cLiquid Red Steel&r into your new &6HV&r Mixer.\\n\\nThe recipe takes some time, so expect to have your mixer fully dedicated to this step.\\n\\nAfter that, your dust will need to be smelted in your EBF at &bMV&r. If you already have &6Nichrome Coils&r and your EBF is running at &6HV&r, you will be able to &aPerfect Overclock&r the recipe (&7check the Gregtech Energy chapter if you don't understand&r).\\n\\nYou can also cool the ingots down with a &9Chemical Bath&r or, if you already have one, a &9Vacuum Freezer&r for a shorter processing time.\\n\\n&7144mb equals 1 ingot&r, so make sure not to extract too much &cRed Steel&r.\\n\\nYou will need &685 Rocket Alloy&r ingots total, which means:\\n- &760 Aluminium&r\\n- &720 Stainless Steel&r\\n- &710 Red Steel&r\\n\\n&aNothing too bad!&r"]
description: [
"{quests.high_voltage.space_alloy.desc.1}"
"{@pagebreak}"
"{quests.high_voltage.space_alloy.desc.2}"
]
id: "56D337E264A4154F"
subtitle: "It's a new material"
subtitle: "{quests.high_voltage.space_alloy.subtitle}"
tasks: [
{
id: "0FCF38A07889B205"
@ -969,7 +983,7 @@
type: "item"
}
]
title: "Space Alloy"
title: "{quests.high_voltage.space_alloy.title}"
x: 5.0d
y: -2.0d
}
@ -978,9 +992,9 @@
"56D337E264A4154F"
"41D32C5178760F47"
]
description: ["The &6Rocket Nose Cone&r is the hardest part of your Rocket.\\nYou will need a hefty amount of &aPolyethylene&r — so we hope you already have it passively produced — and a &6HV&r Emitter.\\nYou should be able to get your hands on &dChromium&r by electrolyzing &cRuby Dust&r.\\n\\nThe &aVitrified Ender Pearl&r is trickier and requires you to follow the quest unlocked by the &6HV Chemical Reactor&r.\\nGet ready to make &cTNT&r, build an &5Implosion Compressor&r, and recreate the famous Enderman drop — since you wont find Ender Pearls natively in &2TFG&r."]
description: ["{quests.high_voltage.rocket_nose_cone.desc}"]
id: "1E307CD76691C24F"
subtitle: "The nose knows..."
subtitle: "{quests.high_voltage.rocket_nose_cone.subtitle}"
tasks: [{
id: "05AEC4A2F295098C"
item: "ad_astra:rocket_nose_cone"
@ -991,24 +1005,25 @@
}
{
dependencies: ["7FA0ACB7F161F378"]
description: ["Well, that was quite the experience! Between the &9Rutile Processing&r line, the &5Vacuum Chamber&r, and the &5Cleanroom&r, youve uncovered a lot of new mechanics. \\nThats great — because this is only the beginning.\\n\\nDid you walk on the &fMoon&r yet? If not, we strongly encourage you to go. Youll encounter &dessential mechanics&r for later stages of the modpack and unlock &bAE2&r, all while gaining access to &aricher ore veins&r.\\n\\nIf youve already made your lunar journey, then we hope your infrastructure is solid — because its time to enter &5EV&r. This complex chapter will introduce &7even more advanced systems&r and take your factory to the next level."]
description: ["{quests.high_voltage.ev_machine_hull.desc}"]
id: "4214D5C501C35876"
shape: "gear"
size: 4.0d
subtitle: "That's half of Gregtech tiers"
subtitle: "{quests.high_voltage.ev_machine_hull.subtitle}"
tasks: [{
id: "766F3215D322BAAE"
item: "gtceu:ev_machine_hull"
type: "item"
}]
title: "{quests.high_voltage.ev_machine_hull.title}"
x: -9.0d
y: -2.0d
}
{
dependencies: ["56D337E264A4154F"]
description: ["We made the &6Rocket Fins&r use an &bAlloy Smelter&r simply to remind you that you now have access to the &bMulti-Smelter&r — a wonderful small EBF that can be used as a &eFurnace&r or an &bAlloy Smelter&r.\\n\\nThe quest to craft it is in the &bMV&r Chapter. We really advise you to think about it if you haven't yet."]
description: ["{quests.high_voltage.rocket_fins.desc}"]
id: "3E2F96A02FEF12AC"
subtitle: "So you reach the right destination"
subtitle: "{quests.high_voltage.rocket_fins.subtitle}"
tasks: [{
count: 4L
id: "433BFEE192C565E8"
@ -1021,9 +1036,9 @@
}
{
dependencies: ["56D337E264A4154F"]
description: ["The &6Steel Engine&r is required so your rocket can &atravel to the Moon&r.\\n\\nThe recipe isn't too bad — we assume you're ready to tackle each part.\\n\\nTo get &91152mb of Liquid Blue Steel&r, you will need &78 ingots&r."]
description: ["{quests.high_voltage.steel_engine.desc}"]
id: "4AD686D18247315E"
subtitle: "Blue Steel is back baby"
subtitle: "{quests.high_voltage.steel_engine.subtitle}"
tasks: [{
id: "57D58E699F70DD55"
item: "ad_astra:steel_engine"
@ -1034,14 +1049,16 @@
}
{
dependencies: ["3FBDC8552F7D8008"]
description: ["&6For each travel you will need Rocket Fuel&r, it seems complicated and it is quite a long process but you can make Rocket Fuel from &bChlorine&r, &bMethane&r, &bNitrogen&r, &bOxygen&r and &bWater&r. Nothing too bad, also if you already have your &5Large Chemical Reactor&r you could unlock some bypass.\\n\\n&7We advise you to use EMI Recipe Tree to have an easier time understanding each step. Simply click on the small icon with 4 squares on the right of the crafting recipe.&r"]
dependency_requirement: "one_completed"
description: ["{quests.high_voltage.rocket_fuel.desc}"]
id: "6EF2D4D1C1CC9D3E"
subtitle: "Easier than you think"
subtitle: "{quests.high_voltage.rocket_fuel.subtitle}"
tasks: [{
id: "0E3E97E93E9F3A3A"
item: "gtceu:rocket_fuel_bucket"
type: "item"
}]
title: "{quests.high_voltage.rocket_fuel.title}"
x: 10.0d
y: -2.0d
}
@ -1051,7 +1068,7 @@
"6752CC523D38A214"
"038B204DAC9C863D"
]
description: ["&2Congrats&r, youve successfully landed on the &7Moon&r!\\nHere, youll find &bCertus Quartz&r veins, allowing you to begin unlocking &dAE2&r.\\n\\nBut thats not all—some veins here have much higher density than those on Earth.\\n\\nFor instance, you can easily find &6Ilmenite&r, &7Bauxite&r, &7Aluminium&r, and &5Chromite&r veins on the Moon.\\nEstablishing a small base here will be crucial to keep progressing.\\n\\nYour biggest challenge will be transporting resources, as there are no easy cross-dimensional tools like the &5Ender Chest&r or &dAE2 Quantum Link&r just yet."]
description: ["{quests.high_voltage.welcome_moon.desc}"]
id: "00A2566109144D7F"
rewards: [{
id: "4E4076733CA38807"
@ -1060,7 +1077,7 @@
}]
shape: "gear"
size: 4.0d
subtitle: "Hope you have everything to come back"
subtitle: "{quests.high_voltage.welcome_moon.subtitle}"
tasks: [{
dimension: "ad_astra:moon"
icon: "ad_astra:moon_globe"
@ -1068,6 +1085,7 @@
title: "I'm on the Moon"
type: "dimension"
}]
title: "{quests.high_voltage.welcome_moon.title}"
x: 13.0d
y: -2.0d
}
@ -1076,9 +1094,9 @@
"3FBDC8552F7D8008"
"72BD27FEEB34C7B0"
]
description: ["&6Before crossing the last Earth boundary,&r you should be sure to not die when you arrive on the moon.\\n\\nTo do that, you're gonna need a &bfull set of Space Suit&r loaded with &bOxygen&r — and if you're careful, even a &ebackup can&r.\\n\\n&cThe hardest part&r will definitely be the &dPolycaprolactam Fabric&r.\\n\\nYou will need an &cEBF&r and a &6HV&r &eChemical Reactor&r.\\n\\nFrom there, you'll be able to craft it using &aBenzene&r, &bHydrogen&r, &9Chlorine&r, &bOxygen&r and &3Ammonia&r.\\n\\nWe won't tell you every step, but you should be able to figure it out yourself through &aEMI&r now that you're a fierce Gregtech player.\\n\\nOnce everything is ready, to fill your space suit and can, simply &eRight-Click&r a drum or tank filled with &bOxygen&r."]
description: ["{quests.high_voltage.space_suit.desc}"]
id: "038B204DAC9C863D"
subtitle: "Let's be honest, this may be the hardest"
subtitle: "{quests.high_voltage.space_suit.subtitle}"
tasks: [
{
id: "2BB34BBE18F6816F"
@ -1124,16 +1142,28 @@
}
type: "item"
}
{
id: "1E898EFDBF66CD54"
item: {
Count: 1
id: "ftbfiltersystem:smart_filter"
tag: {
"ftbfiltersystem:filter": "or(item(ad_astra:gas_tank)item(ad_astra:large_gas_tank))"
}
}
title: "{quests.high_voltage.space_suit.task}"
type: "item"
}
]
title: "Space Suit"
title: "{quests.high_voltage.space_suit.title}"
x: 10.0d
y: -1.0d
}
{
dependencies: ["3FBDC8552F7D8008"]
description: ["&6The Launch Pad is indispensable to launch your Rocket.&r That's the only block on which you will be able to put your Rocket.\\n\\n&cReally important&r but you will need &cTWO Launch Pads&r as it will stay on your launching site and you will need another one to travel back."]
description: ["{quests.high_voltage.launch_pad.desc}"]
id: "6752CC523D38A214"
subtitle: "Without it impossible to launch"
subtitle: "{quests.high_voltage.launch_pad.subtitle}"
tasks: [{
count: 2L
id: "4451763FB0D75C2D"
@ -1149,29 +1179,27 @@
"04F6E968CEEC3D49"
]
dependency_requirement: "one_completed"
description: [
"You are beginning to refine your fuels much better, you should be sure you had a look at the Energy Chapter."
""
"{ \"text\": \"Click here\", \"underlined\": \"true\", \"clickEvent\": { \"action\": \"change_page\", \"value\": \"2CDB9778C7A30044\" } }"
]
description: ["{ \"text\": \"{quests.high_voltage.linked_quest_energy.desc}\", \"bold\": \"true\", \"clickEvent\": { \"action\": \"change_page\", \"value\": \"2CDB9778C7A30044\" } }"]
id: "595C5A01358B9550"
subtitle: "{quests.high_voltage.linked_quest_energy.subtitle}"
tasks: [{
id: "4E59108C7FC5421C"
title: "Have a look at the Energy Chapter"
title: "{quests.high_voltage.linked_quest_energy.task}"
type: "checkmark"
}]
title: "{quests.high_voltage.linked_quest_energy.title}"
x: 0.0d
y: 11.0d
}
{
dependencies: ["14D277A164202FF8"]
description: [
"This may be the first time you encounter the &cBedrock Ore Miner&r, as it's rarely used in GregTech. \\nIt functions similarly to the &bFluid Drilling Rig&r, except the veins it targets will &nnever deplete&r.\\n\\nIt doesn't consume much energy — running fine at &bMV&r or &6HV&r — and requires &ano input materials&r.\\n\\nSo, what's the catch? \\nFinding the veins."
"{quests.high_voltage.bedrock_miner.desc.1}"
"{@pagebreak}"
"Youll need a &6HV&r Ore Prospector set to &oBedrock Ore Mode&r (&7Shift + Right Click&r), and a fair bit of patience. Once you find your target, youll also have to figure out how to bring the resources back to your outpost.\\n\\nOn the &fMoon&r, you can find 5 unique bedrock ore veins:\\n\\n&7- Copper and Tin&r: Contains &6Chalcopyrite&r, &eZeolite&r, &fCassiterite&r, and &cRealgar (Arsenic)&r\\n&7- Tin Vein&r: Contains mainly &fCassiterite&r and &fTin&r\\n&7- Asbestos&r\\n&7- Magnetite (Iron) and Gold&r: Very rare — don't actively search for it\\n&7- A mysterious, &dextremely rare&r one... \\nIf you find it, youll be thrilled. If not, just live in peace. Dont worry."
"{quests.high_voltage.bedrock_miner.desc.2}"
]
id: "2878C147D273F774"
subtitle: "Unlimited ores?"
subtitle: "{quests.high_voltage.bedrock_miner.subtitle}"
tasks: [{
id: "55981710612D21D7"
item: "gtceu:mv_bedrock_ore_miner"
@ -1180,20 +1208,6 @@
x: 2.5d
y: -10.5d
}
{
dependencies: ["05ABC370D7153350"]
description: ["Now that you unlocked the &6HV&r Mixer, it becomes possible to make &aCetane Boosted Diesel&r, granting a &e180%&r increase in potency.\\n\\nThe only tricky part is obtaining &bTetranitromethane&r. We recommend producing it by mixing &9Nitric Acid&r and &dEthenone&r. Ethenone itself isnt hard to make if you combine &9Sulfuric Acid&r - which you should have plenty of by now - and &cAcetic Acid&r, easily produced from &3Oxygen&r and &5Ethylene&r.\\n\\n&cDont forget&r to set your machine on Circuit 2, or else youll end up producing &6Polyethylene&r instead!"]
id: "7401B47E24593AB2"
shape: "heart"
subtitle: "Much more powerful than Bio Diesel"
tasks: [{
id: "54C63404B5CE7E5F"
item: "gtceu:cetane_boosted_diesel_bucket"
type: "item"
}]
x: 3.5d
y: -3.5d
}
{
description: ["{quests.high_voltage.kaolinite_powder.desc}"]
disable_toast: true

View file

@ -513,6 +513,11 @@
"{quests.low_voltage.lv_ebf.desc.2}"
]
id: "1E9BE8D3F8A602DC"
rewards: [{
id: "5A3DDA916C125D0F"
item: "gtceu:terminal"
type: "item"
}]
shape: "octagon"
size: 2.0d
subtitle: "{quests.low_voltage.lv_ebf.subtitle}"
@ -604,10 +609,7 @@
y: 0.5d
}
{
dependencies: [
"5B2696206205CB2E"
"70432F650591353C"
]
dependencies: ["6042514C8FC54334"]
description: ["{quests.low_voltage.cupronickel_coil.desc}"]
icon: {
Count: 1
@ -626,7 +628,7 @@
type: "item"
}]
title: "{quests.low_voltage.cupronickel_coil.title}"
x: -7.5d
x: -8.5d
y: 6.5d
}
{
@ -913,7 +915,10 @@
y: 12.5d
}
{
dependencies: ["15928F50AE80A5CF"]
dependencies: [
"15928F50AE80A5CF"
"5263F866638D875C"
]
dependency_requirement: "one_completed"
description: [
"{quests.low_voltage.lv_oxygen.desc.1}"
@ -1538,6 +1543,21 @@
x: 5.5d
y: 9.0d
}
{
dependencies: ["5B2696206205CB2E"]
description: ["{quests.low_voltage.cupronickel_ingot.desc}"]
id: "6042514C8FC54334"
subtitle: "{quests.low_voltage.cupronickel_ingot.subtitle}"
tasks: [{
count: 128L
id: "701DEB748320107C"
item: "gtceu:cupronickel_ingot"
type: "item"
}]
title: "{quests.low_voltage.cupronickel_ingot.title}"
x: -7.5d
y: 6.5d
}
]
subtitle: ["{quests.low_voltage.subtitle}"]
title: "{quests.low_voltage}"

View file

@ -352,6 +352,12 @@
x: 13.5d
y: -3.0d
}
{
id: "5A5FBC9F634D16FA"
linked_quest: "6042514C8FC54334"
x: 11.0d
y: -3.0d
}
]
quests: [
{
@ -684,19 +690,6 @@
x: -1.0d
y: 8.0d
}
{
dependencies: ["5B2696206205CB2E"]
id: "70432F650591353C"
shape: "square"
size: 1.0d
tasks: [{
id: "77875BBDC0A937A9"
item: "gtceu:cupronickel_ingot"
type: "item"
}]
x: 11.0d
y: -3.0d
}
{
description: [
"{quests.development.explanation.desc.1}"

View file

@ -448,8 +448,8 @@
type: "dimension"
}
{
entity: "kaolinclayze:tfc"
icon: "kaolinclayze:tfc_spawn_egg"
entity: "primitive_creatures:tfc"
icon: "primitive_creatures:tfc_spawn_egg"
id: "710B94F88C7078C9"
optional_task: true
type: "kill"
@ -743,8 +743,8 @@
type: "dimension"
}
{
entity: "kaolinclayze:golem_2"
icon: "kaolinclayze:golem_2_spawn_egg"
entity: "primitive_creatures:golem_2"
icon: "primitive_creatures:golem_2_spawn_egg"
id: "0981F64F296CDDC5"
optional_task: true
type: "kill"

View file

@ -34,6 +34,12 @@
x: -29.0d
y: 0.0d
}
{
id: "7C03FE015586C652"
linked_quest: "55213ACBF5F5D398"
x: -14.5d
y: 13.0d
}
]
quests: [
{

View file

@ -145,6 +145,12 @@
x: -5.5d
y: -5.5d
}
{
id: "52ABE7722ABB3281"
linked_quest: "0585527D1854628B"
x: -2.5d
y: 1.0d
}
]
quests: [
{
@ -276,23 +282,6 @@
x: -7.0d
y: -3.0d
}
{
dependencies: [
"33374462FF07BC75"
"3FBDC8552F7D8008"
]
dependency_requirement: "one_completed"
description: ["&6For each travel you will need Rocket Fuel&r, it seems complicated and it is quite a long process but you can make Rocket Fuel from &bChlorine&r, &bMethane&r, &bNitrogen&r, &bOxygen&r and &bWater&r. Nothing too bad, also if you already have your &5Large Chemical Reactor&r you could unlock some bypass.\\n\\n&7We advise you to use EMI Recipe Tree to have an easier time understanding each step. Simply click on the small icon with 4 squares on the right of the crafting recipe.&r"]
id: "60D903E9FA91DB42"
subtitle: "Easier than you think"
tasks: [{
id: "6A00144D5C0E9FA8"
item: "gtceu:rocket_fuel_bucket"
type: "item"
}]
x: -7.0d
y: -5.5d
}
{
dependencies: ["00A2566109144D7F"]
description: ["{quests.space_survival.solar_panels.desc}"]
@ -517,64 +506,21 @@
y: -6.5d
}
{
dependencies: ["5826EC76931359B8"]
description: [
"{quests.gregtech_energy.large_solar.desc.1}"
"{@pagebreak}"
"{quests.gregtech_energy.large_solar.desc.2}"
dependencies: [
"3FBDC8552F7D8008"
"33374462FF07BC75"
]
icon: "gtceu:large_solar_panel"
id: "0BBD6807505AA96E"
subtitle: "{quests.gregtech_energy.large_solar.subtitle}"
tasks: [
{
id: "08F8A202DEFBD791"
item: "gtceu:large_solar_panel"
type: "item"
}
{
id: "33009033269EAD48"
item: "gtceu:lv_input_bus"
type: "item"
}
{
id: "3F0202755438BE30"
item: "gtceu:auto_maintenance_hatch"
type: "item"
}
{
id: "76E075BC64697885"
item: "gtceu:ev_energy_output_hatch"
type: "item"
}
{
count: 54L
id: "2D09546682F6DD20"
item: { Count: 32, id: "tfg:casings/machine_casing_iron_desh" }
type: "item"
}
{
count: 24L
id: "7F1A78AB02673FC8"
item: { Count: 24, id: "tfg:casings/machine_casing_red_solar_panel" }
type: "item"
}
{
count: 20L
id: "13DB8D7072DE7BEA"
item: { Count: 20, id: "ad_astra:iron_plateblock" }
type: "item"
}
{
count: 16L
id: "1D6554EA7A76178F"
item: { Count: 16, id: "gtceu:cleanroom_glass" }
type: "item"
}
]
title: "{quests.gregtech_energy.large_solar.title}"
x: -2.5d
y: 1.0d
dependency_requirement: "one_completed"
description: ["&6For each travel you will need Rocket Fuel&r, it seems complicated and it is quite a long process but you can make Rocket Fuel from &bChlorine&r, &bMethane&r, &bNitrogen&r, &bOxygen&r and &bWater&r. Nothing too bad, also if you already have your &5Large Chemical Reactor&r you could unlock some bypass.\\n\\n&7We advise you to use EMI Recipe Tree to have an easier time understanding each step. Simply click on the small icon with 4 squares on the right of the crafting recipe.&r"]
id: "0B80972F50E08B8D"
subtitle: "Easier than you think"
tasks: [{
id: "5FBF567FFC837BFA"
item: "gtceu:rocket_fuel_bucket"
type: "item"
}]
x: -7.0d
y: -5.5d
}
]
subtitle: ["{quests.space_survival.subtitle}"]

View file

@ -568,26 +568,15 @@
]
dependency_requirement: "one_completed"
description: [
"This is a guide on how to automatically route &lall&r your Hot Ingots to your Chemical Bath, while keeping everything automated in tip-top shape."
""
"The cheap way would be to use filters, and manually add Hot Ingots one by one... which is so boring! Let's try the fun option."
""
"Install an &aItem Tag Filter&r Cover on the side of your &3Chemical Bath&r, open it and set it to whitelist \"&e&lhot_ingots&r\"."
""
"From here, you can route with &9any logistics system&r of your choice."
"{quests.high_voltage.250_iq.desc.1}"
"{@pagebreak}"
"Connect the output of your &3EBF(s)&r to the input of your &3Chemical Bath&r and the output dump (Chest or Crate)."
"You can also have a &dRestrictive Pipe&r in front of the output dump to ensure the Chemical Bath will be prioritized."
""
"&l&9Note:&r If you wish to know more tags for more automation setups, they will display if you press Shift when hovering over an item. For instance, an item tagged with &e&o#forge:plates/copper&r would be filtered as &e&lplates/copper&r."
""
"&9Other Note:&r The Item Tag Filter partially supports &dregex&r. Hover over the info icon for more information."
"{quests.high_voltage.250_iq.desc.2}"
]
icon: "gtceu:item_tag_filter"
id: "7C1FD81C5DCFB74E"
shape: "square"
size: 1.0d
subtitle: "Stop burning your darn hands!"
subtitle: "{quests.high_voltage.250_iq.subtitle}"
tasks: [
{
id: "34DEDF3B7F0DB3BC"
@ -600,7 +589,7 @@
type: "item"
}
]
title: "250IQ"
title: "{quests.high_voltage.250_iq.title}"
x: 10.0d
y: 9.0d
}
@ -2493,6 +2482,27 @@
x: 0.0d
y: 5.0d
}
{
dependencies: ["150B7C5CD152E1BA"]
description: ["{quests.tfg_tips.tools_tips.harvest_basket.desc}"]
id: "5B0A9757F1EF1B9E"
subtitle: "{quests.tfg_tips.tools_tips.harvest_basket.subtitle}"
tasks: [{
id: "15C2F940F5A576D5"
item: {
Count: 1
id: "ftbfiltersystem:smart_filter"
tag: {
"ftbfiltersystem:filter": "item_tag(tfg:harvester)"
}
}
title: "{quests.tfg_tips.tools_tips.harvest_basket.task}"
type: "item"
}]
title: "{quests.tfg_tips.tools_tips.harvest_basket.title}"
x: -6.0d
y: 10.0d
}
]
subtitle: ["{quests.tfg_tips.tools_tips.subtitle}"]
title: "Tips - Tools"

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "ad_astra:item/aeronos_stem"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "ad_astra:item/glacian_log"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "ad_astra:item/glacian_stripped"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "ad_astra:item/strophar_stem"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

View file

@ -1,16 +0,0 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"entity.kaolinclayze.tfc": "Kaolin Klayze",
"entity.terramod.tfc": "Kaolin Klayze",
"entity.kaolinclayze.golem_2": "Graphite Glayze",
"item.kaolinclayze.tfc_spawn_egg": "Kaolin Klayze Spawn Egg",
"item.kaolinclayze.golem_2_spawn_egg": "Graphite Glayze Spawn Egg",
"item.kaolinclayze.yhgi": "Flint Club",
"item.kaolinclayze.reh": "Fortified Flint Club",
"item.kaolinclayze.grh": "Battered Wool",
"item.kaolinclayze.totem_0": "Small Clay Idol",
"item.kaolinclayze.totem_2": "Wooden Lion-Man Idol",
"item.kaolinclayze.totem_3": "Hardened Mud Idol",
"item.kaolinclayze.tt_5": "Small Shard",
"item.kaolinclayze.f_1": "Primitive Explosives"
}

View file

@ -1,9 +0,0 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"entity.kaolinclayze.tfc": "Каоліновий Клейз",
"entity.terramod.tfc": "Каоліновий Клейз",
"entity.kaolinclayze.golem_2": "Графітовий Глейз",
"item.kaolinclayze.tfc_spawn_egg": "Яйце спавну Каолінового Клейза",
"item.kaolinclayze.golem_2_spawn_egg": "Яйце спавну Графітового Глейза",
"item.terramod.tfc_spawn_egg": "Яйце спавну Каолінового Клейза"
}

View file

@ -0,0 +1,21 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"entity.primitive_creatures.tfc": "Kaolin Klayze",
"entity.primitive_creatures.golem_2": "Graphite Glayze",
"entity.primitive_creatures.iloger_4": "Forager",
"entity.primitive_creatures.wiloger": "Beast Tamer",
"entity.primitive_creatures.iloger_2": "Herbalist",
"item.primitive_creatures.tfc_spawn_egg": "Kaolin Klayze Spawn Egg",
"item.primitive_creatures.golem_2_spawn_egg": "Graphite Glayze Spawn Egg",
"item.primitive_creatures.iloger_4_spawn_egg": "Forager Spawn Egg",
"item.primitive_creatures.wiloger_spawn_egg": "Beast Tamer Spawn Egg",
"item.primitive_creatures.iloger_2_spawn_egg": "Herbalist Spawn Egg",
"item.primitive_creatures.yhgi": "Flint Club",
"item.primitive_creatures.reh": "Fortified Flint Club",
"item.primitive_creatures.grh": "Battered Wool",
"item.primitive_creatures.totem_0": "Small Clay Idol",
"item.primitive_creatures.totem_2": "Wooden Lion-Man Idol",
"item.primitive_creatures.totem_3": "Hardened Mud Idol",
"item.primitive_creatures.tt_5": "Small Shard",
"item.primitive_creatures.f_1": "Primitive Explosives"
}

View file

@ -0,0 +1,7 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"entity.primitive_creatures.tfc": "Каоліновий Клейз",
"entity.primitive_creatures.golem_2": "Графітовий Глейз",
"item.primitive_creatures.tfc_spawn_egg": "Яйце спавну Каолінового Клейза",
"item.primitive_creatures.golem_2_spawn_egg": "Яйце спавну Графітового Глейза"
}

View file

@ -0,0 +1,24 @@
{
"name": "Harvest Baskets",
"icon": "tfg:harvest_basket",
"category": "tfc:mechanics",
"read_by_default": true,
"pages": [
{
"type": "patchouli:spotlight",
"title": "Harvest Baskets",
"item": { "tag": "tfg:harvester" },
"text": "Made for those with a short stature--$(thing)Harvest Baskets$() are just the tool needed for plucking trees and bushes of fruit.$(br)To use a harvest basket; right click on a fruit tree or fruit bush and all blocks within a $(thing)7-block radius$() will be picked."
},
{
"type": "patchouli:text",
"text": "A regular harvest basket has a durability of $(thing)128$(), while the aluminium harvest basket does not take any damage on use. Harvest baskets can also be used by things like the $(thing)Create Deployer$() to automate harvesting. The baskets will use durability in the process."
},
{
"type": "patchouli:crafting",
"title": "Harvest Basket",
"recipe": "tfg:shaped/harvest_basket_from_papyrus",
"text": "A basic $(item)Harvest Basket$() can be made of soaked papyrus or hardwood."
}
]
}

View file

@ -131,6 +131,12 @@
"block.tfg.migmatite_support": "Migmatite Support",
"block.tfg.travertine_support_horizontal": "Travertine Horizontal Support",
"block.tfg.travertine_support": "Travertine Support",
"block.tfg.glacian_support": "Glacian Support",
"block.tfg.glacian_support_horizontal": "Glacian Horizontal Support",
"block.tfg.strophar_support": "Strophar Support",
"block.tfg.strophar_support_horizontal": "Strophar Horizontal Support",
"block.tfg.aeronos_support": "Aeronos Support",
"block.tfg.aeronos_support_horizontal": "Aeronos Horizontal Support",
"block.tfg.rock.hardened_deepslate": "Hardened Migmatite",
"block.tfg.rock.hardened_blackstone": "Hardened Pyroxenite",
"block.tfg.rock.hardened_dripstone": "Hardened Travertine",
@ -440,6 +446,11 @@
"item.tfg.compressed_heliox_3_bucket": "Heliox-3 Bucket",
"item.tfg.compressed_trimix_bucket": "50/30/20 Trimix Bucket",
"item.tfg.compressed_trimix_3_bucket": "50/30/20 Trimix-3 Bucket",
"item.tfg.harvest_basket": "Harvest Basket",
"item.tfg.aluminium_harvest_basket": "Aluminium Harvest Basket",
"item.tfg.wood.lumber.aeronos": "Aeronos Lumber",
"item.tfg.wood.lumber.strophar": "Strophar Lumber",
"item.tfg.wood.lumber.glacian": "Glacian Lumber",
"material.tfg.latex": "Latex",
"material.tfg.vulcanized_latex": "Vulcanized Latex",
"material.tfg.fluix": "Fluix",
@ -2994,5 +3005,9 @@
"quests.tfg_tips.tools_tips.markings.task": "Any #ags_modernmarkings:markings",
"quests.tfg_tips.tools_tips.cryodesiccation.title": "Cryodesiccation",
"quests.tfg_tips.tools_tips.cryodesiccation.subtitle": "The factory has no time for \"flavor\".",
"quests.tfg_tips.tools_tips.cryodesiccation.desc": "&l&bCryodesiccation&r&r is the process of dehydrating food at very low temperatures. Food with the trait \"Cryodesiccated\" lasts considerably longer than other food preservation methods."
"quests.tfg_tips.tools_tips.cryodesiccation.desc": "&l&bCryodesiccation&r&r is the process of dehydrating food at very low temperatures. Food with the trait \"Cryodesiccated\" lasts considerably longer than other food preservation methods.",
"quests.tfg_tips.tools_tips.harvest_basket.title": "Harvest Baskets",
"quests.tfg_tips.tools_tips.harvest_basket.subtitle": "For competitive pie bakers.",
"quests.tfg_tips.tools_tips.harvest_basket.task": "Any #tfg:harvester",
"quests.tfg_tips.tools_tips.harvest_basket.desc": "&l&2Harvest Baskets&r&r are a new tool made just for &5TFG&r! These baskets can be used to harvest whole trees and bushes of fruit in one right-click! A regular &6Harvest Basket&r has a base durability of &n128&r. But an &3Aluminium Harvest Basket&r takes no damage on use."
}

View file

@ -0,0 +1,212 @@
{
"format_version": "1.21.6",
"credit": "Made with Blockbench",
"texture_size": [32, 32],
"textures": {
"0": "tfg:item/aluminium_harvest_basket",
"particle": "tfg:item/aluminium_harvest_basket"
},
"elements": [
{
"from": [3, 0, 1],
"to": [4, 6, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 3]},
"faces": {
"north": {"uv": [0.5, 3, 1, 6], "texture": "#0"},
"east": {"uv": [7, 9, 14, 12], "texture": "#0"},
"south": {"uv": [0.5, 3, 1, 6], "texture": "#0"},
"west": {"uv": [0, 0, 7, 3], "texture": "#0"},
"up": {"uv": [0.5, 10, 0, 3], "texture": "#0"},
"down": {"uv": [0.5, 3, 0, 10], "texture": "#0"}
}
},
{
"from": [12, 0, 1],
"to": [13, 6, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 3]},
"faces": {
"north": {"uv": [0.5, 3, 1, 6], "texture": "#0"},
"east": {"uv": [0, 0, 7, 3], "texture": "#0"},
"south": {"uv": [0.5, 3, 1, 6], "texture": "#0"},
"west": {"uv": [7, 9, 14, 12], "texture": "#0"},
"up": {"uv": [0.5, 10, 0, 3], "texture": "#0"},
"down": {"uv": [0.5, 3, 0, 10], "texture": "#0"}
}
},
{
"from": [4, 0, 2],
"to": [12, 1, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 2]},
"faces": {
"north": {"uv": [3, 3.5, 7, 4], "texture": "#0"},
"east": {"uv": [1, 3, 7, 3.5], "texture": "#0"},
"south": {"uv": [3, 3.5, 7, 4], "texture": "#0"},
"west": {"uv": [1, 3, 7, 3.5], "texture": "#0"},
"up": {"uv": [7, 0, 11, 6], "texture": "#0"},
"down": {"uv": [7, 0, 11, 6], "texture": "#0"}
}
},
{
"from": [4, 0, 1],
"to": [12, 6, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 1]},
"faces": {
"north": {"uv": [7, 6, 11, 9], "texture": "#0"},
"east": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"},
"south": {"uv": [11, 6, 15, 9], "texture": "#0"},
"west": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"},
"up": {"uv": [3, 4, 7, 4.5], "texture": "#0"},
"down": {"uv": [3, 4, 7, 4.5], "texture": "#0"}
}
},
{
"from": [4, 0, 14],
"to": [12, 6, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 14]},
"faces": {
"north": {"uv": [11, 6, 15, 9], "texture": "#0"},
"east": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"},
"south": {"uv": [7, 6, 11, 9], "texture": "#0"},
"west": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"},
"up": {"uv": [3, 4, 7, 4.5], "texture": "#0"},
"down": {"uv": [3, 4, 7, 4.5], "texture": "#0"}
}
},
{
"from": [2.9, 5, 4],
"to": [2.9, 12, 5],
"rotation": {"angle": 22.5, "axis": "x", "origin": [3, 4, 4]},
"faces": {
"north": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"east": {"uv": [1.5, 7, 2, 10.5], "texture": "#0"},
"south": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"west": {"uv": [1.5, 3.5, 2, 7], "texture": "#0"},
"up": {"uv": [0, 0, 0, 0.5], "texture": "#0"},
"down": {"uv": [0, 0, 0, 0.5], "texture": "#0"}
}
},
{
"from": [13.1, 5, 4],
"to": [13.1, 12, 5],
"rotation": {"angle": 22.5, "axis": "x", "origin": [13.2, 4, 4]},
"faces": {
"north": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"east": {"uv": [1.5, 3.5, 2, 7], "texture": "#0"},
"south": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"west": {"uv": [1.5, 7, 2, 10.5], "texture": "#0"},
"up": {"uv": [0, 0, 0, 0.5], "texture": "#0"},
"down": {"uv": [0, 0, 0, 0.5], "texture": "#0"}
}
},
{
"from": [2.9, 11.39004, 7.06147],
"to": [13.1, 11.39004, 8.06147],
"rotation": {"angle": 22.5, "axis": "x", "origin": [2.9, 11.39004, 7.06147]},
"faces": {
"north": {"uv": [0, 0, 5.1, 0], "texture": "#0"},
"east": {"uv": [0, 0, 0.5, 0], "texture": "#0"},
"south": {"uv": [0, 0, 5.1, 0], "texture": "#0"},
"west": {"uv": [0, 0, 0.5, 0], "texture": "#0"},
"up": {"uv": [2, 4.5, 7, 5], "texture": "#0"},
"down": {"uv": [2, 5, 7, 5.5], "texture": "#0"}
}
},
{
"from": [2.9, 5, 11],
"to": [2.9, 12, 12],
"rotation": {"angle": -22.5, "axis": "x", "origin": [3, 4, 12]},
"faces": {
"north": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"east": {"uv": [2, 7, 1.5, 10.5], "texture": "#0"},
"south": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"west": {"uv": [2, 3.5, 1.5, 7], "texture": "#0"},
"up": {"uv": [0, 0.5, 0, 0], "texture": "#0"},
"down": {"uv": [0, 0.5, 0, 0], "texture": "#0"}
}
},
{
"from": [13.1, 5, 11],
"to": [13.1, 12, 12],
"rotation": {"angle": -22.5, "axis": "x", "origin": [13.2, 4, 12]},
"faces": {
"north": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"east": {"uv": [2, 3.5, 1.5, 7], "texture": "#0"},
"south": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"west": {"uv": [2, 7, 1.5, 10.5], "texture": "#0"},
"up": {"uv": [0, 0.5, 0, 0], "texture": "#0"},
"down": {"uv": [0, 0.5, 0, 0], "texture": "#0"}
}
},
{
"from": [2.9, 11.39004, 7.93853],
"to": [13.1, 11.39004, 8.93853],
"rotation": {"angle": -22.5, "axis": "x", "origin": [2.9, 11.39004, 8.93853]},
"faces": {
"north": {"uv": [5.1, 0, 0, 0], "texture": "#0"},
"east": {"uv": [0.5, 0, 0, 0], "texture": "#0"},
"south": {"uv": [5.1, 0, 0, 0], "texture": "#0"},
"west": {"uv": [0.5, 0, 0, 0], "texture": "#0"},
"up": {"uv": [2, 5, 7, 4.5], "texture": "#0"},
"down": {"uv": [2, 5.5, 7, 5], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [74, 0, 0],
"translation": [0, -2.25, -1.5],
"scale": [0.75, 0.75, 0.76]
},
"thirdperson_lefthand": {
"rotation": [74, 0, 0],
"translation": [0, -2.25, -1.5],
"scale": [0.75, 0.75, 0.76]
},
"firstperson_righthand": {
"rotation": [32, 0, 12],
"translation": [0, 1.25, 4]
},
"firstperson_lefthand": {
"rotation": [32, 0, 12],
"translation": [0, 1.25, 4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, -53, 0],
"translation": [0, 1.75, 0],
"scale": [0.75, 0.75, 0.75]
},
"head": {
"rotation": [-170.75, 0, 0],
"translation": [0, -1.75, 0],
"scale": [1.6, 1.5, 1.4]
},
"fixed": {
"rotation": [0, -90, 0],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "basket",
"origin": [7, 0, 3],
"color": 0,
"children": [0, 1, 2, 3, 4]
},
{
"name": "handle1",
"origin": [3, 4, 4],
"color": 0,
"children": [5, 6, 7]
},
{
"name": "handle2",
"origin": [3, 4, 4],
"color": 0,
"children": [8, 9, 10]
}
]
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "tfg:item/flint_club_head"
}
}

View file

@ -0,0 +1,212 @@
{
"format_version": "1.21.6",
"credit": "Made with Blockbench",
"texture_size": [32, 32],
"textures": {
"0": "tfg:item/harvest_basket",
"particle": "tfg:item/harvest_basket"
},
"elements": [
{
"from": [3, 0, 1],
"to": [4, 6, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 3]},
"faces": {
"north": {"uv": [0.5, 3, 1, 6], "texture": "#0"},
"east": {"uv": [7, 9, 14, 12], "texture": "#0"},
"south": {"uv": [0.5, 3, 1, 6], "texture": "#0"},
"west": {"uv": [0, 0, 7, 3], "texture": "#0"},
"up": {"uv": [0.5, 10, 0, 3], "texture": "#0"},
"down": {"uv": [0.5, 3, 0, 10], "texture": "#0"}
}
},
{
"from": [12, 0, 1],
"to": [13, 6, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 3]},
"faces": {
"north": {"uv": [0.5, 3, 1, 6], "texture": "#0"},
"east": {"uv": [0, 0, 7, 3], "texture": "#0"},
"south": {"uv": [0.5, 3, 1, 6], "texture": "#0"},
"west": {"uv": [7, 9, 14, 12], "texture": "#0"},
"up": {"uv": [0.5, 10, 0, 3], "texture": "#0"},
"down": {"uv": [0.5, 3, 0, 10], "texture": "#0"}
}
},
{
"from": [4, 0, 2],
"to": [12, 1, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [4, 0, 2]},
"faces": {
"north": {"uv": [3, 3.5, 7, 4], "texture": "#0"},
"east": {"uv": [1, 3, 7, 3.5], "texture": "#0"},
"south": {"uv": [3, 3.5, 7, 4], "texture": "#0"},
"west": {"uv": [1, 3, 7, 3.5], "texture": "#0"},
"up": {"uv": [7, 0, 11, 6], "texture": "#0"},
"down": {"uv": [7, 0, 11, 6], "texture": "#0"}
}
},
{
"from": [4, 0, 1],
"to": [12, 6, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 1]},
"faces": {
"north": {"uv": [7, 6, 11, 9], "texture": "#0"},
"east": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"},
"south": {"uv": [11, 6, 15, 9], "texture": "#0"},
"west": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"},
"up": {"uv": [3, 4, 7, 4.5], "texture": "#0"},
"down": {"uv": [3, 4, 7, 4.5], "texture": "#0"}
}
},
{
"from": [4, 0, 14],
"to": [12, 6, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 14]},
"faces": {
"north": {"uv": [11, 6, 15, 9], "texture": "#0"},
"east": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"},
"south": {"uv": [7, 6, 11, 9], "texture": "#0"},
"west": {"uv": [1, 3.5, 1.5, 6.5], "texture": "#0"},
"up": {"uv": [3, 4, 7, 4.5], "texture": "#0"},
"down": {"uv": [3, 4, 7, 4.5], "texture": "#0"}
}
},
{
"from": [2.9, 5, 4],
"to": [2.9, 12, 5],
"rotation": {"angle": 22.5, "axis": "x", "origin": [3, 4, 4]},
"faces": {
"north": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"east": {"uv": [1.5, 7, 2, 10.5], "texture": "#0"},
"south": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"west": {"uv": [1.5, 3.5, 2, 7], "texture": "#0"},
"up": {"uv": [0, 0, 0, 0.5], "texture": "#0"},
"down": {"uv": [0, 0, 0, 0.5], "texture": "#0"}
}
},
{
"from": [13.1, 5, 4],
"to": [13.1, 12, 5],
"rotation": {"angle": 22.5, "axis": "x", "origin": [13.2, 4, 4]},
"faces": {
"north": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"east": {"uv": [1.5, 3.5, 2, 7], "texture": "#0"},
"south": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"west": {"uv": [1.5, 7, 2, 10.5], "texture": "#0"},
"up": {"uv": [0, 0, 0, 0.5], "texture": "#0"},
"down": {"uv": [0, 0, 0, 0.5], "texture": "#0"}
}
},
{
"from": [2.9, 11.39004, 7.06147],
"to": [13.1, 11.39004, 8.06147],
"rotation": {"angle": 22.5, "axis": "x", "origin": [2.9, 11.39004, 7.06147]},
"faces": {
"north": {"uv": [0, 0, 5.1, 0], "texture": "#0"},
"east": {"uv": [0, 0, 0.5, 0], "texture": "#0"},
"south": {"uv": [0, 0, 5.1, 0], "texture": "#0"},
"west": {"uv": [0, 0, 0.5, 0], "texture": "#0"},
"up": {"uv": [2, 4.5, 7, 5], "texture": "#0"},
"down": {"uv": [2, 5, 7, 5.5], "texture": "#0"}
}
},
{
"from": [2.9, 5, 11],
"to": [2.9, 12, 12],
"rotation": {"angle": -22.5, "axis": "x", "origin": [3, 4, 12]},
"faces": {
"north": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"east": {"uv": [2, 7, 1.5, 10.5], "texture": "#0"},
"south": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"west": {"uv": [2, 3.5, 1.5, 7], "texture": "#0"},
"up": {"uv": [0, 0.5, 0, 0], "texture": "#0"},
"down": {"uv": [0, 0.5, 0, 0], "texture": "#0"}
}
},
{
"from": [13.1, 5, 11],
"to": [13.1, 12, 12],
"rotation": {"angle": -22.5, "axis": "x", "origin": [13.2, 4, 12]},
"faces": {
"north": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"east": {"uv": [2, 3.5, 1.5, 7], "texture": "#0"},
"south": {"uv": [0, 0, 0, 3.5], "texture": "#0"},
"west": {"uv": [2, 7, 1.5, 10.5], "texture": "#0"},
"up": {"uv": [0, 0.5, 0, 0], "texture": "#0"},
"down": {"uv": [0, 0.5, 0, 0], "texture": "#0"}
}
},
{
"from": [2.9, 11.39004, 7.93853],
"to": [13.1, 11.39004, 8.93853],
"rotation": {"angle": -22.5, "axis": "x", "origin": [2.9, 11.39004, 8.93853]},
"faces": {
"north": {"uv": [5.1, 0, 0, 0], "texture": "#0"},
"east": {"uv": [0.5, 0, 0, 0], "texture": "#0"},
"south": {"uv": [5.1, 0, 0, 0], "texture": "#0"},
"west": {"uv": [0.5, 0, 0, 0], "texture": "#0"},
"up": {"uv": [2, 5, 7, 4.5], "texture": "#0"},
"down": {"uv": [2, 5.5, 7, 5], "texture": "#0"}
}
}
],
"display": {
"thirdperson_righthand": {
"rotation": [74, 0, 0],
"translation": [0, -2.25, -1.5],
"scale": [0.75, 0.75, 0.76]
},
"thirdperson_lefthand": {
"rotation": [74, 0, 0],
"translation": [0, -2.25, -1.5],
"scale": [0.75, 0.75, 0.76]
},
"firstperson_righthand": {
"rotation": [32, 0, 12],
"translation": [0, 1.25, 4]
},
"firstperson_lefthand": {
"rotation": [32, 0, 12],
"translation": [0, 1.25, 4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, -53, 0],
"translation": [0, 1.75, 0],
"scale": [0.75, 0.75, 0.75]
},
"head": {
"rotation": [-170.75, 0, 0],
"translation": [0, -1.75, 0],
"scale": [1.6, 1.5, 1.4]
},
"fixed": {
"rotation": [0, -90, 0],
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [
{
"name": "basket",
"origin": [7, 0, 3],
"color": 0,
"children": [0, 1, 2, 3, 4]
},
{
"name": "handle1",
"origin": [3, 4, 4],
"color": 0,
"children": [5, 6, 7]
},
{
"name": "handle2",
"origin": [3, 4, 4],
"color": 0,
"children": [8, 9, 10]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 970 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 B

View file

@ -84,6 +84,11 @@ const registerTooltips = (event) =>
text.add(1, text.of('§79 x 5 x 9'))
})
})
global.AD_ASTRA_WOOD.forEach(wood => {
event.addAdvanced([`tfg:${wood.name}_support`], (item, advanced, text) => {
text.add(1, text.of('§79 x 5 x 9'))
})
})
event.addAdvanced(['tfg:light_concrete_support', 'tfg:dark_concrete_support', 'tfg:rebar_support'], (item, advanced, text) => {
text.add(1, text.of('§717 x 9 x 17'))
})

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -140,7 +140,7 @@
"weight": 10
},
{
"type": "kaolinclayze:golem_2",
"type": "primitive_creatures:golem_2",
"maxCount": 3,
"minCount": 1,
"weight": 100

View file

@ -110,7 +110,7 @@
"weight": 100
},
{
"type": "kaolinclayze:golem_2",
"type": "primitive_creatures:golem_2",
"maxCount": 4,
"minCount": 1,
"weight": 100

View file

@ -132,7 +132,7 @@
"weight": 20
},
{
"type": "kaolinclayze:golem_2",
"type": "primitive_creatures:golem_2",
"maxCount": 4,
"minCount": 1,
"weight": 100

View file

@ -128,7 +128,7 @@
"weight": 50
},
{
"type": "kaolinclayze:tfc",
"type": "primitive_creatures:tfc",
"maxCount": 4,
"minCount": 1,
"weight": 100

View file

@ -17,4 +17,8 @@ function registerTFCDataForAdAstra(event) {
food.dairy(5)
food.decayModifier(10)
})
global.AD_ASTRA_WOOD.forEach(wood => {
event.fuel(wood.logs, 800, 1500, null)
})
}

View file

@ -697,4 +697,40 @@ const registerAdAstraRecipes = (event) => {
})
//#endregion
//#region Wood
event.remove({ type: 'greate:cutting', input: '#ad_astra:aeronos_caps' })
event.remove({ type: 'greate:cutting', input: 'ad_astra:aeronos_planks' })
event.remove({ type: 'greate:cutting', input: '#ad_astra:strophar_caps' })
event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_log' })
event.remove({ type: 'greate:cutting', input: 'ad_astra:stripped_glacian_log' })
event.remove({ type: 'greate:cutting', input: 'ad_astra:strophar_planks' })
event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_planks' })
global.AD_ASTRA_WOOD.forEach(wood => {
woodBuilder(event, wood.name, wood.lumber, wood.logs, wood.log, wood.stripped_log, wood.plank, wood.stair, wood.slab, wood.door, wood.trapdoor, wood.fence, wood.fence_gate, wood.support, wood.pressure_plate, wood.button)
})
event.shaped('16x ad_astra:aeronos_ladder', [
'A A',
'ABA',
'A A'
], {
A: 'tfg:wood/lumber/aeronos',
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1),
}).id('tfg:shaped/aeronos_ladder')
event.shaped('16x ad_astra:strophar_ladder', [
'A A',
'ABA',
'A A'
], {
A: 'tfg:wood/lumber/strophar',
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1),
}).id('tfg:shaped/strophar_ladder')
generateGreenHouseRecipe(event, '8x ad_astra:glacian_fur', 16000, '64x ad_astra:glacian_log', 'tfg:green_house/glacian_tree', 'ad_astra:moon', 8, '8x ad_astra:glacian_leaves', GTValues.VA[GTValues.MV])
generateGreenHouseRecipe(event, '8x ad_astra:strophar_mushroom', 16000, '64x ad_astra:strophar_stem', 'tfg:green_house/strophar_mushroom', 'ad_astra:moon', 8, '16x ad_astra:strophar_cap', GTValues.VA[GTValues.MV])
generateGreenHouseRecipe(event, '8x ad_astra:aeronos_mushroom', 16000, '64x ad_astra:aeronos_stem', 'tfg:green_house/aeronos_mushroom', 'ad_astra:moon', 8, '16x ad_astra:aeronos_cap', GTValues.VA[GTValues.MV])
//#endregion
}

View file

@ -81,6 +81,28 @@ const registerAdAstraItemTags = (event) => {
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_helmet')
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_leggings')
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_boots')
event.remove('minecraft:wool', 'ad_astra:glacian_fur')
global.AD_ASTRA_WOOD.forEach(wood => {
if (wood.log) {
event.add('minecraft:logs', wood.log)
event.add('minecraft:logs_that_burn', wood.log)
}
if (wood.stripped_log) {
event.add('minecraft:logs', wood.stripped_log)
event.add('minecraft:logs_that_burn', wood.stripped_log)
}
if (wood.isHardwood == true) {
event.add('tfg:hardwood', wood.logs)
} else {
event.add('tfg:softwood', wood.logs)
}
})
}
const registerAdAstraBlockTags = (event) => {

View file

@ -60,14 +60,16 @@ const generateCutterRecipe = (event, input, output, duration, EUt, id) => {
* Function for generating greenhouse recipes.
*
* @param {*} event
* @param {string} input -Item
* @param {number} fluid_amount -mB
* @param {string} output -Item
* @param {string} input -Item (Not consumed)
* @param {number} fluid_amount -mB (uses #tfg:clean_water)
* @param {string} output -Item (Chanced output uses input item)
* @param {string} id -Recipe ID
* @param {string} dimension -Dimension ID
* @param {number} fertiliser_count
* @param {string} output_seconday -Item (Optional, if there should be a third output)
* @param {string} tier - GTValues.VA[] (Optional, defaults to LV)
*/
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimension, fertiliser_count) => {
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimension, fertiliser_count, output_secondary, tier) => {
// Без удобрения (Without fertilizer)
let r = event.recipes.gtceu.greenhouse(id)
@ -78,10 +80,18 @@ const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimens
.chancedOutput(input, 750, 0)
.chancedOutput(input, 500, 0)
.duration(36000) // 30 mins
.EUt(GTValues.VA[GTValues.LV])
if (dimension != null)
if (dimension != null){
r.dimension(dimension)
}
if (output_secondary != null){
r.chancedOutput(output_secondary, 750, 0)
}
if (tier != null){
r.EUt(tier)
} else {
r.EUt(GTValues.VA[GTValues.LV])
}
// С удобрением (With fertilizer)
r = event.recipes.gtceu.greenhouse(`${id}_fertilized`)
@ -93,10 +103,18 @@ const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimens
.chancedOutput(input, 4000, 0)
.chancedOutput(input, 3000, 0)
.duration(12000) // 10 mins
.EUt(GTValues.VA[GTValues.LV])
if (dimension != null)
if (dimension != null){
r.dimension(dimension)
}
if (output_secondary != null){
r.chancedOutput(output_secondary, 4000, 0)
}
if (tier != null){
r.EUt(tier)
} else {
r.EUt(GTValues.VA[GTValues.LV])
}
}
//#endregion
@ -279,4 +297,177 @@ function addCircuitToRecipe(event, recipeId, circuitNumber) {
recipe.json.add("inputs", inputs);
});
}
//#endregion
//#region Wood Builder
/**
* Generates most basic wooden recipes.
*
* All parameters are optional. Name is used for the ID.
*
* @param {*} event
* @param {string} name -Name of the wood.
* @param {string} lumber -ID for the lumber.
* @param {string} logs -Tag or ID for all the logs.
* @param {string} log -ID for the regular log.
* @param {string} stripped_log -ID for the stripped log.
* @param {string} plank -ID for planks.
* @param {string} stair -ID for stairs.
* @param {string} slab -ID for slabs.
* @param {string} door -ID for the door.
* @param {string} trapdoor -ID for the trapdoor.
* @param {string} fence -ID for the fence.
* @param {string} fence_gate -ID for the fence gate.
* @param {string} support -ID for the support.
* @param {string} pressure_plate -ID for the pressure plate.
* @param {string} button -ID for the button.
*/
function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair, slab, door, trapdoor, fence, fence_gate, support, pressure_plate, button) {
if (log && stripped_log && name) {
event.recipes.gtceu.lathe(`tfg:cutter/${name}_stripped_log_from_log`)
.itemInputs(log)
.itemOutputs(stripped_log)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
}
if (logs && lumber && name) {
event.shapeless(`8x ${lumber}`,
[logs, '#forge:tools/saws']
).id(`tfg:shapeless/${name}_lumber_from_log`)
generateCutterRecipe(event, logs, `16x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_log`)
}
if (plank && lumber && name) {
event.shapeless(`4x ${lumber}`,
[plank, '#forge:tools/saws']
).id(`tfg:shapeless/${name}_lumber_from_plank`)
generateCutterRecipe(event, plank, `4x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_plank`)
event.shaped(plank, [
'AA',
'AA'
], {
A: lumber,
}).id(`tfg:shaped/${name}_plank_from_lumber`)
}
if (slab && lumber && name) {
event.shapeless(`2x ${lumber}`,
[slab, '#forge:tools/saws']
).id(`tfg:shapeless/${name}_lumber_from_slab`)
generateCutterRecipe(event, slab, `2x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_slab`)
}
if (slab && plank && name) {
event.shaped(`6x ${slab}`, [
'AAA'
], {
A: plank,
}).id(`tfg:shaped/${name}_slab_from_plank`)
}
if (stair && lumber && name) {
event.shapeless(`3x ${lumber}`,
[stair, '#forge:tools/saws']
).id(`tfg:shapeless/${name}_lumber_from_stair`)
generateCutterRecipe(event, stair, `3x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_stair`)
}
if (stair && plank && name) {
event.shaped(`8x ${stair}`, [
'A ',
'AA ',
'AAA'
], {
A: plank,
}).id(`tfg:shaped/${name}_stair_from_plank`)
}
if (door && lumber && name) {
event.shaped(`2x ${door}`, [
'AA',
'AA',
'AA'
], {
A: lumber,
}).id(`tfg:shaped/${name}_door_from_lumber`)
}
if (trapdoor && lumber && name) {
event.shaped(`3x ${trapdoor}`, [
'AAA',
'AAA'
], {
A: lumber,
}).id(`tfg:shaped/${name}_trapdoor_from_lumber_and_plank`)
}
if (fence && lumber && plank && name) {
event.shaped(`8x ${fence}`, [
'ABA',
'ABA'
], {
A: lumber,
B: plank,
}).id(`tfg:shaped/${name}_fence_from_lumber_and_plank`)
}
if (fence_gate && lumber && plank && name) {
event.shaped(`2x ${fence_gate}`, [
'ABA',
'ABA'
], {
A: plank,
B: lumber,
}).id(`tfg:shaped/${name}_fence_gate_from_lumber_and_plank`)
}
if (support && logs && name) {
event.shapeless(`8x ${support}`,
[`2x ${logs}`, '#forge:tools/saws']
).id(`tfg:shapeless/${name}_support_from_logs`)
event.recipes.gtceu.assembler(`tfg:assembler/${name}_support_from_logs`)
.itemInputs(`2x ${logs}`)
.itemOutputs(`8x ${support}`)
.duration(50)
.circuit(4)
.EUt(GTValues.VA[GTValues.ULV])
}
if (pressure_plate && slab && name) {
event.shaped(pressure_plate, [
' B ',
'ACA',
' D '
], {
A: slab,
B: '#forge:tools/hammers',
C: '#forge:springs',
D: '#forge:tools/screwdrivers',
}).id(`tfg:shaped/${name}_pressure_plate`)
event.recipes.gtceu.assembler(`tfg:assembler/${name}_pressure_plate`)
.itemInputs(`2x ${slab}`, '#forge:springs')
.itemOutputs(`2x ${pressure_plate}`)
.duration(50)
.circuit(0)
.EUt(GTValues.VA[GTValues.ULV])
}
if (button && pressure_plate && name) {
event.recipes.gtceu.cutter(`tfg:cutter/${name}_button_from_pressure_plate`)
.itemInputs(pressure_plate)
.itemOutputs(`6x ${button}`)
.duration(50)
.EUt(GTValues.VA[GTValues.ULV])
}
}
//#endregion

View file

@ -38,6 +38,7 @@ ServerEvents.tags('item', event => {
registerModernMarkingsItemTags(event)
registerMoreRedItemTags(event)
registerHotOrNotItemTags(event)
registerPrimitiveCreaturesItemTags(event)
registerRailWaysItemTags(event)
registerRnrItemTags(event)
registerSophisticatedBackpacksItemTags(event)
@ -237,6 +238,7 @@ ServerEvents.recipes(event => {
registerMinecraftRecipes(event)
registerModernMarkingRecipes(event)
registerMoreRedRecipes(event)
registerPrimitiveCreaturesRecipes(event)
registerProgrammedCircuitCardRecipes(event)
registerRailWaysRecipes(event)
registerRnrRecipes(event)

View file

@ -814,10 +814,10 @@ const registerMinecraftRecipes = (event) => {
.EUt(420)
event.recipes.gtceu.assembler('tfg:minecraft/elytra_repairing')
.itemInputs('6x tfg:polycaprolactam_fabric', Item.of('minecraft:elytra', '{Damage:2045}').strongNBT())
.itemInputs('6x tfg:polycaprolactam_fabric', 'minecraft:elytra')
.circuit(4)
.itemOutputs(Item.of('minecraft:elytra', "{Damage:0}"))
.duration(1600)
.duration(800)
.EUt(120)
event.recipes.gtceu.arc_furnace('tfg:minecraft/arc_furnace/recycling/elytra')
@ -1083,4 +1083,6 @@ const registerMinecraftRecipes = (event) => {
event.shapeless('2x minecraft:gunpowder',
['#forge:tools/mortars', 'tfc:powder/saltpeter', 'tfc:powder/saltpeter', 'tfc:powder/sulfur', 'tfc:powder/charcoal', 'tfc:powder/charcoal', 'tfc:powder/charcoal'])
.id('tfg:shapeless/gunpowder_tfc_style')
event.shapeless('8x minecraft:bone_meal', ['#forge:tools/mortars', 'minecraft:skeleton_skull'])
}

View file

@ -2079,4 +2079,5 @@ function removeMinecraftRecipes(event) {
//#endregion
event.remove({ id: 'minecraft:flower_banner_pattern' })
event.remove({ id: 'gtceu:assembler/lodestone' })
}

View file

@ -2,12 +2,180 @@
function registerPrimitiveCreaturesLoots(event) {
event.addEntityLootModifier('kaolinclayze:tfc')
// kaolin klayze
event.addEntityLootModifier('primitive_creatures:tfc')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([12,16], ['tfc:kaolin_clay', 'minecraft:clay_ball'])
.addLoot('tfc:plant/blood_lily')
event.addEntityLootModifier('kaolinclayze:golem_2')
// graphite glayze
event.addEntityLootModifier('primitive_creatures:golem_2')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([3,5], ['gtceu:rich_raw_graphite'])
.addWeightedLoot([2,4], ['gtceu:rich_raw_graphite'])
const CLOTHING_DROP_RATE = 0.05
// inhabitant - light tan clothes, holds a stone axe
event.addEntityLootModifier('primitive_creatures:iloger_1')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([
// the illusion of randomness
Item.of('tfc:food/bunchberry', 3),
Item.of('tfc:food/cranberry', 4),
Item.of('tfc:food/gooseberry', 5),
Item.of('tfc:food/blackberry', 6),
Item.of('tfc:food/blueberry', 3),
Item.of('tfc:food/cloudberry', 4),
Item.of('tfc:food/elderberry', 5),
Item.of('tfc:food/raspberry', 6),
Item.of('tfc:food/snowberry', 3),
Item.of('tfc:food/strawberry', 4),
Item.of('tfc:food/wintergreen_berry', 5)])
.addAlternativesLoot(
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.8)),
LootEntry.of('gtceu:stone_axe').when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:iloger_1')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:raw_hat'),
Item.of('tfc_textile:raw_shirt'),
Item.of('tfc_textile:raw_pants'),
Item.of('tfc_textile:raw_socks')])
// herbalist - brown clothes with a mask that looks like a Creaking
event.addEntityLootModifier('primitive_creatures:iloger_2')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,2], ['gtceu:tricalcium_phosphate_dust'])
.addAlternativesLoot(
LootEntry.of('tfc:plant/field_horsetail').when(c => c.randomChance(0.3)),
LootEntry.of('tfc:plant/foxglove').when(c => c.randomChance(0.5)),
LootEntry.of('firmalife:beeswax').when(c => c.randomChance(0.8)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:iloger_2')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:grizzly_bear_hat'),
Item.of('tfc_textile:grizzly_bear_shirt'),
Item.of('tfc_textile:grizzly_bear_pants'),
Item.of('tfc_textile:grizzly_bear_boots')])
// bonebreaker - skull helmet, bone armor? hits harder, has knockback
event.addEntityLootModifier('primitive_creatures:iloger_3')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([0,2], ['minecraft:flint'])
.addWeightedLoot([1,3], ['minecraft:bone'])
.addAlternativesLoot(
LootEntry.of('gtceu:stone_hammer').when(c => c.randomChance(0.2)),
LootEntry.of('minecraft:skeleton_skull').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5))) // battered wool
event.addEntityLootModifier('primitive_creatures:iloger_3')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:direwolf_hat'),
Item.of('tfc_textile:direwolf_shirt'),
Item.of('tfc_textile:direwolf_pants'),
Item.of('tfc_textile:direwolf_boots')])
// forager - leaf on head, leafy clothes (like the swamp vanilla villager type), ranged with poison
event.addEntityLootModifier('primitive_creatures:iloger_4')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,3], LootEntry.of('minecraft:tipped_arrow')).addPotion("poison")
.addAlternativesLoot(
LootEntry.of('firmalife:food/nightshade_berry').when(c => c.randomChance(0.7)),
LootEntry.of('minecraft:spider_eye').when(c => c.randomChance(0.7)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)))
// hunter - wears brown and white fur, briefly disappears when hit, ranged with weakness
event.addEntityLootModifier('primitive_creatures:iloger_5')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,3], LootEntry.of('minecraft:tipped_arrow')).addPotion("weakness")
.addAlternativesLoot(
// placeholder for a blowpipe
LootEntry.of('minecraft:bamboo').when(c => c.randomChance(0.6)),
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5)), // battered wool
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:iloger_5')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:sabertooth_hat'),
Item.of('tfc_textile:sabertooth_shirt'),
Item.of('tfc_textile:sabertooth_pants'),
Item.of('tfc_textile:sabertooth_boots')])
// shaman - yellow clothes, throws fireballs
event.addEntityLootModifier('primitive_creatures:iloger_6')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,2], ['primitive_creatures:f_1']) // primitive explosives
.addWeightedLoot([1,3], ['minecraft:gunpowder'])
.addAlternativesLoot(
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5)), // battered wool
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:iloger_6')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:cougar_hat'),
Item.of('tfc_textile:cougar_shirt'),
Item.of('tfc_textile:cougar_pants'),
Item.of('tfc_textile:cougar_boots')])
// beast tamer - wears tiger fur, holds vanilla sugarcane? fucking summons ravagers
event.addEntityLootModifier('primitive_creatures:wiloger')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([0,2], ['primitive_creatures:grh']) // battered wool
.addAlternativesLoot(
LootEntry.of('minecraft:lead').when(c => c.randomChance(0.4)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:wiloger')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:tiger_hat'),
Item.of('tfc_textile:tiger_shirt'),
Item.of('tfc_textile:tiger_pants'),
Item.of('tfc_textile:tiger_boots')])
// huntsman - lion fur, holds flint club - stuns you in place when hit
event.addEntityLootModifier('primitive_creatures:piloger_9')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addAlternativesLoot(
LootEntry.of('primitive_creatures:yhgi').when(c => c.randomChance(0.2)), // flint club
LootEntry.of('tfc:small_raw_hide').when(c => c.randomChance(0.4)),
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5))) // battered wool
event.addEntityLootModifier('primitive_creatures:piloger_9')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:lion_hat'),
Item.of('tfc_textile:lion_shirt'),
Item.of('tfc_textile:lion_pants'),
Item.of('tfc_textile:lion_boots')])
// mercenary
event.addEntityLootModifier('primitive_creatures:viloger_10')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,2], ['minecraft:emerald'])
.addAlternativesLoot(
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.8)), // battered wool
LootEntry.of('gtceu:stone_knife').when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:viloger_10')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:raw_hat'),
Item.of('tfc_textile:raw_shirt'),
Item.of('tfc_textile:raw_pants'),
Item.of('tfc_textile:raw_socks')])
// mistah beeeaaaasssstt
event.addEntityLootModifier('primitive_creatures:beast')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([4,8], ['minecraft:bone'])
// raw meat?
}

View file

@ -0,0 +1,44 @@
// priority: 0
function registerPrimitiveCreaturesRecipes(event) {
// terrible idol crafting
event.remove({ id: 'primitive_creatures:h' })
// the brown idol -> brown dye
event.remove({ id: 'primitive_creatures:eg' })
// craft flint club
event.remove({ id: 'primitive_creatures:rwtge' })
// battered wool to wool block
event.remove({ id: 'primitive_creatures:egwgew' })
// lodestone?
event.remove({ id: 'primitive_creatures:hhg' })
// craft fortified flint club
event.replaceInput({ id: 'primitive_creatures:wegfweg' }, 'primitive_creatures:tt_5', '#tfc:nuggets')
event.replaceInput({ id: 'primitive_creatures:wegfweg' }, 'primitive_creatures:grh', 'tfc:wool')
event.recipes.tfc.knapping(
'tfg:flint_club_head',
'tfg:flint',
[
' XXX ',
' XXX ',
' X ',
' XXX ',
' X '
]
).outsideSlotRequired(false)
.id('tfg:knapping/flint_club_head')
// craft flint club
event.shapeless('primitive_creatures:yhgi', ['tfg:flint_club_head', '#forge:rods/wooden'])
.id('tfg:shapeless/flint_club')
// turn battered wool into tfc wool
event.shapeless('tfc:wool', ['primitive_creatures:grh', 'primitive_creatures:grh', '#forge:tools/knives'])
.id('tfg:shapeless/cleaning_battered_wool')
// mud idol into mud
event.shapeless('6x tfc:daub', ['primitive_creatures:totem_3'])
.id('tfg:shapeless/totem_3_decomp')
}

View file

@ -0,0 +1,28 @@
// priority: 0
function registerPrimitiveCreaturesItemTags(event) {
const DISABLED_ITEMS = [
// idol fragment (combine to make a terrible idol)
'primitive_creatures:tt_5',
// the terrible idol (spawns illager herobrine)
'primitive_creatures:kopo',
// the friendly idol (spawns an allay)
'primitive_creatures:jjj',
]
DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
// This tag doesn't actually do anything, as the list is hardcoded into the mod,
// but it makes it easier to find what they will accept
event.add('primitive_creatures:mercenary_payment', 'minecraft:rabbit_foot')
event.add('primitive_creatures:mercenary_payment', 'minecraft:leather')
event.add('primitive_creatures:mercenary_payment', 'minecraft:scute')
event.add('primitive_creatures:mercenary_payment', 'minecraft:redstone')
event.add('primitive_creatures:mercenary_payment', 'minecraft:gunpowder')
event.add('primitive_creatures:mercenary_payment', 'minecraft:spider_eye')
event.add('primitive_creatures:mercenary_payment', 'minecraft:flint')
event.add('primitive_creatures:mercenary_payment', 'minecraft:emerald')
}

View file

@ -1,7 +1,10 @@
// priority: 0
function registerSpeciesRecipes(event) {
event.remove({ mod: 'species' })
global.SPECIES_DISABLED_ITEMS.forEach(item => {
event.remove({ input: item })
event.remove({ output: item })
})
event.shapeless('species:music_disc_dial', ['etched:blank_music_disc', 'species:birt_egg'])

View file

@ -295,4 +295,11 @@ const registerTFCRecipes = (event) => {
]).id('tfc:shapeless/jar_lid')
event.replaceInput({ mod: 'tfc' }, 'minecraft:sugar', '#tfg:sugars')
// Sea Water
event.recipes.tfc.barrel_instant()
.inputItem(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Salt, 1))
.inputFluid(Fluid.of('minecraft:water', 1000))
.outputFluid(Fluid.of('tfc:salt_water', 1000))
.id('tfg:barrel/water_to_salt_water')
}

View file

@ -128,6 +128,7 @@ function removeTFCRecipes(event) {
event.remove({ id: `tfc:crafting/windmill_blade` })
event.remove({ id: `tfc:barrel/dye/bleach_windmill_blades` })
event.remove({ id: 'tfc:barrel/fresh_to_salt_water' })
global.MINECRAFT_DYE_NAMES.forEach(dye => {
event.remove({ id: `tfc:barrel/dye/${dye}_windmill_blade` })

View file

@ -64,6 +64,9 @@ const registerTFCItemTags = (event) => {
event.add('tfg:ferments_to_rennet', 'firmalife:food/fig')
event.add('tfg:ferments_to_rennet', 'tfc:plant/ivy')
//Plants
event.add('tfc:plants', '#tfc:wild_fruits')
// Для складывания
event.add('tfc:pileable_ingots', '#forge:ingots')
event.add('tfc:pileable_sheets', '#forge:plates')

View file

@ -42,6 +42,11 @@ const registerTFGItemSize = (event) => {
event.itemSize('tfg:fishing_net/tin_alloy', 'large', 'medium', 'tin_alloy_fishing_net')
event.itemSize('tfg:fishing_net/magnalium', 'large', 'medium', 'magnalium_fishing_net')
event.itemSize('tfg:trowel', 'large', 'medium', 'trowel')
event.itemSize('tfg:harvest_basket', 'large', 'medium', 'harvest_basket')
event.itemSize('tfg:aluminium_harvest_basket', 'large', 'medium', 'aluminium_harvest_basket')
event.itemSize('tfg:rapeseed_product', 'small', 'light', 'rapeseed_product')
event.itemSize('tfg:sunflower_product', 'small', 'light', 'sunflower_product')
@ -64,6 +69,10 @@ const registerTFGSupportData = (event) => {
event.support(`tfg:${stone}_support_horizontal`, 2, 2, 4, `${stone}_support`)
})
global.AD_ASTRA_WOOD.forEach(wood => {
event.support(`tfg:${wood.name}_support_horizontal`, 2, 2, 4, `${wood.name}_support`)
})
}

View file

@ -459,6 +459,8 @@ function registerTFGFoodRecipes(event) {
cookingRecipe("corn_tortilla", "firmalife:food/masa", "firmalife:food/corn_tortilla")
cookingRecipe("baked_potato", "tfc:food/potato", "tfc:food/baked_potato")
cookingRecipe("boiled_egg", "#firmalife:foods/raw_eggs", "tfc:food/boiled_egg")
.inputFluids(JsonIO.of({ amount: 200, value: { tag: "tfg:clean_water" }}))

View file

@ -745,4 +745,64 @@ function registerTFGMiscellaneousRecipes(event) {
.itemOutputs('gtceu:quantum_eye')
.duration(24 * 20)
.EUt(480)
// Harvest Baskets
event.shaped('tfg:harvest_basket', [
'BDB',
'ACA',
'AAA'
], {
A: 'tfg:soaked_hardwood_strip',
B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1),
C: 'tfc:glue',
D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1),
}).id('tfg:shaped/harvest_basket_from_wood')
event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_wood')
.itemInputs(
'5x tfg:soaked_hardwood_strip',
ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2),
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1)
)
.inputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('tfg:harvest_basket')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.shaped('tfg:harvest_basket', [
'BDB',
'ACA',
'AAA'
], {
A: 'tfc:soaked_papyrus_strip',
B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1),
C: 'tfc:glue',
D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1),
}).id('tfg:shaped/harvest_basket_from_papyrus')
event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_papyrus')
.itemInputs(
'5x tfc:soaked_papyrus_strip',
ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2),
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1)
)
.inputFluids(Fluid.of('gtceu:glue', 50))
.itemOutputs('tfg:harvest_basket')
.duration(100)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.assembler('tfg:assembler/aluminium_harvest_basket')
.itemInputs(
ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 3),
ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 2),
ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Steel, 2),
ChemicalHelper.get(TagPrefix.rodLong,
GTMaterials.Aluminium, 1)
)
.inputFluids(Fluid.of('gtceu:cobalt_brass', 144))
.itemOutputs('tfg:aluminium_harvest_basket')
.duration(200)
.circuit(4)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -85,6 +85,12 @@ function registerTFGPapermakingRecipes(event) {
.inputs('tfg:hardwood_strip', TFC.fluidStackIngredient('#tfc:water', 100))
.outputItem('tfg:soaked_hardwood_strip')
.id('tfg:barrel/soak_hardwood_strip')
event.recipes.gtceu.chemical_bath('tfg:chemical_bath/soak_hardwood_strips')
.inputFluids( JsonIO.of({ amount: 100, value: { tag: "tfc:any_water" }}))
.itemInputs('tfg:hardwood_strip')
.itemOutputs('tfg:soaked_hardwood_strip')
.duration(200)
.EUt(GTValues.VA[GTValues.ULV])
//Create Hardwood Dust using Quern and Millstone/Crushing Wheels
event.recipes.gtceu.macerator('tfg:macerator/macerate_hardwood_strips')

View file

@ -376,4 +376,27 @@ function registerTFGRecyclingRecipes(event) {
.duration(GTMaterials.Titanium.getMass() * 6)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
//Aluminium Harvest Basket
event.recipes.gtceu.macerator('tfg:macerator/recycling/aluminium_harvest_basket')
.itemInputs('tfg:aluminium_harvest_basket')
.itemOutputs(
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 2),
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 1),
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.CobaltBrass, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 2)
.category(GTRecipeCategories.MACERATOR_RECYCLING)
.EUt(GTValues.VA[GTValues.ULV])
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/aluminium_harvest_basket')
.itemInputs('tfg:aluminium_harvest_basket')
.itemOutputs(
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 2),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 1),
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.CobaltBrass, 2)
)
.duration(GTMaterials.Aluminium.getMass() * 2)
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
.EUt(GTValues.VA[GTValues.LV])
}

View file

@ -29,7 +29,7 @@ const registerTFGItemTags = (event) => {
//Knapping
event.add('tfc:any_knapping', 'minecraft:flint')
//Tools & Armor
//#region Tools & Armor
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/wood')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/brass')
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/rose_gold')
@ -44,6 +44,10 @@ const registerTFGItemTags = (event) => {
event.add('forge:tools/trowels', 'tfg:trowel')
event.add('tfc:usable_on_tool_rack', 'tfg:trowel')
event.add('tfg:harvester', 'tfg:harvest_basket')
event.add('tfg:harvester', 'tfg:aluminium_harvest_basket')
//#endregion
// #region Paper from wood
event.add('tfg:hardwood_strips', 'tfg:hardwood_strip')
event.add('tfg:hardwood_strips', 'tfg:soaked_hardwood_strip')
@ -310,6 +314,7 @@ const registerTFGItemTags = (event) => {
//#endregion
}
//#region Blocks
const registerTFGBlockTags = (event) => {
event.add('minecraft:mineable/shovel', 'tfg:ash_pile')
@ -340,8 +345,13 @@ const registerTFGBlockTags = (event) => {
event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_dripstone')
event.add('tfc:rock/hardened', 'tfg:rock/hardened_dripstone')
event.add('tfg:harvester_harvestable', '#tfc:fruit_tree_leaves')
event.add('tfg:harvester_harvestable', '#tfc:berry_bushes')
event.add('tfg:harvester_harvestable', '#tfc:any_spreading_bush')
// #endregion
}
//#endregion
//#region Fluids
const registerTFGFluidTags = (event) => {

View file

@ -109,4 +109,10 @@ global.BREATHABLE_COMPRESSED_AIRS =
'tfg:compressed_heliox_3',
'tfg:compressed_trimix',
'tfg:compressed_trimix_3'
];
];
global.AD_ASTRA_WOOD = [
{name: 'aeronos', logs: '#ad_astra:aeronos_caps', log: 'ad_astra:aeronos_stem', stripped_log: null, lumber: 'tfg:wood/lumber/aeronos', plank: 'ad_astra:aeronos_planks', stair: 'ad_astra:aeronos_stairs', slab: 'ad_astra:aeronos_slab', fence: 'ad_astra:aeronos_fence', fence_gate: 'ad_astra:aeronos_fence_gate', door: 'ad_astra:aeronos_door', trapdoor: 'ad_astra:aeronos_trapdoor', button: null, pressure_plate: null, support: 'tfg:aeronos_support', isHardwood: false},
{name: 'strophar', logs: '#ad_astra:strophar_caps', log: 'ad_astra:strophar_stem', stripped_log: null, lumber: 'tfg:wood/lumber/strophar', plank: 'ad_astra:strophar_planks', stair: 'ad_astra:strophar_stairs', slab: 'ad_astra:strophar_slab', fence:'ad_astra:strophar_fence', fence_gate: 'ad_astra:strophar_fence_gate', door:'ad_astra:strophar_door', trapdoor: 'ad_astra:strophar_trapdoor', button: null, pressure_plate: null, support: 'tfg:strophar_support', isHardwood: false},
{name: 'glacian', logs: '#ad_astra:glacian_logs', log: 'ad_astra:glacian_log', stripped_log: 'ad_astra:stripped_glacian_log', lumber: 'tfg:wood/lumber/glacian', plank: 'ad_astra:glacian_planks', stair: 'ad_astra:glacian_stairs', slab: 'ad_astra:glacian_slab', fence: 'ad_astra:glacian_fence', fence_gate: 'ad_astra:glacian_fence_gate', door: 'ad_astra:glacian_door', trapdoor: 'ad_astra:glacian_trapdoor', button: 'ad_astra:glacian_button', pressure_plate: 'ad_astra:glacian_pressure_plate', support: 'tfg:glacian_support', isHardwood: true},
]

View file

@ -72,6 +72,6 @@ TFCEvents.registerFoodTrait(event => {
registerTFGFoodTraits(event)
})
Platform.mods.kaolinclayze.name = "Primitive Creatures";
Platform.mods.primitive_creatures.name = "Primitive Creatures";
Platform.mods.tfg.name = "TerraFirmaGreg";
Platform.mods.kubejs.name = "TerraFirmaGreg";

View file

@ -138,4 +138,24 @@ function registerTFGSupportBlocks(event) {
.requiresTool(true)
})
global.AD_ASTRA_WOOD.forEach(wood => {
event.create(`tfg:${wood.name}_support`, 'tfc:support')
.textureAll(`tfg:block/support/${wood.name}_support`)
.horizontal(horizontal => {
horizontal.textureAll(`tfg:block/support/${wood.name}_support`)
horizontal.soundType('wood')
horizontal.hardness(2)
horizontal.resistance(2)
horizontal.mapColor('color_orange')
horizontal.tagBlock('minecraft:mineable/axe')
horizontal.requiresTool(false)
})
.soundType('wood')
.hardness(2)
.resistance(2)
.mapColor('color_orange')
.tagBlock('minecraft:mineable/axe')
.requiresTool(false)
})
}

View file

@ -13,12 +13,20 @@ const registerTFGItems = (event) => {
event.create('tfg:vitrified_pearl')
// #endregion
// #region Orbit dimension markers
// #region Space
// Orbit dimension markers
event.create('tfg:marker/earth_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/moon_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/mars_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/venus_orbit').tag('c:hidden_from_recipe_viewers')
event.create('tfg:marker/mercury_orbit').tag('c:hidden_from_recipe_viewers')
global.AD_ASTRA_WOOD.forEach(wood => {
event.create(`tfg:wood/lumber/${wood.name}`)
.translationKey(`item.tfg.${wood.name}_lumber`)
.tag('tfc:lumber')
})
// #endregion
// #region Paper making
@ -157,18 +165,10 @@ const registerTFGItems = (event) => {
//#region Misc
event.create('tfg:paraffin_wax')
.translationKey('item.tfg.paraffin_wax')
event.create('tfg:conifer_rosin')
.translationKey('item.tfg.conifer_rosin')
event.create('tfg:foil_pack')
.translationKey('item.tfg.foil_pack')
.texture('tfg:item/foil_pack')
event.create('tfg:clean_foil_pack')
.translationKey('item.tfg.clean_foil_pack')
.texture('tfg:item/clean_foil_pack')
event.create('tfg:flint_club_head')
//#endregion
//#region Cloth & String
@ -198,6 +198,17 @@ const registerTFGItems = (event) => {
event.create('tfg:armor_stand_arms')
.translationKey('item.tfg.armor_stand_arms')
event.create('tfg:harvest_basket')
.translationKey('item.tfg.harvest_basket')
.parentModel('tfg:item/harvest_basket')
.maxDamage(128)
event.create('tfg:aluminium_harvest_basket')
.translationKey('item.tfg.aluminium_harvest_basket')
.parentModel('tfg:item/aluminium_harvest_basket')
.unstackable()
//Fishing Nets
event.create('tfg:fishing_net/wood')
.translationKey('item.tfg.fishing_net.wood')
.parentModel('tfg:item/fishing_nets/wood_fishing_net')

File diff suppressed because it is too large Load diff

View file

@ -156,7 +156,7 @@
"first-person-model": {
"side": "CLIENT"
},
"ftb-backups-2": {
"flickerfix": {
"side": "CLIENT"
},
"no-report-button": {
@ -213,6 +213,12 @@
"entityculling": {
"side": "CLIENT"
},
"pick-up-notifier": {
"side": "CLIENT"
},
"smooth-boot-reloaded": {
"side": "CLIENT"
},
"resourceful-config": {
"side": "BOTH"
},
@ -240,9 +246,6 @@
"particular-reforged": {
"side": "BOTH"
},
"pick-up-notifier": {
"side": "BOTH"
},
"inventory-tweaks-refoxed": {
"side": "BOTH"
},