diff --git a/api.lua b/api.lua index 80ba618..f0aeceb 100644 --- a/api.lua +++ b/api.lua @@ -827,7 +827,7 @@ minetest.register_entity(name, { else -- stop following player if not holding specific item if self.following - and self.following.is_player + and self.following:is_player() and follow_holding(self, self.following) == false then self.following = nil end @@ -838,8 +838,7 @@ minetest.register_entity(name, { local s = self.object:getpos() local p - if self.following.is_player - and self.following:is_player() then + if self.following:is_player() then p = self.following:getpos() elseif self.following.object then p = self.following.object:getpos() @@ -876,7 +875,6 @@ minetest.register_entity(name, { end set_velocity(self, self.walk_velocity) if self.walk_chance ~= 0 then - --self:set_animation("walk") set_animation(self, "walk") end else @@ -896,7 +894,6 @@ minetest.register_entity(name, { if self.type == "npc" then local o = minetest.get_objects_inside_radius(self.object:getpos(), 3) - local yaw = 0 for _,o in ipairs(o) do if o:is_player() then lp = o:getpos() @@ -906,7 +903,7 @@ minetest.register_entity(name, { end -- look at any players nearby, otherwise turn randomly - if lp ~= nil then + if lp then local vec = {x = lp.x - s.x, y = lp.y - s.y, z = lp.z - s.z} yaw = (math.atan(vec.z / vec.x) + pi / 2) - self.rotate if lp.x > s.x then @@ -1054,7 +1051,7 @@ minetest.register_entity(name, { entity_physics(pos, 3) if minetest.find_node_near(pos, 1, {"group:water"}) or minetest.is_protected(pos, "") then - if self.sounds.explode ~= "" then + if self.sounds.explode then minetest.sound_play(self.sounds.explode, { pos = pos, gain = 1.0, @@ -1068,6 +1065,7 @@ minetest.register_entity(name, { pos.y = pos.y - 1 mobs:explosion(pos, 2, 0, 1, self.sounds.explode) self.object:remove() + return end end @@ -1162,8 +1160,8 @@ minetest.register_entity(name, { end -- punch player self.attack:punch(self.object, 1.0, { - full_punch_interval=1.0, - damage_groups = {fleshy=self.damage} + full_punch_interval = 1.0, + damage_groups = {fleshy = self.damage} }, nil) end end @@ -1175,7 +1173,6 @@ minetest.register_entity(name, { p.y = p.y - .5 s.y = s.y + .5 local dist = ((p.x - s.x) ^ 2 + (p.y - s.y) ^ 2 + (p.z - s.z) ^ 2) ^ 0.5 - local vec = {x = p.x - s.x, y = p.y - s.y, z = p.z - s.z} yaw = (math.atan(vec.z / vec.x) + pi / 2) - self.rotate if p.x > s.x then @@ -1339,7 +1336,7 @@ minetest.register_entity(name, { if weapon:get_definition().sounds ~= nil then local s = math.random(0, #weapon:get_definition().sounds) minetest.sound_play(weapon:get_definition().sounds[s], { - object=hitter, + object = hitter, max_hear_distance = 8 }) else diff --git a/bunny.lua b/bunny.lua index 952e878..aaf6914 100644 --- a/bunny.lua +++ b/bunny.lua @@ -39,7 +39,7 @@ mobs:register_mob("mobs:bunny", { punch_end = 24, }, follow = {"farming:carrot", "farming_plus:carrot_item"}, - view_range = 10, + view_range = 8, replace_rate = 80, replace_what = {"farming:carrot_7", "farming:carrot_8", "farming_plus:carrot"}, replace_with = "air", diff --git a/kitten.lua b/kitten.lua index 0252abc..3c0c38b 100644 --- a/kitten.lua +++ b/kitten.lua @@ -37,7 +37,7 @@ mobs:register_mob("mobs:kitten", { walk_end = 96, }, follow = {"mobs:rat", "ethereal:fish_raw"}, - view_range = 10, + view_range = 8, on_rightclick = function(self, clicker) mobs:feed_tame(self, clicker, 4, true, true) mobs:capture_mob(self, clicker, 50, 50, 90, false, nil) diff --git a/sheep.lua b/sheep.lua index 165642a..8484b16 100644 --- a/sheep.lua +++ b/sheep.lua @@ -46,7 +46,7 @@ for _, col in ipairs(all_colours) do walk_end = 100, }, follow = {"farming:wheat", "default:grass_5"}, - view_range = 5, + view_range = 8, replace_rate = 50, replace_what = {"default:grass_3", "default:grass_4", "default:grass_5", "farming:wheat_8"}, replace_with = "air",