From 3e7e7745066bff97db1436131648d6b923fb6709 Mon Sep 17 00:00:00 2001 From: sheepdotcom <141453189+sheepdotcom@users.noreply.github.com> Date: Wed, 20 Nov 2024 17:19:27 -0500 Subject: [PATCH] new feature no way --- README.md | 1 + about.md | 4 +++- changelog.md | 7 +++++-- mod.json | 8 +++++++- src/main.cpp | 37 +++++++++++++++++++++++++++++-------- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 10fb2ea..d54d8e0 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,4 @@ This is where she makes a mod. the mod's logo *Update logo.png to change your mod's icon (please)* +I'm not an artist shut up diff --git a/about.md b/about.md index 9fb371f..920e46b 100644 --- a/about.md +++ b/about.md @@ -1,3 +1,5 @@ # Geode UI Tweaks -Tweak the Geode Mod List UI a bit. \ No newline at end of file +Tweak the Geode Mod List UI a bit. + +(May or may not be more than a bit soon enough) \ No newline at end of file diff --git a/changelog.md b/changelog.md index 9f04fab..146c42f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,2 +1,5 @@ -# 1.0.0 -- Edit this file to change your mod's changelog. +# v0.0.1 + +- Transparent Lists +- Larger Logos +- Fix Mod Info Size \ No newline at end of file diff --git a/mod.json b/mod.json index eb0677f..e08deed 100644 --- a/mod.json +++ b/mod.json @@ -1,5 +1,5 @@ { - "geode": "4.0.0-beta.1", + "geode": "4.0.1", "gd": { "win": "2.2074", "android": "2.2074", @@ -27,6 +27,12 @@ "description": "Increases the size of the logos on mod items.", "type": "bool", "default": false + }, + "fix-mod-info-size": { + "name": "Fix Mod Info Size", + "description": "Increases the width of the info container to extend all the way to the download count.", + "type": "bool", + "default": false } } } diff --git a/src/main.cpp b/src/main.cpp index 92f43db..18cbf77 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,6 +13,9 @@ bool isGeodeTheme(bool forceDisableTheme = false) { return !forceDisableTheme && Loader::get()->getInstalledMod("geode.loader")->getSettingValue("enable-geode-theme"); } +// Soooo about the indentations, uh nullptr checking i guess? dont want game to randomly crash! +// Also getting certain things might be wierd but like i dont wanna make hacky way around a private class and private members + void modsLayerModify(CCNode* modsLayer) { auto mod = Mod::get(); if (auto modListFrame = modsLayer->getChildByID("mod-list-frame")) { @@ -51,29 +54,31 @@ void modsLayerModify(CCNode* modsLayer) { if (node->getID() == "ModItem") { if (auto bg = static_cast(node->getChildByID("bg"))) { if (mod->getSettingValue("transparent-lists")) { - if ((bg->getColor() == ccColor3B{255, 255, 255} && bg->getOpacity() == 25) || (bg->getColor() == ccColor3B{0, 0, 0} && bg->getOpacity() == 90)) { // Enabled + auto rgb = bg->getColor(); + auto color = ccColor4B{rgb.b, rgb.g, rgb.b, bg->getOpacity()}; + if (color == ccColor4B{255, 255, 255, 25} || color == ccColor4B{0, 0, 0, 90}) { // Enabled bg->setOpacity(isGeodeTheme() ? 50 : 90); bg->setColor(ccColor3B{0, 0, 0}); } - else if (bg->getColor() == ccColor3B{153, 245, 245} && bg->getOpacity() == 25) { // Restart Required + else if (color == ccColor4B{153, 245, 245, 25}) { // Restart Required bg->setOpacity(90); - bg->setColor(ccColor3B{245, 27, 27}); + bg->setColor(ccColor3B{123, 156, 163}); } - else if (bg->getColor() == ccColor3B{255, 255, 255} && bg->getOpacity() == 10) { // Disabled + else if (color == ccColor4B{255, 255, 255, 10}) { // Disabled bg->setOpacity(50); bg->setColor(ccColor3B{205, 205, 205}); } - else if (bg->getColor() == ccColor3B{235, 35, 112} && bg->getOpacity() == 25) { // Error + else if (color == ccColor4B{235, 35, 112, 25}) { // Error bg->setOpacity(90); bg->setColor(ccColor3B{245, 27, 27}); } - else if (bg->getColor() == ccColor3B{245, 153, 245} && bg->getOpacity() == 25) { // Outdated + else if (color == ccColor4B{245, 153, 245, 25}) { // Outdated bg->setOpacity(90); } - else if (bg->getColor() == ccColor3B{240, 211, 42} && bg->getOpacity() == 65) { // Featured + else if (color == ccColor4B{240, 211, 42, 65}) { // Featured bg->setOpacity(90); } - else if (bg->getColor() == ccColor3B{63, 91, 138} && bg->getOpacity() == 85) { // Modtober + else if (color == ccColor4B{63, 91, 138, 85}) { // Modtober bg->setOpacity(90); bg->setColor(ccColor3B{32, 102, 220}); } @@ -86,6 +91,20 @@ void modsLayerModify(CCNode* modsLayer) { logoSprite->setScale(logoSprite->getScale() == 0.7f ? 0.6f : 0.4f); } } + if (auto infoContainer = node->getChildByID("info-container")) { + if (mod->getSettingValue("fix-mod-info-size")) { + auto titleContainer = infoContainer->querySelector("title-container"); + auto developersMenu = infoContainer->querySelector("developers-menu"); + if (titleContainer && developersMenu) { + infoContainer->setContentWidth(525.f); + infoContainer->updateLayout(); + titleContainer->setContentWidth(525.f); + titleContainer->updateLayout(); + developersMenu->setContentWidth(525.f); + developersMenu->updateLayout(); + } + } + } } } } @@ -140,6 +159,8 @@ class $modify(CCScheduler) { } }; +// Imagine using geode's little ui events (they also dont work for my problems hehe) + /*$execute { new EventListener>(+[](ModItemUIEvent* event) { auto mod = Mod::get();