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

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