From 36a24c6c07701a5f92c57b6d8d4dc518810cff2d Mon Sep 17 00:00:00 2001 From: epCode Date: Tue, 30 Mar 2021 14:52:46 -0700 Subject: [PATCH] Tweak cod --- cod.lua | 39 ++++++++++++++++++++++++++++++++++++++ models/extra_mobs_cod.b3d | Bin 10151 -> 9471 bytes 2 files changed, 39 insertions(+) diff --git a/cod.lua b/cod.lua index 3af5a41..a2f5ec8 100644 --- a/cod.lua +++ b/cod.lua @@ -3,6 +3,26 @@ --made for MC like Survival game --License for code WTFPL and otherwise stated in readmes +local pi = math.pi +local atann = math.atan +local atan = function(x) + if not x or x ~= x then + return 0 + else + return atann(x) + end +end + +local dir_to_pitch = function(dir) + local dir2 = vector.normalize(dir) + local xz = math.abs(dir.x) + math.abs(dir.z) + return -math.atan2(-dir.y, xz) +end + +local function degrees(rad) + return rad * 180.0 / math.pi +end + local S = minetest.get_translator("extra_mobs") --################### @@ -56,6 +76,25 @@ local cod = { view_range = 16, runaway = true, fear_height = 4, + do_custom = function(self) + self.object:set_bone_position("body", vector.new(0,1,0), vector.new(degrees(dir_to_pitch(self.object:get_velocity())) * -1 + 90,0,0)) + if minetest.get_item_group(self.standing_in, "water") ~= 0 then + self.object:add_velocity({ x = 0 , y = math.random(-.05, .05) , z = 0 }) + end + for _,object in pairs(minetest.get_objects_inside_radius(self.object:get_pos(), 10)) do + local lp = object:get_pos() + local s = self.object:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + if not object:is_player() and object:get_luaentity().name == "extra_mobs:cod" then + self.state = "runaway" + self.object:set_rotation({x=0,y=(atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate,z=0}) + end + end + end } mobs:register_mob("extra_mobs:cod", cod) diff --git a/models/extra_mobs_cod.b3d b/models/extra_mobs_cod.b3d index d7b7ae9809682cddbeb251c927be02baf048f98a..c7e60e12c17e95ffd9aa609a81b0fe00622b138d 100644 GIT binary patch literal 9471 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 RYa&nXb3SZRmH)@S{SS~X`LX~2 literal 10151 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 JbJlg;{tqj?t$+Xk