Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
5.7 kB · 189 lines
C++
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190#include "stdafx.h"#include "..\Common\Consoles_App.h"#include "..\User.h"#include "..\..\Minecraft.Client\Minecraft.h"#include "..\..\Minecraft.Client\MinecraftServer.h"#include "..\..\Minecraft.Client\PlayerList.h"#include "..\..\Minecraft.Client\ServerPlayer.h"#include "..\..\Minecraft.World\Level.h"#include "..\..\Minecraft.World\LevelSettings.h"#include "..\..\Minecraft.World\BiomeSource.h"#include "..\..\Minecraft.World\LevelType.h"
wstring g_playerName;
CConsoleMinecraftApp app;
static void LoadPlayerName(){ if (!g_playerName.empty()) return; g_playerName = L"Windows";
char exePath[MAX_PATH] = {}; GetModuleFileNameA(NULL, exePath, MAX_PATH); char *lastSlash = strrchr(exePath, '\\'); if (lastSlash) *(lastSlash + 1) = '\0'; char filePath[MAX_PATH] = {}; _snprintf_s(filePath, sizeof(filePath), _TRUNCATE, "%susername.txt", exePath);
FILE *f = NULL; if (fopen_s(&f, filePath, "r") == 0 && f) { char buf[128] = {}; if (fgets(buf, sizeof(buf), f)) { int len = (int)strlen(buf); while (len > 0 && (buf[len-1] == '\n' || buf[len-1] == '\r' || buf[len-1] == ' ')) buf[--len] = '\0'; if (len > 0) { wchar_t wbuf[128] = {}; mbstowcs(wbuf, buf, 127); g_playerName = wbuf; } } fclose(f); }}
CConsoleMinecraftApp::CConsoleMinecraftApp() : CMinecraftApp(){ m_bShutdown = false; LoadPlayerName();}
void CConsoleMinecraftApp::SetRichPresenceContext(int iPad, int contextId){ ProfileManager.SetRichPresenceContextValue(iPad,CONTEXT_GAME_STATE,contextId);}
void CConsoleMinecraftApp::StoreLaunchData(){}void CConsoleMinecraftApp::ExitGame(){ m_bShutdown = true;}void CConsoleMinecraftApp::FatalLoadError(){}
void CConsoleMinecraftApp::CaptureSaveThumbnail(){ RenderManager.CaptureThumbnail(&m_ThumbnailBuffer);}void CConsoleMinecraftApp::GetSaveThumbnail(PBYTE *pbData,DWORD *pdwSize){ // On a save caused by a create world, the thumbnail capture won't have happened if (m_ThumbnailBuffer.Allocated()) { if (pbData) { *pbData = new BYTE[m_ThumbnailBuffer.GetBufferSize()]; *pdwSize = m_ThumbnailBuffer.GetBufferSize(); memcpy(*pbData, m_ThumbnailBuffer.GetBufferPointer(), *pdwSize); } m_ThumbnailBuffer.Release(); } else { // No capture happened (e.g. first save on world creation) leave thumbnail as NULL if (pbData) *pbData = NULL; if (pdwSize) *pdwSize = 0; }}void CConsoleMinecraftApp::ReleaseSaveThumbnail(){}
void CConsoleMinecraftApp::GetScreenshot(int iPad,PBYTE *pbData,DWORD *pdwSize){}
void CConsoleMinecraftApp::TemporaryCreateGameStart(){ ////////////////////////////////////////////////////////////////////////////////////////////// From CScene_Main::OnInit
app.setLevelGenerationOptions(NULL);
// From CScene_Main::RunPlayGame Minecraft *pMinecraft=Minecraft::GetInstance(); app.ReleaseSaveThumbnail(); ProfileManager.SetLockedProfile(0); LoadPlayerName(); pMinecraft->user->name = g_playerName; 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(); 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){}