869 Commits

Author SHA1 Message Date
Fireblade
da91372804 chore: clean up paper doll code for redundancy 2026-04-25 12:09:30 -04:00
Fireblade
1672dbab05 fix: paper doll viewmodel on non-16:9 window aspect ratios 2026-04-24 22:54:06 -04:00
itsRevela
18a08ec693 docs: README entry for FourKit dispatch performance fix 2026-04-24 21:35:34 -05:00
itsRevela
b64b1f17db perf(fourkit): server gc, fast-path event dispatch, tps probe 2026-04-24 21:31:06 -05:00
Loki Rautio
42e75876f2 Fix PR workflow
Per patoke
2026-04-24 07:11:34 -05:00
Loki Rautio
5e5b685c72 fix: Control mappings wrong (update 4JLibs)
fixes #1531 and #1528
2026-04-21 19:55:46 -05:00
Loki Rautio
d4ac3cd645 Remove redundant gitignore line 2026-04-21 18:57:30 -05:00
gsds
1b8a14357c Include 4JLibs as a submodule (#1535)
* feat: 4JLibs as a submodule

* fix: forgot submodule

* fix: actions didn't recurse submodules on checkout

* fix: oops, using old commit
2026-04-21 18:32:02 -05:00
itsRevela
6db68bda06 test(fourkit): add setblock and chatcolor subcommands to test plugin 2026-04-18 20:22:26 -05:00
sylvessa
cb941db3ad i forgot to add chunk events to the docs 2026-04-18 19:57:20 -05:00
sylvessa
b441998732 new funcs in Block, chatcolor enum 2026-04-18 19:57:14 -05:00
itsRevela
8dd9d92ad6 feat: add FourKit test plugin for chunk/inventory/disenchant verification 2026-04-18 19:15:56 -05:00
Sylvessa
7c1606837f fix: worlds without worlds won't open (#1529) 2026-04-18 19:14:42 -05:00
sylvessa
2e0f4f91d6 fix disenchant bugs from setdurability etc 2026-04-18 18:16:29 -05:00
sylvessa
f9cac6395b fill in old stubs regaridng chunk stuff & another inv fix 2026-04-18 18:16:24 -05:00
sylvessa
a9c735e7aa fix bugs found regarding inventories 2026-04-18 18:15:03 -05:00
sylvessa
a3221c9e14 chunk additions 2026-04-18 18:14:58 -05:00
dtentiion
4a7b34f4c2 fix: Display save thumbnail in world detail view on Windows64 (#1519) 2026-04-18 17:49:43 -05:00
dtentiion
9167454767 fix: Nether portal trigger and travel sounds not playing (#1523) 2026-04-18 17:47:18 -05:00
itsRevela
84e4a77409 fix: exit save sometimes dropped during shutdown race 2026-04-18 10:56:54 -05:00
itsRevela
68c3440394 docs: note breeding/spawn-egg scaling with mob cap config 2026-04-18 10:19:27 -05:00
itsRevela
7e586e0d49 fix: scale breeding and spawn-egg caps with configured mob caps 2026-04-18 10:15:33 -05:00
itsRevela
defd9ebd00 docs: update readme with recent fixes and mob cap config 2026-04-18 09:39:09 -05:00
itsRevela
ffdad03aca feat: configurable mob spawn caps via server.properties 2026-04-18 09:31:45 -05:00
itsRevela
c297b26f36 fix: duplicate join message on FourKit servers 2026-04-18 09:10:47 -05:00
itsRevela
b4a34df1a9 fix: apostrophes rendering as ' in Iggy HTML chat labels 2026-04-17 16:55:56 -05:00
itsRevela
ee3cf5117b chore: exclude .exp and .lib build artifacts from release zips 2026-04-17 15:31:53 -05:00
itsRevela
afa3e22715 fix: force backbuffer clear alpha to 1.0 to prevent DWM window transparency 2026-04-17 12:43:46 -05:00
itsRevela
cf81dd9d13 fix: apostrophes and quotes displaying as HTML entities in chat 2026-04-17 12:20:58 -05:00
itsRevela
fde5fbe6f4 fix: force VSync on main menu to prevent GPU coil whine 2026-04-17 11:55:04 -05:00
itsRevela
af39797303 chore: add PDB to nightly release, update readme
- Enable /Zi and /DEBUG for Release builds to generate PDB files
- Stage Minecraft.Client.pdb as standalone release asset
- Exclude .pdb from the zip release (dev-only artifact)
- Update release notes to separate player and developer instructions
- Update readme Latest section with recent bug fixes
2026-04-17 07:21:29 -05:00
itsRevela
ce2efc1a4d fix: crash when opening UI scenes at sub-720p window size
SWF movie loading crashed with __debugbreak when the window height was
below 720px (e.g. after leaving exclusive fullscreen). The fallback
chain only tried 720.swf which doesn't exist. Now falls back through
720 -> 1080 so scenes always find a valid SWF.
2026-04-17 07:07:02 -05:00
itsRevela
eb5aa9fa8f fix: chat color codes not rendering in singleplayer
PlayerConnection::handleChat called FormatChatMessage with
applyStyling=false before broadcasting, which stripped all color codes
from the message. The client then had nothing left to format. Send the
raw message and let the client handle formatting on receive.
2026-04-17 07:06:39 -05:00
itsRevela
59f9dbc8c6 fix: hardcore mode UI not locking difficulty/gamemode on world load
Three issues fixed:

- Save file path used hardcoded saveData.ms but new 4JLibs names files
  as <title>.ms. ReadLevelNameFromSaveFile now constructs the correct
  path with fallback to saveData.ms for old saves.
- The level.dat code path for reading the hardcore flag (sidecar rename)
  returned early without ever parsing level.dat. Now stores the sidecar
  name and continues to read the hardcore flag from NBT.
- The thumbnail host options path could overwrite m_bHardcore to false.
  Now only upgrades to true, never downgrades.
- Load menu constructor and tick handler both lock difficulty slider to
  Hardcore and gamemode to Survival when hardcore is detected.
- Hide title logo on load menu to match create world menu.
2026-04-17 07:06:26 -05:00
itsRevela
bc6e445f0c fix: capture save thumbnails directly from D3D11 backbuffer
The new 4JLibs CaptureThumbnail produces all-black 64x64 PNGs because
its internal m_backBufferTexture copy fails silently. Bypass it entirely
and capture from the swap chain backbuffer using the same proven approach
as our F2 screenshot, with center-crop and downsample to 64x64 PNG.
2026-04-17 07:06:02 -05:00
itsRevela
ec5ec84407 feat: add 4JLibs comparison tooling
Tools for comparing 4JLibs binary changes between git refs:
- compare-4jlibs.py: Extracts libs, parses symbol tables via dumpbin,
  demangles with undname, generates structured diff reports
- extract_lib.py: Extracts .obj members from COFF .lib archives
- ExportLibInfo.java: Ghidra headless script for non-LTCG object files
- list-lib-symbols.sh / compare-4jlibs.sh: Shell wrappers
2026-04-17 05:55:25 -05:00
itsRevela
019b790fb3 chore: sync upstream MinecraftConsoles through 1a552fbd 2026-04-17 05:53:46 -05:00
DrPerkyLegit
9ddb95e7ad Fix broken Chat Formatting behavior (#1520)
- Remove shadowcolor from font tags (Iggy doesn't support multiple)
- Enforce HTML text mode on chat labels and jukebox
- Move IDS translatable pattern matching into FormatChatMessage
- Add §r (reset) color code support
- Fix message truncation to count visible characters, skipping HTML tags
- Fix CJK truncation using raw index instead of visible char count
2026-04-17 05:52:26 -05:00
dtentiion
8464bfd448 fix: Skin pack names showing only first letter after 4JLibs update (#1518) 2026-04-17 05:49:22 -05:00
Loki Rautio
0e0f8f696d feat: Upgrade to 4JLibs libraries
Includes fixes and some modernizations compared to the original 4J
library binaries. Also introduces functionality to support stuff like
F2 screenshots, etc. This is basically the beginning of modernizing the
codebase.
2026-04-17 05:40:38 -05:00
Loki
6ef535d53e Add new Discord invite to issue config 2026-04-17 05:39:51 -05:00
Alisa Vulpes
004cd72ba5 Add .DS_Store to .gitignore (#1509) 2026-04-17 05:38:39 -05:00
DrPerkyLegit
1a552fbd0c Fix broken Chat Formatting behavior (#1520)
* fix formatting in chat

iggy doesnt like multiple shadow colors

* enforce html labels

* dont format before sending packet, client formats anyway

* move translateables to chat format, restore original empty message results

* fix crappy string cutoff

* forgot a line on last commit, reset color support

* restore function to strip styling from player messages
2026-04-16 22:41:50 -05:00
dtentiion
cccfd860b9 fix: Skin pack names showing only first letter after 4JLibs update (#1518) 2026-04-16 22:35:14 -05:00
Revela
d0094a6409 Add F2 screenshot functionality (#1262)
- Updated `EControllerActions` to include `MINECRAFT_ACTION_SCREENSHOT`.
- Added conditional compilation for `stb_image_write.h` in `Minecraft.cpp`.
- Modified `run_middle()` to handle screenshot key press.
- Updated `tick()` to capture and save screenshots as PNG files.
- Introduced `KEY_SCREENSHOT` in `KeyboardMouseInput.h` mapped to F2.
- Added `stb_image_write.h` for image writing capabilities.
2026-04-16 22:33:30 -05:00
Loki Rautio
78d4bc80cf feat: Upgrade to 4JLibs libraries
Includes fixes and some modernizations compared to the original 4J
library binaries. Also introduces functionality to support stuff like
F2 screenshots, etc. This is basically the beginning of modernizing the
codebase.
2026-04-15 19:07:15 -05:00
Loki
6595b3820d Add new Discord invite to issue config 2026-04-15 18:22:01 -05:00
Alisa Vulpes
7f0237a286 Add .DS_Store to .gitignore (#1509)
macOS automatically creates a .DS_Store file if any custom macOS attributes are set to files (like visual position in Finder). It's redundant for this repo and to avoid that to be accidentally committed/pushed, I added it to .gitignore.
2026-04-15 17:26:27 -05:00
itsRevela
d694cd1c9d chore: sync upstream MinecraftConsoles through 2fba264c 2026-04-15 05:25:33 -05:00
Loki Rautio
9d92d5eb9b Swap critical.mp3 for critical.ogg (#1503) 2026-04-15 05:22:37 -05:00