From 020d4f901810fae5bb10cea555600b36f657e584 Mon Sep 17 00:00:00 2001 From: GameStar <56610486+BlueBoat29@users.noreply.github.com> Date: Sun, 31 Aug 2025 13:14:14 -0500 Subject: [PATCH] Flax (#1735) * some flax stuff * linen stuff * flax line stuff * flax again * rapseed wild crop changes * flax worldgen * revert grooming station update * more flax stuff * trying to fix stuff one doesn't work * recipes and lang * Update CHANGELOG.md Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com> * fixes --------- Signed-off-by: GameStar <56610486+BlueBoat29@users.noreply.github.com> --- CHANGELOG.md | 2 + kubejs/assets/tfg/blockstates/flax.json | 34 +++++++++++ kubejs/assets/tfg/blockstates/flax_dead.json | 13 ++++ kubejs/assets/tfg/blockstates/flax_wild.json | 16 +++++ .../assets/tfg/blockstates/rapeseed_wild.json | 4 +- kubejs/assets/tfg/lang/en_us.json | 10 ++++ .../tfg/models/block/crop/flax_age_0.json | 1 + .../tfg/models/block/crop/flax_age_1.json | 1 + .../tfg/models/block/crop/flax_age_2.json | 1 + .../tfg/models/block/crop/flax_age_3.json | 1 + .../models/block/crop/flax_age_4_bottom.json | 1 + .../tfg/models/block/crop/flax_age_4_top.json | 1 + .../models/block/crop/flax_age_5_bottom.json | 1 + .../tfg/models/block/crop/flax_age_5_top.json | 1 + .../models/block/crop/flax_age_6_bottom.json | 1 + .../tfg/models/block/crop/flax_age_6_top.json | 1 + .../models/block/crop/flax_dead_bottom.json | 1 + .../tfg/models/block/crop/flax_dead_top.json | 1 + .../models/block/crop/flax_dead_young.json | 1 + .../tfg/models/block/crop/flax_wild.json | 6 ++ .../models/block/crop/flax_wild_bottom.json | 6 ++ .../tfg/models/block/crop/flax_wild_top.json | 6 ++ .../tfg/models/block/crop/rapeseed_wild.json | 2 +- .../block/crop/rapeseed_wild_bottom.json | 1 + .../models/block/crop/rapeseed_wild_top.json | 1 + kubejs/assets/tfg/models/item/flax_line.json | 6 ++ .../assets/tfg/models/item/flax_product.json | 6 ++ kubejs/assets/tfg/models/item/flax_tow.json | 6 ++ kubejs/assets/tfg/models/item/flax_waste.json | 6 ++ kubejs/assets/tfg/models/item/flax_wild.json | 3 + .../assets/tfg/models/item/linen_cloth.json | 6 ++ .../assets/tfg/models/item/linen_thread.json | 6 ++ .../assets/tfg/models/item/washed_flax.json | 6 ++ .../tfg/textures/block/crop/flax_age_0.png | Bin 0 -> 651 bytes .../tfg/textures/block/crop/flax_age_1.png | Bin 0 -> 725 bytes .../tfg/textures/block/crop/flax_age_2.png | Bin 0 -> 851 bytes .../tfg/textures/block/crop/flax_age_3.png | Bin 0 -> 963 bytes .../textures/block/crop/flax_age_4_bottom.png | Bin 0 -> 1004 bytes .../textures/block/crop/flax_age_4_top.png | Bin 0 -> 651 bytes .../textures/block/crop/flax_age_5_bottom.png | Bin 0 -> 1069 bytes .../textures/block/crop/flax_age_5_top.png | Bin 0 -> 824 bytes .../textures/block/crop/flax_age_6_bottom.png | Bin 0 -> 1084 bytes .../textures/block/crop/flax_age_6_top.png | Bin 0 -> 814 bytes .../textures/block/crop/flax_dead_bottom.png | Bin 0 -> 1066 bytes .../tfg/textures/block/crop/flax_dead_top.png | Bin 0 -> 810 bytes .../textures/block/crop/flax_dead_young.png | Bin 0 -> 865 bytes kubejs/assets/tfg/textures/item/flax_line.png | Bin 0 -> 5451 bytes .../assets/tfg/textures/item/flax_product.png | Bin 0 -> 878 bytes kubejs/assets/tfg/textures/item/flax_seed.png | Bin 0 -> 617 bytes kubejs/assets/tfg/textures/item/flax_tow.png | Bin 0 -> 875 bytes .../assets/tfg/textures/item/flax_waste.png | Bin 0 -> 857 bytes .../assets/tfg/textures/item/linen_cloth.png | Bin 0 -> 810 bytes .../assets/tfg/textures/item/linen_thread.png | Bin 0 -> 745 bytes .../assets/tfg/textures/item/washed_flax.png | Bin 0 -> 797 bytes .../configured_feature/earth/flax_patch.json | 40 +++++++++++++ .../placed_feature/earth/flax_patch.json | 20 +++++++ kubejs/server_scripts/firmaciv/recipes.js | 2 + kubejs/server_scripts/gregtech/recipes.js | 2 + kubejs/server_scripts/minecraft/recipes.js | 2 +- kubejs/server_scripts/sacksnstuff/recipes.js | 17 +++--- kubejs/server_scripts/tfc/tags.js | 2 + kubejs/server_scripts/tfg/data.js | 29 +++++++++ .../tfg/recipes.miscellaneous.js | 56 +++++++++++++++++- kubejs/server_scripts/tfg/tags.js | 6 ++ kubejs/startup_scripts/tfc/constants.js | 2 + kubejs/startup_scripts/tfg/blocks.plants.js | 33 +++++++++++ kubejs/startup_scripts/tfg/items.js | 14 +++++ pakku-lock.json | 46 +++++++------- 68 files changed, 393 insertions(+), 37 deletions(-) create mode 100644 kubejs/assets/tfg/blockstates/flax.json create mode 100644 kubejs/assets/tfg/blockstates/flax_dead.json create mode 100644 kubejs/assets/tfg/blockstates/flax_wild.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_0.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_1.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_2.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_3.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_4_bottom.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_4_top.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_5_bottom.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_5_top.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_6_bottom.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_age_6_top.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_dead_bottom.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_dead_top.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_dead_young.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_wild.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_wild_bottom.json create mode 100644 kubejs/assets/tfg/models/block/crop/flax_wild_top.json create mode 100644 kubejs/assets/tfg/models/block/crop/rapeseed_wild_bottom.json create mode 100644 kubejs/assets/tfg/models/block/crop/rapeseed_wild_top.json create mode 100644 kubejs/assets/tfg/models/item/flax_line.json create mode 100644 kubejs/assets/tfg/models/item/flax_product.json create mode 100644 kubejs/assets/tfg/models/item/flax_tow.json create mode 100644 kubejs/assets/tfg/models/item/flax_waste.json create mode 100644 kubejs/assets/tfg/models/item/flax_wild.json create mode 100644 kubejs/assets/tfg/models/item/linen_cloth.json create mode 100644 kubejs/assets/tfg/models/item/linen_thread.json create mode 100644 kubejs/assets/tfg/models/item/washed_flax.json create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_0.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_1.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_2.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_3.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_4_bottom.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_4_top.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_5_bottom.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_5_top.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_6_bottom.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_age_6_top.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_dead_bottom.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_dead_top.png create mode 100644 kubejs/assets/tfg/textures/block/crop/flax_dead_young.png create mode 100644 kubejs/assets/tfg/textures/item/flax_line.png create mode 100644 kubejs/assets/tfg/textures/item/flax_product.png create mode 100644 kubejs/assets/tfg/textures/item/flax_seed.png create mode 100644 kubejs/assets/tfg/textures/item/flax_tow.png create mode 100644 kubejs/assets/tfg/textures/item/flax_waste.png create mode 100644 kubejs/assets/tfg/textures/item/linen_cloth.png create mode 100644 kubejs/assets/tfg/textures/item/linen_thread.png create mode 100644 kubejs/assets/tfg/textures/item/washed_flax.png create mode 100644 kubejs/data/tfg/worldgen/configured_feature/earth/flax_patch.json create mode 100644 kubejs/data/tfg/worldgen/placed_feature/earth/flax_patch.json diff --git a/CHANGELOG.md b/CHANGELOG.md index cf290b08f..2a88eb4bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,9 +10,11 @@ - Sewing Tables now use a knife instead of shears @BlueBoat29 - Create Logistics Jars now hold 8000 mB each instead of just 1000 mB (#1707) @Ghoulcel - Added a way to keep your space suit with you on death, so you can more safely set your spawn on other planets (#1710) @BlueBoat29 +- Added Flax as a cold-weather alternative to jute and a plant-based option for light colored cloth @BlueBoat29 ### Bug fixes - Fixed tongs getting stuck in ovens, and now you can use them the same way you'd previously use a Peel @Pyritie - Allowed powders, gears, plates, double plates, springs, and small springs to be heated (#1727) @Redeix +- Fixed rapeseed wild block model @BlueBoat29 ### Translation updates - Chinese (simplified) @jmecn & @CN059 - Ukranian @MetEnBouldry diff --git a/kubejs/assets/tfg/blockstates/flax.json b/kubejs/assets/tfg/blockstates/flax.json new file mode 100644 index 000000000..0b8a1e705 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/flax.json @@ -0,0 +1,34 @@ +{ + "variants": { + "age=0": { + "model": "tfg:block/crop/flax_age_0" + }, + "age=1": { + "model": "tfg:block/crop/flax_age_1" + }, + "age=2": { + "model": "tfg:block/crop/flax_age_2" + }, + "age=3": { + "model": "tfg:block/crop/flax_age_3" + }, + "age=4,part=bottom": { + "model": "tfg:block/crop/flax_age_4_bottom" + }, + "age=5,part=bottom": { + "model": "tfg:block/crop/flax_age_5_bottom" + }, + "age=6,part=bottom": { + "model": "tfg:block/crop/flax_age_6_bottom" + }, + "age=4,part=top": { + "model": "tfg:block/crop/flax_age_4_top" + }, + "age=5,part=top": { + "model": "tfg:block/crop/flax_age_5_top" + }, + "age=6,part=top": { + "model": "tfg:block/crop/flax_age_6_top" + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/flax_dead.json b/kubejs/assets/tfg/blockstates/flax_dead.json new file mode 100644 index 000000000..15259e1b7 --- /dev/null +++ b/kubejs/assets/tfg/blockstates/flax_dead.json @@ -0,0 +1,13 @@ +{ + "variants": { + "mature=false": { + "model": "tfg:block/crop/flax_dead_young" + }, + "mature=true,part=top": { + "model": "tfg:block/crop/flax_dead_top" + }, + "mature=true,part=bottom": { + "model": "tfg:block/crop/flax_dead_bottom" + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/flax_wild.json b/kubejs/assets/tfg/blockstates/flax_wild.json new file mode 100644 index 000000000..c8023989c --- /dev/null +++ b/kubejs/assets/tfg/blockstates/flax_wild.json @@ -0,0 +1,16 @@ +{ + "variants": { + "part=top,mature=true": { + "model": "tfg:block/crop/flax_wild_top" + }, + "part=top,mature=false": { + "model": "tfg:block/crop/flax_dead_top" + }, + "part=bottom,mature=true": { + "model": "tfg:block/crop/flax_wild_bottom" + }, + "part=bottom,mature=false": { + "model": "tfg:block/crop/flax_dead_bottom" + } + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/blockstates/rapeseed_wild.json b/kubejs/assets/tfg/blockstates/rapeseed_wild.json index 3ddbb2d6e..599bc8001 100644 --- a/kubejs/assets/tfg/blockstates/rapeseed_wild.json +++ b/kubejs/assets/tfg/blockstates/rapeseed_wild.json @@ -1,13 +1,13 @@ { "variants": { "part=top,mature=true": { - "model": "tfg:block/crop/rapeseed_age_5_top" + "model": "tfg:block/crop/rapeseed_wild_top" }, "part=top,mature=false": { "model": "tfg:block/crop/rapeseed_dead_top" }, "part=bottom,mature=true": { - "model": "tfg:block/crop/rapeseed_age_5_bottom" + "model": "tfg:block/crop/rapeseed_wild_bottom" }, "part=bottom,mature=false": { "model": "tfg:block/crop/rapeseed_dead_bottom" diff --git a/kubejs/assets/tfg/lang/en_us.json b/kubejs/assets/tfg/lang/en_us.json index b18665146..42ba86651 100644 --- a/kubejs/assets/tfg/lang/en_us.json +++ b/kubejs/assets/tfg/lang/en_us.json @@ -293,6 +293,9 @@ "block.tfg.rapeseed": "Canola", "block.tfg.rapeseed_wild": "Wild Canola", "block.tfg.rapeseed_dead": "Dead Canola", + "block.tfg.flax": "Flax", + "block.tfg.flax_wild": "Wild Flax", + "block.tfg.flax_dead": "Dead Flax", "block.tfg.casings.machine_casing_iron_desh": "Desh Machine Casing", "block.tfg.casings.machine_casing_stainless_evaporation": "Stainless Evaporation Machine Casing", "block.tfg.casings.machine_casing_vacuum_engine_intake": "Vacuum Engine Intake Machine Casing", @@ -622,6 +625,13 @@ "item.tfg.electric_extendo_grip": "Electric Extendo Grip", "item.tfg.treated_chipboard_composite": "Treated Chipboard Composite", "item.tfg.high_density_treated_fiberboard": "Medium Density Treated Fiberboard", + "item.tfg.flax_seeds": "Flax Seeds", + "item.tfg.flax_product": "Flax Stems", + "item.tfg.flax_line": "Flax Line Fibers", + "item.tfg.flax_tow": "Flax Tow Fibers", + "item.tfg.flax_waste": "Scraped Flax", + "item.tfg.linen_thread": "Linen Thread", + "item.tfg.linen_cloth": "Linen Cloth", "material.tfg.latex": "Latex", "material.tfg.vulcanized_latex": "Vulcanized Latex", "material.tfg.fluix": "Fluix", diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_0.json b/kubejs/assets/tfg/models/block/crop/flax_age_0.json new file mode 100644 index 000000000..9def03ce7 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_0.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_0"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_1.json b/kubejs/assets/tfg/models/block/crop/flax_age_1.json new file mode 100644 index 000000000..5cd40dc85 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_1.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_1"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_2.json b/kubejs/assets/tfg/models/block/crop/flax_age_2.json new file mode 100644 index 000000000..7c8d9a81f --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_2.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_2"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_3.json b/kubejs/assets/tfg/models/block/crop/flax_age_3.json new file mode 100644 index 000000000..0196b352e --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_3.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_3"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_4_bottom.json b/kubejs/assets/tfg/models/block/crop/flax_age_4_bottom.json new file mode 100644 index 000000000..3bbbff126 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_4_bottom.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_4_bottom"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_4_top.json b/kubejs/assets/tfg/models/block/crop/flax_age_4_top.json new file mode 100644 index 000000000..861deaeca --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_4_top.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_4_top"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_5_bottom.json b/kubejs/assets/tfg/models/block/crop/flax_age_5_bottom.json new file mode 100644 index 000000000..20609d2b1 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_5_bottom.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_5_bottom"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_5_top.json b/kubejs/assets/tfg/models/block/crop/flax_age_5_top.json new file mode 100644 index 000000000..90d35b5e7 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_5_top.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_5_top"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_6_bottom.json b/kubejs/assets/tfg/models/block/crop/flax_age_6_bottom.json new file mode 100644 index 000000000..6783cdc22 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_6_bottom.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_6_bottom"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_age_6_top.json b/kubejs/assets/tfg/models/block/crop/flax_age_6_top.json new file mode 100644 index 000000000..d5826d3b3 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_age_6_top.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_age_6_top"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_dead_bottom.json b/kubejs/assets/tfg/models/block/crop/flax_dead_bottom.json new file mode 100644 index 000000000..3f8fb1086 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_dead_bottom.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_dead_bottom"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_dead_top.json b/kubejs/assets/tfg/models/block/crop/flax_dead_top.json new file mode 100644 index 000000000..620d0d6b5 --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_dead_top.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_dead_top"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_dead_young.json b/kubejs/assets/tfg/models/block/crop/flax_dead_young.json new file mode 100644 index 000000000..65df8401f --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_dead_young.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/flax_dead_young"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_wild.json b/kubejs/assets/tfg/models/block/crop/flax_wild.json new file mode 100644 index 000000000..5ebc8c96a --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_wild.json @@ -0,0 +1,6 @@ +{ + "parent": "tfc:block/wild_crop/crop", + "textures": { + "crop": "tfg:block/crop/flax_age_5_bottom" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_wild_bottom.json b/kubejs/assets/tfg/models/block/crop/flax_wild_bottom.json new file mode 100644 index 000000000..5ebc8c96a --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_wild_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "tfc:block/wild_crop/crop", + "textures": { + "crop": "tfg:block/crop/flax_age_5_bottom" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/flax_wild_top.json b/kubejs/assets/tfg/models/block/crop/flax_wild_top.json new file mode 100644 index 000000000..9bdde56bf --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/flax_wild_top.json @@ -0,0 +1,6 @@ +{ + "parent": "block/crop", + "textures": { + "crop": "tfg:block/crop/flax_age_5_top" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/rapeseed_wild.json b/kubejs/assets/tfg/models/block/crop/rapeseed_wild.json index 2033e4839..0e99f6b04 100644 --- a/kubejs/assets/tfg/models/block/crop/rapeseed_wild.json +++ b/kubejs/assets/tfg/models/block/crop/rapeseed_wild.json @@ -1 +1 @@ -{"parent":"block/crop","textures":{"crop":"tfg:block/crop/rapeseed_age_2"}} \ No newline at end of file +{"parent":"tfc:block/wild_crop/crop","textures":{"crop":"tfg:block/crop/rapeseed_age_2"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/rapeseed_wild_bottom.json b/kubejs/assets/tfg/models/block/crop/rapeseed_wild_bottom.json new file mode 100644 index 000000000..f90e2a6fe --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/rapeseed_wild_bottom.json @@ -0,0 +1 @@ +{"parent":"tfc:block/wild_crop/crop","textures":{"crop":"tfg:block/crop/rapeseed_age_5_bottom"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/block/crop/rapeseed_wild_top.json b/kubejs/assets/tfg/models/block/crop/rapeseed_wild_top.json new file mode 100644 index 000000000..b85951c0e --- /dev/null +++ b/kubejs/assets/tfg/models/block/crop/rapeseed_wild_top.json @@ -0,0 +1 @@ +{"parent":"block/crop","textures":{"crop":"tfg:block/crop/rapeseed_age_5_top"}} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/flax_line.json b/kubejs/assets/tfg/models/item/flax_line.json new file mode 100644 index 000000000..4e95ef350 --- /dev/null +++ b/kubejs/assets/tfg/models/item/flax_line.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfg:item/flax_line" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/flax_product.json b/kubejs/assets/tfg/models/item/flax_product.json new file mode 100644 index 000000000..1df7e23a2 --- /dev/null +++ b/kubejs/assets/tfg/models/item/flax_product.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfg:item/flax_product" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/flax_tow.json b/kubejs/assets/tfg/models/item/flax_tow.json new file mode 100644 index 000000000..e55451cde --- /dev/null +++ b/kubejs/assets/tfg/models/item/flax_tow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfg:item/flax_tow" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/flax_waste.json b/kubejs/assets/tfg/models/item/flax_waste.json new file mode 100644 index 000000000..d738595dd --- /dev/null +++ b/kubejs/assets/tfg/models/item/flax_waste.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfg:item/flax_waste" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/flax_wild.json b/kubejs/assets/tfg/models/item/flax_wild.json new file mode 100644 index 000000000..bc8d85359 --- /dev/null +++ b/kubejs/assets/tfg/models/item/flax_wild.json @@ -0,0 +1,3 @@ +{ + "parent": "tfg:block/crop/flax_wild" +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/linen_cloth.json b/kubejs/assets/tfg/models/item/linen_cloth.json new file mode 100644 index 000000000..bfe64ab12 --- /dev/null +++ b/kubejs/assets/tfg/models/item/linen_cloth.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tfg:item/linen_cloth" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/linen_thread.json b/kubejs/assets/tfg/models/item/linen_thread.json new file mode 100644 index 000000000..492133d0d --- /dev/null +++ b/kubejs/assets/tfg/models/item/linen_thread.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tfg:item/linen_thread" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/models/item/washed_flax.json b/kubejs/assets/tfg/models/item/washed_flax.json new file mode 100644 index 000000000..3f67bc269 --- /dev/null +++ b/kubejs/assets/tfg/models/item/washed_flax.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfg:item/washed_flax" + } +} \ No newline at end of file diff --git a/kubejs/assets/tfg/textures/block/crop/flax_age_0.png b/kubejs/assets/tfg/textures/block/crop/flax_age_0.png new file mode 100644 index 0000000000000000000000000000000000000000..b99477ad697bf79155ad6bad436eca8162fd8b9e GIT binary patch literal 651 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%Yn00yg-eRgSC8sxJ&ITr!NR?C?S)m%Czr-wSfc1zSSS+1 z%~z)rCL1%Sw6s8!Z9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ-9X|}G3Po6L^Fi4iTMwB?`=jNv7 zl`uFLr6!i7rYMwWmSiZnd-?{1H}Z)yFfb&0x;TbdoK8-VU|pP$!tgR-?SB)~md?h; zM#nq8KkauZrTm+J-kwvsBd24>>`(P2mL-J}vjgw={`@~bf4`)JgoMOBxk{Gj`)xmU t2&UccpB^s}u_HqAU(IjcZ9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ-9S?)zu_V*bW7$i$vBTAg}b8}Pk zN*J7rQWHy3QxwWGOEMJPJ$(bh8~MZ;7#P-ix;TbdoPImOkgwT*$Mvno3ehZewl*)F zyH#w@;ubuA!gR)xS=w8rjc29<#}tp3PfqZz2rd8jZ2kM^`phy`U!1pJSNgaw_Rq}3{D1yHJ462tczK=Vzt7bH)bL4PTF+a9rOsx6q)1G zSX|kuc=?;hzB8L&To!aJ{jo^?djI_Z?n>L-Iz@|Khh=Xsp4V&p`z9g7D&`DJSmu-5 YdymE987i%LRYAew>FVdQ&MBb@08QpG>;M1& literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_age_2.png b/kubejs/assets/tfg/textures/block/crop/flax_age_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ff2a41f78110527f2b178f885b21d3ef994abfa4 GIT binary patch literal 851 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%Yn00yg-eRgSC8sxJ&ITr!NR?C?S)m%Czr-wSfc1zSSS+1 z%~z)rCL1%Sw6s8!Z9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ-9eL1D;{jLlQ43Z_T5hc#~xw)x% zB@E6*sfi`2DGKG8B^e6tp1uL$jeOz^42;^IE{-7V1!>GyXIzeOG0xl&Dx0xar*DxM8KVh=@^WvZP&N2K?%dPjV zcz6A0x*>x@`bDLk*7E;)uGcawU`UY4>t6IYS1##g^yF9L9@>J*72bn^xx_6w_W@4CV zJ4N)X=1x;lOijFNlkLO-G@Iu zPC`G=`>kSVu-$4geSMsm^OI}_fn|o>rwn?3vQG$IR=kiSIT#cfp00i_>zopr04eTk A^8f$< literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_age_3.png b/kubejs/assets/tfg/textures/block/crop/flax_age_3.png new file mode 100644 index 0000000000000000000000000000000000000000..347557b6cbd118f1f4ccd2ec7d291b7b8cd50353 GIT binary patch literal 963 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%Yn00yg-eRgSC8sxJ&ITr!NR?C?S)m%Czr-wSfc1zSSS+1 z%~z)rCL1%Sw6s8!Z9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ-99b+HWhR+NP43Z_T5hc#~xw)x% zB@E6*sfi`2DGKG8B^e6tp1uL$jeOz^42-iqT^vI!PS2gVv2V76i0gZwV@%2(o4b}d zM2Vl+sT#iBE zT=1cKJ;~>qH^04VQGH`<@%mGdRrk(>+pnE37TI5CbYN=evQfWL$K=d-KxFEV6F0wI zwocIdVRa-uuW;U_3@ZkQ;A=|ff+y89a@%Lke7J4zBF$_=cJF-$^p>q?$z6XT@{xj8 zgl)qdxyt(c3K5R3^NP(}RYRWq6>fFh<92y(d4c6z*5{88r?LcxH2IcHo3Q?{b;IY) z&U2O@`ETW&F>m(49Ieu60{yR@`${Rbu7^CVtU5^cloC8zLDH^_hrgbexKZXIm5~%RrkoV4U4b86BY4Tk??d5 zqr#MI28Zuv3RAMLUwpP<@x|>wc6GfAUf^KYlO4BX&i`i{l;3^2#`lByfe-iPr5l5H PgCgJ4)z4*}Q$iB}+sLa~ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_age_4_bottom.png b/kubejs/assets/tfg/textures/block/crop/flax_age_4_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..49d943b5708876d09fb7b10842f762686526eb41 GIT binary patch literal 1004 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%Yn00yg-eRgSC8sxJ&ITr!NR?C?S)m%Czr-wSfc1zSSS+1 z%~z)rCL1%Sw6s8!Z9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ+!dFDA6v&|S77$i$vBTAg}b8}Pk zN*J7rQWHy3QxwWGOEMJPJ$(bh8~MZ;7#NRux;TbdoX(xJf7NXRkz@9pmK$4ZnRhm` zAAT#~bTC-%!6id)H~aMCdgVHG4Suab?*g3J`OQ>}HYIniXs&LVbgjFl@9F*TbL}hY zY71RMt^U+@tt$Ch_&k|mfyJ52*8QJF!eS5q&bWUsl4HxQA2xqAHkmRs{Qvi7?nPII z4X?T`ObiV_Qu*p3i*lf!iC09fLqO2nTL+mr+!X$K^nDiTw-qq@^i*KYYU!|$rH}i~ z*6#ZC>tFir)zV_qj(>i9E;6@J96I6zJ8UrxtK(d5T~A-?re>emdIX?^ZfJetXA{x+LaibBW^00xTANU&uZQq|4It} z?rfhRxW?>8-nIolG*2-w{N3q(N|g?k6PfVa~dA=6Jo^Pm$Ca z%UQSB%TDtxnRH**>y$9VhqA++XR?m0UvEF-D%)nMkL*Dv8Xj{!qWD0m#M9N!Wt~$( F69A*>xBUPB literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_age_4_top.png b/kubejs/assets/tfg/textures/block/crop/flax_age_4_top.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad34b4ddf7a40b07fa0aa4b986ea8cd2ed5c1fd GIT binary patch literal 651 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%Yn00yg-eRgSC8sxJ&ITr!NR?C?S)m%Czr-wSfc1zSSS+1 z%~z)rCL1%Sw6s8!Z9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ+!Ip)?=QRNH_43Z_T5hc#~xw)x% zB@E6*sfi`2DGKG8B^e6tp1uL$jeOz^3=GMhE{-7+ue56?gQ^Ejp$rkL&Wejvtq`^4Yl&tqmdl~@*JFO^a(6Qy_l*Dt@D%EI7NuKkHSW%^N&Cp=yKT-G@yGywo{4-HKK literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_age_5_bottom.png b/kubejs/assets/tfg/textures/block/crop/flax_age_5_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..cd7efed0da9a97efb2f1a9c13159bb8b371b6d92 GIT binary patch literal 1069 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%Yn00yg-eRgSC8sxJ&ITr!NR?C?S)m%Czr-wSfc1zSSS+1 z%~z)rCL1%Sw6s8!Z9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ+!Ro=J*Gdvg=7$i$vBTAg}b8}Pk zN*J7rQWHy3QxwWGOEMJPJ$(bh8~MZ;7?@Z+T^vI!PNz=VoAua1q;;Mya+uzA{kQbO(6a@GhGHv1eP{H{d%t0Ehej; Z=zlhI-e=wLX%Z-zdAjZ9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ+!73+>fn+XgI43Z_T5hc#~xw)x% zB@E6*sfi`2DGKG8B^e6tp1uL$jeOz^42%MvE{-7_QT_Z>D6kd5w})hiT|5U_Gd zPUr+?k?#yQyQheVxt=PlYG4u3=jUCwrnT==pibq*9ot@eEj8U_lYj3#!~FVh(^sEc z?e_b9<<%E|pRT&EcJoh-w1NG*IZwlt&OJOnmw5x{_4c>k<~;gY5en<2*1B=#Mo#ej z!Y1-rj$@1pko_cxzBz3FPRP3Ju2 zA7*bWS7@(#!t-zOf98eOyB05c*RgiR6P~OH9*--soI8(jn1uM831;s&W%lvchO3L- aov@#oyGrH&N1QMy#64a8T-G@yGywqLyk;r@ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_age_6_bottom.png b/kubejs/assets/tfg/textures/block/crop/flax_age_6_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..33905b9174c7a50f862ec9de5c1529e7d53e72e0 GIT binary patch literal 1084 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%Yn00yg-eRgSC8sxJ&ITr!NR?C?S)m%Czr-wSfc1zSSS+1 z%~z)rCL1%Sw6s8!Z9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ+!O_Q|+@jeU;43Z_T5hc#~xw)x% zB@E6*sfi`2DGKG8B^e6tp1uL$jeOz^3``=PE{-7{Vf?dcd<(y9D$^_3xiFT?eVd=VaSPwgS*j1DVy>E9sBiqbhMM<4Lx;OATpV~&&8E2Q58Fa4Yv7UAM zv+<;-)_k9SeNmfrKuNpsyV}{AXP28r?kldWYpdBA-}QR8`=TEmtGj3KW#9bs$}AK0 zH!rMaD{1fCwL>tl=E&Q_#zGFQjMvNizc$})e=fx_A#c+z5%%9dUz_WH_kL)4k|EJO z`O=<$YYr_43r`F<9M-*6!Y4_aaaQIm6Zclevu;*9Jd4A+w-$U?J3Dc2;B~RcPS4M~ z0{vJYJgw8LdHc38#!`!Cf@|2LY<^KTi|(-Qtr^SSO=D)v*zddR5nqjvDj`BZRc z``Kfrxg|=GA02O8oXVZ({`uFJu;sgg)BMlQmA&D(G_d2|itPCL_gbW-GDSQ$rEZPr zez+sQ{FFkklD6H2I%)CUcY_lToP4>lcMy8r*Di}#h9o18bJ3njTCvO-QnMcU$G=qwIbq?aoEaF>C&s zF?eoTs%jd)n literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_age_6_top.png b/kubejs/assets/tfg/textures/block/crop/flax_age_6_top.png new file mode 100644 index 0000000000000000000000000000000000000000..edaa3caa2b7b847c9924d93de7b4d9c3e31534cc GIT binary patch literal 814 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%Yn00yg-eRgSC8sxJ&ITr!NR?C?S)m%Czr-wSfc1zSSS+1 z%~z)rCL1%Sw6s8!Z9UEo^$m){+uX1`Oy4a>g>HX#%rD%eLj+ywD8X1ApXr=>jcgVxTm@< zt;xTaIPyw2-no)7Pt-Y!e6m5&bl&GNyPIXvrn zd_H6G{3YhQqrPxR++ovOw|mwW_Lz4J%Ko!fbZ>jI_@(aDhVRC|mN6OBaPzFO+*|ss z@E60A6|0|0KX@P@p&$Hh*XiBNd-wjWUUvCD|FLsLCz4KlW@TVtU`z6LcVPg7pU%7M z85kHi3p^r=85s1GL71^(seKs(0|R@Br>`sfOAZ+!O>us4Jv#;l2FViFh!W@g+}zZ> z5(ej@)Wnk16ovB4k_-iRPv3y>Mm}){21Yhd7sn8b(`N%WavgHuIV-EBG^KA>=>)#g zlGkgRXP;Zg_2_|8T}!=!Ql0B_y*ihac?CX{F;Shq`ccNVJ$s()Rbi+X-2K?; ze^Y4d9a-^TRr@4(=Wkfg_iOS3l`m|uXJ>Dpz44z_i}}UIx)+gWXLz%OT~-XZt##V_ zQ#5Y|EiABuBdb04)IzQbogzHtrO0Z|9Ee~YF-AE7%_uIZbH_Mz`{Cl#)X{Wml%~#ac z7Oy*1G{JKY*Q$sWx3jmGs}yRjig~nJ^{=JevCQo}N?Ml>*1dSC;&)Vd1J9*gTe~DWM4fK5Ag+ literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_dead_bottom.png b/kubejs/assets/tfg/textures/block/crop/flax_dead_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..cdc10966657f09dcaf997b60a021a1eaf67d862c GIT binary patch literal 1066 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE#tCs8=1*J&~t+sZ@TTIguJLr_Dz2#Lx(MxfYOpl-#8P@Af z&GOx$?BeOMvN5cVADEBC76g?{6#741Eb2%_!JYo{?{eku85TySuDU7C9CFs^Qs<5t zr`LDw3;$u*rl2%q;*6E*#@&%S`qo!h{HPLt8u{+|KbdB)gDDN}Dt(4`H*}bHq?_x` z{cKm*F;%to#~h2K3#^^;JN35z>@7Z-*qGkdlT$U%!bN9VRm8i*Ftd54WAw>_xz99&BAkRYJ0=9WvxY`=Tv|0TNy+zjq4@uf$Nm$& z)xueOWVly2wm$iB@c)DI?P-Nso92piF#pxx_ScZ_M_FUo;cff-b9a|ARm^YHUi*5z zY2!}+OVY8rH7qRK8@pexQ+v-i-TJ_X$$FBLlq)m2jw*eqbGtu@PXw_${>0hIKMBFfd4#xJHyX=jZ08=9Mrw z7o{eaq^2m8XO?6rxO@5rgg5euGcYhQdAc};Se%ZXyg&bzgUIpy=e<;=8w2(#Y@VSJ z6m*iAnK@8>THamBMUxsOQ(aq3JFY&`=a|a=EiZP4mOc;9G%b~oJq4eN1X&MyO0H}E z95Xrk-SO)0mG{5jla+gy_qF88wF>FWfzkcdx_>L;&!0QCciOX=wLi~fROoF}a;$sv ze_uj<&C$oTvHtG4x=WZCzNi-`-Cq^V$RIKIV9%%N+m#NUJ*z&2Oa8-`JxkVlT=;P3 z%sB%#NuOj-C#@1T4{ZSpNs{I5%VkBah``t-{DGo6bW9MTPx!wx9;Eq@h~z_Ied4YgH%tap^`IXYL* zk>_D*IQ+52Rpju8<_Qsu?s8?bt>SmoNLzYrOj!7EXQrU^yzYM~^E~(NTQ%49v1zm9 zuBd#6$8p}@)r%j6?}*CZ5YA%Hk$EHc)$7$#VXt|+Sh?FDbMATmbJ44i4+Z6`y_X$R z>I(cNFLAV~)m6m#oyfkLb%}yUfBby?eYR<uQ zmAfxj>DOnb-8l#OopyBy zmxk$>ajjG+U)j63==Y8C8@bE$C(7=KEh@L#J>$K{9F3a)8&woVAGth~SMSkj)H6tZ P2})z0u6{1-oD!M literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/block/crop/flax_dead_top.png b/kubejs/assets/tfg/textures/block/crop/flax_dead_top.png new file mode 100644 index 0000000000000000000000000000000000000000..922995fca6efee751904ddbe86ed12f0eb2bb9b1 GIT binary patch literal 810 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LE#tCs8=1*J&~t+sZ@TTIguJLr_Dz2#Lx(MxfYOpl-#8P@Af z&GOx$?BeOMvN5cVADEBC76g?{6#741Eb2%_!JYo{?{eku85TySuDU7C9CFs^Qs<5t zr`LDw3;$u*rl2%q;*6E*#@&%S`qo!h{HPLt8u{+|KbdB)gDDN}Dt(4`H*}bHq?_x` z{cKm*F;%to#~h2K3#^^;JN35z>@7Z-*qGkdlT$U%!bN9VRm8i*Ftd54WAw>_xz99&BAkRYJ0=9WvxY`=Tv|0TNy+zjq4@uf$Nm$& z)xueOWVly2wm$iB@c)DI?P-Nso92piF#pxx_ScZ_M_FUo;cff-b9a|ARm^YHUi*5z zY2!}+OVY8rH7qRK8@pexQ+v-i-TJ_X$$FBLlq)m2jw*eqbGtu@PXw_)RVTxNV!nz`!6`;u=xnoS&PUnpeW$ zT$GwvlA5AWo>`Ki;O^-g5Z=fq&cMLP^rWAUH!?6VFxaBE=fsKAM^7zSw~jGl z^+D!vp;hoit@WgdFu@w^q zkN$u0kg?d#%yP%{3C#S_YZm;Ly?LN7rv1N9`g%K;kHS?I9-du~zufv z!rzuPFWy{j*I4IZ77*0IeEI*2b1u`4i-q}|P~;IlBFg+C>wH}8i31^qKN*xa^`4)% z--WXo@7Z-*qGkdlT$U%!bN9VRm8i*Ftd54WAw>_xz99&BAkRYJ0=9WvxY`=Tv|0TNy+zjq4@uf$Nm$& z)xueOWVly2wm$iB@c)DI?P-Nso92piF#pxx_ScZ_M_FUo;cff-b9a|ARm^YHUi*5z zY2!}+OVY8rH7qRK8@pexQ+v-i-TJ_X$$FBLlq)m2jw*eqbGtu@PXw_zgslypvnRz`!6`;u=xnoS&PUnpeW$ zT$GwvlA5AWo>`Ki;O^-g5Z=fq&cMKE>FMGaVsZNI#Qj~(4g$ya$MT(fw8~_W?+&X} zouDNj6j{0(CY}6jNWX${0W(9&-p+9 zE@P{hwaMsf=BwvF-3=KOx?^-JZ{+^#eO}9;!1$m&&)BfTL`*VJj|uOshuiZs_p8Oomt znCYs=>Z!}nkXrt?VMj*DyB+se)f)8d-J%pHyy7Fq*h2j;j*`I`J zt1$FT*XG;J>wEr)%C!G4mIyKQTo->E^Z4m1-iPZM9bQ--(Q-b&F#c)7#&?G|+|vO? Nji;-h%Q~loCIH94d71zK literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/flax_line.png b/kubejs/assets/tfg/textures/item/flax_line.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff9bc17f3512905423d54c278b68fe9f846196e GIT binary patch literal 5451 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 O$cdh=elF{r5}E)+Q~rzq literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/flax_tow.png b/kubejs/assets/tfg/textures/item/flax_tow.png new file mode 100644 index 0000000000000000000000000000000000000000..e157552b7e96ed8204eba00c3c3e721f8881b02e GIT binary patch literal 875 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK1s21N_g+&t*$tC@aOB0stu;5z9 z%5E>VnosZCE~_0}O%K>Rc0XA1LP_i<{fHMlpy4#bW&Q~s-Ioj&1UP`0L8EMV2q0vm`<0MeW8l{e}njb8nHF_O&)Aa;@-z?>sRp zW$V{+o~fO5??uK$<%9z19XsA-T#_r;$;@M$xk&HUr2b{wBUtX8e=+-$!waz&@x@iy z?;n3*JP{Or+Wf#lMT59SZ%U_^v+t_@{oQBxe)(%WMd!Hvye=~^Ft8p0AC@8?QA@6Pt!(N`wC_1NkWU0C9<;I~ZWv?il_KW-ER zJfD3&CO1GhYjNPp_}wKA7j`-cs2%yfENWe&jdx;z@Tw^@dgks`{l3lkwzKe5A&HxO zTB;6`?J>+fAM+gk{Bq3NJypnH1!wcD2kH)C9moDzhfl~(h~&88Ec_&TQ4rJo_?L;Y zF+bOx+blA9W3z%!$E}PNK}|+|sfr(deA-suy4=-C<1xpfmMhi4#~j&Nly6)9TX4(D aBFg?!c9ZVkjnbg3#Ng@b=d#Wzp$PyE@p^v% literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/flax_waste.png b/kubejs/assets/tfg/textures/item/flax_waste.png new file mode 100644 index 0000000000000000000000000000000000000000..6825dab038a7709cb5bce6c22eec24f92a769b7e GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK1s21N_g+&t*$tC@aOB0stu;5z9 z%5E>VnosZCE~_0}O%K>Rc0XA1LP_i<{fHMlpy4#bW&Q~s-Ioj&1UP`0L8EMV2q0vm`<0MeW8l{e}njb8nHF_O&)Aa;@-z?>sRp zW$V{+o~fO5??uK$<%9z19XsA-T#_r;$;@M$xk&HUr2b{wBUtX8e=+-$!waz&@x@iy z?;n3*JP{Or+Wf#lMT59SZ%U_^v+t_@{oQBxe)(%WMd!Hvye=~^Ft8J38*XYg;Bg7};c64nTw%eo zw0cD?Gv5p8fXDMDIR^v=9JpZF`oFGIWoF_d!Kn3LR9NimYP(q&E;DW1xa{0>0n>jE z4(`@rYPcS(pIkF%^NRe5Icpdi7G7pJ`g+=A&6K!c=I2x8-%mJVz2tMy@yy1Ga`8=n z1Qbn@rH@)T&yq^0-&QisOU$|5Me)Avn_TC17j}jl{A&~LUTG<05D@zBdSg=j_CN7c z%TN4IiBy{zvQ#ZlAnDoR9~RDB?ve)Sug=i$GE0>FVdQ I&MBb@0JE)gssI20 literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/linen_cloth.png b/kubejs/assets/tfg/textures/item/linen_cloth.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd36cb2858a78baff682f5ced9b50dd1c67feec GIT binary patch literal 810 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%>ngr7fk2*!xo;LJ^)2mk-4Jk#YpvCcm|v{EQj=U2^2VYO9!`oXq#fclRE@YklDM3WK9Bx|q7MUahR~ zIq@uv^}jZggrmHhp_-Ai_Y!gA0@?WQA3l85JGA-E`M;J`Pxl;T=y#Awos}n)FK|9@ zmeljwM*`ZNMjtIdF7Xprse7{P$p`7@i_XT)le}cSvhtC@#(*~oE1M%d!#mPD4sTi% zw9owYhBKAjn}b$vyk`58yScJd^=#>^!yU<-oGOYAPQ0lh2}(|@y}BAj-X4$n@n{cn*C?3=-&2Z@k?EihVRC|mdO|taDQ22xp(Wg z!e0z2D^@?1e(*qGhDOl0U8i?5&)xgCdfCUO>_%)p?h48n{ROYO@T7#P?~Jbhi+UvkLusW4SN>3qq+z#v)T8d2h$pPQSS zSHj?2l$uzQnxasiS(2gP?&%v4-pD7;z`)4l>Eak-aXL9cBI7`Z|EAqm|Ll8WZ|#~e zQH6Qe>c{`vS$-KC7#JAXRQ%|8cxLD42;Rg)OK%=IA#g5y!t`VVLnD_$K|gVY+dX_6 zcD8U%pT99PEg>O6Kv2vn@Oa0Xi|3AYH8wUjI{Ji&xIS)f=a&?D@>J3+?;e}@^l8&l zG;(84oL~}mDErpj-Y+5YCxRkT-UJ}lj{;}2i)r}e@Qns28L4k8ava^FH}Kc?CI*~ Jvd$@?2>{s5UKaoW literal 0 HcmV?d00001 diff --git a/kubejs/assets/tfg/textures/item/linen_thread.png b/kubejs/assets/tfg/textures/item/linen_thread.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb8f845f1342055f238245cab1cf511cea6b40f GIT binary patch literal 745 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7TQZ%U13aCb6$*;-(=u~X z85lGs)=sqbIP4&EG(LK%>ngr7fk2*!xo;LJ^)2mk-4Jk#YpvCcm|v{EQj=U2^2VYO9!`oXq#fclRE@YklDM3WK9Bx|q7MUahR~ zIq@uv^}jZggrmHhp_-Ai_Y!gA0@?WQA3l85JGA-E`M;J`Pxl;T=y#Awos}n)FK|9@ zmeljwM*`ZNMjtIdF7Xprse7{P$p`7@i_XT)le}cSvhtC@#(*~oE1M%d!#mPD4sTi% zw9owYhBKAjn}b$vyk`58yScJd^=#>^!yU<-oGOYAPQ0lh2}(|@y}BAj-X4$n@n{cn*C?3=-&2Z@k?EihVRC|mdO|taDQ22xp(Wg z!e0z2D^@?1e(*qGhDOl0U8i?5&)xgCdfCUO>_%)p?h48n{ROYO@T7#P?~Jbhi+UvkLusVLrP{xO?@fkCpwHKN2hKQ}iu zuY|$5C^fMpHASI3vm`^o-P1Q9ypd0wfq~(mr;B5V#p%71Hu4@;5ODqPIrC7N_e0rB zX`M?>3A_wi)?Mx)>OHUVn)Qx??1;yg7?jw0T$jvgao~8jzrOr{y%V3Tc>TO%^AtOl zZ+w3L3ae<4#MfA}Ni&*0nLW8sC>9(r=ZM%T|Fn(FS4B@UGKej0oOx0$d;Ro=bt|>E z95+r(i<*+AviX>SFYlY$Jz~!qH*a3mo_|?Q0LL{~Q#n&*$tC@aOB0stu;5z9 z%5E>VnosZCE~_0}O%K>Rc0XA1LP_i<{fHMlpy4#bW&Q~s-Ioj&1UP`0L8EMV2q0vm`<0MeW8l{e}njb8nHF_O&)Aa;@-z?>sRp zW$V{+o~fO5??uK$<%9z19XsA-T#_r;$;@M$xk&HUr2b{wBUtX8e=+-$!waz&@x@iy z?;n3*JP{Or+Wf#lMT59SZ%U_^v+t_@{oQBxe)(%WMd!Hvye=~^Ft8c-+w(UWh#aXmrZwV_Z$5=O8K9s)K6Y| zB&?oTqlvR-CdHmJ^4W4#N^FiihBZDrZ=AzGo8z!d9A&= zI)H)2MCugRRne0{Id?sJ7C21wcGRnn+}p`#yz70|i)p($)7MMyh`YVWmOWLKw|$ND z-R*L37g*QnH2l>0BpTLT;CKI9Ri|wKlUu?DQANl2F4nZ!&P&;EzvRYzKCkj?-fQHY wf2O|urt#hW$Q+A_pC$FSb3B~QtmdKI;Vst0F542r2qf` literal 0 HcmV?d00001 diff --git a/kubejs/data/tfg/worldgen/configured_feature/earth/flax_patch.json b/kubejs/data/tfg/worldgen/configured_feature/earth/flax_patch.json new file mode 100644 index 000000000..a45b5eb4e --- /dev/null +++ b/kubejs/data/tfg/worldgen/configured_feature/earth/flax_patch.json @@ -0,0 +1,40 @@ +{ + "type": "minecraft:random_patch", + "config": { + "feature": { + "feature": { + "type": "tfc:tall_wild_crop", + "config": { + "block": "tfg:flax_wild" + } + }, + "placement": [ + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "block_predicate_filter", + "predicate": { + "type": "tfc:replaceable" + } + }, + { + "type": "block_predicate_filter", + "predicate": { + "type": "would_survive", + "state": { + "Name": "tfg:flax_wild", + "Properties": { + "part": "bottom" + } + } + } + } + ] + }, + "tries": 20, + "xz_spread": 16, + "y_spread": 1 + } +} \ No newline at end of file diff --git a/kubejs/data/tfg/worldgen/placed_feature/earth/flax_patch.json b/kubejs/data/tfg/worldgen/placed_feature/earth/flax_patch.json new file mode 100644 index 000000000..15312c13a --- /dev/null +++ b/kubejs/data/tfg/worldgen/placed_feature/earth/flax_patch.json @@ -0,0 +1,20 @@ +{ + "feature": "tfg:earth/flax_patch", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 55 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "tfc:climate", + "min_temperature": -5, + "max_temperature": 27, + "min_rainfall": 175, + "max_rainfall": 475, + "max_forest": "sparse" + } + ] +} \ No newline at end of file diff --git a/kubejs/server_scripts/firmaciv/recipes.js b/kubejs/server_scripts/firmaciv/recipes.js index dbb956595..c8f0d6b75 100644 --- a/kubejs/server_scripts/firmaciv/recipes.js +++ b/kubejs/server_scripts/firmaciv/recipes.js @@ -104,6 +104,8 @@ const registerFirmaCivRecipes = (event) => { //#endregion // #region More rope + event.replaceInput({ output: 'firmaciv:rope_coil'}, 'tfc:jute_fiber', '#tfg:burlap_fiber') + event.shaped('firmaciv:rope_coil', [ 'A ', 'AB', diff --git a/kubejs/server_scripts/gregtech/recipes.js b/kubejs/server_scripts/gregtech/recipes.js index 2b09e8271..7b3e926eb 100644 --- a/kubejs/server_scripts/gregtech/recipes.js +++ b/kubejs/server_scripts/gregtech/recipes.js @@ -1171,6 +1171,8 @@ const registerGTCEURecipes = (event) => { //#region GT Facades + event.remove({ id: 'gtceu:crafting/facade_cover'}) + event.shapeless(Item.of('gtceu:facade_cover', 8, '{Facade: {Count:1b,id:"minecraft:stone"}}'), ['3x #forge:plates/iron', "#tfg:whitelisted/facades"]) .modifyResult((craftingGrid, result) => { let blockID = craftingGrid.find(Ingredient.of("#tfg:whitelisted/facades")).id diff --git a/kubejs/server_scripts/minecraft/recipes.js b/kubejs/server_scripts/minecraft/recipes.js index 5b96b8489..24bbbeb91 100644 --- a/kubejs/server_scripts/minecraft/recipes.js +++ b/kubejs/server_scripts/minecraft/recipes.js @@ -780,7 +780,7 @@ const registerMinecraftRecipes = (event) => { ' BA', 'A ' ], { - A: 'tfc:jute_fiber', + A: '#tfg:burlap_fiber', B: '#forge:rings' }).id('tfc:crafting/lead') diff --git a/kubejs/server_scripts/sacksnstuff/recipes.js b/kubejs/server_scripts/sacksnstuff/recipes.js index 5f0db5160..b29697338 100644 --- a/kubejs/server_scripts/sacksnstuff/recipes.js +++ b/kubejs/server_scripts/sacksnstuff/recipes.js @@ -59,7 +59,7 @@ const registerSNSRecipes = (event) => { 'BCB', 'DBE' ], { - A: 'tfc:jute_fiber', + A: '#tfg:burlap_fiber', B: 'sns:leather_strip', C: 'sns:unfinished_leather_sack', D: 'minecraft:name_tag', @@ -68,7 +68,7 @@ const registerSNSRecipes = (event) => { ) ).id('sns:crafting/leather_sack') - event.recipes.tfc.damage_inputs_shaped_crafting( + /*event.recipes.tfc.damage_inputs_shaped_crafting( event.shaped('sns:leather_sack', [ ' A ', 'BCB', @@ -81,7 +81,7 @@ const registerSNSRecipes = (event) => { E: 'tfc:bone_needle' } ) - ).id('sns:crafting/leather_sack_coil') + ).id('sns:crafting/leather_sack_coil')*/ event.recipes.tfc.damage_inputs_shaped_crafting( event.shaped('sns:ore_sack', [ @@ -161,7 +161,7 @@ const registerSNSRecipes = (event) => { itemAsHead: 'gtceu:small_pipe_extruder_mold', results: [{ item: '2x sns:buckle' }], processingTime: 80 * global.VINTAGE_IMPROVEMENTS_DURATION_MULTIPLIER - }).id('sns:vi/curving/buckle') + }).id('sns:vi/curving/buckle2') event.shaped('sns:pack_frame', [ 'AAA', @@ -177,11 +177,11 @@ const registerSNSRecipes = (event) => { 'BBB', 'AAA' ], { - A: 'tfc:jute_fiber', + A: '#tfg:burlap_fiber', B: '#forge:string' }).id('sns:shaped/reinforced_fiber') - + /* event.shaped('2x sns:reinforced_fiber', [ ' A ', 'BBB', @@ -191,10 +191,10 @@ const registerSNSRecipes = (event) => { B: '#forge:string', C: '#forge:tools/knives' - }).id('sns:shaped/reinforced_fiber_rope') + }).id('sns:shaped/reinforced_fiber_rope')*/ event.recipes.gtceu.assembler('sns:reinforced_fiber') - .itemInputs('2x tfc:jute_fiber', '#forge:string') + .itemInputs('2x #tfg:burlap_fiber', '#forge:string') .itemOutputs('sns:reinforced_fiber') .duration(40) .EUt(GTValues.VA[GTValues.LV]) @@ -215,7 +215,6 @@ const registerSNSRecipes = (event) => { .duration(120) .EUt(GTValues.VA[GTValues.LV]) - event.recipes.gtceu.bender('sns:horseshoe_steel_electric_only') .itemInputs('#forge:rods/steel') .itemOutputs('sns:metal/horseshoe/steel') diff --git a/kubejs/server_scripts/tfc/tags.js b/kubejs/server_scripts/tfc/tags.js index bdec8b8dc..259dbf20f 100644 --- a/kubejs/server_scripts/tfc/tags.js +++ b/kubejs/server_scripts/tfc/tags.js @@ -332,6 +332,7 @@ const registerTFCItemTags = (event) => { }) event.add('tfc:any_knapping', '#tfc:pit_kiln_straw') + event.add('tfg:burlap_fiber', 'tfc:jute_fiber') } const registerTFCBlockTags = (event) => { @@ -603,6 +604,7 @@ const registerTFCPlacedFeatures = (event) => { // Crops event.add('tfc:feature/crops', 'tfg:earth/sunflower_patch') event.add('tfc:feature/crops', 'tfg:earth/rapeseed_patch') + event.add('tfc:feature/crops', 'tfg:earth/flax_patch') // Other decoration event.add('tfc:in_biome/underground_decoration', 'tfg:glow_lichen') diff --git a/kubejs/server_scripts/tfg/data.js b/kubejs/server_scripts/tfg/data.js index 10ef9f334..4fe84fcf7 100644 --- a/kubejs/server_scripts/tfg/data.js +++ b/kubejs/server_scripts/tfg/data.js @@ -258,6 +258,8 @@ const registerTFGFoodData = (event) => { food.decayModifier(1.5) }) + + // high-tech food @@ -429,6 +431,15 @@ const registerTFGCropRanges = (event) => { climate.hydrationWiggle(7.5) climate.temperatureWiggle(1.5) }, 'tfg:rapeseed') + + event.climateRange(climate => { + climate.minHydration(15) + climate.maxHydration(65) + climate.minTemperature(-8) + climate.maxTemperature(25) + climate.hydrationWiggle(6.5) + climate.temperatureWiggle(3) + }, 'tfg:flax') // Mars event.climateRange(climate => { @@ -523,6 +534,24 @@ const registerTFGFLPlanters = (event) => { ], null ) + + event.firmalifePlantable( + 'tfg:flax_seeds', + 'large', + 0, + 3, + 0.2, + 'tfg:flax_seeds', + 'tfg:flax_product', + 'nitrogen', + [ + 'tfg:block/crop/flax_age_0', + 'tfg:block/crop/flax_age_1', + 'tfg:block/crop/flax_age_5_top', + 'tfg:block/crop/flax_age_6_top' + ], + null + ) event.firmalifePlantable( 'betterend:amber_root_seeds', diff --git a/kubejs/server_scripts/tfg/recipes.miscellaneous.js b/kubejs/server_scripts/tfg/recipes.miscellaneous.js index 9e87f0aab..16f97a4cd 100644 --- a/kubejs/server_scripts/tfg/recipes.miscellaneous.js +++ b/kubejs/server_scripts/tfg/recipes.miscellaneous.js @@ -1367,6 +1367,60 @@ function registerTFGMiscellaneousRecipes(event) { B: 'beneath:warped_straw' }).id('tfg:shaped_large_nest_warped') - //#endregion + + //#region flax stuff + + event.recipes.tfc.scraping( + 'tfg:flax_waste', + 'tfg:flax_product', + 'tfg:item/flax_waste', + 'tfg:item/flax_product', + '2x tfg:flax_line' + ).id('tfg:scraping/flax_line') + + event.recipes.tfc.scraping( + 'tfc:groundcover/humus', + 'tfg:flax_waste', + 'tfc:item/groundcover/humus', + 'tfg:item/flax_waste', + 'tfg:flax_tow' + ).id('tfg:scraping/flax_tow') + + event.recipes.tfc.damage_inputs_shapeless_crafting( + event.shapeless('4x tfg:linen_thread', [ + 'tfg:flax_line', + 'tfc:spindle' + ]).id('tfg:shapeless/linen_thread') + ) + + //#region looming + event.recipes.tfc.loom( + '1x tfg:linen_cloth', + '16x tfg:linen_thread', + 8, + 'tfc:block/burlap' + ) + + event.recipes.tfc.loom( + '1x tfc:burlap_cloth', + '16x tfg:flax_tow', + 12, + 'tfc:block/burlap' + ) + + event.recipes.gtceu.assembler('tfg:assembler/linen_cloth') + .itemInputs('16x tfg:linen_thread') + .circuit(10) + .itemOutputs('tfg:linen_cloth') + .duration(100) + .EUt(4) + + event.recipes.gtceu.assembler('tfg:assembler/flax_burlap') + .itemInputs('16x tfg:flax_tow') + .circuit(10) + .itemOutputs('tfc:burlap_cloth') + .duration(100) + .EUt(4) + } diff --git a/kubejs/server_scripts/tfg/tags.js b/kubejs/server_scripts/tfg/tags.js index 9c31a059b..2a3a3f3b7 100644 --- a/kubejs/server_scripts/tfg/tags.js +++ b/kubejs/server_scripts/tfg/tags.js @@ -7,9 +7,11 @@ const registerTFGItemTags = (event) => { //crop stuff event.add('tfc:seeds', 'tfg:sunflower_seeds') event.add('tfc:seeds', 'tfg:rapeseed_seeds') + event.add('tfc:seeds', 'tfg:flax_seeds') event.add('tfc:foods', 'tfg:roasted_sunflower_seeds') event.add('tfc:compost_greens_high', 'tfg:rapeseed_product') event.add('tfc:compost_greens_high', 'tfg:sunflower_product') + event.add('tfc:compost_greens_high', 'tfg:flax_product') event.add('tfg:water_breathing_ingredients', 'tfg:rapeseed_product') event.add('tfg:night_vision_ingredients', 'tfg:sunflower_product') @@ -101,6 +103,7 @@ const registerTFGItemTags = (event) => { event.add('tfc:sewing_dark_cloth', 'tfg:polycaprolactam_fabric') event.add('forge:string', 'tfg:phantom_thread') event.add('forge:string', 'tfg:polycaprolactam_string') + event.add('forge:string', 'firmalife:pineapple_yarn') //#endregion // #region Medicines @@ -448,6 +451,9 @@ const registerTFGBlockTags = (event) => { event.add('tfc:crops', 'tfg:sunflower') event.add('tfc:mineable_with_sharp_tool', 'tfg:sunflower') + + event.add('tfc:crops', 'tfg:flax') + event.add('tfc:mineable_with_sharp_tool', 'tfg:flax') // #region Nether blocks event.add('minecraft:nether_carver_replaceables', 'tfg:rock/hardened_deepslate') diff --git a/kubejs/startup_scripts/tfc/constants.js b/kubejs/startup_scripts/tfc/constants.js index 2f8c73dff..85ff1b4bd 100644 --- a/kubejs/startup_scripts/tfc/constants.js +++ b/kubejs/startup_scripts/tfc/constants.js @@ -1035,6 +1035,8 @@ global.TFC_GREENHOUSE_VEGETABLE_RECIPE_COMPONENTS = [ { input: '8x tfc:seeds/yellow_bell_pepper', fluid_amount: 4000, output: '24x tfc:food/yellow_bell_pepper', name: 'yellow_bell_pepper' }, { input: '8x tfg:sunflower_seeds', fluid_amount: 4000, output: '24x tfg:sunflower_product', name: 'sunflower' }, { input: '8x tfg:rapeseed_seeds', fluid_amount: 4000, output: '24x tfg:rapeseed_product', name: 'rapeseed' }, + { input: '8x tfg:flax_seeds', fluid_amount: 4000, output: '24x tfg:flax_product', name: 'flax' } + ]; global.TFC_GREENHOUSE_BERRY_RECIPE_COMPONENTS = [ diff --git a/kubejs/startup_scripts/tfg/blocks.plants.js b/kubejs/startup_scripts/tfg/blocks.plants.js index 0e1b496aa..83099b7fc 100644 --- a/kubejs/startup_scripts/tfg/blocks.plants.js +++ b/kubejs/startup_scripts/tfg/blocks.plants.js @@ -59,6 +59,39 @@ const registerTFGCrops = (event) => { .tagBoth('tfc:wild_crops') .tagBlock('minecraft:mineable/hoe') .tagItem('c:hidden_from_recipe_viewers') + + event.create('tfg:flax', 'tfc:double_crop') + .translationKey('block.tfg.flax') + .soundType('crop') + .nutrient('nitrogen') + .stages(5) + .doubleStages(3) + .hardness(0.4) + .growthModifier(1.2) + .expiryModifier(1.2) + .tagBlock('minecraft:mineable/hoe') + .productItem(product => { + product.texture('tfg:item/flax_product') + product.tag('tfc:scrapable') + }) + .seedItem(seed => { + seed.texture('tfg:item/flax_seed') + }) + .deadBlock(dead => { + dead.hardness(0.2) + dead.soundType('crop') + dead.tagBlock('minecraft:mineable/hoe') + }) + + event.create('tfg:flax_wild', 'tfc:wild_crop') + .type('double') + .soundType('crop') + .seeds('tfg:flax_seeds') + .food('tfg:flax_product') + .hardness(0.2) + .tagBoth('tfc:wild_crops') + .tagBlock('minecraft:mineable/hoe') + .tagItem('c:hidden_from_recipe_viewers') // Mars Crops diff --git a/kubejs/startup_scripts/tfg/items.js b/kubejs/startup_scripts/tfg/items.js index a301cf31c..6e34a4554 100644 --- a/kubejs/startup_scripts/tfg/items.js +++ b/kubejs/startup_scripts/tfg/items.js @@ -401,4 +401,18 @@ const registerTFGItems = (event) => { .tag('tfc:sweetener') //#endregion + //#region Flax Stuff + event.create('tfg:flax_waste') + .tag('tfc:scrapable') + event.create('tfg:flax_tow') + .tag('tfg:burlap_fiber') + .tag('tfc:compost_browns') + event.create('tfg:flax_line') + .tag('tfc:compost_browns_low') + event.create('tfg:linen_thread') + .tag('forge:string') + event.create('tfg:linen_cloth') + .tag('forge:cloth') + .tag('tfc:sewing_light_cloth') + } diff --git a/pakku-lock.json b/pakku-lock.json index dff8dd7fe..9c12fe6ed 100644 --- a/pakku-lock.json +++ b/pakku-lock.json @@ -12709,6 +12709,29 @@ "modrinth": "2yZ8ZSeO" }, "files": [ + { + "type": "curseforge", + "file_name": "tfcgroomer-1.20.1-0.1.4.jar", + "mc_versions": [ + "1.20.1" + ], + "loaders": [ + "forge" + ], + "release_type": "release", + "url": "https://edge.forgecdn.net/files/6118/92/tfcgroomer-1.20.1-0.1.4.jar", + "id": "6118092", + "parent_id": "1003785", + "hashes": { + "sha1": "e1bb7e932f900cee6be0bf5faf3fc77111488865", + "md5": "e4f19ca0413c9716cb86a3b50ae27a36" + }, + "required_dependencies": [ + "302973" + ], + "size": 134178, + "date_published": "2025-01-23T23:02:18.440Z" + }, { "type": "modrinth", "file_name": "tfcgroomer-1.20.1-0.1.4.jar", @@ -12729,29 +12752,6 @@ "required_dependencies": [], "size": 134178, "date_published": "2025-07-27T17:29:15.479048Z" - }, - { - "type": "curseforge", - "file_name": "tfcgroomer-1.20.1-0.2.0.jar", - "mc_versions": [ - "1.20.1" - ], - "loaders": [ - "forge" - ], - "release_type": "release", - "url": "https://edge.forgecdn.net/files/6935/736/tfcgroomer-1.20.1-0.2.0.jar", - "id": "6935736", - "parent_id": "1003785", - "hashes": { - "sha1": "ad89216cf3689907af1c28b133bae6e26f749941", - "md5": "2f48a69948c27210a6c791c6c338124d" - }, - "required_dependencies": [ - "302973" - ], - "size": 152509, - "date_published": "2025-08-27T22:46:58.430Z" } ] },