Commit Graph

7364 Commits

Author SHA1 Message Date
rubenwardy
24cc33e704
Add button_url[] and hypertext element to allow mods to open web pages (#13825)
Fixes #12500
2024-03-24 17:19:23 +00:00
rubenwardy
6c4a110679
Add world-independent storage directory for mods (#12315)
Fixes #4821
2024-03-24 17:18:58 +00:00
sfan5
5727d74d37 Avoid including client headers on server builds 2024-03-20 16:37:32 +01:00
sfan5
bc4ab8b99e General code refactoring/improvements in server, treegen and connection 2024-03-20 16:37:32 +01:00
sfan5
24f2c38093 Split internal parts from connection.h 2024-03-20 16:37:32 +01:00
sfan5
dfba79f8ff Split servermap.cpp/h off from map.cpp/h 2024-03-20 16:37:32 +01:00
sfan5
0d817ff4ff Try to fix httpfetch method bug
see #14394
2024-03-20 16:37:32 +01:00
sfan5
178943b4b7 Improve ServerEnvironment::getRemovedActiveObjects() in many ways 2024-03-20 16:37:32 +01:00
Desour
751ede516b ProfilerGraph: Increase buffer size for min/max formatting
Fixes values being cut off, e.g. "1.0000e+06" to "1.0000e+0".
2024-03-20 15:28:37 +01:00
HybridDog
cda112493a
Faster blit_with_alpha() (#14448)
* Add test nodes for alpha compositing and the fill texture modifier

Texture test nodes can be helpful to test if `blit_with_alpha` works correctly.

The alpha compositing test node covers different cases where pixel colors are mixed with each other.
The test currently fails because `blitPixel` does not work correctly if a semi-transparent color
is drawn on top of another semi-transparent color.
The test nodes for the fill texture modifier show if the size and position arguments of the modifier work correctly.
They do not cover special cases such as very large or negative position or size values.

* Faster blit_with_alpha()

The `blit_with_alpha` function has a noticeable effect on the time it takes to join a game.

To reduce the join times, I replace the `blit_with_alpha` function with a new one:
* It does not uses floating-point numbers.
* It directly operates on the raw pixel data instead of using the comparatively
  slow `setPixel` and `getPixel` functions from Irrlicht.
  Only ECF_A8R8G8B8 base images are supported now.
  If the top image does not have the ECF_A8R8G8B8 color format, it is converted;
  I assume that this happens rarely.
* There are case distinctions for fully opaque, fully transparent and semi-transparent pixels.
  This empirically increases the performance since the mixing between two semi-transparent happens rarely.
* The new function no longer has the `src_pos` argument since it was always the zero vector.
* The function is only documented once where it is declared.

For backwards compatibility, `blit_with_alpha` still mixes colors without gamma correction.
`blit_with_alpha` nonetheless behaves slightly different than before:
If a semi-transparent pixel is drawn on top of another semi-transparent pixel,
the color is mixed in a way which we can consider to be more correct now.
2024-03-19 19:56:47 +01:00
SmallJoker
a862e4290c Script API: Fix invalid rotation of L-system trees
The MapNode struct fields param1 and param2 were previously
not initialized. This commit now sets them to a sane default.
2024-03-17 18:01:48 +01:00
cx384
234b01a8c2
Item meta pointing range (#14347) 2024-03-17 15:55:38 +01:00
sfan5
e3b9828f24 Add unit tests for SAO load / unload behaviour 2024-03-17 15:55:24 +01:00
sfan5
8339594206 Handle static_save changes at runtime and between restarts 2024-03-17 15:55:24 +01:00
sfan5
2386bfda7e Fix static_save=false not working & related cleanups 2024-03-17 15:55:24 +01:00
sfan5
ef0009aea7 Sort out server destruction order
fixes #14421
2024-03-17 15:55:24 +01:00
Gregor Parzefall
4f84b01356 Touchscreen: Fix virtual joystick sometimes going backwards
This fixes a regression introduced by 34286d77c7ee65be480a372233c5ab7c4b81d9db / #14075.
2024-03-17 15:00:37 +01:00
grorp
c8b615acc9
Remove excessive touchscreengui.h includes (#14466) 2024-03-17 14:59:50 +01:00
SmallJoker
61a5733692 Unittest: Add inventory callback tests 2024-03-16 20:14:05 +01:00
SmallJoker
4245a7604b Inventory: Fix order of callbacks when swapping items 2024-03-16 20:14:05 +01:00
sfan5
d5d6e36ae0
Create CACHEDIR.TAG in path_cache (#14458) 2024-03-15 11:24:08 +01:00
sfan5
658bc9fcc8 Fix infinite loop in Server::stopAttachedSounds 2024-03-13 21:24:50 +01:00
cx384
60810c2d37
Add L-system trees as decorations (#14355) 2024-03-12 20:10:28 +01:00
grorp
f07e1026ac
Allow sync HTTP fetches to be interrupted to fix hanging (#14412)
Co-authored-by: Jude Melton-Houghton <jwmhjwmh@gmail.com>
2024-03-12 20:09:43 +01:00
SmallJoker
32f68f35cf
Avoid packets getting sent to disconnected players (#14444)
Many functions expect RemotePlayer to have a valid peer ID,
this however is not the case immediately after disconnecting
where the object is still alive and pending for removal.

ServerEnvironment::getPlayer(const char *, bool) now only
returns players that are connected unless forced to.
2024-03-10 13:24:35 +01:00
SmallJoker
02a893d613 Client: fix failing assert on empty texture name 2024-03-10 10:50:04 +01:00
sfan5
d88f0866b7 Reduce translations log spam 2024-03-06 22:33:32 +01:00
Lars Müller
bf52d1e624
Fix attached sounds stopping if objects are removed serverside (#14436)
Restores backwards compatibility for death sounds or other sounds that are not supposed to be "cut off" abruptly.

---------

Co-authored-by: sfan5 <sfan5@live.de>
Co-authored-by: grorp <gregor.parzefall@posteo.de>
2024-03-06 20:36:02 +01:00
y5nw
fc80f65a6d
Try to preserve metatable when exchanging data with the async env (#14369)
Co-authored-by: sfan5 <sfan5@live.de>
Co-authored-by: Lars Mueller <appgurulars@gmx.de>
2024-03-06 18:04:49 +01:00
sfan5
badd42789a Move PlayerSettings class to client code 2024-03-06 18:03:57 +01:00
sfan5
c524c52baa Fix some common SAO methods to not generate useless update packets 2024-03-06 18:03:57 +01:00
sfan5
585ca90ae0 Reorder ObjectProperties struct 2024-03-06 18:03:57 +01:00
sfan5
e734b3f0d8 Fix core.get_node_or_nil in emerge env
"ignore" does not mean unloaded, we have to properly check it.
2024-03-03 20:16:32 +01:00
sfan5
9b97147637 Fix assertion failure in clientlauncher.cpp 2024-03-03 19:11:37 +01:00
DS
d4d4712361
Implement get_node with a get_node_raw (#14384)
Add /bench_bulk_get_node
Considerably improves the execution speed of core.get_node
2024-03-03 15:53:23 +01:00
cx384
879f7e9f03 Refactor tile.cpp/h parts except texturesource.cpp 2024-03-03 15:52:05 +01:00
cx384
aaf77025b6 Split up tile.cpp/h 2024-03-03 15:52:05 +01:00
Desour
cdce33dd05 Fix some narrowing warnings 2024-03-02 01:56:25 +01:00
Desour
b10797b3d5 Add missing include in container.h
BUILD_BENCHMAKRS builds were broken.
2024-03-02 01:47:03 +01:00
sfan5
e73e562a63 Allow curl to use all content encodings 2024-03-01 18:22:59 +01:00
grorp
e40417f687
Allow giving "pointabilities" to Lua raycasts (#14390) 2024-03-01 17:12:13 +01:00
Gregor Parzefall
aac616fcc5 Avoid visible camera jumps because of touchscreen_threshold 2024-03-01 17:11:46 +01:00
Gregor Parzefall
fa0745f7da Adjust touchscreen_sensitivity to display density 2024-03-01 17:11:46 +01:00
Gregor Parzefall
00a3e6bbd7 Touchscreen: Allow camera movement while digging without touch_use_crosshair 2024-03-01 17:11:46 +01:00
sfan5
bb7f57b095 VBO-related optimizations and improvements (#14395) 2024-02-29 17:20:57 +01:00
sfan5
d85c842ce9 Refactor fog shader to reuse Irrlicht values 2024-02-29 17:20:50 +01:00
sfan5
dce166dc93 Support deleting shader materials 2024-02-29 17:20:50 +01:00
sfan5
13a0e5fb4a Share FpsControl code between game and menu 2024-02-29 17:20:50 +01:00
sfan5
0c3a4cc7b9 Improve ergonomics of CachedShaderSetting 2024-02-29 17:20:49 +01:00
sfan5
e9ab5bc223 Factor shadow constants out of MainShaderConstantSetter 2024-02-29 17:20:49 +01:00