Added spawn.lua check for custom mob spawning, example file included

This commit is contained in:
tenplus1 2020-09-21 10:20:51 +01:00
parent 780263a0ff
commit 7db2c2545a
3 changed files with 126 additions and 5 deletions

View File

@ -1,16 +1,37 @@
-- Load support for intllib.
local path = minetest.get_modpath(minetest.get_current_modname())
local path = minetest.get_modpath(minetest.get_current_modname()) .. "/"
local S = minetest.get_translator and minetest.get_translator("mobs_npc") or
dofile(path .. "/intllib.lua")
dofile(path .. "intllib.lua")
mobs.intllib = S
-- Check for custom mob spawn file
local input = io.open(path .. "spawn.lua", "r")
if input then
mobs.custom_spawn_npc = true
input:close()
input = nil
end
-- NPCs
dofile(path .. "/npc.lua") -- TenPlus1
dofile(path .. "/trader.lua")
dofile(path .. "/igor.lua")
dofile(path .. "npc.lua") -- TenPlus1
dofile(path .. "trader.lua")
dofile(path .. "igor.lua")
-- Load custom spawning
if mobs.custom_spawn_npc then
dofile(path .. "spawn.lua")
end
-- Lucky Blocks
dofile(path .. "/lucky_block.lua")
print (S("[MOD] Mobs Redo NPCs loaded"))

View File

@ -120,6 +120,7 @@ mobs:register_mob("mobs_npc:npc", {
end,
})
if not mobs.custom_spawn_npc then
mobs:spawn({
name = "mobs_npc:npc",
nodes = {"default:brick"},
@ -130,6 +131,7 @@ mobs:spawn({
min_height = 0,
day_toggle = true,
})
end
mobs:register_egg("mobs_npc:npc", S("Npc"), "default_brick.png", 1)

98
spawn_example.lua Normal file
View File

@ -0,0 +1,98 @@
--[[ Spawn Template, defaults to values shown if line not provided
mobs:spawn({
name = "",
- Name of mob, must be provided e.g. "mymod:my_mob"
nodes = {"group:soil, "group:stone"},
- Nodes to spawn on top of.
neighbors = {"air"},
- Nodes to spawn beside.
min_light = 0,
- Minimum light level.
max_light = 15,
- Maximum light level, 15 is sunlight only.
interval = 30,
- Spawn interval in seconds.
chance = 5000,
- Spawn chance, 1 in every 5000 nodes.
active_object_count = 1,
- Active mobs of this type in area.
min_height = -31000,
- Minimum height level.
max_height = 31000,
- Maximum height level.
day_toggle = nil,
- Daytime toggle, true to spawn during day, false for night, nil for both
on_spawn = nil,
- On spawn function to run when mob spawns in world
on_map_load = nil,
- On map load, when true mob only spawns in newly generated map areas
})
]]--
-- NPC
mobs:spawn({
name = "mobs_npc:npc",
nodes = {"default:brick"},
neighbors = {"default:grass_3"},
min_light = 10,
chance = 10000,
active_object_count = 1,
min_height = 0,
day_toggle = true,
})
-- Igor
mobs:spawn({
name = "mobs_npc:igor",
nodes = {"mobs:meatblock"},
neighbors = {"default:brick"},
min_light = 10,
chance = 10000,
active_object_count = 1,
min_height = 0,
day_toggle = true,
})
-- Trader
mobs:spawn({
name = "mobs_npc:trader",
nodes = {"default:diamondblock"},
neighbors = {"default:brick"},
min_light = 10,
chance = 10000,
active_object_count = 1,
min_height = 0,
day_toggle = true,
})