dmobs/init.lua

121 lines
2.6 KiB
Lua

dmobs = {}
-- dmobs by D00Med
-- mounts api by D00Med and lib_mount api by blert2112
dofile(minetest.get_modpath("dmobs").."/api.lua")
-- Enable dragons (disable to remove tamed dragons and dragon bosses)
dmobs.dragons = minetest.settings:get_bool("dmobs.dragons")
if dmobs.dragons == nil then
dmobs.dragons = true
end
dmobs.regulars = minetest.settings:get_bool("dmobs.regulars")
if dmobs.regulars == nil then
dmobs.regulars = true
end
-- Enable fireballs/explosions
dmobs.destructive = minetest.settings:get_bool("dmobs.destructive") or false
-- Timer for the egg mechanics
dmobs.eggtimer = tonumber(minetest.settings:get("dmobs.eggtimer") ) or 100
-- Table cloning to reduce code repetition
dmobs.deepclone = function(t) -- deep-copy a table -- from https://gist.github.com/MihailJP/3931841
if type(t) ~= "table" then return t end
local target = {}
for k, v in pairs(t) do
if k ~= "__index" and type(v) == "table" then -- omit circular reference
target[k] = dmobs.deepclone(v)
else
target[k] = v
end
end
return target
end
-- Start loading ----------------------------------------------------------------------------------
local function loadmob(mobname,dir)
dir = dir or "/mobs/"
dofile(minetest.get_modpath("dmobs")..dir..mobname..".lua")
end
-- regular mobs
local mobslist = {
-- friendlies
"pig",
"panda",
"tortoise",
"golem_friendly",
"nyan",
"gnorm",
"hedgehog",
"owl",
"whale",
"badger",
"butterfly",
"elephant",
-- baddies
"pig_evil",
"fox",
"rat",
"wasps",
"treeman",
"golem",
"skeleton",
"orc",
"ogre",
}
if dmobs.regulars then
for _,mobname in pairs(mobslist) do
loadmob(mobname)
end
end
-- dragons!!
if not dmobs.dragons then
loadmob("dragon_normal","/dragons/")
else
loadmob("main","/dragons/")
loadmob("dragon1","/dragons/")
loadmob("dragon2","/dragons/")
loadmob("dragon3","/dragons/")
loadmob("dragon4","/dragons/")
loadmob("great_dragon","/dragons/")
loadmob("water_dragon","/dragons/")
loadmob("wyvern","/dragons/")
dofile(minetest.get_modpath("dmobs").."/dragons/eggs.lua")
end
dofile(minetest.get_modpath("dmobs").."/arrows/dragonfire.lua")
dofile(minetest.get_modpath("dmobs").."/arrows/dragonarrows.lua")
-- General arrow definitions
if dmobs.destructive == true then
dofile(minetest.get_modpath("dmobs").."/arrows/fire_explosive.lua")
else
dofile(minetest.get_modpath("dmobs").."/arrows/fire.lua")
end
dofile(minetest.get_modpath("dmobs").."/nodes.lua")
dofile(minetest.get_modpath("dmobs").."/arrows/sting.lua")
-- Spawning
dofile(minetest.get_modpath("dmobs").."/spawn.lua")
dofile(minetest.get_modpath("dmobs").."/saddle.lua")