Commit graph

318 commits

Author SHA1 Message Date
George V. 2ddf72a4eb
fix(audio): restore missing comma lost in upstream merge
A comma between "item.armor.equip_generic6" and "damage.critical" was
accidentally dropped during an upstream merge, causing the two entries
to be concatenated into a single string literal at compile time.

This produced an invalid sound key and led to crashes when:
- equipping armor
- triggering critical hits
2026-04-13 22:45:10 +03:00
George V. ac7a207597
Merge branch 'main' into upstream-merge
# Conflicts:
#	Minecraft.Client/Windows64Media/strings.h
#	Minecraft.World/BiomeSource.cpp
#	Minecraft.World/BiomeSource.h
2026-04-13 22:26:43 +03:00
SevenToaster509 f307d7b0eb Fix: Enchanting Table taking wrong levels
Was using cost instead of the index of the slot
2026-04-13 17:25:19 +01:00
Lord_Cambion 4fe92f9a5a changed: guardians placeholders 2026-04-13 18:21:58 +02:00
SevenToaster509 5656aa979f Fix: Controller support broken on LoadMenu
SWF updates:
LoadMenu1080
CreateWorldMenu1080
2026-04-13 16:35:46 +01:00
George V. 80179ae3be
Merge branch 'main' into upstream-merge 2026-04-13 17:56:40 +03:00
George V. 734f186cd3
Merge remote-tracking branch 'itsRevela/main' into upstream-merge
# Conflicts:
#	Minecraft.Client/Common/Audio/SoundNames.cpp
#	Minecraft.Client/SheepRenderer.cpp
#	Minecraft.World/SoundTypes.h
#	README.md
#	cmake/CopyAssets.cmake
2026-04-13 17:54:36 +03:00
George V. edeb0d2230
Merge branch 'main' into upstream-merge
# Conflicts:
#	.github/workflows/nightly.yml
#	Minecraft.Server/cmake/sources/Common.cmake
2026-04-13 17:39:46 +03:00
SevenToaster509 0606ce717d Refactor: Allow slider to be set
WARNING: REQUIRES ARC TO BE EDITED TO FUNCTION, PUSHED THIS TASK TO georgev22
2026-04-13 15:30:40 +01:00
George V. 5efd489229
fix: Prevent crash when displaying hardcore difficulty label
The hardcore difficulty label was using the raw string ID `IDS_HARDCORE` (oops)
instead of a localized string, which caused a crash in the UI.

Replaced `IDS_HARDCORE` with `app.GetString(IDS_HARDCORE)`
2026-04-13 17:18:15 +03:00
George V. 6d98c4ebf6
fix: Prevent gamemode slider movement when hardcore mode is enabled
Add virtual `canMoveSlider` method to UIScene base class and override it
in both LoadMenu and CreateWorldMenu scenes. The method returns false
when attempting to move the gamemode slider while hardcore mode is active,
effectively locking the slider in that state.

The UIController now checks `canMoveSlider` before initiating a slider
drag and during ongoing drag updates.
2026-04-13 17:18:15 +03:00
Tyler Reese 6913ce5323 fix: Implement missing critical hit sound (#1141) 2026-04-13 00:51:16 -05:00
DrPerkyLegit 71707fbb8c Add Chat Formatting Support For Servers (#1483) 2026-04-13 00:49:49 -05:00
DrPerkyLegit 6c572d4940 feat: Scrollable chat (#1493) 2026-04-13 00:42:04 -05:00
SevenToaster509 3d57609e12 Chore: Disable track debugging
Hope no-one needs it, it was pissing me off
2026-04-12 20:43:55 +01:00
SevenToaster509 e0cc846be5 Fix: Lapis Slot for Enchanting takes and consumes any item 2026-04-12 18:42:59 +01:00
SevenToaster509 48ce29a28e Fix: Clicking book while signing removes signing text, Clicking book when book is signed allows text editing, Added default resolution to not crash on smaller screens (720p and less) 2026-04-12 18:25:27 +01:00
George V. 7d05b6a9d6
fix: Replace hardcoded "Hardcore" string with localization resource ID
Replace the hardcoded string literal "Hardcore" in the difficulty slider
label with the localization resource identifier `IDS_HARDCORE` in both
the load menu and create world menu scenes.
2026-04-12 00:41:17 +03:00
Fireblade c322f759f3
Merge branch 'GeorgeV220:upstream-merge' into upstream-merge 2026-04-11 17:25:50 -04:00
Firebladedoge229 e77458b7e8 fix: folderFile common linking 2026-04-11 17:24:49 -04:00
George V. 401ccbcdc9
fix: lock survival when hardcore and swf changes 2026-04-12 00:22:38 +03:00
George V. 1a78363ee5
Merge branch 'main' into upstream-merge
# Conflicts:
#	Minecraft.Client/Common/UI/UIScene_CreateWorldMenu.cpp
#	Minecraft.Client/Common/UI/UIScene_LoadMenu.cpp
#	Minecraft.Client/Common/UI/UIScene_LoadMenu.h
2026-04-11 23:36:43 +03:00
George V. 18f7d9a219
feat: merge hardcore hearts 2026-04-11 23:10:43 +03:00
George V. 84f1382a40
chore: merge Windows 64-bit media SWF files from revelations 2026-04-11 22:31:37 +03:00
SevenToaster509 a58b14a2ea Feat: Changed game mode selection to a slider 2026-04-11 20:03:09 +01:00
George V. 224dd491b9
chore: add MediaWindows64 directory to server target assets 2026-04-11 19:12:13 +03:00
George V. bb04d465db
feat: replace ArchiveFile with FolderFile for media asset loading
Replace the ArchiveFile-based media asset loading system with a new
FolderFile implementation that reads files directly from a folder
structure instead of from compressed .arc archives. This change
simplifies asset management and eliminates the need for pre-packaged
media archives.

Key changes:
- Added FolderFile class that indexes and reads files from a folder
- Updated Consoles_App to use FolderFile instead of ArchiveFile
- Modified CMake asset copy configuration to exclude platform-specific
  media folders instead of .arc files
- Updated platform-specific media path references to point to folders
  instead of .arc files

This enables easier development and debugging by allowing direct access
to media files without requiring archive extraction or repackaging.
2026-04-11 18:57:54 +03:00
piebot 08d68d6cdd chore: rebrand to neoLegacy 2026-04-11 18:21:40 +03:00
itsRevela abb18e3e12 fix: new players kicked when joining right after being whitelisted
When a new player was whitelisted while they were sitting on the join screen, their next attempt would insta-kick before the world ever loaded, and the retry after that would let them in for roughly 20 seconds before booting them with "connection closed". Two separate bugs were colliding.

The first kick was a stale cancel flag on the client. When the server rejects a join, the "Connecting to host..." screen tears down, and its teardown path fires the cancel callback defensively. That flag would latch on without ever being consumed, so the very first tick of the next join attempt saw it and immediately closed the fresh connection. Clearing the flag when a new join starts prevents this.

The second kick was an orphan on the server. When the first failed join's TCP dropped, its slot got recycled for the next successful join, but the half-built login object from the broken attempt was still in the pending queue. 30 seconds later its "login took too long" timer fired, and the disconnect packet it tried to send was routed to whoever currently held that slot, which was now the new in-world player. It landed on their live socket and kicked them. Telling the game's Socket layer about the TCP drop lets the orphan clean itself up, and refusing to write on an already-closing socket stops any late packet from leaking into the recycled slot.
2026-04-11 08:13:46 -05:00
itsRevela a07bc651b3 chore: sync credits screen and Star History with upstream org rename
The upstream project (formerly smartcmd/MinecraftConsoles, now MCLCE/MinecraftConsoles) reorganized their in-game credits screen. This pulls in that restructure so our credits accurately reflect who the current and former upstream maintainers are, and points the attribution URL at the right place. codeHusky and mattsumi stay as Project Maintainers, and itsRevela is added alongside them. smartcmd, Patoke, and rtm516 move to a new Former Maintainers section. The contributor count ticks up from 100+ to 120+, and the credit URL at the bottom now reads github.com/MCLCE/MinecraftConsoles with a "(formerly smartcmd/MinecraftConsoles)" line underneath it.

On the README side, only the Star History chart URL was updated from smartcmd to MCLCE. The Nightly client and dedicated server download links stay pointed at itsRevela/LCE-Revelations since our fork has its own release pipeline.

Upstream attribution: d0786f95 by Loki Rautio. Applied as a partial cherry-pick with the two Nightly download URL hunks dropped and itsRevela added to the maintainer list.
2026-04-11 02:01:26 -05:00
itsRevela 28d997a8d0 chore: rename project from MinecraftConsoles to LCE-Revelations
The personal repo was renamed from itsRevela/MinecraftConsoles to itsRevela/LCE-Revelations, so this sweeps the rest of the codebase to match. In-game, the credits screen now shows "LCE-Revelations" instead of "MinecraftConsoles" as the project heading. In the README, the Nightly client and dedicated server download links point at the new repo URL, and the Docker image reference is now ghcr.io/itsrevela/lce-revelations-dedicated-server. The dedicated server's generated server.properties file also picks up a new header comment reflecting the rename.

For folks building from source: the CMake project name was renamed, so when you configure the build the generated solution file is now LCE-Revelations.sln instead of MinecraftConsoles.sln. The Nix flake description and the Nightly release uploader script were updated to match, and a historical FourKit port reconnaissance document was removed since that port is already complete.

Also restored the Fluxer server link at the top of the README, which was lost when the repo was fast-forwarded from the upstream that got griefed.
2026-04-11 01:38:35 -05:00
itsRevela a191df1f2e fix: controller cursor speed no longer scales with framerate
When framerate was uncapped (vsync off, high-end hardware), the controller cursor in the inventory and creative menus moved way too fast. Basically unusable unless you switched to the dpad. The cursor update was tied to how often the screen redraws, so the faster the game ran, the faster the cursor flew.

Now the cursor moves a smaller distance per frame at higher framerates, so the actual on-screen speed stays the same whether you're at 60 FPS or 600 FPS.

While fixing this I also found an old workaround that was rounding the cursor position to whole pixels every frame and nudging it by 1 pixel to keep it from getting stuck. That nudge was pointing the wrong way on the vertical axis, which made up/down movement feel broken once the per-frame distance got small. Removed the rounding and the nudge. The cursor can now hold a fractional position between frames, and the part of the code that actually draws the cursor still snaps it to whole pixels on screen.

Fixes #3
2026-04-10 21:38:43 -05:00
George V. a0f4063807
Merge branch 'main' into upstream-merge 2026-04-11 02:52:52 +03:00
Fireblade 0ed96f1592
fix: resolve merge conflicts and integrate XML locale updates (#1)
Resolve merge conflicts across multiple components
Merge and synchronize XML locale changes
Ensure consistency between string resources and localization files
Minor fixes to restore successful builds after merge
2026-04-11 02:47:59 +03:00
George V. 0ad7e383fa
Merge branch 'main-re' into upstream-merge 2026-04-10 22:00:17 +03:00
SevenToaster509 c038506071 Feat: Armour Quick Equip, Fix: Baby Armour on Players 2026-04-10 16:06:57 +01:00
SevenToaster509 490ac0eed1 Feat: Updated Enchanting Mechanics
Updated in the ARC:
EnchantingMenu1080
SkinHDGraphicsInGame
SkinHDInGame

may have override other changes in the arc but it dont think so...
2026-04-10 13:18:42 +01:00
Lord_Cambion 61b6e6adca feat: Guardians 2026-04-10 14:03:32 +02:00
itsRevela 9c9df615a1 fix: beacon menu item consumption, data sync, and button state issues
- Prevent payment item from being consumed when submitting unchanged powers
- Reorder ServerPlayer::openBeacon to send ContainerOpenPacket before
  addSlotListener so beacon data packets arrive after the client menu is ready
- Add BeaconMenu::broadcastChanges() to continuously sync levels and powers
  to clients, matching the pattern FurnaceMenu already uses
- Initialize UIControl_BeaconEffectButton::m_lastState to prevent stale
  heap memory from suppressing Iggy ChangeState calls on menu re-entry
2026-04-09 21:34:48 -05:00
discordbotdude c7127b219d
Implemented Minigames button in main menu
Allowing minigames button functionality.
2026-04-09 23:17:46 +01:00
George V. 506ebd2176 Merge remote-tracking branch 'itsRevela/main'
# Conflicts:
#	.github/workflows/nightly.yml
#	.gitignore
#	Minecraft.Client/ChatScreen.cpp
#	Minecraft.Client/ClientConnection.cpp
#	Minecraft.Client/Common/Audio/SoundEngine.cpp
#	Minecraft.Client/Common/Audio/SoundEngine.h
#	Minecraft.Client/Common/Media/MediaWindows64.arc
#	Minecraft.Client/Common/UI/IUIScene_HUD.cpp
#	Minecraft.Client/Common/UI/UIControl_Base.cpp
#	Minecraft.Client/Common/UI/UIScene_DeathMenu.cpp
#	Minecraft.Client/Common/UI/UIScene_JoinMenu.cpp
#	Minecraft.Client/Common/XUI/XUI_Chat.cpp
#	Minecraft.Client/Common/XUI/XUI_Death.cpp
#	Minecraft.Client/Font.cpp
#	Minecraft.Client/Gui.cpp
#	Minecraft.Client/PendingConnection.cpp
#	Minecraft.Client/PlayerConnection.cpp
#	Minecraft.Client/PlayerConnection.h
#	Minecraft.Client/PlayerList.cpp
#	Minecraft.Client/Windows64/Network/WinsockNetLayer.cpp
#	Minecraft.Client/Windows64/Network/WinsockNetLayer.h
#	Minecraft.Client/Windows64Media/strings.h
#	Minecraft.Client/cmake/sources/Common.cmake
#	Minecraft.Server/Console/ServerCliEngine.cpp
#	Minecraft.Server/Console/commands/whitelist/CliCommandWhitelist.cpp
#	Minecraft.Server/Windows64/ServerMain.cpp
#	Minecraft.World/WitherBoss.h
#	Minecraft.World/cmake/sources/Common.cmake
#	README.md
2026-04-09 15:21:43 +03:00
itsRevela 71b1bf92b8 Revert "fix: tutorial world"
This reverts commit 222852c11b.
2026-04-08 13:00:44 -05:00
neoapps-dev 9babdac928 fix: linux cross-compiling 2026-04-08 12:44:56 +03:00
ryleu 5eab358dde add support for linux clang cross compiles 2026-04-08 12:03:15 +03:00
neoapps-dev b2f00d16e6 feat: cancel join 2026-04-08 11:47:25 +03:00
irice7 d191bee468 Add cancel join
Adds the Cancel Join tooltip to the "Connecting to host"
progress bar
2026-04-08 11:47:01 +03:00
George V. 308c07a7fd fix: correct mode-based music selection using unified music types
Aligned with LCERenewed changes up to commit
5ec8a0e41ba8146aba450258d8620cd3cb0299e0 by 3UR after previously
porting an incorrect revision.
2026-04-08 03:34:54 +03:00
George V. ff96cd3687 feat: support separate boss health bars per dimension
Add dimension-aware tracking for boss mobs and update the boss health
GUI system to maintain independent state for each dimension (Overworld,
Nether, End). This prevents conflicts when multiple bosses exist across
different dimensions simultaneously.

- Add `getDimension()` to `BossMob` base class and implement in
  `EnderDragon` and `WitherBoss`
- Replace static boss GUI state with dimension-indexed storage
- Introduce `getIndexFromDimension()` helper for dimension mapping
- Update rendering logic to use per-dimension state
- Isolate darkening effects and health display per dimension

Ported from LCERenewed commit 5ec8a0e41ba8146aba450258d8620cd3cb0299e0 by 3UR
2026-04-08 03:34:54 +03:00
/home/neo 29ebc01ea9
feat: TU19 tutorial world (#1) 2026-04-07 22:42:22 +03:00
piebot 013c18ef85 Merge remote-tracking branch 'origin/main' 2026-04-07 21:05:36 +03:00