From 7c4fcbe5153fe38b29a898b5aaf0f157f9ee0838 Mon Sep 17 00:00:00 2001 From: Victoria Fischer Date: Sat, 21 Jun 2025 11:49:03 +0200 Subject: [PATCH] mods: add rarityjs, and start creating some grist based rarity tiers --- index.toml | 78 ++++++++++++++------- kubejs/startup_scripts/grist.js | 1 - kubejs/startup_scripts/init.js | 36 +++++++--- kubejs/startup_scripts/jsconfig.json | 20 ------ kubejs/startup_scripts/progression-items.js | 28 ++++---- kubejs/startup_scripts/rarities.js | 75 ++++++++++++++++++++ mods/custom-rarity.pw.toml | 13 ++++ mods/obscure-tooltips.pw.toml | 13 ++++ pack.toml | 2 +- 9 files changed, 196 insertions(+), 70 deletions(-) delete mode 100755 kubejs/startup_scripts/jsconfig.json create mode 100644 kubejs/startup_scripts/rarities.js create mode 100644 mods/custom-rarity.pw.toml create mode 100644 mods/obscure-tooltips.pw.toml diff --git a/index.toml b/index.toml index e7c2ad8..18496e6 100644 --- a/index.toml +++ b/index.toml @@ -14,7 +14,7 @@ hash = "a60442351eb4a2fb2c74d4a7c62fd25d32faca43c0f192a1c261c13db9a71551" [[files]] file = "config/almostunified/unify.json" -hash = "5b48d3d81a66c2132171023e7d79b51bf23012bf7f7d3621f528b00889406c1e" +hash = "fe3dba76719ae817115e2c8b6b428fe790f8724e33148b55148e6769bf4026c3" [[files]] file = "config/apotheosis/adventure.cfg" @@ -148,6 +148,10 @@ hash = "2b957dd01aaf5435d451b7845dddb9c7af7cecf6308d98bf9d9cea4a893eabd4" file = "config/ftbquests/quests/reward_tables/random_metal_dust.snbt" hash = "749e6bd14eca63555b9193c6fc1f550b953ef742bf912c6eb0d7ef18fc063116" +[[files]] +file = "config/itemborders-common.toml" +hash = "4cb2d1d9f341908317ddecdfbdfe15d3e66cb34ecd5c4cd9dabf376167ec0a4d" + [[files]] file = "config/miapi.jsonc" hash = "3e03896b16e429035a401f2d947c01852b39cd7036e8816401f9e6a0700b357a" @@ -571,7 +575,7 @@ hash = "7dc5f3ae65fd65800df171420bdb6c69b3c62a99337822a3426c07db73eb6db0" [[files]] file = "kubejs/server_scripts/grist/tags.js" -hash = "f8c23be0553da9ec51e7f58e94d5b547e9ee813cea2a8c97d7cc5def3c680ddd" +hash = "0863a1d0a2d67ea44bd174fbe19642e73a3f85aae6bdeb12599e61f174079f2b" [[files]] file = "kubejs/server_scripts/init.js" @@ -635,7 +639,11 @@ hash = "c01b0faf4eac2658f0f1e5d95fc6e4365888a2a3c8171d448594abf69d34332a" [[files]] file = "kubejs/server_scripts/mods/create_new_age.js" -hash = "06b10973ef4e2d9b053643a50d443a9e16134d46ba1dc8ed68b2f7b02b44cc7e" +hash = "a2d6c92c9878380c3b1ffb625fd984bc3f0159fd45ec7d92cab0862748badc14" + +[[files]] +file = "kubejs/server_scripts/mods/create_power_loader.js" +hash = "99c87081cbcba79e032cf8c33c5bf9ff032e841da349c1fc720048711b064584" [[files]] file = "kubejs/server_scripts/mods/croptopia.js" @@ -707,7 +715,7 @@ hash = "93b1aee5ea41c226a2dd5e453824518ab0eeb6d15f649f0a74e5b0e4be9a2e17" [[files]] file = "kubejs/server_scripts/mods/powder_power.js" -hash = "ced0c73d8fb97517edc911f6c13f59895e1d5d00fbd70de919f2a417d8335c25" +hash = "097a39eae999417e3ac5bb94724654b04935cec220f22ab03e52c5d995438087" [[files]] file = "kubejs/server_scripts/mods/prettypipes.js" @@ -727,7 +735,7 @@ hash = "d37bfb9bc41aa46d0aa075dbe19a5eeb947b4ea3d8f13c03ac370cb00763d7a1" [[files]] file = "kubejs/server_scripts/mods/thermal.js" -hash = "b33f603a2121bc90e47b27680ee55655dca46c9d7b07d97d1c06698d0a1c762d" +hash = "b81ffc5905fe81de8d66015b0814714a8db8ecb6a4a2d927e600b328665c617a" [[files]] file = "kubejs/server_scripts/mods/torchmaster.js" @@ -747,7 +755,7 @@ hash = "4003082f31011049402ff31504a6db0f4fdd6c7076167109c66fa412286be462" [[files]] file = "kubejs/server_scripts/ore-processing.js" -hash = "c2d3d5b00a259d7109916ee9a9f6e46ad52a8084ed435d4bc2ccd69312eff0ce" +hash = "bb085e326aa85a8c8e86aac25f1a2a2c7fe53ebacb74d5de44b34769c73dc3e1" [[files]] file = "kubejs/server_scripts/progression/report.js" @@ -759,7 +767,7 @@ hash = "b443372ed45f43ba1d596455b9a5c9c3a90d9886012d253c091fb935970aae7a" [[files]] file = "kubejs/server_scripts/tags.js" -hash = "373b175bd3a2415b31f7b29b4b2075df82f2d059c8b120c09e8f6e6a862aa7b7" +hash = "94e9b3fcf597ee4eeeaaa4e596905f2be97ea5ff3b838d3530a33505cdeb2892" [[files]] file = "kubejs/startup_scripts/example.js" @@ -767,19 +775,19 @@ hash = "395c96d3ddd178821db851f387e91560e606ea752177f66d2016f12bd0542b8f" [[files]] file = "kubejs/startup_scripts/grist.js" -hash = "b79ebd1ba18eeb0dc59bb6b7ed375cf348edd90fa648f5759dd45f890db5f3d6" +hash = "d851746c6e7ae1c679f576b984662289c10e4195c0f52b459fd1ce3a83666ed4" [[files]] file = "kubejs/startup_scripts/init.js" -hash = "86b0c3c97240c008d6de87d66ff77a80e47a07c105e89d743cb74c9fdc1b031e" - -[[files]] -file = "kubejs/startup_scripts/jsconfig.json" -hash = "a9e6912b8515be242dd76c6c9a536a8d7c73f6b8b949787f538436ebeafbb7ee" +hash = "80483290133f2ab1a969008335c29758884b20e4611ffbfb4e4253f3207ef74a" [[files]] file = "kubejs/startup_scripts/progression-items.js" -hash = "3ae96e7bb9f83d1fd2d2af269ae5706f2fff283807c65ab3cbe197d8b69644b6" +hash = "eda5964bf26b3ea17ab806944e79c16007e525da8f3ba4d6222dcbb0437f9f90" + +[[files]] +file = "kubejs/startup_scripts/rarities.js" +hash = "6077f20a66943e6de311f5cccb465471633524cfb3584d207cc2f1cb2632d675" [[files]] file = "mods/ae2-things-forge.pw.toml" @@ -961,6 +969,11 @@ file = "mods/caelus.pw.toml" hash = "5155ae1ca2c606df2001422a48cd167d2449160d5fe12a302753dee69af7fe92" metafile = true +[[files]] +file = "mods/canary.pw.toml" +hash = "14481081a9e233f4ba57df8a77ce028184818143eae1c73b60749ea482c912e9" +metafile = true + [[files]] file = "mods/caupona.pw.toml" hash = "8517132706f5a99edaf7705b6a4c2c934972dabcacca279f6d8abdef874d9949" @@ -1091,9 +1104,14 @@ file = "mods/create-power-loader.pw.toml" hash = "255864fc7aa8e28619e5ddbf9094623bfcc9d6caa260bc0cd3d32b39d45a532f" metafile = true +[[files]] +file = "mods/create-railways-navigator.pw.toml" +hash = "00929d51a65b0b8c417691b3312fc858ccff50bce507fc1d1b85dc7a2b2df20b" +metafile = true + [[files]] file = "mods/create.pw.toml" -hash = "119d501c87aef8afa8cf89ed6f17499518c21240d7781f4331e3007e57957a79" +hash = "97f7c75ac9bf6ee2a4f15c0f1e3e4cd161f3d2e33f32ebf623811ac90b3c2a83" metafile = true [[files]] @@ -1126,6 +1144,11 @@ file = "mods/curios.pw.toml" hash = "68960354be9294d5761b636b94e4f54715119602e83c4dd107698021dbeca16b" metafile = true +[[files]] +file = "mods/custom-rarity.pw.toml" +hash = "9c1c5002ed732af9361b06b0f72de65f69d241c8bdec7a88579e66e7fd4f1645" +metafile = true + [[files]] file = "mods/cyclops-core.pw.toml" hash = "de937c84384b9e99dc858f1e68f1a34789e357e111dd74cf8d8ff87df2d0dc6f" @@ -1191,16 +1214,6 @@ file = "mods/dynamic-fps.pw.toml" hash = "62c8188f48d71d21bf114d4dcfbc35d1e3251456e07f2caef1a2457d2e2a2947" 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]] file = "mods/easy-villagers.pw.toml" hash = "9f9d2f8a99a2599ab346e2b3d2a6a70ffa5b1a41dd36f59bad5f14ee96f0e6fd" @@ -1711,6 +1724,11 @@ file = "mods/notrample.pw.toml" hash = "f08e47a8b608a67794114836dcefe16e07c853ca4271c2fa8def9bd84b58020e" metafile = true +[[files]] +file = "mods/obscure-tooltips.pw.toml" +hash = "fd65b1e838edc65558b89ae72af29051ac92997d1d6ef4260fc889dd350a826e" +metafile = true + [[files]] file = "mods/oceans-delight.pw.toml" hash = "57f6793fdca748db18eb33a34344f68804e881af07c5e032073d8b33ee683a54" @@ -1911,6 +1929,16 @@ file = "mods/smooth-chunk-save.pw.toml" hash = "a061b4f98461fc38b4ff6495b5e3a9b8708e9d87333c2cbb29e6b265053a5abe" 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]] file = "mods/sooty-chimneys.pw.toml" hash = "e8f11d351338010339f2bfe8d3a28e7b56fbb802b29c74f205490e46e2a5ea14" diff --git a/kubejs/startup_scripts/grist.js b/kubejs/startup_scripts/grist.js index c58ffde..08cce11 100755 --- a/kubejs/startup_scripts/grist.js +++ b/kubejs/startup_scripts/grist.js @@ -15,7 +15,6 @@ StartupEvents.registry('item', e => { console.log(`Create ${grist}`); e.create(grist.id()) .displayName(grist.displayName()) - .rarity('rare') .fireResistant(true) .textureJson({layer0: grist.itemTexture()}); }); diff --git a/kubejs/startup_scripts/init.js b/kubejs/startup_scripts/init.js index 3a8966b..5412b5c 100755 --- a/kubejs/startup_scripts/init.js +++ b/kubejs/startup_scripts/init.js @@ -22,9 +22,10 @@ function HSVtoRGB(h, s, v) { return `#${toHex(r)}${toHex(g)}${toHex(b)}`.toString(); } -function Tier(name, colorValue) { +function Tier(name, colorValue, rarity) { this.name = name; this.colorValue = colorValue; + this.rarity = rarity; }; Tier.prototype.displayName = function() { @@ -83,9 +84,9 @@ Grist.Primitives = [ // Color values are 0-1 floats Grist.Tiers = { - basic: new Tier('basic', 0.5), - improved: new Tier('improved', 0.75), - radiant: new Tier('radiant', 1.0) + basic: new Tier('basic', 0.5, 'uncommon'), + improved: new Tier('improved', 0.75, 'rare'), + radiant: new Tier('radiant', 1.0, 'epic') }; Grist.Tiers.forEach = function(f) { @@ -148,6 +149,14 @@ Grist.prototype.exact = function() { return this; }; +Grist.prototype.rarity = function() { + if (this.element == 'universal') { + return 'kubejs:legendary' + } else { + return this.tier.rarity; + } +} + Grist.prototype.color = function() { //return '#0d6aff'; if (this.element.hue == -1) { @@ -190,11 +199,20 @@ Grist.prototype.elementalTag = function() { }; Grist.prototype.tags = function() { - return [ - 'kubejs:grist', - this.tag(), - this.elementalTag() - ]; + if (this.state == 'item') { + return [ + 'kubejs:grist', + 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() { diff --git a/kubejs/startup_scripts/jsconfig.json b/kubejs/startup_scripts/jsconfig.json deleted file mode 100755 index a97546a..0000000 --- a/kubejs/startup_scripts/jsconfig.json +++ /dev/null @@ -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 - ] -} \ No newline at end of file diff --git a/kubejs/startup_scripts/progression-items.js b/kubejs/startup_scripts/progression-items.js index ee78543..bbc427c 100755 --- a/kubejs/startup_scripts/progression-items.js +++ b/kubejs/startup_scripts/progression-items.js @@ -13,7 +13,7 @@ StartupEvents.registry('fluid', 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 // Basic @@ -28,10 +28,10 @@ StartupEvents.registry('item', e => { e.create('intelligent_catalyst').displayName('Intelligent Catalyst').rarity('rare').textureJson({layer0: 'malloc:item/intelligent_catalyst'}); // Radiant - e.create('intelligent_processor').displayName('Intelligent Processor').rarity('rare').texture('malloc:item/intelligent_processor'); - e.create('raw_intelligent_processor').displayName('Raw Intelligent Processor').rarity('rare').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('raw_deep_intelligent_processor').displayName('Deep Raw Intelligent Processor').rarity('rare').texture('malloc:item/raw_deep_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('epic').texture('malloc:item/raw_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('epic').texture('malloc:item/raw_deep_intelligent_processor'); // Energetic progression // 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()); // Radiant - e.create('grist_crucible'); - e.create('grist_crucible_filled'); - e.create('grist_crucible_hot'); - e.create('tempered_grist_alloy_ingot'); - e.create('tempered_grist_alloy_nugget'); - e.create('perfect_grist_alloy_ingot'); - e.create('perfect_grist_alloy_nugget'); - e.create('flawed_grist_alloy_ingot'); - e.create('flawed_grist_alloy_nugget'); + e.create('grist_crucible').rarity('epic'); + e.create('grist_crucible_filled').rarity('epic'); + e.create('grist_crucible_hot').rarity('epic'); + e.create('tempered_grist_alloy_ingot').rarity('epic'); + e.create('tempered_grist_alloy_nugget').rarity('epic'); + e.create('perfect_grist_alloy_ingot').rarity('epic'); + e.create('perfect_grist_alloy_nugget').rarity('epic'); + e.create('flawed_grist_alloy_ingot').rarity('epic'); + e.create('flawed_grist_alloy_nugget').rarity('epic'); }); \ No newline at end of file diff --git a/kubejs/startup_scripts/rarities.js b/kubejs/startup_scripts/rarities.js new file mode 100644 index 0000000..ed2c462 --- /dev/null +++ b/kubejs/startup_scripts/rarities.js @@ -0,0 +1,75 @@ +// 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", "dark_yellow"); + // 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'); + + event.setRarityByMod('thermal', 'kubejs:build_grist'); + event.setRarityByMod('ironfurnaces', 'kubejs:build_grist'); + event.setRarityByMod('buildinggadgets2', 'epic'); + event.setRarity('create:crushing_wheel', 'kubejs:build_grist'); +}); \ No newline at end of file diff --git a/mods/custom-rarity.pw.toml b/mods/custom-rarity.pw.toml new file mode 100644 index 0000000..ecf8b9b --- /dev/null +++ b/mods/custom-rarity.pw.toml @@ -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 diff --git a/mods/obscure-tooltips.pw.toml b/mods/obscure-tooltips.pw.toml new file mode 100644 index 0000000..9755626 --- /dev/null +++ b/mods/obscure-tooltips.pw.toml @@ -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 diff --git a/pack.toml b/pack.toml index a84553c..2371b57 100644 --- a/pack.toml +++ b/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "4170d8bbe4ddaff347c3caa5b2c37a9e1cfe163e6d9b4d13d83425a15f5ee90e" +hash = "39ea775ae65074e1f92ce8ee0d1d802bc37c0a2a777cc16c4543a3d779bead98" [versions] forge = "47.4.0"