From fb9a55e562c3e4102fa4e02603f93d1c78e397ad Mon Sep 17 00:00:00 2001 From: jordan4ibanez Date: Fri, 16 Apr 2021 15:55:11 -0400 Subject: [PATCH] Make jump_check more modular and allow mobs to turn if at a wall --- mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua index 7b154f0d86..adffc69514 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua @@ -70,9 +70,14 @@ local jump_check = function(self,dtime) local green_flag_2 = minetest_get_item_group(minetest_get_node(test_dir).name, "solid") == 0 - if green_flag_1 and green_flag_2 then - mobs.jump(self) + if green_flag_1 and green_flag_2 then -- can jump over node + return(1) + elseif green_flag_1 and not green_flag_2 then --wall in front of + return(2) end + + --nothing to jump over + return(0) end @@ -125,7 +130,11 @@ local state_execution = function(self,dtime) mobs.set_velocity(self,1) --check for nodes to jump over - jump_check(self) + local node_in_front_of = jump_check(self) + + if node_in_front_of == 1 then + mobs.jump(self) + end --turn if on the edge of cliff --(this is written like this because unlike @@ -133,7 +142,7 @@ local state_execution = function(self,dtime) --this requires a mob to turn, removing the --ease of a full implementation for it in a single --function) - if cliff_check(self,dtime) then + if node_in_front_of == 2 or cliff_check(self,dtime) then --turn 45 degrees if so quick_rotate_45(self,dtime) end