Commit Graph

204 Commits

Author SHA1 Message Date
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
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
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
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
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
SevenToaster509
a58b14a2ea Feat: Changed game mode selection to a slider 2026-04-11 20:03:09 +01: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
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
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
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
George V.
76ac11bde0 fix: handled all audio and parameter types correctly to prevent crashes
Original commit: 8658049e71
2026-04-07 09:30:16 +02:00
piebot
3fd6d53e76 fix CI 2026-04-05 18:38:23 +03:00
neoapps-dev
9910d6f3d2 fix 2026-04-05 16:46:22 +02:00
SevenToaster509
546a279cc9 Book & Quill - Initial Commit
Implement Book & Quill:
- IUIScene_WritingBookMenu and UIScene_BookAndQuillMenu for UI
- Edited UIControl_Label to add direct editing (quite hardcoded to my needs right now)
- Reimplement scrapped custom payload packets for books and signing
- Other misc changes

TODO:
- Coloured and scambled text
- Book copying
- Clean up code
2026-04-05 15:05:03 +01:00
itsRevela
a017579bc3 fix: graphics menu navigation, layout, render distance cap, skin anim speed
Rewire the SWF focus chain via Iggy so VSync, Fullscreen, and Render
Distance are reachable with keyboard/gamepad navigation.

Cap render distance slider at 16 chunks. Shift graphics menu layout
up 60px for better centering.

Fix skin preview walk/attack animations running too fast with VSync
off by scaling per-frame increments by delta time relative to 60fps.
2026-04-01 03:43:28 -05:00
itsRevela
2cc03476b3 fix: skin preview animations too fast with VSync off
The walking and attack animations in the Change Skin menu were
frame-rate-dependent, advancing per render call with no delta time
scaling. With uncapped FPS they ran proportionally too fast.

Add time-based scaling relative to a 60fps baseline. The scale is
computed once per frame (cached for 0.5ms) so multiple skin previews
rendered in the same frame all animate at the correct speed.
2026-04-01 02:24:45 -05:00
itsRevela
9f08612f25 fix: graphics settings layout broken by removeControl on Windows64
BedrockFog removal via removeControl with centreScene=true triggered
Flash-side repositioning that didn't account for the tool-added VSync
and Fullscreen checkboxes, creating a gap after CustomSkinAnim and
causing RenderDistance to render behind Gamma.

On Windows64 (single player per client), the console splitscreen
host-check that removed BedrockFog/CustomSkinAnim is unnecessary.
Gate it behind #ifndef _WINDOWS64 so all controls stay visible.
2026-03-30 14:10:50 -05:00
itsRevela
4e323c8365 merge: upstream fix for world seeds not saving correctly (#1119) 2026-03-30 13:53:17 -05:00
itsRevela
3aa2d23fa9 feat: implement hardcore hearts with game mode lock
Display hardcore heart textures when a world is in hardcore mode,
matching Java Edition behavior. Hearts switch between normal/hardcore
across all states (poison, wither, flash) and all HUD resolutions.

C++ changes:
- IUIScene_HUD: check isHardcore() and call SetHardcoreMode() each tick
- UIScene_HUD: send hardcore boolean to Flash via Iggy, invalidate
  SetHealth dirty check on state change to force heart redraw
- CreateWorldMenu/LoadMenu: lock game mode to Survival when hardcore
- MinecraftServer: gate server.properties hardcore override behind
  MINECRAFT_SERVER_BUILD so offline worlds preserve their saved flag

SWF changes (via new Java tools):
- AddHardcoreBitmaps: adds 10 hardcore heart bitmaps to graphics SWFs
- AddHardcoreHearts: adds 10 new frames (15-24) to health sprite
- PatchHudABC: patches HUD ActionScript bytecode with SetHardcore
  method and frame offset logic (+14 normal/poison, +6 wither)

Also updates README changelog styling with consistent ### headings.
2026-03-30 13:50:29 -05:00
piebot
9713d5cdc9 Fix commit (2be90366ba) 2026-03-30 19:45:45 +03:00
ItzSonicFaner
2be90366ba Patch 3 2026-03-30 17:30:26 +03:00
piebot
a38abd4e8d Merge changes from upstream. 2026-03-30 14:28:57 +03:00
blongm
d3412aaae7 Fixed issue with world seeds not saving correctly (#1119)
## Description
Fix issue where typing in a short seed on world creation doesn't save the seed correctly

## Changes

### Previous Behavior
Typing in a seed on the world creation menu that's less than 8 characters long will result in garbage data being saved as the seed. Happens with controller and KBM.
You can see this in-game - if you exit the world options menu and go back in, the seed will show up as boxes □□□.
Weirdly, if you type a seed again, it behaves as expected.

### Root Cause
For some reason, assigning `m_params->seed` to the seed text points it to garbage data, when it's 7 characters or less.

### New Behavior
Seed entry behaves as expected.

### Fix Implementation
- Added `static_cast<wstring>` before assignment to `m_params->seed`.
- Also replaced `(wchar_t *)` with `reinterpret_cast<wchar_t*>` in the functions.

### AI Use Disclosure
No AI was used
2026-03-30 06:05:32 -05:00
piebot
ba460f3956 Update Coarse Dirt and Podzol locations in Creative Menu 2026-03-30 13:34:41 +03:00
itsRevela
0ebdbac933 Fix player list map icon colors to match map markers
The tab player list and teleport menu now show the correct map marker
color for each player. The icon is computed using the same hash as the
map renderer (getRandomPlayerMapIcon) and stored by player name,
bypassing the unreliable small-ID lookup that produced wrong colors
on dedicated servers.
2026-03-29 20:30:12 +03:00
itsRevela
618dc78008 Fix player list not showing all players on dedicated servers
Register remote players in the client's IQNet array when their
AddPlayerPacket arrives, so they appear in the Tab player list.
Previously only the host and local player were registered.

Also filter the dedicated server's phantom host entry (slot 0, empty
gamertag) from the UI, fix tick() to update entries by smallId instead
of sequential index, and fix player removal to use gamertag matching
since XUIDs are 0 on dedicated servers.
2026-03-29 20:30:11 +03:00
irice7
e8ac5b16ea Add cancel join
Adds the Cancel Join tooltip to the "Connecting to host"
progress bar
2026-03-29 17:03:12 +03:00
ItzSonicFaner
84c228e80f Skins (#1)
Check if skin texture height is 64 or 32, slim skins, better slim skins parameters, zombie villager fix.

Co-authored-by: ItzSonicFaner <165782267+ItzSonicFaner@users.noreply.github.com>
Reviewed-on: https://codeberg.org/piebot/LegacyEvolved/pulls/1
Co-authored-by: ItzSonicFaner <itzsonicfaner@noreply.codeberg.org>
Co-committed-by: ItzSonicFaner <itzsonicfaner@noreply.codeberg.org>
2026-03-27 15:35:15 +01:00