From 11e9b3f534dc652bc018515bcaa5a8c748ce055c Mon Sep 17 00:00:00 2001 From: Chris N Date: Sun, 9 Nov 2014 13:18:23 -1000 Subject: [PATCH] Add a huge amount of support for other mods ...Including zmobs, creatures, senderman, carbone_mobs, and mobf. --- depends.txt | 6 ++- init.lua | 106 ++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 87 insertions(+), 25 deletions(-) diff --git a/depends.txt b/depends.txt index 7c506cf..2b69485 100644 --- a/depends.txt +++ b/depends.txt @@ -1,2 +1,6 @@ default -mobs? \ No newline at end of file +mobs? +carbone_mobs? +mobf? +creatures? +zmobs? \ No newline at end of file diff --git a/init.lua b/init.lua index 3f1e249..4d15ff1 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,4 @@ --- mobspawn v.0.8 by HeroOfTheWinds +-- mobspawn v.0.9 by HeroOfTheWinds -- WTFPL 2.0 -- Mod to add mob spawners to Minetest for Simple Mobs and Mobs_Redo (by PilzAdam and TenPlus1 respectively) -- There are plans to add support for more mods... @@ -24,34 +24,92 @@ mobspawn.mod = "" --What is the base mod? if redo then --List all the hostile mobs in Mobs Redo mobspawn.mod = "mobs" - mobspawn.mobs = { - "dirt_monster", - "sand_monster", - "tree_monster", - "stone_monster", - "oerkki", - "dungeon_master", - "spider", - "lava_flan", - "mese_monster", - } + table.insert(mobspawn.mobs, {name="dirt_monster", desc="Dirt Monster", code="mobs:dirt_monster"}) + table.insert(mobspawn.mobs, {name="sand_monster", desc="Sand Monster", code="mobs:sand_monster"}) + table.insert(mobspawn.mobs, {name="tree_monster", desc="Tree Monster", code="mobs:tree_monster"}) + table.insert(mobspawn.mobs, {name="stone_monster", desc="Stone Monster", code="mobs:stone_monster"}) + table.insert(mobspawn.mobs, {name="oerkki", desc="Oerkki", code="mobs:oerkki"}) + table.insert(mobspawn.mobs, {name="dungeon_master", desc="Dungeon Master", code="mobs:dungeon_master"}) + table.insert(mobspawn.mobs, {name="spider", desc="Spider", code="mobs:spider"}) + table.insert(mobspawn.mobs, {name="lava_flan", desc="Lava Flan", code="mobs:lava_flan"}) + table.insert(mobspawn.mobs, {name="mese_monster", desc="Mese Monster", code="mobs:mese_monster"}) else --List all the hostile mobs in Simple Mobs mobspawn.mod = "mobs" - mobspawn.mobs = { - "dirt_monster", - "sand_monster", - "tree_monster", - "stone_monster", - "oerkki", - "dungeon_master", - } + table.insert(mobspawn.mobs, {name="dirt_monster", desc="Dirt Monster", code="mobs:dirt_monster"}) + table.insert(mobspawn.mobs, {name="sand_monster", desc="Sand Monster", code="mobs:sand_monster"}) + table.insert(mobspawn.mobs, {name="tree_monster", desc="Tree Monster", code="mobs:tree_monster"}) + table.insert(mobspawn.mobs, {name="stone_monster", desc="Stone Monster", code="mobs:stone_monster"}) + table.insert(mobspawn.mobs, {name="oerkki", desc="Oerkki", code="mobs:oerkki"}) + table.insert(mobspawn.mobs, {name="dungeon_master", desc="Dungeon Master", code="mobs:dungeon_master"}) +end + +if minetest.get_modpath("zmobs") then + --List all the hostile mobs in ZMobs + mobspawn.mod = "zmobs" + table.insert(mobspawn.mobs, {name="lava_flan", desc="Lava Flan", code="zmobs:lava_flan"}) + table.insert(mobspawn.mobs, {name="mese_monster", desc="Mese Monster", code="zmobs:mese_monster"}) +end + +if minetest.get_modpath("creatures") then + --List all the hostile mobs in Creatures mod + mobspawn.mod = "creatures" + table.insert(mobspawn.mobs, {name="ghost", desc="Ghost", code="creatures:ghost"}) + table.insert(mobspawn.mobs, {name="zombie", desc="Zombie", code="creatures:zombie"}) +end + +if minetest.get_modpath("senderman") then + --Add the Senderman + mobspawn.mod = "senderman" + table.insert(mobspawn.mobs, {name="senderman", desc="Senderman", code="senderman:senderman"}) +end + +if minetest.get_modpath("carbone_mobs") then + --Add the mobs from Carbone + mobspawn.mod = "carbone" + table.insert(mobspawn.mobs, {name="dirt_monster", desc="Dirt Monster", code="carbone_mobs:dirt_monster"}) + table.insert(mobspawn.mobs, {name="sand_monster", desc="Sand Monster", code="carbone_mobs:sand_monster"}) + table.insert(mobspawn.mobs, {name="tree_monster", desc="Tree Monster", code="carbone_mobs:tree_monster"}) + table.insert(mobspawn.mobs, {name="stone_monster", desc="Stone Monster", code="carbone_mobs:stone_monster"}) + table.insert(mobspawn.mobs, {name="oerkki", desc="Oerkki", code="carbone_mobs:oerkki"}) + table.insert(mobspawn.mobs, {name="dungeon_master", desc="Dungeon Master", code="carbone_mobs:dungeon_master"}) + table.insert(mobspawn.mobs, {name="trooper", desc="Trooper", code="carbone_mobs:trooper"}) + table.insert(mobspawn.mobs, {name="rhino", desc="Rhino", code="carbone_mobs:rhino"}) +end + +if minetest.get_modpath("mobf") then + --Add mobf mobs + mobspawn.mod = "mobf" + if minetest.get_modpath("animal_big_red") then + table.insert(mobspawn.mobs, {name="big_red", desc="Big Red", code="animal_big_red:big_red"}) + end + if minetest.get_modpath("animal_creeper") then + table.insert(mobspawn.mobs, {name="creeper", desc="Creeper", code="animal_creeper:creeper"}) + end + if minetest.get_modpath("animal_dm") then + table.insert(mobspawn.mobs, {name="dm", desc="DM", code="animal_dm:dm"}) + end + if minetest.get_modpath("animal_vombie") then + table.insert(mobspawn.mobs, {name="vombie", desc="Vombie", code="animal_vombie:vombie"}) + end + if minetest.get_modpath("mob_archer") then + table.insert(mobspawn.mobs, {name="archer", desc="Archer", code="mob_archer:archer"}) + end + if minetest.get_modpath("mob_guard") then + table.insert(mobspawn.mobs, {name="guard", desc="Guard", code="mob_guard:guard"}) + end + if minetest.get_modpath("mob_oerkki") then + table.insert(mobspawn.mobs, {name="oerkki", desc="Oerkki", code="mob_oerkki:oerkki"}) + end + if minetest.get_modpath("mob_slime") then + table.insert(mobspawn.mobs, {name="slime", desc="Slime", code="mob_slime:slime_M"}) + end end --Create a spawner for each mob for _,mob in pairs(mobspawn.mobs) do - minetest.register_node("mobspawn:"..mob.."_spawner", { - description = mob.." Spawner", + minetest.register_node("mobspawn:"..mob.name.."_spawner", { + description = mob.desc.." Spawner", drawtype = "allfaces", tiles = {"mobspawn_cage_top.png", "mobspawn_cage_bottom.png", "mobspawn_cage_side.png"}, is_ground_content = false, @@ -64,7 +122,7 @@ for _,mob in pairs(mobspawn.mobs) do --The heart of the mod, the spawning function minetest.register_abm({ - nodenames = {"mobspawn:"..mob.."_spawner"}, + nodenames = {"mobspawn:"..mob.name.."_spawner"}, interval = SPAWN_INTERVAL, chance = CHANCE, action = function(pos, node, active_object_count, active_object_count_wider) @@ -79,7 +137,7 @@ for _,mob in pairs(mobspawn.mobs) do end if count < MAX_MOBS then --Prepare for trouble (sorry, it won't be double... yet) - minetest.add_entity(npos, mobspawn.mod..":"..mob) + minetest.add_entity(npos, mob.code) end end end,