diff --git a/COMPILE.md b/COMPILE.md index 7d46f340..05bf0898 100644 --- a/COMPILE.md +++ b/COMPILE.md @@ -2,13 +2,14 @@ ## Visual Studio -1. Clone or download the repository -1. Open the repo folder in Visual Studio 2022+. -2. Wait for cmake to configure the project and load all assets (this may take a few minutes on the first run). -3. Right click a folder in the solution explorer and switch to the 'CMake Targets View' -4. Select platform and configuration from the dropdown. EG: `Windows64 - Debug` or `Windows64 - Release` -5. Pick the startup project `Minecraft.Client.exe` or `Minecraft.Server.exe` using the debug targets dropdown -6. Build and run the project: +1. Clone the repo, including submodules. + - If you don't, the build will fail. `git clone --recurse-submodules https://github.com/MCLCE/MinecraftConsoles.git` +2. Open the repo folder in Visual Studio 2022+. +3. Wait for cmake to configure the project and load all assets (this may take a few minutes on the first run). +4. Right click a folder in the solution explorer and switch to the 'CMake Targets View' +5. Select platform and configuration from the dropdown. EG: `Windows64 - Debug` or `Windows64 - Release` +6. Pick the startup project `Minecraft.Client.exe` or `Minecraft.Server.exe` using the debug targets dropdown +7. Build and run the project: - `Build > Build Solution` (or `Ctrl+Shift+B`) - Start debugging with `F5`. diff --git a/Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp b/Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp index 0e858213..d87aef57 100644 --- a/Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp @@ -53,7 +53,6 @@ int UIScene_LoadMenu::LoadSaveDataThumbnailReturned(LPVOID lpParam,PBYTE pbThumb app.DebugPrintf("Thumbnail data is nullptr, or has size 0\n"); pClass->m_bThumbnailGetFailed = true; } - pClass->m_bRetrievingSaveThumbnail = false; } return 0; @@ -100,7 +99,6 @@ UIScene_LoadMenu::UIScene_LoadMenu(int iPad, void *initData, UILayer *parentLaye m_bIsSaveOwner = true; m_bSaveThumbnailReady = false; - m_bRetrievingSaveThumbnail = true; m_bShowTimer = false; m_pDLCPack = nullptr; m_bAvailableTexturePacksChecked=false; @@ -274,9 +272,9 @@ UIScene_LoadMenu::UIScene_LoadMenu(int iPad, void *initData, UILayer *parentLaye m_bitmapIcon.setTextureName(wFilename); m_pbThumbnailData = params->saveDetails->pbThumbnailData; m_uiThumbnailSize = params->saveDetails->dwThumbnailSize; + m_bSaveThumbnailReady = true; } - m_bRetrievingSaveThumbnail = false; } #endif } diff --git a/Minecraft.Client/Common/UI/UIScene_LoadMenu.h b/Minecraft.Client/Common/UI/UIScene_LoadMenu.h index 53d66d55..5b2b3435 100644 --- a/Minecraft.Client/Common/UI/UIScene_LoadMenu.h +++ b/Minecraft.Client/Common/UI/UIScene_LoadMenu.h @@ -50,7 +50,6 @@ private: int m_iGameModeId; bool m_bHasBeenInCreative; bool m_bIsSaveOwner; - bool m_bRetrievingSaveThumbnail; bool m_bSaveThumbnailReady; bool m_bMultiplayerAllowed; bool m_bShowTimer; diff --git a/Minecraft.Client/Windows64/4JLibs b/Minecraft.Client/Windows64/4JLibs index f567d33c..8fb036f6 160000 --- a/Minecraft.Client/Windows64/4JLibs +++ b/Minecraft.Client/Windows64/4JLibs @@ -1 +1 @@ -Subproject commit f567d33ccbddad1d8356e4d8344b22de80f23ab2 +Subproject commit 8fb036f6d6ca5aa5aa2e20633638d6232a58d508 diff --git a/README.md b/README.md index 9c59942c..aa7f272b 100644 --- a/README.md +++ b/README.md @@ -44,10 +44,16 @@ The goal is simple: preserve the original LCE gameplay feel while making it prac ## Quick Start (Visual Studio) 1. Install Visual Studio 2022 (or newer) with C++ workloads. -2. Open this `GAME` directory in Visual Studio. -3. Wait for CMake configure/generation to complete. -4. Select a configuration such as `Windows64 - Debug`. -5. Build and run `Minecraft.Client.exe` or `Minecraft.Server.exe`. +2. Clone the repository with submodules, or initialize them after cloning: + +```powershell +git submodule update --init --recursive +``` + +3. Open this `GAME` directory in Visual Studio. +4. Wait for CMake configure/generation to complete. +5. Select a configuration such as `Windows64 - Debug`. +6. Build and run `Minecraft.Client.exe` or `Minecraft.Server.exe`. ## Build With CMake @@ -96,6 +102,28 @@ cd .\build\windows64\Minecraft.Server\Debug Important: launch from the output directory so relative asset paths resolve correctly. +## Controls (Keyboard & Mouse) + +- **Movement**: `W` `A` `S` `D` +- **Jump / Fly Up**: `Space` +- **Sneak / Fly Down**: `Shift` hold +- **Sprint**: `Ctrl` hold or double-tap `W` +- **Inventory**: `E` +- **Chat**: `T` +- **Drop Item**: `Q` +- **Crafting**: `C` +- **Toggle View**: `F5` +- **Fullscreen**: `F11` +- **Pause Menu**: `Esc` +- **Attack / Destroy**: left click +- **Use / Place**: right click +- **Select Item**: mouse wheel or `1` to `9` +- **Player List / Host Options**: `Tab` +- **Toggle HUD**: `F1` +- **Toggle Debug Info**: `F3` +- **Open Debug Overlay**: `F4` +- **Toggle Debug Console**: `F6` + ## Client Launch Arguments | Argument | Description | @@ -153,7 +181,24 @@ Ensure game is launched from the correct output folder with `Common/Media` prese ## Dedicated Server `Minecraft.Server` loads `server.properties` from its working directory. -CLI arguments override properties. +If the file is missing or contains invalid values, defaults are auto-generated or normalized on startup. CLI arguments override properties. + +Important keys: + +| Key | Values / Range | Default | Notes | +|---|---|---|---| +| `server-port` | `1-65535` | `25565` | Listen TCP port | +| `server-ip` | string | `0.0.0.0` | Bind address | +| `server-name` | string, max 16 chars | `DedicatedServer` | Host display name | +| `max-players` | `1-8` | `8` | Public player slots | +| `level-name` | string | `world` | Display world name | +| `level-id` | safe ID string | derived from `level-name` | Save folder ID | +| `level-seed` | int64 or empty | empty | Empty means random seed | +| `world-size` | `classic`, `small`, `medium`, `large` | `classic` | World size preset | +| `log-level` | `debug`, `info`, `warn`, `error` | `info` | Server log verbosity | +| `autosave-interval` | `5-3600` | `60` | Seconds between autosaves | +| `white-list` | `true` or `false` | `false` | Enable access list checks | +| `lan-advertise` | `true` or `false` | `false` | LAN session advertisement | Common flags: