]> git.lizzy.rs Git - Crafter.git/blobdiff - mods/mob/spawning.lua
Fix mob count handling
[Crafter.git] / mods / mob / spawning.lua
index 73fb58c586b9e0f013256ee185afb42ce5f90e5f..c93b10e1639070b4080f341b68329eacb2bf4cb2 100644 (file)
@@ -11,13 +11,14 @@ local find_node_height = 32
 --for debug testing to isolate mobs
 local spawn = true
 
-local spawn_table = {"pig"}
-local dark_spawn_table = {"creeper","spider"}
+local spawn_table = {"pig","chicken"}
+local snow_spawn_table = {"snowman","creeper","spider",}
+local dark_spawn_table = {"creeper","spider","big_slime","medium_slime","small_slime"}
 local nether_spawn_table = {"nitro_creeper"}
 local aether_spawn_table = {"phyg"}
 
 local function spawn_mobs()
-       print("---------------------------------------------")
+       --print("---------------------------------------------")
        if spawn and global_mob_amount < mob_limit then
                --check through players
                for _,player in ipairs(minetest.get_connected_players()) do                     
@@ -50,28 +51,29 @@ local function spawn_mobs()
                        --print(dump(spawner))
                        if table.getn(spawner) > 0 then
                                local mob_pos = spawner[1]
+                               mob_pos.y = mob_pos.y + 1
                                --aether spawning
                                if mob_pos.y >= 21000 then
-                                       mob_pos.y = mob_pos.y + 1
                                        local mob_spawning = aether_spawn_table[math.random(1,table.getn(aether_spawn_table))]
-                                       print("Aether Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
+                                       --print("Aether Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
                                        minetest.add_entity(mob_pos,"mob:"..mob_spawning)
                                elseif mob_pos.y <= -10033 and mob_pos.y >= -20112 then
-                                       mob_pos.y = mob_pos.y + 1
                                        local mob_spawning = nether_spawn_table[math.random(1,table.getn(nether_spawn_table))]
-                                       print("Nether Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
+                                       --print("Nether Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
                                        minetest.add_entity(mob_pos,"mob:"..mob_spawning)
                                else
                                        local light_level = minetest.get_node_light(spawner[1])
-                                       if light_level < 10 then
-                                               mob_pos.y = mob_pos.y + 1
+                                       if weather_type == 1 then
+                                               local mob_spawning = snow_spawn_table[math.random(1,table.getn(snow_spawn_table))]
+                                               --print("Snow Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
+                                               minetest.add_entity(mob_pos,"mob:"..mob_spawning)
+                                       elseif light_level < 10 then
                                                local mob_spawning = dark_spawn_table[math.random(1,table.getn(dark_spawn_table))]
-                                               print("Dark Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
+                                               --print("Dark Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
                                                minetest.add_entity(mob_pos,"mob:"..mob_spawning)
                                        else
-                                               mob_pos.y = mob_pos.y + 1
                                                local mob_spawning = spawn_table[math.random(1,table.getn(spawn_table))]
-                                               print("Light Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
+                                               --print("Light Spawning "..mob_spawning.." at: "..minetest.pos_to_string(mob_pos))
                                                minetest.add_entity(mob_pos,"mob:"..mob_spawning)
                                        end
                                end
@@ -82,5 +84,8 @@ local function spawn_mobs()
                spawn_mobs()
        end)
 end
-
-spawn_mobs()
\ No newline at end of file
+minetest.register_on_mods_loaded(function()
+       minetest.after(0,function()
+               spawn_mobs()
+       end)
+end)
\ No newline at end of file