Commit Graph

3654 Commits

Author SHA1 Message Date
kabou 2ba801dfc7 Add protection support to composter.
* Add checks for `minetest.is_protected()` and log any violations.
* Add local aliases for global functions.
2022-04-02 03:32:56 +02:00
kabou 19eb31f389 Streamline use of vector ops.
* Use vector.offset instead of vector.add.
* Define and use local alias for vector.offset.
2022-04-02 03:32:56 +02:00
kabou 541a805a48 Logix fix and some simple optimizations.
* Fix silly and mostly inconsequential logic bug that had gone unnoticed up
  till now.
* Condense a single use variable away by using a slightly more elaborate
  assignment statement.
* Add a few more local aliases for global minetest.* functions.
2022-04-02 03:32:56 +02:00
kabou cd12e1d78c Various little fixes.
* Remove trailing whitespace.
* Remove `use_texture_alpha` setting from node definitions, the default
  value is already the correct one.
2022-04-02 03:32:56 +02:00
kabou 4335d0d659 Use compostability group from node definitions.
* Replace use of local table with compostability values with a call to
 `minetest.get_item_group()`.
* Define local alias for `minetest.get_item_group`.
* Remove the now unused static compostabilty values table.
2022-04-02 03:32:56 +02:00
kabou de16eb3c5a Add `compostability` to node definition group.
* mcl_cake/init.lua (cake);
* mcl_core/craftitems.lua (apple);
* mcl_core/nodes_base.lua (dirt with grass);
* mcl_core/nodes_cactuscane.lua (cactus, sugarcane);
* mcl_core/nodes_climb.lua (vines);
* mcl_core/nodes_trees.lua (leaves, saplings);
* mcl_dye/init.lua (cocoa beans);
* mcl_farming/beetroot.lua (beetroot, & seeds);
* mcl_farming/carrots.lua (carrot);
* mcl_farming/melon.lua (melon, & slice, & seeds);
* mcl_farming/potatoes.lua (potato, baked potato);
* mcl_farming/pumpkin.lua (pumpkin, carved &, & seeds, & pie);
* mcl_farming/wheat.lua (wheat, cookie, bread, hay block);
* mcl_flowers/init.lua (flowers, ferns, grass, & tall variants);
* mcl_mushrooms/small.lua (red and brown mushrooms);
* mcl_mushrooms/huge.lua (red and brown huge mushrooms);
* mcl_nether/init.lua (nether wart block);
* mcl_nether/nether_wart.lua (nether wart);
* mcl_ocean/kelp.lua (kelp, dried &, & block);
* mcl_ocean/sea_pickle.lua (sea pickle);
* mcl_ocean/seagrass.lua (seagrass).
2022-04-02 03:32:56 +02:00
NO11 5974b6f609 Merge branch 'master' into shields2 2022-03-28 12:27:57 +00:00
NO411 148be4ea39 Fix shield behavior 2022-03-27 19:52:36 +02:00
NO411 6afe7cfb58 Fix typo and interact bug? 2022-03-27 18:08:43 +02:00
AFCMS 909b77ce4d
barrel protection fix + log 2022-03-25 13:28:33 +01:00
NO11 63a156c30c Fix typo/crash 2022-03-23 18:30:34 +00:00
NO411 019dd45381 Check for damager 2022-03-19 16:50:19 +01:00
NO411 d481f7b720 Fix showing shield hud at the wrong side for half a second 2022-03-19 15:59:59 +01:00
NO411 c94964d10a Remove debug line 2022-03-19 15:26:41 +01:00
kabou ae6bea73fd Make carpets `supported_node`.
* Change carpet from `group:attached_node` to `group:supported_node`,
  allowing carpets to be placed on top of torches, water source blocks
  and other non-walkable nodes, like in MC.
2022-03-19 02:32:46 +01:00
NO411 6158e4e50d Don't always update shield texture using set_properties 2022-03-18 23:23:01 +01:00
NO411 7c0a48bebf Remove some code ... 2022-03-18 23:08:50 +01:00
NO411 5bdf83cbfc Revert weird changes 2022-03-18 23:07:25 +01:00
NO411 976cfba53a Make it possible to xraft a banner on an enchanted shield 2022-03-18 23:02:51 +01:00
NO411 fc9e83c059 Make it possible to craft a banner on an enchanted shield 2022-03-18 23:02:25 +01:00
NO411 60d877b718 Fix enchanting shield on enchanting table possible 2022-03-18 22:45:12 +01:00
NO411 db68c0e26b Add shield 2022-03-15 15:58:27 +01:00
epCode 4483f4b6b6 fix #2068 2022-03-15 02:18:02 +00:00
AFCMS 47b1eeda74
fix frost walker enchant not protecting from magma block damage 2022-03-13 19:11:28 +01:00
kabou 17b8eab368 Make carpets walkable.
* Make carpets walkable.  When a carpet is placed on top of a fence or a
  wall, the carpet can be jumped upon, allowing to in effect jump over
  fences and walls.
2022-03-12 13:35:12 +00:00
MysticTempest de3cdee09e Make composters & barrels fuel for furnaces with the same burntime as chests. 2022-03-10 00:47:54 -06:00
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 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
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
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 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
cora 414e2e7725 fix crash on opening villager formspec 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 a64c3f87bc xpanes 2022-02-23 23:58:05 +01:00
1F616EMO 5075f2ca56 mcl_armor 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 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 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 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 77339afbe2 mcl_cocoas 2022-02-23 23:58:05 +01:00
1F616EMO a685c3bc83 mclx_core 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 a6c3cab791 mclx_fences 2022-02-23 23:58:05 +01:00
1F616EMO bb4ddee570 mcl_compass 2022-02-23 23:58:05 +01:00
1F616EMO dba08ddc1f mcl_torches 2022-02-23 23:58:05 +01:00
1F616EMO f02f3c9f40 screwdriver 2022-02-23 23:58:05 +01:00
1F616EMO ad42c3588b mcl_farming 2022-02-23 23:58:05 +01:00
1F616EMO 9734c74c56 (WIP) mcl_farming 2022-02-23 23:58:05 +01:00
1F616EMO 4f00b62a18 add zh_TW translate to `mcl_beds` and `mcl_core` 2022-02-23 23:58:04 +01:00
AFCMS 360a1604ba
Revert "move barrels to mcl_chests"
This reverts commit a272322cb5.
2022-02-22 20:20:21 +01:00
AFCMS a272322cb5
move barrels to mcl_chests 2022-02-22 18:08:25 +01:00
AFCMS 9112915ddd
fix barrel top texture rotation 2022-02-22 18:08:25 +01:00
AFCMS 397c243e89
cleanup barrel TODO list 2022-02-22 18:08:25 +01:00
AFCMS 61e54ed617
rename `mcl_util.drop_items_container_get` to `drop_items_from_meta_container` 2022-02-22 18:08:24 +01:00
AFCMS 0988637ea1
add barrel tooltip help text 2022-02-22 18:08:24 +01:00
AFCMS b88060dbfb
add doc description to barrels 2022-02-22 18:08:23 +01:00
AFCMS e3e06b4a4b
fix broken tree placement 2022-02-22 18:08:23 +01:00
AFCMS 34b445b04a
fixes 2022-02-22 18:08:22 +01:00
AFCMS d41a836514
add craft 2022-02-22 18:08:22 +01:00
AFCMS 80fb59f9ac
add barrel 2022-02-22 18:08:22 +01:00
kabou af132cc523 Reinstate nil check in on_place_bucket.
* Oops, nil checks on registered_node[name] were erroneously optimized
  away, risking crashes.  Reinstate those checks.
2022-02-21 18:00:56 +01:00
kabou e54502edd6 Add more local aliases for minetest.* namespace functions
* Add locals for
  - minetest.is_creative_enabled
  - minetest.is_protected
  - minetest.record_protection_violation
2022-02-20 20:24:55 +01:00
kabou 639bf936c5 Use alias for minetest.* namespace function call.
* Fix one missed minetest.get_node use in earlier commit.
2022-02-20 19:52:05 +01:00
kabou d2261426c3 Remove redundant variables in on_place_bucket.
The function on_place_bucket defined a couple of variables that were
used only once or in a redundant check.  After removal of the redundant
check in a previous commit, all use-once variables can now be substituted
with their assignment expressions.
2022-02-20 18:46:23 +01:00
kabou 88ce1e3662 Remove redundant logic.
The function on_place_bucket contains the following logic:
  if not a and not b then return x end
  if a then
    foo(a)
  elseif b then
    foo(b)
  else
    return x
  end

The "if not a and not b then .." is removed because the case is handled
by the else case later on.  This will allow some further simplifications.
2022-02-20 18:46:23 +01:00
kabou b3aed9d6b8 Use proper get_item_group accessor.
Instead of directly accessing the group table in node definitions, use
the proper minetest.get_item_group accessor to test for "cauldron"
group.
Also adds local alias get_item_group for the global minetest call.
2022-02-20 18:46:23 +01:00
kabou 13baa68b67 Fixed missed alias uses and added set_node alias.
Two instances of add_node and add_item still used the full minetest
call, substitute the alias.
Added a set_node alias for several minetest.set_node calls.
2022-02-20 18:46:23 +01:00
kabou 315f251584 Add local to speedup global function access.
The minetest.registered_nodes function is called from multiple places.
Define a local alias registered_nodes and substitute it in all calls.
2022-02-20 18:46:23 +01:00
kabou 584a75df76 Fix filling cauldrons with water.
When using a bucket of water on a cauldron, this would not fill the
cauldron as expected, but deposit a water source block on top of the
cauldron instead.

Applied patch from mineclone5 #38 (commit #
698c29733f06a7fcb7e755bf26ee46b33b00699b) from mineclone5 that fixes
this problem.
2022-02-20 18:46:23 +01:00
kabou 8d18ab8a7a Optimize texture files.
* Texture files were optimized with 'optipng  -o7 -zm9 -strip all' .
2022-02-19 21:18:01 +01:00
kabou f81980da51 Fix hardness and blast resistance.
* Use correct MC values for hardness and blast resistance.
2022-02-19 21:18:01 +01:00
kabou 55009c257e Use new vectors
* Use vector.new instead of xyz table.
2022-02-19 21:18:01 +01:00
kabou 51ca60c097 Change custom node attribute name.
* Rename _compost_level to _mcl_compost_level
2022-02-19 21:18:01 +01:00
kabou f22baafaa6 Add player object check.
* Add one more check if player object is an actual player.
2022-02-19 21:18:01 +01:00
kabou ffc2c94096 Add help alias
* Add help alias for the ready type composter
2022-02-19 21:18:01 +01:00
kabou cea821b2fa Comment fixes.
* Improve comments, some typo fixes.
2022-02-19 21:18:01 +01:00
kabou 64608f50f8 Update mod description and fix comment.
* Make mod description more descriptive.
* Minor comment tweak.
2022-02-19 21:18:01 +01:00
kabou 3257014e00 Add missing melon block.
* Add melon block to the compostabiles list.
2022-02-19 21:18:01 +01:00
kabou 06274518bf Add player object check.
* Handle the case where a mob somehow "clicks" on a composter and we get
  an invalid player object passed.
2022-02-19 21:18:01 +01:00
kabou 8d79d16531 Update mod deps.
* Add dpendency on mcl_dye for the bone meal particle spawner
2022-02-19 21:18:01 +01:00
kabou 1f7697b6f5 Typo fix.
* it's a spruceSapling (thanks NO11)
2022-02-19 21:18:01 +01:00
kabou 64203c38a6 Update documentation.
* Make a mention of the one second delay before composter readies.
2022-02-19 21:18:01 +01:00
kabou 4cf88abe4c Fix composter item image.
* Less is more (thanks AFCMS)
2022-02-19 21:18:01 +01:00
kabou df8576e77c mcl_composters initial commit
Implements a composter block with crafting recipe, and some more
uncraftable blocks representing various stages of filling.

Adds a list of items that can be used with the composter and the chances
of these items adding a layer to the composter.

Implements methods to add compostable items to the composter, to update
the composter to various levels of compost and to harvest an item of
bone meal when the composter is ready.

Textures were taken from XSSheep/Nova_Wostra Pixel Perfection texture
pack.
2022-02-19 21:18:01 +01:00
NO11 c40c05f594 Exact MC behavior 2022-02-17 15:32:58 +00:00
NO11 d46a96c43a Merge branch 'master' into buckets+ 2022-02-17 14:48:07 +00:00
NO11 3cfcd1355f Add missing dependency 2022-02-17 14:42:01 +00:00
NO11 4707cd4526 Correct bucket behavior 2022-02-17 14:36:48 +00:00
AFCMS c59bea211d
fix some typos 2022-02-13 21:31:03 +01:00
AFCMS 5aa18d573e
document mcl_armor function (WIP) 2022-02-13 21:31:03 +01:00
AFCMS 13f8fd457c
document manual armor creation 2022-02-13 21:31:03 +01:00
AFCMS 2b820d7756
`mcl_armor.register_set()` documentation 2022-02-13 21:31:02 +01:00
Elias Åström 4ca89cfcae Update groupcaps_hash function to minetest.sha1 2022-02-12 20:08:03 +01:00
Elias Åström a6c5c8a72a Call update_groupcaps from load_enchantments
This avoids the need to call the function from on_enchant for unbreaking
and efficiency.
2022-02-12 19:43:01 +01:00
Elias Åström d898b02c8b Fix #1922 2022-02-12 19:43:01 +01:00
AFCMS 2690094a95 allow placement of lanterns on chains 2022-02-10 11:45:08 +01:00
AFCMS 23873f31f1 add french translation of `mcl_lanterns` 2022-02-09 22:19:24 +01:00
AFCMS 749d4f1a4b add lanterns translation template 2022-02-09 22:15:44 +01:00
AFCMS 8817d51d64 minecraft like lanterns placement limitations 2022-02-09 22:11:50 +01:00
AFCMS 9b375aa9e8 attemp to fix lanterns placement 2022-02-09 18:19:46 +01:00
AFCMS 7fbdd71081 obtimize glass detail images 2022-02-09 12:21:28 +01:00
AFCMS 9cc088c940 fix lantern light value to fit minetest limit 2022-02-08 23:00:45 +01:00
AFCMS 6572a8c908 add lanterns, crafts, placement mechanism, doc entries 2022-02-08 22:56:20 +01:00
AFCMS ffa9d2d0fd add basic chains and lantern model and API 2022-02-08 10:58:25 +01:00
NO11 627c37cd97 Fix pumpkin hud 2022-01-02 12:37:20 +00:00
NO11 7cc7fb1331 Make removing of arrow entities also work with mobs, remove arrows on respawn 2022-01-02 11:06:29 +00:00
NO11 7b46225176 Remove arrow entities when the player joins to prevent killing on startup (working fix) 2022-01-01 22:59:21 +00:00