- Lots of food stuff (#1196)
* - Lots of food stuff * Updated Changelog
|
|
@ -9,6 +9,7 @@
|
|||
- New bedrock ore veins on the moon! Much better sources of infinite materials than stone dusts. @TomPlop
|
||||
- New machines to properly automate food, along with proper compatibility between machines and TFC's food system, so you can't turn rotten grains into fresh bread any more. The electric greenhouse now also always outputs fresh food. @ofoxsmith
|
||||
- New electric refrigerator with different tiers. You can craft the old one into this new one, but please take your food out of it before upgrading otherwise it will be lost! @ofoxsmith
|
||||
- Added many new advanced food items including freeze-dried fruit, calorie paste, and meal bags. @Redeix
|
||||
- Quest updates for all of the above. @TomPlop
|
||||
### Minor changes
|
||||
- Balance changes for water wheels @Pyritie
|
||||
|
|
|
|||
|
|
@ -282,6 +282,7 @@
|
|||
"item.tfg.food.cooked_crawlermari": "Cooked Crawlermari",
|
||||
"item.tfg.food.raw_limpet": "Raw Limpet",
|
||||
"item.tfg.food.cooked_limpet": "Cooked Limpet",
|
||||
"tfg.tooltip.foodtrait.freeze_dried": "Cryodesiccated",
|
||||
"material.tfg.latex": "Latex",
|
||||
"material.tfg.vulcanized_latex": "Vulcanized Latex",
|
||||
"material.tfg.fluix": "Fluix",
|
||||
|
|
@ -358,6 +359,41 @@
|
|||
"item.gtceu.silver_purified_ore": "Deprecated Item, Craft to Upgrade",
|
||||
"item.gtceu.tin_purified_ore": "Deprecated Item, Craft to Upgrade",
|
||||
"item.gtceu.lead_purified_ore": "Deprecated Item, Craft to Upgrade",
|
||||
"item.tfg.foil_pack": "Foil Pack",
|
||||
"item.tfg.used_foil_pack": "Used Foil Pack",
|
||||
"item.tfg.clean_foil_pack": "Clean Foil Pack",
|
||||
"item.tfg.dry_ice": "Dry Ice",
|
||||
"item.tfg.food.freeze_dried.red_grapes": "Freeze Dried Red Grapes",
|
||||
"item.tfg.food.freeze_dried.white_grapes": "Freeze Dried White Grapes",
|
||||
"item.tfg.food.freeze_dried.glow_berries": "Freeze Dried Glow Berries",
|
||||
"item.tfg.food.freeze_dried.chorus_fruit": "Freeze Dried Chorus Fruit",
|
||||
"item.tfg.food.freeze_dried.popped_chorus_fruit": "Freeze Dried Popped Chorus Fruit",
|
||||
"item.tfg.food.freeze_dried.blackberry": "Freeze Dried Blackberries",
|
||||
"item.tfg.food.freeze_dried.blueberry": "Freeze Dried Blueberries",
|
||||
"item.tfg.food.freeze_dried.bunchberry": "Freeze Dried Bunchberries",
|
||||
"item.tfg.food.freeze_dried.cloudberry": "Freeze Dried Cloudberries",
|
||||
"item.tfg.food.freeze_dried.cranberry": "Freeze Dried Cranberries",
|
||||
"item.tfg.food.freeze_dried.elderberry": "Freeze Dried Elderberries",
|
||||
"item.tfg.food.freeze_dried.gooseberry": "Freeze Dried Gooseberries",
|
||||
"item.tfg.food.freeze_dried.raspberry": "Freeze Dried Raspberries",
|
||||
"item.tfg.food.freeze_dried.snowberry": "Freeze Dried Snowberries",
|
||||
"item.tfg.food.freeze_dried.strawberry": "Freeze Dried Strawberries",
|
||||
"item.tfg.food.freeze_dried.wintergreen_berry": "Freeze Dried Wintergreen Berries",
|
||||
"item.tfg.food.freeze_dried.banana": "Freeze Dried Banana",
|
||||
"item.tfg.food.freeze_dried.cherry": "Freeze Dried Cherries",
|
||||
"item.tfg.food.freeze_dried.green_apple": "Freeze Dried Green Apple",
|
||||
"item.tfg.food.freeze_dried.lemon": "Freeze Dried Lemon",
|
||||
"item.tfg.food.freeze_dried.olive": "Freeze Dried Olives",
|
||||
"item.tfg.food.freeze_dried.orange": "Freeze Dried Orange",
|
||||
"item.tfg.food.freeze_dried.peach": "Freeze Dried Peach",
|
||||
"item.tfg.food.freeze_dried.plum": "Freeze Dried Plum",
|
||||
"item.tfg.food.freeze_dried.red_apple": "Freeze Dried Red Apple",
|
||||
"item.tfg.food.freeze_dried.pumpkin_chunks": "Freeze Dried Pumpkin Chunks",
|
||||
"item.tfg.food.freeze_dried.melon_slice": "Freeze Dried Melon Slice",
|
||||
"item.tfg.food.freeze_dried.fig": "Freeze Dried Fig",
|
||||
"item.tfg.food.freeze_dried.pineapple": "Freeze Dried Pineapple",
|
||||
"item.tfg.food.calorie_paste": "Calorie Paste",
|
||||
"item.tfg.food.meal_bag": "Meal Bag",
|
||||
"gtceu:rich_raw_copper": "Deprecated Item, Craft to Upgrade",
|
||||
"gtceu:poor_raw_copper": "Deprecated Item, Craft to Upgrade",
|
||||
"gtceu:rich_raw_gold": "Deprecated Item, Craft to Upgrade",
|
||||
|
|
@ -501,6 +537,7 @@
|
|||
"tfg.food_recipe.brining": "Brining",
|
||||
"tfg.food_recipe.smoking": "Smoking",
|
||||
"tfg.food_recipe.drying": "Drying",
|
||||
"tfg.food_recipe.freeze_drying": "Dessicate",
|
||||
"tfg.recipe.macerator_warning": "Only outputs first slot until HV",
|
||||
"tfg.grapplemod.repair": "Repair recipe, keeps your upgrades. §lNEVER combine two grapples or you'll lose ALL your upgrades!§r",
|
||||
"tfg.grapplemod.upgrades.maxlen": "Increases §lMax Length§r by 20, up to 200.",
|
||||
|
|
|
|||
BIN
kubejs/assets/tfg/textures/item/clean_foil_pack.png
Normal file
|
After Width: | Height: | Size: 522 B |
BIN
kubejs/assets/tfg/textures/item/dry_ice.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
5
kubejs/assets/tfg/textures/item/dry_ice.png.mcmeta
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"animation": {
|
||||
"frametime": 1
|
||||
}
|
||||
}
|
||||
BIN
kubejs/assets/tfg/textures/item/foil_pack.png
Normal file
|
After Width: | Height: | Size: 416 B |
BIN
kubejs/assets/tfg/textures/item/food/calorie_paste.png
Normal file
|
After Width: | Height: | Size: 347 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_banana.png
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_blackberry.png
Normal file
|
After Width: | Height: | Size: 456 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_blueberry.png
Normal file
|
After Width: | Height: | Size: 452 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_bunchberry.png
Normal file
|
After Width: | Height: | Size: 455 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_cherry.png
Normal file
|
After Width: | Height: | Size: 450 B |
|
After Width: | Height: | Size: 455 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_cloudberry.png
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_cranberry.png
Normal file
|
After Width: | Height: | Size: 456 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_elderberry.png
Normal file
|
After Width: | Height: | Size: 459 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_fig.png
Normal file
|
After Width: | Height: | Size: 457 B |
|
After Width: | Height: | Size: 457 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_gooseberry.png
Normal file
|
After Width: | Height: | Size: 457 B |
|
After Width: | Height: | Size: 455 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_lemon.png
Normal file
|
After Width: | Height: | Size: 452 B |
|
After Width: | Height: | Size: 455 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_olive.png
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_orange.png
Normal file
|
After Width: | Height: | Size: 453 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_peach.png
Normal file
|
After Width: | Height: | Size: 458 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_pineapple.png
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_plum.png
Normal file
|
After Width: | Height: | Size: 460 B |
|
After Width: | Height: | Size: 454 B |
|
After Width: | Height: | Size: 454 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_raspberry.png
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_red_apple.png
Normal file
|
After Width: | Height: | Size: 455 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_red_grapes.png
Normal file
|
After Width: | Height: | Size: 449 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_snowberry.png
Normal file
|
After Width: | Height: | Size: 455 B |
BIN
kubejs/assets/tfg/textures/item/food/freeze_dried_strawberry.png
Normal file
|
After Width: | Height: | Size: 451 B |
|
After Width: | Height: | Size: 452 B |
|
After Width: | Height: | Size: 458 B |
BIN
kubejs/assets/tfg/textures/item/food/meal_bag.png
Normal file
|
After Width: | Height: | Size: 491 B |
BIN
kubejs/assets/tfg/textures/item/used_foil_pack.png
Normal file
|
After Width: | Height: | Size: 463 B |
|
|
@ -215,4 +215,25 @@ function registerGTCEURecyclingRecipes(event) {
|
|||
.duration(1792)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
// Clean Foil pack
|
||||
event.recipes.gtceu.macerator('gtceu:macerator/recycling/clean_foil_pack')
|
||||
.itemInputs('tfg:clean_foil_pack')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Aluminium, 1),
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Polyethylene, 1)
|
||||
)
|
||||
.duration(GTMaterials.Aluminium.getMass() * 1)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('gtceu:arc_furnace/recycling/clean_foil_pack')
|
||||
.itemInputs('tfg:clean_foil_pack')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Aluminium, 2),
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Ash, 1)
|
||||
)
|
||||
.duration(GTMaterials.Aluminium.getMass() * 1)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
}
|
||||
|
|
@ -82,6 +82,10 @@ const registerTFCItemTags = (event) => {
|
|||
// Make eggs not useless
|
||||
event.add('tfc:foods/usable_in_salad', 'tfc:food/cooked_egg')
|
||||
event.add('tfc:foods/usable_in_salad', 'tfc:food/boiled_egg')
|
||||
event.add('tfc:foods/usable_in_jam_sandwich', 'tfc:food/cooked_egg')
|
||||
event.add('tfc:foods/usable_in_jam_sandwich', 'tfc:food/boiled_egg')
|
||||
event.add('tfc:foods/usable_in_sandwich', 'tfc:food/cooked_egg')
|
||||
event.add('tfc:foods/usable_in_sandwich', 'tfc:food/boiled_egg')
|
||||
|
||||
// Чтобы жарились бревна из TFC в пиролиз. печке
|
||||
// Почему нельзя просто добавить тег в тег? (допустим minecraft:logs), потому что из-за этого ломаются все рецепты minecraft:logs, магия...
|
||||
|
|
|
|||
|
|
@ -102,4 +102,24 @@ const registerTFGFoodData = (event) => {
|
|||
food.protein(2.4)
|
||||
food.decayModifier(2.25)
|
||||
})
|
||||
|
||||
global.FOOD_FRUIT.forEach(fruit => {
|
||||
event.foodItem(`tfg:food/freeze_dried/${fruit.name}`, food => {
|
||||
food.hunger(4)
|
||||
food.saturation(fruit.saturation)
|
||||
food.water(0)
|
||||
food.fruit(fruit.fruit)
|
||||
food.decayModifier(fruit.decay)
|
||||
})
|
||||
})
|
||||
|
||||
event.foodItem('tfg:food/calorie_paste', food => {
|
||||
food.hunger(6)
|
||||
food.saturation(4)
|
||||
food.decayModifier(4.5)
|
||||
})
|
||||
|
||||
event.foodItem('tfg:food/meal_bag', food => {
|
||||
food.type('dynamic')
|
||||
})
|
||||
}
|
||||
|
|
@ -116,6 +116,7 @@ function registerTFGFoodRecipes(event) {
|
|||
|
||||
// Raw crop to grain
|
||||
processorRecipe(`${grain}_grain`, 100, 8, {
|
||||
circuit: 30,
|
||||
itemInputs: [`tfc:food/${grain}`],
|
||||
itemOutputs: [`tfc:food/${grain}_grain`],
|
||||
itemOutputProvider: TFC.isp.of(`tfc:food/${grain}_grain`).copyOldestFood()
|
||||
|
|
@ -123,6 +124,7 @@ function registerTFGFoodRecipes(event) {
|
|||
|
||||
// Grain to flour
|
||||
processorRecipe(`${grain}_flour`, 100, 8, {
|
||||
circuit: 31,
|
||||
itemInputs: [`tfc:food/${grain}_grain`],
|
||||
itemOutputs: [`2x tfc:food/${grain}_flour`],
|
||||
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_flour`).copyOldestFood()
|
||||
|
|
@ -171,9 +173,10 @@ function registerTFGFoodRecipes(event) {
|
|||
})
|
||||
|
||||
//Note: Jam needs to be first in the recipe code or else it will consider it as the usable_in_jam_sandwhich ingredients.
|
||||
processorRecipe(`${grain}_${type[0]}_jam_sandwich`, 100, 16, {
|
||||
//1 Jam
|
||||
processorRecipe(`${grain}_${type[0]}_jam_sandwich_1`, 100, 16, {
|
||||
circuit: 4,
|
||||
itemInputs: [`2x ${type[1]}`, '#tfc:foods/preserves', '2x #tfc:foods/usable_in_jam_sandwich'],
|
||||
itemInputs: [`2x ${type[1]}`, '#tfc:foods/preserves', '2x #tfc:foods/usable_in_jam_sandwich_2'],
|
||||
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, 'tfc:empty_jar'],
|
||||
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
|
||||
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
|
||||
|
|
@ -181,6 +184,30 @@ function registerTFGFoodRecipes(event) {
|
|||
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
|
||||
]),
|
||||
})
|
||||
|
||||
//2 Jam
|
||||
processorRecipe(`${grain}_${type[0]}_jam_sandwich_2`, 100, 16, {
|
||||
circuit: 4,
|
||||
itemInputs: [`2x ${type[1]}`, '2x #tfc:foods/preserves', '1x #tfc:foods/usable_in_jam_sandwich_2'],
|
||||
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, '2x tfc:empty_jar'],
|
||||
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
|
||||
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
|
||||
(portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5),
|
||||
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
|
||||
]),
|
||||
})
|
||||
|
||||
//3 Jam
|
||||
processorRecipe(`${grain}_${type[0]}_jam_sandwich_3`, 100, 16, {
|
||||
circuit: 4,
|
||||
itemInputs: [`2x ${type[1]}`, '3x #tfc:foods/preserves'],
|
||||
itemOutputs: [`2x tfc:food/${grain}_bread_jam_sandwich`, '3x tfc:empty_jar'],
|
||||
itemOutputProvider: TFC.isp.of(`2x tfc:food/${grain}_bread_jam_sandwich`).meal(
|
||||
(food => food.hunger(4).water(0.5).saturation(1).decayModifier(4.5)), [
|
||||
(portion) => portion.ingredient(Ingredient.of('#tfc:sandwich_bread')).nutrientModifier(0.5).saturationModifier(0.5).waterModifier(0.5),
|
||||
(portion) => portion.nutrientModifier(0.8).saturationModifier(0.8).waterModifier(0.8),
|
||||
]),
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
|
|
@ -344,6 +371,73 @@ function registerTFGFoodRecipes(event) {
|
|||
})
|
||||
})
|
||||
|
||||
global.FOOD_FRUIT.forEach(fruit => {
|
||||
processorRecipeText(`${fruit.name}/drying`, 100, 120, "tfg.food_recipe.freeze_drying", {
|
||||
circuit: 7,
|
||||
itemInputs: [fruit.id, 'tfg:foil_pack', 'tfg:dry_ice'],
|
||||
itemOutputs: [`tfg:food/freeze_dried/${fruit.name}`],
|
||||
itemOutputProvider: TFC.isp.of(`tfg:food/freeze_dried/${fruit.name}`).copyOldestFood().removeTrait('firmalife:dried').addTrait('tfg:freeze_dried')
|
||||
})
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Meal Bags
|
||||
//1 Input
|
||||
processorRecipeText('meal_bag/1', 100, 120, "tfg.food_recipe.freeze_drying", {
|
||||
circuit: 10,
|
||||
itemInputs: ['1x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
|
||||
itemOutputs: ['2x tfg:food/meal_bag'],
|
||||
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
|
||||
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
|
||||
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
|
||||
]).addTrait('tfg:freeze_dried')
|
||||
})
|
||||
|
||||
//2 Input
|
||||
processorRecipeText('meal_bag/2', 100, 120, "tfg.food_recipe.freeze_drying", {
|
||||
circuit: 11,
|
||||
itemInputs: ['2x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
|
||||
itemOutputs: ['2x tfg:food/meal_bag'],
|
||||
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
|
||||
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
|
||||
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
|
||||
]).addTrait('tfg:freeze_dried')
|
||||
})
|
||||
|
||||
//3 Input
|
||||
processorRecipeText('meal_bag/3', 100, 120, "tfg.food_recipe.freeze_drying", {
|
||||
circuit: 12,
|
||||
itemInputs: ['3x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
|
||||
itemOutputs: ['2x tfg:food/meal_bag'],
|
||||
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
|
||||
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
|
||||
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
|
||||
]).addTrait('tfg:freeze_dried')
|
||||
})
|
||||
|
||||
//4 Input
|
||||
processorRecipeText('meal_bag/4', 100, 120, "tfg.food_recipe.freeze_drying", {
|
||||
circuit: 13,
|
||||
itemInputs: ['4x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
|
||||
itemOutputs: ['2x tfg:food/meal_bag'],
|
||||
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
|
||||
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
|
||||
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
|
||||
]).addTrait('tfg:freeze_dried')
|
||||
})
|
||||
|
||||
//5 Input
|
||||
processorRecipeText('meal_bag/5', 100, 120, "tfg.food_recipe.freeze_drying", {
|
||||
circuit: 14,
|
||||
itemInputs: ['5x #tfg:foods/usable_in_meal_bag', '2x tfg:foil_pack', 'tfg:dry_ice'],
|
||||
itemOutputs: ['2x tfg:food/meal_bag'],
|
||||
itemOutputProvider: TFC.isp.of('2x tfg:food/meal_bag').meal(
|
||||
(food => food.hunger(4).saturation(1.5).decayModifier(4.5)), [
|
||||
(portion) => portion.nutrientModifier(1).saturationModifier(0.8).waterModifier(0.8),
|
||||
]).addTrait('tfg:freeze_dried')
|
||||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region ================= Misc =================
|
||||
|
|
@ -414,6 +508,14 @@ function registerTFGFoodRecipes(event) {
|
|||
itemOutputs: ['firmalife:food/soybean_paste'],
|
||||
itemOutputProvider: TFC.isp.of('firmalife:food/soybean_paste').copyOldestFood(),
|
||||
})
|
||||
|
||||
processorRecipeText('calorie_paste', 100, 512, "tfg.food_recipe.freeze_drying", {
|
||||
circuit: 8,
|
||||
itemInputs: ['firmalife:food/soybean_paste', 'tfg:foil_pack'],
|
||||
itemOutputs: ['tfg:food/calorie_paste'],
|
||||
fluidInputs: [Fluid.of('gtceu:fermented_biomass', 40)],
|
||||
itemOutputProvider: TFC.isp.of('tfg:food/calorie_paste').copyOldestFood().addTrait('tfg:freeze_dried'),
|
||||
})
|
||||
|
||||
// Vinegar
|
||||
global.TFC_ALCOHOL.forEach(alcohol => {
|
||||
|
|
|
|||
|
|
@ -424,4 +424,69 @@ function registerTFGMiscellaneousRecipes(event) {
|
|||
.duration(40)
|
||||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.forming_press('tfg:forming_press/foil_pack')
|
||||
.itemInputs(ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 1), ChemicalHelper.get(TagPrefix.foil, GTMaterials.Polyethylene, 1))
|
||||
.itemOutputs('1x tfg:foil_pack')
|
||||
.duration(100)
|
||||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
event.recipes.gtceu.compressor('tfg:compressor/dry_ice')
|
||||
.inputFluids(Fluid.of('gtceu:carbon_dioxide', 1000))
|
||||
.itemOutputs('10x tfg:dry_ice')
|
||||
.duration(100)
|
||||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.MV])
|
||||
|
||||
event.recipes.gtceu.chemical_reactor('tfg:chemical_reactor/decompress_dry_ice')
|
||||
.outputFluids(Fluid.of('gtceu:carbon_dioxide', 100))
|
||||
.itemInputs('1x tfg:dry_ice')
|
||||
.duration(20)
|
||||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.ore_washer('tfg:ore_washer/clean_foil_pack')
|
||||
.itemInputs('1x tfg:used_foil_pack')
|
||||
.inputFluids(Fluid.of('minecraft:water', 100))
|
||||
.itemOutputs('1x tfg:clean_foil_pack')
|
||||
.duration(200)
|
||||
.circuit(1)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.ore_washer('tfg:ore_washer/distilled/clean_foil_pack')
|
||||
.itemInputs('1x tfg:used_foil_pack')
|
||||
.inputFluids(Fluid.of('gtceu:distilled_water', 10))
|
||||
.itemOutputs('1x tfg:clean_foil_pack')
|
||||
.duration(200)
|
||||
.circuit(2)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.custom({
|
||||
type: "ae2:transform",
|
||||
circumstance: {
|
||||
type: "fluid",
|
||||
tag: "tfc:water"
|
||||
},
|
||||
ingredients: [
|
||||
{item: 'tfg:used_foil_pack'}],
|
||||
result: {item: 'tfg:clean_foil_pack'}
|
||||
}).id('tfg:ae_transform/clean_foil_pack')
|
||||
|
||||
event.recipes.greate.splashing(['tfg:clean_foil_pack'], 'tfg:used_foil_pack')
|
||||
.id('tfg:splashing/clean_foil_pack')
|
||||
|
||||
event.shapeless('1x tfg:used_foil_pack', [
|
||||
'tfg:food/calorie_paste'
|
||||
]).id('tfg:shapeless/emptying/calorie_paste')
|
||||
|
||||
event.shapeless('1x tfg:used_foil_pack', [
|
||||
'tfg:food/meal_bag'
|
||||
]).id('tfg:shapeless/emptying/meal_bag')
|
||||
|
||||
global.FOOD_FRUIT.forEach(fruit => {
|
||||
event.shapeless('1x tfg:used_foil_pack', [
|
||||
`tfg:food/freeze_dried/${fruit.name}`
|
||||
]).id(`tfg:shapeless/emptying/freeze_dried/${fruit.name}`)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ const registerTFGItemTags = (event) => {
|
|||
event.add('forge:double_iron_ingots', '#forge:double_ingots/iron')
|
||||
event.add('forge:double_iron_ingots', '#forge:double_ingots/wrought_iron')
|
||||
|
||||
// Food
|
||||
//#region Food
|
||||
const RAW_MEATS = [
|
||||
'tfg:food/raw_birt',
|
||||
'tfg:food/raw_crawlermari',
|
||||
|
|
@ -164,6 +164,26 @@ const registerTFGItemTags = (event) => {
|
|||
event.add('tfc:foods/cooked_meats', meat)
|
||||
})
|
||||
|
||||
//jam sandwhich stuff
|
||||
const usable_in_jam_sandwich = Ingredient.of('#tfc:foods/usable_in_jam_sandwich').itemIds.toArray().map(String);
|
||||
const preserves = Ingredient.of('#tfc:foods/preserves').itemIds.toArray().map(String);
|
||||
|
||||
const usable_in_jam_sandwich_2 = usable_in_jam_sandwich.filter(item => !preserves.includes(item));
|
||||
|
||||
usable_in_jam_sandwich_2.forEach(item => {
|
||||
event.add('tfc:foods/usable_in_jam_sandwich_2', item);
|
||||
});
|
||||
|
||||
//meal bags
|
||||
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/meats');
|
||||
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/grains');
|
||||
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/vegetables');
|
||||
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/fruits');
|
||||
event.add('tfg:foods/usable_in_meal_bag', '#tfc:foods/dairy');
|
||||
event.add('tfg:foods/usable_in_meal_bag', 'tfc:food/cooked_egg');
|
||||
event.add('tfg:foods/usable_in_meal_bag', 'tfc:food/boiled_egg');
|
||||
//#endregion
|
||||
|
||||
// #region 0.7.19 -> 0.9 conversion
|
||||
event.add('c:hidden_from_recipe_viewers', 'treetap:tap')
|
||||
event.add('c:hidden_from_recipe_viewers', 'tfcea:refrigerator')
|
||||
|
|
|
|||
|
|
@ -87,6 +87,9 @@ GTCEuStartupEvents.registry('gtceu:dimension_marker', event => {
|
|||
registerTFGDimensionMarkers(event)
|
||||
})
|
||||
|
||||
TFCEvents.registerFoodTrait(event => {
|
||||
registerTFGFoodTraits(event)
|
||||
})
|
||||
|
||||
Platform.mods.kaolinclayze.name = "Primitive Creatures";
|
||||
Platform.mods.tfg.name = "TerraFirmaGreg";
|
||||
|
|
|
|||
|
|
@ -68,4 +68,36 @@ global.MARS_BIOMES = [
|
|||
'tfg:mars/martian_mountains'
|
||||
]
|
||||
|
||||
global.UNIVERSAL_CIRCUIT_TIERS = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv"];
|
||||
global.UNIVERSAL_CIRCUIT_TIERS = ["ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpm", "uv", "uhv"];
|
||||
|
||||
global.FOOD_FRUIT = [
|
||||
{name: 'red_grapes', id: 'firmalife:food/red_grapes', saturation: 0.4, water: 2, fruit: 0.5, decay: 2.25},
|
||||
{name: 'white_grapes', id: 'firmalife:food/white_grapes', saturation: 0.4, water: 2, fruit: 0.5, decay: 2.25},
|
||||
{name: 'glow_berries', id: 'minecraft:glow_berries', saturation: 0, water: 5, fruit: 0.5, decay: 2.25},
|
||||
{name: 'chorus_fruit', id: 'minecraft:chorus_fruit', saturation: 0, water: 5, fruit: 2, decay: 1.2},
|
||||
{name: 'popped_chorus_fruit', id: 'minecraft:popped_chorus_fruit', saturation: 1, water: 0, fruit: 3, decay: 0.8},
|
||||
{name: 'blackberry', id: 'tfc:food/blackberry', saturation: 0.2, water: 5, fruit: 0.8, decay: 4.5},
|
||||
{name: 'blueberry', id: 'tfc:food/blueberry', saturation: 0.2, water: 5, fruit: 0.8, decay: 4.5},
|
||||
{name: 'bunchberry', id: 'tfc:food/bunchberry', saturation: 0.4, water: 5, fruit: 0.8, decay: 4.5},
|
||||
{name: 'cloudberry', id: 'tfc:food/cloudberry', saturation: 0.4, water: 5, fruit: 0.8, decay: 4.5},
|
||||
{name: 'cranberry', id: 'tfc:food/cranberry', saturation: 0.2, water: 5, fruit: 1, decay: 2.25},
|
||||
{name: 'elderberry', id: 'tfc:food/elderberry', saturation: 0.2, water: 5, fruit: 1, decay: 4.5},
|
||||
{name: 'gooseberry', id: 'tfc:food/gooseberry', saturation: 0.4, water: 5, fruit: 0.8, decay: 4.5},
|
||||
{name: 'raspberry', id: 'tfc:food/raspberry', saturation: 0.4, water: 5, fruit: 0.8, decay: 4.5},
|
||||
{name: 'snowberry', id: 'tfc:food/snowberry', saturation: 0.2, water: 5, fruit: 1, decay: 4.5},
|
||||
{name: 'strawberry', id: 'tfc:food/strawberry', saturation: 0.4, water: 10, fruit: 0.5, decay: 4.5},
|
||||
{name: 'wintergreen_berry', id: 'tfc:food/wintergreen_berry', saturation: 0.2, water: 5, fruit: 1, decay: 2.1},
|
||||
{name: 'banana', id: 'tfc:food/banana', saturation: 0.2, water: 0, fruit: 1, decay: 2.25},
|
||||
{name: 'cherry', id: 'tfc:food/cherry', saturation: 0.2, water: 5, fruit: 1, decay: 3.5},
|
||||
{name: 'green_apple', id: 'tfc:food/green_apple', saturation: 0.4, water: 0, fruit: 1, decay: 2.5},
|
||||
{name: 'lemon', id: 'tfc:food/lemon', saturation: 0.2, water: 5, fruit: 0.08, decay: 2.25},
|
||||
{name: 'olive', id: 'tfc:food/olive', saturation: 0.2, water: 0, fruit: 1, decay: 2.25},
|
||||
{name: 'orange', id: 'tfc:food/orange', saturation: 0.4, water: 10, fruit: 0.5, decay: 2.25},
|
||||
{name: 'peach', id: 'tfc:food/peach', saturation: 0.4, water: 10, fruit: 0.5, decay: 2.5},
|
||||
{name: 'plum', id: 'tfc:food/plum', saturation: 0.4, water: 5, fruit: 0.8, decay: 2.25},
|
||||
{name: 'red_apple', id: 'tfc:food/red_apple', saturation: 0.4, water: 0, fruit: 1, decay: 2.25},
|
||||
{name: 'pumpkin_chunks', id: 'tfc:food/pumpkin_chunks', saturation: 1, water: 5, fruit: 0.8, decay: 2.25},
|
||||
{name: 'melon_slice', id: 'tfc:food/melon_slice', saturation: 0.2, water: 5, fruit: 0.8, decay: 2.25},
|
||||
{name: 'fig', id: 'firmalife:food/fig', saturation: 1, water: 5, fruit: 0.9, decay: 1},
|
||||
{name: 'pineapple', id: 'firmalife:food/pineapple', saturation: 1, water: 1, fruit: 0.8, decay: 4.5}
|
||||
];
|
||||
5
kubejs/startup_scripts/tfg/events.food_traits.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
function registerTFGFoodTraits(event) {
|
||||
|
||||
event.registerTraitWithTooltip(0.02, 'tfg:freeze_dried')
|
||||
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ function registerTFGFoodItems(event) {
|
|||
|
||||
event.create('tfg:food/raw_birt')
|
||||
.translationKey('item.tfg.food.raw_birt')
|
||||
.food(food => food.hunger(2).saturation(2)
|
||||
.food(food => food.hunger(2).saturation(1)
|
||||
.effect('species:birtd', 50, 0, 1)
|
||||
.eaten(ctx => {
|
||||
ctx.player.level.runCommandSilent(`playsound species:effect.birtd.applied player ${ctx.player.username} ${ctx.player.x} ${ctx.player.y} ${ctx.player.z} 1 1`)
|
||||
|
|
@ -12,21 +12,54 @@ function registerTFGFoodItems(event) {
|
|||
|
||||
event.create('tfg:food/cooked_birt')
|
||||
.translationKey('item.tfg.food.cooked_birt')
|
||||
.food(food => food.hunger(6).saturation(6))
|
||||
.food(food => food.hunger(4).saturation(2))
|
||||
|
||||
event.create('tfg:food/raw_limpet')
|
||||
.translationKey('item.tfg.food.raw_limpet')
|
||||
.food(food => food.hunger(2).saturation(2))
|
||||
.food(food => food.hunger(2).saturation(1))
|
||||
|
||||
event.create('tfg:food/cooked_limpet')
|
||||
.translationKey('item.tfg.food.cooked_limpet')
|
||||
.food(food => food.hunger(6).saturation(6))
|
||||
.food(food => food.hunger(4).saturation(2))
|
||||
|
||||
event.create('tfg:food/raw_crawlermari')
|
||||
.translationKey('item.tfg.food.raw_crawlermari')
|
||||
.food(food => food.hunger(2).saturation(2))
|
||||
.food(food => food.hunger(2).saturation(1))
|
||||
|
||||
event.create('tfg:food/cooked_crawlermari')
|
||||
.translationKey('item.tfg.food.cooked_crawlermari')
|
||||
.food(food => food.hunger(6).saturation(6))
|
||||
.food(food => food.hunger(4).saturation(2))
|
||||
|
||||
global.FOOD_FRUIT.forEach(fruit => {
|
||||
event.create(`tfg:food/freeze_dried/${fruit.name}`)
|
||||
.translationKey(`item.tfg.food.freeze_dried/${fruit.name}`)
|
||||
.texture(`tfg:item/food/freeze_dried_${fruit.name}`)
|
||||
.food(food => food.hunger(4).saturation(1)
|
||||
.eaten(ctx => {
|
||||
ctx.player.give('tfg:used_foil_pack')
|
||||
}))
|
||||
})
|
||||
|
||||
event.create('tfg:food/calorie_paste')
|
||||
.translationKey('item.tfg.food.calorie_paste')
|
||||
.food(food => food.hunger(8).saturation(5)
|
||||
.eaten(ctx => {
|
||||
ctx.player.give('tfg:used_foil_pack')
|
||||
}))
|
||||
.texture('tfg:item/food/calorie_paste')
|
||||
|
||||
event.create('tfg:used_foil_pack')
|
||||
.translationKey('item.tfg.food.used_foil_pack')
|
||||
.food(food => food.hunger(0).saturation(0)
|
||||
.effect('minecraft:nausea', 200, 0, 1)
|
||||
)
|
||||
.texture('tfg:item/used_foil_pack')
|
||||
|
||||
event.create('tfg:food/meal_bag')
|
||||
.translationKey('item.tfg.food.meal_bag')
|
||||
.food(food => food.hunger(6).saturation(3)
|
||||
.eaten(ctx => {
|
||||
ctx.player.give('tfg:used_foil_pack')
|
||||
}))
|
||||
.texture('tfg:item/food/meal_bag')
|
||||
}
|
||||
|
|
@ -147,12 +147,24 @@ const registerTFGItems = (event) => {
|
|||
.tooltip(`§9Instant Health II`)
|
||||
//#endregion
|
||||
|
||||
//#region Wax
|
||||
//#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:dry_ice')
|
||||
.translationKey('item.tfg.dry_ice')
|
||||
.texture('tfg:item/dry_ice')
|
||||
//#endregion
|
||||
|
||||
//#region Cloth & String
|
||||
|
|
|
|||