mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 10:03:38 +00:00
i noticed that the exit game button on the menu screen wasn't working, so i went ahead and enabled it and added the behavior to close the game. i added a Close method in the 4J_Render class and made a tweak to the _xbox check. the catch is that it uses the xbox text for the confirmation button, so i’m not sure if it’s the best approach, but it does work fine for me Signed-off-by: ViniciusCruzMoura <contato.cruz.moura@gmail.com>
135 lines
5.1 KiB
C++
135 lines
5.1 KiB
C++
#include "../../../Minecraft.World/Platform/stdafx.h"
|
|
#include "../Common/Consoles_App.h"
|
|
#include "../../Player/User.h"
|
|
#include "../../Minecraft.h"
|
|
#include "../../MinecraftServer.h"
|
|
#include "../../Network/PlayerList.h"
|
|
#include "../../Player/ServerPlayer.h"
|
|
#include "../../../Minecraft.World/Level/Level.h"
|
|
#include "../../../Minecraft.World/Level/Storage/LevelSettings.h"
|
|
#include "../../../Minecraft.World/WorldGen/Biomes/BiomeSource.h"
|
|
#include "../../../Minecraft.World/Level/Storage/LevelType.h"
|
|
#include "Linux_App.h"
|
|
|
|
CConsoleMinecraftApp app;
|
|
|
|
#define CONTEXT_GAME_STATE 0
|
|
|
|
CConsoleMinecraftApp::CConsoleMinecraftApp() : CMinecraftApp() {}
|
|
|
|
void CConsoleMinecraftApp::SetRichPresenceContext(int iPad, int contextId) {
|
|
ProfileManager.SetRichPresenceContextValue(iPad, CONTEXT_GAME_STATE,
|
|
contextId);
|
|
}
|
|
|
|
void CConsoleMinecraftApp::StoreLaunchData() {}
|
|
void CConsoleMinecraftApp::ExitGame() {
|
|
app.DebugPrintf("Linux_App CConsoleMinecraftApp::ExitGame AFTER START\n");
|
|
RenderManager.Close();
|
|
}
|
|
void CConsoleMinecraftApp::FatalLoadError() {
|
|
app.DebugPrintf(
|
|
"CConsoleMinecraftApp::FatalLoadError - asserting 0 and dying...\n");
|
|
assert(0);
|
|
}
|
|
|
|
void CConsoleMinecraftApp::CaptureSaveThumbnail() {}
|
|
void CConsoleMinecraftApp::GetSaveThumbnail(std::uint8_t** thumbnailData,
|
|
unsigned int* thumbnailSize) {}
|
|
void CConsoleMinecraftApp::ReleaseSaveThumbnail() {}
|
|
|
|
void CConsoleMinecraftApp::GetScreenshot(int iPad,
|
|
std::uint8_t** screenshotData,
|
|
unsigned int* screenshotSize) {}
|
|
|
|
void CConsoleMinecraftApp::TemporaryCreateGameStart() {
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
///From CScene_Main::OnInit
|
|
|
|
app.setLevelGenerationOptions(NULL);
|
|
|
|
// From CScene_Main::RunPlayGame
|
|
Minecraft* pMinecraft = Minecraft::GetInstance();
|
|
app.ReleaseSaveThumbnail();
|
|
ProfileManager.SetLockedProfile(0);
|
|
pMinecraft->user->name = L"Windows";
|
|
app.ApplyGameSettingsChanged(0);
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
///From CScene_MultiGameJoinLoad::OnInit
|
|
MinecraftServer::resetFlags();
|
|
|
|
// From CScene_MultiGameJoinLoad::OnNotifyPressEx
|
|
app.SetTutorialMode(false);
|
|
app.SetCorruptSaveDeleted(false);
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
///From CScene_MultiGameCreate::CreateGame
|
|
|
|
app.ClearTerrainFeaturePosition();
|
|
std::wstring wWorldName = L"TestWorld";
|
|
|
|
StorageManager.ResetSaveData();
|
|
StorageManager.SetSaveTitle(wWorldName.c_str());
|
|
|
|
bool isFlat = false;
|
|
__int64 seedValue =
|
|
0; // BiomeSource::findSeed(isFlat?LevelType::lvl_flat:LevelType::lvl_normal);
|
|
// // 4J - was (new Random())->nextLong() - now trying to actually
|
|
// find a seed to suit our requirements
|
|
|
|
NetworkGameInitData* param = new NetworkGameInitData();
|
|
param->seed = seedValue;
|
|
param->saveData = NULL;
|
|
|
|
app.SetGameHostOption(eGameHostOption_Difficulty, 0);
|
|
app.SetGameHostOption(eGameHostOption_FriendsOfFriends, 0);
|
|
app.SetGameHostOption(eGameHostOption_Gamertags, 1);
|
|
app.SetGameHostOption(eGameHostOption_BedrockFog, 1);
|
|
|
|
app.SetGameHostOption(
|
|
eGameHostOption_GameType,
|
|
GameType::CREATIVE->getId()); // LevelSettings::GAMETYPE_SURVIVAL
|
|
app.SetGameHostOption(eGameHostOption_LevelType, 0);
|
|
app.SetGameHostOption(eGameHostOption_Structures, 1);
|
|
app.SetGameHostOption(eGameHostOption_BonusChest, 0);
|
|
|
|
app.SetGameHostOption(eGameHostOption_PvP, 1);
|
|
app.SetGameHostOption(eGameHostOption_TrustPlayers, 1);
|
|
app.SetGameHostOption(eGameHostOption_FireSpreads, 1);
|
|
app.SetGameHostOption(eGameHostOption_TNT, 1);
|
|
app.SetGameHostOption(eGameHostOption_HostCanFly, 1);
|
|
app.SetGameHostOption(eGameHostOption_HostCanChangeHunger, 1);
|
|
app.SetGameHostOption(eGameHostOption_HostCanBeInvisible, 1);
|
|
|
|
param->settings = app.GetGameHostOption(eGameHostOption_All);
|
|
|
|
g_NetworkManager.FakeLocalPlayerJoined();
|
|
|
|
LoadingInputParams* loadingParams = new LoadingInputParams();
|
|
loadingParams->func = &CGameNetworkManager::RunNetworkGameThreadProc;
|
|
loadingParams->lpParam = (LPVOID)param;
|
|
|
|
// Reset the autosave time
|
|
app.SetAutosaveTimerTime();
|
|
|
|
C4JThread* thread = new C4JThread(loadingParams->func,
|
|
loadingParams->lpParam, "RunNetworkGame");
|
|
thread->Run();
|
|
}
|
|
|
|
int CConsoleMinecraftApp::GetLocalTMSFileIndex(WCHAR* wchTMSFile,
|
|
bool bFilenameIncludesExtension,
|
|
eFileExtensionType eEXT) {
|
|
return -1;
|
|
}
|
|
|
|
int CConsoleMinecraftApp::LoadLocalTMSFile(WCHAR* wchTMSFile) { return -1; }
|
|
|
|
int CConsoleMinecraftApp::LoadLocalTMSFile(WCHAR* wchTMSFile,
|
|
eFileExtensionType eExt) {
|
|
return -1;
|
|
}
|
|
|
|
void CConsoleMinecraftApp::FreeLocalTMSFiles(eTMSFileType eType) {}
|