the whole game

This commit is contained in:
2026-03-02 22:04:18 +03:00
parent 816e9060b4
commit f0617a5d22
2069 changed files with 581500 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
#include "SimpleChooseLevelScreen.h"
#include "ProgressScreen.h"
#include "ScreenChooser.h"
#include "../components/Button.h"
#include "../../Minecraft.h"
#include "../../../world/level/LevelSettings.h"
#include "../../../platform/time.h"
SimpleChooseLevelScreen::SimpleChooseLevelScreen(const std::string& levelName)
: bCreative(0),
bSurvival(0),
bBack(0),
levelName(levelName),
hasChosen(false)
{
}
SimpleChooseLevelScreen::~SimpleChooseLevelScreen()
{
delete bCreative;
delete bSurvival;
delete bBack;
}
void SimpleChooseLevelScreen::init()
{
if (minecraft->useTouchscreen()) {
bCreative = new Touch::TButton(1, "Creative mode");
bSurvival = new Touch::TButton(2, "Survival mode");
bBack = new Touch::TButton(3, "Back");
} else {
bCreative = new Button(1, "Creative mode");
bSurvival = new Button(2, "Survival mode");
bBack = new Button(3, "Back");
}
buttons.push_back(bCreative);
buttons.push_back(bSurvival);
buttons.push_back(bBack);
tabButtons.push_back(bCreative);
tabButtons.push_back(bSurvival);
tabButtons.push_back(bBack);
}
void SimpleChooseLevelScreen::setupPositions()
{
bCreative->width = bSurvival->width = bBack->width = 120;
bCreative->x = (width - bCreative->width) / 2;
bCreative->y = height/3 - 40;
bSurvival->x = (width - bSurvival->width) / 2;
bSurvival->y = 2*height/3 - 40;
bBack->x = bSurvival->x + bSurvival->width - bBack->width;
bBack->y = height - 40;
}
void SimpleChooseLevelScreen::render( int xm, int ym, float a )
{
renderDirtBackground(0);
glEnable2(GL_BLEND);
drawCenteredString(minecraft->font, "Mobs, health and gather resources", width/2, bSurvival->y + bSurvival->height + 4, 0xffcccccc);
drawCenteredString(minecraft->font, "Unlimited resources and flying", width/2, bCreative->y + bCreative->height + 4, 0xffcccccc);
Screen::render(xm, ym, a);
glDisable2(GL_BLEND);
}
void SimpleChooseLevelScreen::buttonClicked( Button* button )
{
if (button == bBack) {
minecraft->screenChooser.setScreen(SCREEN_STARTMENU);
return;
}
if (hasChosen)
return;
int gameType;
if (button == bCreative)
gameType = GameType::Creative;
if (button == bSurvival)
gameType = GameType::Survival;
std::string levelId = getUniqueLevelName(levelName);
LevelSettings settings(getEpochTimeS(), gameType);
minecraft->selectLevel(levelId, levelId, settings);
minecraft->hostMultiplayer();
minecraft->setScreen(new ProgressScreen());
hasChosen = true;
}
bool SimpleChooseLevelScreen::handleBackEvent(bool isDown) {
if (!isDown)
minecraft->screenChooser.setScreen(SCREEN_STARTMENU);
return true;
}