Adds missing material constants (e.g. LEAVES2, LOG2, PRISMARINE,
BOOK_AND_QUILL, PRISMARINE_SHARD, doors, fences, fence gates)
so the server enum matches the client and avoids crashes.
Add version string (branch/version) to the debug overlay when F3 is active.
Also add a new keyboard shortcut (B key while F3 is held) to copy the
version string to the clipboard and show a confirmation message. This
improves debugging and support by making version information easily
accessible.
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
The string identifier for the Elder Guardian entity was set
to `IDS_GUARDIAN_ELDER`. This has been changed to the
consistent identifier `IDS_ELDER_GUARDIAN`.
Additionally, the localization file has been updated to include the
missing string definitions for both `IDS_GUARDIAN` and
`IDS_ELDER_GUARDIAN`
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)`
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.
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.
The previous implementation only indexed files in the root directory,
ignoring files in subdirectories. This change adds recursive traversal
to index all files within the folder hierarchy while maintaining
relative paths for compatibility.
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.
Add missing GuardianModel.cpp and GuardianRenderer.cpp to the
Minecraft.Server build configuration to fix compilation errors in
the debug GitHub PR workflow.
Also fix inconsistent indentation in Minecraft.Client's Common.cmake
for the GuardianModel.cpp and GuardianRenderer.cpp entries (styling only).
The custom name assignment for boss mobs is already handled inside
the `BossMobGuiInfo::setBossHealth` method. The removed code in both
`WitherBossRenderer` and `EnderDragonRenderer` was redundant and not working.
Add CI/CD workflows for nightly releases and pull request builds, along with
structured issue templates for bug reports and suggestions.
- Nightly workflow builds and releases both client and server binaries for
Windows, creating signed tags and GitHub releases with detailed instructions.
- Pull request workflow triggers builds on PR events to validate changes.
- Issue templates guide users in reporting bugs and suggesting enhancements,
linking to community Discord for support.
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
- Add missing return of CatchType in getRandCatchType
- Remove unused variable in getRandCatch
- Fix duplicate semicolon in TREASURE case
- Fix missing parentheses in fishing rod and bow calculations in handleCatch