13400 Commits

Author SHA1 Message Date
sfan5 68725763f1 Minor refactor in strict.lua 2026-04-13 20:33:50 +02:00
sfan5 0b6a482037 Clarify limitations with core.write_json() 2026-04-13 20:33:50 +02:00
sfan5 7cb14a6ad2 Clarify some MapBlock stuff in API docs 2026-04-13 20:33:50 +02:00
sfan5 ea929b4368 Fix set_camera() not being resettable 2026-04-13 20:33:50 +02:00
sfan5 a12ac21066 Fix inconsistent missing override warnings 2026-04-13 20:33:50 +02:00
sfan5 07d8e00cf4 Add clear() to MeshUpdateManager 2026-04-13 20:33:50 +02:00
sfan5 34137240d7 Refactor decode_light_f to rely only on LUT 2026-04-13 20:33:50 +02:00
sfan5 aee81a1f62 Rate limit forced reliable resends 2026-04-13 20:33:50 +02:00
sfan5 9c355896af Remove unnecessary code in initBlockMake() 2026-04-13 20:33:50 +02:00
sfan5 588dfebb4b Restore mouse cursor before shutdown progress bar 2026-04-13 20:33:50 +02:00
cx384 724a154b4f Remove accidentally added file 2026-04-12 18:32:56 +02:00
Wuzzy c5824d08cd Document integer data types and ranges in Lua API (#16735) 2026-04-12 18:27:49 +02:00
cx384 0c67691c53 Fix formspec mesh memory leak 2026-04-11 22:31:01 +02:00
cx384 124929a4cd Fix ButtonItemImage memory leak 2026-04-11 22:31:01 +02:00
SmallJoker 95866fa0ac GUIScrollBar: Simplify constructor args 2026-04-11 12:10:54 +02:00
SmallJoker 820d860444 CGUIScrollBar: Clean and tidy 2026-04-11 12:10:54 +02:00
SmallJoker 8818403e30 Replace guiScrollBar with CGUIScrollBar 2026-04-11 12:10:54 +02:00
SmallJoker 7ddb2f948a Add behavior settings to IGUISkin
This imitates flags known from libcurl.
2026-04-11 12:10:54 +02:00
SmallJoker 3e8bdb9a13 IrrlichtMt: Integrate new scrollbar features
Namely:
1. Smooth scroll
2. Autoscroll
3. Direct jump to selected tray position
2026-04-11 12:10:54 +02:00
SmallJoker b0e44d66a6 IrrlichtMt: Expose CGUIScrollBar 2026-04-11 12:10:54 +02:00
AFCMS 0f711d3699 Bump GitHub Actions used by Docker workflow (#17090)
also disable cache to fix random build errors in the meantime
2026-04-11 12:10:38 +02:00
cx384 3dc5fb3e02 Fix font memory leak (#17092) 2026-04-10 18:39:12 +02:00
jordan4ibanez 9b4e59cd42 Fix node placement animation desync (#17001) 2026-04-10 18:38:51 +02:00
Lars Müller c36432b9f1 Fix fog bleeding into alpha values when using OneTextureBlend (#17081)
fixes #17079

It is not clear how or why the bogus values appear, but the fix certainly does not hurt.
2026-04-10 18:38:33 +02:00
cx384 6a3333355b Fix unit test use after return (#16831) 2026-04-10 18:38:05 +02:00
v-rob 5aac03f794 Move Catch2 tests to new src/test directory 2026-04-10 18:37:07 +02:00
v-rob 0418362f75 Allow passing Catch2 arguments on command line 2026-04-10 18:37:07 +02:00
y5nw 04a69ccae0 Support mouse buttons beyond X2
Co-authored-by: SmallJoker <SmallJoker@users.noreply.github.com>
2026-04-10 18:36:00 +02:00
y5nw 877568d7a0 Decouple in-game touch controls from keybindings
Co-authored-by: rubenwardy <rw@rubenwardy.com>
2026-04-10 18:36:00 +02:00
y5nw e3e9a13088 Refactor KeyPress class to prepare for further input types 2026-04-10 18:36:00 +02:00
sfan5 2a94309613 Update MinGW libraries and toolchain (#17068) 2026-04-06 19:06:19 +02:00
siliconsniffer 434ec55026 Add keybinds for camera movement (#17071) 2026-04-06 19:04:31 +02:00
sofar dc6277d7a1 Formspec: fix dropping held items by clicking outside (#17064)
When items are picked up via right-click, middle-click, or mouse wheel
(none of which change GUI focus), clicking outside the formspec closes
it instead of dropping the held item. This happens because
remapClickOutside() only delegates to GUIInventoryList when it has
focus, but focus is only set on left mouse down.

Add a virtual hasModalInteraction() hook so GUIFormSpecMenu can signal
that it has an ongoing interaction (held item). When true,
remapClickOutside() backs off and lets the normal event dispatch route
the click to the formspec's inventory drop handling code.

fixes #16952

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:03:20 +02:00
siliconsniffer 878dd1061d Formspec: main menu rearrangements for better focus "flow" (#16920)
Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
Co-authored-by: grorp <grorp@posteo.de>
2026-04-06 19:02:48 +02:00
grorp 54a35ecb14 Fix focus inside scroll container being lost on formspec update (#17085) 2026-04-06 19:01:52 +02:00
sofar c432281ac0 Re-show death screen when a formspec is closed while player is dead (#17036)
This commit ensures that the death formspec is re-shown in case another formspec force-closed it.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 21:16:44 +02:00
Jude Melton-Houghton 82149c3e82 Add option to silence HTTP errors 2026-04-01 21:12:43 +02:00
cx384 89f346b1be Document that the hand item can't be an ItemStack 2026-04-01 21:12:11 +02:00
sfan5 d5fc9a1658 Irrlicht: expire unused hardware buffers (#17059) 2026-03-25 12:34:11 +01:00
sofar 62896756eb Fix crash in handleCommand_Init2 when received in wrong client state
TOSERVER_INIT2 is registered as TOSERVER_STATE_NOT_CONNECTED, so it
bypasses all client state checks in ProcessData. When received from a
client already in CS_Active (or any state other than CS_AwaitingInit2),
the CSE_GotInit2 event triggers an invalid state transition that can
crash the server.

Add an explicit state check to early-return if the client is not in
CS_AwaitingInit2.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 12:33:39 +01:00
DS 94e231a80f Fix setAsyncFatalError() on shutdown causing UaF (#17048)
Destruction order was wrong.
Async threads can error while ~Server() is running.
2026-03-25 12:33:25 +01:00
DS bcf07de10d Fix LuaVoxelManip use-after-free if it outlives VoxelManip (#17047) 2026-03-25 12:33:08 +01:00
sofar e6f0377ea2 Add bounds check for from_i in IDropAction::apply()
IDropAction::apply() accessed list_from->getItem(from_i) without
validating that from_i is within the inventory list bounds. In
release builds, InventoryList::getItem() only guards this with an
assert, so an out-of-bounds index causes undefined behavior.

A malicious client can exploit this by sending a crafted
TOSERVER_INVENTORY_ACTION packet with a Drop action containing an
arbitrary from_i value, crashing the server via segfault:

This was reproduced using a custom network packet fuzzer I made
a long time ago.

IMoveAction::apply() already had the equivalent bounds check (lines
325-330). This adds the same check to IDropAction::apply().

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 12:32:32 +01:00
SmallJoker a494c8520e Game: Try to translate access denied error messages
"Try" because the string cannot be translated upon connect, when the
mod-provided translation files are yet not available.
2026-03-21 16:28:33 +01:00
SmallJoker af99b754da CGUITTFont: Move internal helper classes to source 2026-03-21 12:31:28 +01:00
SmallJoker 465a941e88 Clean up header includes 2026-03-21 12:31:28 +01:00
sofar 5b73e2b73a Add per-player shadow direction override via set_lighting (#17014) 2026-03-19 12:38:58 +01:00
SmallJoker 8a929dfb97 Lua API: Sanitize the environment of safe functions (#16985) 2026-03-19 12:38:28 +01:00
kromka-chleba b3de90634a Add vector2 lua API for 2D vectors (#16929) 2026-03-19 12:37:39 +01:00
siliconsniffer 787b2a4df8 Show status text for screenshots in the main menu (#16773) 2026-03-19 12:37:19 +01:00