Commit graph

5894 commits

Author SHA1 Message Date
Nils Dagsson Moskopp
76d2846c59
Improve test for minetest.find_nodes_in_area()
• By emerging test areas, the test gets real map data and does not block.
• The test now also ensures that any return values are compared exactly.
• minetest.find_nodes_in_area() is tested with the “grouped” parameter.
2021-11-18 04:47:03 +01:00
Nils Dagsson Moskopp
526c25aa57
Add crash fix and tests for minetest.find_nodes_in_area()
For some specific out of bounds values, the volume calculation in
minetest.find_nodes_in_area() is off by about four million nodes.
Unfortunately that behaviour made it trivial to crash Mineclonia,
as Minetest immediately crashes upon encountering large numbers.

This commit introduces a wrapper around minetest.find_nodes_in_area()
which should avoid a crash. Additionally, three self tests are executed
when a server starts; they crash Mineclonia in case the workaround fails.
2021-11-18 00:55:59 +01:00
erlehmann
249cfb8118 Merge pull request 'ENTITIES/mcl_burning: Fix burning animation packetspam' (#149) from fix-burning-animation-packetspam into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/149
Reviewed-by: erlehmann <nils+git.minetest.land@dieweltistgarnichtso.net>
2021-11-13 01:34:17 +00:00
cora
84194b71e6 burning: prevent adding multiple entities+huds 2021-11-12 01:16:16 +01:00
cora
0b7097cb28 add a burning animation fps setting 2021-11-12 01:16:16 +01:00
cora
bfbc953b92 Merge pull request 'ENTITIES/mcl_burning: Add debug command to burn a player' (#164) from add-burn-command-2 into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/164
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-11-11 22:25:14 +00:00
Nils Dagsson Moskopp
253100380c
Add debug command to burn a player 2021-11-11 21:37:26 +01:00
cora
df98db1d8c Merge pull request 'ITEMS/mcl_banners: Render preview banners with transparent patterns correctly' (#158) from banner-mask-fix-4 into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/158
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-11-08 12:21:50 +00:00
Nils Dagsson Moskopp
f410de485a
Render preview banners with transparent patterns correctly
Without this fix, the banner pattern preview generation does not mask
the banner pattern, so the alpha channel of the banner pattern is not
taken into account. This lead to preview banners with color gradients
showing up as a solid color banner and opaque pixel artifacts for the
bottom triangle pattern.
2021-10-31 20:53:18 +01:00
erlehmann
3a78211be4 Merge pull request 'ITEMS/mcl_maps: send hud_flags only if actually changed' (#146) from fix-minimap-spam into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/146
Reviewed-by: erlehmann <nils+git.minetest.land@dieweltistgarnichtso.net>
2021-09-15 17:20:34 +00:00
cora
eee94658e7 mcl_maps: send hud_flags only if actually changed 2021-09-13 14:15:32 +02:00
cora
07a59ef120 Merge pull request 'Add dirt node group documentation' (#142) from add-dirt-group-documentation into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/142
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-09-08 01:39:32 +00:00
Nils Dagsson Moskopp
e1462d9534
Add dirt node group documentation 2021-09-08 03:16:19 +02:00
cora
42a076cc0b Merge pull request 'ITEMS/mcl_core: Add debarking and stripped trunk / wood' (#135) from stripped-wood-3 into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/135
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-09-07 01:41:01 +00:00
NO11
3759d50344
Add german translation for stripped wood 2021-09-07 00:48:40 +02:00
NO11
50e913b370
Add template for stripped wood translation 2021-09-07 00:48:39 +02:00
NO11
508b08dfd3
Add specific help text for stripped wood 2021-09-07 00:48:38 +02:00
NO11
68646b62b3
Add some spaces 2021-09-07 00:48:38 +02:00
NO11
d3348ef8b7
Add stripped trunk / wood textures
Stripped trunk / wood nodes exist for acacia, birch, dark oak, jungle
tree, oak, and spruce. This patch adds the textures for all of these.
2021-09-07 00:48:37 +02:00
NO11
eadb96dd40
Refactor wooden plank crafting
This patch makes it possible to craft planks out of stripped wood.
2021-09-07 00:48:36 +02:00
NO11
616b009452
Add stripped trunk and stripped wood nodes 2021-09-07 00:48:35 +02:00
NO11
a92e1c05a3
Add debarking by right clicking wood using an axe 2021-09-07 00:48:10 +02:00
cora
b26fb44aeb Merge pull request 'New Mineclonia logo' (#140) from add-mineclonia-menu-header into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/140
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-08-27 02:53:11 +00:00
Li0n
19112bfbec
New Mineclonia logo 2021-08-27 04:09:35 +02:00
cora
6f046b199d Merge pull request 'Add Mineclonia menu icon' (#139) from add-mineclonia-menu-icon into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/139
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-08-27 01:31:19 +00:00
Nils Dagsson Moskopp
7f4f5c5c89
Make menu icon export compatible with Inkscape 1.0
Though usually one would export directly to "${3}", Inkscape 1.0 had
its command line options changed by people who apparently think that
backwards compatibility is some kind of swear word: Whereas earlier
Inkscape versions would export to a file called foo.png.tmp, newer
behaviour is to ignore the user's wishes & write to foo.png.png –
unless one asks it to write to a filename with a .png extension,
Inkscape 1.0 changes the filename extension to .png each time.

As we do not know the extension of "${3}", we have to use the
extension, then rename the resulting file to the proper name;
only that way the export works with Inkscape 1.0 & earlier …
2021-08-27 03:08:04 +02:00
Nils Dagsson Moskopp
a2b8489c80
Add Mineclonia menu icon PNG 2021-08-24 03:32:10 +02:00
Nils Dagsson Moskopp
c83278d3ff
Add dofile for Mineclonia menu icon PNG 2021-08-24 03:31:58 +02:00
Nils Dagsson Moskopp
cef3669ee2
Add Mineclonia menu icon SVG 2021-08-24 01:52:55 +02:00
cora
78634d4c90 Merge pull request 'PLAYER/wieldview: Fix server crash by client leaving after joining' (#138) from fix-server-crash-by-client-leaving-after-joining into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/138
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-08-22 17:26:32 +00:00
Nils Dagsson Moskopp
10ce37d887
Fix server crash by client leaving after joining
When a player joins and immediately leaves the game before a function is
called by minetest.after() in mods/PLAYER/wieldview/init.lua, it gets an
invalidated player object. This results in the player methods returning
nil (since Minetest 5.2); perhaps surprisingly, the player is not nil.

Not checking that the result of player:get_pos() is not nil could lead
to a server crash if a client crashed when joining. It has been reported
that a syntax error in a client side mod was enough to trigger that.
2021-08-22 04:21:35 +02:00
cora
3cd4ad5591 Merge pull request 'ENTITIES/mcl_item_entity: Fix non-serializable item entity unload crash' (#132) from fix-overlong-meta-item-crash-2 into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/132
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-08-01 01:23:43 +00:00
Nils Dagsson Moskopp
ce6d6c26cc
Add debug command to acquire a written book
The “getwrittenbook” command gives a player that has the “debug” privilege a book
with a configurable amount of characters. This was added as a debug aid, to help
reproducing situations in which items with lots of metadata trigger issues like
heavy lag or server crashes.
2021-07-30 17:22:33 +02:00
Nils Dagsson Moskopp
a0c9f11af6
Log warning for non-serializable item entity fix 2021-07-30 17:15:13 +02:00
sfan5
62d5b547a0
Fix non-serializable item entity unload crash
Some items, like shulkers or books, can have so much metadata that the
corresponding item entity can not be serialized by the Minetest engine.

Without this patch, dropping such an item and then moving away crashes
Minetest, as it can not serialize the entity with serializeString16()
when unloading a map block.

The patch resets the overlong metadata of non-serializable item entities.
This avoids a crash and makes it possible to retrieve a “sanitized” item
without metadata when the mapblock containing the item entity is reloaded.

Originally sfan5 guessed the maximum possible item entity serialization size
that would not lead to a crash as 65530 bytes, but anon5 calculated it to be
actually 65487 bytes. This has been experimentally verified by erlehmann.
2021-07-30 17:13:26 +02:00
erlehmann
45cdad7283 Merge pull request 'MAPGEN/tsm_railcorridors: Generate pig spawners in mineshafts' (#127) from mineshaft-pig-spawners into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/127
Reviewed-by: E <e@noreply.git.minetest.land>
2021-07-23 02:24:17 +00:00
Nils Dagsson Moskopp
71cff7051f
Generate pig spawners in mineshafts
In Minecraft Java Edition, when the map generator generates a spawner,
it can generates a pig spawner instead of the spawner it should create.
That behaviour is very rare, but has never been removed from Minecraft.

This patch changes 1 in 1000 spawners in a mineshaft to be a pig spawner
instead of a cave spider spawner.
2021-07-23 04:11:33 +02:00
erlehmann
eddbfb4b5c Merge pull request 'HUD/hudbars: Do not send useless HUDCHANGE packets' (#122) from fix-hudchange-spam into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/122
Reviewed-by: cora <cora@noreply.git.minetest.land>
2021-07-22 01:21:22 +00:00
Wuzzy
280aed484c
Do not send useless HUDCHANGE packets
Several mods set or unset the visibility of a HUD bar way too often (e.g.
in a globalstep handler), causing the server to send a lot of superfluous
HUDCHANGE packets to each client. Returning from hb.hide_hudbar() early
if HUD bar visibility would not change prevents sending these packets.
2021-07-21 10:28:04 +02:00
erlehmann
c1cf50ae15 Merge pull request 'Add script to show packets count from client logs' (#123) from analyze-packet-spam into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/123
Reviewed-by: E <e@noreply.git.minetest.land>
2021-07-21 07:16:34 +00:00
Nils Dagsson Moskopp
01c8339f40
Add script to show packets count from debug logs
Mineclonia has inherited mods from MineClone 2 that send a lot of network
packets. This behaviour wastes bandwith and is most likely a major reason
for the unusually high amount of lag that MineClone2 and Mineclonia have.

Many network packets that are sent by Mineclonia are entirely useless.
Analyzing minetest log files to figure out what kind of packets are
sent and how often is a first step in getting rid of useless traffic.
2021-07-19 22:29:07 +02:00
erlehmann
6219e8ae12 Merge pull request 'ITEMS/mcl_end: Make dragon egg teleport on punching' (#119) from dragon-egg-teleport into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/119
Reviewed-by: E <e@noreply.git.minetest.land>
2021-07-13 08:02:12 +00:00
Elias Fleckenstein
920ca96764
Make dragon egg teleport on punching 2021-07-13 09:11:48 +02:00
erlehmann
e2e08f28dd Merge pull request 'items/mcl_bows: Let players shoot themselves with arrows' (#117) from fix-arrow-selfshoot-3 into master
Reviewed-on: https://git.minetest.land/Mineclonia/Mineclonia/pulls/117
Reviewed-by: E <e@noreply.git.minetest.land>
2021-07-13 06:55:57 +00:00
Nils Dagsson Moskopp
76e3a00e18
Make potion arrows able to hit end crystals 2021-07-12 22:21:15 +02:00
Nils Dagsson Moskopp
2033a9bf1d
Refactor potion arrow flight time calculation 2021-07-12 16:07:20 +02:00
Nils Dagsson Moskopp
99ebf08873
Refactor regular arrow flight time calculation 2021-07-12 16:06:44 +02:00
Nils Dagsson Moskopp
c45c0df118
Play no hit sound when potion arrow hits shooter 2021-07-12 04:59:53 +02:00
Nils Dagsson Moskopp
39023f1adf
Play no hit sound when regular arrow hits shooter 2021-07-12 04:59:39 +02:00
Nils Dagsson Moskopp
689054f904
Fix sound_play invocation when player hit by potion arrow 2021-07-12 03:49:05 +02:00