the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 144 lines 3.8 kB view raw
1#include "stdafx.h" 2#include "UI.h" 3#include "UIComponent_Panorama.h" 4#include "Minecraft.h" 5#include "MultiPlayerLevel.h" 6#include "..\..\..\Minecraft.World\net.minecraft.world.level.dimension.h" 7#include "..\..\..\Minecraft.World\net.minecraft.world.level.storage.h" 8 9UIComponent_Panorama::UIComponent_Panorama(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer) 10{ 11 // Setup all the Iggy references we need for this scene 12 initialiseMovie(); 13 14 m_bShowingDay = true; 15 16 while(!m_hasTickedOnce) tick(); 17} 18 19wstring UIComponent_Panorama::getMoviePath() 20{ 21 switch( m_parentLayer->getViewport() ) 22 { 23 case C4JRender::VIEWPORT_TYPE_SPLIT_TOP: 24 case C4JRender::VIEWPORT_TYPE_SPLIT_BOTTOM: 25 case C4JRender::VIEWPORT_TYPE_SPLIT_LEFT: 26 case C4JRender::VIEWPORT_TYPE_SPLIT_RIGHT: 27 case C4JRender::VIEWPORT_TYPE_QUADRANT_TOP_LEFT: 28 case C4JRender::VIEWPORT_TYPE_QUADRANT_TOP_RIGHT: 29 case C4JRender::VIEWPORT_TYPE_QUADRANT_BOTTOM_LEFT: 30 case C4JRender::VIEWPORT_TYPE_QUADRANT_BOTTOM_RIGHT: 31 m_bSplitscreen = true; 32 return L"PanoramaSplit"; 33 break; 34 case C4JRender::VIEWPORT_TYPE_FULLSCREEN: 35 default: 36 m_bSplitscreen = false; 37 return L"Panorama"; 38 break; 39 } 40} 41 42void UIComponent_Panorama::tick() 43{ 44 if(!hasMovie()) return; 45 46 Minecraft *pMinecraft = Minecraft::GetInstance(); 47 EnterCriticalSection(&pMinecraft->m_setLevelCS); 48 if(pMinecraft->level!=NULL) 49 { 50 __int64 i64TimeOfDay =0; 51 // are we in the Nether? - Leave the time as 0 if we are, so we show daylight 52 if(pMinecraft->level->dimension->id==0) 53 { 54 i64TimeOfDay = pMinecraft->level->getLevelData()->getGameTime() % 24000; 55 } 56 57 if(i64TimeOfDay>14000) 58 { 59 setPanorama(false); 60 } 61 else 62 { 63 setPanorama(true); 64 } 65 } 66 else 67 { 68 setPanorama(true); 69 } 70 LeaveCriticalSection(&pMinecraft->m_setLevelCS); 71 72 UIScene::tick(); 73} 74 75void UIComponent_Panorama::render(S32 width, S32 height, C4JRender::eViewportType viewport) 76{ 77 bool specialViewport = (viewport == C4JRender::VIEWPORT_TYPE_SPLIT_TOP) || 78 (viewport == C4JRender::VIEWPORT_TYPE_SPLIT_BOTTOM) || 79 (viewport == C4JRender::VIEWPORT_TYPE_SPLIT_LEFT) || 80 (viewport == C4JRender::VIEWPORT_TYPE_SPLIT_RIGHT); 81 if(m_bSplitscreen && specialViewport) 82 { 83 S32 xPos = 0; 84 S32 yPos = 0; 85 switch( viewport ) 86 { 87 case C4JRender::VIEWPORT_TYPE_SPLIT_BOTTOM: 88 yPos = (S32)(ui.getScreenHeight() / 2); 89 break; 90 case C4JRender::VIEWPORT_TYPE_SPLIT_RIGHT: 91 xPos = (S32)(ui.getScreenWidth() / 2); 92 break; 93 } 94 ui.setupRenderPosition(xPos, yPos); 95 96 if((viewport == C4JRender::VIEWPORT_TYPE_SPLIT_LEFT) || (viewport == C4JRender::VIEWPORT_TYPE_SPLIT_RIGHT)) 97 { 98 // Need to render at full height, but only the left side of the scene 99 S32 tileXStart = 0; 100 S32 tileYStart = 0; 101 S32 tileWidth = width; 102 S32 tileHeight = (S32)(ui.getScreenHeight()); 103 104 IggyPlayerSetDisplaySize( getMovie(), m_movieWidth, m_movieHeight ); 105 106 IggyPlayerDrawTilesStart ( getMovie() ); 107 108 m_renderWidth = tileWidth; 109 m_renderHeight = tileHeight; 110 IggyPlayerDrawTile ( getMovie() , 111 tileXStart , 112 tileYStart , 113 tileXStart + tileWidth , 114 tileYStart + tileHeight , 115 0 ); 116 IggyPlayerDrawTilesEnd ( getMovie() ); 117 } 118 else 119 { 120 // Need to render at full height, and full width. But compressed into the viewport 121 IggyPlayerSetDisplaySize( getMovie(), ui.getScreenWidth(), ui.getScreenHeight()/2 ); 122 IggyPlayerDraw( getMovie() ); 123 } 124 } 125 else 126 { 127 UIScene::render(width, height, viewport); 128 } 129} 130 131void UIComponent_Panorama::setPanorama(bool isDay) 132{ 133 if(isDay != m_bShowingDay) 134 { 135 m_bShowingDay = isDay; 136 137 IggyDataValue result; 138 IggyDataValue value[1]; 139 value[0].type = IGGY_DATATYPE_boolean; 140 value[0].boolval = isDay; 141 142 IggyResult out = IggyPlayerCallMethodRS ( getMovie() , &result, IggyPlayerRootPath( getMovie() ), m_funcShowPanoramaDay , 1 , value ); 143 } 144}