Compare commits
22 Commits
1e12f09858
...
main
Author | SHA1 | Date | |
---|---|---|---|
58b9cd65ac | |||
fc9780def5 | |||
fd5d608139 | |||
136a166983 | |||
78f64fce7c | |||
f78f491c46 | |||
2af72feb4d | |||
e8322eed47 | |||
ce717ad665 | |||
0e19f47a67 | |||
ae4391314e | |||
7c4fcbe515 | |||
64a6513064 | |||
7ac2c6cca2 | |||
6f1d3c3565 | |||
d4efc8e919 | |||
34077a5ee8 | |||
248988153e | |||
aa0d4cc720 | |||
79b17890ca | |||
503686e346 | |||
a52d1fb5db |
2
TODO.md
2
TODO.md
@@ -31,4 +31,4 @@
|
|||||||
# mods todo:
|
# mods todo:
|
||||||
[x] remove coins
|
[x] remove coins
|
||||||
[x] remove refined storage
|
[x] remove refined storage
|
||||||
[x] remove create additions
|
[x] remove create additions
|
||||||
|
@@ -44,6 +44,7 @@
|
|||||||
"forge:bread/{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",
|
||||||
@@ -56,7 +57,9 @@
|
|||||||
"forge:rubber",
|
"forge:rubber",
|
||||||
"forge:cardboard",
|
"forge:cardboard",
|
||||||
"forge:chocolate",
|
"forge:chocolate",
|
||||||
"forge:pasta"
|
"forge:pasta",
|
||||||
|
"forge:salad_ingredients/{material}",
|
||||||
|
"forge:salt"
|
||||||
],
|
],
|
||||||
"materials": [
|
"materials": [
|
||||||
"aeternium",
|
"aeternium",
|
||||||
@@ -191,6 +194,7 @@
|
|||||||
"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:flour/wheat": ["croptopia:flour"],
|
||||||
@@ -199,7 +203,15 @@
|
|||||||
|
|
||||||
"forge:bread/ginger": ["create_confectionery:gingerbread", "brewery:gingerbread"],
|
"forge:bread/ginger": ["create_confectionery:gingerbread", "brewery:gingerbread"],
|
||||||
|
|
||||||
"forge:bars/chocolate": ["croptopia:chocolate"]
|
"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"],
|
||||||
|
50
config/itemborders-common.toml
Normal file
50
config/itemborders-common.toml
Normal 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"]
|
156
index.toml
156
index.toml
@@ -14,7 +14,7 @@ hash = "a60442351eb4a2fb2c74d4a7c62fd25d32faca43c0f192a1c261c13db9a71551"
|
|||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "config/almostunified/unify.json"
|
file = "config/almostunified/unify.json"
|
||||||
hash = "5b48d3d81a66c2132171023e7d79b51bf23012bf7f7d3621f528b00889406c1e"
|
hash = "8c51d8df836f7175aa64f92141df3e3a3113f080511420b4ae34ad0acb8d3c21"
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "config/apotheosis/adventure.cfg"
|
file = "config/apotheosis/adventure.cfg"
|
||||||
@@ -148,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"
|
||||||
@@ -551,31 +555,31 @@ hash = "a5e02c71fd92029ea204f96d071c6b25f59d03b59f65199cb24f96a1858b3ed0"
|
|||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/grist/agricultural.js"
|
file = "kubejs/server_scripts/grist/agricultural.js"
|
||||||
hash = "b9952f3bf6160c133cbec0e604e56a3a9107149a52097b65777d532e4194b726"
|
hash = "65145ba119d067f34a207496f295c8fd63673723c9504637872f27ff0f78c566"
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/grist/build.js"
|
file = "kubejs/server_scripts/grist/build.js"
|
||||||
hash = "39ad24b0308277dd972a4898f0e923349d6a8cc6118e76fe8c085fd33adc1919"
|
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 = "99ad461391b378426f76c40d34661ed7640cc30cc356c9eb52b60e70b4da6426"
|
hash = "11903a439e89b90be32c435f54b49ad915aab9d571434120592b3a4b579f197d"
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/grist/primordeal.js"
|
file = "kubejs/server_scripts/grist/primordeal.js"
|
||||||
hash = "7dc5f3ae65fd65800df171420bdb6c69b3c62a99337822a3426c07db73eb6db0"
|
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"
|
||||||
@@ -583,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"
|
||||||
@@ -623,23 +627,23 @@ hash = "4717847a6d54f56ed6919a1e2c3591fc73780973708e818a563753132bc7c15e"
|
|||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/mods/create.js"
|
file = "kubejs/server_scripts/mods/create.js"
|
||||||
hash = "2989241678e27da372401bb66e10b412697b563b2fb8185a380dc3f62cefcd82"
|
hash = "ca595f7141708157fe469666f5f2309bfcbda3d9c4e052abd55ae256726a0d0a"
|
||||||
|
|
||||||
[[files]]
|
|
||||||
file = "kubejs/server_scripts/mods/create_enchantment_industry.js"
|
|
||||||
hash = "348f8ca4b328d6ef054d05914b3fffbf1b6813de776cfb44e6eac0ebd14c4c40"
|
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/mods/create_jetpack.js"
|
file = "kubejs/server_scripts/mods/create_jetpack.js"
|
||||||
hash = "47a7fe4abb40b8a9524bf01a964015f71fe02218f4f04dd0cb3fea116ea9bd83"
|
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 = "26d4be6f4fdd3b276c214eaef8e467ecf12c8a25f61e0d4c30d08e6e395b4e66"
|
hash = "7d09c5eec356309a58d915dbe77e901e4c72679eae95657a5c0dd371b9c9e747"
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/mods/darkutils.js"
|
file = "kubejs/server_scripts/mods/darkutils.js"
|
||||||
@@ -657,6 +661,10 @@ 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"
|
||||||
@@ -683,7 +691,7 @@ hash = "596dd1c049f41e6f4085aea50a1791be7397710d13d3c234ca09a0626c1d62b5"
|
|||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/mods/industrial_foregoing.js"
|
file = "kubejs/server_scripts/mods/industrial_foregoing.js"
|
||||||
hash = "dbf1ad898c625e089daa09ae5c331ead86e0d4ff310c4a043f0dbcf0ff02e629"
|
hash = "4f6bfff4f318af1559c80a6487333577d4e1983f3dcc7b4344f765a9144851da"
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/mods/ironfurnaces.js"
|
file = "kubejs/server_scripts/mods/ironfurnaces.js"
|
||||||
@@ -703,15 +711,15 @@ hash = "2d9109e7f1e0beed5dd325fb7939a15f6afa2f2783e31f3830d1fb6f055f3f07"
|
|||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/mods/powah.js"
|
file = "kubejs/server_scripts/mods/powah.js"
|
||||||
hash = "93b1aee5ea41c226a2dd5e453824518ab0eeb6d15f649f0a74e5b0e4be9a2e17"
|
hash = "d7770a1c3fa83efb1fde7c12715c741138995bdf4b513f4fe6b917fc8664763a"
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/mods/powder_power.js"
|
file = "kubejs/server_scripts/mods/powder_power.js"
|
||||||
hash = "ced0c73d8fb97517edc911f6c13f59895e1d5d00fbd70de919f2a417d8335c25"
|
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"
|
||||||
@@ -727,15 +735,15 @@ hash = "d37bfb9bc41aa46d0aa075dbe19a5eeb947b4ea3d8f13c03ac370cb00763d7a1"
|
|||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/mods/thermal.js"
|
file = "kubejs/server_scripts/mods/thermal.js"
|
||||||
hash = "b33f603a2121bc90e47b27680ee55655dca46c9d7b07d97d1c06698d0a1c762d"
|
hash = "9490e5519a8dc011f2d22a65df5c086ecd44d6cbf5b7a12df417521e5b21a324"
|
||||||
|
|
||||||
[[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"
|
||||||
@@ -747,7 +755,7 @@ hash = "4003082f31011049402ff31504a6db0f4fdd6c7076167109c66fa412286be462"
|
|||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/ore-processing.js"
|
file = "kubejs/server_scripts/ore-processing.js"
|
||||||
hash = "c2d3d5b00a259d7109916ee9a9f6e46ad52a8084ed435d4bc2ccd69312eff0ce"
|
hash = "2b375084a5ad842c4a8039fa11b45805c1998a80a3d0a79b1bdca23594c90f4e"
|
||||||
|
|
||||||
[[files]]
|
[[files]]
|
||||||
file = "kubejs/server_scripts/progression/report.js"
|
file = "kubejs/server_scripts/progression/report.js"
|
||||||
@@ -767,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 = "3ae96e7bb9f83d1fd2d2af269ae5706f2fff283807c65ab3cbe197d8b69644b6"
|
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"
|
||||||
@@ -956,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"
|
||||||
@@ -1043,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]]
|
||||||
@@ -1086,9 +1099,19 @@ 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]]
|
||||||
@@ -1121,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"
|
||||||
@@ -1141,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"
|
||||||
@@ -1181,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"
|
||||||
@@ -1236,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"
|
||||||
@@ -1363,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]]
|
||||||
@@ -1386,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"
|
||||||
@@ -1396,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"
|
||||||
@@ -1441,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"
|
||||||
@@ -1686,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"
|
||||||
@@ -1776,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"
|
||||||
@@ -1881,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"
|
||||||
@@ -2056,6 +2119,11 @@ file = "mods/vibrative-voice.pw.toml"
|
|||||||
hash = "5194dedc1d09130cf3635ea8f32e8d95ce0615d08d9c60006ec94e512a01eb46"
|
hash = "5194dedc1d09130cf3635ea8f32e8d95ce0615d08d9c60006ec94e512a01eb46"
|
||||||
metafile = true
|
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"
|
||||||
|
@@ -120,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',
|
||||||
@@ -137,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',
|
||||||
@@ -176,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'
|
||||||
|
@@ -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(
|
|
||||||
'kubejs:grist_build_improved_block',
|
// Improved grist starts by smelting together build grist, primordeal improved grist, and sulfur to create reinforced grist blend
|
||||||
['4x minecraft:clay', '#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_block',
|
|
||||||
['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
|
||||||
|
@@ -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
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -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,12 +69,21 @@ 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',
|
||||||
900,
|
900,
|
||||||
['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",
|
||||||
@@ -102,8 +111,8 @@ 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_block'))
|
.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', 1))
|
.input(Item.of('kubejs:grist_intelligent_improved', 1))
|
||||||
.blockBelow('ars_nouveau:arcane_core');
|
.blockBelow('ars_nouveau:arcane_core');
|
||||||
|
|
||||||
|
@@ -43,9 +43,12 @@ 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}`]);
|
||||||
@@ -78,6 +81,7 @@ ServerEvents.recipes(event => {
|
|||||||
|
|
||||||
// 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',
|
||||||
|
@@ -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}`)
|
||||||
|
@@ -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}`);
|
if (itemType.id == 'minecraft:air') {
|
||||||
}
|
console.warn(`metals: No metal items found in #forge:${form}/${this.name}`)
|
||||||
return ret;
|
} 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) => {
|
||||||
|
@@ -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'
|
||||||
|
);
|
||||||
});
|
});
|
@@ -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`, '8x #forge:glass/colorless']).heated();
|
||||||
|
});
|
||||||
});
|
});
|
@@ -1,34 +0,0 @@
|
|||||||
ServerEvents.recipes(event => {
|
|
||||||
event.remove({output: 'create_enchantment_industry:disenchanter'});
|
|
||||||
event.remove({output: 'create_enchantment_industry:printer'});
|
|
||||||
|
|
||||||
event.recipes.ars_nouveau.enchanting_apparatus(
|
|
||||||
[
|
|
||||||
'create:item_drain',
|
|
||||||
'#kubejs:grist/intelligent/improved'
|
|
||||||
],
|
|
||||||
'create_enchantment_industry:disenchanter'
|
|
||||||
);
|
|
||||||
|
|
||||||
event.recipes.ars_nouveau.enchanting_apparatus(
|
|
||||||
[
|
|
||||||
'#kubejs:grist/intelligent/improved',
|
|
||||||
'#kubejs:grist/build/improved'
|
|
||||||
],
|
|
||||||
'create:item_drain',
|
|
||||||
'create_enchantment_industry:disenchanter',
|
|
||||||
2000
|
|
||||||
);
|
|
||||||
|
|
||||||
event.recipes.ars_nouveau.enchanting_apparatus(
|
|
||||||
[
|
|
||||||
'#kubejs:grist/intelligent/improved',
|
|
||||||
'#kubejs:grist/build/improved',
|
|
||||||
'minecraft:book',
|
|
||||||
'minecraft:book'
|
|
||||||
],
|
|
||||||
'create:spout',
|
|
||||||
'create_enchantment_industry:printer',
|
|
||||||
2000
|
|
||||||
);
|
|
||||||
});
|
|
15
kubejs/server_scripts/mods/create_power_loader.js
Normal file
15
kubejs/server_scripts/mods/create_power_loader.js
Normal 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'
|
||||||
|
);
|
||||||
|
});
|
@@ -33,4 +33,22 @@ ServerEvents.recipes(event => {
|
|||||||
'#forge:tomato_sauces'
|
'#forge:tomato_sauces'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// There is a recipe that uses the skillet, but very different ingredients
|
||||||
|
event.remove({id: 'croptopia:cheeseburger'});
|
||||||
|
|
||||||
|
// 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();
|
||||||
});
|
});
|
15
kubejs/server_scripts/mods/energymeter.js
Normal file
15
kubejs/server_scripts/mods/energymeter.js
Normal 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')
|
||||||
|
);
|
||||||
|
});
|
@@ -51,6 +51,10 @@ ServerEvents.recipes(event => {
|
|||||||
['minecraft:diamond_pickaxe', '#kubejs:grist/build/radiant']
|
['minecraft:diamond_pickaxe', '#kubejs:grist/build/radiant']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
// Remove some basic generators where thermal dynamos are way better
|
||||||
|
event.remove({output: 'industrialforegoing:biofuel_generator'});
|
||||||
|
event.remove({output: 'industrialforegoing:pitiful_generator'});
|
||||||
|
|
||||||
let v = [['common', 'pity'], ['pity', 'simple'], ['simple', 'advanced'], ['advanced','supreme']].forEach(tierPair => {
|
let v = [['common', 'pity'], ['pity', 'simple'], ['simple', 'advanced'], ['advanced','supreme']].forEach(tierPair => {
|
||||||
event.replaceInput(
|
event.replaceInput(
|
||||||
{id: `industrialforegoing:${tierPair[1]}_black_hole_unit`},
|
{id: `industrialforegoing:${tierPair[1]}_black_hole_unit`},
|
||||||
|
@@ -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,15 @@ ServerEvents.recipes(event => {
|
|||||||
'minecraft:clay_ball',
|
'minecraft:clay_ball',
|
||||||
'#alltheores:ore_hammers'
|
'#alltheores:ore_hammers'
|
||||||
]);
|
]);
|
||||||
|
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?
|
||||||
});
|
});
|
@@ -9,4 +9,8 @@ ServerEvents.recipes(event => {
|
|||||||
event.recipes.thermal.pulverizer(`powder_power:powder_${element}`, [`#forge:dusts/${element}`]);
|
event.recipes.thermal.pulverizer(`powder_power:powder_${element}`, [`#forge:dusts/${element}`]);
|
||||||
event.recipes.create.crushing(`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'});
|
||||||
});
|
});
|
@@ -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'
|
||||||
|
);
|
||||||
})
|
})
|
@@ -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,12 +139,23 @@ ServerEvents.recipes(event => {
|
|||||||
'#kubejs:grist/agricultural/basic'
|
'#kubejs:grist/agricultural/basic'
|
||||||
);
|
);
|
||||||
|
|
||||||
// Pulverizer is gated behind brass, which requires create
|
event.remove({input: 'thermal:earth_charge'});
|
||||||
/*event.replaceInput(
|
|
||||||
{id: 'thermal:machine_pulverizer'},
|
|
||||||
'#forge:gears/brass',
|
|
||||||
'#kubejs:grist/agricultural/basic'
|
|
||||||
);*/
|
|
||||||
|
|
||||||
// Centrifuge comes already gated behind constantan
|
event.recipes.create.mixing('16x thermal:phytogro', [
|
||||||
|
'#forge:sand',
|
||||||
|
'2x thermal:apatite_dust',
|
||||||
|
'thermal:niter_dust'
|
||||||
|
]);
|
||||||
|
|
||||||
|
// thermal processing line for creating biofuel
|
||||||
|
// 1000mb of biofuel should then produce 1000mb of refined fuel after another step of processing, which seems balanced
|
||||||
|
event.recipes.thermal.refinery(
|
||||||
|
[Fluid.of('thermal:light_oil', 75), Fluid.of('thermal:heavy_oil', 25)],
|
||||||
|
Fluid.of('industrialforegoing:biofuel', 100)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Make industrial foregoing biofuel work in compression dynamo
|
||||||
|
// 1 bucket refined fuel = 1.5M RF
|
||||||
|
// 1 bucket biofuel = 640k RF
|
||||||
|
event.recipes.thermal.compression_fuel('industrialforegoing:biofuel').energy(640000);
|
||||||
});
|
});
|
@@ -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',
|
||||||
|
@@ -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();
|
||||||
});
|
});
|
@@ -13,20 +13,54 @@ 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
|
||||||
// Andesite age -> Mixer from andesite allow allows creating early alloys: bronze, brass, invar, constantan
|
// Andesite age -> Mixer from andesite allow allows creating early alloys: bronze, brass, invar, constantan
|
||||||
@@ -93,12 +127,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 +140,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 +156,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 +173,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 +191,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,73 +202,118 @@ 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)) {
|
|
||||||
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') {
|
if (real_ingredients.length == 0) {
|
||||||
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
|
console.error(`Unable to create ingots from ${form} for ${metal}!`);
|
||||||
}
|
} else {
|
||||||
real_ingredients.push(real_item);
|
// If we have 3 or fewer ingredients, we can create it in the 3-slot thermal smelter
|
||||||
}
|
if (real_ingredients.length <= 3) {
|
||||||
|
event.recipes.thermal.smelter(ingotType.withCount(ingredients[0]), real_ingredients).id(`kubejs:metals/smelting/${metal}`);
|
||||||
if (real_ingredients.length > 0) {
|
} else {
|
||||||
if (real_ingredients.length <= 3) {
|
// Materials with 4 or more require superheating to be made in the mixer
|
||||||
event.recipes.thermal.smelter(ingotType.withCount(ingredients[0]), real_ingredients);
|
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).superheated().id(`kubejs:metals/superheated_mixing/${metal}`);
|
||||||
} else {
|
|
||||||
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).superheated();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO: Create saw, 3x3 packing/unpacking dies, mechanical press
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,7 +340,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,51 +348,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');
|
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');
|
||||||
@@ -323,11 +383,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), xpNugget.withCount(2).withChance(0.75)], rawType);
|
event.recipes.create.crushing([crushedType.withCount(2), xpNugget.withCount(2).withChance(0.75)], rawIngredients);
|
||||||
event.recipes.create.crushing([crushedType.withCount(18), xpNugget.withCount(18).withChance(0.75)], 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);
|
||||||
|
|
||||||
@@ -360,29 +420,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 = [];
|
if (real_ingredients.length > 0) {
|
||||||
for (const ingredient of ingredients.slice(1)) {
|
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).id(`kubejs:metals/cold_mixing/${metal}`);
|
||||||
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(ingotType.withCount(ingredients[0]), real_ingredients).heated();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -396,45 +437,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.warn(`No ${metal} ore pulverizing available! Falling back to dust-based processing line`);
|
||||||
console.error(`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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -443,278 +456,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), xpNugget.withCount(4).withChance(0.75)], 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), xpNugget.withCount(4 * 9).withChance(0.75)], 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}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generate clay from centrifuing ash or gravel
|
||||||
|
event.recipes.thermal.centrifuge([
|
||||||
|
Item.of('minecraft:clay_ball').withChance(1.05),
|
||||||
|
Item.of('minecraft:clay_ball').withChance(0.25)],
|
||||||
|
'supplementaries:ash_brick'
|
||||||
|
);
|
||||||
|
event.recipes.thermal.centrifuge([
|
||||||
|
Item.of('minecraft:clay_ball').withChance(1.75),
|
||||||
|
Item.of('minecraft:clay_ball').withChance(0.85)],
|
||||||
|
'minecraft:gravel'
|
||||||
|
);
|
||||||
|
// 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');
|
||||||
|
|
||||||
|
// Fix up the diamond gear recipe, which somehow has two duplicates
|
||||||
|
event.remove({output: 'thermal:diamond_gear'});
|
||||||
|
event.shaped('thermal:diamond_gear', [
|
||||||
|
' A ',
|
||||||
|
'ABA',
|
||||||
|
' A '
|
||||||
|
], {
|
||||||
|
'A': 'minecraft:diamond',
|
||||||
|
'B': '#kubejs:grist/build/basic'
|
||||||
|
});
|
||||||
|
|
||||||
|
//event.recipes.create.crushing(dustType, dustSource);
|
||||||
|
event.recipes.create.milling('create:powdered_obsidian', 'minecraft:obsidian');
|
||||||
});
|
});
|
||||||
|
|
||||||
function foobar() {
|
function shpaes() {
|
||||||
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', ['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');
|
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") {
|
|
||||||
event.custom({
|
|
||||||
type: "thermal:pulverizer",
|
|
||||||
ingredients: [
|
|
||||||
{tag: `forge:storage_blocks/raw_${metal}`}
|
|
||||||
],
|
|
||||||
result: [
|
|
||||||
{item: dustType.id, count: 9, chance: 1},
|
|
||||||
{item: dustType.id, count: 9, chance: 0.25}
|
|
||||||
],
|
|
||||||
experience: 0.5
|
|
||||||
});
|
|
||||||
|
|
||||||
if (crushedType.id != 'minecraft:air') {
|
|
||||||
event.custom({
|
|
||||||
type: "create:crushing",
|
|
||||||
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 ',
|
|
||||||
'ABA',
|
|
||||||
' A '
|
|
||||||
], {
|
|
||||||
'A': global.ingotItem(metal),
|
|
||||||
'B': '#forge:gems'
|
|
||||||
});
|
|
||||||
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
|
|
||||||
{let _ = ['copper', 'iron', 'tin', 'nickel', 'zinc', 'lead', 'aluminum', 'gold'].forEach(ore => {
|
|
||||||
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`);
|
|
||||||
event.shapeless(dustType.withCount(2 * 9), [`#forge:storage_blocks/raw_${ore}`, '#alltheores:ore_hammers']).id(`kubejs:ore_block_crushing_${ore}_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 ',
|
||||||
@@ -733,7 +535,7 @@ function foobar() {
|
|||||||
'A': 'minecraft:diamond',
|
'A': 'minecraft:diamond',
|
||||||
'B': 'minecraft:crying_obsidian'
|
'B': 'minecraft:crying_obsidian'
|
||||||
});
|
});
|
||||||
|
|
||||||
// Lapis can be pulverized and hammered.
|
// Lapis can be pulverized and hammered.
|
||||||
event.remove({output: 'thermal:lapis_dust', type: 'thermal:pulverizer'});
|
event.remove({output: 'thermal:lapis_dust', type: 'thermal:pulverizer'});
|
||||||
event.custom({
|
event.custom({
|
||||||
|
@@ -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()});
|
||||||
});
|
});
|
||||||
|
@@ -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() {
|
||||||
return [
|
if (this.state == 'item') {
|
||||||
'kubejs:grist',
|
return [
|
||||||
this.tag(),
|
'kubejs:grist',
|
||||||
this.elementalTag()
|
this.tag(),
|
||||||
];
|
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() {
|
||||||
|
@@ -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
|
|
||||||
]
|
|
||||||
}
|
|
@@ -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
|
||||||
@@ -28,10 +28,10 @@ StartupEvents.registry('item', e => {
|
|||||||
e.create('intelligent_catalyst').displayName('Intelligent Catalyst').rarity('rare').textureJson({layer0: 'malloc:item/intelligent_catalyst'});
|
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');
|
||||||
});
|
});
|
76
kubejs/startup_scripts/rarities.js
Normal file
76
kubejs/startup_scripts/rarities.js
Normal 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');
|
||||||
|
});
|
13
mods/butchery.pw.toml
Normal file
13
mods/butchery.pw.toml
Normal 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"
|
@@ -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"
|
||||||
|
13
mods/create-power-loader.pw.toml
Normal file
13
mods/create-power-loader.pw.toml
Normal 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"
|
13
mods/create-railways-navigator.pw.toml
Normal file
13
mods/create-railways-navigator.pw.toml
Normal 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"
|
@@ -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"
|
||||||
|
13
mods/custom-rarity.pw.toml
Normal file
13
mods/custom-rarity.pw.toml
Normal 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
|
13
mods/dimensional-dungeons.pw.toml
Normal file
13
mods/dimensional-dungeons.pw.toml
Normal 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"
|
@@ -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
|
|
@@ -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
13
mods/energymeter.pw.toml
Normal 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"
|
@@ -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"
|
||||||
|
13
mods/hardcore-revival.pw.toml
Normal file
13
mods/hardcore-revival.pw.toml
Normal 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
13
mods/iceberg.pw.toml
Normal 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/item-borders.pw.toml
Normal file
13
mods/item-borders.pw.toml
Normal 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"
|
13
mods/obscure-tooltips.pw.toml
Normal file
13
mods/obscure-tooltips.pw.toml
Normal 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
13
mods/prism-lib.pw.toml
Normal 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"
|
13
mods/sodium-dynamic-lights.pw.toml
Normal file
13
mods/sodium-dynamic-lights.pw.toml
Normal 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"
|
13
mods/sodium-options-api.pw.toml
Normal file
13
mods/sodium-options-api.pw.toml
Normal 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"
|
13
mods/voidscape.pw.toml
Normal file
13
mods/voidscape.pw.toml
Normal 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
|
@@ -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 = "66dba7a2b0b2f9b2347d929042109dd8014187780d7119ff4a14a1a2cc21b59d"
|
hash = "1dd880f1c10551b36cebddd84aa98bb16650128750b7b1cdcf9f454cf07b1290"
|
||||||
|
|
||||||
[versions]
|
[versions]
|
||||||
forge = "47.4.0"
|
forge = "47.4.0"
|
||||||
|
Reference in New Issue
Block a user