mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-23 22:23:38 +00:00
138 lines
5 KiB
C++
138 lines
5 KiB
C++
#include "Linux_App.h"
|
|
|
|
#include <assert.h>
|
|
|
|
#include <string>
|
|
|
|
#include "4J.Render/4J_Render.h"
|
|
#include "4J_Profile.h"
|
|
#include "4J_Storage.h"
|
|
#include "Minecraft.Client/Common/Consoles_App.h"
|
|
#include "Minecraft.Client/Common/src/Network/GameNetworkManager.h"
|
|
#include "Minecraft.Client/Common/src/UI/All Platforms/UIStructs.h"
|
|
#include "Minecraft.Client/Linux/Linux_App.h"
|
|
#include "console_helpers/C4JThread.h"
|
|
#include "minecraft/client/Minecraft.h"
|
|
#include "minecraft/client/User.h"
|
|
#include "minecraft/server/MinecraftServer.h"
|
|
#include "minecraft/world/level/LevelSettings.h"
|
|
|
|
CConsoleMinecraftApp app;
|
|
|
|
#define CONTEXT_GAME_STATE 0
|
|
|
|
CConsoleMinecraftApp::CConsoleMinecraftApp() : CMinecraftApp() {}
|
|
|
|
void CConsoleMinecraftApp::SetRichPresenceContext(int iPad, int 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(nullptr);
|
|
|
|
// 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_t 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 = nullptr;
|
|
|
|
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 = param;
|
|
|
|
// Reset the autosave time
|
|
app.SetAutosaveTimerTime();
|
|
|
|
C4JThread* thread = new C4JThread(loadingParams->func,
|
|
loadingParams->lpParam, "RunNetworkGame");
|
|
thread->run();
|
|
}
|
|
|
|
int CConsoleMinecraftApp::GetLocalTMSFileIndex(wchar_t* wchTMSFile,
|
|
bool bFilenameIncludesExtension,
|
|
eFileExtensionType eEXT) {
|
|
return -1;
|
|
}
|
|
|
|
int CConsoleMinecraftApp::LoadLocalTMSFile(wchar_t* wchTMSFile) { return -1; }
|
|
|
|
int CConsoleMinecraftApp::LoadLocalTMSFile(wchar_t* wchTMSFile,
|
|
eFileExtensionType eExt) {
|
|
return -1;
|
|
}
|
|
|
|
void CConsoleMinecraftApp::FreeLocalTMSFiles(eTMSFileType eType) {}
|