forked from Kolyah35/minecraft-pe-0.6.1
the whole game
This commit is contained in:
97
src/client/gui/screens/SimpleChooseLevelScreen.cpp
Executable file
97
src/client/gui/screens/SimpleChooseLevelScreen.cpp
Executable 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;
|
||||
}
|
||||
Reference in New Issue
Block a user