the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 214 lines 6.1 kB view raw
1#include "stdafx.h" 2#include "Tesselator.h" 3#include "Textures.h" 4#include "ProgressRenderer.h" 5#include "..\Minecraft.World\System.h" 6 7CRITICAL_SECTION ProgressRenderer::s_progress; 8 9ProgressRenderer::ProgressRenderer(Minecraft *minecraft) 10{ 11 status = -1; 12 title = -1; 13 lastTime = System::currentTimeMillis(); 14 noAbort = false; 15 this->minecraft = minecraft; 16 this->m_eType=eProgressStringType_ID; 17} 18 19void ProgressRenderer::progressStart(int title) 20{ 21 noAbort = false; 22 _progressStart(title); 23} 24 25void ProgressRenderer::progressStartNoAbort(int string) 26{ 27 noAbort = true; 28 _progressStart(string); 29} 30 31void ProgressRenderer::_progressStart(int title) 32{ 33 // 4J Stu - Removing all progressRenderer rendering. This will be replaced on the xbox 34 if (!minecraft->running) 35 { 36 if (noAbort) return; 37// throw new StopGameException(); // 4J - removed 38 } 39 40 EnterCriticalSection( &ProgressRenderer::s_progress ); 41 lastPercent = 0; 42 this->title = title; 43 LeaveCriticalSection( &ProgressRenderer::s_progress ); 44 45#if 0 46 ScreenSizeCalculator ssc(minecraft->options, minecraft->width, minecraft->height); 47 48 glClear(GL_DEPTH_BUFFER_BIT); 49 glMatrixMode(GL_PROJECTION); 50 glLoadIdentity(); 51 glOrtho(0, (float)ssc.rawWidth, (float)ssc.rawHeight, 0, 100, 300); 52 glMatrixMode(GL_MODELVIEW); 53 glLoadIdentity(); 54 glTranslatef(0, 0, -200); 55#endif 56} 57 58void ProgressRenderer::progressStage(int status) 59{ 60 if (!minecraft->running) 61 { 62 if (noAbort) return; 63// throw new StopGameException(); // 4J - removed 64 } 65 66 67 lastTime = 0; 68 EnterCriticalSection( &ProgressRenderer::s_progress ); 69 setType(eProgressStringType_ID); 70 this->status = status; 71 LeaveCriticalSection( &ProgressRenderer::s_progress ); 72 progressStagePercentage(-1); 73 lastTime = 0; 74} 75 76void ProgressRenderer::progressStagePercentage(int i) 77{ 78 // 4J Stu - Removing all progressRenderer rendering. This will be replaced on the xbox 79 EnterCriticalSection( &ProgressRenderer::s_progress ); 80 lastPercent = i; 81 LeaveCriticalSection( &ProgressRenderer::s_progress ); 82 83#if 0 84 if (!minecraft->running) 85 { 86 if (noAbort) return; 87// throw new StopGameException(); // 4J - removed 88 } 89 90 91 __int64 now = System::currentTimeMillis(); 92 if (now - lastTime < 20) return; 93 lastTime = now; 94 95 ScreenSizeCalculator ssc(minecraft->options, minecraft->width, minecraft->height); 96 int screenWidth = ssc.getWidth(); 97 int screenHeight = ssc.getHeight(); 98 99 glClear(GL_DEPTH_BUFFER_BIT); 100 glMatrixMode(GL_PROJECTION); 101 glLoadIdentity(); 102 glOrtho(0, (float)ssc.rawWidth, (float)ssc.rawHeight, 0, 100, 300); 103 glMatrixMode(GL_MODELVIEW); 104 glLoadIdentity(); 105 glTranslatef(0, 0, -200); 106 107 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 108 109 Tesselator *t = Tesselator::getInstance(); 110 int id = minecraft->textures->loadTexture(L"/gui/background.png"); 111 glBindTexture(GL_TEXTURE_2D, id); 112 float s = 32; 113 t->begin(); 114 t->color(0x404040); 115 t->vertexUV((float)(0), (float)( screenHeight), (float)( 0), (float)( 0), (float)( screenHeight / s)); 116 t->vertexUV((float)(screenWidth), (float)( screenHeight), (float)( 0), (float)( screenWidth / s), (float)( screenHeight / s)); 117 t->vertexUV((float)(screenWidth), (float)( 0), (float)( 0), (float)( screenWidth / s), (float)( 0)); 118 t->vertexUV((float)(0), (float)( 0), (float)( 0), (float)( 0), (float)( 0)); 119 t->end(); 120 121 if (i >= 0) 122 { 123 int w = 100; 124 int h = 2; 125 int x = screenWidth / 2 - w / 2; 126 int y = screenHeight / 2 + 16; 127 128 glDisable(GL_TEXTURE_2D); 129 t->begin(); 130 t->color(0x808080); 131 t->vertex((float)(x), (float)( y), (float)( 0)); 132 t->vertex((float)(x), (float)( y + h), (float)( 0)); 133 t->vertex((float)(x + w), (float)( y + h), (float)( 0)); 134 t->vertex((float)(x + w), (float)( y), (float)( 0)); 135 136 t->color(0x80ff80); 137 t->vertex((float)(x), (float)( y), (float)( 0)); 138 t->vertex((float)(x), (float)( y + h), (float)( 0)); 139 t->vertex((float)(x + i), (float)( y + h), (float)( 0)); 140 t->vertex((float)(x + i), (float)( y), (float)( 0)); 141 t->end(); 142 glEnable(GL_TEXTURE_2D); 143 } 144 145 minecraft->font->drawShadow(title, (screenWidth - minecraft->font->width(title)) / 2, screenHeight / 2 - 4 - 16, 0xffffff); 146 minecraft->font->drawShadow(status, (screenWidth - minecraft->font->width(status)) / 2, screenHeight / 2 - 4 + 8, 0xffffff); 147 Display::update(); 148 149 /* // 4J - removed 150 try { 151 Thread.yield(); 152 } catch (Exception e) { 153 } 154 */ 155#endif 156} 157 158int ProgressRenderer::getCurrentPercent() 159{ 160 int returnValue = 0; 161 EnterCriticalSection( &ProgressRenderer::s_progress ); 162 returnValue = lastPercent; 163 LeaveCriticalSection( &ProgressRenderer::s_progress ); 164 return returnValue; 165} 166 167int ProgressRenderer::getCurrentTitle() 168{ 169 EnterCriticalSection( &ProgressRenderer::s_progress ); 170 int returnValue = title; 171 LeaveCriticalSection( &ProgressRenderer::s_progress ); 172 return returnValue; 173} 174 175int ProgressRenderer::getCurrentStatus() 176{ 177 EnterCriticalSection( &ProgressRenderer::s_progress ); 178 int returnValue = status; 179 LeaveCriticalSection( &ProgressRenderer::s_progress ); 180 return returnValue; 181} 182 183ProgressRenderer::eProgressStringType ProgressRenderer::getType() 184{ 185 EnterCriticalSection( &ProgressRenderer::s_progress ); 186 eProgressStringType returnValue = m_eType; 187 LeaveCriticalSection( &ProgressRenderer::s_progress ); 188 return returnValue; 189} 190 191void ProgressRenderer::setType(eProgressStringType eType) 192{ 193 EnterCriticalSection( &ProgressRenderer::s_progress ); 194 m_eType=eType; 195 LeaveCriticalSection( &ProgressRenderer::s_progress ); 196} 197 198void ProgressRenderer::progressStage(wstring &wstrText) 199{ 200 EnterCriticalSection( &ProgressRenderer::s_progress ); 201 m_wstrText=wstrText; 202 setType(eProgressStringType_String); 203 LeaveCriticalSection( &ProgressRenderer::s_progress ); 204} 205 206wstring& ProgressRenderer::getProgressString(void) 207{ 208 EnterCriticalSection( &ProgressRenderer::s_progress ); 209 wstring &temp=m_wstrText; 210 LeaveCriticalSection( &ProgressRenderer::s_progress ); 211 return temp; 212} 213 214