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 0000000..7cb9c89 Binary files /dev/null and b/textures/mobs_fallback.png differ