Commit graph

888 commits

Author SHA1 Message Date
Nils Dagsson Moskopp
f89c52dff6
Fix mob-in-boat crash in Minetest 5.5-dev
In Minetest 5.4.1, calling get_player_control() on a mob returned the
empty string. Minetest commit 5eb45e1ea03c6104f007efec6dd9c351f310193d
changed this, so now calling get_player_control() on a mob returns nil.

As mcl_boats defines boats that can have a player or a mob as a driver,
code like the following crashes with a changed get_player_control() API:

local ctrl = driver:get_player_control()
if ctrl.sneak then
    detach_object(driver, true)
end

Furthermore, once a world has crashed, joining it near a mob that is the
driver of a boat with such control code immediately crashes again.

When I reported this bug to Minetest, several Minetest core developers
stated that they disliked the old API and proposed other return values
for calling a mob's get_player_control() function – all different from
the empty string. Since I have some doubts that this bug will be fixed
in Minetest 5.5.0, boat code must take into account a nil return value.

Minetest issue: https://github.com/minetest/minetest/issues/11989
2022-01-26 18:25:08 +01:00
Nils Dagsson Moskopp
66dd87af25
Give mobs sunburn at correct light level
Before this patch, the light level that makes mobs that burn in sunlight
catch fire had been mistakenly specified as minetest.LIGHT_MAX or more.

The correct light level for sunlight is LIGHT_SUN, which is one higher
than minetest.LIGHT_MAX. Since minetest.LIGHT_MAX is the maximum light
value that a node can have and torches emit light at that light level,
mobs that burn in sunlight caught fire inside torch nodes.
2021-11-19 03:14:36 +01: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
Nils Dagsson Moskopp
253100380c
Add debug command to burn a player 2021-11-11 21:37:26 +01: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
Elias Fleckenstein
764ff5512a
Fix server crash when boat passenger sneaks
The crash occured when a player who is not a driver of a boat sneaked.
2021-06-18 19:08:19 +02:00
Elias Åström
5d3514880a Move data from deprecated files to mod.conf
Move data from deprecated files (depends.txt and description.txt) into
fields in mod.conf for all mods.
2021-05-16 13:44:04 +02:00
erlehmann
3009ebb2c6 Merge branch 'master' into mcl_autogroup 2021-04-29 21:24:32 +00:00
Benjamin Schötz
e5c324b0d7 Added french, spanish, russian translation for killerbunny-nametag 2021-04-19 20:43:18 +02:00
Benjamin Schötz
82c838e067 Sets killerbunny-label in a translateable way 2021-04-19 20:27:20 +02:00
Elias Åström
2df6ee32be Remove unnecessary code in mcl_item_entity 2021-04-16 22:45:22 +02:00
Elias Åström
9bb39dfba6 Rename _mcl_autogroup_groupcaps to _mcl_diggroups 2021-04-16 22:34:26 +02:00
Elias Åström
b50addac55 Make changes to the mcl_autogroup API
Group levels are now specified as a list of names when registering a
digging group.  Digging groups which do not have specified levels will
support tools having two levels, 0 and 1 where 0 means the tool can dig
but not harvest the node and 1 means it can also harvest the node.  If
more levels are required one has to specifiy them when registering the
digging group.
2021-04-16 22:33:55 +02:00
Elias Åström
012e150b59 Rewrite mcl_autogroup
These changes are primarly made to make mcl_autogroup more efficient.
Previously enchanted tools required storing around 21 kB of metadata due
to the way the previous version of the mod was implemented.  This caused
a lot of lag and a huge amount of network traffic.  With the changes
enchanted tools won't require more than 1 kB of metadata.

The mod is also rewritten to use an API to register digging groups and
compute the groupcaps for tools.  This will make it easier for modders
to register custom digging groups.

The mod is now split up into two parts.  One part called "mcl_autogroup"
to implement the API for registering custom digging groups, and the
other part called "_mcl_autogroup" which contains most of the code which
has to be loaded after most mods.
2021-04-16 22:31:42 +02:00
Elias Åström
ac20baac12 Revert "Slightly tweak minecarts to be more MC-like"
This reverts commit 8af76f835d.
2021-04-16 16:29:06 +02:00
Elias Fleckenstein
f5b590901e Merge branch 'master' of https://git.minetest.land/Wuzzy/MineClone2 2021-03-01 10:52:07 +01:00
Elias Fleckenstein
95b0a495bc Fix #1152 2021-03-01 10:51:57 +01:00
kay27
8af76f835d Slightly tweak minecarts to be more MC-like 2021-03-01 01:43:00 +04:00
Elias Fleckenstein
8d5b2ff714 Make boats less annoying on ice 2021-02-27 14:38:53 +01:00
MysticTempest
2ace4ccc68 Fix endermen teleporting in the rain in the end per issue #1169. 2021-02-25 21:48:37 -06:00
kay27
44d3f25767 Leave minecart by Pressing Sneak, https://git.minetest.land/MineClone2/MineClone2/issues/567 2021-02-26 00:26:27 +04:00
Elias Fleckenstein
f04a5a4cc9 Prevent Ender dragon and Wither from despawning 2021-02-25 12:48:17 +01:00
Elias Fleckenstein
0c3ab5843d Make boats go super fast on ice and slightly faster on land 2021-02-24 10:38:49 +01:00
Elias Fleckenstein
0d2950228a Implement #1057 2021-02-24 09:31:27 +01:00
Elias Fleckenstein
2d4b8a8232 Replace usages of get_node_group by get_item_group 2021-02-23 10:25:17 +01:00
Elias Fleckenstein
2d0612fa81 Make boats regenerate health and shake when damaged 2021-02-22 12:43:29 +01:00
Elias Fleckenstein
5de9d90569 Simplify mcl_burning API 2021-02-22 10:55:14 +01:00
kay27
0ba7e4fc4d Fix Runtime error: attempt to index a nil value (api.lua:399 <- is_node_dangerous <- is_at_cliff_or_danger <- on_step_old <- void_damage:16) 2021-02-22 13:40:40 +04:00
epCode
512765a37d Make use_texture_alpha an mobs_mc.entity setting 2021-02-21 17:10:04 -08:00
epCode
af89b95316 Remove unessesary code in slime+magma_cube.lua 2021-02-19 13:25:53 -08:00
epCode
393bc195fb Enable alpha for mobs 2021-02-19 13:11:18 -08:00
Elias Fleckenstein
c9e589b931 Add mcl_burning damage interval 2021-02-18 14:47:35 +01:00
Elias Fleckenstein
aeb7078c05 Update use_texture_alpha to the minetest 5.4 conventions 2021-02-18 14:00:17 +01:00
Elias Fleckenstein
eddef41e6b Fix #1132 2021-02-18 09:41:06 +01:00
Elias Fleckenstein
574ced80a3 Give charged creeper an explosion strength of 6 2021-02-16 09:55:36 +01:00
epCode
903a29f949 Add charged creeper 2021-02-12 16:48:46 -08:00
MysticTempest
0ec64189dc Partial creeper explode distance fix, and fix to stop punching mobs into the air. 2021-02-11 17:27:55 -06:00
kay27
ba9ad48114 Protect paintings, fix https://git.minetest.land/MineClone2/MineClone2/issues/1080 2021-02-09 23:34:04 +00:00
MysticTempest
dc9ca16321 Enable villager spawning. 2021-02-09 06:06:19 -06:00
epCode
6f8d728035 Merge pull request 'master' (#6) from MineClone2/MineClone2:master into master
Reviewed-on: https://git.minetest.land/epCode/MineClone2/pulls/6
2021-02-06 00:10:00 +00:00
kay27
696ae8e6fe Merge pull request 'Fix Mobs not taking knockback on the Y-axis' (#1061) from Code-Sploit/MineClone2:master into master
Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/1061
2021-02-05 21:41:38 +00:00
kay27
fa3e37c604 A mob does not drop XP unless it dies within 5 s of an attack registered as a player hit, https://git.minetest.land/MineClone2/MineClone2/issues/1021#issuecomment-13894 2021-02-05 16:34:49 +04:00
Code-Sploit
95b0a27213 Fix Mobs not taking knockback on the Y-axis 2021-02-05 10:36:48 +00:00
epCode
e0ad09900c Merge pull request 'master' (#5) from MineClone2/MineClone2:master into master
Reviewed-on: https://git.minetest.land/epCode/MineClone2/pulls/5
2021-02-02 22:19:58 +00:00
MysticTempest
e716ebd911 Make enderman grief less frequently, enable pseudobiome villages by default, and disable natural village generation in singlenode. 2021-02-01 15:45:22 -06:00
Elias Fleckenstein
9956e267aa Allow for 2 drivers in a boat 2021-01-31 12:54:40 +01:00
Elias Fleckenstein
e66d66caf9 Fix #399 2021-01-28 19:02:44 +01:00