Skip to content

Commit 0459b5a

Browse files
committed
asdf
1 parent d1a97b3 commit 0459b5a

File tree

4 files changed

+89
-42
lines changed

4 files changed

+89
-42
lines changed

changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 2.3.1
2+
3+
- Added Rounded Corners (optional)
4+
15
# 2.3.0
26

37
- Added 2.206 support

mod.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"mac": "2.206",
66
"android": "*"
77
},
8-
"version": "v2.3.0",
8+
"version": "v2.3.1",
99
"id": "thesillydoggo.gradientpages",
1010
"name": "Gradient Pages",
1111
"developer": "TheSillyDoggo",
@@ -32,6 +32,12 @@
3232
"type": "bool",
3333
"default": true
3434
},
35+
"rounded-corners": {
36+
"name": "Rounded Corners",
37+
"description": "Rounds the corners on profiles",
38+
"type": "bool",
39+
"default": true
40+
},
3541
"apply-profiles": {
3642
"name": "Apply to Profiles",
3743
"description": "Should it apply a gradient to profile pages?",

resources/square-fill-rounded.png

2.55 KB
Loading

src/main.cpp

Lines changed: 78 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,19 @@ class GradientPages
2626

2727
static CCNode* createGradientWithSize(CCPoint size, GJUserScore* score = nullptr)
2828
{
29+
auto node = CCNode::create();
30+
node->setID("gradient-container"_spr);
31+
node->setPosition(CCDirector::get()->getWinSize() / 2);
32+
node->setAnchorPoint(ccp(0.5f, 0.5f));
33+
node->setContentSize(size);
34+
node->setZOrder(-69);
35+
2936
auto gradient = CCLayerGradient::create();
3037
gradient->setContentSize(size);
31-
gradient->setZOrder(-69);
38+
gradient->setPosition(ccp(0, 0));
39+
gradient->setAnchorPoint(ccp(0, 0));
3240
gradient->setID("gradient"_spr);
41+
gradient->ignoreAnchorPointForPosition(false);
3342

3443
if (Mod::get()->getSettingValue<bool>("use-custom-colours"))
3544
{
@@ -42,9 +51,6 @@ class GradientPages
4251
gradient->setEndColor(GameManager::get()->colorForIdx(GameManager::get()->m_playerColor2.value()));
4352
}
4453

45-
gradient->setPosition(CCDirector::get()->getWinSize() / 2);
46-
gradient->ignoreAnchorPointForPosition(false);
47-
4854
if (score)
4955
{
5056
gradient->setStartColor(GameManager::sharedState()->colorForIdx(score->m_color1));
@@ -54,22 +60,34 @@ class GradientPages
5460
if (Mod::get()->getSettingValue<bool>("reverse-order"))
5561
gradient->setScaleY(-1);
5662

57-
auto darken = CCScale9Sprite::createWithSpriteFrameName("square-fill.png"_spr);
63+
auto darken = CCScale9Sprite::createWithSpriteFrameName(Mod::get()->getSettingValue<bool>("rounded-corners") ? "square-fill-rounded.png"_spr : "square-fill.png"_spr);
5864
darken->setID("darken"_spr);
5965
darken->setContentSize(size - ccp(15, 15));
6066
darken->setZOrder(0);
6167
darken->setPosition(size / 2);
6268

63-
auto outline = CCScale9Sprite::createWithSpriteFrameName("square-outline.png"_spr);
69+
auto outline = Mod::get()->getSettingValue<bool>("rounded-corners") ? CCScale9Sprite::create("GJ_square07.png") : CCScale9Sprite::createWithSpriteFrameName("square-outline.png"_spr);
6470
outline->setPosition(size / 2);
6571
outline->setContentSize(size);
6672
outline->setZOrder(1);
6773
outline->setID("outline"_spr);
68-
69-
gradient->addChild(darken);
70-
gradient->addChild(outline);
7174

72-
return gradient;
75+
auto gg = CCScale9Sprite::create(Mod::get()->getSettingValue<bool>("rounded-corners") ? "GJ_square01.png" : "GJ_gradientBG.png");
76+
gg->setContentSize(size - ccp(3, 3));
77+
gg->setPosition(ccp(1.5f, 1.5f));
78+
gg->setAnchorPoint(ccp(0, 0));
79+
80+
CCClippingNode* clippingNode = CCClippingNode::create();
81+
clippingNode->setAlphaThreshold(0.05f);
82+
clippingNode->setPosition(CCPointZero);
83+
clippingNode->setStencil(gg);
84+
clippingNode->addChild(gradient);
85+
86+
node->addChild(clippingNode);
87+
node->addChild(darken);
88+
node->addChild(outline);
89+
90+
return node;
7391
}
7492

7593
static ccColor3B lerpColor(const ccColor3B& startColor, const ccColor3B& endColor, float t) {
@@ -159,8 +177,6 @@ class $modify(ProfilePageExt, ProfilePage) {
159177

160178
if (res)
161179
{
162-
GradientPages::macNode = nullptr;
163-
164180
if (!Mod::get()->getSettingValue<bool>("apply-profiles") || Loader::get()->getLoadedMod("bitz.customprofiles"))
165181
return res;
166182

@@ -196,45 +212,60 @@ class $modify(ProfilePageExt, ProfilePage) {
196212
as<ProfilePageExt*>(res)->updateCommentList();
197213

198214
auto l = res->m_mainLayer;
215+
auto size = ccp(440, 290);
216+
217+
auto node = CCNode::create();
218+
node->setID("gradient-container"_spr);
219+
node->setPosition(CCDirector::get()->getWinSize() / 2);
220+
node->setAnchorPoint(ccp(0.5f, 0.5f));
221+
node->setContentSize(ccp(440, 290));
222+
node->setZOrder(-1);
199223

200224
auto gradient = CCLayerGradient::create();
201225

202226
gradient->setStartColor({255, 0, 0});
203227
gradient->setEndColor({0, 255, 0});
204-
gradient->setZOrder(-1);
205228
gradient->setID("gradient"_spr);
206229
gradient->setOpacity(0);
207-
208-
gradient->setPosition(CCDirector::get()->getWinSize() / 2);
209-
gradient->setContentSize(ccp(440, 290));
230+
gradient->setPosition(size / 2);
231+
gradient->setContentSize(size);
210232
gradient->ignoreAnchorPointForPosition(false);
211233

212234
if (Mod::get()->getSettingValue<bool>("reverse-order"))
213235
gradient->setScaleY(-1);
214236

215-
auto darken = CCScale9Sprite::createWithSpriteFrameName("square-fill.png"_spr);
237+
auto darken = CCScale9Sprite::createWithSpriteFrameName(Mod::get()->getSettingValue<bool>("rounded-corners") ? "square-fill-rounded.png"_spr : "square-fill.png"_spr);
216238
darken->setID("darken"_spr);
217239
darken->setContentSize(gradient->getContentSize() - ccp(15, 15));
218240
darken->setZOrder(0);
219241
darken->setPosition(gradient->getContentSize() / 2);
220242
darken->setAnchorPoint(gradient->getAnchorPoint());
221243
darken->setOpacity(0);
222244

223-
auto bg = CCScale9Sprite::createWithSpriteFrameName("square-outline.png"_spr);
245+
auto bg = Mod::get()->getSettingValue<bool>("rounded-corners") ? CCScale9Sprite::create("GJ_square07.png") : CCScale9Sprite::createWithSpriteFrameName("square-outline.png"_spr);
224246
bg->setPosition(gradient->getContentSize() / 2);
225247
bg->setContentSize(ccp(440, 290));
226248
bg->setZOrder(1);
227249
bg->setID("bg"_spr);
228250

229-
gradient->addChild(bg, 42069);
230-
gradient->addChild(darken);
231-
l->addChild(gradient);
251+
auto gg = CCScale9Sprite::create(Mod::get()->getSettingValue<bool>("rounded-corners") ? "GJ_square01.png" : "GJ_gradientBG.png");
252+
gg->setContentSize(ccp(440, 290) - ccp(3, 3));
253+
gg->setPosition(ccp(1.5f, 1.5f));
254+
gg->setAnchorPoint(ccp(0, 0));
255+
256+
CCClippingNode* clippingNode = CCClippingNode::create();
257+
clippingNode->setAlphaThreshold(0.05f);
258+
clippingNode->setPosition(CCPointZero);
259+
clippingNode->setStencil(gg);
260+
clippingNode->addChild(gradient);
261+
262+
node->addChild(clippingNode);
263+
node->addChild(darken);
264+
node->addChild(bg, 42069);
265+
266+
l->addChild(node);
232267

233-
if (GradientPages::score == nullptr)
234-
{
235-
log::info("hasn't loaded profile info yet :(");
236-
}
237-
else
268+
if (GradientPages::score)
238269
{
239270
gradient->setStartColor(GameManager::get()->colorForIdx(GradientPages::score->m_color1));
240271
gradient->setEndColor(GameManager::get()->colorForIdx(GradientPages::score->m_color2));
@@ -261,25 +292,31 @@ class $modify(ProfilePageExt, ProfilePage) {
261292

262293
if (l)
263294
{
264-
auto g = as<CCLayerGradient*>(l->getChildByID("gradient"_spr));
265-
266-
if (g)
295+
if (auto container = l->getChildByID("gradient-container"_spr))
267296
{
268-
auto d = as<CCScale9Sprite*>(g->getChildByID("darken"_spr));
269-
270-
g->setStartColor(GameManager::get()->colorForIdx(score->m_color1));
271-
g->setEndColor(GameManager::get()->colorForIdx(score->m_color2));
272-
273-
if (g->getOpacity() == 0)
297+
if (auto gCont = getChildOfType<CCClippingNode>(container, 0))
274298
{
275-
g->runAction(CCFadeTo::create(0.25f, 255));
276-
}
299+
auto g = as<CCLayerGradient*>(gCont->getChildByID("gradient"_spr));
277300

278-
if (d)
279-
{
280-
if (d->getOpacity() == 0)
301+
if (g)
281302
{
282-
d->runAction(CCFadeTo::create(0.25f, 255));
303+
auto d = as<CCScale9Sprite*>(container->getChildByID("darken"_spr));
304+
305+
g->setStartColor(GameManager::get()->colorForIdx(score->m_color1));
306+
g->setEndColor(GameManager::get()->colorForIdx(score->m_color2));
307+
308+
if (g->getOpacity() == 0)
309+
{
310+
g->runAction(CCFadeTo::create(0.25f, 255));
311+
}
312+
313+
if (d)
314+
{
315+
if (d->getOpacity() == 0)
316+
{
317+
d->runAction(CCFadeTo::create(0.25f, 255));
318+
}
319+
}
283320
}
284321
}
285322
}

0 commit comments

Comments
 (0)