Commit Graph

6875 Commits

Author SHA1 Message Date
Nils Dagsson Moskopp 77f8ecd6e8 Make daylight detector work in Minetest 5.3.0
This patch contains a function that searches for a path to a node with
light level 15, which is guaranteed to be sunlight.
2022-03-09 22:33:08 +00:00
Nils Dagsson Moskopp 4da5084daf Make daylight detector ignore artificial light
The daylight detector code used get_node_light(), which detects both
natural and artificial light. This patch improves the code to use
get_natural_light(), which was introduced with Minetest 5.4.0.
2022-03-09 22:33:08 +00:00
kabou deed231f28 Fix typos. 2022-03-09 18:50:41 +01:00
kabou 11ee1d133f Fix cut-n-paste error.
* Swap misplaced lines.
* Concatenate conditional expression.
2022-03-09 18:26:51 +01:00
kabou 1326b9e7e7 Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate its
  attributes.  By application of De Morgan's law, the compound logic
  expression can be rewritten so that the existence of the table is
  checked before all following attribute references.
2022-03-09 15:14:22 +01:00
kabou 6a69f49fa0 Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate its
  attributes.
2022-03-09 14:59:49 +01:00
kabou f5a8d6d17a Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate its
  attributes.
* Define local variable to cache multiple accesses to `registered_nodes[]`
  and improve readability.
* Clarify code flow.
2022-03-09 14:40:37 +01:00
kabou 3f4dafc68f Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate its
  attributes.
* Define local variable to cache multiple accesses to `registered_nodes[]`
  and improve readability.
2022-03-09 14:14:45 +01:00
kabou 9bac0da01a Fix registered_items oddity and add check for unknown nodes.
* Mobs redo uses `registered_items[]` where clearly the proper table
  accessed should be `registered_nodes[]`.  Perhaps this magically
  works, but it looks nonsensical.  Switch to the use the more
  sensible `registered_nodes[]` table.
* Check if node has a definition table before attempting to evaluate its
  attributes.
* Define local variable to cache multiple accesses to `registered_nodes[]`
  and improve readability.
2022-03-09 13:11:53 +01:00
kabou 818cbb2f48 Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate its
  attributes.
* Define local variable to cache multiple accesses to `registered_nodes[]`
  and improve readability.
2022-03-09 12:11:59 +01:00
kabou 88f7a150c7 Add check for unknown nodes.
* Add check for unknown node in `handle_node_drops()` and return
  immediately if the dug node has no definition table.
2022-03-09 04:00:48 +01:00
kabou 962500b189 Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate its
  attributes.
* Define local variable to cache multiple accesses to `registered_nodes[]`
  and improve readability.
2022-03-09 02:23:18 +01:00
kabou 95cfa43483 Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate its
  attributes.
* Define local variable to cache multiple accesses to `registered_nodes[]`
  and improve readability.
2022-03-09 02:15:33 +01:00
kabou 4a1b93bbfa Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate its
  attributes.
* Define local variable to cache multiple accesses to `registered_nodes[]`
  and improve readability.
2022-03-09 02:05:38 +01:00
kabou b9c2c3bd0a Add check for unknown nodes.
* Check if node has a definition table before attempting to evaluate
  attributes.
* Define local variable to cache multiple accesses to `registered_nodes[]`
  and improve readability.
* Reduce redundant `== false` condition check.
2022-03-09 00:01:23 +01:00
Dieter44 f8c60b5f75 ITEMS/mcl_anvils: fix renaming items w/o desc… 2022-03-05 15:35:39 +00:00
MysticTempest 7a53ea8b70 Rename a few textures to help support texture packs. 2022-03-02 20:13:24 -06:00
Elias Åström 3c10f0e970 Rewrite portal removal to avoid stack overflow
This solves a problem were nether portal removal would trigger deep
recursion through node callbacks.  For large portals this could result
in stack overflow crashes on LuaJIT.  The issue is solved by rewriting
the portal removal to avoid recursion and removing the portal in one
operation using minetest.bulk_set_node.
2022-03-03 01:42:49 +00:00
kabou c3e0996902 Fix fire HUD not showing on join while burning.
* Add the fire HUD to a player who joins the server while still burning
  from the previous session.
2022-03-02 17:15:05 +01:00
kabou d424d4f10e Add comments to mcl_burning.update_hud(). 2022-03-02 16:39:27 +01:00
kabou e80006f4ea Do not set fire to objects that are already burning.
Changes to mcl_burning.set_on_fire():
* Add logic that only updates the burn time, but skips adding fire
  entities to objects that are already burning.
* Condense code a little, remove single use variables.
* Add a comment to a questionable piece of code.
* Add comments to the function.
2022-03-02 16:25:40 +01:00
kabou b17776699e Add comments to "storage" table.
* Document attributes of the "storage" table.
2022-03-02 15:40:29 +01:00
kabou 86a4ece7d2 Add local copy of minetest.find_nodes_in_area. 2022-03-02 15:25:03 +01:00
kabou df5d24104d Make player burning HUD work without csm.
* Add update_hud() function.
* Remove the client channels.
* Unglobalize animation_frames variable.
* Fix bug where player state was not stored on shutdown of singleplayer
  game.
* Remove superfluous sanity_check() function, this code could easily be
  inlined in its only caller.
2022-03-02 15:21:55 +01:00
kabou 56b63463a5 Fix burning entity animation.
The parameters for the flames sprite were incorrect, causing the reverse
side of the sprite to appear as an opaque black rectangle.  Use the
correct incantation.
2022-03-02 10:47:46 +01:00
Nils Dagsson Moskopp 66bb209ad1 Fix TGA file writing on Windows
Before this patch, the tga_encoder mod would write corrupted TGA files
on Windows: Bytes that looked like newlines were replaced by a carriage
return and a newline.
2022-02-28 16:58:59 +00:00
AFCMS 5a7b1cc382
make all arrow types activate target (+ depends and code fixes) 2022-02-26 23:52:03 +01:00
AFCMS 210a0d8ee1
make lingering potions activate target (+ indentation fix) 2022-02-26 22:44:50 +01:00
AFCMS eae8effd57
make splash potions activate target 2022-02-26 22:42:27 +01:00
AFCMS b51e322304
make fire charges activate target (+ fix possible crash) 2022-02-26 22:38:34 +01:00
AFCMS 096d46152e
make bottle o enchanting activate target 2022-02-26 22:20:05 +01:00
AFCMS d89687984b
make ender pearls activate target 2022-02-26 22:16:10 +01:00
AFCMS c6f72c473f
make eggs activate target 2022-02-26 22:12:26 +01:00
AFCMS 540b72f1d6
add target help text 2022-02-26 19:12:02 +01:00
AFCMS 7449725a56
add target crafting receipe 2022-02-26 19:12:01 +01:00
AFCMS 9e7a525a0a
make snowballs activate target 2022-02-26 19:12:01 +01:00
AFCMS 4bd91750bc
add target with API 2022-02-26 19:12:01 +01:00
E 87e494f42b mapgen/mcl_mapgen_core: move set_node decorations a node callback
During the rewrite in 89e55e9065, a queue system was added to allow
using both VoxelManip-based generation steps, and set_node-based steps,
however some set_node-based steps (underground mushrooms, nether
decorations, and structures) were missed and remained in a VoxelManip
step. The result is that the changes made by the set_node stages were
overwritten after the (now-stale) VoxelManip data was committed later.

(ref. Mineclonia/Mineclonia#26)
2022-02-25 18:38:50 +01:00
cora 3feca330c9 fix the other 2 throw_xp occurences 2022-02-25 00:40:26 +00:00
cora caacb378de fix api change in enchanting 2022-02-25 00:40:26 +00:00
cora 379972ea11 fix crash when blaze attacks logged off player 2022-02-25 00:40:26 +00:00
cora 414e2e7725 fix crash on opening villager formspec 2022-02-25 00:40:26 +00:00
cora 435b5d756d throw_experience->throw_xp (api change) 2022-02-25 00:40:26 +00:00
cora 2bb416765c revert to old mobs ( 32c03dc27e )
This reverts the hierarchies ENTITIES/mcl_mobs, ENTITIES/mobs_mc
and ENTITIES/mobs_mc_gameconfig to the state of commit
32c03dc27e
2022-02-25 00:40:26 +00:00
cora 86ca401e4e do not randomseed twice 2022-02-25 00:08:26 +00:00
cora 378b5b30c9 fix beds dropping when burning up 2022-02-25 00:08:26 +00:00
cora 840b705a22 make fire use abms instead of laggy node timers 2022-02-25 00:08:26 +00:00
Nils Dagsson Moskopp 27842aa2f5 Fix handheld maps not displaying in Minetest 5.5.0
The function dynamic_add_media() was changed in incompatible ways in
several minor versions of Minetest, breaking the display of handheld
maps in Minetest 5.5.0. This patch makes handheld maps display there.

The function was blocking with one argument in Minetest 5.3. It was also
blocking in Minetest 5.4, but took an additional argument for a function
to execute once the media had been received. Calling dynamic_add_media()
with a single argument had been deprecated; a function that did nothing
was provided in mcl_maps to satisfy the changed argument requirements.

In Minetest 5.5, dynamic_add_media() was changed to non-blocking. This
introduced a race condition in mcl_maps, where a client often tried to
display a map before it had received the map texture from the server.

Opening an issue on the Minetest issue tracker led to it being closed in
about 20 minutes: <https://github.com/minetest/minetest/issues/11997>
2022-02-24 22:43:45 +00:00
Nils Dagsson Moskopp 41550da87b Fix redstone comparator flooding crash
Redstone comparators have two modes, comparison mode & subtraction mode.
Before this patch, the functions to turn comparators on or off attempted
to swap nodes with comparators in the same mode, but failed to determine
the correct replacement node, if the existing node was not a comparator.

When a comparator in an on state (e.g. powered by a filled cauldron) was
flooded, the flooding dropped the comparator and replaced the comparator
node that was to be swapped out with air, which lead to a server crash.

This patch changes the functions that turn comparators on or off so they
only swap existing nodes with comparators in the same mode if the name
of the replacement node can be determined – i.e. if it is not nil.
2022-02-24 15:52:01 +01:00
AFCMS cbfc71705d
remove blender backup file 2022-02-24 10:16:47 +01:00
kabou 5431e206b0 Fix hopper breakage in get_item_group return value.
In commit 55009c257e that added vectors to
mcl_composters, mcl_hoppers was accidentally patched with a unrelated
change, updating it to get_item_group().  This mostly works, but in one
particular case the semantics of the return value differs.  Instead of
returning 'nil' it returns '0'.  That altered the evaluation of an if
condition, breaking the abm that sucks in items.

This commit fixes the conditional by explicitly comparing  '~= 0'.
2022-02-24 03:18:25 +01:00
1F616EMO 06deb92dd6 mcl_tools 2022-02-23 23:58:05 +01:00
1F616EMO 7685b4758f mcl_flowers 2022-02-23 23:58:05 +01:00
1F616EMO 9944abb328 mcl_books 2022-02-23 23:58:05 +01:00
1F616EMO 5ce1852c1d mcl_dye 2022-02-23 23:58:05 +01:00
1F616EMO 56a70025b8 mcl_flowerpots 2022-02-23 23:58:05 +01:00
1F616EMO 9fe3bbd2fa mcl_mushrooms 2022-02-23 23:58:05 +01:00
1F616EMO fb1d189d40 mcl_doors 2022-02-23 23:58:05 +01:00
1F616EMO 9cd24f4af5 mcl_commands 2022-02-23 23:58:05 +01:00
1F616EMO a64c3f87bc xpanes 2022-02-23 23:58:05 +01:00
1F616EMO 5075f2ca56 mcl_armor 2022-02-23 23:58:05 +01:00
1F616EMO 249dfac319 mcl_inventory 2022-02-23 23:58:05 +01:00
1F616EMO 2b5a0242db mcl_fire 2022-02-23 23:58:05 +01:00
1F616EMO 790ccf0812 mcl_fishing 2022-02-23 23:58:05 +01:00
1F616EMO 8d639794f3 mcl_fences 2022-02-23 23:58:05 +01:00
1F616EMO af8681c143 mcl_buckets 2022-02-23 23:58:05 +01:00
1F616EMO 1ef58f7250 mcl_walls 2022-02-23 23:58:05 +01:00
1F616EMO 15747220f2 mcl_hoppers 2022-02-23 23:58:05 +01:00
1F616EMO 925dad7f5e mcl_anvils 2022-02-23 23:58:05 +01:00
1F616EMO 729f653c85 mcl_portals 2022-02-23 23:58:05 +01:00
1F616EMO d1e328e57a mcl_bows 2022-02-23 23:58:05 +01:00
1F616EMO 615a968fbb mcl_skins 2022-02-23 23:58:05 +01:00
1F616EMO 7e5a9bd8b6 mcl_throwing 2022-02-23 23:58:05 +01:00
1F616EMO d018bee00a mcl_cake 2022-02-23 23:58:05 +01:00
1F616EMO 1365d0b257 mcl_jukebox 2022-02-23 23:58:05 +01:00
1F616EMO a289a00427 mcl_heads 2022-02-23 23:58:05 +01:00
1F616EMO a238aabbb0 mcl_cauldrons 2022-02-23 23:58:05 +01:00
1F616EMO b02f7cd974 mcl_mobs 2022-02-23 23:58:05 +01:00
1F616EMO e19113d4e0 findbiome 2022-02-23 23:58:05 +01:00
1F616EMO 4deac632e6 mcl_sponges 2022-02-23 23:58:05 +01:00
1F616EMO c480e6891d mcl_maps 2022-02-23 23:58:05 +01:00
1F616EMO 844eb3fb7c mcl_brewing 2022-02-23 23:58:05 +01:00
1F616EMO fc768cb1ad mcl_signs 2022-02-23 23:58:05 +01:00
1F616EMO 1f9a919459 mcl_monster_eggs 2022-02-23 23:58:05 +01:00
1F616EMO 70007e3453 mcl_furnaces 2022-02-23 23:58:05 +01:00
1F616EMO 3aff1f8981 mcl_hunger 2022-02-23 23:58:05 +01:00
1F616EMO c86a506672 mcl_tnt 2022-02-23 23:58:05 +01:00
1F616EMO f348223da2 mcl_crafting_table 2022-02-23 23:58:05 +01:00
1F616EMO ca6469b959 mcl_weather 2022-02-23 23:58:05 +01:00
1F616EMO c52e09ddcd mcl_structures 2022-02-23 23:58:05 +01:00
1F616EMO bb55120adc mcl_experience 2022-02-23 23:58:05 +01:00
1F616EMO 77339afbe2 mcl_cocoas 2022-02-23 23:58:05 +01:00
1F616EMO 9b15599bee hudbars 2022-02-23 23:58:05 +01:00
1F616EMO a685c3bc83 mclx_core 2022-02-23 23:58:05 +01:00
1F616EMO b01d4eba88 mcl_paintings 2022-02-23 23:58:05 +01:00
1F616EMO 952747d4da mcl_mobspawners 2022-02-23 23:58:05 +01:00
1F616EMO 430f5b05ab mcl_itemframes 2022-02-23 23:58:05 +01:00
1F616EMO e4a311e28a mcl_clock 2022-02-23 23:58:05 +01:00
1F616EMO 6a115a68ef mcl_armor_stand 2022-02-23 23:58:05 +01:00
1F616EMO f3d0ec845c mcl_spawn 2022-02-23 23:58:05 +01:00