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 "UIScene_InGameHostOptionsMenu.h"
4#include "..\..\Minecraft.h"
5#include "..\..\MultiPlayerLocalPlayer.h"
6#include "..\..\ClientConnection.h"
7#include "..\..\..\Minecraft.World\net.minecraft.network.h"
8#include "..\..\..\Minecraft.World\net.minecraft.network.packet.h"
9
10UIScene_InGameHostOptionsMenu::UIScene_InGameHostOptionsMenu(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer)
11{
12 // Setup all the Iggy references we need for this scene
13 initialiseMovie();
14
15 m_checkboxFireSpreads.init(app.GetString(IDS_FIRE_SPREADS), eControl_FireSpreads, app.GetGameHostOption(eGameHostOption_FireSpreads)!=0);
16 m_checkboxTNT.init(app.GetString(IDS_TNT_EXPLODES), eControl_TNT, app.GetGameHostOption(eGameHostOption_TNT)!=0);
17
18 m_checkboxDoMobLoot.init(app.GetString(IDS_MOB_LOOT), eControl_DoMobLoot, app.GetGameHostOption(eGameHostOption_DoMobLoot));
19 m_checkboxDoTileDrops.init(app.GetString(IDS_TILE_DROPS), eControl_DoTileDrops, app.GetGameHostOption(eGameHostOption_DoTileDrops));
20 m_checkboxNaturalRegeneration.init(app.GetString(IDS_NATURAL_REGEN), eControl_NaturalRegeneration, app.GetGameHostOption(eGameHostOption_NaturalRegeneration));
21
22 // If cheats are disabled, remove checkboxes
23 if (!app.GetGameHostOption(eGameHostOption_CheatsEnabled))
24 {
25 removeControl(&m_checkboxMobGriefing, true);
26 removeControl(&m_checkboxKeepInventory, true);
27 removeControl(&m_checkboxDoMobSpawning, true);
28 removeControl(&m_checkboxDoDaylightCycle, true);
29 }
30
31 m_checkboxMobGriefing.init(app.GetString(IDS_MOB_GRIEFING), eControl_MobGriefing, app.GetGameHostOption(eGameHostOption_MobGriefing));
32 m_checkboxKeepInventory.init(app.GetString(IDS_KEEP_INVENTORY), eControl_KeepInventory, app.GetGameHostOption(eGameHostOption_KeepInventory));
33 m_checkboxDoMobSpawning.init(app.GetString(IDS_MOB_SPAWNING), eControl_DoMobSpawning, app.GetGameHostOption(eGameHostOption_DoMobSpawning));
34 m_checkboxDoDaylightCycle.init(app.GetString(IDS_DAYLIGHT_CYCLE), eControl_DoDaylightCycle, app.GetGameHostOption(eGameHostOption_DoDaylightCycle));
35
36 INetworkPlayer *localPlayer = g_NetworkManager.GetLocalPlayerByUserIndex( m_iPad );
37 unsigned int privs = app.GetPlayerPrivileges(localPlayer->GetSmallId());
38 if(app.GetGameHostOption(eGameHostOption_CheatsEnabled)
39 && Player::getPlayerGamePrivilege(privs,Player::ePlayerGamePrivilege_CanTeleport)
40 && g_NetworkManager.GetPlayerCount() > 1)
41 {
42 m_buttonTeleportToPlayer.init(app.GetString(IDS_TELEPORT_TO_PLAYER), eControl_TeleportToPlayer);
43 m_buttonTeleportToMe.init(app.GetString(IDS_TELEPORT_TO_ME), eControl_TeleportToMe);
44 }
45 else
46 {
47 removeControl(&m_buttonTeleportToPlayer, true);
48 removeControl(&m_buttonTeleportToMe, true);
49 }
50}
51
52wstring UIScene_InGameHostOptionsMenu::getMoviePath()
53{
54 if(app.GetLocalPlayerCount() > 1)
55 {
56 return L"InGameHostOptionsSplit";
57 }
58 else
59 {
60 return L"InGameHostOptions";
61 }
62}
63
64void UIScene_InGameHostOptionsMenu::updateTooltips()
65{
66 ui.SetTooltips( m_iPad, IDS_TOOLTIPS_SELECT,IDS_TOOLTIPS_BACK);
67}
68
69void UIScene_InGameHostOptionsMenu::handleReload()
70{
71 UIScene::handleReload();
72
73 // If cheats are disabled, remove checkboxes
74 if (!app.GetGameHostOption(eGameHostOption_CheatsEnabled))
75 {
76 removeControl(&m_checkboxMobGriefing, true);
77 removeControl(&m_checkboxKeepInventory, true);
78 removeControl(&m_checkboxDoMobSpawning, true);
79 removeControl(&m_checkboxDoDaylightCycle, true);
80 }
81
82 INetworkPlayer *localPlayer = g_NetworkManager.GetLocalPlayerByUserIndex( m_iPad );
83 unsigned int privs = app.GetPlayerPrivileges(localPlayer->GetSmallId());
84 if(app.GetGameHostOption(eGameHostOption_CheatsEnabled)
85 && Player::getPlayerGamePrivilege(privs,Player::ePlayerGamePrivilege_CanTeleport)
86 && g_NetworkManager.GetPlayerCount() > 1)
87 {
88 }
89 else
90 {
91 removeControl(&m_buttonTeleportToPlayer, true);
92 removeControl(&m_buttonTeleportToMe, true);
93 }
94}
95
96void UIScene_InGameHostOptionsMenu::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled)
97{
98 //app.DebugPrintf("UIScene_DebugOverlay handling input for pad %d, key %d, down- %s, pressed- %s, released- %s\n", iPad, key, down?"TRUE":"FALSE", pressed?"TRUE":"FALSE", released?"TRUE":"FALSE");
99
100 ui.AnimateKeyPress(iPad, key, repeat, pressed, released);
101 switch(key)
102 {
103 case ACTION_MENU_CANCEL:
104 if(pressed)
105 {
106 unsigned int hostOptions = app.GetGameHostOption(eGameHostOption_All);
107 app.SetGameHostOption(hostOptions, eGameHostOption_FireSpreads, m_checkboxFireSpreads.IsChecked());
108 app.SetGameHostOption(hostOptions, eGameHostOption_TNT, m_checkboxTNT.IsChecked());
109 app.SetGameHostOption(hostOptions, eGameHostOption_DoMobLoot, m_checkboxDoMobLoot.IsChecked());
110 app.SetGameHostOption(hostOptions, eGameHostOption_DoTileDrops, m_checkboxDoTileDrops.IsChecked());
111 app.SetGameHostOption(hostOptions, eGameHostOption_NaturalRegeneration, m_checkboxNaturalRegeneration.IsChecked());
112
113 // If cheats are enabled, set cheat values
114 if (app.GetGameHostOption(eGameHostOption_CheatsEnabled))
115 {
116 app.SetGameHostOption(hostOptions, eGameHostOption_MobGriefing, m_checkboxMobGriefing.IsChecked());
117 app.SetGameHostOption(hostOptions, eGameHostOption_KeepInventory, m_checkboxKeepInventory.IsChecked());
118 app.SetGameHostOption(hostOptions, eGameHostOption_DoMobSpawning, m_checkboxDoMobSpawning.IsChecked());
119 app.SetGameHostOption(hostOptions, eGameHostOption_DoDaylightCycle, m_checkboxDoDaylightCycle.IsChecked());
120 }
121
122 // Send update settings packet to server
123 if(hostOptions != app.GetGameHostOption(eGameHostOption_All) )
124 {
125 Minecraft *pMinecraft = Minecraft::GetInstance();
126 shared_ptr<MultiplayerLocalPlayer> player = pMinecraft->localplayers[m_iPad];
127 if(player->connection)
128 {
129 player->connection->send( shared_ptr<ServerSettingsChangedPacket>( new ServerSettingsChangedPacket( ServerSettingsChangedPacket::HOST_IN_GAME_SETTINGS, hostOptions) ) );
130 }
131 }
132
133 navigateBack();
134
135 handled = true;
136 }
137 break;
138 case ACTION_MENU_OK:
139#ifdef __ORBIS__
140 case ACTION_MENU_TOUCHPAD_PRESS:
141#endif
142 sendInputToMovie(key, repeat, pressed, released);
143 break;
144 case ACTION_MENU_UP:
145 case ACTION_MENU_DOWN:
146 sendInputToMovie(key, repeat, pressed, released);
147 break;
148 }
149}
150
151void UIScene_InGameHostOptionsMenu::handlePress(F64 controlId, F64 childId)
152{
153 TeleportMenuInitData *initData = new TeleportMenuInitData();
154 initData->iPad = m_iPad;
155 initData->teleportToPlayer = false;
156 if( (int)controlId == eControl_TeleportToPlayer )
157 {
158 initData->teleportToPlayer = true;
159 }
160 ui.NavigateToScene(m_iPad,eUIScene_TeleportMenu,(void*)initData);
161}