Commit Graph

49 Commits

Author SHA1 Message Date
sfan5
c03894321a Fix file write warning in devtest
closes #14721
2024-06-10 18:49:43 +02:00
Wuzzy
9f263319ca
Fix 4dir nodebox sometimes not rendering face (#14533) 2024-04-14 11:57:13 +02: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
sfan5
d4b107e2e8 Enable dynamic_add_media to take the file data instead of a path 2024-02-13 22:44:10 +01:00
sfan5
c90ebad46b Allow specifying name for dynamic media files 2024-02-13 22:44:10 +01:00
sfan5
af69d4f7a9 Allow dynamic_add_media at mod load time 2024-02-13 22:44:10 +01:00
kromka-chleba
6c8ae2b72a
Fix liquid falling if in "float" group (#13789)
* Make falling liquid source nodes replace flowing nodes

This makes falling liquid source nodes in group:float replace
flowing nodes on the ground instead of being placed above
the flowing node.

* Make flowing liquids "fall through" for source nodes

This makes liquids in float and falling_node groups fall through
flowing liquid nodes instead of being supported by them in the air.

---------

Co-authored-by: SmallJoker <SmallJoker@users.noreply.github.com>
Co-authored-by: Lars Mueller <appgurulars@gmx.de>
2024-02-12 23:24:54 +01:00
cx384
5958714309
Tool specific pointing and blocking pointable type (#13992) 2024-01-22 18:27:08 +01:00
Wuzzy
08ee6d8d4b
Add rotation support for wallmounted nodes in 'ceiling' or 'floor' mode (#11073) 2024-01-17 17:47:06 +01:00
sfan5
93dfa8a6d8
Optimize and improve built-in PNG writer (#14020) 2023-12-27 11:56:48 +01:00
Desour
7199ee4ff8 Devtest: Fix testnodes bouncy color calculation
Values were out of range.
2023-11-19 20:45:18 +01:00
Desour
64104585c5 Devtest: Add more connected nodebox test nodes 2023-10-30 21:23:47 +01:00
Thresher
352a403bd0
Optimize PNG files (#13509) 2023-10-09 17:13:44 +02:00
Gregor Parzefall
aea9242a96
Allow nodes to have their post_effect_color affected by lighting (#13637)
Co-authored-by: DS <ds.desour@proton.me>
2023-08-24 20:16:36 +02:00
doxygen-spammer
9f25378ddd
Add performance test nodes, using complex meshes. (#13161) 2023-07-30 14:53:08 +01:00
Wuzzy
8e1af25738 DevTest: Add example nodes for disable_descend 2023-06-16 20:14:08 +02:00
Wuzzy
3c7f26d937
Add support for attached facedir/4dir nodes (#11432) 2022-11-24 17:56:07 -05:00
Wuzzy
0a82cb4072 DevTest: Colorize 2 nodebox nodes 2022-10-23 21:58:56 +02:00
Wuzzy
9e186a42bd DevTest: Fix rendering of 2 texture test nodes 2022-10-23 21:58:56 +02:00
Wuzzy
c73d79841c DevTest: More node textures to tell them apart 2022-10-23 21:58:56 +02:00
Wuzzy
c1e732448c DevTest: /test_place_node skips dummy/cb nodes 2022-10-23 21:58:56 +02:00
Wuzzy
6b9984b7e7 DevTest: Move /test_place_nodes to testnodes mod 2022-10-23 21:58:56 +02:00
Wuzzy
c1c68775b2
DevTest: Explain purpose of most items in tooltips (#12833) 2022-10-09 08:05:22 -04:00
Wuzzy
1d04903c19
Add paramtype2s for 4 horizontal rotations and 64 colors (#11431)
4dir is like facedir, but only for 4 horizontal directions: NESW. It is identical in behavior to facedir otherwise. The reason why game makers would want to use this over facedir is 1) simplicity and 2) you get 6 free bits.
It can be used for things like chests and furnaces and you don't need or want them to "flip them on the side" (like you could with facedir).

color4dir is like colorfacedir, but you get 64 colors instead of only 8.
2022-09-16 13:18:55 +02:00
Gregor Parzefall
70b71c5013
Fix rotation of falling facedir nodes (#12587)
in some cases
2022-07-31 15:18:29 +02:00
Wuzzy
fe299e24d6
DevTest: Add nodes and items for testing overlays (#12304) 2022-05-27 21:39:36 +02:00
Nils Dagsson Moskopp
7c227d2a00
Add TGA test nodes to devtest (#11978) 2022-02-22 19:17:40 +01:00
pecksin
5d0b18a0d0
Use absolute value for bouncy in collision (#11969)
* use abs(bouncy) in collision
* test case for negative bouncy
* send abs(bouncy) to old clients
2022-02-16 17:06:00 -05:00
hecks
02292e03e4
Add embedded PNG texture modifier (#11498) 2021-10-13 17:51:37 +02:00
Wuzzy
21113ad410
Split liquid_viscosity to liquid_viscosity and move_resistance (#10810) 2021-10-01 16:21:24 +02:00
hecks
80d12dbedb
Add a simple PNG image encoder with Lua API (#11485)
* Add a simple PNG image encoder with Lua API
Add ColorSpec to RGBA converter
Make a safety wrapper for the encoder
Create devtest examples

Co-authored-by: hecktest <>
Co-authored-by: sfan5 <sfan5@live.de>
2021-07-29 05:10:10 +02:00
Wuzzy
f4d8cc0f0b
Add wallmounted support for plantlike and plantlike_rooted nodes (#11379) 2021-07-15 21:19:59 +02:00
Wuzzy
228f1c6770
Fix rotation for falling mesh degrotate nodes (#11159) 2021-04-28 08:38:47 +02:00
sfan5
daf862a38a Fix devtest Lua error
fallback_image() was removed in 3e1904fa8c4aae3448d58b7e60545a4fdd8234f3,
which was written after this PR but merged before it.
2021-04-21 16:42:34 +02:00
Wuzzy
90a7bd6a0a
Put torch/signlike node on floor if no paramtype2 (#11074) 2021-04-20 19:50:03 +02:00
Wuzzy
3e1904fa8c
Devtest: Remove testnodes_show_fallback_image 2021-04-05 13:37:58 +02:00
Vitaliy
3b78a22371
Degrotate support for mesh nodes (#7840) 2021-03-30 00:25:11 +02:00
Wuzzy
9b64834c6a
Devtest: Remove bumpmap/parallax occl. test nodes (#10902) 2021-02-04 21:43:29 +01:00
sfan5
5c005ad081 devtest: Fix deprecated alpha usage 2021-01-29 17:34:41 +01:00
sfan5
edd8c3c664 Drop never documented 'alpha' property from nodedef
Includes minimal support code for practical reasons.
We'll need it for a slightly different purpose next commit.
2021-01-29 17:34:41 +01:00
Wuzzy
7f25823bd4
Allow "liquid" and "flowingliquid" drawtypes even if liquidtype=none (#10737) 2021-01-21 00:51:24 +01:00
SmallJoker
af073438fd
Various documentation fixes (#10692)
set_sky: New feature, keep note about the old syntax
get_us_time: Document overflow
localplayer: Document "nil" behaviour before initialization
collision_box: Safe limit of "1.45"
2020-12-10 20:59:24 +01:00
Wuzzy
ee1853e9bc
Fix falling image of torchlike if paramtype2="none" (#10612) 2020-11-15 17:37:09 +01:00
HybridDog
c61c175e9c
Add bumpmapping and parallax occlusion testing nodes to devtest (#9242) 2020-10-09 19:13:42 +01:00
Wuzzy
9faeca3290
Devtest: Extend tooltips of many items and tools (#10312)
Also show error message when using tools wrong
2020-09-04 20:50:03 +02:00
Wuzzy
b3ace8f197
Scale inventory image for scaled allfaces nodes (#10225)
The inventory image size of the inventory image of nodes with drawtype allfaces (and related) is scaled as well if visual_scale is set (previously, the inventory image size was always the same)
2020-09-04 20:49:50 +02:00
Wuzzy
51de4ae297
Devtest: Fix missing/incorrect liquid properties (#9955) 2020-05-30 00:46:57 +01:00
MoNTE48
34862a6442 Add disable_jump check for the player's feet 2020-05-29 22:53:58 +02:00
Wuzzy
083b285f43
Rename “Minimal development test” to “Development Test” (#9928) 2020-05-26 00:17:52 +02:00