mirror of
https://github.com/geode-sdk/geode.git
synced 2025-02-17 00:30:26 -05:00
add a bunch of layouts and ids
This commit is contained in:
parent
eb10eca6e5
commit
ef9e741bf9
4 changed files with 119 additions and 43 deletions
|
@ -6,35 +6,38 @@
|
|||
|
||||
USE_GEODE_NAMESPACE();
|
||||
|
||||
template<class... Args>
|
||||
static void reorderButtons(Args... args) {
|
||||
int ooa = 0;
|
||||
for (auto& arg : { args... }) {
|
||||
if (arg) {
|
||||
arg->setOrderOfArrival(ooa);
|
||||
ooa += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$register_ids(CreatorLayer) {
|
||||
setIDSafe<CCSprite>(this, 0, "background");
|
||||
|
||||
if (auto menu = getChildOfType<CCMenu>(this, 0)) {
|
||||
menu->setID("creator-buttons-menu");
|
||||
|
||||
setIDSafe(menu, 0, "create-button");
|
||||
setIDSafe(menu, 1, "saved-button");
|
||||
setIDSafe(menu, 2, "scores-button");
|
||||
setIDSafe(menu, 3, "quests-button");
|
||||
setIDSafe(menu, 4, "daily-button");
|
||||
setIDSafe(menu, 5, "weekly-button");
|
||||
setIDSafe(menu, 6, "featured-button");
|
||||
setIDSafe(menu, 7, "hall-of-fame-button");
|
||||
setIDSafe(menu, 8, "map-packs-button");
|
||||
setIDSafe(menu, 9, "search-button");
|
||||
setIDSafe(menu, 10, "gauntlets-button");
|
||||
|
||||
// move vault button to its own menu
|
||||
if (auto lockBtn = setIDSafe(menu, -2, "vault-button")) {
|
||||
auto menu = detachAndCreateMenu(
|
||||
this,
|
||||
"top-right-menu",
|
||||
ColumnLayout::create()
|
||||
->setAxisReverse(true)
|
||||
->setAxisAlignment(AxisAlignment::End),
|
||||
lockBtn
|
||||
);
|
||||
menu->setPositionY(menu->getPositionY() - 125.f / 2);
|
||||
menu->setContentSize({ 60.f, 125.f });
|
||||
menu->setPositionY(
|
||||
menu->getPositionY() - 150.f / 2 +
|
||||
lockBtn->getScaledContentSize().height / 2
|
||||
);
|
||||
menu->setContentSize({ 60.f, 150.f });
|
||||
menu->updateLayout();
|
||||
}
|
||||
|
||||
|
@ -47,16 +50,49 @@ $register_ids(CreatorLayer) {
|
|||
->setAxisAlignment(AxisAlignment::Start),
|
||||
roomBtn
|
||||
);
|
||||
menu->setPositionY(menu->getPositionY() + 125.f / 2);
|
||||
menu->setPositionY(
|
||||
menu->getPositionY() + 125.f / 2 -
|
||||
roomBtn->getScaledContentSize().height / 2
|
||||
);
|
||||
menu->setContentSize({ 60.f, 125.f });
|
||||
menu->updateLayout();
|
||||
}
|
||||
|
||||
// row order is inverted because of layout
|
||||
|
||||
reorderButtons(
|
||||
setIDSafe(menu, 6, "featured-button"),
|
||||
setIDSafe(menu, 7, "hall-of-fame-button"),
|
||||
setIDSafe(menu, 8, "map-packs-button"),
|
||||
|
||||
setIDSafe(menu, 9, "search-button"),
|
||||
setIDSafe(menu, 3, "quests-button"),
|
||||
setIDSafe(menu, 4, "daily-button"),
|
||||
setIDSafe(menu, 5, "weekly-button"),
|
||||
|
||||
setIDSafe(menu, 10, "gauntlets-button"),
|
||||
setIDSafe(menu, 0, "create-button"),
|
||||
setIDSafe(menu, 1, "saved-button"),
|
||||
setIDSafe(menu, 2, "scores-button")
|
||||
);
|
||||
|
||||
menu->setContentSize({ 470.f, 310.f });
|
||||
menu->setLayout(
|
||||
RowLayout::create()
|
||||
->setGap(12.f)
|
||||
->setCrossAxisReverse(true)
|
||||
->setGrowCrossAxis(true)
|
||||
->setCrossAxisOverflow(false)
|
||||
);
|
||||
}
|
||||
|
||||
if (auto menu = getChildOfType<CCMenu>(this, 1)) {
|
||||
menu->setID("exit-menu");
|
||||
setIDSafe(menu, 0, "exit-button");
|
||||
menu->setPositionY(menu->getPositionY() - 125.f / 2);
|
||||
auto exitBtn = setIDSafe(menu, 0, "exit-button");
|
||||
menu->setPositionY(
|
||||
menu->getPositionY() - 125.f / 2 +
|
||||
exitBtn->getScaledContentSize().height / 2
|
||||
);
|
||||
menu->setContentSize({ 60.f, 125.f });
|
||||
menu->setLayout(
|
||||
ColumnLayout::create()
|
||||
|
@ -67,7 +103,7 @@ $register_ids(CreatorLayer) {
|
|||
// add a menu to the bottom left corner that is empty but prolly a place mods
|
||||
// want to add stuff to
|
||||
auto menu = CCMenu::create();
|
||||
menu->setPosition(24.f, 24.f + 125.f / 2);
|
||||
menu->setPosition(24.f, 0.f + 125.f / 2);
|
||||
menu->setID("bottom-left-menu");
|
||||
menu->setContentSize({ 60.f, 125.f });
|
||||
menu->setLayout(
|
||||
|
|
|
@ -19,24 +19,26 @@ $register_ids(EditLevelLayer) {
|
|||
"description-background",
|
||||
"description-input",
|
||||
"description-text-area",
|
||||
"level-action-menu",
|
||||
"level-edit-menu",
|
||||
"level-length",
|
||||
"level-song",
|
||||
"level-verified",
|
||||
"version-label",
|
||||
"level-id-label",
|
||||
"right-side-menu",
|
||||
"level-actions-menu",
|
||||
"back-button-menu",
|
||||
"info-button-menu"
|
||||
);
|
||||
|
||||
auto winSize = CCDirector::get()->getWinSize();
|
||||
|
||||
if (auto menu = this->getChildByID("level-action-menu")) {
|
||||
if (auto menu = this->getChildByID("level-edit-menu")) {
|
||||
setIDs(menu, 0, "edit-button", "play-button", "share-button");
|
||||
menu->setContentSize({ winSize.width - 160.f, 100.f });
|
||||
menu->setLayout(RowLayout::create()->setGap(10.f));
|
||||
}
|
||||
|
||||
if (auto menu = this->getChildByID("right-side-menu")) {
|
||||
if (auto menu = this->getChildByID("level-actions-menu")) {
|
||||
setIDs(
|
||||
menu,
|
||||
0,
|
||||
|
@ -47,31 +49,28 @@ $register_ids(EditLevelLayer) {
|
|||
"folder-button"
|
||||
);
|
||||
|
||||
detachAndCreateMenu(
|
||||
this, "folder-menu", ColumnLayout::create(), menu->getChildByID("folder-button")
|
||||
auto folderMenu = detachAndCreateMenu(
|
||||
this, "folder-menu",
|
||||
ColumnLayout::create(),
|
||||
menu->getChildByID("folder-button")
|
||||
);
|
||||
folderMenu->setContentSize({ 50.f, 215.f });
|
||||
folderMenu->updateLayout();
|
||||
|
||||
menu->setPosition(
|
||||
menu->getPositionX() + static_cast<CCNode*>(
|
||||
menu->getChildren()->firstObject()
|
||||
)->getPositionX(),
|
||||
winSize.height / 2
|
||||
);
|
||||
menu->setContentSize({ 60.f, winSize.height - 50.f });
|
||||
menu->setContentSize({ 60.f, winSize.height - 15.f });
|
||||
menu->setLayout(
|
||||
ColumnLayout::create()
|
||||
->setGap(7.f)
|
||||
->setAxisAlignment(AxisAlignment::Start)
|
||||
->setAxisAlignment(AxisAlignment::End)
|
||||
->setAxisReverse(true)
|
||||
);
|
||||
menu->setZOrder(1);
|
||||
|
||||
for (int i = 0; i < rand() % 4; i++) {
|
||||
auto btn = CircleButtonSprite::create(
|
||||
CCLabelBMFont::create(std::to_string(i).c_str(), "bigFont.fnt")
|
||||
);
|
||||
menu->addChild(btn);
|
||||
}
|
||||
menu->updateLayout();
|
||||
}
|
||||
|
||||
if (auto menu = this->getChildByID("back-button-menu")) setIDSafe(menu, 0, "back-button");
|
||||
|
|
|
@ -15,7 +15,7 @@ $register_ids(LevelBrowserLayer) {
|
|||
if (m_searchObject->m_searchType == SearchType::MyLevels) {
|
||||
if (auto menu = getChildOfType<CCMenu>(this, 2)) {
|
||||
menu->setID("new-level-menu");
|
||||
setIDSafe(menu, 0, "new-level-button");
|
||||
auto newLvlBtn = setIDSafe(menu, 0, "new-level-button");
|
||||
|
||||
if (auto myLevelsBtn = setIDSafe(menu, 1, "my-levels-button")) {
|
||||
auto menu = detachAndCreateMenu(
|
||||
|
@ -25,7 +25,10 @@ $register_ids(LevelBrowserLayer) {
|
|||
->setAxisAlignment(AxisAlignment::Start),
|
||||
myLevelsBtn
|
||||
);
|
||||
menu->setPositionY(menu->getPositionY() + 100.f / 2);
|
||||
menu->setPositionY(
|
||||
menu->getPositionY() + 100.f / 2 -
|
||||
myLevelsBtn->getScaledContentSize().height / 2
|
||||
);
|
||||
menu->setContentSize({ 50.f, 100.f });
|
||||
menu->updateLayout();
|
||||
}
|
||||
|
@ -34,23 +37,46 @@ $register_ids(LevelBrowserLayer) {
|
|||
ColumnLayout::create()
|
||||
->setAxisAlignment(AxisAlignment::Start)
|
||||
);
|
||||
menu->setPositionY(menu->getPositionY() + 150.f / 2);
|
||||
menu->setPositionY(
|
||||
menu->getPositionY() + 150.f / 2 -
|
||||
newLvlBtn->getScaledContentSize().height / 2
|
||||
);
|
||||
menu->setContentSize({ 50.f, 150.f });
|
||||
menu->updateLayout();
|
||||
}
|
||||
|
||||
if (auto menu = getChildOfType<CCMenu>(this, 1)) {
|
||||
if (auto searchBtn = setIDSafe(menu, 5, "search-button")) {
|
||||
auto menu = detachAndCreateMenu(
|
||||
auto clearBtn = setIDSafe(menu, 6, "clear-search-button");
|
||||
// this is a hacky fix because for some reason adding children
|
||||
// before the clear button is made visible is inconsistent
|
||||
if (clearBtn) {
|
||||
searchBtn->setZOrder(-1);
|
||||
clearBtn->setZOrder(-1);
|
||||
}
|
||||
auto searchMenu = detachAndCreateMenu(
|
||||
this,
|
||||
"search-menu",
|
||||
ColumnLayout::create()
|
||||
->setAxisAlignment(AxisAlignment::Start),
|
||||
searchBtn
|
||||
->setAxisReverse(true)
|
||||
->setCrossAxisReverse(true)
|
||||
->setGrowCrossAxis(true)
|
||||
->setCrossAxisOverflow(false)
|
||||
->setCrossAxisAlignment(AxisAlignment::Start)
|
||||
->setAxisAlignment(AxisAlignment::End),
|
||||
searchBtn,
|
||||
clearBtn
|
||||
);
|
||||
menu->setPositionY(menu->getPositionY() + 50.f / 2);
|
||||
menu->setContentSize({ 50.f, 50.f });
|
||||
menu->updateLayout();
|
||||
searchMenu->setPositionX(
|
||||
searchMenu->getPositionX() + 80.f / 2 -
|
||||
searchBtn->getScaledContentSize().width / 2
|
||||
);
|
||||
searchMenu->setPositionY(
|
||||
searchMenu->getPositionY() - 80.f / 2 +
|
||||
searchBtn->getScaledContentSize().height / 2
|
||||
);
|
||||
searchMenu->setContentSize({ 80.f, 80.f });
|
||||
searchMenu->updateLayout();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@ $register_ids(MenuLayer) {
|
|||
setIDSafe(this, 0, "main-menu-bg");
|
||||
setIDSafe<CCSprite>(this, 0, "main-title");
|
||||
|
||||
auto winSize = CCDirector::get()->getWinSize();
|
||||
|
||||
// controller
|
||||
if (PlatformToolbox::isControllerConnected()) {
|
||||
setIDSafe<CCSprite>(this, 1, "play-gamepad-icon");
|
||||
|
@ -133,6 +135,19 @@ $register_ids(MenuLayer) {
|
|||
->setAxisReverse(true)
|
||||
);
|
||||
}
|
||||
|
||||
// add a menu to the top right corner that is empty but prolly a place mods
|
||||
// want to add stuff to since it's symmetrically opposite to the close button
|
||||
auto menu = CCMenu::create();
|
||||
menu->setPosition(winSize.width - 200.f / 2, winSize.height - 50.f / 2);
|
||||
menu->setID("top-right-menu");
|
||||
menu->setContentSize({ 200.f, 50.f });
|
||||
menu->setLayout(
|
||||
RowLayout::create()
|
||||
->setAxisReverse(true)
|
||||
->setAxisAlignment(AxisAlignment::End)
|
||||
);
|
||||
this->addChild(menu);
|
||||
}
|
||||
|
||||
struct $modify(MenuLayer) {
|
||||
|
|
Loading…
Reference in a new issue