1
0
mirror of https://codeberg.org/tenplus1/mobs_redo.git synced 2025-02-10 15:50:21 +01:00

add mob repellent

This commit is contained in:
tenplus1 2025-02-09 12:12:52 +00:00
parent 9f472fb690
commit 0a62f05132
6 changed files with 28 additions and 4 deletions

11
api.lua
View File

@ -18,7 +18,7 @@ end
-- Global table
mobs = {
mod = "redo", version = "20250204",
mod = "redo", version = "20250209",
spawning_mobs = {}, translate = S,
node_snow = has(minetest.registered_aliases["mapgen_snow"])
or has("mcl_core:snow") or has("default:snow") or "air",
@ -3717,6 +3717,15 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, inter
end
end
-- is mob repellent nearby
if #minetest.find_nodes_in_area(
{x = pos.x - 16, y = pos.y - 16, z = pos.z - 16},
{x = pos.x + 16, y = pos.y + 16, z = pos.z + 16},
{"mobs:mob_repellent"}) > 0 then
--print("--- mob repellent nearby")
return
end
-- change position to node above
pos.y = pos.y + 1

View File

@ -25,6 +25,16 @@ sound_helper("node_sound_water_defaults")
sound_helper("node_sound_snow_defaults")
sound_helper("node_sound_glass_defaults")
-- mob repellent node
minetest.register_node("mobs:mob_repellent", {
description = S("Mob Repellent"),
tiles = {"mobs_repellent.png"},
is_ground_content = false,
groups = {handy = 1, cracky = 3},
sounds = mobs.node_sound_stone_defaults()
})
-- helper function to add {eatable} group to food items
function mobs.add_eatable(item, hp)

View File

@ -1,4 +1,6 @@
local S = minetest.get_translator("mobs")
-- peaceful player privilege
minetest.register_privilege("peaceful_player", {
@ -9,13 +11,14 @@ minetest.register_privilege("peaceful_player", {
-- fallback node
minetest.register_node("mobs:fallback_node", {
description = "Fallback Node",
description = S("Fallback Node"),
tiles = {"mobs_fallback.png"},
is_ground_content = false,
groups = {handy = 1, crumbly = 3, not_in_creative_inventory = 1},
drop = ""
})
local path = minetest.get_modpath("mobs")
dofile(path .. "/api.lua") -- mob API

View File

@ -15,7 +15,8 @@ lucky_block:add_blocks({
{"dro", {"mobs:protector"}, 1},
{"dro", {"mobs:fence_wood"}, 10},
{"dro", {"mobs:fence_top"}, 12},
{"lig"}
{"lig"},
{"dro", {"mobs:mob_repellent"}, 1}
})
-- pint sized rune, use on tamed mob to shrink to half-size

View File

@ -19,8 +19,9 @@ https://forum.minetest.net/viewtopic.php?f=11&t=9917
- **Shears**. Used to right-click sheep and return 1-3 wool.
- **Protection Rune**. Protects tamed mobs from being harmed by other players.
- **Mob Fence and Fence Top**. Stops mobs escaping or glitching throughfences.
- Add mobs:mob_repellent block to stop mobs spawning within 16 node radius.
**Lucky Blocks**: 12
**Lucky Blocks**: 13
## Changelog

BIN
textures/mobs_repellent.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 B