From 91be60be9b5c2f323ee36dbbd7d0ab035b928ea4 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sat, 29 Jun 2024 08:22:33 +0100 Subject: [PATCH] add fallback node for when [game] doesn't have dirt alias defined --- api.lua | 17 ++++++++++++----- init.lua | 8 ++++++++ license.txt | 2 ++ readme.MD | 1 + textures/mobs_fallback.png | Bin 0 -> 1586 bytes 5 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 textures/mobs_fallback.png diff --git a/api.lua b/api.lua index 8c2a547..0df0c74 100644 --- a/api.lua +++ b/api.lua @@ -11,16 +11,23 @@ local use_mc2 = minetest.get_modpath("mcl_core") -- Visual Harm 1ndicator check local use_vh1 = minetest.get_modpath("visual_harm_1ndicators") +-- Node check helper +local function has(nodename) + if nodename and minetest.registered_nodes[nodename] then + return nodename + end +end + -- Global mobs = { mod = "redo", - version = "20240620", + version = "20240629", translate = S, invis = minetest.global_exists("invisibility") and invisibility or {}, - node_snow = minetest.registered_aliases["mapgen_snow"] - or (use_mc2 and "mcl_core:snow") or "default:snow", - node_dirt = minetest.registered_aliases["mapgen_dirt"] - or (use_mc2 and "mcl_core:dirt") or "default:dirt" + node_snow = has(minetest.registered_aliases["mapgen_snow"]) + or has("mcl_core:snow") or has("default:snow") or "air", + node_dirt = has(minetest.registered_aliases["mapgen_dirt"]) + or has("mcl_core:dirt") or has("default:dirt") or "mobs:fallback_node" } mobs.fallback_node = mobs.node_dirt diff --git a/init.lua b/init.lua index b0a8cf5..ee23b60 100644 --- a/init.lua +++ b/init.lua @@ -7,6 +7,14 @@ minetest.register_privilege("peaceful_player", { give_to_singleplayer = false }) +-- Fallback node +minetest.register_node("mobs:fallback_node", { + description = "Fallback Node", + tiles = {"mobs_fallback.png"}, + is_ground_content = false, + groups = {handy = 1, crumbly = 3}, + drop = "" +}) -- Mob API dofile(path .. "/api.lua") diff --git a/license.txt b/license.txt index 8bde134..6c3c232 100644 --- a/license.txt +++ b/license.txt @@ -23,6 +23,8 @@ THE SOFTWARE. Textures under CC0 license by TenPlus1 +mobs_fallback.png is dirt texture from original Minetest (CC-BY SA 3.0) + ShadowNinja (CC BY-SA 3.0): tnt_smoke.png diff --git a/readme.MD b/readme.MD index 0e3d3e9..367f556 100644 --- a/readme.MD +++ b/readme.MD @@ -33,6 +33,7 @@ https://forum.minetest.net/viewtopic.php?f=11&t=9917 * Added support for Visual Harm 1ndicators mod to show health bars * Added self.node_damage flag which is true by default to enable damage_per_second node damage * Added check for on_death() function before using mob api's own on_die() one +* Added mobs:fallback_node for when current [game] hasn't defined mapgen_dirt node ### Version 1.60 diff --git a/textures/mobs_fallback.png b/textures/mobs_fallback.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb9c89a637584b4e53c82a7c6eb1ec7109befae GIT binary patch literal 1586 zcmZuw2~d+q6kb75sRsk0q?k5{zaXLY3W9(a3WY_b(ZE_-}~PC4=Mb- zCz@KD0stmLAJ5hNHZ$yTM*K|HggXOZ3=}K;y|~K;HygYd_n2W(N(mttV}uZdP!I$P z00964fB=912s~@VCrSY!0Aqj04-!kfDGG<2RUGpVzRQivgMAj}(tFLMbMMCqjgH1f~=b0x{+`qLjbS4M-_J z1vY{`BaC875Wx^5&KEO^D1ij?IuN6f5?&utYaJ`E5I?++&lCPA6vozrkn!cK!dARW;7ZAqYmil;Xk8x zOex()Ljl;>&otgTV{MB@b^GU|kY#+M@6QhfTqKscG$EO}~h?Y0SX~b!+=X-vW2P^CC zOE1gUWNA;A{T|`yqmErDI$N!&=)c?jWchZ_!nMl>&VLnMmSVE1;auPnn|(q-;%E9DAfn*VT5@WtYVs_RuFy`_69T&H;7zq$%~PLRE~nZ{ai_oo0qY?o}pv zkx_0ntu5BM^m2$(uI=?IY4OK7d;Vx^iKuUnpIhX(Q?OX->^C>e_eEm+nW#%geM*X3 zOHoAh%n6^m_38d?NK2AgJM`c5va@ghJwKDMqkkYKL6vbCr9@%nFQnfi|&H}rRuSHf>1##()ElxLbrMJId zpVWIcqWS5hyFCZ5_|9(3mo~82t0k>9i@%W^D{WTTtUK&jvi`KGJSuF}X1pZ4Lf6^< zV{gGVrQ1uJBfEk0s5W! A1poj5 literal 0 HcmV?d00001