mirror of
https://github.com/geode-sdk/geode.git
synced 2025-03-23 03:15:58 -04:00
make server mods have a little bit of a different color
This commit is contained in:
parent
98e174ac10
commit
560b42c8de
13 changed files with 28 additions and 12 deletions
|
@ -29,6 +29,7 @@ namespace geode {
|
|||
Blue = 3,
|
||||
Cyan = 4,
|
||||
DarkPurple = 5, // Geode-added color, used in Geode UIs
|
||||
DarkAqua = 6, // Geode-added color, used in Geode UIs
|
||||
};
|
||||
GEODE_DLL const char* baseEnumToString(CircleBaseColor);
|
||||
|
||||
|
|
BIN
loader/resources/blanks/baseCircle_BigAlt_DarkAqua.png
Normal file
BIN
loader/resources/blanks/baseCircle_BigAlt_DarkAqua.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 20 KiB |
BIN
loader/resources/blanks/baseCircle_Large_DarkAqua.png
Normal file
BIN
loader/resources/blanks/baseCircle_Large_DarkAqua.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 27 KiB |
BIN
loader/resources/blanks/baseCircle_MediumAlt_DarkAqua.png
Normal file
BIN
loader/resources/blanks/baseCircle_MediumAlt_DarkAqua.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 16 KiB |
BIN
loader/resources/blanks/baseCircle_Medium_DarkAqua.png
Normal file
BIN
loader/resources/blanks/baseCircle_Medium_DarkAqua.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 15 KiB |
BIN
loader/resources/blanks/baseCircle_SmallAlt_DarkAqua.png
Normal file
BIN
loader/resources/blanks/baseCircle_SmallAlt_DarkAqua.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 13 KiB |
BIN
loader/resources/blanks/baseCircle_Small_DarkAqua.png
Normal file
BIN
loader/resources/blanks/baseCircle_Small_DarkAqua.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 12 KiB |
BIN
loader/resources/blanks/baseCircle_Tiny_DarkAqua.png
Normal file
BIN
loader/resources/blanks/baseCircle_Tiny_DarkAqua.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 8.1 KiB |
BIN
loader/resources/images/GE_square02.png
Normal file
BIN
loader/resources/images/GE_square02.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 21 KiB |
|
@ -8,6 +8,8 @@ $execute {
|
|||
ColorProvider::get()->define("mod-list-restart-required-label"_spr, ccc3(153, 245, 245));
|
||||
ColorProvider::get()->define("mod-list-restart-required-label-bg"_spr, ccc3(123, 156, 163));
|
||||
ColorProvider::get()->define("mod-list-search-bg"_spr, { 83, 65, 109, 255 });
|
||||
ColorProvider::get()->define("mod-list-tab-selected-bg"_spr, { 168, 147, 185, 255 });
|
||||
ColorProvider::get()->define("mod-list-tab-selected-bg-alt"_spr, { 147, 163, 185, 255 });
|
||||
}
|
||||
|
||||
bool GeodeSquareSprite::init(CCSprite* top, bool* state) {
|
||||
|
@ -101,7 +103,7 @@ std::pair<ccColor3B, ccColor3B> geodeTagColor(std::string_view const& text) {
|
|||
return TAG_COLORS[hash(text) % 5932 % TAG_COLORS.size()];
|
||||
}
|
||||
|
||||
bool GeodeTabSprite::init(const char* iconFrame, const char* text, float width) {
|
||||
bool GeodeTabSprite::init(const char* iconFrame, const char* text, float width, bool altColor) {
|
||||
if (!CCNode::init())
|
||||
return false;
|
||||
|
||||
|
@ -120,7 +122,11 @@ bool GeodeTabSprite::init(const char* iconFrame, const char* text, float width)
|
|||
m_selectedBG = CCScale9Sprite::createWithSpriteFrameName("tab-bg.png"_spr);
|
||||
m_selectedBG->setScale(.8f);
|
||||
m_selectedBG->setContentSize(itemSize / .8f);
|
||||
m_selectedBG->setColor({ 168, 147, 185 });
|
||||
m_selectedBG->setColor(to3B(ColorProvider::get()->color(
|
||||
altColor ?
|
||||
"mod-list-tab-selected-bg-alt"_spr :
|
||||
"mod-list-tab-selected-bg"_spr
|
||||
)));
|
||||
this->addChildAtPosition(m_selectedBG, Anchor::Center);
|
||||
|
||||
m_icon = CCSprite::createWithSpriteFrameName(iconFrame);
|
||||
|
@ -135,9 +141,9 @@ bool GeodeTabSprite::init(const char* iconFrame, const char* text, float width)
|
|||
return true;
|
||||
}
|
||||
|
||||
GeodeTabSprite* GeodeTabSprite::create(const char* iconFrame, const char* text, float width) {
|
||||
GeodeTabSprite* GeodeTabSprite::create(const char* iconFrame, const char* text, float width, bool altColor) {
|
||||
auto ret = new GeodeTabSprite();
|
||||
if (ret && ret->init(iconFrame, text, width)) {
|
||||
if (ret && ret->init(iconFrame, text, width, altColor)) {
|
||||
ret->autorelease();
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -9,15 +9,22 @@ using namespace geode::prelude;
|
|||
template <class... Args>
|
||||
class GeodePopup : public Popup<Args...> {
|
||||
protected:
|
||||
bool init(float width, float height, Args... args) {
|
||||
if (!Popup<Args...>::initAnchored(width, height, std::forward<Args>(args)..., "GE_square01.png"_spr))
|
||||
bool init(float width, float height, Args... args, bool altBG = false) {
|
||||
if (!Popup<Args...>::initAnchored(width, height, std::forward<Args>(args)..., (altBG ? "GE_square02.png"_spr : "GE_square01.png"_spr)))
|
||||
return false;
|
||||
|
||||
// Replace the close button with a Geode style one
|
||||
// Store original attributes of the close button
|
||||
auto origSize = Popup<Args...>::m_closeBtn->getContentSize();
|
||||
auto orig = Ref(Popup<Args...>::m_closeBtn->getNormalImage());
|
||||
auto spr = CircleButtonSprite::createWithSpriteFrameName("close.png"_spr, 1.f, CircleBaseColor::DarkPurple);
|
||||
|
||||
// Replace the close button with a Geode style one
|
||||
auto spr = CircleButtonSprite::createWithSpriteFrameName(
|
||||
"close.png"_spr, 1.f,
|
||||
(altBG ? CircleBaseColor::DarkAqua : CircleBaseColor::DarkPurple)
|
||||
);
|
||||
Popup<Args...>::m_closeBtn->setNormalImage(spr);
|
||||
|
||||
// Restore size and position
|
||||
spr->setScale(orig->getScale());
|
||||
spr->setPosition(orig->getPosition());
|
||||
spr->setAnchorPoint(orig->getAnchorPoint());
|
||||
|
@ -57,10 +64,10 @@ protected:
|
|||
CCSprite* m_icon;
|
||||
CCLabelBMFont* m_label;
|
||||
|
||||
bool init(const char* iconFrame, const char* text, float width);
|
||||
bool init(const char* iconFrame, const char* text, float width, bool altColor);
|
||||
|
||||
public:
|
||||
static GeodeTabSprite* create(const char* iconFrame, const char* text, float width);
|
||||
static GeodeTabSprite* create(const char* iconFrame, const char* text, float width, bool altColor = false);
|
||||
|
||||
void select(bool selected);
|
||||
void disable(bool disabled);
|
||||
|
|
|
@ -400,7 +400,7 @@ bool ModPopup::setup(ModSource&& src) {
|
|||
{ "changelog.png"_spr, "Changelog", Tab::Changelog },
|
||||
{ "version.png"_spr, "Versions", Tab::Versions },
|
||||
}) {
|
||||
auto spr = GeodeTabSprite::create(std::get<0>(mdTab), std::get<1>(mdTab), 140);
|
||||
auto spr = GeodeTabSprite::create(std::get<0>(mdTab), std::get<1>(mdTab), 140, m_source.asServer());
|
||||
auto btn = CCMenuItemSpriteExtra::create(spr, this, menu_selector(ModPopup::onTab));
|
||||
btn->setTag(static_cast<int>(std::get<2>(mdTab)));
|
||||
tabsMenu->addChild(btn);
|
||||
|
@ -685,7 +685,8 @@ void ModPopup::onSupport(CCObject*) {
|
|||
|
||||
ModPopup* ModPopup::create(ModSource&& src) {
|
||||
auto ret = new ModPopup();
|
||||
if (ret && ret->init(440, 280, std::move(src))) {
|
||||
bool isServer = src.asServer();
|
||||
if (ret && ret->init(440, 280, std::move(src), isServer)) {
|
||||
ret->autorelease();
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ const char* geode::baseEnumToString(CircleBaseColor value) {
|
|||
case CircleBaseColor::Blue: return "Blue";
|
||||
case CircleBaseColor::Cyan: return "Cyan";
|
||||
case CircleBaseColor::DarkPurple: return "DarkPurple";
|
||||
case CircleBaseColor::DarkAqua: return "DarkAqua";
|
||||
}
|
||||
return "Unknown";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue