Skip to content

Commit 5e937ab

Browse files
committed
for #dev-chat
1 parent f7bb7b4 commit 5e937ab

File tree

7 files changed

+110
-1
lines changed

7 files changed

+110
-1
lines changed

changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# v1.7.0 (the ninxout update)
22

33
- Added ninXout's Geode menu loop
4+
- Refactored code
45

56
# v1.6.0
67

mod.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
"description": "Converts most menus' backgrounds to the Geode one (SwelvyBG).",
1313
"early-load": true,
1414
"resources": {
15-
"sprites": ["res/*.png"]
15+
"spritesheets": {
16+
"GY_modsSheet": [
17+
"res/GY_modsSheet/*.png"
18+
]
19+
}
1620
},
1721
"settings": {
1822
"enable-color": {
46.3 KB
Loading

src/CustomSettingLayer.cpp

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#include <Geode/Geode.hpp>
2+
#include <Geode/ui/GeodeUI.hpp>
3+
#include <Geode/Loader.hpp>
4+
#include "layers/GYSettingSelectLayer.hpp"
5+
6+
using namespace geode::prelude;
7+
8+
$execute {
9+
new EventListener<EventFilter<ModPopupUIEvent>>(+[](ModPopupUIEvent* event) {
10+
if (event->getModID() == "omgrod.geodify") {
11+
auto popup = event->getPopup();
12+
13+
if (popup) {
14+
if (CCMenuItemSpriteExtra* btn = typeinfo_cast<CCMenuItemSpriteExtra*>(popup->getChildByIDRecursive("settings-button"))) {
15+
btn->m_pfnSelector = menu_selector(GYSettingSelectLayer::settingsBtn); // this code sucks - it keeps crashing. im sorry if creating a fake button is a bit too much
16+
17+
// CCSprite* settings = CCSprite::create("geode.loader/settings.png");
18+
// CircleButtonSprite* settingsBtn = nullptr;
19+
20+
// if (Loader::get()->getLoadedMod("geode.loader")->getSettingValue<bool>("enable-geode-theme")) {
21+
// settingsBtn = CircleButtonSprite::create(settings, CircleBaseColor::DarkPurple, CircleBaseSize::SmallAlt);
22+
// } else {
23+
// settingsBtn = CircleButtonSprite::create(settings, CircleBaseColor::Green, CircleBaseSize::SmallAlt);
24+
// }
25+
26+
// btn->setVisible(false);
27+
28+
// auto newBtn = CCMenuItemSpriteExtra::create(settingsBtn, nullptr, );
29+
// newBtn->setID("settings-button-geodify");
30+
// newBtn->setPosition(btn->getPosition());
31+
// newBtn->setAnchorPoint(btn->getAnchorPoint());
32+
// newBtn->setScale(btn->getScale());
33+
// btn->getParent()->addChild(newBtn);
34+
}
35+
}
36+
}
37+
return ListenerResult::Propagate;
38+
});
39+
}

src/GeodeLoop.cpp

Whitespace-only changes.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include <Geode/Geode.hpp>
2+
3+
#include "GYSettingSelectLayer.hpp"
4+
5+
using namespace geode::prelude;
6+
7+
void GYSettingSelectLayer::KeyBackClicked() {
8+
CCDirector::get()->popScene();
9+
}
10+
11+
CCScene* GYSettingSelectLayer::scene() {
12+
auto scene = CCScene::create();
13+
scene->addChild(GYSettingSelectLayer::create());
14+
return scene;
15+
}
16+
17+
GYSettingSelectLayer* GYSettingSelectLayer::create() {
18+
GYSettingSelectLayer* ret = new GYSettingSelectLayer();
19+
if (ret && ret->init()) {
20+
ret->autorelease();
21+
return ret;
22+
}
23+
delete ret;
24+
return nullptr;
25+
}
26+
27+
void GYSettingSelectLayer::settingsBtn(CCObject*) {
28+
auto scenePrev = CCTransitionFade::create(0.5f, GYSettingSelectLayer::scene());
29+
CCDirector::sharedDirector()->pushScene(scenePrev);
30+
}
31+
32+
bool GYSettingSelectLayer::init() {
33+
if (!GYSettingSelectLayer::init())
34+
return false;
35+
36+
setKeyboardEnabled(true);
37+
38+
auto winSize = CCDirector::sharedDirector()->getWinSize();
39+
auto menu = CCMenu::create();
40+
41+
auto background = CCSprite::create("GJ_gradientBG.png");
42+
background->setScaleX(CCDirector::sharedDirector()->getWinSize().width / background->getContentSize().width);
43+
background->setScaleY(CCDirector::sharedDirector()->getWinSize().height / background->getContentSize().height);
44+
background->setZOrder(-1);
45+
background->setColor({ 0, 102, 255 });
46+
background->setID("background");
47+
background->setPosition({ 0.f, 0.f });
48+
this->addChild(background);
49+
50+
return true;
51+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pragma once
2+
3+
#include <Geode/Geode.hpp>
4+
5+
using namespace geode::prelude;
6+
7+
class GYSettingSelectLayer : public CCLayer {
8+
public:
9+
virtual void KeyBackClicked();
10+
static CCScene* scene();
11+
static GYSettingSelectLayer* create();
12+
bool init();
13+
void settingsBtn(CCObject*);
14+
};

0 commit comments

Comments
 (0)