Compare commits

..

29 Commits

Author SHA1 Message Date
fd5d608139 mods: add energymeter, rebalance intelligent grist based mods, fix bug with build grist progression, rebalance other basic grist lines 2025-07-10 23:31:06 +02:00
136a166983 mods: drop canary 2025-07-07 18:51:56 +02:00
78f64fce7c unify: add salt 2025-07-03 21:17:10 +02:00
f78f491c46 this time, test the fixes before pushing :D 2025-07-01 17:53:38 +02:00
2af72feb4d fix powah typo and re-add heated mixing for all 3-ingredient alloys 2025-07-01 17:38:00 +02:00
e8322eed47 patch up missing rod recipes, fix andesite alloy voiding bug, update geckolib, add butchery mod 2025-06-30 20:10:21 +02:00
ce717ad665 rewrite the ore processing to be even less code, buff compatability for agricultural automation 2025-06-29 14:36:19 +02:00
0e19f47a67 mods: update copycats for crash fix 2025-06-21 16:16:51 +02:00
ae4391314e rarities: fix crash with yellow/dark_gold 2025-06-21 11:51:39 +02:00
7c4fcbe515 mods: add rarityjs, and start creating some grist based rarity tiers 2025-06-21 11:49:03 +02:00
64a6513064 ore-processing: add some more create integration 2025-06-21 11:48:29 +02:00
7ac2c6cca2 config: itemborders: tweaks 2025-06-21 11:47:55 +02:00
6f1d3c3565 add crn, canary, swap out dynamic lights mod 2025-06-21 11:47:39 +02:00
d4efc8e919 thermal: drop earth charge 2025-06-21 11:46:05 +02:00
34077a5ee8 create_power_loader: balance 2025-06-21 11:45:53 +02:00
248988153e powder_power: drop mortar and pestle 2025-06-21 11:45:40 +02:00
aa0d4cc720 grist: put grist blocks into tags as well 2025-06-21 11:45:16 +02:00
79b17890ca mods: add some extra dimensions, create power loader, and hardcore revival mods 2025-06-16 20:36:19 +02:00
503686e346 grist: build: require cobblestone for duping recipe 2025-06-16 20:34:08 +02:00
a52d1fb5db packwiz: refresh 2025-06-15 16:16:06 +02:00
1e12f09858 mods: add attract-to-sound, vibrative-voice mods 2025-06-15 16:15:30 +02:00
52ba4e3b07 create_jetpack: fix removing stock recipes 2025-06-15 16:15:20 +02:00
035aac2850 create_jetpack: balance with grist 2025-06-15 16:03:20 +02:00
5a187602c8 grist: buff improved build grist, cut out the janky dissolution chamber fluid conversions, fix flour crushing in create 2025-06-15 16:03:10 +02:00
dc70ef881d create-enchantment-industry: add the kubejs anyways 2025-06-15 16:02:23 +02:00
da4b35fe3d mods: remove create enchantment industry, as it crashes rendering 2025-06-15 16:00:41 +02:00
0f75163bae mods: add some furniture, create enchantments, and the jetpack, and rewrite the dough processing line 2025-06-15 15:35:22 +02:00
e36994e537 quests: start splitting up grist questlines by tier 2025-06-15 14:12:34 +02:00
b861144041 assets: create textures for intelligent grist catalysts and focuses 2025-06-15 14:12:00 +02:00
75 changed files with 2700 additions and 1837 deletions

Binary file not shown.

Binary file not shown.

BIN
assets/sapient-focus.xcf Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -40,17 +40,26 @@
"forge:crops/{material}", "forge:crops/{material}",
"forge:seeds/{material}", "forge:seeds/{material}",
"forge:grain/{material}", "forge:grain/{material}",
"forge:flour/{material}",
"forge:bread/{material}",
"forge:tomato_sauces", "forge:tomato_sauces",
"forge:bacon", "forge:bacon",
"forge:raw_bacon",
"forge:cheeseburgers", "forge:cheeseburgers",
"forge:hamburgers", "forge:hamburgers",
"forge:string", "forge:string",
"forge:cheese", "forge:cheese",
"forge:peanut_butter_and_jam", "forge:peanut_butter_and_jam",
"forge:dough", "forge:dough",
"forge:dough/{material}",
"forge:flour",
"forge:steamed_rices", "forge:steamed_rices",
"forge:rubber", "forge:rubber",
"forge:cardboard" "forge:cardboard",
"forge:chocolate",
"forge:pasta",
"forge:salad_ingredients/{material}",
"forge:salt"
], ],
"materials": [ "materials": [
"aeternium", "aeternium",
@ -128,7 +137,10 @@
"barley", "barley",
"coffee_beans", "coffee_beans",
"apple", "apple",
"fig" "fig",
"wheat",
"ginger"
], ],
"priorityOverrides": { "priorityOverrides": {
"forge:cheese": "thermal", "forge:cheese": "thermal",
@ -182,16 +194,34 @@
"forge:cardboard": ["dustrial_decor:cardboard", "create:cardboard"], "forge:cardboard": ["dustrial_decor:cardboard", "create:cardboard"],
"thermal:crafting/dies": ["ae2:silicon_press", "ae2:engineering_processor_press", "ae2:calculation_processor_press", "ae2:logic_processor_press"], "thermal:crafting/dies": ["ae2:silicon_press", "ae2:engineering_processor_press", "ae2:calculation_processor_press", "ae2:logic_processor_press"],
"forge:ingots/andesite_alloy": ["create:andesite_alloy"], "forge:ingots/andesite_alloy": ["create:andesite_alloy"],
"forge:storage_blocks/andesite_alloy": ["create:andesite_alloy_block"],
"forge:rods/andesite_alloy": ["create:shaft"], "forge:rods/andesite_alloy": ["create:shaft"],
"forge:gears/andesite_alloy": ["create:cogwheel"] "forge:gears/andesite_alloy": ["create:cogwheel"],
"forge:flour/wheat": ["croptopia:flour"],
"forge:dough/wheat": ["croptopia:dough", "candlelight:dough", "bakery:dough"],
"forge:dough/ginger": ["create_confectionery:gingerdough"],
"forge:bread/ginger": ["create_confectionery:gingerbread", "brewery:gingerbread"],
"forge:bars/chocolate": ["croptopia:chocolate"],
"forge:storage_blocks/redium": ["powder_power:block_redium"],
"forge:storage_blocks/lapium": ["powder_power:block_lapium"],
"forge:storage_blocks/gemium": ["powder_power:block_gemium"],
"forge:storage_blocks/trilium": ["powder_power:block_trilium"],
"forge:storage_blocks/quadrilium": ["powder_power:block_quadrilium"],
"forge:limestone": ["quark:limestone", "alexcaves:limestone", "create:limestone"],
"create:stone_types/limestone": ["quark:limestone", "alexcaves:limestone"]
}, },
"tagOwnerships": { "tagOwnerships": {
"forge:crops/bell_pepper": ["forge:crops/bellpepper"], "forge:crops/bell_pepper": ["forge:crops/bellpepper"],
"forge:crops/tea": ["forge:tea_leaves", "forge:crops/tea_leaves"], "forge:crops/tea": ["forge:tea_leaves", "forge:crops/tea_leaves"],
"forge:seeds/rice": ["forge:rice_seeds", "forge:seeds/rice_seeds"], "forge:seeds/rice": ["forge:rice_seeds", "forge:seeds/rice_seeds"],
"forge:grain/rice": ["forge:rice", "forge:crops/rice"], "forge:grain/rice": ["forge:rice", "forge:crops/rice"],
"forge:grain/corn": ["forge:crops/corn"] "forge:grain/corn": ["forge:crops/corn"],
"forge:dough": ["c:dough", "forge:doughs", "bakery:dough", "candlelight:dough"],
"forge:bars/chocolate": ["forge:chocolate", "forge:chocolates"],
"forge:grain/barley": ["forge:crops/barley"]
}, },
"itemTagInheritanceMode": "ALLOW", "itemTagInheritanceMode": "ALLOW",
"itemTagInheritance": {}, "itemTagInheritance": {},

View File

@ -1,8 +1,8 @@
{ {
chapter_groups: [ chapter_groups: [
{ id: "51EABD5138070E99", title: "The Elements of Grist" } { id: "51EABD5138070E99", title: "The Elements of Grist" }
{ id: "35747BFAEA235A1C", title: "Energetic Grist" } { id: "35747BFAEA235A1C", title: "Build Grist" }
{ id: "7E7A924BDCDD2AE6", title: "Build Grist" } { id: "7E7A924BDCDD2AE6", title: "Energetic Grist" }
{ id: "6BA8BD651D06794E", title: "Agricultural Grist" } { id: "6BA8BD651D06794E", title: "Agricultural Grist" }
{ id: "5618D395AFF037A4", title: "Intelligent Grist" } { id: "5618D395AFF037A4", title: "Intelligent Grist" }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,649 @@
{
default_hide_dependency_lines: false
default_quest_shape: ""
filename: "basic_intelligent_grist"
group: "5618D395AFF037A4"
id: "01E47C5B2C0CF536"
order_index: 0
quest_links: [ ]
quests: [
{
dependencies: ["425D7E1F7944C15A"]
id: "267EA884679F03FC"
shape: "diamond"
size: 2.0d
tasks: [{
id: "49F3FF457C481E77"
title: "Basic Automation"
type: "checkmark"
}]
x: 3.0d
y: -1.0d
}
{
dependencies: ["529102FE3FD91B1A"]
id: "425D7E1F7944C15A"
shape: "gear"
size: 2.0d
tasks: [{
id: "14FDA39579EB1CF8"
item: "kubejs:grist_intelligent_basic"
type: "item"
}]
x: 5.0d
y: 0.5d
}
{
dependencies: ["13F36EDF98D4B995"]
id: "0DA35C129BC11940"
tasks: [{
id: "06E19B2A37AA67D1"
item: "sophisticatedstorage:controller"
type: "item"
}]
x: 5.0d
y: -3.5d
}
{
dependencies: ["425D7E1F7944C15A"]
id: "13F36EDF98D4B995"
shape: "diamond"
size: 2.0d
tasks: [{
id: "5BEC506D5B4BD49E"
title: "Storage Grid"
type: "checkmark"
}]
x: 5.0d
y: -2.0d
}
{
dependencies: [
"0DA35C129BC11940"
"54319D03AA18E735"
"7DF2C7C408419D18"
]
id: "0BA5AC285C684149"
tasks: [{
id: "06EDED6249F9B3F8"
item: "ae2:storage_bus"
type: "item"
}]
x: 5.0d
y: -5.0d
}
{
dependencies: ["267EA884679F03FC"]
id: "591072E10AD3C88A"
shape: "diamond"
size: 2.0d
tasks: [{
id: "09D314EDEF99ACB4"
item: "prettypipes:pipe"
type: "item"
}]
x: -0.5d
y: -1.5d
}
{
dependencies: ["267EA884679F03FC"]
id: "7A7EB33F1989C25C"
tasks: [{
id: "2512BFE42B46E31C"
item: "thermal:item_buffer"
type: "item"
}]
x: 0.0d
y: -3.0d
}
{
dependencies: ["591072E10AD3C88A"]
id: "4D5F7853656661AC"
tasks: [{
id: "2D68E9FB53659B42"
item: "prettypipes:low_extraction_module"
type: "item"
}]
x: -1.5d
y: -0.5d
}
{
dependencies: ["591072E10AD3C88A"]
id: "760ACDBAE65C0D1C"
tasks: [{
id: "2C3B194602256990"
item: "prettypipes:low_crafting_module"
type: "item"
}]
x: -1.5d
y: -2.5d
}
{
dependencies: ["760ACDBAE65C0D1C"]
id: "31DB5CC7C8020500"
tasks: [{
id: "7B684229511C4CE9"
item: "prettypipes:medium_crafting_module"
type: "item"
}]
x: -2.5d
y: -2.5d
}
{
dependencies: ["4D5F7853656661AC"]
id: "2B4D1025687B8A5D"
tasks: [{
id: "4A61575D6AA9AFC8"
item: "prettypipes:medium_extraction_module"
type: "item"
}]
x: -2.5d
y: -0.5d
}
{
dependencies: ["591072E10AD3C88A"]
id: "52FE7705DB61B1DE"
tasks: [{
id: "34C550041124E986"
item: "prettypipes:wrench"
type: "item"
}]
x: -2.0d
y: -1.5d
}
{
dependencies: ["759EDC67BB936B05"]
id: "76CB1E5A99B62CC3"
tasks: [{
id: "5CE59C8C7EF19808"
item: "ars_nouveau:novice_spell_book"
type: "item"
}]
x: 2.5d
y: 1.5d
}
{
dependencies: ["54319D03AA18E735"]
id: "759B061B596A77BF"
shape: "rsquare"
size: 1.5d
tasks: [{
id: "088377929813DA07"
item: "ae2:terminal"
type: "item"
}]
x: 5.0d
y: -6.5d
}
{
dependencies: ["4317A5EE85960390"]
id: "6148239C8A736F47"
tasks: [{
id: "695C63A17AC171A9"
item: "ae2:printed_logic_processor"
type: "item"
}]
x: 8.0d
y: -7.5d
}
{
dependencies: ["2FE09A3185FF9959"]
id: "0437D71E6EC5D9B1"
tasks: [{
id: "12F5FD6762FA80CE"
item: "ae2:fluix_dust"
type: "item"
}]
x: 10.0d
y: -7.5d
}
{
dependencies: ["0FDFDAC9783D1868"]
id: "4317A5EE85960390"
tasks: [{
id: "6B2AA8C98FFB6354"
item: "ae2:printed_silicon"
type: "item"
}]
x: 8.0d
y: -9.0d
}
{
dependencies: ["7BCCB6740DDF0280"]
id: "7D802158D07B33B5"
tasks: [{
id: "73230E83E681B4A3"
item: "ae2:energy_acceptor"
type: "item"
}]
x: 7.0d
y: -14.0d
}
{
dependencies: ["1209A892C293B8BC"]
id: "7BCCB6740DDF0280"
tasks: [{
id: "2531F8D0041B670A"
item: "ae2:quartz_glass"
type: "item"
}]
x: 8.5d
y: -14.0d
}
{
dependencies: [
"6148239C8A736F47"
"0437D71E6EC5D9B1"
]
id: "16666552B4DE7562"
tasks: [{
id: "2B0B15463C65E292"
item: "ae2:formation_core"
type: "item"
}]
x: 7.0d
y: -6.5d
}
{
dependencies: [
"6148239C8A736F47"
"0437D71E6EC5D9B1"
]
id: "07073EDA28B6B124"
tasks: [{
id: "474C53F30FC1B491"
item: "ae2:annihilation_core"
type: "item"
}]
x: 9.0d
y: -6.5d
}
{
dependencies: ["4AA3E9811317F051"]
id: "0FDFDAC9783D1868"
tasks: [{
id: "267D521C2680636A"
item: "ae2:inscriber"
type: "item"
}]
x: 8.0d
y: -10.5d
}
{
dependencies: ["4AA3E9811317F051"]
id: "31BB203ADCC56846"
shape: "diamond"
size: 1.5d
tasks: [{
id: "15E029FB4580393C"
item: "ae2:meteorite_compass"
type: "item"
}]
x: 12.0d
y: -11.5d
}
{
dependencies: ["31BB203ADCC56846"]
id: "3599B2F85B049737"
tasks: [{
id: "3018C6920103D477"
item: "ae2:certus_quartz_crystal"
type: "item"
}]
x: 10.5d
y: -11.5d
}
{
dependencies: ["3599B2F85B049737"]
id: "1209A892C293B8BC"
tasks: [{
id: "23AB5A52CC0FD33E"
item: "ae2:certus_quartz_dust"
type: "item"
}]
x: 9.5d
y: -12.5d
}
{
dependencies: ["48C86C2E1660A2F4"]
id: "7DF2C7C408419D18"
tasks: [{
id: "1BCC05175DBCB191"
item: "ae2:fluix_glass_cable"
type: "item"
}]
x: 8.5d
y: -4.0d
}
{
dependencies: ["1209A892C293B8BC"]
id: "26CAC7628D6D8DC1"
tasks: [{
id: "0E8E123EA834D19A"
item: "ae2:quartz_fiber"
type: "item"
}]
x: 8.5d
y: -12.5d
}
{
dependencies: ["759B061B596A77BF"]
id: "6E9944AFA950BF8F"
tasks: [{
id: "6AB1758716F040F0"
item: "ae2:crafting_terminal"
type: "item"
}]
x: 5.0d
y: -9.5d
}
{
dependencies: [
"16666552B4DE7562"
"07073EDA28B6B124"
]
id: "54319D03AA18E735"
tasks: [{
id: "54D8C3AA23FBAB33"
item: "ae2:interface"
type: "item"
}]
x: 8.0d
y: -5.0d
}
{
dependencies: [
"183D92B8FE443776"
"3599B2F85B049737"
]
id: "2FE09A3185FF9959"
tasks: [{
id: "23EA472A0E82C659"
item: "ae2:charged_certus_quartz_crystal"
type: "item"
}]
x: 10.0d
y: -10.0d
}
{
dependencies: ["4AA3E9811317F051"]
id: "183D92B8FE443776"
tasks: [{
id: "4A2667B55779459B"
item: "ae2:charger"
type: "item"
}]
x: 12.0d
y: -10.0d
}
{
dependencies: ["0437D71E6EC5D9B1"]
id: "6F731D4A3DB27CC8"
tasks: [{
id: "12F6CC3FEBC11534"
item: {
Count: 1
id: "ae2:energy_cell"
tag: { }
}
type: "item"
}]
x: 11.5d
y: -7.5d
}
{
dependencies: ["0437D71E6EC5D9B1"]
id: "48C86C2E1660A2F4"
tasks: [{
id: "095D84484CFECA15"
item: "ae2:fluix_crystal"
type: "item"
}]
x: 10.0d
y: -4.5d
}
{
dependencies: ["76CB1E5A99B62CC3"]
id: "5258D2DA4EDC3D55"
shape: "diamond"
size: 2.0d
tasks: [{
id: "215348AD0214FB5B"
item: "ars_nouveau:scribes_table"
type: "item"
}]
x: 0.5d
y: 2.5d
}
{
dependencies: ["425D7E1F7944C15A"]
id: "759EDC67BB936B05"
tasks: [{
id: "4BE516035014C43D"
title: "Magic"
type: "checkmark"
}]
x: 3.5d
y: 1.0d
}
{
dependencies: ["0B97D51D73E92080"]
id: "3F5198E4EDCB780C"
tasks: [{
id: "5C51DB82639DDDBE"
item: "ars_nouveau:water_essence"
type: "item"
}]
x: 5.5d
y: 5.5d
}
{
dependencies: ["0B97D51D73E92080"]
id: "10AA66800AAD1B89"
tasks: [{
id: "20EA9C3DD2AA73C2"
item: "ars_nouveau:conjuration_essence"
type: "item"
}]
x: 7.5d
y: 5.5d
}
{
dependencies: [
"604EB9292B7B9851"
"76F0CD7675CA4763"
]
id: "529102FE3FD91B1A"
tasks: [{
id: "5E73A165AC50AEAF"
item: "kubejs:insightful_tincture"
type: "item"
}]
x: 2.5d
y: 3.5d
}
{
dependencies: [
"7A490E72354C2498"
"209F302DAF6A12D3"
]
id: "76F0CD7675CA4763"
tasks: [{
id: "684432F1B1BFD40C"
item: "kubejs:sacred_flesh"
type: "item"
}]
x: 3.5d
y: 4.0d
}
{
dependencies: [
"7A490E72354C2498"
"7848999FF2D5D4EF"
]
id: "604EB9292B7B9851"
tasks: [{
id: "49CF39E4895C18AD"
item: "kubejs:insightful_blend"
type: "item"
}]
x: 1.5d
y: 4.0d
}
{
dependencies: ["4AA3E9811317F051"]
id: "7848999FF2D5D4EF"
tasks: [{
id: "24F4E163A507EBCC"
item: "thermal:lapis_dust"
type: "item"
}]
x: 1.5d
y: 5.0d
}
{
dependencies: ["4AA3E9811317F051"]
id: "209F302DAF6A12D3"
tasks: [{
id: "341462D279F30C07"
item: "thermal:gold_dust"
type: "item"
}]
x: 3.5d
y: 5.0d
}
{
dependencies: ["4AA3E9811317F051"]
id: "7A490E72354C2498"
tasks: [{
id: "2F6C8CDE70803F78"
item: "minecraft:rotten_flesh"
type: "item"
}]
x: 2.5d
y: 4.5d
}
{
dependencies: ["4AA3E9811317F051"]
id: "70F2BD0348311709"
tasks: [{
id: "679A179B6EAF5D76"
item: "ars_nouveau:sourcestone"
type: "item"
}]
x: 6.5d
y: 3.5d
}
{
dependencies: ["71CE16EA312354E7"]
hide_dependent_lines: true
id: "4AA3E9811317F051"
size: 4.0d
tasks: [{
id: "374623BD4F7C33D3"
title: "Intelligent Grist"
type: "checkmark"
}]
x: -6.0d
y: 4.0d
}
{
dependencies: ["0B97D51D73E92080"]
id: "3FD161550471A495"
size: 3.0d
tasks: [{
count: 64L
id: "370B7C6782A0804C"
item: { Count: 64, id: "kubejs:grist_intelligent_basic" }
type: "item"
}]
title: "Basic Mass Production"
x: 2.0d
y: 8.5d
}
{
dependencies: ["0B97D51D73E92080"]
id: "072994347F78FA2D"
tasks: [{
id: "549412D2D13DB926"
item: "ars_nouveau:earth_essence"
type: "item"
}]
x: 5.5d
y: 8.5d
}
{
dependencies: ["0B97D51D73E92080"]
id: "1AF163ED020F3F21"
tasks: [{
id: "26967FDCD851C6AD"
item: "ars_nouveau:air_essence"
type: "item"
}]
x: 5.0d
y: 6.5d
}
{
dependencies: [
"425D7E1F7944C15A"
"70F2BD0348311709"
]
id: "0B97D51D73E92080"
size: 1.5d
tasks: [{
id: "49D20EE2038804D8"
item: "ars_nouveau:arcane_pedestal"
type: "item"
}]
x: 6.5d
y: 7.0d
}
{
dependencies: ["0B97D51D73E92080"]
id: "4CE7CBA1BBF3DB58"
tasks: [{
id: "6FF3697C15BB5B8A"
item: "ars_nouveau:fire_essence"
type: "item"
}]
x: 7.5d
y: 8.5d
}
{
dependencies: ["0B97D51D73E92080"]
id: "493157AD0F8B723F"
tasks: [{
id: "6ED11DD8BDD07F5F"
item: "ars_nouveau:manipulation_essence"
type: "item"
}]
x: 6.5d
y: 9.0d
}
{
dependencies: ["0B97D51D73E92080"]
id: "0B73D34F06AFB9A4"
tasks: [{
id: "3E999FF3E211F041"
item: "ars_nouveau:abjuration_essence"
type: "item"
}]
x: 8.0d
y: 6.5d
}
{
dependencies: ["425D7E1F7944C15A"]
id: "50DA15D9CAD36E2A"
shape: "diamond"
size: 2.0d
tasks: [{
id: "3A2B8A8446B0C400"
title: "Transportation"
type: "checkmark"
}]
x: 7.0d
y: -1.0d
}
]
title: "Basic Intelligent Grist"
}

View File

@ -155,6 +155,7 @@
dependencies: [ dependencies: [
"6D12D603E67142C3" "6D12D603E67142C3"
"65F274108773893B" "65F274108773893B"
"1B8AD95F2FB7F324"
] ]
id: "3FD50E817C92C5EB" id: "3FD50E817C92C5EB"
tasks: [{ tasks: [{
@ -193,7 +194,7 @@
item: "thermal:machine_centrifuge" item: "thermal:machine_centrifuge"
type: "item" type: "item"
}] }]
x: -4.0d x: -7.5d
y: 0.0d y: 0.0d
} }
{ {
@ -210,8 +211,8 @@
type: "item" type: "item"
}] }]
title: "Centrifuging Clay" title: "Centrifuging Clay"
x: -6.0d x: -8.25d
y: 1.0d y: 3.0d
} }
{ {
dependencies: ["4ABF24D9CFD208BA"] dependencies: ["4ABF24D9CFD208BA"]
@ -253,6 +254,16 @@
x: -2.0d x: -2.0d
y: 3.0d y: 3.0d
} }
{
id: "1B8AD95F2FB7F324"
tasks: [{
id: "34BB07EF484A49D9"
item: "kubejs:grist_build_basic"
type: "item"
}]
x: -4.5d
y: -2.0d
}
] ]
title: "Improved Build Grist" title: "Improved Build Grist"
} }

View File

@ -0,0 +1,444 @@
{
default_hide_dependency_lines: false
default_quest_shape: ""
filename: "improved_intelligent_grist"
group: "5618D395AFF037A4"
icon: "kubejs:grist_intelligent_improved"
id: "74B65283E5E1E10F"
order_index: 1
quest_links: [ ]
quests: [
{
dependencies: ["3C9D10316136CCE7"]
id: "0A6CEBEE1C135E36"
shape: "gear"
size: 2.0d
tasks: [{
id: "622D9AA7BE23D851"
item: "kubejs:grist_intelligent_improved"
type: "item"
}]
x: 6.5d
y: -3.0d
}
{
dependencies: ["4AA3E9811317F051"]
id: "7C1F3D3A623F5FA2"
tasks: [{
id: "02D734AAD8E322F5"
item: "ars_elemental:lesser_fire_focus"
type: "item"
}]
x: 5.0d
y: -0.5d
}
{
dependencies: ["4AA3E9811317F051"]
id: "4A316546C4FCB12A"
tasks: [{
id: "4C4057E8D9C77A82"
item: "ars_elemental:lesser_air_focus"
type: "item"
}]
x: 6.0d
y: 1.5d
}
{
dependencies: [
"5B407BC47F97CAD2"
"4A316546C4FCB12A"
"7C1F3D3A623F5FA2"
"4C9475E4E38E1926"
"6CAEBD670D89A90E"
]
id: "3C9D10316136CCE7"
tasks: [{
id: "6BF8D412C0C044DE"
item: "kubejs:sapient_focus"
type: "item"
}]
x: 6.5d
y: 0.0d
}
{
dependencies: ["4AA3E9811317F051"]
id: "6CAEBD670D89A90E"
tasks: [{
id: "3E65DF4D7FA6404F"
item: "ars_elemental:lesser_earth_focus"
type: "item"
}]
x: 7.0d
y: 1.5d
}
{
dependencies: ["4AA3E9811317F051"]
id: "4C9475E4E38E1926"
tasks: [{
id: "1CAA8FF9A3AE7DC2"
item: "ars_elemental:lesser_water_focus"
type: "item"
}]
x: 5.0d
y: 0.5d
}
{
dependencies: [
"23E50D3BC6041186"
"07BF8A8180C163FA"
"0C9CCF161AE3DEFC"
"7912F664E198653F"
]
id: "5B407BC47F97CAD2"
tasks: [{
id: "7961B90A44FCDD01"
item: "kubejs:intelligent_focus"
type: "item"
}]
x: 5.0d
y: 1.5d
}
{
dependencies: ["466CB1DC25ADFAF1"]
id: "07BF8A8180C163FA"
shape: "diamond"
size: 2.0d
tasks: [{
id: "51D2D9F85B58144D"
item: "summoningrituals:altar"
type: "item"
}]
x: 2.528571428571418d
y: 3.2071428571428555d
}
{
dependencies: ["7B9B13C5F72EB91C"]
id: "0C9CCF161AE3DEFC"
tasks: [{
id: "25B2BF61A7B72B50"
item: "ars_nouveau:arcane_core"
type: "item"
}]
x: 1.0d
y: 1.5d
}
{
dependencies: ["466CB1DC25ADFAF1"]
id: "23E50D3BC6041186"
tasks: [{
id: "38B8F2599F0B3A0F"
item: "kubejs:imbued_source_gem"
type: "item"
}]
x: 4.0d
y: 5.5d
}
{
dependencies: ["7B9B13C5F72EB91C"]
id: "466CB1DC25ADFAF1"
tasks: [{
id: "5B68EA035016E025"
item: "kubejs:intelligent_catalyst"
type: "item"
}]
x: 1.5d
y: 5.5d
}
{
dependencies: ["3BD2CA7C4DAE16C4"]
id: "7B9B13C5F72EB91C"
size: 1.5d
tasks: [{
id: "36305F079471CC98"
item: "ars_nouveau:source_gem"
type: "item"
}]
x: -0.5d
y: 3.0d
}
{
dependencies: [
"1EA0716F4A911DC2"
"425D7E1F7944C15A"
"3A6A331B189B5738"
]
id: "3BD2CA7C4DAE16C4"
shape: "diamond"
size: 2.0d
tasks: [{
id: "39646895B0922536"
item: "ars_nouveau:imbuement_chamber"
type: "item"
}]
x: -3.0d
y: 1.0d
}
{
dependencies: ["4AA3E9811317F051"]
id: "1EA0716F4A911DC2"
tasks: [{
id: "7C1BC59A2239BEB2"
item: "ars_nouveau:archwood_planks"
type: "item"
}]
x: -0.5d
y: 1.0d
}
{
dependencies: ["246EB7C3FA5E9091"]
id: "7912F664E198653F"
tasks: [{
id: "3A569DB8FC921DC0"
item: "experienceobelisk:cognitive_alloy_block"
type: "item"
}]
x: 1.0d
y: 0.0d
}
{
dependencies: ["104B831DAF1209A5"]
id: "246EB7C3FA5E9091"
tasks: [{
id: "1E5CBF2F90B6C03E"
item: "experienceobelisk:cognitive_alloy"
type: "item"
}]
x: 1.0d
y: -2.0d
}
{
dependencies: ["2D8531C39985A6A4"]
id: "104B831DAF1209A5"
tasks: [{
id: "10FC44076BEDC66D"
item: "experienceobelisk:cognitive_amalgam"
type: "item"
}]
x: -1.0d
y: -2.0d
}
{
dependencies: ["104B831DAF1209A5"]
id: "75C55A2AB07F9BD9"
tasks: [{
id: "3A9192582E765615"
item: "experienceobelisk:cognitive_crystal"
type: "item"
}]
x: 0.5d
y: -3.5d
}
{
dependencies: ["75C55A2AB07F9BD9"]
id: "6688C18109920F09"
tasks: [{
id: "5E5CDF5645460B93"
item: "experienceobelisk:attunement_staff"
type: "item"
}]
x: 1.5d
y: -3.5d
}
{
dependencies: ["6688C18109920F09"]
id: "0A5750D6075B0171"
tasks: [{
id: "329AA3633A87A5EA"
item: "experienceobelisk:experience_fountain"
type: "item"
}]
x: 1.5d
y: -4.5d
}
{
dependencies: [
"3B0EF8DCFE832119"
"75C55A2AB07F9BD9"
]
id: "59AFC1A47A0EE2B8"
shape: "diamond"
size: 2.0d
tasks: [{
id: "0F60612AA7C32E60"
item: {
Count: 1
id: "experienceobelisk:experience_obelisk"
tag: { }
}
type: "item"
}]
x: -1.0d
y: -5.0d
}
{
dependencies: ["104B831DAF1209A5"]
id: "3B0EF8DCFE832119"
tasks: [{
id: "2D6B47855644D81B"
item: "experienceobelisk:astute_assembly"
type: "item"
}]
x: -1.0d
y: -3.0d
}
{
dependencies: ["3B0EF8DCFE832119"]
id: "49589FA9D62EBB15"
tasks: [{
id: "16E4FF2DEB5FF414"
item: "experienceobelisk:precision_dispeller"
type: "item"
}]
x: -2.0d
y: -3.0d
}
{
dependencies: [
"425D7E1F7944C15A"
"3A6A331B189B5738"
]
id: "2D8531C39985A6A4"
tasks: [{
id: "558BFF289474CDA4"
item: "experienceobelisk:cognitive_flux"
type: "item"
}]
x: -3.0d
y: -2.0d
}
{
id: "3A6A331B189B5738"
tasks: [{
id: "0655E0A07C459CA4"
item: "kubejs:grist_intelligent_basic"
type: "item"
}]
x: -5.5d
y: -0.5d
}
{
dependencies: ["7B9B13C5F72EB91C"]
id: "00D030A960FF4D3C"
tasks: [{
id: "12155E5CE9099BDF"
item: {
Count: 1
id: "ars_nouveau:warp_scroll"
tag: { }
}
type: "item"
}]
x: -0.5d
y: 5.5d
}
{
dependencies: ["7B9B13C5F72EB91C"]
id: "3D6E0138CCF4DF42"
shape: "diamond"
size: 2.0d
tasks: [{
id: "0E79165E3902E74D"
title: "Farming Source"
type: "checkmark"
}]
x: -3.5d
y: 5.0d
}
{
dependencies: ["3D6E0138CCF4DF42"]
id: "58107760E67EEC05"
tasks: [{
id: "393EA1C7A271C7EE"
item: "ars_nouveau:vitalic_sourcelink"
type: "item"
}]
x: -5.5d
y: 4.5d
}
{
dependencies: ["3D6E0138CCF4DF42"]
id: "746372DE8D0A9996"
tasks: [{
id: "0C337C2BF924F341"
item: "ars_nouveau:agronomic_sourcelink"
type: "item"
}]
x: -5.0d
y: 3.5d
}
{
dependencies: ["3D6E0138CCF4DF42"]
id: "361EB4E62465A602"
tasks: [{
id: "0F5D2650FD97575C"
item: "ars_nouveau:alchemical_sourcelink"
type: "item"
}]
x: -5.5d
y: 5.5d
}
{
dependencies: ["3D6E0138CCF4DF42"]
id: "0B1C2698BC46455A"
tasks: [{
id: "4B53999D3DD38578"
item: "ars_nouveau:mycelial_sourcelink"
type: "item"
}]
x: -3.0d
y: 7.0d
}
{
dependencies: ["3D6E0138CCF4DF42"]
id: "3086BAAFC2B99DCC"
tasks: [{
id: "7B96BDA95AAEABC1"
item: "ars_nouveau:source_jar"
type: "item"
}]
x: -4.0d
y: 7.0d
}
{
dependencies: ["3D6E0138CCF4DF42"]
id: "175C95CF36ADF477"
tasks: [{
id: "37EE10D83453DF72"
item: "ars_nouveau:volcanic_sourcelink"
type: "item"
}]
x: -5.0d
y: 6.5d
}
{
dependencies: [
"3D6E0138CCF4DF42"
"475C4ADBB4EEE67B"
]
id: "1A5F9880063AC7A4"
tasks: [{
id: "61450E731AAF9DDC"
item: "ars_nouveau:relay"
type: "item"
}]
x: -4.0d
y: 3.0d
}
{
dependencies: ["7B9B13C5F72EB91C"]
id: "475C4ADBB4EEE67B"
tasks: [{
id: "3098E5E0AF56CC0D"
item: {
Count: 1
id: "ars_nouveau:dominion_wand"
tag: { }
}
type: "item"
}]
x: -3.0d
y: 3.0d
}
]
title: "Improved Intelligent Grist"
}

View File

@ -24,43 +24,6 @@
x: -2.0d x: -2.0d
y: -1.5d y: -1.5d
} }
{
dependencies: ["1A05926674B2FB92"]
id: "0AE258D57666445E"
tasks: [{
id: "6896FD1F005FCB05"
item: "immersive_aircraft:biplane"
type: "item"
}]
x: 2.5d
y: -2.0d
}
{
dependencies: [
"1A05926674B2FB92"
"1635F0FF5EE83A1B"
]
id: "7DEE7F34129F6C17"
size: 2.0d
tasks: [{
id: "491935136AA9EECD"
item: "immersive_aircraft:airship"
type: "item"
}]
x: 1.0d
y: -5.0d
}
{
dependencies: ["1A05926674B2FB92"]
id: "2B18387E36EC5E37"
tasks: [{
id: "5142A4F4DA622483"
item: "immersive_aircraft:quadrocopter"
type: "item"
}]
x: 3.0d
y: -5.0d
}
{ {
id: "03713BAAF3CE3B74" id: "03713BAAF3CE3B74"
tasks: [{ tasks: [{
@ -101,8 +64,8 @@
type: "item" type: "item"
}] }]
title: "Warp Plates" title: "Warp Plates"
x: 3.0d x: 4.0d
y: 2.0d y: 4.5d
} }
{ {
dependencies: ["18056D524BC5C149"] dependencies: ["18056D524BC5C149"]
@ -124,8 +87,8 @@
type: "item" type: "item"
}] }]
title: "Warp Stones" title: "Warp Stones"
x: 2.0d x: 3.0d
y: 3.0d y: 5.5d
} }
{ {
description: [ description: [
@ -141,23 +104,8 @@
type: "structure" type: "structure"
}] }]
title: "Village Waystones" title: "Village Waystones"
x: 4.5d x: 5.5d
y: 2.0d y: 4.5d
}
{
dependencies: [
"0AE258D57666445E"
"37443E16BC367061"
"36CEEA7DECFCE5D9"
]
id: "375676395486D2D9"
tasks: [{
id: "4898507ED2186C00"
item: "immersive_aircraft:nether_engine"
type: "item"
}]
x: 4.0d
y: -1.5d
} }
{ {
dependencies: ["594B48E407645A20"] dependencies: ["594B48E407645A20"]
@ -170,55 +118,6 @@
x: -4.5d x: -4.5d
y: 1.5d y: 1.5d
} }
{
dependencies: ["7DEE7F34129F6C17"]
id: "1D79F300B31231FC"
tasks: [{
id: "6B1163D958B1F123"
item: "immersive_aircraft:cargo_airship"
type: "item"
}]
x: 3.0d
y: -7.0d
}
{
dependencies: ["1635F0FF5EE83A1B"]
id: "37443E16BC367061"
tasks: [
{
id: "6F89355E5EC18EDF"
item: "immersive_aircraft:sturdy_pipes"
type: "item"
}
{
id: "71874473865366D1"
item: "immersive_aircraft:industrial_gears"
type: "item"
}
{
id: "5671F48227993963"
item: "immersive_aircraft:enhanced_propeller"
type: "item"
}
]
title: "Airship Upgrades"
x: 2.5d
y: 0.5d
}
{
dependencies: [
"37443E16BC367061"
"0AE258D57666445E"
]
id: "36CEEA7DECFCE5D9"
tasks: [{
id: "4D8A699FA5CC9B96"
item: "immersive_aircraft:steel_boiler"
type: "item"
}]
x: 2.5d
y: -1.0d
}
{ {
dependencies: ["1635F0FF5EE83A1B"] dependencies: ["1635F0FF5EE83A1B"]
id: "32F682AF17F5DB11" id: "32F682AF17F5DB11"
@ -263,17 +162,6 @@
x: -7.0d x: -7.0d
y: 0.5d y: 0.5d
} }
{
dependencies: ["1635F0FF5EE83A1B"]
id: "25D4DF26DE35AA9D"
tasks: [{
id: "679E03D0706984DE"
item: "immersive_aircraft:boiler"
type: "item"
}]
x: 0.0d
y: -1.5d
}
{ {
id: "75CAF141200D511E" id: "75CAF141200D511E"
tasks: [{ tasks: [{
@ -282,8 +170,8 @@
type: "dimension" type: "dimension"
}] }]
title: "Nether Portals" title: "Nether Portals"
x: 4.5d x: 5.5d
y: 3.0d y: 5.5d
} }
{ {
id: "50B6B5544B0B622C" id: "50B6B5544B0B622C"
@ -303,8 +191,8 @@
} }
] ]
title: "Horses" title: "Horses"
x: 1.0d x: 2.0d
y: 4.5d y: 7.0d
} }
{ {
dependencies: ["18056D524BC5C149"] dependencies: ["18056D524BC5C149"]
@ -314,8 +202,8 @@
item: "waystones:sharestone" item: "waystones:sharestone"
type: "item" type: "item"
}] }]
x: 1.0d x: 2.0d
y: 2.0d y: 4.5d
} }
{ {
dependencies: ["2FA465182E731E8F"] dependencies: ["2FA465182E731E8F"]
@ -325,19 +213,8 @@
item: "waystones:portstone" item: "waystones:portstone"
type: "item" type: "item"
}] }]
x: 1.0d x: 2.0d
y: 3.0d y: 5.5d
}
{
dependencies: ["25D4DF26DE35AA9D"]
id: "1A05926674B2FB92"
tasks: [{
id: "0BE4D3DD67B15E7B"
item: "immersive_aircraft:engine"
type: "item"
}]
x: 1.0d
y: -3.0d
} }
{ {
id: "008C20CAC68945A5" id: "008C20CAC68945A5"
@ -350,8 +227,8 @@
} }
type: "item" type: "item"
}] }]
x: 2.5d x: 3.5d
y: 4.5d y: 7.0d
} }
{ {
dependencies: ["008C20CAC68945A5"] dependencies: ["008C20CAC68945A5"]
@ -365,8 +242,8 @@
} }
type: "item" type: "item"
}] }]
x: 4.0d x: 5.0d
y: 4.5d y: 7.0d
} }
{ {
dependencies: ["6CDBB60580844C81"] dependencies: ["6CDBB60580844C81"]
@ -376,8 +253,8 @@
item: "waystones:warp_scroll" item: "waystones:warp_scroll"
type: "item" type: "item"
}] }]
x: 4.5d x: 5.5d
y: 0.5d y: 3.0d
} }
{ {
dependencies: ["6CDBB60580844C81"] dependencies: ["6CDBB60580844C81"]
@ -387,8 +264,8 @@
item: "waystones:bound_scroll" item: "waystones:bound_scroll"
type: "item" type: "item"
}] }]
x: 5.5d x: 6.5d
y: 1.0d y: 3.5d
} }
{ {
dependencies: ["6CDBB60580844C81"] dependencies: ["6CDBB60580844C81"]
@ -398,9 +275,207 @@
item: "waystones:return_scroll" item: "waystones:return_scroll"
type: "item" type: "item"
}] }]
x: 7.0d
y: 4.5d
}
{
dependencies: [
"1635F0FF5EE83A1B"
"50DA15D9CAD36E2A"
]
id: "25D4DF26DE35AA9D"
tasks: [{
id: "679E03D0706984DE"
item: "immersive_aircraft:boiler"
type: "item"
}]
x: 0.5d
y: -1.5d
}
{
dependencies: ["50DA15D9CAD36E2A"]
id: "3A7CF01E49DA9AC2"
tasks: [{
id: "36DD7D3E57308830"
item: "waystones:warp_dust"
type: "item"
}]
x: -1.0d
y: 4.0d
}
{
dependencies: ["50DA15D9CAD36E2A"]
id: "0A410280801DA39D"
tasks: [{
id: "437564233DB0C641"
item: "wormhole_artifact:ender_nacre"
type: "item"
}]
x: -2.0d
y: 4.5d
}
{
dependencies: ["3A7CF01E49DA9AC2"]
id: "14EFA84A8B6CEDFB"
shape: "diamond"
size: 2.0d
tasks: [{
count: 2L
id: "4ABC3923778EE930"
item: "waystones:warp_plate"
type: "item"
}]
x: 0.0d
y: 5.0d
}
{
dependencies: ["0A410280801DA39D"]
id: "6605463B4550A801"
shape: "diamond"
size: 2.0d
tasks: [{
id: "672291AE695D3AE5"
item: {
Count: 1
id: "wormhole_artifact:wormhole_artifact"
tag: {
Damage: 0
}
}
type: "item"
}]
x: -1.0d
y: 6.0d
}
{
dependencies: ["1A05926674B2FB92"]
id: "0AE258D57666445E"
shape: "diamond"
size: 2.0d
tasks: [{
id: "6896FD1F005FCB05"
item: "immersive_aircraft:biplane"
type: "item"
}]
x: 3.0d
y: -0.5d
}
{
dependencies: ["25D4DF26DE35AA9D"]
id: "1A05926674B2FB92"
tasks: [{
id: "0BE4D3DD67B15E7B"
item: "immersive_aircraft:engine"
type: "item"
}]
x: 2.0d
y: -1.5d
}
{
dependencies: [
"1A05926674B2FB92"
"1635F0FF5EE83A1B"
]
id: "7DEE7F34129F6C17"
shape: "diamond"
size: 2.0d
tasks: [{
id: "491935136AA9EECD"
item: "immersive_aircraft:airship"
type: "item"
}]
x: 3.5d
y: -3.5d
}
{
dependencies: ["1A05926674B2FB92"]
id: "2B18387E36EC5E37"
shape: "diamond"
size: 2.0d
tasks: [{
id: "5142A4F4DA622483"
item: "immersive_aircraft:quadrocopter"
type: "item"
}]
x: 4.5d
y: -2.0d
}
{
dependencies: ["7DEE7F34129F6C17"]
id: "1D79F300B31231FC"
shape: "diamond"
size: 2.0d
tasks: [{
id: "6B1163D958B1F123"
item: "immersive_aircraft:cargo_airship"
type: "item"
}]
x: 5.5d
y: -4.5d
}
{
dependencies: [
"0AE258D57666445E"
"37443E16BC367061"
"36CEEA7DECFCE5D9"
]
id: "375676395486D2D9"
tasks: [{
id: "4898507ED2186C00"
item: "immersive_aircraft:nether_engine"
type: "item"
}]
x: 5.5d
y: 0.0d
}
{
dependencies: [
"37443E16BC367061"
"0AE258D57666445E"
]
id: "36CEEA7DECFCE5D9"
tasks: [{
id: "4D8A699FA5CC9B96"
item: "immersive_aircraft:steel_boiler"
type: "item"
}]
x: 4.0d
y: 1.0d
}
{
dependencies: ["1635F0FF5EE83A1B"]
id: "37443E16BC367061"
tasks: [
{
id: "6F89355E5EC18EDF"
item: "immersive_aircraft:sturdy_pipes"
type: "item"
}
{
id: "71874473865366D1"
item: "immersive_aircraft:industrial_gears"
type: "item"
}
{
id: "5671F48227993963"
item: "immersive_aircraft:enhanced_propeller"
type: "item"
}
]
title: "Airship Upgrades"
x: 6.0d x: 6.0d
y: 2.0d y: 2.0d
} }
{
id: "19F4EF07ADBB4F61"
tasks: [{
id: "09095C8A81A85633"
item: "kubejs:grist_intelligent_basic"
type: "item"
}]
x: -2.0d
y: 2.0d
}
] ]
title: "Transportation" title: "Transportation"
} }

View File

@ -0,0 +1,50 @@
#Client Configuration
[client]
[client.options]
# If the hotbar should display item borders.
hotbar = true
# If item borders should show for common items.
show_for_common = false
# If the borders should have square corners.
square_corners = true
# If the borders should fully envelop item slots (otherwise they will only show on the bottom portion of the slot).
full_border = false
# If the borders draw over items instead of under.
over_items = false
# If the borders should have a more prominent glow.
extra_glow = true
# If automatic borders (based on item rarity) should be enabled.
auto_borders = true
# If enabled and Legendary Tooltips is installed, borders will sync with tooltip border colors.
legendary_tooltips_sync = false
# Custom border colors for specific items. Format: { <color> = ["list of selectors"] }.
# Color formats supported:
# Hex color code - A hex color code is preceded by # or 0x and must be quoted. Supports 3, 4, 6, or 8 digit codes in the formats RGB, ARGB, RRGGBB, or AARRGGBB. Examples: "#F4C", "0xFEE0", "#40FF2E", "#CC00E2EE"
# Decimal color code - A decimal color code, which is just a hex color code converted to decimal. May or may not be quoted. Examples: 15614720, "4278251143"
# Minecraft color name - One of the standard 16 Minecraft color names. May or may not be quoted. Examples: "red", "dark_purple", "gold"
# Web color name - One of the standard 140 web/HTML color names or "transparent". May or may not be quoted. Examples: "chartreuse", "darkorange", "deeppink", "deepskyblue"
# Modifiers - Colors specified in any of the above formats can be modified by using modifiers.
# Modifiers are specified after any color in the format "<+, -, or =><h, s, v, r, g, b, or a><amount>".
# The letters represent h - hue, s - saturation, v - value, r - red, g - green, b - blue, a - alpha.
# Valid amounts are 0 to 255 for all types except hue, which accepts 0 to 359.
# Using any modifiers will REQUIRE the key to be quoted.
# Examples: "red+h15", "#saddlebrown-v20+s5", "10_aqua_aqua+v15-h5", "#F4C-r15-v10=a40"
# Animated color - An animated color that fades from one to another in sequence.
# A string in the format "<duration in seconds>_<list of color definitions separated by underscores>". May or may not be quoted. Examples: "10_black_#7FFF00", "5.5_gold_orange_orangered", "20_red_orange_yellow_green_blue_purple"
# Selectors supported:
# Match all - Specifying just an asterisk (*) will match all items. Examples: "*"
# Item ID - Use item ID to match single items. Must include mod name for modded items. Examples: "minecraft:stick", "iron_ore", "spoiledeggs:spoiled_egg"
# Tag - $ followed by tag name to match all items with that tag. Examples: "$forge:stone", "$planks"
# Mod name - @ followed by mod identifier to match all items from that mod. Examples: "@spoiledeggs"
# Rarity - ! followed by item's rarity to match all items with that rarity. This is ONLY vanilla rarities. Examples: "!uncommon", "!rare", "!epic"
# Item name color - # followed by color hex code, to match all items with that exact color item name. Examples: "#23F632"
# Display name - % followed by any text. Will match any item with this text (case-sensitive) in its tooltip display name. Examples: "%Netherite", "%Uncommon"
# Tooltip text - ^ followed by any text. Will match any item with this text (case-sensitive) anywhere in the tooltip text (besides the name). Examples: "^Legendary"
# NBT tag - & followed by tag name and optional comparator (=, >, <, or !=) and value, in the format <tag><comparator><value> or just <tag>. Examples: "&Damage=0", "&Tier>1", "&map!=128", "&Enchantments"
# Negation - ~ followed by any selector above. This selector will be negated, matching every item that does NOT match the selector. Examples: "~minecraft:stick", "~!uncommon", "~@minecraft"
# Combining selectors - Any number of selectors can be combined by separating them with a plus sign. Examples: "minecraft:diamond_sword+&Enchantments", "minecraft:stick+~!common+&Damage=0"
[client.options.manual_borders]
# grist gets RGB, because why not
# "5_#c300ff_#ff0000_#33ff00_#ffd500_#0066ff" = ["$kubejs:grist", "$kubejs:grist_blocks"]

View File

@ -14,7 +14,7 @@ hash = "a60442351eb4a2fb2c74d4a7c62fd25d32faca43c0f192a1c261c13db9a71551"
[[files]] [[files]]
file = "config/almostunified/unify.json" file = "config/almostunified/unify.json"
hash = "69af40d099b24e53d2f6463348a1c012900b87d729af8fd83c312fe576f2fe10" hash = "8c51d8df836f7175aa64f92141df3e3a3113f080511420b4ae34ad0acb8d3c21"
[[files]] [[files]]
file = "config/apotheosis/adventure.cfg" file = "config/apotheosis/adventure.cfg"
@ -54,11 +54,11 @@ hash = "62afc99266eeb4ca3b31af6aea57b5ae877da549e4e327d0090d74db97d67b80"
[[files]] [[files]]
file = "config/ftbquests/quests/chapter_groups.snbt" file = "config/ftbquests/quests/chapter_groups.snbt"
hash = "323c95696ca0eb4887243f6fbeb0de961874ca0d9924daf29546de4f5f5cced3" hash = "24d6564d06f4482c009da3d706036c399d822ab812506360af28e37d59d3c843"
[[files]] [[files]]
file = "config/ftbquests/quests/chapters/automation.snbt" file = "config/ftbquests/quests/chapters/automation.snbt"
hash = "89d5686fa7d33e453996201b5f55ae68a4dd499d1aadc4624d3e562f8df6e67d" hash = "877f9dd3b22b1b45fd29f1de29a1ea7fe172045bfee94c1399f3f595d3a7f389"
[[files]] [[files]]
file = "config/ftbquests/quests/chapters/base_building.snbt" file = "config/ftbquests/quests/chapters/base_building.snbt"
@ -68,6 +68,10 @@ hash = "5db7a5f4cd94fc19a484f714a31573877ff052c1d8489afb02f6a37b2026cd45"
file = "config/ftbquests/quests/chapters/basic_build_grist.snbt" file = "config/ftbquests/quests/chapters/basic_build_grist.snbt"
hash = "6922bb7b61c1f4c6b288e88389093fbb92d510cad83fb943d12625c652f443bd" hash = "6922bb7b61c1f4c6b288e88389093fbb92d510cad83fb943d12625c652f443bd"
[[files]]
file = "config/ftbquests/quests/chapters/basic_intelligent_grist.snbt"
hash = "69c97103d900dcafba55d6378b9f9a108ccdccb4ca3c0773b7aa2b5d2ad343d5"
[[files]] [[files]]
file = "config/ftbquests/quests/chapters/build_grist.snbt" file = "config/ftbquests/quests/chapters/build_grist.snbt"
hash = "926424de7920412d67ec6c0d35cd9bdf0582d8572f8cef03969560db726c0c76" hash = "926424de7920412d67ec6c0d35cd9bdf0582d8572f8cef03969560db726c0c76"
@ -86,7 +90,11 @@ hash = "aa23b81f7dcea4fe0e8c9d289dee295d6f8085e343568b5026736950cec271b0"
[[files]] [[files]]
file = "config/ftbquests/quests/chapters/improved_build_grist.snbt" file = "config/ftbquests/quests/chapters/improved_build_grist.snbt"
hash = "fd8e53fcf735027cf13175cc2d595f3812a3932a1364f4200e3a3873fe3c659c" hash = "3693246c0a1cf1048fd9b3d5a0d037b9c8d539f67ea1d73c9a5e04c267f246a6"
[[files]]
file = "config/ftbquests/quests/chapters/improved_intelligent_grist.snbt"
hash = "e1d0fa5aa6dda4bcfc7038e5118e051f38b79dbda9d199364814d46cb915039f"
[[files]] [[files]]
file = "config/ftbquests/quests/chapters/malloc_s4.snbt" file = "config/ftbquests/quests/chapters/malloc_s4.snbt"
@ -106,7 +114,7 @@ hash = "c981fd882894d5e030f250ffb0d38c2374f663cca74da61ab465092abe57ef3e"
[[files]] [[files]]
file = "config/ftbquests/quests/chapters/transportation.snbt" file = "config/ftbquests/quests/chapters/transportation.snbt"
hash = "f67ee3d8e264125f93d5e39020f2ba856da4583229de242d55f25afb60a1cc60" hash = "6d0deb7e237102e77ebc8ee17b3a6b42be6db8d2f64c8ef03391b85e7e978099"
[[files]] [[files]]
file = "config/ftbquests/quests/data.snbt" file = "config/ftbquests/quests/data.snbt"
@ -140,6 +148,10 @@ hash = "2b957dd01aaf5435d451b7845dddb9c7af7cecf6308d98bf9d9cea4a893eabd4"
file = "config/ftbquests/quests/reward_tables/random_metal_dust.snbt" file = "config/ftbquests/quests/reward_tables/random_metal_dust.snbt"
hash = "749e6bd14eca63555b9193c6fc1f550b953ef742bf912c6eb0d7ef18fc063116" hash = "749e6bd14eca63555b9193c6fc1f550b953ef742bf912c6eb0d7ef18fc063116"
[[files]]
file = "config/itemborders-common.toml"
hash = "501464fecf9667c720c42895f3c87b21bb413ba984a7b772e0c8483b1af17a7e"
[[files]] [[files]]
file = "config/miapi.jsonc" file = "config/miapi.jsonc"
hash = "3e03896b16e429035a401f2d947c01852b39cd7036e8816401f9e6a0700b357a" hash = "3e03896b16e429035a401f2d947c01852b39cd7036e8816401f9e6a0700b357a"
@ -337,6 +349,22 @@ hash = "419fdc2c111b1a2914948df553bb0a4d45e5f8f9e9ea541958e905509717236d"
file = "kubejs/assets/malloc/textures/item/grist_radiant_universal.png" file = "kubejs/assets/malloc/textures/item/grist_radiant_universal.png"
hash = "42a2172a02524079b7cbc1f5d2a20a0836f4a5d4bc9a16c5d46b00944e0231ce" hash = "42a2172a02524079b7cbc1f5d2a20a0836f4a5d4bc9a16c5d46b00944e0231ce"
[[files]]
file = "kubejs/assets/malloc/textures/item/intelligent_catalyst.png"
hash = "f772a30c558f10ae84f94090e79b6aba02c6ec74609848562cad8bf97536f543"
[[files]]
file = "kubejs/assets/malloc/textures/item/intelligent_focus.png"
hash = "e5030cfedcbcfbdf5f3faf85bfea7d5c12c44826c1be43d2377ba35de549044c"
[[files]]
file = "kubejs/assets/malloc/textures/item/sapient_focus.png"
hash = "0da5812f7ea6433b5570cbede69d81057a3e34c855380e78aaa94e3967d6df98"
[[files]]
file = "kubejs/assets/malloc/textures/item/sapient_focus.png.mcmeta"
hash = "113b7219abbc4483b799c934a0ca59a157d70cee97128ead936c5ea337260493"
[[files]] [[files]]
file = "kubejs/client_scripts/jsconfig.json" file = "kubejs/client_scripts/jsconfig.json"
hash = "dee1340c5e7927f5675987957c6b198f9ca2e1e731291d72396278dddc066a04" hash = "dee1340c5e7927f5675987957c6b198f9ca2e1e731291d72396278dddc066a04"
@ -527,31 +555,31 @@ hash = "a5e02c71fd92029ea204f96d071c6b25f59d03b59f65199cb24f96a1858b3ed0"
[[files]] [[files]]
file = "kubejs/server_scripts/grist/agricultural.js" file = "kubejs/server_scripts/grist/agricultural.js"
hash = "a9f21524adfd569716db1d82b65fd784cd9995e02499e890b8538b7c00cfe0ba" hash = "65145ba119d067f34a207496f295c8fd63673723c9504637872f27ff0f78c566"
[[files]] [[files]]
file = "kubejs/server_scripts/grist/build.js" file = "kubejs/server_scripts/grist/build.js"
hash = "5e5aca71adcfd40449cf4470efd6c9bde43ccea542fcf603934b48277966454c" hash = "3d6b9e5d6935c8de378596e052c8a61ea7e827cfbda135e7298863093772151e"
[[files]] [[files]]
file = "kubejs/server_scripts/grist/energetic.js" file = "kubejs/server_scripts/grist/energetic.js"
hash = "b89a43e5216126b188a5771f9dd45bc43d9292c9bdc92cfb6de3108d09559afc" hash = "28fffd03b4985c3f56d18d8449f2e04badb91439f0690484668d222130672ae6"
[[files]] [[files]]
file = "kubejs/server_scripts/grist/intelligent.js" file = "kubejs/server_scripts/grist/intelligent.js"
hash = "6ddf5213bf5e22c3a70deacfc4a063f11d325113da1d7060ef1017a746161067" hash = "11903a439e89b90be32c435f54b49ad915aab9d571434120592b3a4b579f197d"
[[files]] [[files]]
file = "kubejs/server_scripts/grist/primordeal.js" file = "kubejs/server_scripts/grist/primordeal.js"
hash = "32bede2b887371f13128bfde64655310117d9d0e460a84490db6a79ac6884207" hash = "8902157c387eedd43855207c38af0fa990522589fb6a8ae827bb9cfecedf19b6"
[[files]] [[files]]
file = "kubejs/server_scripts/grist/tags.js" file = "kubejs/server_scripts/grist/tags.js"
hash = "f8c23be0553da9ec51e7f58e94d5b547e9ee813cea2a8c97d7cc5def3c680ddd" hash = "0863a1d0a2d67ea44bd174fbe19642e73a3f85aae6bdeb12599e61f174079f2b"
[[files]] [[files]]
file = "kubejs/server_scripts/init.js" file = "kubejs/server_scripts/init.js"
hash = "d103c3bb61fe22aa1f4ab6d866b1b0d24c47c2aa55f74018eaf460702043a66e" hash = "a3be46580f9dbc584536293dc6e9a6b76583bb47069ae00d2af75583766f0438"
[[files]] [[files]]
file = "kubejs/server_scripts/malloc-balance.js" file = "kubejs/server_scripts/malloc-balance.js"
@ -559,7 +587,7 @@ hash = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/ae2.js" file = "kubejs/server_scripts/mods/ae2.js"
hash = "4dacad5d914c02db31c80e40d7edab7fee89a817444e2f75858209278f9be446" hash = "b0fe6b78daf76938f90ba1cb76f79079c26b01e6ed612b151d81a5d839b580e9"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/apotheosis.js" file = "kubejs/server_scripts/mods/apotheosis.js"
@ -571,7 +599,7 @@ hash = "f25c7a0fd694135d3de66db51519c14377f96a836dbd59081a9f22860fb1878d"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/bakery.js" file = "kubejs/server_scripts/mods/bakery.js"
hash = "d3354c17a4803ff38f9f862171a9381fe1617ba1c49f63adbeaba99ab085d159" hash = "d60ef6dbb60815fb8703d5aba99eb147a1129c7eafc17297b708f29366da0266"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/botanypots.js" file = "kubejs/server_scripts/mods/botanypots.js"
@ -581,6 +609,10 @@ hash = "61d6bccd674c300bbccf4375d1b21b25fbdf6211fbcf539d726a0b3be3eb17d0"
file = "kubejs/server_scripts/mods/bountiful.js" file = "kubejs/server_scripts/mods/bountiful.js"
hash = "02114b2d9c50ffc113d85b9861090f9fe6a86d3e7fcc6d6612085c429e28fc8c" hash = "02114b2d9c50ffc113d85b9861090f9fe6a86d3e7fcc6d6612085c429e28fc8c"
[[files]]
file = "kubejs/server_scripts/mods/brewery.js"
hash = "36902591d2ad83cee0e339b1cd7b4f033afeba590b21ab5c36eea20f5c8941aa"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/buildinggadgets2.js" file = "kubejs/server_scripts/mods/buildinggadgets2.js"
hash = "f5fd5c23f0122c0f488485eb87df0e989dad6576fa15df95faba8d872f5593fb" hash = "f5fd5c23f0122c0f488485eb87df0e989dad6576fa15df95faba8d872f5593fb"
@ -595,15 +627,23 @@ hash = "4717847a6d54f56ed6919a1e2c3591fc73780973708e818a563753132bc7c15e"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/create.js" file = "kubejs/server_scripts/mods/create.js"
hash = "2989241678e27da372401bb66e10b412697b563b2fb8185a380dc3f62cefcd82" hash = "449085c47d84c6f0f24cbe7b15b60434f35db12095f5e2172e0c64a23b93a526"
[[files]]
file = "kubejs/server_scripts/mods/create_jetpack.js"
hash = "c01b0faf4eac2658f0f1e5d95fc6e4365888a2a3c8171d448594abf69d34332a"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/create_new_age.js" file = "kubejs/server_scripts/mods/create_new_age.js"
hash = "06b10973ef4e2d9b053643a50d443a9e16134d46ba1dc8ed68b2f7b02b44cc7e" hash = "06b10973ef4e2d9b053643a50d443a9e16134d46ba1dc8ed68b2f7b02b44cc7e"
[[files]]
file = "kubejs/server_scripts/mods/create_power_loader.js"
hash = "99c87081cbcba79e032cf8c33c5bf9ff032e841da349c1fc720048711b064584"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/croptopia.js" file = "kubejs/server_scripts/mods/croptopia.js"
hash = "e26329b4528cfa187e27acf924039157bf7ecc3c31c745a338490bde8d81695d" hash = "7d09c5eec356309a58d915dbe77e901e4c72679eae95657a5c0dd371b9c9e747"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/darkutils.js" file = "kubejs/server_scripts/mods/darkutils.js"
@ -621,13 +661,17 @@ hash = "4ae08d926ae9dfd24d59ae6bea4659c400ca89f011f2acc85b7f839956236f35"
file = "kubejs/server_scripts/mods/elevatorid.js" file = "kubejs/server_scripts/mods/elevatorid.js"
hash = "f9a0d2744bd16db5ba3a099b87ce15c72c9e067ce4d27ba17a82fceee40a9845" hash = "f9a0d2744bd16db5ba3a099b87ce15c72c9e067ce4d27ba17a82fceee40a9845"
[[files]]
file = "kubejs/server_scripts/mods/energymeter.js"
hash = "dc4318bb4290cc1b1a9f7c971fca38f951977d22bdfc824fb4290b78e2f0841a"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/experienceobelisk.js" file = "kubejs/server_scripts/mods/experienceobelisk.js"
hash = "d635d9125b6a04148ddf506e45c45e88b8c255c4fdfa5a3af1d441931a15bcd0" hash = "d635d9125b6a04148ddf506e45c45e88b8c255c4fdfa5a3af1d441931a15bcd0"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/farmersdelight.js" file = "kubejs/server_scripts/mods/farmersdelight.js"
hash = "fd8f6de5bb56d08a181e625e450b91c3ea687b33ebf378daf0381e7873515f85" hash = "dfdc817dfe6078ff22a64ce2db5b0de2c1f16ad5f29af1bd738ddfdd183fc244"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/functionalstorage.js" file = "kubejs/server_scripts/mods/functionalstorage.js"
@ -667,15 +711,15 @@ hash = "2d9109e7f1e0beed5dd325fb7939a15f6afa2f2783e31f3830d1fb6f055f3f07"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/powah.js" file = "kubejs/server_scripts/mods/powah.js"
hash = "93b1aee5ea41c226a2dd5e453824518ab0eeb6d15f649f0a74e5b0e4be9a2e17" hash = "f83c2a9f95e664a55b76eb3f67e0c4e64218fc4cba324da41829a79aea5b9cb1"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/powder_power.js" file = "kubejs/server_scripts/mods/powder_power.js"
hash = "06d82c15a2d41e8408f550c0e24ef41d1bc730b16874e9b3aff5cc5cc143ab00" hash = "029c5a31573f50b8876763efa7a6306867542623e62ab0a0e5b3f377792f8b59"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/prettypipes.js" file = "kubejs/server_scripts/mods/prettypipes.js"
hash = "b8e97ae2d545b542bd983935eb914709315630d63f921a144f9242943ecfe672" hash = "27dec2fed14df3f60856114b01e9d34821ebd37afbc5a5fcd5eb1c093821f05b"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/sophisticated.js" file = "kubejs/server_scripts/mods/sophisticated.js"
@ -691,15 +735,15 @@ hash = "d37bfb9bc41aa46d0aa075dbe19a5eeb947b4ea3d8f13c03ac370cb00763d7a1"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/thermal.js" file = "kubejs/server_scripts/mods/thermal.js"
hash = "b33f603a2121bc90e47b27680ee55655dca46c9d7b07d97d1c06698d0a1c762d" hash = "d8fcfe6c5efe785eb7493deddcc121ace1eff1358669426c6da2e63ae5b2d495"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/torchmaster.js" file = "kubejs/server_scripts/mods/torchmaster.js"
hash = "9eed24eaac1d6016fc1d99bcb7259900e430afd674db47c52df89e5cdb6e1317" hash = "bace606c88cff3079285ad8932eeebccdcea1e73dab04168591a888ee5c5278b"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/vinery.js" file = "kubejs/server_scripts/mods/vinery.js"
hash = "208d9d49c612c84f57ee509ec02d4c44145b673caaa06fe451340dc30b8da5aa" hash = "b24325803c78a586a2516a593456c43156b4e7b5d63a9388a3d7476fe06f5417"
[[files]] [[files]]
file = "kubejs/server_scripts/mods/waystones.js" file = "kubejs/server_scripts/mods/waystones.js"
@ -711,7 +755,7 @@ hash = "4003082f31011049402ff31504a6db0f4fdd6c7076167109c66fa412286be462"
[[files]] [[files]]
file = "kubejs/server_scripts/ore-processing.js" file = "kubejs/server_scripts/ore-processing.js"
hash = "91fa17715970df4915964399d005ecea30247e6f891234e077984b2004a53d21" hash = "4b8bb32cc012765c5c1719b297a396ffef6bd563f4b0a1cee1a5b4b2b98a8af1"
[[files]] [[files]]
file = "kubejs/server_scripts/progression/report.js" file = "kubejs/server_scripts/progression/report.js"
@ -731,19 +775,19 @@ hash = "395c96d3ddd178821db851f387e91560e606ea752177f66d2016f12bd0542b8f"
[[files]] [[files]]
file = "kubejs/startup_scripts/grist.js" file = "kubejs/startup_scripts/grist.js"
hash = "b79ebd1ba18eeb0dc59bb6b7ed375cf348edd90fa648f5759dd45f890db5f3d6" hash = "d851746c6e7ae1c679f576b984662289c10e4195c0f52b459fd1ce3a83666ed4"
[[files]] [[files]]
file = "kubejs/startup_scripts/init.js" file = "kubejs/startup_scripts/init.js"
hash = "86b0c3c97240c008d6de87d66ff77a80e47a07c105e89d743cb74c9fdc1b031e" hash = "80483290133f2ab1a969008335c29758884b20e4611ffbfb4e4253f3207ef74a"
[[files]]
file = "kubejs/startup_scripts/jsconfig.json"
hash = "a9e6912b8515be242dd76c6c9a536a8d7c73f6b8b949787f538436ebeafbb7ee"
[[files]] [[files]]
file = "kubejs/startup_scripts/progression-items.js" file = "kubejs/startup_scripts/progression-items.js"
hash = "a02214d2516833e93c185648258182347dc771a45eb50c6affa06897c966c7cf" hash = "eda5964bf26b3ea17ab806944e79c16007e525da8f3ba4d6222dcbb0437f9f90"
[[files]]
file = "kubejs/startup_scripts/rarities.js"
hash = "c41670ee6003d8151508fe9a35931a42765390a126fc4c9afb285edffa153892"
[[files]] [[files]]
file = "mods/ae2-things-forge.pw.toml" file = "mods/ae2-things-forge.pw.toml"
@ -860,6 +904,11 @@ file = "mods/ato.pw.toml"
hash = "d64d02d240575e58a4b2ee8794a60f67f053d1fd675dfbd280b2bb8c3438fb93" hash = "d64d02d240575e58a4b2ee8794a60f67f053d1fd675dfbd280b2bb8c3438fb93"
metafile = true metafile = true
[[files]]
file = "mods/attract-to-sound.pw.toml"
hash = "8701257b0340cf7ef4f623f3f691e267b959e5ba200e72988ba4dd12658c9fbc"
metafile = true
[[files]] [[files]]
file = "mods/balm.pw.toml" file = "mods/balm.pw.toml"
hash = "e02edad65b21bdaa914dce1237d99e4a4d2d80e497e817e0cd77be87043c80be" hash = "e02edad65b21bdaa914dce1237d99e4a4d2d80e497e817e0cd77be87043c80be"
@ -915,6 +964,11 @@ file = "mods/building-gadgets.pw.toml"
hash = "8461b7344559646b5051a6d812e2cd4d43e62c8c817d17f0b2552f65306f43d4" hash = "8461b7344559646b5051a6d812e2cd4d43e62c8c817d17f0b2552f65306f43d4"
metafile = true metafile = true
[[files]]
file = "mods/butchery.pw.toml"
hash = "67a12440b89d7c88ea7552249dba464314b78dc463774110128f49e82524156d"
metafile = true
[[files]] [[files]]
file = "mods/caelus.pw.toml" file = "mods/caelus.pw.toml"
hash = "5155ae1ca2c606df2001422a48cd167d2449160d5fe12a302753dee69af7fe92" hash = "5155ae1ca2c606df2001422a48cd167d2449160d5fe12a302753dee69af7fe92"
@ -1002,7 +1056,7 @@ metafile = true
[[files]] [[files]]
file = "mods/copycats.pw.toml" file = "mods/copycats.pw.toml"
hash = "35547f679eb0eeac8c5158e49faea3b4ba99263bd6fd1cd27114a48dd6d3db9d" hash = "408ce5619020064fc084d150d331edc654bbf1749bbd289e19f050a0df51f1c8"
metafile = true metafile = true
[[files]] [[files]]
@ -1035,14 +1089,29 @@ file = "mods/create-goggles.pw.toml"
hash = "78f2bef5055785f575721f45fc38619bccf578c6c1499e477f4a8631efd50392" hash = "78f2bef5055785f575721f45fc38619bccf578c6c1499e477f4a8631efd50392"
metafile = true metafile = true
[[files]]
file = "mods/create-jetpack.pw.toml"
hash = "af34be85ba49c0ab5cfa982627c6f196c395926dcadfb495060ac5aa56ed7daf"
metafile = true
[[files]] [[files]]
file = "mods/create-new-age.pw.toml" file = "mods/create-new-age.pw.toml"
hash = "705f2896491dcb762ea9585a9d72f9482dcfd326796c3d9554764a5431aba844" hash = "705f2896491dcb762ea9585a9d72f9482dcfd326796c3d9554764a5431aba844"
metafile = true metafile = true
[[files]]
file = "mods/create-power-loader.pw.toml"
hash = "255864fc7aa8e28619e5ddbf9094623bfcc9d6caa260bc0cd3d32b39d45a532f"
metafile = true
[[files]]
file = "mods/create-railways-navigator.pw.toml"
hash = "00929d51a65b0b8c417691b3312fc858ccff50bce507fc1d1b85dc7a2b2df20b"
metafile = true
[[files]] [[files]]
file = "mods/create.pw.toml" file = "mods/create.pw.toml"
hash = "119d501c87aef8afa8cf89ed6f17499518c21240d7781f4331e3007e57957a79" hash = "97f7c75ac9bf6ee2a4f15c0f1e3e4cd161f3d2e33f32ebf623811ac90b3c2a83"
metafile = true metafile = true
[[files]] [[files]]
@ -1075,6 +1144,11 @@ file = "mods/curios.pw.toml"
hash = "68960354be9294d5761b636b94e4f54715119602e83c4dd107698021dbeca16b" hash = "68960354be9294d5761b636b94e4f54715119602e83c4dd107698021dbeca16b"
metafile = true metafile = true
[[files]]
file = "mods/custom-rarity.pw.toml"
hash = "9c1c5002ed732af9361b06b0f72de65f69d241c8bdec7a88579e66e7fd4f1645"
metafile = true
[[files]] [[files]]
file = "mods/cyclops-core.pw.toml" file = "mods/cyclops-core.pw.toml"
hash = "de937c84384b9e99dc858f1e68f1a34789e357e111dd74cf8d8ff87df2d0dc6f" hash = "de937c84384b9e99dc858f1e68f1a34789e357e111dd74cf8d8ff87df2d0dc6f"
@ -1095,6 +1169,11 @@ file = "mods/delightful.pw.toml"
hash = "7e66dc768ce9a290edf6b25bb0ee760b7aafabb8c161a2181306dfb3b2bfddee" hash = "7e66dc768ce9a290edf6b25bb0ee760b7aafabb8c161a2181306dfb3b2bfddee"
metafile = true metafile = true
[[files]]
file = "mods/dimensional-dungeons.pw.toml"
hash = "5e64f030cc500f12429c9f931a795221aa1f00fedde37a0b63685dcc65e54136"
metafile = true
[[files]] [[files]]
file = "mods/ding.pw.toml" file = "mods/ding.pw.toml"
hash = "abf68c7b90b93d7223c6ed856e7a4ae89ebdccf7780277e4de6aa3d707f7e27f" hash = "abf68c7b90b93d7223c6ed856e7a4ae89ebdccf7780277e4de6aa3d707f7e27f"
@ -1135,16 +1214,6 @@ file = "mods/dynamic-fps.pw.toml"
hash = "62c8188f48d71d21bf114d4dcfbc35d1e3251456e07f2caef1a2457d2e2a2947" hash = "62c8188f48d71d21bf114d4dcfbc35d1e3251456e07f2caef1a2457d2e2a2947"
metafile = true metafile = true
[[files]]
file = "mods/dynamic-lights.pw.toml"
hash = "9e509b2046271caf29aa1f0f91f1db22d981a3e84f0dd4b13047b3010fba078f"
metafile = true
[[files]]
file = "mods/dynamiclights-reforged.pw.toml"
hash = "8f2270a50a633db681826cbfb691e6efdb25e1e0c4702125c13d525b52fe229f"
metafile = true
[[files]] [[files]]
file = "mods/easy-villagers.pw.toml" file = "mods/easy-villagers.pw.toml"
hash = "9f9d2f8a99a2599ab346e2b3d2a6a70ffa5b1a41dd36f59bad5f14ee96f0e6fd" hash = "9f9d2f8a99a2599ab346e2b3d2a6a70ffa5b1a41dd36f59bad5f14ee96f0e6fd"
@ -1190,6 +1259,11 @@ file = "mods/ends-delight.pw.toml"
hash = "63a9fdacf232df08a520fb1f25d2d1e878551fef4d18722c075e04d6291f5ed1" hash = "63a9fdacf232df08a520fb1f25d2d1e878551fef4d18722c075e04d6291f5ed1"
metafile = true metafile = true
[[files]]
file = "mods/energymeter.pw.toml"
hash = "4f815d15a2c3918b1ae49851e4d743b85bbdb5bc5b32cd0c9fde14daed000cda"
metafile = true
[[files]] [[files]]
file = "mods/enlightend.pw.toml" file = "mods/enlightend.pw.toml"
hash = "bd3ba2a82d5b80be3ccc187ad50a1aec11f53956c2a20cd9a0ad70b8cd932c1d" hash = "bd3ba2a82d5b80be3ccc187ad50a1aec11f53956c2a20cd9a0ad70b8cd932c1d"
@ -1317,7 +1391,7 @@ metafile = true
[[files]] [[files]]
file = "mods/geckolib.pw.toml" file = "mods/geckolib.pw.toml"
hash = "598758f152e98916bc6eea2ad73a82b47a6e6934f4b0ba1e1f6593773afd1a50" hash = "5290e7961ab2ca528b8bf3fecfbcb33240029314fd7cb2086c06c3ee13daf1fc"
metafile = true metafile = true
[[files]] [[files]]
@ -1340,6 +1414,11 @@ file = "mods/handcrafted.pw.toml"
hash = "b9a7e71472f5f88229bf2f9e214b223b3900052bdc56075906d7a22acf74568c" hash = "b9a7e71472f5f88229bf2f9e214b223b3900052bdc56075906d7a22acf74568c"
metafile = true metafile = true
[[files]]
file = "mods/hardcore-revival.pw.toml"
hash = "5869060b25fa903f04001584df9cef6e69b33235116eea441c70bdc5a18535c8"
metafile = true
[[files]] [[files]]
file = "mods/heartstone.pw.toml" file = "mods/heartstone.pw.toml"
hash = "a9deb10c5d5431b59c78ab1b04827f761e8fac6cb925800155a560c343180186" hash = "a9deb10c5d5431b59c78ab1b04827f761e8fac6cb925800155a560c343180186"
@ -1350,6 +1429,11 @@ file = "mods/hostile-neural-networks.pw.toml"
hash = "d8f52c6109108160c9ca80ae2d1fd03f3b27f4a3196c62ba805928b66482be5b" hash = "d8f52c6109108160c9ca80ae2d1fd03f3b27f4a3196c62ba805928b66482be5b"
metafile = true metafile = true
[[files]]
file = "mods/iceberg.pw.toml"
hash = "c1d1a0476c58e3c011de6f750f48eb4f48493a1b9cef7bd59c008e87e0c0984c"
metafile = true
[[files]] [[files]]
file = "mods/ichunutil.pw.toml" file = "mods/ichunutil.pw.toml"
hash = "6be04f7e78af2fc1701666edecbc69cc7c401bad38d4b46d36ad68d10e3e643f" hash = "6be04f7e78af2fc1701666edecbc69cc7c401bad38d4b46d36ad68d10e3e643f"
@ -1380,6 +1464,11 @@ file = "mods/insanelib.pw.toml"
hash = "815b4191dd612bc6d1b1b714c507ba4e0884cadff7355b799b5dad39a6e9574a" hash = "815b4191dd612bc6d1b1b714c507ba4e0884cadff7355b799b5dad39a6e9574a"
metafile = true metafile = true
[[files]]
file = "mods/interiors.pw.toml"
hash = "94a549e2ce246807a68cb59773e2ee2ec412039fb2aed4e4d5b35077972c66d4"
metafile = true
[[files]] [[files]]
file = "mods/inventory-essentials.pw.toml" file = "mods/inventory-essentials.pw.toml"
hash = "3e53a00faa4c4b7a182fef776a740bc6df256b81a4ec77b299363e1dda62813a" hash = "3e53a00faa4c4b7a182fef776a740bc6df256b81a4ec77b299363e1dda62813a"
@ -1390,6 +1479,11 @@ file = "mods/iron-furnaces.pw.toml"
hash = "1d461a57d4e64d5cdb416db0ee911c150e0ac08e13335ff525b2b5d0bef5844f" hash = "1d461a57d4e64d5cdb416db0ee911c150e0ac08e13335ff525b2b5d0bef5844f"
metafile = true metafile = true
[[files]]
file = "mods/item-borders.pw.toml"
hash = "5a10f11c440c870239753bae8f488ca6c251bfaf6967b55cf8666c778c333da4"
metafile = true
[[files]] [[files]]
file = "mods/item-filters.pw.toml" file = "mods/item-filters.pw.toml"
hash = "ff92eddb2bf6f1afe9fa7fc73d63ea9419e0cff77fbd4fd2936b51525fe9340c" hash = "ff92eddb2bf6f1afe9fa7fc73d63ea9419e0cff77fbd4fd2936b51525fe9340c"
@ -1447,7 +1541,7 @@ metafile = true
[[files]] [[files]]
file = "mods/kotlin-for-forge.pw.toml" file = "mods/kotlin-for-forge.pw.toml"
hash = "40026875ee9b7d25a4ece48faa2b70a338100e87a689d5a8d4ba1ee608b878f6" hash = "7ea985404ee4cc9082472c6869ec146309f526e395361b39f2f4c1a43506c41d"
metafile = true metafile = true
[[files]] [[files]]
@ -1525,6 +1619,11 @@ file = "mods/lets-do-vinery.pw.toml"
hash = "804cfa5ea0ee40e2cd079f8acc738d83c3bf9afd689deab4a6be9d28e62f6b40" hash = "804cfa5ea0ee40e2cd079f8acc738d83c3bf9afd689deab4a6be9d28e62f6b40"
metafile = true metafile = true
[[files]]
file = "mods/lexiconfig.pw.toml"
hash = "471f6366615d29246e35c3193359ea479925ad98eb2beb1d59f0647f9896df3d"
metafile = true
[[files]] [[files]]
file = "mods/loot-journal.pw.toml" file = "mods/loot-journal.pw.toml"
hash = "69c57c204a597cd8d05b9de65b63516bdae88589cb254d38b0361cc828e5e1a3" hash = "69c57c204a597cd8d05b9de65b63516bdae88589cb254d38b0361cc828e5e1a3"
@ -1540,6 +1639,11 @@ file = "mods/lootr.pw.toml"
hash = "a3fc2800be76f3406961d01ab4ab6805b4ca5e269f53d3cb2d58ea39d6afa9f2" hash = "a3fc2800be76f3406961d01ab4ab6805b4ca5e269f53d3cb2d58ea39d6afa9f2"
metafile = true metafile = true
[[files]]
file = "mods/macaws-furniture.pw.toml"
hash = "454c8dd01b9f5e9b9288f37230dd0e38b7a2bba8d14bf4adce738185626191bd"
metafile = true
[[files]] [[files]]
file = "mods/macaws-lights-and-lamps.pw.toml" file = "mods/macaws-lights-and-lamps.pw.toml"
hash = "a205d0ab764efa4bb2eb93c114bbfde4cd3e117d117be9a941b8b56148945d0a" hash = "a205d0ab764efa4bb2eb93c114bbfde4cd3e117d117be9a941b8b56148945d0a"
@ -1625,6 +1729,11 @@ file = "mods/notrample.pw.toml"
hash = "f08e47a8b608a67794114836dcefe16e07c853ca4271c2fa8def9bd84b58020e" hash = "f08e47a8b608a67794114836dcefe16e07c853ca4271c2fa8def9bd84b58020e"
metafile = true metafile = true
[[files]]
file = "mods/obscure-tooltips.pw.toml"
hash = "fd65b1e838edc65558b89ae72af29051ac92997d1d6ef4260fc889dd350a826e"
metafile = true
[[files]] [[files]]
file = "mods/oceans-delight.pw.toml" file = "mods/oceans-delight.pw.toml"
hash = "57f6793fdca748db18eb33a34344f68804e881af07c5e032073d8b33ee683a54" hash = "57f6793fdca748db18eb33a34344f68804e881af07c5e032073d8b33ee683a54"
@ -1715,6 +1824,11 @@ file = "mods/pretty-pipes.pw.toml"
hash = "0729cfefad5651843eb27cc59464ca1ba9d4221f4f9393291a66645817944122" hash = "0729cfefad5651843eb27cc59464ca1ba9d4221f4f9393291a66645817944122"
metafile = true metafile = true
[[files]]
file = "mods/prism-lib.pw.toml"
hash = "f79cb80b6ea599fe4ca9404465277ff7edf25118976170c28827590febfcee7a"
metafile = true
[[files]] [[files]]
file = "mods/probejs.pw.toml" file = "mods/probejs.pw.toml"
hash = "25f4863fba654a2b603a90f52ce5f0e17871c4249fd5c7bef3d40a6c8d9e36de" hash = "25f4863fba654a2b603a90f52ce5f0e17871c4249fd5c7bef3d40a6c8d9e36de"
@ -1820,6 +1934,16 @@ file = "mods/smooth-chunk-save.pw.toml"
hash = "a061b4f98461fc38b4ff6495b5e3a9b8708e9d87333c2cbb29e6b265053a5abe" hash = "a061b4f98461fc38b4ff6495b5e3a9b8708e9d87333c2cbb29e6b265053a5abe"
metafile = true metafile = true
[[files]]
file = "mods/sodium-dynamic-lights.pw.toml"
hash = "82bb7cd6c8b68bb1831bb7c374bd316b6403cd01195d582f19c31076c908953a"
metafile = true
[[files]]
file = "mods/sodium-options-api.pw.toml"
hash = "75a60e6b443b351b7a4a78ffce7c71e44b3e20ca10c374aea1de516c785d6e2d"
metafile = true
[[files]] [[files]]
file = "mods/sooty-chimneys.pw.toml" file = "mods/sooty-chimneys.pw.toml"
hash = "e8f11d351338010339f2bfe8d3a28e7b56fbb802b29c74f205490e46e2a5ea14" hash = "e8f11d351338010339f2bfe8d3a28e7b56fbb802b29c74f205490e46e2a5ea14"
@ -1990,6 +2114,16 @@ file = "mods/vein-mining.pw.toml"
hash = "0d1a0a24a2d759c48bb1daa4b1bf27df514c91a4ff9a2c87df20ed5ce9ae809a" hash = "0d1a0a24a2d759c48bb1daa4b1bf27df514c91a4ff9a2c87df20ed5ce9ae809a"
metafile = true metafile = true
[[files]]
file = "mods/vibrative-voice.pw.toml"
hash = "5194dedc1d09130cf3635ea8f32e8d95ce0615d08d9c60006ec94e512a01eb46"
metafile = true
[[files]]
file = "mods/voidscape.pw.toml"
hash = "607057a50307a9da24c04f8371158698fa0a2d2770b9062035ed88228dc96224"
metafile = true
[[files]] [[files]]
file = "mods/wares.pw.toml" file = "mods/wares.pw.toml"
hash = "781312254556427d94858b2441e76ccc5bb10225c49ca072d17c2a52de710258" hash = "781312254556427d94858b2441e76ccc5bb10225c49ca072d17c2a52de710258"

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,3 @@
{
"animation": {"interpolate": true,"width": 16,"height": 16,"frametime": 5}
}

View File

@ -1,4 +1,62 @@
ServerEvents.recipes(event => { ServerEvents.recipes(event => {
// Creating dough from flour from plants is a major progression item for Agricultural grist, so we set it all up in here.
// First, we set up the flour processing lines
let flourItem = AlmostUnified.getPreferredItemForTag('forge:flour');
let doughItem = AlmostUnified.getPreferredItemForTag('forge:dough');
event.remove({output: flourItem});
event.remove({output: doughItem});
// Vanilla crafting with a hammer gives 0.5x flour per wheat
event.shapeless(flourItem.withCount(1), ['2x #croptopia:flourable', '#alltheores:ore_hammers']);
// Basic tier of grist gives 2x flour per wheat
event.recipes.create.crushing(flourItem.withCount(2), '#croptopia:flourable');
event.recipes.create.milling(flourItem.withCount(2), '#croptopia:flourable');
// Late basic gives 4x per wheat
event.recipes.thermal.pulverizer('#croptopia:flourable', [flourItem.withCount(4)]);
// Dough production scales through the grist tiers. Yeast can always be used to further scale output
// Vanilla production takes 2x flour to make 1x dough on the crafting table
//event.shapeless('1x create:dough', [flourItem.withCount(2), '#forge:water_bottles']);
//event.shapeless('8x create:dough', ['2x #forge:flour', '#forge:water_bottles', 'bakery:yeast']);
// Cooking pot is 2x efficient
event.custom({
type: 'farmersdelight:cooking',
cookingtime: 15,
experience: 1.0,
ingredients: [
{tag: 'forge:flour'},
{tag: 'forge:water_bottles'},
],
result: doughItem.withCount(2)
}).id('kubejs:farmersdelight_cooking_dough_from_flour_with_yeast_manual_only');
event.custom({
type: 'farmersdelight:cooking',
cookingtime: 20,
experience: 1.0,
ingredients: [
{tag: 'forge:flour'},
{tag: 'forge:water_bottles'},
{item: 'bakery:yeast'},
],
result: doughItem.withCount(8).toJson()
}).id('kubejs:farmersdelight_cooking_dough_from_flour_manual_only');
// A create mixer is 4x efficient
event.custom({
type: 'create:mixing',
ingredients: ['#forge:flour', {fluid: 'minecraft:water', amount: 50}],
results: [doughItem.withCount(4).toJson()]
});
event.custom({
type: 'create:mixing',
ingredients: ['#forge:flour', 'bakery:yeast', {fluid: 'minecraft:water', amount: 50}],
results: [doughItem.withCount(8).toJson()]
});
// The thermal bottler (basic build grist) is 4x efficient
event.recipes.thermal.bottler(doughItem.withCount(8), [Fluid.of("minecraft:water", 50), '#forge:flour']);
/* /*
Agricultural grist Agricultural grist
none -> basic: plant some wheat, make dough, cook with veggies and meat -> unlock early mob farming, botany pots, kitchen parts none -> basic: plant some wheat, make dough, cook with veggies and meat -> unlock early mob farming, botany pots, kitchen parts
@ -62,10 +120,10 @@ ServerEvents.recipes(event => {
ingredients: [ ingredients: [
{item: 'kubejs:grist_primordeal_improved_block'}, {item: 'kubejs:grist_primordeal_improved_block'},
{tag: 'kubejs:grist/agricultural/improved'}, {tag: 'kubejs:grist/agricultural/improved'},
{item: 'kubejs:grist_primordeal_improved_block'}, {tag: 'forge:tomato_sauces'},
{tag: 'kubejs:grist/agricultural/improved'}, {item: 'minecraft:rotten_flesh'},
], ],
result: {item: 'kubejs:grist_agricultural_improved', count: 4} result: {item: 'kubejs:grist_agricultural_improved_block'}
}); });
event.custom({ event.custom({
type: 'farmersdelight:cooking', type: 'farmersdelight:cooking',
@ -79,7 +137,7 @@ ServerEvents.recipes(event => {
{item: 'kubejs:grist_chutney'}, {item: 'kubejs:grist_chutney'},
{item: 'kubejs:grist_chutney'}, {item: 'kubejs:grist_chutney'},
], ],
result: {item: 'kubejs:grist_agricultural_improved'} result: {item: 'kubejs:grist_agricultural_improved_block', count: 3}
}); });
event.shaped('kubejs:grist_treats', [ event.shaped('kubejs:grist_treats', [
'AAA', 'AAA',
@ -118,7 +176,7 @@ ServerEvents.recipes(event => {
{item: 'candlelight:pasta_bolognese'}, {item: 'candlelight:pasta_bolognese'},
{item: 'collectorsreap:prawn_po_boy'}, {item: 'collectorsreap:prawn_po_boy'},
], ],
inputFluid: "{Amount:5000,FluidName:\"kubejs:grist_agricultural_improved_fluid\"}", inputFluid: "{Amount:5000,FluidName:\"kubejs:grist_agricultural_basic_fluid\"}",
output: { output: {
count: 1, count: 1,
item: 'kubejs:grist_morsels' item: 'kubejs:grist_morsels'

View File

@ -22,12 +22,13 @@ ServerEvents.recipes(event => {
*/ */
event.recipes.thermal.smelter( event.recipes.thermal.smelter(
'kubejs:grist_build_basic_block', 'kubejs:grist_build_basic_block',
['#kubejs:grist/build/basic', 'kubejs:grist_primordeal_basic_block'] ['#kubejs:grist/build/basic', 'kubejs:grist_primordeal_basic_block', 'minecrtaft:cobblestone']
); );
event.custom({ event.custom({
type: 'create:mixing', type: 'create:mixing',
ingredients: [ ingredients: [
'#kubejs:grist/build/basic', '#kubejs:grist/build/basic',
'minecraft:cobblestone',
'kubejs:grist_primordeal_basic_block', 'kubejs:grist_primordeal_basic_block',
], ],
heatRequirement: "heated", heatRequirement: "heated",
@ -82,15 +83,32 @@ ServerEvents.recipes(event => {
reinforced grist nuggets come from grist blend in a centrifugal separator reinforced grist nuggets come from grist blend in a centrifugal separator
grist blend comes from basic + improved primordeal block + sulfur in induction smelter grist blend comes from basic + improved primordeal block + sulfur in induction smelter
*/ */
event.recipes.thermal.crystallizer(
'4x kubejs:grist_build_improved', // Improved grist starts by smelting together build grist, primordeal improved grist, and sulfur to create reinforced grist blend
['4x minecraft:clay', '2x #kubejs:grist/build/improved', Fluid.of('kubejs:grist_primordeal_improved_fluid', 4500)] event.recipes.thermal.smelter(
); 'kubejs:reinforced_grist_blend',
event.recipes.thermal.crystallizer( ['32x #kubejs:grist/build/basic', '8x kubejs:grist_primordeal_improved_block', '2x #forge:dusts/sulfur']
'kubejs:grist_build_improved',
['32x kubejs:reinforced_grist_ingot', Fluid.of('kubejs:grist_primordeal_improved_fluid', 4000)]
); );
// The grist blend is then centrifuged to extract nuggets
/*event.recipes.thermal.centrifuge([
'kubejs:reinforced_grist_nugget',
Fluid.of('kubejs:grist_build_basic_fluid', 125)
], 'kubejs:reinforced_grist_blend');*/
event.custom({
type: 'thermal:centrifuge',
ingredients: [
{ item: 'kubejs:reinforced_grist_blend', count: 3 }
],
results: [
{ fluid: 'kubejs:grist_build_basic_fluid', amount: 225 },
{ item: 'kubejs:grist_essence', chance: 0.2 },
{ item: 'kubejs:reinforced_grist_nugget' },
]
});
// 9 nuggets combine only in a press to create a reinforced grist ingot
event.custom({ event.custom({
type: "thermal:press", type: "thermal:press",
ingredients: [ ingredients: [
@ -100,18 +118,25 @@ ServerEvents.recipes(event => {
result: [{item: 'kubejs:reinforced_grist_ingot'}] result: [{item: 'kubejs:reinforced_grist_ingot'}]
}); });
event.custom({ // Finally, you crystallize a pile of ingots with improved primordeal fluid.
event.recipes.thermal.crystallizer(
'2x kubejs:grist_build_improved_block',
['32x kubejs:reinforced_grist_ingot', Fluid.of('kubejs:grist_primordeal_improved_fluid', 8000)]
);
// After that, you simply re-crystalize it along with a little bit of clay
event.recipes.thermal.crystallizer(
'kubejs:grist_build_improved_block',
['4x minecraft:clay', '#kubejs:grist/build/improved', Fluid.of('kubejs:grist_primordeal_improved_fluid', 4500)]
);
/*event.custom({
type: "thermal:centrifuge", type: "thermal:centrifuge",
ingredients: [ ingredients: [
{ item: 'kubejs:reinforced_grist_blend' }, { item: 'kubejs:reinforced_grist_blend' },
], ],
result: [{item: 'kubejs:reinforced_grist_nugget', chance: 0.3}] result: [{item: 'kubejs:build_grist_basic'}, {item: 'kubejs:reinforced_grist_nugget', chance: 0.3}]
}); });*/
event.recipes.thermal.smelter(
'kubejs:reinforced_grist_blend',
['32x #kubejs:grist/build/basic', '3x kubejs:grist_primordeal_improved_block', '2x #forge:dusts/sulfur']
);
/* /*
improved -> radiant: process ores with power generation, new machines, and tool enchants into smelting up grist alloys -> near creative mode world shaping tools, crafting any block improved -> radiant: process ores with power generation, new machines, and tool enchants into smelting up grist alloys -> near creative mode world shaping tools, crafting any block

View File

@ -55,16 +55,14 @@ ServerEvents.recipes(event => {
blazing crystals require blaze powder plus either infused grist capacitors or improved grist blazing crystals require blaze powder plus either infused grist capacitors or improved grist
*/ */
event.recipes.powah.energizing([ event.recipes.powah.energizing([
'kubejs:grist_energetic_improved',
'kubejs:grist_energetic_improved', 'kubejs:grist_energetic_improved',
'kubejs:grist_primordeal_improved_block', 'kubejs:grist_primordeal_improved_block',
'kubejs:grist_primordeal_improved_block', ], 'kubejs:grist_energetic_improved_block',
], '4x kubejs:grist_energetic_improved',
20000 20000
); );
event.recipes.powah.energizing([ event.recipes.powah.energizing([
'#forge:glass', '#forge:glass',
'thermal:phytogrow', 'thermal:phytogro',
'#forge:dusts/redstone', '#forge:dusts/redstone',
'thermal:rf_coil', 'thermal:rf_coil',
global.nuggetItem('steel'), global.nuggetItem('steel'),
@ -84,7 +82,7 @@ ServerEvents.recipes(event => {
'kubejs:activated_grist_capacitor', 'kubejs:activated_grist_capacitor',
'kubejs:infused_grist_capacitor', 'kubejs:infused_grist_capacitor',
3000, 3000,
[] ['kubejs:intelligent_catalyst', 'kubejs:intelligent_catalyst', 'kubejs:intelligent_catalyst']
); );
event.recipes.thermal.bottler( event.recipes.thermal.bottler(
Item.of('kubejs:unstable_grist_capacitor'), Item.of('kubejs:unstable_grist_capacitor'),
@ -97,7 +95,7 @@ ServerEvents.recipes(event => {
'kubejs:unstable_grist_capacitor', 'kubejs:unstable_grist_capacitor',
'kubejs:unstable_grist_capacitor', 'kubejs:unstable_grist_capacitor',
'kubejs:unstable_grist_capacitor', 'kubejs:unstable_grist_capacitor',
], 'kubejs:grist_energetic_improved', ], '3x kubejs:grist_energetic_improved_block',
50000 50000
); );

View File

@ -32,7 +32,7 @@ ServerEvents.recipes(event => {
quanta: 25, quanta: 25,
arcana: -1 arcana: -1
}, },
result: Item.of('kubejs:grist_intelligent_basic_block', 2).toJson() result: Item.of('kubejs:grist_intelligent_basic_block', 3).toJson()
}); });
event.shaped('kubejs:sacred_flesh', [ event.shaped('kubejs:sacred_flesh', [
@ -69,6 +69,7 @@ ServerEvents.recipes(event => {
'#alltheores:ore_hammers' '#alltheores:ore_hammers'
]); ]);
// After you have finished your first grist, you simply duplicate it with a bunch of Source
event.recipes.ars_nouveau.imbuement( event.recipes.ars_nouveau.imbuement(
'kubejs:grist_primordeal_basic_block', 'kubejs:grist_primordeal_basic_block',
'kubejs:grist_intelligent_basic_block', 'kubejs:grist_intelligent_basic_block',
@ -76,6 +77,14 @@ ServerEvents.recipes(event => {
['kubejs:grist_intelligent_basic'] ['kubejs:grist_intelligent_basic']
); );
// Adding a catalyst makes it run more efficiently
event.recipes.ars_nouveau.imbuement(
'kubejs:grist_primordeal_basic_block',
'2x kubejs:grist_intelligent_basic_block',
700,
['kubejs:grist_intelligent_basic', 'kubejs:intelligent_catalyst']
);
/*event.custom({ /*event.custom({
type: "thermal:press", type: "thermal:press",
ingredients: [ ingredients: [
@ -102,13 +111,13 @@ ServerEvents.recipes(event => {
catalysts come from source gems crystalized with basic intelligent fluid and sacred flesh catalysts come from source gems crystalized with basic intelligent fluid and sacred flesh
*/ */
event.recipes.summoningrituals.altar("kubejs:grist_primordeal_improved") event.recipes.summoningrituals.altar("kubejs:grist_primordeal_improved")
.itemOutput(Item.of('kubejs:grist_intelligent_improved', 4)) .itemOutput(Item.of('kubejs:grist_intelligent_improved_block', 3))
.input(Item.of('kubejs:grist_primordeal_improved_block', 2)) .input(Item.of('kubejs:grist_primordeal_improved_block', 1))
.input(Item.of('kubejs:grist_intelligent_improved', 2)) .input(Item.of('kubejs:grist_intelligent_improved', 1))
.blockBelow('ars_nouveau:arcane_core'); .blockBelow('ars_nouveau:arcane_core');
event.recipes.summoningrituals.altar("kubejs:sapient_focus") event.recipes.summoningrituals.altar("kubejs:sapient_focus")
.itemOutput('kubejs:grist_intelligent_improved') .itemOutput(Item.of('kubejs:grist_intelligent_improved_block'))
.input('ars_elemental:lesser_fire_focus') .input('ars_elemental:lesser_fire_focus')
.input('ars_elemental:lesser_water_focus') .input('ars_elemental:lesser_water_focus')
.input('ars_elemental:lesser_air_focus') .input('ars_elemental:lesser_air_focus')

View File

@ -43,15 +43,18 @@ ServerEvents.recipes(event => {
let id = grist.id(); let id = grist.id();
let fluidID = grist.fluid().id(); let fluidID = grist.fluid().id();
let blockID = grist.block().id(); let blockID = grist.block().id();
event.recipes.thermal.crucible(Fluid.of(fluidID, 1000), blockID);
event.recipes.thermal.crucible(Fluid.of(fluidID, 250), id); event.recipes.thermal.crucible(Fluid.of(fluidID, 250), id);
event.recipes.thermal.chiller(id, Fluid.of(fluidID, 250)); event.recipes.thermal.chiller(id, Fluid.of(fluidID, 250));
event.recipes.thermal.chiller(blockID, Fluid.of(fluidID, 1000));
event.recipes.createMixing(Fluid.of(fluidID, 250), id).heated(); event.recipes.createMixing(Fluid.of(fluidID, 250), id).heated();
event.recipes.createMixing(Fluid.of(fluidID, 1000), blockID).heated();
// convert between block and normal item // convert between block and normal item
event.shapeless(blockID, [`9x ${id}`]); event.shapeless(blockID, [`9x ${id}`]);
event.shapeless(`9x ${id}`, [blockID]); event.shapeless(`9x ${id}`, [blockID]);
event.custom({ /*event.custom({
type: "industrialforegoing:dissolution_chamber", type: "industrialforegoing:dissolution_chamber",
input: [], input: [],
inputFluid: `{Amount:250,FluidName:\"${fluidID}\"}`, inputFluid: `{Amount:250,FluidName:\"${fluidID}\"}`,
@ -73,11 +76,12 @@ ServerEvents.recipes(event => {
}, },
outputFluid: `{Amount:250,FluidName:\"${fluidID}\"}`, outputFluid: `{Amount:250,FluidName:\"${fluidID}\"}`,
processingTime: 50 processingTime: 50
}); });*/
}); });
// Progression along primordeals and universals // Progression along primordeals and universals
let _ = [{from: 'basic', to: 'improved'}, {from: 'improved', to: 'radiant'}].forEach(upgrade => { let _ = [{from: 'basic', to: 'improved'}, {from: 'improved', to: 'radiant'}].forEach(upgrade => {
// TODO: Implement sideways conversion from universal grist to each of the elementals
// Primordeal progression requires one from each element of the lower tier // Primordeal progression requires one from each element of the lower tier
event.shaped(`kubejs:grist_primordeal_${upgrade.to}`, [ event.shaped(`kubejs:grist_primordeal_${upgrade.to}`, [
'A B', 'A B',

View File

@ -5,6 +5,12 @@ ServerEvents.tags('item', event => {
event.add(tagName, grist.id()); event.add(tagName, grist.id());
}); });
}); });
global.Grist.forEachBlock(grist => {
grist.tags().forEach(tagName => {
event.add(tagName, grist.id());
});
});
/*global.GRIST_ELEMENTS.forEach(element => { /*global.GRIST_ELEMENTS.forEach(element => {
global.GRIST_TIERS.forEach(tier => { global.GRIST_TIERS.forEach(tier => {
event.add(`kubejs:grist/${element}/${tier}`, `kubejs:grist_${element}_${tier}`) event.add(`kubejs:grist/${element}/${tier}`, `kubejs:grist_${element}_${tier}`)

View File

@ -1,40 +1,64 @@
// priority: 0 // priority: 0
function Metal(name) {
this.name = name;
}
global.metalForm = (metal, tag, form, qty) => { Metal.of = function(name) {
if (qty == undefined) { return new Metal(name);
qty = 1;
} }
let itemType = AlmostUnified.getPreferredItemForTag(`forge:${tag}/${metal}`);
Metal.prototype.formOf = function(form) {
let itemType = AlmostUnified.getPreferredItemForTag(`forge:${form}/${this.name}`);
if (itemType.id == 'minecraft:air') { if (itemType.id == 'minecraft:air') {
console.log(`metals: ${metal} ${form} has unknown tag forge:${tag}/${metal}?`) console.warn(`metals: #forge:${form}/${this.name} is not supported by AlmostUnified! Trying a vanilla hack...`);
let ret = Item.of(`alltheores:${metal}_${form}`); itemType = Ingredient.of(`#forge:${form}/${this.name}`).getFirst();
if (ret.id == "minecraft:air") {
return Item.of(`thermal:${metal}_${form}`);
} }
return ret; if (itemType.id == 'minecraft:air') {
console.warn(`metals: No metal items found in #forge:${form}/${this.name}`)
} else {
console.log(`metals: Found ${itemType.id} for #forge:${form}/${this.name}`);
} }
console.log(`metals: forge:${tag}/${metal} found`);
return itemType; return itemType;
} }
global.dustItem = (material, qty) => { // Format is [property name, tag name]
return global.metalForm(material, 'dusts', 'dust', qty); const forms = [
['ingot', 'ingots'],
['gear', 'gears'],
['rod', 'rods'],
['nugget', 'nuggets'],
['plate', 'plates'],
['dust', 'dusts']
];
for (const [prop_name, form_tag] of forms) {
Metal.prototype[prop_name] = function() {
return this.formOf(form_tag);
}
} }
global.ingotItem = (material, qty) => { global.metalForm = (metal, tag) => {
return global.metalForm(material, 'ingots', 'ingot', qty); return (new Metal(metal)).formOf(tag);
} }
global.plateItem = (material, qty) => { global.dustItem = (material) => {
return global.metalForm(material, 'plates', 'plate', qty); return global.metalForm(material, 'dusts');
} }
global.gearItem = (material, qty) => { global.ingotItem = (material) => {
return global.metalForm(material, 'gears', 'gear', qty); return global.metalForm(material, 'ingots');
} }
global.nuggetItem = (material, qty) => { global.plateItem = (material) => {
return global.metalForm(material, 'nuggets', 'nugget', qty); return global.metalForm(material, 'plates');
}
global.gearItem = (material) => {
return global.metalForm(material, 'gears');
}
global.nuggetItem = (material) => {
return global.metalForm(material, 'nuggets');
} }
global.replaceInputs = (evt, filter, replaceMap) => { global.replaceInputs = (evt, filter, replaceMap) => {

View File

@ -137,4 +137,95 @@ ServerEvents.recipes(event => {
'minecraft:netherite_ingot', 'minecraft:netherite_ingot',
'#kubejs:grist/intelligent/radiant' '#kubejs:grist/intelligent/radiant'
); );
// Nerf the storage components a little bit
event.replaceInput(
{output: 'ae2:cell_component_1k'},
'minecraft:redstone',
'#kubejs:grist/intelligent/basic'
);
event.replaceInput(
{output: 'ae2:cell_component_4k'},
'minecraft:redstone',
'#kubejs:grist/intelligent/basic'
);
event.replaceInput(
{output: 'ae2:cell_component_16k'},
'minecraft:glowstone',
'#kubejs:grist/intelligent/basic/block'
);
event.replaceInput(
{output: 'ae2:cell_component_64k'},
'minecraft:glowstone',
'#kubejs:grist/intelligent/improved'
);
event.replaceInput(
{output: 'ae2:cell_component_256k'},
'ae2:quartz_glass',
'#kubejs:grist/intelligent/improved/block'
);
// Spatial IO is gated behind radiant build grist
event.replaceInput(
{output: 'ae2:spatial_cell_component_2'},
'minecraft:glowstone_dust',
'#kubejs:grist/build/radiant'
);
event.replaceInput(
{output: 'ae2:spatial_cell_component_16'},
'minecraft:glowstone_dust',
'#kubejs:grist/build/radiant'
);
event.replaceInput(
{output: 'ae2:spatial_cell_component_128'},
'minecraft:glowstone_dust',
'#kubejs:grist/build/radiant'
);
// Item cells should require build grist
event.replaceInput(
{output: 'ae2:item_cell_housing'},
'minecraft:redstone',
'#kubejs:grist/build/basic'
);
event.replaceInput(
{output: 'ae2:item_cell_housing'},
'minecraft:iron_ingot',
'#forge:plates/invar'
);
event.replaceInput(
{output: 'ae2:basic_card'},
'minecraft:iron_ingot',
'#forge:plates/silver'
);
event.replaceInput(
{output: 'ae2:basic_card'},
'minecraft:gold_ingot',
'#forge:plates/gold'
);
event.replaceInput(
{output: 'ae2:basic_card'},
'minecraft:redstone',
'#kubejs:grist/intelligent/basic'
);
// Advanced card is an upgrade from the basic card
event.replaceInput(
{output: 'ae2:advanced_card'},
'minecraft:redstone',
'ae2:basic_card'
);
event.replaceInput(
{output: 'ae2:advanced_card'},
'minecraft:iron_ingot',
'#forge:plates/invar'
);
event.replaceInput(
{output: 'ae2:advanced_card'},
'minecraft:diamond',
'#kubejs:grist/intelligent/basic/block'
);
}); });

View File

@ -2,4 +2,8 @@ ServerEvents.recipes(event => {
event.replaceInput({output: 'bakery:yeast'}, 'minecraft:water_bucket', '#forge:water_bottles'); event.replaceInput({output: 'bakery:yeast'}, 'minecraft:water_bucket', '#forge:water_bottles');
event.replaceInput({output: 'bakery:yeast'}, 'minecraft:brown_mushroom', '#forge:mushrooms'); event.replaceInput({output: 'bakery:yeast'}, 'minecraft:brown_mushroom', '#forge:mushrooms');
event.replaceInput({output: 'bakery:yeast'}, 'minecraft:sugar', '#caupona:sugar'); event.replaceInput({output: 'bakery:yeast'}, 'minecraft:sugar', '#caupona:sugar');
event.replaceInput({output: 'bakery:cake_dough'}, '#c:wheat', '#forge:dough');
event.replaceInput({output: 'bakery:sweet_dough'}, '#c:wheat', '#forge:dough');
event.replaceInput({output: 'bakery:chocolate_truffle'}, 'minecraft:wheat', '#forge:dough');
}); });

View File

@ -0,0 +1,3 @@
ServerEvents.recipes(event => {
event.replaceInput({output: 'brewery:pretzel'}, '#c:wheat', '#forge:dough');
});

View File

@ -77,6 +77,8 @@ ServerEvents.recipes(event => {
// 1 nugget == 60mb cognitium // 1 nugget == 60mb cognitium
event.recipes.createMixing(Fluid.of('experienceobelisk:cognitium', 60), 'create:experience_nugget').heated(); event.recipes.createMixing(Fluid.of('experienceobelisk:cognitium', 60), 'create:experience_nugget').heated();
event.recipes.createMixing(Fluid.of('experienceobelisk:cognitium', 60 * 9), 'create:experience_block').heated(); event.recipes.createMixing(Fluid.of('experienceobelisk:cognitium', 60 * 9), 'create:experience_block').heated();
event.recipes.thermal.centrifuge([Fluid.of('experienceobelisk:cognitum', 60)], 'create:experience_nugget');
event.recipes.thermal.centrifuge([Fluid.of('experienceobelisk:cognitum', 60 * 9)], 'create:experience_block');
// Precision mechanisms should require intelligent grist // Precision mechanisms should require intelligent grist
event.recipes.createSequencedAssembly([ event.recipes.createSequencedAssembly([
@ -103,4 +105,21 @@ ServerEvents.recipes(event => {
'B': 'create:item_vault', 'B': 'create:item_vault',
'C': '#kubejs:grist/intelligent/basic', 'C': '#kubejs:grist/intelligent/basic',
}); });
// Gate the symmetry wand behind build grist
event.replaceInput({output: 'create:wand_of_symmetry'},
'#forge:ender_pearls',
'#kubejs:grist/build/improved'
);
['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'magenta', 'white', 'black', 'light_gray', 'gray', 'brown', 'cyan', 'pink', 'lime'].forEach(color => {
// Create colored blocks from the mixer.
// TODO: This is required due to disabling all automatic crafting recipes, maybe these can just be re-enabled somehow?
event.recipes.create.mixing(`8x minecraft:${color}_concrete_powder`, [`minecraft:${color}_dye`, '4x #forge:sand', '4x minecraft:gravel']);
event.recipes.create.mixing(`8x minecraft:${color}_concrete`, [`minecraft:${color}_dye`, '4x #forge:sand', '4x minecraft:gravel', Fluid.of('minecraft:water', 250 * 8)]);
event.recipes.create.mixing(`8x minecraft:${color}_terracotta`, [`minecraft:${color}_dye`, '8x minecraft:terracotta']);
event.recipes.create.mixing(`minecraft:${color}_concrete`, [`minecraft:${color}_concrete_powder`, Fluid.of('minecraft:water', 250)]);
event.recipes.create.mixing(`minecraft:${color}_wool`, [`minecraft:${color}_dye`, '#minecraft:wool']);
event.recipes.create.mixing(`minecraft:${color}_stained_glass`, [`minecraft:${color}_dye`, '#forge:glass/colorless']).heated();
});
}); });

View File

@ -0,0 +1,33 @@
ServerEvents.recipes(event => {
event.remove({output: 'create_jetpack:jetpack'})
event.recipes.create.mechanical_crafting('create_jetpack:jetpack', [
' ABA ',
'ACDCA',
'AEFEA',
' EGE '
], {
'A': '#forge:plates/constantan',
'B': 'create:shaft',
'C': '#kubejs:grist/intelligent/improved',
'D': 'create:copper_backtank',
'E': 'create:chute',
'F': 'minecraft:elytra',
'G': '#kubejs:grist/build/improved'
});
event.remove({output: 'create_jetpack:netherite_jetpack'})
event.recipes.create.mechanical_crafting('create_jetpack:netherite_jetpack', [
' ABA ',
'ACDCA',
'AEFEA',
' EGE '
], {
'A': '#forge:plates/constantan',
'B': 'create:shaft',
'C': '#kubejs:grist/intelligent/improved',
'D': 'create:netherite_backtank',
'E': 'create:chute',
'F': 'minecraft:elytra',
'G': '#kubejs:grist/build/improved'
});
});

View File

@ -0,0 +1,15 @@
ServerEvents.recipes(event => {
event.replaceInput({output: 'create_power_loader:empty_andesite_chunk_loader'},
'minecraft:respawn_anchor',
'#kubejs:grist/intelligent/improved'
);
event.replaceInput({output: 'create_power_loader:empty_brass_chunk_loader'},
'minecraft:respawn_anchor',
'create_power_loader:empty_andesite_chunk_loader'
);
event.replaceInput({output: 'create_power_loader:empty_brass_chunk_loader'},
'create:precision_mechanism',
'#kubejs:grist/intelligent/improved'
);
});

View File

@ -1,12 +1,4 @@
ServerEvents.recipes(event => { ServerEvents.recipes(event => {
event.recipes.thermal.pulverizer("4x croptopia:flour", ['minecraft:wheat']);
event.custom({
type: 'create:crushing',
ingredients: ['minecraft:wheat'],
results: ['3x croptopia:flour']
});
event.shapeless('2x croptopia:flour', ['minecraft:wheat', '#alltheores:ore_hammers']);
let jamFruits = ['apricot', 'blackberry', 'blueberry', 'cherry', 'elderberry', 'grape', 'peach', 'raspberry', 'straberry']; let jamFruits = ['apricot', 'blackberry', 'blueberry', 'cherry', 'elderberry', 'grape', 'peach', 'raspberry', 'straberry'];
jamFruits.forEach(fruit => { jamFruits.forEach(fruit => {
event.replaceInput({output: `croptopia:${fruit}_jam`}, 'minecraft:glass_bottle', 'thermal:jar'); event.replaceInput({output: `croptopia:${fruit}_jam`}, 'minecraft:glass_bottle', 'thermal:jar');
@ -33,7 +25,6 @@ ServerEvents.recipes(event => {
}); });
event.recipes.thermal.bottler('croptopia:steamed_rice', [Fluid.of("minecraft:water", 50), '#forge:grain/rice']); event.recipes.thermal.bottler('croptopia:steamed_rice', [Fluid.of("minecraft:water", 50), '#forge:grain/rice']);
event.recipes.thermal.bottler('croptopia:dough', [Fluid.of("minecraft:water", 50), '#forge:flour']);
let _ = ['pizza', 'supreme_pizza', 'cheese_pizza', 'pineapple_pepperoni_pizza', 'anchovy_pizza'].forEach(pizza => { let _ = ['pizza', 'supreme_pizza', 'cheese_pizza', 'pineapple_pepperoni_pizza', 'anchovy_pizza'].forEach(pizza => {
event.replaceInput( event.replaceInput(
@ -43,9 +34,21 @@ ServerEvents.recipes(event => {
); );
}); });
event.custom({ // There is a recipe that uses the skillet, but very different ingredients
type: 'create:mixing', event.remove({id: 'croptopia:cheeseburger'});
ingredients: ['#forge:flour', {fluid: 'minecraft:water', amount: 50}],
results: ['4x croptopia:dough'] // Allow the apple pie to be automated in create, and use other eggs
}) event.replaceInput({output: 'croptopia:apple_pie'},
'minecraft:egg',
'#forge:eggs'
);
event.recipes.create.mixing(
'croptopia:apple_pie', [
'minecraft:apple',
'minecraft:sugar',
'#forge:eggs',
'#forge:flour',
'#forge:dough'
]
).heated();
}); });

View File

@ -0,0 +1,15 @@
ServerEvents.recipes(event => {
event.replaceInput({mod: 'energymeter'},
'minecraft:comparator',
'#kubejs:grist/energetic/basic'
);
event.replaceInput({mod: 'energymeter'},
'minecraft:redstone',
'#kubejs:grist/intelligent/basic'
);
event.replaceInput({mod: 'energymeter'},
'minecraft:iron_ingot',
global.ingotItem('copper')
);
});

View File

@ -1,6 +1,7 @@
ServerEvents.recipes(event => { ServerEvents.recipes(event => {
event.shapeless('2x croptopia:dough', ['#forge:flour', '#forge:water_bottles']);
event.remove({id: 'thermal:compat/farmersdelight/insolator_farmersdelight_rice'}); event.remove({id: 'thermal:compat/farmersdelight/insolator_farmersdelight_rice'});
event.remove({id: 'botanypots:farmersdelight/crop/rice'}); event.remove({id: 'botanypots:farmersdelight/crop/rice'});
event.remove({id: 'farmersdelight:cooking/steamed_rice'}); event.remove({id: 'farmersdelight:cooking/steamed_rice'});
event.replaceInput({output: 'farmersdeligh:pie_crust'}, 'minecraft:wheat', '#forge:flour')
}); });

View File

@ -10,7 +10,7 @@ ServerEvents.recipes(event => {
'A': 'powah:dielectric_paste', 'A': 'powah:dielectric_paste',
'B': '#chipped:iron_bars', 'B': '#chipped:iron_bars',
'C': '#kubejs:grist/intelligent/improved' 'C': '#kubejs:grist/intelligent/improved'
}) });
// Dielectric casings are used in nearly every powah recipe, so lets require energetic grist // Dielectric casings are used in nearly every powah recipe, so lets require energetic grist
event.shaped('powah:dielectric_casing', [ event.shaped('powah:dielectric_casing', [
@ -39,8 +39,42 @@ ServerEvents.recipes(event => {
'thermal:rf_coil' 'thermal:rf_coil'
]); ]);
event.recipes.powah.energizing(['minecraft:diamond', '#kubejs:grist/energetic/improved'], 'powah:crystal_niotic', 180000); event.replaceInput({output: 'powah:thermoelectric_plate'},
event.recipes.powah.energizing(['minecraft:emerald', '2x #kubejs:grist/energetic/improved'], 'powah:crystal_spirited', 1000000); 'minecraft:blaze_powder',
'#kubejs:grist/energetic/basic'
);
event.replaceInput({output: 'powah:thermoelectric_plate'},
'minecraft:redstone',
'#kubejs:grist/build/basic'
);
event.replaceInput({mod: 'powah'},
'minecraft:quartz',
Ingredient.of('minecraft:quartz').or('ae2:certus_quartz_crystal')
);
event.replaceInput({mod: 'powah'},
'minecraft:quartz_block',
Ingredient.of('minecraft:quartz_block').or('ae2:quartz_block')
);
// Nitro and spirited require radiant grist
event.remove({output: 'powah:crystal_nitro'});
event.recipes.powah.energizing(['3x #kubejs:grist/energetic/radiant/block'], '2x powah:crystal_nitro', 20000000);
event.remove({output: 'powah:crystal_spirited'});
event.recipes.powah.energizing(['powah:crystal_niotic', '2x #kubejs:grist/energetic/radiant'], '2x powah:crystal_spirited', 1000000);
// Niotic and blazing are at the improved tier
event.remove({output: 'powah:crystal_niotic'});
event.recipes.powah.energizing(['3x #kubejs:grist/energetic/improved/block'], '2x powah:crystal_niotic', 180000);
event.remove({output: 'powah:crystal_blazing'});
event.recipes.powah.energizing(['3x #kubejs:grist/energetic/improved'], '2x powah:crystal_blazing', 90000);
// Energized steel (aka hardened tier) require basic grist
event.remove({output: 'powah:steel_energized'});
event.recipes.powah.energizing(['minecraft:iron_ingot', 'minecraft:gold_ingot', '3x #kubejs:grist/energetic/basic'], '2x powah:steel_energized', 10000);
// Dielectric paste can be crafted with basic grist, and scaled up through machines
event.shapeless('6x powah:dielectric_paste', [ event.shapeless('6x powah:dielectric_paste', [
'kubejs:grist_primordeal_basic', 'kubejs:grist_primordeal_basic',
'kubejs:grist_energetic_basic', 'kubejs:grist_energetic_basic',
@ -48,4 +82,16 @@ ServerEvents.recipes(event => {
'minecraft:clay_ball', 'minecraft:clay_ball',
'#alltheores:ore_hammers' '#alltheores:ore_hammers'
]); ]);
// TODO: Add create mixing and thermal alloy smelting versions for dialectric paste
event.recipes.thermal.smelter('24x powah:dielectric_paste', [
'kubejs:grist_energetic_basic',
'minecraft:clay_ball',
'minecraft:redstone'
]);
event.recipes.create.mixing('12x powah:dielectric_paste', [
'kubejs:grist_energetic_basic',
'minecraft:clay_ball',
'minecraft:redstone'
]).heated();
// TODO: create a crystalizer recipe with destabilized redstone? liquid grist?
}); });

View File

@ -1,12 +1,16 @@
ServerEvents.recipes(event => { ServerEvents.recipes(event => {
// Powders are created by further crushing dusts // Powders are created by further crushing dusts
event.recipes.thermal.pulverizer('powder_power:powder_end_pearl', ['#forge:dusts/ender_pearl']); event.recipes.thermal.pulverizer('powder_power:powder_end_pearl', ['#forge:dusts/ender_pearl']);
event.recipes.createCrushing(`powder_power:powder_end_pearl`, `#forge:dusts/ender_pearl`); event.recipes.create.crushing(`powder_power:powder_end_pearl`, `#forge:dusts/ender_pearl`);
event.recipes.thermal.pulverizer('powder_power:powder_nether_quartz', ['#forge:dusts/quartz']); event.recipes.thermal.pulverizer('powder_power:powder_nether_quartz', ['#forge:dusts/quartz']);
event.recipes.createCrushing(`powder_power:powder_nether_quartz`, `#forge:dusts/quartz`); event.recipes.create.crushing(`powder_power:powder_nether_quartz`, `#forge:dusts/quartz`);
['redstone', 'lapis', 'copper', 'prismarine', 'obsidian', 'ghast_tear'].forEach(element => { ['redstone', 'lapis', 'copper', 'prismarine', 'obsidian', 'ghast_tear'].forEach(element => {
event.recipes.thermal.pulverizer(`powder_power:powder_${element}`, [`#forge:dusts/${element}`]); event.recipes.thermal.pulverizer(`powder_power:powder_${element}`, [`#forge:dusts/${element}`]);
event.recipes.createCrushing(`powder_power:powder_${element}`, `#forge:dusts/${element}`); event.recipes.create.crushing(`powder_power:powder_${element}`, `#forge:dusts/${element}`);
}); });
// The mortar and pestle is completely replaced with create+thermal machines
event.remove({input: 'powder_power:motar_pestle'});
event.remove({output: 'powder_power:motar_pestle'});
}); });

View File

@ -91,4 +91,10 @@ ServerEvents.recipes(event => {
'minecraft:redstone_block', 'minecraft:redstone_block',
'#kubejs:grist/intelligent/improved' '#kubejs:grist/intelligent/improved'
); );
event.replaceInput(
{mod: 'prettypipes'},
'minecraft:sugar',
'#kubejs:grist/energetic/basic'
);
}) })

View File

@ -1,5 +1,9 @@
ServerEvents.recipes(event => { ServerEvents.recipes(event => {
// Completely remove the thermal cheese wheel, it gets confusing
event.remove({output: 'thermal:cheese_wheel'});
event.remove({input: 'thermal:cheese_wheel'});
// Sawdust for energy, of course. // Sawdust for energy, of course.
event.recipes.thermal.stirling_fuel('thermal:sawdust').energy(500) event.recipes.thermal.stirling_fuel('thermal:sawdust').energy(500)
@ -135,6 +139,14 @@ ServerEvents.recipes(event => {
'#kubejs:grist/agricultural/basic' '#kubejs:grist/agricultural/basic'
); );
event.remove({input: 'thermal:earth_charge'});
event.recipes.create.mixing('16x thermal:phytogro', [
'#forge:sand',
'2x thermal:apatite_dust',
'thermal:niter_dust'
]);
// Pulverizer is gated behind brass, which requires create // Pulverizer is gated behind brass, which requires create
/*event.replaceInput( /*event.replaceInput(
{id: 'thermal:machine_pulverizer'}, {id: 'thermal:machine_pulverizer'},

View File

@ -11,6 +11,15 @@ ServerEvents.recipes(event => {
'minecraft:gold_ingot', 'minecraft:gold_ingot',
'#kubejs:grist/build/basic' '#kubejs:grist/build/basic'
); );
event.replaceInput({mod: 'torchmaster'},
'#minecraft:logs',
'#kubejs:grist/agricultural/basic/block'
);
event.replaceInput({mod: 'torchmaster'},
'minecraft:gold_block',
'#kubejs:grist/build/basic/block'
);
event.replaceInput({mod: 'torchmaster'}, event.replaceInput({mod: 'torchmaster'},
'minecraft:glowstone', 'minecraft:glowstone',

View File

@ -13,4 +13,24 @@ ServerEvents.recipes(event => {
let _nv = ['crimson', 'warped'].forEach(variety => { let _nv = ['crimson', 'warped'].forEach(variety => {
makeJuice(`${variety}_grapejuice`, `${variety}_grape`, `${variety}_grape_seeds`); makeJuice(`${variety}_grapejuice`, `${variety}_grape`, `${variety}_grape_seeds`);
}); });
event.replaceInput({output: 'candlelight:tomato_soup'},
'#forge:tomatoes',
'#forge:tomato_sauces'
);
event.recipes.create.mixing('candlelight:tomato_soup', [
'#forge:tomato_sauces',
'minecraft:sugar',
'#candellight:all_effects'
]).heated();
event.recipes.create.mixing('candlelight:tomato_soup', [
Fluid.of('create_central_kitchen:tomato_sauce', 250),
'minecraft:sugar',
'#candlelight:all_effects'
]).heated();
event.recipes.create.mixing('candlelight:bolognese', [
'#candlelight:red_effect',
'#forge:cooked_beef',
'candlelight:tomato_soup'
]).heated();
}); });

View File

@ -1,3 +1,7 @@
//FIXME: broken andesite mixing recipe creates no output
//FIXME: test create shaft and cog recipes again
//FIXME: Figure out what the original create wool and concrete coloring recipes were, add mixer variants
//FIXME: Create a water mixer route to turn concrete powder to concrete
ServerEvents.recipes(event => { ServerEvents.recipes(event => {
// Metal tiers: // Metal tiers:
// Copper, iron, tin, nickel, gold, zinc, brass, invar, bronze - Pre-basic build tier, the only ores that don't require a pulverizer or smelter to process // Copper, iron, tin, nickel, gold, zinc, brass, invar, bronze - Pre-basic build tier, the only ores that don't require a pulverizer or smelter to process
@ -13,19 +17,53 @@ ServerEvents.recipes(event => {
// invar, gold, silver, electrum, signalum, lead, steel - Gated behind gear die // invar, gold, silver, electrum, signalum, lead, steel - Gated behind gear die
// lumium, enderium, other alloys - Gated behind heavy duty gear die // lumium, enderium, other alloys - Gated behind heavy duty gear die
let metalForm = (metal, tag, form) => { let rawForms = (metal) => {
let itemType = AlmostUnified.getPreferredItemForTag(`forge:${tag}/${metal}`); let ret = null;
if (itemType.id == 'minecraft:air') { AlmostUnified.getItemIds(`forge:raw_materials/${metal}`).forEach(id => {
console.log(`metals: ${metal} ${form} has unknown tag forge:${tag}/${metal}?`) if (ret == null) {
let ret = Item.of(`alltheores:${metal}_${form}`); ret = Ingredient.of(id);
if (ret.id == "minecraft:air") { } else {
return Item.of(`thermal:${metal}_${form}`); ret = ret.or(id);
} }
});
return ret; return ret;
} }
console.log(`metals: forge:${tag}/${metal} found`);
return itemType; let metalForm = global.metalForm;
let alloyIngredients = (forms, ingredients) => {
let real_ingredients = [];
for (const ingredient of ingredients.slice(1)) {
let real_item = Item.of(ingredient);
if (real_item.id == 'minecraft:air') {
let real_ingredient = null;
for (const form of forms) {
let parts = ingredient.split(' ');
if (parts.length == 1) {
real_item = metalForm(parts[0], form);
} else {
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]);
} }
if (real_item.id == 'minecraft:air') {
console.error(`Unknown or invalid alloy ${form} ingredient: ${ingredient}`);
} else {
if (real_ingredient == null) {
real_ingredient = Ingredient.of(real_item);
} else {
real_ingredient = real_ingredient.or(real_item);
}
//real_ingredients.push(real_item);
}
}
//console.error(`Ingredients: ${real_ingredients}`);
//real_ingredients.push(Ingredient.apply(null, real_ingredients));
real_ingredients.push(real_ingredient);
} else {
real_ingredients.push(real_item);
}
}
return real_ingredients;
};
// Progression // Progression
// Vanilla age -> Ore hammer for crushing tin to make andesite alloy // Vanilla age -> Ore hammer for crushing tin to make andesite alloy
@ -93,12 +131,10 @@ ServerEvents.recipes(event => {
tin: [], tin: [],
gold: [], gold: [],
zinc: [], zinc: [],
// FIXME: Need to add create:andesite_alloy to #forge:ingots/andesite_alloy
andesite_alloy: [4, '2x minecraft:andesite', 'tin'] andesite_alloy: [4, '2x minecraft:andesite', 'tin']
}, },
// Andesite age: Iron pickaxe to mine, crushing wheels to crush, then the crushed ore is smelted normally. Alloys require the create mixer. Ore washing to double crushed ore is unlocked, but fans require invar instead of iron. Gears can be crafted on a crafting table // Andesite age: Iron pickaxe to mine, crushing wheels to crush, then the crushed ore is smelted normally. Alloys require the create mixer. Ore washing to double crushed ore is unlocked, but fans require invar instead of iron. Gears can be crafted on a crafting table
andesite: { andesite: {
silver: [],
aluminum: [], aluminum: [],
lead: [], lead: [],
rose_gold: [2, 'copper', 'gold'], rose_gold: [2, 'copper', 'gold'],
@ -108,6 +144,7 @@ ServerEvents.recipes(event => {
}, },
// Mechanical/grist age: Ores require diamond pick, crushed in the pulverizer, and crushed ore is smelted normally. Alloys require the induction furnace. 4x ore centrifuge is unlocked after creating a constantan gear on the crafting table. Other gears require the press. // Mechanical/grist age: Ores require diamond pick, crushed in the pulverizer, and crushed ore is smelted normally. Alloys require the induction furnace. 4x ore centrifuge is unlocked after creating a constantan gear on the crafting table. Other gears require the press.
mechanical: { mechanical: {
silver: [],
nickel: [], nickel: [],
invar: [3, '2x iron', 'nickel'], invar: [3, '2x iron', 'nickel'],
electrum: [2, 'gold', 'silver'], electrum: [2, 'gold', 'silver'],
@ -123,14 +160,14 @@ ServerEvents.recipes(event => {
lumium: [4, 'silver', '3x tin', '2x minecraft:glowstone_dust'], lumium: [4, 'silver', '3x tin', '2x minecraft:glowstone_dust'],
redium: [4, '4x powder_power:powder_redstone', '2x #forge:dusts/obsidian', '2x #forge:dusts/iron', 'minecraft:blaze_powder'], redium: [4, '4x powder_power:powder_redstone', '2x #forge:dusts/obsidian', '2x #forge:dusts/iron', 'minecraft:blaze_powder'],
lapium: [4, '4x powder_power:powder_lapis', '2x #forge:dusts/gold', '2x #forge:dusts/obsidian', 'powder_power:powder_nether_quartz'], lapium: [4, '4x powder_power:powder_lapis', '2x #forge:dusts/gold', '2x #forge:dusts/obsidian', 'powder_power:powder_nether_quartz'],
gemium: [4, '4x #forge:dusts/obsidian', '2x #forge:dusts/diamond', '2x #forge:dusts/emerald', 'powder_power:powder_prismarine'], gemium: [4, '4x #forge:dusts/obsidian', '2x #forge:dusts/diamond', '2x #forge:dusts/emerald', 'powder_power:powder_prismarine']
trilium: [4, '2x lapium', '2x gemium', '2x redium', 'powder_power:powder_end_pearl']
}, },
// Modern age: Alloys require improved grist // Modern age: Alloys require improved grist
modern: { modern: {
gobber: [3, 'gobber2:gobber2_glob', 'platinum', 'osmium'], gobber: [3, 'gobber2:gobber2_glob', 'platinum', 'osmium'],
nether_gobber: [3, 'gobber2:gobber2_glob_nether', 'minecraft:netherite_scrap', '2x gobber2:gobber2_ingot'], nether_gobber: [3, 'gobber2:gobber2_glob_nether', 'minecraft:netherite_scrap', '2x gobber2:gobber2_ingot'],
quadrilium: [3, '3x trilium', '4x minecraft:netherite_scrap', 'powder_power:powder_ghast_tear'] quadrilium: [3, '3x trilium', '4x minecraft:netherite_scrap', 'powder_power:powder_ghast_tear'],
trilium: [4, '2x lapium', '2x gemium', '2x redium', 'powder_power:powder_end_pearl']
}, },
// Age of Legends: The end game // Age of Legends: The end game
legends: { legends: {
@ -140,9 +177,12 @@ ServerEvents.recipes(event => {
}; };
// Basic rules for all materials // Basic rules for all materials
for (const [key, metals] of Object.entries(progression)) { for (const [tier, metals] of Object.entries(progression)) {
for (const [metal, ingredients] of Object.entries(metals)) { for (const [metal, ingredients] of Object.entries(metals)) {
console.log(`Running ore processing for ${metal}...`);
let rawType = metalForm(metal, 'raw_materials', 'ore'); let rawType = metalForm(metal, 'raw_materials', 'ore');
let rawIngredients = rawForms(metal);
let crushedType = Item.of(`create:crushed_raw_${metal}`); let crushedType = Item.of(`create:crushed_raw_${metal}`);
let dustType = metalForm(metal, 'dusts', 'dust'); let dustType = metalForm(metal, 'dusts', 'dust');
@ -155,8 +195,6 @@ ServerEvents.recipes(event => {
let gearType = metalForm(metal, 'gears', 'gear'); let gearType = metalForm(metal, 'gears', 'gear');
let rodType = metalForm(metal, 'rods', 'rod'); let rodType = metalForm(metal, 'rods', 'rod');
console.log(`Wiping out stock ore processing for ${metal}...`);
// Wipe out all the stock recipes // Wipe out all the stock recipes
event.remove({output: gearType}); event.remove({output: gearType});
event.remove({output: dustType}); event.remove({output: dustType});
@ -168,74 +206,119 @@ ServerEvents.recipes(event => {
event.remove({output: nuggetType}); event.remove({output: nuggetType});
event.remove({output: crushedType}); event.remove({output: crushedType});
event.remove({input: crushedType}); event.remove({input: crushedType});
console.warn(`Removing ${metal} ingot recipes for ${ingotType.id}`);
// All dusts and crushed ores can be smelted to ingots, and made with ore hammers let ingotSources = [];
// All forms can be crushed back into dust
if (dustType.id != 'minecraft:air') { if (dustType.id != 'minecraft:air') {
event.smelting(ingotType, dustType); let dustSource = null;
event.shapeless(dustType, [ingotType, '#alltheores:ore_hammers']); [gearType, rodType, plateType, ingotType].forEach(form => {
if (form.id != 'minecraft:air') {
if (dustSource == null) {
dustSource = Ingredient.of(form);
} else {
dustSource = dustSource.or(form);
}
}
});
event.shapeless(dustType, [dustSource, '#alltheores:ore_hammers']);
event.recipes.create.crushing(dustType, dustSource);
event.recipes.create.milling(dustType, dustSource);
event.recipes.thermal.pulverizer(dustType, dustSource);
} }
// Plates can always be smelted back into their original ingot // All forms, including crushed ores, can be smelted back into an ingot
if (ingotType.id != 'minecraft:air') {
let ingotSource = null;
[gearType, rodType, plateType, dustType, crushedType].forEach(form => {
if (form.id != 'minecraft:air') {
if (ingotSource == null) {
ingotSource = Ingredient.of(form);
} else {
ingotSource = ingotSource.or(form);
}
}
});
if (ingotSource != null) {
event.smelting(ingotType, ingotSource);
} else {
console.warn(`Unable to generate ${metal} ingot smelting from derivatives`);
}
}
// Gears and ingots can be pressed into a plate
if (plateType.id != 'minecraft:air') { if (plateType.id != 'minecraft:air') {
event.smelting(ingotType, plateType); let plateSource = null;
// 1 plate = 1 ingot in presses [gearType, ingotType].forEach(form => {
event.recipes.thermal.press(plateType, [ingotType]); if (form.id != 'minecraft:air') {
event.recipes.create.pressing([plateType], [ingotType]); if (plateSource == null) {
plateSource = Ingredient.of(form);
} else {
plateSource = plateSource.or(form);
}
}
})
event.recipes.thermal.press(plateType, plateSource);
event.recipes.create.pressing(plateType, plateSource);
} }
// 4 ingots = 1 gear // 4 ingots = 1 gear in the press
if (gearType.id != 'minecraft:air') { if (gearType.id != 'minecraft:air') {
event.recipes.thermal.press(gearType, [ingotType.withCount(4), 'thermal:press_gear_die']); // TODO: would be fun to have a special 'high efficiency' gear press?
event.recipes.thermal.press(gearType.withCount(2), [ingotType.withCount(4), 'thermal:press_gear_die']).id(`kubejs:${metal}_gear_in_thermal_press`);
} }
// 9 Nuggets == 1 ingot, for every material // 9 Nuggets == 1 ingot, for every material
if (nuggetType.id != 'minecraft:air') { if (nuggetType.id != 'minecraft:air') {
event.shapeless(ingotType, [nuggetType.withCount(9)]); event.shapeless(ingotType, [nuggetType.withCount(9)]).id(`kubejs:${metal}_ingot_from_nuggets`);
event.shapeless(nuggetType.withCount(9), [ingotType]); event.shapeless(nuggetType.withCount(9), [ingotType]).id(`kubejs:${metal}_nuggets_from_ingot`);
event.recipes.thermal.press(ingotType, [nuggetType.withCount(9), 'thermal:press_packing_3x3_die']).id(`kubejs:${metal}_ingot_from_nuggets_in_thermal_press`);
event.recipes.thermal.press(nuggetType.withCount(9), [ingotType, 'thermal:press_unpacking_die']).id(`kubejs:${metal}_nuggets_from_ingot_in_thermal_press`);
} }
// 9 ore = 1 ore block // 9 ore = 1 ore block
if (rawType.id != 'minecraft:air') { if (rawIngredients != null) {
event.shapeless(rawBlockType, [rawType.withCount(9)]); event.shapeless(rawBlockType, [rawIngredients.withCount(9)]).id(`kubejs:${metal}_ore_block_from_ore`);
event.shapeless(rawType.withCount(9), [rawBlockType]); event.shapeless(rawType.withCount(9), [rawBlockType]).id(`kubejs:${metal}_ore_from_ore_block`);
event.recipes.thermal.press(rawBlockType, [rawIngredients.withCount(9), 'thermal:press_packing_3x3_die']).id(`kubejs:${metal}_ore_block_from_ore_in_thermal_press`);
event.recipes.thermal.press(rawType.withCount(9), [rawBlockType, 'thermal:press_unpacking_die']).id(`kubejs:${metal}_ore_from_ore_block_in_thermal_press`);
} }
// 9 ingots = 1 block // 9 ingots = 1 block
if (blockType.id != 'minecraft:air') { if (blockType.id != 'minecraft:air') {
event.shapeless(blockType, [ingotType.withCount(9)]); event.shapeless(blockType, [ingotType.withCount(9)]).id(`kubejs:${metal}_block_from_ingots`);
event.shapeless(ingotType.withCount(9), [blockType]); event.shapeless(ingotType.withCount(9), [blockType]).id(`kubejs:${metal}_ingots_from_block`);
event.recipes.thermal.press(blockType, [ingotType.withCount(9), 'thermal:press_packing_3x3_die']).id(`kubejs:${metal}_block_from_ingots_in_thermal_press`);
event.recipes.thermal.press(ingotType.withCount(9), [blockType, 'thermal:press_unpacking_die']).id(`kubejs:${metal}_ingots_from_block_in_thermal_press`);
} }
// All alloys can be created in the smelter, or a superheated mixer if (rodType.id != 'minecraft:air') {
// All metals can waste one ingot to create a rod in the crafting table
event.shapeless(rodType, [ingotType.withCount(2), '#alltheores:ore_hammers']);
// Or create two rods from one ingot in the create cutter
event.recipes.create.cutting(rodType.withCount(2), ingotType);
// Or create four rods from the thermal sawmill
event.recipes.thermal.sawmill(rodType.withCount(4), ingotType);
// TODO: Isn't there also a thermal press we can use?
}
// All alloys can be created in the thermal smelter, or a superheated create mixer
if (ingredients.length > 0) { if (ingredients.length > 0) {
for (const form of ['ingots', 'dusts']) { let real_ingredients = alloyIngredients(['ingots', 'dusts'], ingredients);
let real_ingredients = [];
for (const ingredient of ingredients.slice(1)) { if (real_ingredients.length == 0) {
let real_item = Item.of(ingredient); console.error(`Unable to create ingots from ${form} for ${metal}!`);
if (real_item.id == 'minecraft:air') {
let parts = ingredient.split(' ');
if (parts.length == 1) {
real_item = metalForm(parts[0], form);
} else { } else {
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]); // If we have 3 or fewer ingredients, we can create it in the 3-slot thermal smelter
}
}
if (real_item.id == 'minecraft:air') {
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
}
real_ingredients.push(real_item);
}
if (real_ingredients.length > 0) {
if (real_ingredients.length <= 3) { if (real_ingredients.length <= 3) {
event.recipes.thermal.smelter(ingotType.withCount(ingredients[0]), real_ingredients); event.recipes.thermal.smelter(ingotType.withCount(ingredients[0]), real_ingredients).id(`kubejs:metals/smelting/${metal}`);
} else { } else {
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).superheated(); // Materials with 4 or more require superheating to be made in the mixer
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).superheated().id(`kubejs:metals/superheated_mixing/${metal}`);
} }
} }
} }
} }
// TODO: Create saw, 3x3 packing/unpacking dies, mechanical press
}
} }
// Primitive tier: Ores can be immediately smelted // Primitive tier: Ores can be immediately smelted
@ -261,7 +344,7 @@ ServerEvents.recipes(event => {
// Vanilla tier: Ores need an ore hammer, and alloys can be crafted on the crafting table // Vanilla tier: Ores need an ore hammer, and alloys can be crafted on the crafting table
for (const tier of ['primitive', 'vanilla']) { for (const tier of ['primitive', 'vanilla']) {
for (const [metal, ingredients] of Object.entries(progression[tier])) { for (const [metal, ingredients] of Object.entries(progression[tier])) {
let rawType = metalForm(metal, 'raw_materials', 'ore'); let rawIngredients = rawForms(metal);
let dustType = metalForm(metal, 'dusts', 'dust'); let dustType = metalForm(metal, 'dusts', 'dust');
let ingotType = metalForm(metal, 'ingots', 'ingot'); let ingotType = metalForm(metal, 'ingots', 'ingot');
let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block'); let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
@ -269,49 +352,32 @@ ServerEvents.recipes(event => {
console.log(`Building vanilla processing for ${metal}...`); console.log(`Building vanilla processing for ${metal}...`);
// Crush raw ore into dust with an ore hammer, in crafting table and in the deployer // Crush raw ore into dust with an ore hammer, in crafting table and in the deployer
if (rawType.id != 'minecraft:air') { if (rawIngredients != null) {
event.shapeless(dustType, [rawType, '#alltheores:ore_hammers']); event.shapeless(dustType, [rawIngredients, '#alltheores:ore_hammers']);
event.shapeless(dustType.withCount(9), [rawBlockType, '#alltheores:ore_hammers']); event.shapeless(dustType.withCount(9), [rawBlockType, '#alltheores:ore_hammers']);
event.recipes.create.deploying([dustType], [rawType, '#alltheores:ore_hammers']).keepHeldItem(); event.recipes.create.deploying([dustType], [rawIngredients, '#alltheores:ore_hammers']).keepHeldItem();
event.recipes.create.deploying([dustType.withCount(9)], [rawBlockType, '#alltheores:ore_hammers']).keepHeldItem(); event.recipes.create.deploying([dustType.withCount(9)], [rawBlockType, '#alltheores:ore_hammers']).keepHeldItem();
} else { } else {
console.warn(`No ${metal} ore hammer smashing available!`); console.log(`No ${metal} ore hammer smashing available due to missing raw form!`);
} }
// TODO: alloy ingredients let real_ingredients = alloyIngredients(['ingots', 'dusts'], ingredients);
for (const form of ['ingots', 'dusts']) {
let real_ingredients = [];
for (const ingredient of ingredients.slice(1)) {
let real_item = Item.of(ingredient);
if (real_item.id == 'minecraft:air') {
let parts = ingredient.split(' ');
if (parts.length == 1) {
real_item = metalForm(parts[0], form);
} else {
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]);
}
}
if (real_item.id == 'minecraft:air') {
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
} else {
real_ingredients.push(real_item);
}
}
if (real_ingredients.length > 0 && ingotType.id != 'minecraft:air') { if (real_ingredients.length > 0 && ingotType.id != 'minecraft:air') {
event.shapeless(ingotType.withCount(ingredients[0]), real_ingredients); event.shapeless(ingotType.withCount(ingredients[0]), real_ingredients);
} }
} }
} }
}
// Andesite alloy is the progression item, as it unlocks most of the next tier of create // Andesite alloy is the progression item, as it unlocks most of the next tier of create
event.shapeless('create:andesite_alloy', [global.dustItem('tin'), '2x minecraft:andesite']); //event.shapeless('create:andesite_alloy', [global.dustItem('tin'), '2x minecraft:andesite']);
let xpNugget = Item.of('create:experience_nugget');
// Andesite age: Crushing wheels to crush, then the crushed ore is smelted normally. Alloys require the create mixer. Ore washing to double crushed ore is unlocked, but fans require invar instead of iron. Gears can be crafted on a crafting table // Andesite age: Crushing wheels to crush, then the crushed ore is smelted normally. Alloys require the create mixer. Ore washing to double crushed ore is unlocked, but fans require invar instead of iron. Gears can be crafted on a crafting table
for (const tier of ['primitive', 'vanilla', 'andesite']) { for (const tier of ['primitive', 'vanilla', 'andesite']) {
for (const [metal, ingredients] of Object.entries(progression[tier])) { for (const [metal, ingredients] of Object.entries(progression[tier])) {
let rawType = metalForm(metal, 'raw_materials', 'ore'); let rawIngredients = rawForms(metal);
let crushedType = Item.of(`create:crushed_raw_${metal}`); let crushedType = Item.of(`create:crushed_raw_${metal}`);
let dustType = metalForm(metal, 'dusts', 'dust'); let dustType = metalForm(metal, 'dusts', 'dust');
let ingotType = metalForm(metal, 'ingots', 'ingot'); let ingotType = metalForm(metal, 'ingots', 'ingot');
@ -321,11 +387,11 @@ ServerEvents.recipes(event => {
console.log(`Building andesite processing for ${metal}...`); console.log(`Building andesite processing for ${metal}...`);
if (rawType.id != 'minecraft:air') { if (rawIngredients != null) {
if (crushedType.id != 'minecraft:air') { if (crushedType.id != 'minecraft:air') {
event.recipes.create.crushing([crushedType.withCount(2)], rawType); event.recipes.create.crushing([crushedType.withCount(2), xpNugget.withCount(2).withChance(0.75)], rawIngredients);
event.recipes.create.crushing([crushedType.withCount(18)], rawBlockType); event.recipes.create.crushing([crushedType.withCount(18), xpNugget.withCount(18).withChance(0.75)], rawBlockType);
event.recipes.create.milling([crushedType.withCount(2)], rawType); event.recipes.create.milling([crushedType.withCount(2)], rawIngredients);
event.recipes.create.milling([crushedType.withCount(18)], rawBlockType); event.recipes.create.milling([crushedType.withCount(18)], rawBlockType);
event.smelting(ingotType, crushedType); event.smelting(ingotType, crushedType);
@ -358,29 +424,10 @@ ServerEvents.recipes(event => {
console.warn(`No ${metal} plates available!`); console.warn(`No ${metal} plates available!`);
} }
// TODO: alloy ingredients // These ones can simply have their dusts mixed in a cold mixer to create the "alloy" ingot, which for the andesite tier is only andesite alloy.
for (const form of ['ingots', 'dusts']) { let real_ingredients = alloyIngredients(['dusts'], ingredients);
let real_ingredients = [];
for (const ingredient of ingredients.slice(1)) {
let real_item = Item.of(ingredient);
if (real_item.id == 'minecraft:air') {
let parts = ingredient.split(' ');
if (parts.length == 1) {
real_item = metalForm(parts[0], form);
} else {
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]);
}
}
if (real_item.id == 'minecraft:air') {
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
}
real_ingredients.push(real_item);
}
if (real_ingredients.length > 0) { if (real_ingredients.length > 0) {
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).heated(); event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).id(`kubejs:metals/cold_mixing/${metal}`);
}
} }
} }
} }
@ -394,45 +441,17 @@ ServerEvents.recipes(event => {
// Mechanical/grist age: Ores require diamond pick, crushed in the pulverizer, and crushed ore is smelted normally. Alloys require blending dusts in a heated mixer, then smelting the blend. 4x ore centrifuge is unlocked after creating a constantan gear on the crafting table. Other gears require the press. // Mechanical/grist age: Ores require diamond pick, crushed in the pulverizer, and crushed ore is smelted normally. Alloys require blending dusts in a heated mixer, then smelting the blend. 4x ore centrifuge is unlocked after creating a constantan gear on the crafting table. Other gears require the press.
for (const tier of ['primitive', 'vanilla', 'andesite', 'mechanical']) { for (const tier of ['primitive', 'vanilla', 'andesite', 'mechanical']) {
for (const [metal, ingredients] of Object.entries(progression[tier])) { for (const [metal, ingredients] of Object.entries(progression[tier])) {
let rawType = metalForm(metal, 'raw_materials', 'ore');
let crushedType = Item.of(`create:crushed_raw_${metal}`); let crushedType = Item.of(`create:crushed_raw_${metal}`);
let dustType = metalForm(metal, 'dusts', 'dust');
let ingotType = metalForm(metal, 'ingots', 'ingot'); let ingotType = metalForm(metal, 'ingots', 'ingot');
console.log(`Building mechanical processing for ${metal}...`); console.log(`Building mechanical processing for ${metal}...`);
if (rawType.id != 'minecraft:air') {
if (crushedType.id != 'minecraft:air') { if (crushedType.id != 'minecraft:air') {
// Crushed ores are created in the industrial tier code, but mechanical tier and below are the only ones that don't need a centrifuge first // Crushed ores are created in the industrial tier code, but mechanical tier and below are the only ones that don't need a centrifuge first
// This allows Nickel to be processed into a constantan gear, which unlocks the centrifuge // This allows Nickel to be processed into a constantan gear, which unlocks the centrifuge
event.smelting(ingotType, [crushedType]); event.smelting(ingotType, [crushedType]);
} else { } else {
console.error(`No ${metal} ore pulverizing available! Falling back to dust-based processing line`); console.warn(`No ${metal} ore pulverizing available! Falling back to dust-based processing line`);
}
}
for (const form of ['dusts']) {
let real_ingredients = [];
for (const ingredient of ingredients.slice(1)) {
let real_item = Item.of(ingredient);
if (real_item.id == 'minecraft:air') {
let parts = ingredient.split(' ');
if (parts.length == 1) {
real_item = metalForm(parts[0], form);
} else {
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]);
}
}
if (real_item.id == 'minecraft:air') {
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
}
real_ingredients.push(real_item);
}
if (real_ingredients.length > 0) {
event.recipes.create.mixing(dustType.withCount(ingredients[0]), real_ingredients).heated();
}
} }
} }
} }
@ -441,278 +460,67 @@ ServerEvents.recipes(event => {
// Industrial age: Ores require centrifuging, alloys require basic grists, gears can only be made with a gear die // Industrial age: Ores require centrifuging, alloys require basic grists, gears can only be made with a gear die
for (const tier of ['primitive', 'vanilla', 'andesite', 'mechanical', 'industrial']) { for (const tier of ['primitive', 'vanilla', 'andesite', 'mechanical', 'industrial']) {
for (const [metal, ingredients] of Object.entries(progression[tier])) { for (const [metal, ingredients] of Object.entries(progression[tier])) {
let rawType = metalForm(metal, 'raw_materials', 'ore'); let rawIngredients = rawForms(metal);
let crushedType = Item.of(`create:crushed_raw_${metal}`); let crushedType = Item.of(`create:crushed_raw_${metal}`);
let ingotType = metalForm(metal, 'ingots', 'ingot');
let dustType = metalForm(metal, 'dusts', 'dust'); let dustType = metalForm(metal, 'dusts', 'dust');
let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block'); let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
if (rawType.id != 'minecraft:air') { if (rawIngredients != null) {
if (crushedType.id != 'minecraft:air') { if (crushedType.id != 'minecraft:air') {
event.recipes.thermal.pulverizer([crushedType.withCount(4), crushedType.withChance(0.25)], rawType); event.recipes.thermal.pulverizer([crushedType.withCount(4), crushedType.withChance(0.25), xpNugget.withCount(4).withChance(0.75)], rawIngredients);
event.recipes.thermal.pulverizer([crushedType.withCount(4 * 9), crushedType.withChance(0.25)], rawBlockType); event.recipes.thermal.pulverizer([crushedType.withCount(4 * 9), crushedType.withChance(0.25), xpNugget.withCount(4 * 9).withChance(0.75)], rawBlockType);
event.recipes.thermal.centrifuge([dustType.withCount(4), dustType.withChance(0.25)], crushedType); event.recipes.thermal.centrifuge([dustType.withCount(4), dustType.withChance(0.25)], crushedType);
} else { } else {
console.error(`No ${metal} ore centrifuing available!`); console.error(`No ${metal} ore centrifuing available!`);
} }
} }
// Industrial and below can be mixed up in a regular heated mixer
let real_ingredients = alloyIngredients(['ingots', 'dusts'], ingredients);
if (real_ingredients.length > 0) {
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).heated().id(`kubejs:metals/hot_mixing/${metal}`);
} }
} }
});
function foobar() {
event.shapeless('thermal:quartz_dust', ['8x minecraft:granite', '#alltheores:ore_hammers']).id('kubejs:quartz_dust_from_granit_crushing_manual_only');
event.shapeless('thermal:quartz_dust', ['minecraft:quartz', '#alltheores:ore_hammers']).id('kubejs:quartz_dust_crushing_manual_only');
// All metals can be processed in the pulverizer/crusher, make plates in the press, and make gears with the die
{
let _ = ['copper', 'rose_gold', 'aluminum', 'constantan', 'iron', 'tin', 'nickel', 'gold', 'zinc', 'brass', 'invar', 'bronze', 'silver', 'platinum', 'lead', 'iridium', 'osmium', 'lumium', 'enderium', 'electrum', 'signalum', 'steel', 'uranium'].forEach(metal => {
console.log(`Setting up Tier 3 ${metal} processing...`);
let gearType = metalForm(metal, 'gears', 'gear');
let dustType = metalForm(metal, 'dusts', 'dust');
let plateType = metalForm(metal, 'plates', 'plate');
let ingotType = metalForm(metal, 'ingots', 'ingot');
let rawType = metalForm(metal, 'raw_materials', 'ore');
let blockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
let crushedType = Item.of(`create:crushed_raw_${metal}`);
event.remove({output: gearType});
event.remove({output: plateType});
event.remove({input: `#forge:ores/${metal}`});
event.remove({input: `#forge:raw_materials/${metal}`});
// By default, you can't make any blends in the crafting table.
event.remove({output: dustType, type: 'minecraft:crafting'});
event.remove({output: ingotType, input: 'minecraft:fire_charge'});
// Remove the default conversion of ingot to nuggets from create
event.remove({input: ingotType, type: 'create:crushing'});
// And completely eliminate the default refining line with create crushed ores
if (crushedType.id != 'minecraft:air') {
event.remove({input: crushedType});
event.remove({output: crushedType});
} else {
console.log(`metals: Missing create:crushed_raw_${metal}`);
}
event.remove({id: `alltheores:${metal}_dust_from_alloy_blending`});
console.log(`crushing ${rawType.toJson()} ${dustType.toJson()}`);
if (rawType.id != "minecraft:air") {
event.custom({
type: "thermal:pulverizer",
ingredients: [
{tag: `forge:raw_materials/${metal}`}
],
result: [
{item: dustType.id, chance: 1.05},
{item: dustType.id, chance: 0.25}
],
experience: 0.5
});
if (crushedType.id != 'minecraft:air') {
event.custom({
type: "create:crushing",
ingredients: [
{tag: `forge:raw_materials/${metal}`}
],
results: [
{item: crushedType.id, chance: 1},
{item: crushedType.id, chance: 0.25},
{item: dustType.id, chance: 0.05},
{item: 'create:experience_nugget', count: 2, chance: 0.75}
],
});
}
} }
if (blockType.id != "minecraft:air") { // Generate clay from centrifuing ash or gravel
event.custom({ event.recipes.thermal.centrifuge([
type: "thermal:pulverizer", Item.of('minecraft:clay_ball').withChance(1.05),
ingredients: [ Item.of('minecraft:clay_ball').withChance(0.25)],
{tag: `forge:storage_blocks/raw_${metal}`} 'supplementaries:ash_brick'
], );
result: [ event.recipes.thermal.centrifuge([
{item: dustType.id, count: 9, chance: 1}, Item.of('minecraft:clay_ball').withChance(1.75),
{item: dustType.id, count: 9, chance: 0.25} Item.of('minecraft:clay_ball').withChance(0.85)],
], 'minecraft:gravel'
experience: 0.5 );
}); // Let quartz dust be created in the crafting table with a hammer
event.shapeless('thermal:quartz_dust',
['minecraft:quartz', '#alltheores:ore_hammers']
).id('kubejs:quartz_dust_crushing');
if (crushedType.id != 'minecraft:air') { // Fix up the diamond gear recipe, which somehow has two duplicates
event.custom({ event.remove({output: 'thermal:diamond_gear'});
type: "create:crushing", event.shaped('thermal:diamond_gear', [
ingredients: [
{tag: `forge:storage_blocks/raw_${metal}`}
],
results: [
{item: crushedType.id, count: 9, chance: 1},
{item: crushedType.id, count: 9, chance: 0.25},
{item: dustType.id, count: 9, chance: 0.05},
{item: 'create:experience_nugget', count: 2 * 9, chance: 0.75}
],
});
}
}
// Set up the parallel create-based ore washing line
if (crushedType.id != 'minecraft:air') {
event.custom({
type: "create:splashing",
ingredients: [
{item: crushedType.id }
],
results: [
{item: dustType.id, count: 2, chance: 1},
{item: dustType.id, chance: 0.25},
{item: dustType.id, chance: 0.05},
],
});
event.custom({
type: "thermal:centrifuge",
ingredients: [
{item: crushedType.id }
],
result: [
{item: dustType.id, count: 3, chance: 3.0},
{item: dustType.id, chance: 0.75},
{item: "twigs:pebble", chance: 0.05}
],
});
}
// 1 dust = 1 ingot
event.custom({
type: "thermal:pulverizer",
ingredients: [
ingotType.toJson()
],
result: [
dustType.toJson()
],
});
event.custom({
type: "create:crushing",
ingredients: [
ingotType.toJson()
],
results: [
dustType.toJson()
],
});
// 4 ingots = 1 gear
event.custom({
type: "thermal:press",
ingredients: [
ingotType.withCount(4).toJson(),
{ item: "thermal:press_gear_die" }
],
result: [gearType.toJson()]
});
// 1 ingot = 1 plate
event.custom({
type: "thermal:press",
ingredients: [
ingotType.toJson(),
],
result: [plateType.toJson()]
});
event.custom({
type: "create:pressing",
ingredients: [
ingotType.toJson(),
],
results: [plateType.toJson()]
});
});}
// But only these metals can be processed without a machine
{let _ = ['copper', 'iron', 'tin', 'nickel', 'zinc', 'brass', 'bronze', 'lead', 'aluminum'].forEach(metal => {
console.log(`Setting up ${metal} manual processing...`);
let gearID = metalForm(metal, 'gears', 'gear');
let plateID = metalForm(metal, 'plates', 'plate');
let dustID = metalForm(metal, 'dusts', 'dust');
event.shaped(gearID, [
' A ', ' A ',
'ABA', 'ABA',
' A ' ' A '
], { ], {
'A': global.ingotItem(metal), 'A': 'minecraft:diamond',
'B': '#forge:gems' 'B': '#kubejs:grist/build/basic'
}); });
event.shapeless(plateID, [global.ingotItem(metal, 2), '#alltheores:ore_hammers']).id(`kubejs:plate_crushing_${metal}_manual_only`);
event.shapeless(dustID, [global.ingotItem(metal), '#alltheores:ore_hammers']).id(`kubejs:ore_crushing_${metal}_manual_only`);
});}
// And only these ores can be hammered or crushed //event.recipes.create.crushing(dustType, dustSource);
{let _ = ['copper', 'iron', 'tin', 'nickel', 'zinc', 'lead', 'aluminum', 'gold'].forEach(ore => { event.recipes.create.milling('create:powdered_obsidian', 'minecraft:obsidian');
console.log(`Setting up ${ore} hammering...`); });
let dustType = metalForm(ore, 'dusts', 'dust');
event.shapeless(dustType.withCount(2), [`#forge:raw_materials/${ore}`, '#alltheores:ore_hammers']).id(`kubejs:ore_crushing_2_${ore}_manual_only`); function shpaes() {
event.shapeless(dustType.withCount(2 * 9), [`#forge:storage_blocks/raw_${ore}`, '#alltheores:ore_hammers']).id(`kubejs:ore_block_crushing_${ore}_manual_only`); event.shapeless('thermal:quartz_dust', ['8x minecraft:granite', '#alltheores:ore_hammers']).id('kubejs:quartz_dust_from_granit_crushing_manual_only');
});} event.shapeless('thermal:quartz_dust', ['minecraft:quartz', '#alltheores:ore_hammers']).id('kubejs:quartz_dust_crushing_manual_only');
// And only copper can be smelted without pulverizing // And only copper can be smelted without pulverizing
event.smelting(global.ingotItem('copper'), metalForm('copper', 'raw_materials', 'ore')); event.smelting(global.ingotItem('copper'), metalForm('copper', 'raw_materials', 'ore'));
console.log(`Setting up blends...`);
// These are the only blends you can make by hand, aka pre-smelter alloys
// FIXME: Remove the hammer from the create mixer
event.shapeless(Item.of(metalForm('bronze', 'dusts', 'dust').withCount(4)), [
global.dustItem('tin', 2),
global.dustItem('copper', 2),
'#alltheores:ore_hammers'
]).id('kubejs:bronze_mixing_manual_only');
event.custom({
type: "create:mixing",
ingredients: [
global.dustItem('tin', 2),
global.dustItem('copper', 2),
],
results: [global.dustItem('tin', 4)]
});
event.shapeless(Item.of(metalForm('brass', 'dusts', 'dust').withCount(4)), [
global.dustItem('copper', 3),
global.dustItem('zinc', 1),
'#alltheores:ore_hammers'
]).id(`kubejs:brass_mixing_manual_only`);
event.custom({
type: "create:mixing",
ingredients: [
global.dustItem('copper', 3),
global.dustItem('zinc', 1),
],
results: [global.dustItem('brass', 4)]
});
event.shapeless(Item.of(metalForm('invar', 'dusts', 'dust').withCount(4)), [
global.dustItem('iron', 2),
global.dustItem('nickel', 2),
'#alltheores:ore_hammers'
]).id('kubejs:invar_mixing_manual_only');
event.custom({
type: "create:mixing",
ingredients: [
global.dustItem('iron', 2),
global.dustItem('nickel', 2),
],
results: [global.dustItem('invar', 4)]
});
// Constantan dust consumes your first build grist, and it unlocks the basic grist production line
event.shapeless(Item.of(metalForm('constantan', 'dusts', 'dust').withCount(4)),[
global.ingotItem('nickel', 2),
global.ingotItem('copper', 2),
'#kubejs:grist/build/basic',
'#alltheores:ore_hammers'
]).id('kubejs:constantan_dust_mixing_manual_only');
// Constantan is the only metal you can't work on the bench except for gears // Constantan is the only metal you can't work on the bench except for gears
event.shaped('thermal:constantan_gear', [ event.shaped('thermal:constantan_gear', [
' A ', ' A ',

View File

@ -15,7 +15,6 @@ StartupEvents.registry('item', e => {
console.log(`Create ${grist}`); console.log(`Create ${grist}`);
e.create(grist.id()) e.create(grist.id())
.displayName(grist.displayName()) .displayName(grist.displayName())
.rarity('rare')
.fireResistant(true) .fireResistant(true)
.textureJson({layer0: grist.itemTexture()}); .textureJson({layer0: grist.itemTexture()});
}); });

View File

@ -22,9 +22,10 @@ function HSVtoRGB(h, s, v) {
return `#${toHex(r)}${toHex(g)}${toHex(b)}`.toString(); return `#${toHex(r)}${toHex(g)}${toHex(b)}`.toString();
} }
function Tier(name, colorValue) { function Tier(name, colorValue, rarity) {
this.name = name; this.name = name;
this.colorValue = colorValue; this.colorValue = colorValue;
this.rarity = rarity;
}; };
Tier.prototype.displayName = function() { Tier.prototype.displayName = function() {
@ -83,9 +84,9 @@ Grist.Primitives = [
// Color values are 0-1 floats // Color values are 0-1 floats
Grist.Tiers = { Grist.Tiers = {
basic: new Tier('basic', 0.5), basic: new Tier('basic', 0.5, 'uncommon'),
improved: new Tier('improved', 0.75), improved: new Tier('improved', 0.75, 'rare'),
radiant: new Tier('radiant', 1.0) radiant: new Tier('radiant', 1.0, 'epic')
}; };
Grist.Tiers.forEach = function(f) { Grist.Tiers.forEach = function(f) {
@ -148,6 +149,14 @@ Grist.prototype.exact = function() {
return this; return this;
}; };
Grist.prototype.rarity = function() {
if (this.element == 'universal') {
return 'kubejs:legendary'
} else {
return this.tier.rarity;
}
}
Grist.prototype.color = function() { Grist.prototype.color = function() {
//return '#0d6aff'; //return '#0d6aff';
if (this.element.hue == -1) { if (this.element.hue == -1) {
@ -190,11 +199,20 @@ Grist.prototype.elementalTag = function() {
}; };
Grist.prototype.tags = function() { Grist.prototype.tags = function() {
if (this.state == 'item') {
return [ return [
'kubejs:grist', 'kubejs:grist',
this.tag(), this.tag(),
this.elementalTag() this.elementalTag()
]; ];
} else if (this.state == 'block') {
return [
'kubejs:grist_block',
this.tag(),
this.elementalTag(),
`forge:storage_blocks/grist_${this.element.name}_${this.tier.name}`
];
}
}; };
Grist.prototype.id = function() { Grist.prototype.id = function() {

View File

@ -1,20 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "ES2015",
"lib": [
"ES5",
"ES2015"
],
"rootDir": "./src",
"typeRoots": [
"../../.probe/startup/probe-types"
],
"baseUrl": "../../.probe/startup/probe-types",
"skipLibCheck": true
},
"include": [
"./src/**/*",
null
]
}

View File

@ -13,7 +13,7 @@ StartupEvents.registry('fluid', e => {
}); });
StartupEvents.registry('item', e => { StartupEvents.registry('item', e => {
e.create('grist_essence').displayName('Grist Essence').rarity('rare'); e.create('grist_essence').displayName('Grist Essence').rarity('uncommon');
// Intelligent progress // Intelligent progress
// Basic // Basic
@ -22,16 +22,16 @@ StartupEvents.registry('item', e => {
e.create('sacred_flesh').displayName('Sacred Flesh').rarity('rare').textureJson({layer0:'minecraft:item/rotten_flesh'}).color(0, Grist.of('build', 'basic').color()); e.create('sacred_flesh').displayName('Sacred Flesh').rarity('rare').textureJson({layer0:'minecraft:item/rotten_flesh'}).color(0, Grist.of('build', 'basic').color());
// Improved // Improved
e.create('intelligent_focus').displayName('Intelligent Focus').rarity('rare'); e.create('intelligent_focus').displayName('Intelligent Focus').rarity('rare').textureJson({layer0: 'malloc:item/intelligent_focus'});
e.create('sapient_focus').displayName('Sapient Focus').rarity('rare'); e.create('sapient_focus').displayName('Sapient Focus').rarity('rare').textureJson({layer0: 'malloc:item/sapient_focus'});
e.create('imbued_source_gem').displayName('Imbued Source Gem').rarity('rare'); e.create('imbued_source_gem').displayName('Imbued Source Gem').rarity('rare').textureJson({layer0: 'ars_nouveau:item/source_gem'}).color(0, Grist.of('intelligent', 'improved').color());
e.create('intelligent_catalyst').displayName('Intelligent Catalyst').rarity('rare'); e.create('intelligent_catalyst').displayName('Intelligent Catalyst').rarity('rare').textureJson({layer0: 'malloc:item/intelligent_catalyst'});
// Radiant // Radiant
e.create('intelligent_processor').displayName('Intelligent Processor').rarity('rare').texture('malloc:item/intelligent_processor'); e.create('intelligent_processor').displayName('Intelligent Processor').rarity('epic').texture('malloc:item/intelligent_processor');
e.create('raw_intelligent_processor').displayName('Raw Intelligent Processor').rarity('rare').texture('malloc:item/raw_intelligent_processor'); e.create('raw_intelligent_processor').displayName('Raw Intelligent Processor').rarity('epic').texture('malloc:item/raw_intelligent_processor');
e.create('deep_intelligent_processor').displayName('Deep Intelligent Processor').rarity('rare').texture('malloc:item/deep_intelligent_processor'); e.create('deep_intelligent_processor').displayName('Deep Intelligent Processor').rarity('epic').texture('malloc:item/deep_intelligent_processor');
e.create('raw_deep_intelligent_processor').displayName('Deep Raw Intelligent Processor').rarity('rare').texture('malloc:item/raw_deep_intelligent_processor'); e.create('raw_deep_intelligent_processor').displayName('Deep Raw Intelligent Processor').rarity('epic').texture('malloc:item/raw_deep_intelligent_processor');
// Energetic progression // Energetic progression
// Basic // Basic
@ -69,13 +69,13 @@ StartupEvents.registry('item', e => {
e.create('reinforced_grist_blend').displayName('Reinforced Grist Blend').rarity('rare').textureJson({layer0: 'minecraft:item/redstone'}).color(0, Grist.of('build', 'improved').color()); e.create('reinforced_grist_blend').displayName('Reinforced Grist Blend').rarity('rare').textureJson({layer0: 'minecraft:item/redstone'}).color(0, Grist.of('build', 'improved').color());
// Radiant // Radiant
e.create('grist_crucible'); e.create('grist_crucible').rarity('epic');
e.create('grist_crucible_filled'); e.create('grist_crucible_filled').rarity('epic');
e.create('grist_crucible_hot'); e.create('grist_crucible_hot').rarity('epic');
e.create('tempered_grist_alloy_ingot'); e.create('tempered_grist_alloy_ingot').rarity('epic');
e.create('tempered_grist_alloy_nugget'); e.create('tempered_grist_alloy_nugget').rarity('epic');
e.create('perfect_grist_alloy_ingot'); e.create('perfect_grist_alloy_ingot').rarity('epic');
e.create('perfect_grist_alloy_nugget'); e.create('perfect_grist_alloy_nugget').rarity('epic');
e.create('flawed_grist_alloy_ingot'); e.create('flawed_grist_alloy_ingot').rarity('epic');
e.create('flawed_grist_alloy_nugget'); e.create('flawed_grist_alloy_nugget').rarity('epic');
}); });

View File

@ -0,0 +1,76 @@
// priority: 10000
RarityJSEvents.register(event => {
console.warn("Setting up rarities");
event.addRarity("kubejs:legendary", "yellow");
event.addRarity("kubejs:mythic", "red");
event.addRarity("kubejs:unique", "red");
event.addRarity("kubejs:intelligent_grist", "dark_green");
event.addRarity("kubejs:build_grist", "dark_blue");
event.addRarity("kubejs:energetic_grist", "dark_red");
event.addRarity("kubejs:agricultural_grist", "gold");
// TODO: Put modular items into the unique tier
// TODO: Put gobber compat stuff into legendary
// TODO: Put powder power stuff into mythic/legendary
Grist.forEach(grist => {
console.warn(`${grist.id()} => ${grist.rarity()}`);
event.setRarity(grist.id(), grist.rarity());
});
Grist.forEachBlock(grist => {
console.warn(`${grist.id()} => ${grist.rarity()}`);
event.setRarity(grist.id(), grist.rarity());
});
event.setRarityByMod('kubejs', 'rare');
event.setRarityByMod('miapi', 'kubejs:unique');
event.setRarity("miapi:modular_work_bench", "rare");
event.setRarityByMod('gobber2', 'uncommon');
// Lots of mid-game mods should be uncommon by default
event.setRarityByMod('wormhole_artifact', 'epic');
event.setRarityByMod('artifacts', 'epic');
event.setRarityByMod('sophisticatedbackpacks', 'kubejs:intelligent_grist');
event.setRarityByMod('ae2', 'kubejs:intelligent_grist');
event.setRarityByMod('torchmaster', 'kubejs:intelligent_grist');
event.setRarityByMod('experienceobelisk', 'kubejs:intelligent_grist');
event.setRarityByMod('functionalstorage', 'kubejs:intelligent_grist');
event.setRarityByMod('waystones', 'kubejs:intelligent_grist');
event.setRarityByMod('modularrouters', 'kubejs:intelligent_grist');
event.setRarityByMod('summoningrituals', 'epic');
event.setRarityByMod('tempad', 'epic');
event.setRarity('create:precision_mechanism', 'kubejs:intelligent_grist');
event.setRarity('create:experience_nugget', 'uncommon');
event.setRarityByMod('botanypots', 'kubejs:agricultural_grist');
event.setRarityByMod('industrialforegoing', 'kubejs:agricultural_grist');
event.setRarityByMod('hostilenetworks', 'kubejs:agricultural_grist');
event.setRarityByMod('easy_villagers', 'kubejs:agricultural_grist');
event.setRarity('thermal:redstone_servo', 'kubejs:agricultural_grist');
event.setRarity('thermal:device_fischer', 'kubejs:agricultural_grist');
event.setRarity('farmersdelight:cooking_pot', 'kubejs:agricultural_grist');
event.setRarityByMod('darkutils', 'kubejs:agricultural_grist');
event.setRarityByMod('systeams', 'kubejs:energetic_grist');
event.setRarityByMod('powah', 'kubejs:energetic_grist');
event.setRarityByMod('create_new_age', 'kubejs:energetic_grist');
event.setRarity('thermal:energy_duct', 'kubejs:energetic_grist');
event.setRarity('thermal:energy_cell', 'kubejs:energetic_grist');
event.setRarity('thermal:rf_coil', 'kubejs:energetic_grist');
event.setRarity('thermal:energy_cell_frame', 'kubejs:energetic_grist');
event.setRarity('create:windmill_bearing', 'kubejs:energetic_grist');
event.setRarity('immersive_aircraft:boiler', 'kubejs:energetic_grist');
event.setRarity('iron_furnaces:augment_factory', 'kubejs:energetic_grist');
// "$INST_JAVA" -jar packwiz-installer-bootstrap.jar https://gitea.malloc.hackerbots.net/tdfischer/malloc-s4/raw/branch/main/pack.toml
event.setRarityByMod('thermal', 'kubejs:build_grist');
event.setRarityByMod('ironfurnaces', 'kubejs:build_grist');
event.setRarityByMod('buildinggadgets2', 'epic');
event.setRarity('create:crushing_wheel', 'kubejs:build_grist');
});

View File

@ -0,0 +1,13 @@
name = "Attract to Sound (Forge/Fabric): Sound & Stealth."
filename = "forge_soundattract_1.20.1-3.0.1.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/zZluixcp/versions/IdivdtXt/forge_soundattract_1.20.1-3.0.1.jar"
hash-format = "sha512"
hash = "07f2cffc46258ed2ecccb7b20cd8645cbcc4631f83a7cb54f94cdf974a579ec36e574465a834e0beb84ba6fae7a13e6e3770fa705278c5373c0eaced32131c15"
[update]
[update.modrinth]
mod-id = "zZluixcp"
version = "IdivdtXt"

13
mods/butchery.pw.toml Normal file
View File

@ -0,0 +1,13 @@
name = "Butchery"
filename = "butcher-3.6.1-forge-1.20.1.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/6YfOmC9t/versions/YLBZX0fF/butcher-3.6.1-forge-1.20.1.jar"
hash-format = "sha512"
hash = "077a471b620f9dff6e23e53b404a8aede98634c80ffd0f12cc48ed8f475a0f202334ac7a097408560e45fe1fe5bbe6409667ac6498ac0c64a37d5f5508f044f0"
[update]
[update.modrinth]
mod-id = "6YfOmC9t"
version = "YLBZX0fF"

View File

@ -1,13 +1,13 @@
name = "Create: Copycats+" name = "Create: Copycats+"
filename = "copycats-3.0.0+mc.1.20.1-forge.jar" filename = "copycats-3.0.2+mc.1.20.1-forge.jar"
side = "both" side = "both"
[download] [download]
url = "https://cdn.modrinth.com/data/UT2M39wf/versions/u3FzFq67/copycats-3.0.0%2Bmc.1.20.1-forge.jar" url = "https://cdn.modrinth.com/data/UT2M39wf/versions/ibcPwZZT/copycats-3.0.2%2Bmc.1.20.1-forge.jar"
hash-format = "sha512" hash-format = "sha512"
hash = "fbe3273c7288e52ed0d506509ae2113197580270ae229c60910c6d197d99317ab0f3273fffd4dd47816996142f7ad3b36085bd0f6adbe1c0a0bd688db0d1017e" hash = "29b1912155e4e6f0c08355d475c8f89923912c5bdf1f7b75da760d743e733af78b3dfc82e5a5a56d5ef0bbaff6e51c25eb98558187c330e8c20259016a0fee2f"
[update] [update]
[update.modrinth] [update.modrinth]
mod-id = "UT2M39wf" mod-id = "UT2M39wf"
version = "u3FzFq67" version = "ibcPwZZT"

View File

@ -0,0 +1,13 @@
name = "Create Jetpack"
filename = "create_jetpack-forge-4.4.2.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/UbFnAd4l/versions/wAQ8Ph2w/create_jetpack-forge-4.4.2.jar"
hash-format = "sha512"
hash = "b844c5df9557f928cfb8d0a876c7f8dcd8dd8085eb4fc02504afcd8c59bcac162abea564affbf1cf7c85bc893a2db7e6fa1d0a64b25e9871b704b4032a9c7abf"
[update]
[update.modrinth]
mod-id = "UbFnAd4l"
version = "wAQ8Ph2w"

View File

@ -0,0 +1,13 @@
name = "Create: Power Loader"
filename = "create_power_loader-2.0.3-mc1.20.1.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/wPQ6GgFE/versions/gQuz8jcV/create_power_loader-2.0.3-mc1.20.1.jar"
hash-format = "sha512"
hash = "cce4eeb6a7dc942f24f0a7b4182c1b92898b3cc998a876d910148a498d0a39ac8a37fb7d9b66ee81dadd422b9fe42ff57c7f5f9aa05dcdde80b64c04cfb9d55d"
[update]
[update.modrinth]
mod-id = "wPQ6GgFE"
version = "gQuz8jcV"

View File

@ -0,0 +1,13 @@
name = "Create Railways Navigator"
filename = "createrailwaysnavigator-forge-1.20.1-beta-0.8.3-C6.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/Dq3STxps/versions/VooLiYLH/createrailwaysnavigator-forge-1.20.1-beta-0.8.3-C6.jar"
hash-format = "sha512"
hash = "bc4613f5893aefc33b3e2387d616720c9934b7f1a0654da9e785999dc6180c71ce4c9b8ef77a9cfc6594191a9392fab5a0aee8d729348cb99dccdcc00c196159"
[update]
[update.modrinth]
mod-id = "Dq3STxps"
version = "VooLiYLH"

View File

@ -1,13 +1,13 @@
name = "Create" name = "Create"
filename = "create-1.20.1-6.0.4.jar" filename = "create-1.20.1-6.0.6.jar"
side = "both" side = "both"
[download] [download]
url = "https://cdn.modrinth.com/data/LNytGWDc/versions/xoKzmnen/create-1.20.1-6.0.4.jar" url = "https://cdn.modrinth.com/data/LNytGWDc/versions/JjPQsQVw/create-1.20.1-6.0.6.jar"
hash-format = "sha512" hash-format = "sha512"
hash = "9dc60349a07d3367977fc935a65053db63cdfab4fc244db06e97a62e9c9d1154c1b8b66d4083f5a4c4a1403716a06c3251cd8d0ddfccb5e9de7177c8c2c45d25" hash = "efc7097430ff2e7fe5e54478efbefc52d0017762b59372878a03f79f4eb0446572290bf377e8aba8374f3a9932fdf1cefd4a4650a9a5f3cf6ab0ad9fd05cc30b"
[update] [update]
[update.modrinth] [update.modrinth]
mod-id = "LNytGWDc" mod-id = "LNytGWDc"
version = "xoKzmnen" version = "JjPQsQVw"

View File

@ -0,0 +1,13 @@
name = "RarityJS"
filename = "raritymod-1.0.5.jar"
side = "both"
[download]
hash-format = "sha1"
hash = "d8ad367b715ce62a42e0651b1bb7c90f7220e050"
mode = "metadata:curseforge"
[update]
[update.curseforge]
file-id = 6359655
project-id = 1037072

View File

@ -0,0 +1,13 @@
name = "Dimensional Dungeons"
filename = "dimdungeons-194-forge-1.20.1.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/Q8XlZjYF/versions/Hn1QKGHI/dimdungeons-194-forge-1.20.1.jar"
hash-format = "sha512"
hash = "3e6f00f3584c86b7a46199558cde4c5f1dda63aa620edf964bd7e20efef62c62f68b284f33501801a78ef408170d8dac558f7e290d89ebda00861918b286d532"
[update]
[update.modrinth]
mod-id = "Q8XlZjYF"
version = "Hn1QKGHI"

View File

@ -1,13 +0,0 @@
name = "Dynamic Lights"
filename = "dynamiclights-1.20.1.2.jar"
side = "both"
[download]
hash-format = "sha1"
hash = "19a5b772e1b6ca15cca8db6f201884459f37a173"
mode = "metadata:curseforge"
[update]
[update.curseforge]
file-id = 4861183
project-id = 227874

View File

@ -1,13 +0,0 @@
name = "Sodium/Embeddium Dynamic Lights"
filename = "sodiumdynamiclights-forge-1.0.10-1.20.1.jar"
side = "both"
[download]
hash-format = "sha1"
hash = "d27524e85bed0f0af83c03be46f9ca3eb02a1be9"
mode = "metadata:curseforge"
[update]
[update.curseforge]
file-id = 6044481
project-id = 551736

13
mods/energymeter.pw.toml Normal file
View File

@ -0,0 +1,13 @@
name = "Energy Meter"
filename = "energymeter-forge-1.20.1-1.0.0.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/MbejSZ2E/versions/UyNuFWXF/energymeter-forge-1.20.1-1.0.0.jar"
hash-format = "sha512"
hash = "e599493c47e3f5ea24aae9cc1e67c335085c088ac6149e23eb2a3c2d25cc9f51dd015f9ef5e3b68c8b2971db5151aad99534d33bec8b70902ddca64db6e67ac7"
[update]
[update.modrinth]
mod-id = "MbejSZ2E"
version = "UyNuFWXF"

View File

@ -1,13 +1,13 @@
name = "GeckoLib" name = "Geckolib"
filename = "geckolib-forge-1.20.1-4.7.1.2.jar" filename = "geckolib-forge-1.20.1-4.7.2.jar"
side = "both" side = "both"
[download] [download]
hash-format = "sha1" url = "https://cdn.modrinth.com/data/8BmcQJ2H/versions/AiVKLYep/geckolib-forge-1.20.1-4.7.2.jar"
hash = "c2b5d7ccf77f505996701ba477741d7e5cd034e1" hash-format = "sha512"
mode = "metadata:curseforge" hash = "40aefbb89e4a65c1955bd05c13cb656c0902e545741770d9395037f6a87684e91676935e0d5b7be0419abd1599272fa3aa245dc3976208b82f568d994813e314"
[update] [update]
[update.curseforge] [update.modrinth]
file-id = 6333474 mod-id = "8BmcQJ2H"
project-id = 388172 version = "AiVKLYep"

View File

@ -0,0 +1,13 @@
name = "Hardcore Revival"
filename = "hardcorerevival-forge-1.20.1-12.0.7.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/HqKoXaXz/versions/1nklKToo/hardcorerevival-forge-1.20.1-12.0.7.jar"
hash-format = "sha512"
hash = "e6862828684af7f64d35cc481a128e0694a71d69a90c42a7cc8a9ab2d1d72f88f70ec540a4046dd5d52c4fb60478ba4465c4d38497c03a7cf08b08f103c826c3"
[update]
[update.modrinth]
mod-id = "HqKoXaXz"
version = "1nklKToo"

13
mods/iceberg.pw.toml Normal file
View File

@ -0,0 +1,13 @@
name = "Iceberg"
filename = "Iceberg-1.20.1-forge-1.1.25.jar"
side = "client"
[download]
url = "https://cdn.modrinth.com/data/5faXoLqX/versions/BQ8rJPXV/Iceberg-1.20.1-forge-1.1.25.jar"
hash-format = "sha512"
hash = "8612097a014fcd6343a092cfeddb0e9d57c5a665b9ac61603a7760d156abd048ac548db55e750b369700b0475661e554f4b92b44677edf07574d4f9ffa42558c"
[update]
[update.modrinth]
mod-id = "5faXoLqX"
version = "BQ8rJPXV"

13
mods/interiors.pw.toml Normal file
View File

@ -0,0 +1,13 @@
name = "Create: Interiors"
filename = "interiors-0.5.6+forge-mc1.20.1-local.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/r4Knci2k/versions/sFv3NBS4/interiors-0.5.6%2Bforge-mc1.20.1-local.jar"
hash-format = "sha512"
hash = "1c84e2a566cc03fc88fc27a55dcbac7a85f91781c73a8993c9761ac94b13eef93b04a89ffecb75d94a07e367ee09e78d2f8dc1e99a06163fc60cddef708d91a7"
[update]
[update.modrinth]
mod-id = "r4Knci2k"
version = "sFv3NBS4"

13
mods/item-borders.pw.toml Normal file
View File

@ -0,0 +1,13 @@
name = "Item Borders"
filename = "ItemBorders-1.20.1-forge-1.2.2.jar"
side = "client"
[download]
url = "https://cdn.modrinth.com/data/b1fMg6sH/versions/JUW31p4D/ItemBorders-1.20.1-forge-1.2.2.jar"
hash-format = "sha512"
hash = "9822eaa5debee8b8a67c185fec2f03f4a5bf25513cb4ef3567266dab44280564050ebcf730b43782e1f12a4d6e19668bdedb60279c1b53925ccbed5b6680ba3b"
[update]
[update.modrinth]
mod-id = "b1fMg6sH"
version = "JUW31p4D"

View File

@ -3,11 +3,11 @@ filename = "kotlinforforge-4.11.0-all.jar"
side = "both" side = "both"
[download] [download]
hash-format = "sha1" url = "https://cdn.modrinth.com/data/ordsPcFz/versions/hmeyC41q/kotlinforforge-4.11.0-all.jar"
hash = "1fd8acfd75a2be2dc3cdcc7e816482b2e427d6e5" hash-format = "sha512"
mode = "metadata:curseforge" hash = "d72707078f0c4fde78981c638ca976722f22a64ce74bdb489258790fe9886d763a7b1e0dfbc5429ddd3105d8a65d177f06242dfb1457e219e56c70dd3e8cbf2c"
[update] [update]
[update.curseforge] [update.modrinth]
file-id = 5402061 mod-id = "ordsPcFz"
project-id = 351264 version = "hmeyC41q"

13
mods/lexiconfig.pw.toml Normal file
View File

@ -0,0 +1,13 @@
name = "Lexiconfig"
filename = "lexiconfig-forge-1.4.18-1.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/D157Rgyf/versions/iv3Hdpa6/lexiconfig-forge-1.4.18-1.jar"
hash-format = "sha512"
hash = "6050924134d594dd7031061bfe70b34429842516b388262335024206e50993794baa3697f08053bd001e728d3ce42875ee5215e819ed2c595a002cec46c40985"
[update]
[update.modrinth]
mod-id = "D157Rgyf"
version = "iv3Hdpa6"

View File

@ -0,0 +1,13 @@
name = "Macaw's Furniture"
filename = "mcw-furniture-3.3.0-mc1.20.1forge.jar"
side = "both"
[download]
url = "https://cdn.modrinth.com/data/dtWC90iB/versions/jQcvCX79/mcw-furniture-3.3.0-mc1.20.1forge.jar"
hash-format = "sha512"
hash = "aeb7537b9bb41615418e32d8383d6a0ea8b337554593752aa39ed955d50e1faa025c35a1d4bdb66fe49f9930a33d3becb8c897ee438c353da44d5fc8b7dfbdb8"
[update]
[update.modrinth]
mod-id = "dtWC90iB"
version = "jQcvCX79"

View File

@ -0,0 +1,13 @@
name = "Obscure Tooltips"
filename = "Obscure-Tooltips-2.2.jar"
side = "both"
[download]
hash-format = "sha1"
hash = "8cc7c31f79a11bef3d5cc69b1740f07d5adbfc96"
mode = "metadata:curseforge"
[update]
[update.curseforge]
file-id = 4686579
project-id = 715660

13
mods/prism-lib.pw.toml Normal file
View File

@ -0,0 +1,13 @@
name = "Prism"
filename = "Prism-1.20.1-forge-1.0.5.jar"
side = "client"
[download]
url = "https://cdn.modrinth.com/data/1OE8wbN0/versions/FFyss87M/Prism-1.20.1-forge-1.0.5.jar"
hash-format = "sha512"
hash = "b73de6bf581f5f28d86baa3eeb8ac0ff30aa9a35280da7fa528547bbb9e0aff5f931b434e143a4dfc4d11ae03ce52bc1cfa359beb8b656880e75bf1aa8d91b81"
[update]
[update.modrinth]
mod-id = "1OE8wbN0"
version = "FFyss87M"

View File

@ -0,0 +1,13 @@
name = "Sodium Dynamic Lights"
filename = "sodiumdynamiclights-forge-1.0.10-1.20.1.jar"
side = "client"
[download]
url = "https://cdn.modrinth.com/data/PxQSWIcD/versions/I156ee3A/sodiumdynamiclights-forge-1.0.10-1.20.1.jar"
hash-format = "sha512"
hash = "b8527199be5a8b4bc758a4f320586b5886e6ff657718f52d464386b1e3c695d7bfe644e2ef9487a869c93c0866818995ecd47b9e1a19054929242682e37f58b7"
[update]
[update.modrinth]
mod-id = "PxQSWIcD"
version = "I156ee3A"

View File

@ -0,0 +1,13 @@
name = "Sodium Options API"
filename = "sodiumoptionsapi-forge-1.0.10-1.20.1.jar"
side = "client"
[download]
url = "https://cdn.modrinth.com/data/Es5v4eyq/versions/d0EFLitO/sodiumoptionsapi-forge-1.0.10-1.20.1.jar"
hash-format = "sha512"
hash = "20b11f1582df3df3d351e0cffcfc8b97453e2d73164fbad46d3f4eb960cab57d8f708d84b818782ef019d5cd9494ce001161f753623680516a191d6f510ebb79"
[update]
[update.modrinth]
mod-id = "Es5v4eyq"
version = "d0EFLitO"

View File

@ -0,0 +1,13 @@
name = "Vibrative Voice"
filename = "VibrativeVoice-forge-1.20.1-1.2.0.jar"
side = "server"
[download]
url = "https://cdn.modrinth.com/data/Wa9vzNNU/versions/c1nQyYLn/VibrativeVoice-forge-1.20.1-1.2.0.jar"
hash-format = "sha512"
hash = "6d15dcb3eaaa38cc41635ec732ec732111d6348dda9b90142e6c30a136cc6102afe2f52575086fe86b1f471a0254486046e40487840e6991f984bca666c3ff67"
[update]
[update.modrinth]
mod-id = "Wa9vzNNU"
version = "c1nQyYLn"

13
mods/voidscape.pw.toml Normal file
View File

@ -0,0 +1,13 @@
name = "Voidscape"
filename = "Voidscape-1.20.1-1.5.389.jar"
side = "both"
[download]
hash-format = "sha1"
hash = "794b864e1dd1bab20b8cc3f16f729b649e61abee"
mode = "metadata:curseforge"
[update]
[update.curseforge]
file-id = 5179872
project-id = 251730

View File

@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0"
[index] [index]
file = "index.toml" file = "index.toml"
hash-format = "sha256" hash-format = "sha256"
hash = "6e2215e8b4c1118e99b690da421a2b13b5924ebdb76bf7bec63d90719a6fbf55" hash = "4d2453a62fcc952bf14f0c1924c7b2087a1007633f173ef78c66ececc8fdb2b8"
[versions] [versions]
forge = "47.4.0" forge = "47.4.0"