the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
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}