Merge pull request #302 from ViniciusCruzMoura/singleplayer_menu
Some checks failed
Publish Documentation / build (push) Has been cancelled
Build (Linux, x86_64) / build-linux (push) Has been cancelled
Build (Linux, x86_64) / build-linux-debug (push) Has been cancelled
Clang Format / clang-format (push) Has been cancelled

SelectWorldScreen: open Select World instead of Create New World for JAVA_GUIS
This commit is contained in:
ffqq 2026-03-23 14:37:24 +03:00 committed by GitHub
commit 52b553e85b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 36 additions and 28 deletions

View file

@ -152,8 +152,10 @@ std::wstring CreateWorldScreen::findAvailableFolderName(
void CreateWorldScreen::removed() { Keyboard::enableRepeatEvents(false); } void CreateWorldScreen::removed() { Keyboard::enableRepeatEvents(false); }
void CreateWorldScreen::buttonClicked(Button* button) { void CreateWorldScreen::buttonClicked(Button* button) {
app.DebugPrintf("CreateWorldScreen::buttonClicked START\n");
if (!button->active) return; if (!button->active) return;
if (button->id == 1) { if (button->id == 1) {
app.DebugPrintf("CreateWorldScreen::buttonClicked 'Cancel' minecraft->setScreen(lastScreen)\n");
minecraft->setScreen(lastScreen); minecraft->setScreen(lastScreen);
} else if (button->id == 0) { } else if (button->id == 0) {
minecraft->setScreen( minecraft->setScreen(

View file

@ -24,6 +24,7 @@ SelectWorldScreen::SelectWorldScreen(Screen* lastScreen) {
} }
void SelectWorldScreen::init() { void SelectWorldScreen::init() {
app.DebugPrintf("SelectWorldScreen::init() START\n");
Language* language = Language::getInstance(); Language* language = Language::getInstance();
title = language->getElement(L"selectWorld.title"); title = language->getElement(L"selectWorld.title");
@ -84,6 +85,7 @@ void SelectWorldScreen::postInit() {
} }
void SelectWorldScreen::buttonClicked(Button* button) { void SelectWorldScreen::buttonClicked(Button* button) {
app.DebugPrintf("SelectWorldScreen::buttonClicked START\n");
if (!button->active) return; if (!button->active) return;
if (button->id == BUTTON_DELETE_ID) { if (button->id == BUTTON_DELETE_ID) {
std::wstring worldName = getWorldName(selectedWorld); std::wstring worldName = getWorldName(selectedWorld);
@ -125,6 +127,7 @@ void SelectWorldScreen::buttonClicked(Button* button) {
minecraft->setScreen( minecraft->setScreen(
new RenameWorldScreen(this, getWorldId(selectedWorld))); new RenameWorldScreen(this, getWorldId(selectedWorld)));
} else if (button->id == BUTTON_CANCEL_ID) { } else if (button->id == BUTTON_CANCEL_ID) {
app.DebugPrintf("SelectWorldScreen::buttonClicked 'Cancel' minecraft->setScreen(lastScreen)\n");
minecraft->setScreen(lastScreen); minecraft->setScreen(lastScreen);
} else { } else {
worldSelectionList->buttonClicked(button); worldSelectionList->buttonClicked(button);
@ -173,35 +176,38 @@ void SelectWorldScreen::render(int xm, int ym, float a) {
Screen::render(xm, ym, a); Screen::render(xm, ym, a);
// 4J - debug code - remove // 4J - debug code - remove
static int count = 0; if (0) {
static bool forceCreateLevel = false; static int count = 0;
if (count++ >= 100) { static bool forceCreateLevel = false;
if (!forceCreateLevel && levelList->size() > 0) { if (count++ >= 100) {
// 4J Stu - For some obscures reason the "delete" button is called if (!forceCreateLevel && levelList->size() > 0) {
// "renameButton" and vice versa. // 4J Stu - For some obscures reason the "delete" button is called
// if( levelList->size() > 2 && deleteButton->active ) // "renameButton" and vice versa.
//{ // if( levelList->size() > 2 && deleteButton->active )
// this->selectedWorld = 2; //{
// count = 0; // this->selectedWorld = 2;
// buttonClicked(deleteButton); // count = 0;
//} // buttonClicked(deleteButton);
// else //}
if (levelList->size() > 1 && renameButton->active) { // else
this->selectedWorld = 1; if (levelList->size() > 1 && renameButton->active) {
count = 0; this->selectedWorld = 1;
buttonClicked(renameButton); count = 0;
} else if (selectButton->active == true) { buttonClicked(renameButton);
this->selectedWorld = 0; } else if (selectButton->active == true) {
buttonClicked(selectButton); this->selectedWorld = 0;
// this->worldSelected( 0 ); buttonClicked(selectButton);
// this->worldSelected( 0 );
} else {
selectButton->active = true;
deleteButton->active = true;
renameButton->active = true;
count = 0;
}
} else { } else {
selectButton->active = true; app.DebugPrintf("SelectWorldScreen::render minecraft->setScreen(new CreateWorldScreen(this))\n");
deleteButton->active = true; minecraft->setScreen(new CreateWorldScreen(this));
renameButton->active = true;
count = 0;
} }
} else {
minecraft->setScreen(new CreateWorldScreen(this));
} }
} }
} }