diff options
Diffstat (limited to 'api.lua')
-rw-r--r-- | api.lua | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -3,7 +3,7 @@ mobs = {} mobs.mod = "redo" -mobs.version = "20180122" +mobs.version = "20180126" -- Intllib @@ -53,8 +53,11 @@ end -- Load settings local damage_enabled = minetest.settings:get_bool("enable_damage") +local mobs_spawn = minetest.settings:get_bool("mobs_spawn") ~= false local peaceful_only = minetest.settings:get_bool("only_peaceful_mobs") local disable_blood = minetest.settings:get_bool("mobs_disable_blood") +local mobs_drop_items = minetest.settings:get_bool("mobs_drop_items") ~= false +local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false local creative = minetest.settings:get_bool("creative_mode") local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false local remove_far = minetest.settings:get_bool("remove_far_mobs") @@ -356,6 +359,9 @@ end -- drop items local item_drop = function(self, cooked) + -- no drops if disabled by setting + if not mobs_drop_items then return end + -- no drops for child mobs if self.child then return end @@ -981,7 +987,8 @@ end -- find and replace what mob is looking for (grass, wheat etc.) local replace = function(self, pos) - if not self.replace_rate + if not mobs_griefing + or not self.replace_rate or not self.replace_what or self.child == true or self.object:getvelocity().y ~= 0 @@ -1114,7 +1121,7 @@ local smart_mobs = function(self, s, p, dist, dtime) self.path.following = false -- lets make way by digging/building if not accessible - if self.pathfinding == 2 then + if self.pathfinding == 2 and mobs_griefing then -- is player higher than mob? if s.y < p1.y then @@ -2849,6 +2856,11 @@ end function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, chance, aoc, min_height, max_height, day_toggle, on_spawn) + -- Do mobs spawn at all? + if not mobs_spawn then + return + end + -- chance/spawn number override in minetest.conf for registered mob local numbers = minetest.settings:get(name) @@ -3153,7 +3165,8 @@ end -- make explosion with protection and tnt mod check function mobs:boom(self, pos, radius) - if minetest.get_modpath("tnt") and tnt and tnt.boom + if mobs_griefing + and minetest.get_modpath("tnt") and tnt and tnt.boom and not minetest.is_protected(pos, "") then tnt.boom(pos, { |