Skip to content

Commit 9a4c0b8

Browse files
committed
changes
1 parent 7e3ab38 commit 9a4c0b8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+179
-65
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class $modify(MyCreatorLayer, CreatorLayer) {
5353

5454
auto swelvyBG = SwelvyBG::create();
5555
swelvyBG->setZOrder(-2);
56-
swelvyBG->setID("swelvy-background");
56+
5757

5858
this->addChild(swelvyBG);
5959
}
@@ -80,7 +80,7 @@ HookClass(GlobedLevelListLayer) {
8080

8181
SwelvyBG* swelvyBG = SwelvyBG::create();
8282
swelvyBG->setZOrder(-1);
83-
swelvyBG->setID("swelvy-background");
83+
8484
this->addChild(swelvyBG);
8585
}
8686

@@ -104,7 +104,7 @@ HookClass_Scene(cvolton_betterinfo_CustomCreatorLayer,"cvolton.betterinfo/Custom
104104
bg->setVisible(false);
105105
SwelvyBG* swelvyBG = SwelvyBG::create();
106106
swelvyBG->setZOrder(-1);
107-
swelvyBG->setID("swelvy-background");
107+
108108
_This->addChild(swelvyBG);
109109
}
110110
}

mod.json

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,20 @@
1212
"description": "Converts most menus' backgrounds to the Geode one (SwelvyBG).",
1313
"early-load": true,
1414
"resources": {
15-
"sprites": [
16-
"res/previews/*.png"
17-
],
15+
"spritesheets": {
16+
"previewSheet": [
17+
"res/previews/*.png"
18+
]
19+
},
1820
"files": [
1921
"res/layers.json"
2022
]
2123
},
2224
"settings": {
25+
"color-title": {
26+
"type": "title",
27+
"name": "Color Offset Settings"
28+
},
2329
"enable-color": {
2430
"name": "Enable Color Offset",
2531
"description": "Enables color offset for the SwelvyBG.",
@@ -68,6 +74,10 @@
6874
"default": "113,74,154",
6975
"enable-if": "enable-color"
7076
},
77+
"gd-title": {
78+
"type": "title",
79+
"name": "Geometry Dash"
80+
},
7181
"show-main": {
7282
"name": "Show in main menu",
7383
"description": "MenuLayer",
@@ -194,6 +204,10 @@
194204
"type": "bool",
195205
"default": true
196206
},
207+
"mods-title": {
208+
"type": "title",
209+
"name": "Mods Settings"
210+
},
197211
"external-mods": {
198212
"name": "external mods",
199213
"description": "For external mod layers",

src/SwelvyBG.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ bool SwelvyBG::init(float widthmult, float hightmult, float minspeed, float maxs
1111
auto winSize = CCDirector::get()->getWinSize();
1212
this->setContentSize(winSize);
1313
this->setAnchorPoint({ 0.f, 0.f });
14+
this->setID("swelvy-background"_spr);
1415

1516
std::random_device rd;
1617
std::mt19937 gen(rd());

src/layers/GYModTile.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#include <Geode/Geode.hpp>
2+
3+
#include "GYModTile.hpp"
4+
5+
using namespace geode::prelude;
6+
7+
GYModTile* GYModTile::create() {
8+
GYModTile* ret = new GYModTile();
9+
if (ret && ret->init()) {
10+
ret->autorelease();
11+
return ret;
12+
}
13+
delete ret;
14+
return nullptr;
15+
}
16+
17+
bool GYModTile::init() {
18+
if (!CCLayer::init())
19+
return false;
20+
21+
setMouseEnabled(true);
22+
23+
auto winSize = CCDirector::sharedDirector()->getWinSize();
24+
25+
this->setContentSize({ winSize.width * 0.325f, winSize.height * 0.4f });
26+
27+
// GJ_square04.png - The purple one
28+
auto bg = CCScale9Sprite::create("GJ_square04.png");
29+
bg->setContentSize(this->getContentSize());
30+
bg->setAnchorPoint({ 0.f, 0.f});
31+
this->addChild(bg);
32+
33+
return true;
34+
}

src/layers/GYModTile.hpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#pragma once
2+
3+
#include <Geode/Geode.hpp>
4+
5+
using namespace geode::prelude;
6+
7+
class GYModTile : public CCLayer {
8+
public:
9+
static GYModTile* create();
10+
bool init();
11+
};

src/layers/GYSettingSelectLayer.cpp

Lines changed: 66 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <Geode/Geode.hpp>
22
#include <Geode/ui/ScrollLayer.hpp>
3-
#include "../json.hpp"
3+
#include <Geode/ui/GeodeUI.hpp>
4+
#include <Geode/ui/BasedButtonSprite.hpp>
45
#include <filesystem>
56
#include <fstream>
67
#include <sstream>
@@ -10,6 +11,8 @@
1011

1112
#include "GYSettingSelectLayer.hpp"
1213
#include "GYScreenshotPopup.hpp"
14+
#include "GYModTile.hpp"
15+
#include "../json.hpp"
1316

1417
using namespace geode::prelude;
1518

@@ -51,6 +54,10 @@ void GYSettingSelectLayer::settingsBtn(CCObject* sender) {
5154
CCDirector::sharedDirector()->pushScene(scenePrev);
5255
}
5356

57+
void GYSettingSelectLayer::openNormalSettings(CCObject* sender) {
58+
openSettingsPopup(Mod::get());
59+
}
60+
5461
bool GYSettingSelectLayer::init() {
5562
if (!CCLayer::init())
5663
return false;
@@ -70,6 +77,19 @@ bool GYSettingSelectLayer::init() {
7077
background->setPosition({ winSize.width / 2, winSize.height / 2 });
7178
this->addChild(background);
7279

80+
auto cornerLeft = CCSprite::createWithSpriteFrameName("GJ_sideArt_001.png");
81+
cornerLeft->setPosition(CCPoint(winSize.width * 0, winSize.height * 0));
82+
cornerLeft->setAnchorPoint(CCPoint(0, 0));
83+
cornerLeft->setID("corner-left");
84+
this->addChild(cornerLeft);
85+
86+
auto cornerRight = CCSprite::createWithSpriteFrameName("GJ_sideArt_001.png");
87+
cornerRight->setPosition(CCPoint(winSize.width * 1, winSize.height * 0));
88+
cornerRight->setAnchorPoint(CCPoint(1, 0));
89+
cornerRight->setFlipX(true);
90+
cornerRight->setID("corner-right");
91+
this->addChild(cornerRight);
92+
7393
auto backBtn = CCMenuItemSpriteExtra::create(
7494
CCSprite::createWithSpriteFrameName("GJ_arrow_01_001.png"),
7595
this,
@@ -86,11 +106,17 @@ bool GYSettingSelectLayer::init() {
86106

87107
auto contentBox = CCScale9Sprite::create("GJ_square01.png");
88108
contentBox->setContentSize({ winSize.width * 0.7f, winSize.height * 0.7f });
89-
contentBox->setPosition({ winSize.width / 2, (winSize.height / 2) - (winSize.height * 0.05f) });
109+
contentBox->setPosition({ winSize.width / 2, winSize.height / 2 - winSize.height * 0.05f });
90110
contentBox->setAnchorPoint({ 0.5f, 0.5f });
91111
contentBox->setID("content-box");
92112
this->addChild(contentBox);
93113

114+
ScrollLayer* scroll = ScrollLayer::create({ winSize.width * 0.7f, winSize.height * 0.7f }, true, true);
115+
scroll->setID("scroll");
116+
contentBox->addChild(scroll);
117+
118+
scroll->m_contentLayer->setLayout(ColumnLayout::create()->setAxisReverse(true));
119+
94120
auto leftMenu = CCMenu::create();
95121
leftMenu->setAnchorPoint({ 0, 0 });
96122
leftMenu->setContentSize({ 0.f, winSize.height * 0.6f });
@@ -111,21 +137,41 @@ bool GYSettingSelectLayer::init() {
111137
menu_selector(GYSettingSelectLayer::generateWrapper)
112138
);
113139
colorBtn->setID("color-button");
114-
115140
leftMenu->addChild(colorBtn);
116141

117-
leftMenu->updateLayout();
142+
auto settingsBtn = CCMenuItemSpriteExtra::create(
143+
CircleButtonSprite::create(
144+
CCSprite::createWithSpriteFrameName("geode.loader/settings.png"),
145+
CircleBaseColor::DarkPurple,
146+
CircleBaseSize::Medium
147+
),
148+
this,
149+
menu_selector(GYSettingSelectLayer::openNormalSettings)
150+
);
151+
settingsBtn->setID("settings-button");
152+
leftMenu->addChild(settingsBtn);
118153

119-
// auto testBtn = CCMenuItemSpriteExtra::create(
120-
// CCSprite::createWithSpriteFrameName(
121-
// "GJ_paintBtn_001.png"
122-
// ),
123-
// this,
124-
// menu_selector(GYSettingSelectLayer::popup)
125-
// );
154+
leftMenu->updateLayout();
126155

127-
// testBtn->setPosition(winSize.width * 0.5, winSize.height * 0.5);
128-
// menu->addChild(testBtn);
156+
scroll->m_contentLayer->addChild(GYModTile::create());
157+
scroll->m_contentLayer->addChild(GYModTile::create());
158+
scroll->m_contentLayer->addChild(GYModTile::create());
159+
scroll->m_contentLayer->addChild(GYModTile::create());
160+
scroll->m_contentLayer->addChild(GYModTile::create());
161+
scroll->m_contentLayer->addChild(GYModTile::create());
162+
scroll->m_contentLayer->addChild(GYModTile::create());
163+
scroll->m_contentLayer->addChild(GYModTile::create());
164+
scroll->m_contentLayer->addChild(GYModTile::create());
165+
scroll->m_contentLayer->addChild(GYModTile::create());
166+
scroll->m_contentLayer->addChild(GYModTile::create());
167+
scroll->m_contentLayer->addChild(GYModTile::create());
168+
scroll->m_contentLayer->addChild(GYModTile::create());
169+
scroll->m_contentLayer->addChild(GYModTile::create());
170+
scroll->m_contentLayer->addChild(GYModTile::create());
171+
scroll->m_contentLayer->addChild(GYModTile::create());
172+
scroll->m_contentLayer->addChild(GYModTile::create());
173+
174+
GYSettingSelectLayer::generateModsList();
129175

130176
this->addChild(leftMenu);
131177
this->addChild(menu);
@@ -227,5 +273,12 @@ bool GYSettingSelectLayer::generateModsList() {
227273
log::warn("No valid 'layers' data found in JSON");
228274
}
229275

276+
ScrollLayer* scroll = typeinfo_cast<ScrollLayer*>(this->getChildByID("content-box")->getChildByID("scroll"));
277+
if (!scroll) {
278+
log::error("Failed to cast content-box->scroll to ScrollLayer");
279+
return false;
280+
}
281+
scroll->m_contentLayer->updateLayout();
282+
230283
return true;
231284
}

src/layers/GYSettingSelectLayer.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ class GYSettingSelectLayer : public CCLayer {
1313
void settingsBtn(CCObject* sender);
1414
void backWrapper(CCObject* sender);
1515
void generateWrapper(CCObject* sender);
16+
void openNormalSettings(CCObject* sender);
1617
bool generateModsList();
1718
};

src/modify/CreatorLayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class $modify(MyCreatorLayer, CreatorLayer) {
1616

1717
auto swelvyBG = SwelvyBG::create();
1818
swelvyBG->setZOrder(-2);
19-
swelvyBG->setID("swelvy-background");
19+
2020

2121
this->addChild(swelvyBG);
2222
}

src/modify/EditLevelLayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class $modify(MyEditLevelLayer, EditLevelLayer) {
3030

3131
auto swelvyBG = SwelvyBG::create();
3232
swelvyBG->setZOrder(-2);
33-
swelvyBG->setID("swelvy-background");
33+
3434

3535
this->addChild(swelvyBG);
3636
}

src/modify/GJGarageLayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class $modify(MyGJGarageLayer, GJGarageLayer) {
1616

1717
auto swelvyBG = SwelvyBG::create();
1818
swelvyBG->setZOrder(-2);
19-
swelvyBG->setID("swelvy-background");
19+
2020

2121
this->addChild(swelvyBG);
2222
}

0 commit comments

Comments
 (0)