mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 10:43:39 +00:00
You will now be able to leave the world from all places where you'd usually be able to (Pause screen, death screen) Should be identical to the way it's done on Iggy/XUI
63 lines
1.9 KiB
C++
63 lines
1.9 KiB
C++
#include "../../Platform/stdafx.h"
|
|
#include "../../../Minecraft.World/Util/StringHelpers.h"
|
|
#include "DeathScreen.h"
|
|
#include "../Button.h"
|
|
#include "../../Player/MultiPlayerLocalPlayer.h"
|
|
#include "PauseScreen.h"
|
|
#include "TitleScreen.h"
|
|
|
|
void DeathScreen::init() {
|
|
buttons.clear();
|
|
buttons.push_back(
|
|
new Button(1, width / 2 - 100, height / 4 + 24 * 3, L"Respawn"));
|
|
buttons.push_back(
|
|
new Button(2, width / 2 - 100, height / 4 + 24 * 4, L"Title menu"));
|
|
|
|
if (minecraft->user == NULL) {
|
|
buttons[1]->active = false;
|
|
}
|
|
}
|
|
|
|
void DeathScreen::keyPressed(char eventCharacter, int eventKey) {}
|
|
|
|
void DeathScreen::buttonClicked(Button* button) {
|
|
if (button->id == 0) {
|
|
// minecraft.setScreen(new OptionsScreen(this,
|
|
// minecraft.options));
|
|
}
|
|
if (button->id == 1) {
|
|
minecraft->player->respawn();
|
|
minecraft->setScreen(NULL);
|
|
// minecraft.setScreen(new NewLevelScreen(this));
|
|
}
|
|
if (button->id == 2) {
|
|
// minecraft->setLevel(NULL);
|
|
// minecraft->setScreen(new TitleScreen());
|
|
|
|
// 4jcraft: use the static method from PauseScreen to exit
|
|
PauseScreen::exitWorld(minecraft, true);
|
|
}
|
|
}
|
|
|
|
void DeathScreen::render(int xm, int ym, float a) {
|
|
fillGradient(0, 0, width, height, 0x60500000, 0xa0803030);
|
|
|
|
glPushMatrix();
|
|
glScalef(2, 2, 2);
|
|
drawCenteredString(font, L"Game over!", width / 2 / 2, 60 / 2, 0xffffff);
|
|
glPopMatrix();
|
|
drawCenteredString(font,
|
|
L"Score: &e" + _toString(minecraft->player->getScore()),
|
|
width / 2, 100, 0xffffff);
|
|
|
|
Screen::render(xm, ym, a);
|
|
|
|
// 4J - debug code - remove
|
|
// static int count = 0;
|
|
// if (count++ == 100) {
|
|
// count = 0;
|
|
// buttonClicked(buttons[0]);
|
|
// }
|
|
}
|
|
|
|
bool DeathScreen::isPauseScreen() { return false; } |