diff --git a/Minecraft.Client/Common/UI/IUIScene_PauseMenu.cpp b/Minecraft.Client/Common/UI/IUIScene_PauseMenu.cpp index fe118919..fa10afc4 100644 --- a/Minecraft.Client/Common/UI/IUIScene_PauseMenu.cpp +++ b/Minecraft.Client/Common/UI/IUIScene_PauseMenu.cpp @@ -438,6 +438,7 @@ static bool Win64_DeleteSaveDirectory(const wchar_t* wPath) // This function performs the meat of exiting from a level. It should be called from a thread other than the main thread. void IUIScene_PauseMenu::_ExitWorld(LPVOID lpParameter) { +#ifndef MINECRAFT_SERVER_BUILD Minecraft *pMinecraft=Minecraft::GetInstance(); // 4J Added: Capture hardcore delete info before the server is destroyed @@ -724,6 +725,7 @@ void IUIScene_PauseMenu::_ExitWorld(LPVOID lpParameter) // Make sure we don't think saving is disabled in the menus StorageManager.SetSaveDisabled(false); #endif +#endif } @@ -780,4 +782,4 @@ int IUIScene_PauseMenu::DisableAutosaveDialogReturned(void *pParam,int iPad,C4JS app.SetAction(iPad,eAppAction_SaveGame); } return 0; -} \ No newline at end of file +} diff --git a/Minecraft.Client/LevelRenderer.cpp b/Minecraft.Client/LevelRenderer.cpp index de422457..7ea382a2 100644 --- a/Minecraft.Client/LevelRenderer.cpp +++ b/Minecraft.Client/LevelRenderer.cpp @@ -141,8 +141,9 @@ LevelRenderer::LevelRenderer(Minecraft *mc, Textures *textures) culledEntities = 0; chunkFixOffs = 0; frame = 0; +#ifndef MINECRAFT_SERVER_BUILD repeatList = MemoryTracker::genLists(1); - +#endif destroyProgress = 0.0f; totalChunks= offscreenChunks= occludedChunks= renderedChunks= emptyChunks = 0; @@ -171,7 +172,7 @@ LevelRenderer::LevelRenderer(Minecraft *mc, Textures *textures) this->mc = mc; this->textures = textures; - +#ifndef MINECRAFT_SERVER_BUILD chunkLists = MemoryTracker::genLists(getGlobalChunkCount() * CHUNK_RENDER_LAYERS); // One render list per chunk render layer. globalChunkFlags = new unsigned char[getGlobalChunkCount()]; memset(globalChunkFlags, 0, getGlobalChunkCount()); @@ -261,6 +262,7 @@ LevelRenderer::LevelRenderer(Minecraft *mc, Textures *textures) t->end(); glEndList(); } +#endif Chunk::levelRenderer = this; @@ -536,6 +538,7 @@ void LevelRenderer::allChanged(int playerIndex) void LevelRenderer::renderEntities(Vec3 *cam, Culler *culler, float a) { +#ifndef MINECRAFT_SERVER_BUILD if (mc == nullptr || mc->player == nullptr) { return; @@ -662,6 +665,7 @@ void LevelRenderer::renderEntities(Vec3 *cam, Culler *culler, float a) LeaveCriticalSection(&m_csRenderableTileEntities); mc->gameRenderer->turnOffLightLayer(a); // 4J - brought forward from 1.8.2 +#endif } wstring LevelRenderer::gatherStats1() @@ -3960,7 +3964,9 @@ int LevelRenderer::rebuildChunkThreadProc(LPVOID lpParam) AABB::CreateNewThreadStorage(); IntCache::CreateNewThreadStorage(); Tesselator::CreateNewThreadStorage(1024*1024); +#ifndef MINECRAFT_SERVER_BUILD RenderManager.InitialiseContext(); +#endif Chunk::CreateNewThreadStorage(); Tile::CreateNewThreadStorage(); diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp index 76a177e5..0095e3cc 100644 --- a/Minecraft.Client/Minecraft.cpp +++ b/Minecraft.Client/Minecraft.cpp @@ -141,8 +141,10 @@ Minecraft::Minecraft(Component *mouseComponent, Canvas *parent, MinecraftApplet user = nullptr; parent = nullptr; pause = false; +#ifndef MINECRAFT_SERVER_BUILD textures = nullptr; font = nullptr; +#endif screen = nullptr; localPlayerIdx = 0; rightClickDelay = 0; @@ -151,8 +153,9 @@ Minecraft::Minecraft(Component *mouseComponent, Canvas *parent, MinecraftApplet InitializeCriticalSection( &ProgressRenderer::s_progress ); InitializeCriticalSection(&m_setLevelCS); //m_hPlayerRespawned = CreateEvent(nullptr, FALSE, FALSE, nullptr); - +#ifndef MINECRAFT_SERVER_BUILD progressRenderer = nullptr; +#endif gameRenderer = nullptr; bgLoader = nullptr; @@ -166,8 +169,12 @@ Minecraft::Minecraft(Component *mouseComponent, Canvas *parent, MinecraftApplet orgWidth = orgHeight = 0; achievementPopup = new AchievementPopup(this); gui = nullptr; +#ifndef MINECRAFT_SERVER_BUILD noRender = false; humanoidModel = new HumanoidModel(0); +#else + noRender = true; +#endif hitResult = nullptr; options = nullptr; soundEngine = new SoundEngine(); @@ -338,12 +345,13 @@ void Minecraft::init() options = new Options(this, workingDirectory); skins = new TexturePackRepository(workingDirectory, this); skins->addDebugPacks(); +#ifndef MINECRAFT_SERVER_BUILD textures = new Textures(skins, options); //renderLoadingScreen(); font = new Font(options, L"font/Default.png", textures, false, &DEFAULT_FONT_LOCATION, 23, 20, 8, 8, SFontData::Codepoints); altFont = new Font(options, L"font/alternate.png", textures, false, &ALT_FONT_LOCATION, 16, 16, 8, 8); - +#endif //if (options.languageCode != null) { // Language.getInstance().loadLanguage(options.languageCode); // // font.setEnforceUnicodeSheet("true".equalsIgnoreCase(I18n.get("language.enforceUnicode"))); @@ -357,7 +365,9 @@ void Minecraft::init() //FoliageColor::init(textures->loadTexturePixels(L"misc/foliagecolor.png")); gameRenderer = new GameRenderer(this); +#ifndef MINECRAFT_SERVER_BUILD EntityRenderDispatcher::instance->itemInHandRenderer = new ItemInHandRenderer(this,false); +#endif for( int i=0 ; i<4 ; ++i ) stats[i] = new StatsCounter(); @@ -384,6 +394,7 @@ void Minecraft::init() e.printStackTrace(); } #endif +#ifndef MINECRAFT_SERVER_BUILD MemSect(31); checkGlError(L"Pre startup"); @@ -407,12 +418,17 @@ void Minecraft::init() MemSect(31); checkGlError(L"Startup"); MemSect(0); - +#endif // openGLCapabilities = new OpenGLCapabilities(); // 4J - removed - +#ifndef MINECRAFT_SERVER_BUILD levelRenderer = new LevelRenderer(this, textures); +#else + levelRenderer = new LevelRenderer(this, nullptr); +#endif //textures->register(&TextureAtlas::LOCATION_BLOCKS, new TextureAtlas(Icon::TYPE_TERRAIN, TN_TERRAIN)); //textures->register(&TextureAtlas::LOCATION_ITEMS, new TextureAtlas(Icon::TYPE_ITEM, TN_GUI_ITEMS)); +#ifndef MINECRAFT_SERVER_BUILD + textures->stitch(); glViewport(0, 0, width, height); @@ -424,6 +440,7 @@ void Minecraft::init() MemSect(0); gui = new Gui(this); + if (connectToIp != L"") // 4J - was nullptr comparison { // setScreen(new ConnectScreen(this, connectToIp, connectToPort)); // 4J TODO - put back in @@ -435,6 +452,7 @@ void Minecraft::init() progressRenderer = new ProgressRenderer(this); RenderManager.CBuffLockStaticCreations(); +#endif } void Minecraft::renderLoadingScreen() @@ -1262,11 +1280,14 @@ void Minecraft::run_middle() if(running) { +#ifndef MINECRAFT_SERVER_BUILD if (reloadTextures) { reloadTextures = false; textures->reloadAll(); } +#endif + //while (running) { @@ -2340,13 +2361,18 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures) // soundEngine.playMusicTick(); if (!pause && level != nullptr) gameMode->tick(); +#ifndef MINECRAFT_SERVER_BUILD MemSect(31); glBindTexture(GL_TEXTURE_2D, textures->loadTexture(TN_TERRAIN)); //L"/terrain.png")); MemSect(0); +#endif + if( bFirst ) { PIXBeginNamedEvent(0,"Texture tick"); +#ifndef MINECRAFT_SERVER_BUILD if (!pause) textures->tick(bUpdateTextures); +#endif PIXEndNamedEvent(); } @@ -4360,12 +4386,13 @@ void Minecraft::setLevel(MultiPlayerLevel *level, int message /*=-1*/, shared_pt EnterCriticalSection(&m_setLevelCS); bool playerAdded = false; this->cameraTargetPlayer = nullptr; - +#ifdef MINECRAFT_SERVER_BUILD if(progressRenderer != nullptr) { this->progressRenderer->progressStart(message); this->progressRenderer->progressStage(-1); } +#endif // Stop menu music and transition to game music for the new level soundEngine->playStreaming(L"", 0, 0, 0, 1, 1); @@ -4588,11 +4615,14 @@ void Minecraft::setLevel(MultiPlayerLevel *level, int message /*=-1*/, shared_pt void Minecraft::prepareLevel(int title) { +#ifndef MINECRAFT_SERVER_BUILD if(progressRenderer != nullptr) { this->progressRenderer->progressStart(title); this->progressRenderer->progressStage(IDS_PROGRESS_BUILDING_TERRAIN); } +#endif + int r = 128; if (gameMode->isCutScene()) r = 64; int pp = 0; @@ -4616,7 +4646,7 @@ void Minecraft::prepareLevel(int title) spcc->centerOn(spawnPos->x >> 4, spawnPos->z >> 4); } #endif - +#ifndef MINECRAFT_SERVER_BUILD for (int x = -r; x <= r; x += 16) { for (int z = -r; z <= r; z += 16) @@ -4632,7 +4662,8 @@ void Minecraft::prepareLevel(int title) { if(progressRenderer != nullptr) this->progressRenderer->progressStage(IDS_PROGRESS_SIMULATING_WORLD); max = 2000; -} + } +#endif } wstring Minecraft::gatherStats1() @@ -4892,8 +4923,10 @@ void Minecraft::main() useLomp = true; MinecraftWorld_RunStaticCtors(); +#ifndef MINECRAFT_SERVER_BUILD EntityRenderDispatcher::staticCtor(); TileEntityRenderDispatcher::staticCtor(); +#endif User::staticCtor(); Tutorial::staticCtor(); ColourTable::staticCtor(); diff --git a/Minecraft.Client/MinecraftServer.cpp b/Minecraft.Client/MinecraftServer.cpp index 3e15b344..db87c954 100644 --- a/Minecraft.Client/MinecraftServer.cpp +++ b/Minecraft.Client/MinecraftServer.cpp @@ -559,8 +559,10 @@ MinecraftServer::MinecraftServer() m_bLoaded = false; stopped = false; tickCount = 0; +#ifndef MINECRAFT_SERVER_BUILD wstring progressStatus; progress = 0; +#endif motd = L""; m_isServerPaused = false; @@ -736,8 +738,10 @@ bool MinecraftServer::initServer(int64_t seed, NetworkGameInitData *initData, DW pLevelType = LevelType::lvl_normal; } +#ifndef MINECRAFT_SERVER_BUILD ProgressRenderer *mcprogress = Minecraft::GetInstance()->progressRenderer; mcprogress->progressStart(IDS_PROGRESS_INITIALISING_SERVER); +#endif if( findSeed ) { @@ -876,7 +880,9 @@ void MinecraftServer::postProcessTerminate(ProgressRenderer *mcprogress) if( postProcessItemCount ) { +#ifndef MINECRAFT_SERVER_BUILD mcprogress->progressStagePercentage((postProcessItemCount - postProcessItemRemaining) * 100 / postProcessItemCount); +#endif } CompressedTileStorage::tick(); SparseLightStorage::tick(); @@ -1030,7 +1036,7 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring players->setLevel(levels); } - +#ifndef MINECRAFT_SERVER_BUILD if( levels[0]->isNew ) { mcprogress->progressStage(IDS_PROGRESS_GENERATING_SPAWN_AREA); @@ -1039,6 +1045,7 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring { mcprogress->progressStage(IDS_PROGRESS_LOADING_SPAWN_AREA); } +#endif app.SetGameHostOption( eGameHostOption_HasBeenInCreative, gameType == GameType::CREATIVE || levels[0]->getHasBeenInCreative() ); app.SetGameHostOption( eGameHostOption_Structures, levels[0]->isGenerateMapFeatures() ); @@ -1151,7 +1158,12 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring { delete spawnPos; m_postUpdateTerminate = true; +#ifndef MINECRAFT_SERVER_BUILD postProcessTerminate(mcprogress); +#else + postProcessTerminate(nullptr); +#endif + return false; } // printf(">>>%d %d %d\n",i,x,z); @@ -1161,7 +1173,9 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring { int pos = (x + r) * twoRPlusOne + (z + 1); // setProgress(L"Preparing spawn area", (pos) * 100 / total); +#ifndef MINECRAFT_SERVER_BUILD mcprogress->progressStagePercentage((pos+r) * 100 / total); +#endif // lastTime = now; } static int count = 0; @@ -1203,7 +1217,11 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring // Wait for post processing, then lighting threads, to end (post-processing may make more lighting changes) m_postUpdateTerminate = true; +#ifndef MINECRAFT_SERVER_BUILD postProcessTerminate(mcprogress); +#else + postProcessTerminate(nullptr); +#endif // stronghold position? @@ -1245,14 +1263,22 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring if( levels[1]->isNew ) { +#ifndef MINECRAFT_SERVER_BUILD levels[1]->save(true, mcprogress); +#else + levels[1]->save(true, nullptr); +#endif } if( s_bServerHalted || !g_NetworkManager.IsInSession() ) return false; if( levels[2]->isNew ) { +#ifndef MINECRAFT_SERVER_BUILD levels[2]->save(true, mcprogress); +#else + levels[2]->save(true, nullptr); +#endif } if( s_bServerHalted || !g_NetworkManager.IsInSession() ) return false; @@ -1264,7 +1290,11 @@ bool MinecraftServer::loadLevel(LevelStorageSource *storageSource, const wstring if( levels[0]->isNew ) { +#ifndef MINECRAFT_SERVER_BUILD levels[0]->save(true, mcprogress); +#else + levels[0]->save(true, nullptr); +#endif } if( s_bServerHalted || !g_NetworkManager.IsInSession() ) return false; @@ -1366,15 +1396,19 @@ void MinecraftServer::overwriteHellBordersForNewWorldSize(ServerLevel* level, in void MinecraftServer::setProgress(const wstring& status, int progress) { +#ifndef MINECRAFT_SERVER_BUILD progressStatus = status; this->progress = progress; +#endif // logger.info(status + ": " + progress + "%"); } void MinecraftServer::endProgress() { +#ifndef MINECRAFT_SERVER_BUILD progressStatus = L""; this->progress = 0; +#endif } void MinecraftServer::saveAllChunks() @@ -1392,8 +1426,11 @@ void MinecraftServer::saveAllChunks() ServerLevel *level = levels[levels.length - 1 - i]; if( level ) // 4J - added check as level can be nullptr if we end up in stopServer really early on due to network failure { +#ifndef MINECRAFT_SERVER_BUILD level->save(true, Minecraft::GetInstance()->progressRenderer); - +#else + level->save(true, nullptr); +#endif // Only close the level storage when we have saved the last level, otherwise we need to recreate the region files // when saving the next levels if( i == (levels.length - 1)) @@ -1524,7 +1561,11 @@ void MinecraftServer::stopServer(bool didInit) { if (players != nullptr) { +#ifndef MINECRAFT_SERVER_BUILD players->saveAll(Minecraft::GetInstance()->progressRenderer, true); +#else + players->saveAll(nullptr, true); +#endif } // 4J Stu - Save the levels in reverse order so we don't overwrite the level.dat // with the data from the nethers leveldata. @@ -1542,7 +1583,11 @@ void MinecraftServer::stopServer(bool didInit) app.m_gameRules.unloadCurrentGameRules(); if( levels[0] != nullptr ) // This can be null if stopServer happens very quickly due to network error { +#ifndef MINECRAFT_SERVER_BUILD levels[0]->saveToDisc(Minecraft::GetInstance()->progressRenderer, false); +#else + levels[0]->saveToDisc(nullptr, false); +#endif } } } @@ -2005,7 +2050,11 @@ void MinecraftServer::run(int64_t seed, void *lpParameter) app.EnterSaveNotificationSection(); if (players != nullptr) { - players->saveAll(Minecraft::GetInstance()->progressRenderer); +#ifndef MINECRAFT_SERVER_BUILD + players->saveAll(Minecraft::GetInstance()->progressRenderer); +#else + players->saveAll(nullptr); +#endif } players->broadcastAll(std::make_shared(20)); @@ -2017,7 +2066,11 @@ void MinecraftServer::run(int64_t seed, void *lpParameter) // with the data from the nethers leveldata. // Fix for #7418 - Functional: Gameplay: Saving after sleeping in a bed will place player at nighttime when restarting. ServerLevel *level = levels[levels.length - 1 - j]; +#ifndef MINECRAFT_SERVER_BUILD level->save(true, Minecraft::GetInstance()->progressRenderer, (eAction==eXuiServerAction_AutoSaveGame)); +#else + level->save(true, nullptr, (eAction == eXuiServerAction_AutoSaveGame)); +#endif players->broadcastAll(std::make_shared(33 + (j * 33))); } @@ -2025,7 +2078,11 @@ void MinecraftServer::run(int64_t seed, void *lpParameter) { saveGameRules(); - levels[0]->saveToDisc(Minecraft::GetInstance()->progressRenderer, (eAction==eXuiServerAction_AutoSaveGame)); +#ifndef MINECRAFT_SERVER_BUILD + levels[0]->saveToDisc(Minecraft::GetInstance()->progressRenderer, (eAction == eXuiServerAction_AutoSaveGame)); +#else + levels[0]->saveToDisc(nullptr, (eAction == eXuiServerAction_AutoSaveGame)); +#endif } app.LeaveSaveNotificationSection(); break;