aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Screen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Screen.cpp')
-rw-r--r--Minecraft.Client/Screen.cpp202
1 files changed, 202 insertions, 0 deletions
diff --git a/Minecraft.Client/Screen.cpp b/Minecraft.Client/Screen.cpp
new file mode 100644
index 00000000..0019b54d
--- /dev/null
+++ b/Minecraft.Client/Screen.cpp
@@ -0,0 +1,202 @@
+#include "stdafx.h"
+#include "Screen.h"
+#include "Button.h"
+#include "GuiParticles.h"
+#include "Tesselator.h"
+#include "Textures.h"
+#include "..\Minecraft.World\SoundTypes.h"
+
+
+
+Screen::Screen() // 4J added
+{
+ minecraft = NULL;
+ width = 0;
+ height = 0;
+ passEvents = false;
+ font = NULL;
+ particles = NULL;
+ clickedButton = NULL;
+}
+
+void Screen::render(int xm, int ym, float a)
+{
+ AUTO_VAR(itEnd, buttons.end());
+ for (AUTO_VAR(it, buttons.begin()); it != itEnd; it++)
+ {
+ Button *button = *it; //buttons[i];
+ button->render(minecraft, xm, ym);
+ }
+}
+
+void Screen::keyPressed(wchar_t eventCharacter, int eventKey)
+{
+ if (eventKey == Keyboard::KEY_ESCAPE)
+ {
+ minecraft->setScreen(NULL);
+// minecraft->grabMouse(); // 4J - removed
+ }
+}
+
+wstring Screen::getClipboard()
+{
+ // 4J - removed
+ return NULL;
+}
+
+void Screen::setClipboard(const wstring& str)
+{
+ // 4J - removed
+}
+
+void Screen::mouseClicked(int x, int y, int buttonNum)
+{
+ if (buttonNum == 0)
+ {
+ AUTO_VAR(itEnd, buttons.end());
+ for (AUTO_VAR(it, buttons.begin()); it != itEnd; it++)
+ {
+ Button *button = *it; //buttons[i];
+ if (button->clicked(minecraft, x, y))
+ {
+ clickedButton = button;
+ minecraft->soundEngine->playUI(eSoundType_RANDOM_CLICK, 1, 1);
+ buttonClicked(button);
+ }
+ }
+ }
+}
+
+void Screen::mouseReleased(int x, int y, int buttonNum)
+{
+ if (clickedButton!=NULL && buttonNum==0)
+ {
+ clickedButton->released(x, y);
+ clickedButton = NULL;
+ }
+}
+
+void Screen::buttonClicked(Button *button)
+{
+}
+
+void Screen::init(Minecraft *minecraft, int width, int height)
+{
+ particles = new GuiParticles(minecraft);
+ this->minecraft = minecraft;
+ this->font = minecraft->font;
+ this->width = width;
+ this->height = height;
+ buttons.clear();
+ init();
+}
+
+void Screen::setSize(int width, int height)
+{
+ this->width = width;
+ this->height = height;
+}
+
+void Screen::init()
+{
+}
+
+void Screen::updateEvents()
+{
+ /* 4J - TODO
+ while (Mouse.next()) {
+ mouseEvent();
+ }
+
+ while (Keyboard.next()) {
+ keyboardEvent();
+ }
+ */
+
+}
+
+void Screen::mouseEvent()
+{
+ /* 4J - TODO
+ if (Mouse.getEventButtonState()) {
+ int xm = Mouse.getEventX() * width / minecraft.width;
+ int ym = height - Mouse.getEventY() * height / minecraft.height - 1;
+ mouseClicked(xm, ym, Mouse.getEventButton());
+ } else {
+ int xm = Mouse.getEventX() * width / minecraft.width;
+ int ym = height - Mouse.getEventY() * height / minecraft.height - 1;
+ mouseReleased(xm, ym, Mouse.getEventButton());
+ }
+ */
+}
+
+void Screen::keyboardEvent()
+{
+ /* 4J - TODO
+ if (Keyboard.getEventKeyState()) {
+ if (Keyboard.getEventKey() == Keyboard.KEY_F11) {
+ minecraft.toggleFullScreen();
+ return;
+ }
+ keyPressed(Keyboard.getEventCharacter(), Keyboard.getEventKey());
+ }
+ */
+}
+
+void Screen::tick()
+{
+}
+
+void Screen::removed()
+{
+}
+
+void Screen::renderBackground()
+{
+ renderBackground(0);
+}
+
+void Screen::renderBackground(int vo)
+{
+ if (minecraft->level != NULL)
+ {
+ fillGradient(0, 0, width, height, 0xc0101010, 0xd0101010);
+ }
+ else
+ {
+ renderDirtBackground(vo);
+ }
+}
+
+void Screen::renderDirtBackground(int vo)
+{
+ // 4J Unused
+#if 0
+ glDisable(GL_LIGHTING);
+ glDisable(GL_FOG);
+ Tesselator *t = Tesselator::getInstance();
+ glBindTexture(GL_TEXTURE_2D, minecraft->textures->loadTexture(L"/gui/background.png"));
+ glColor4f(1, 1, 1, 1);
+ float s = 32;
+ t->begin();
+ t->color(0x404040);
+ t->vertexUV((float)(0), (float)( height), (float)( 0), (float)( 0), (float)( height / s + vo));
+ t->vertexUV((float)(width), (float)( height), (float)( 0), (float)( width / s), (float)( height / s + vo));
+ t->vertexUV((float)(width), (float)( 0), (float)( 0), (float)( width / s), (float)( 0 + vo));
+ t->vertexUV((float)(0), (float)( 0), (float)( 0), (float)( 0), (float)( 0 + vo));
+ t->end();
+#endif
+}
+
+bool Screen::isPauseScreen()
+{
+ return true;
+}
+
+void Screen::confirmResult(bool result, int id)
+{
+}
+
+void Screen::tabPressed()
+{
+}