X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=mods%2Fmob%2Fapi%2Ftimers.lua;h=053e2a345958239f4b3fd963e442145e626c343e;hb=07b2f4db1cc246655698ce8e7a9d0ebc530eb374;hp=84ae2da3273dfd2ecdc2a6cca10b657c857a6978;hpb=96a37cf7d46067ef9c5354d04453534a554dabd6;p=Crafter.git diff --git a/mods/mob/api/timers.lua b/mods/mob/api/timers.lua index 84ae2da..053e2a3 100644 --- a/mods/mob/api/timers.lua +++ b/mods/mob/api/timers.lua @@ -13,12 +13,14 @@ mobs.create_timer_functions = function(def,mob_register) --this controls the hostile state if def.hostile == true or def.attacked_hostile == true then - mob_register.manage_hostile_timer = function(self,dtime) - if self.hostile_timer > 0 then - self.hostile_timer = self.hostile_timer - dtime - end - if self.hostile_timer <= 0 then - self.hostile = false + if def.hostile_cooldown == true then + mob_register.manage_hostile_timer = function(self,dtime) + if self.hostile_timer > 0 then + self.hostile_timer = self.hostile_timer - dtime + end + if self.hostile_timer <= 0 then + self.hostile = false + end end end end @@ -35,17 +37,25 @@ mobs.create_timer_functions = function(def,mob_register) mob_register.manage_explode_timer = function(self,dtime) self.tnt_timer = self.tnt_timer - dtime + self.tnt_tick_timer = self.tnt_tick_timer - dtime + if self.tnt_tick_timer <= 0 and not self.dead then + self.tnt_tick_timer = self.explosion_blink_timer + self.tnt_mod_state = math.abs(self.tnt_mod_state-1) + if self.tnt_mod_state == 0 then + self.object:set_texture_mod("") + else + self.object:set_texture_mod("^[colorize:"..self.explosion_blink_color..":130") + end + --print(self.object:get_texture_mod()) + --self.object:set_texture_mod("^[colorize:red:130") + end if self.tnt_timer <= 0 and not self.dead then self.object:set_texture_mod("^[colorize:red:130") local pos = self.object:get_pos() - --direction.y = direction.y + 1 - - tnt(pos,7) - self.death_animation_timer = 1 - self.dead = true - self.tnt_timer = 100 + self.object:remove() + tnt(pos,self.explosion_power) end end @@ -53,6 +63,23 @@ mobs.create_timer_functions = function(def,mob_register) self.projectile_timer = self.projectile_timer - dtime end + if def.friendly_in_daylight then + mob_register.handle_friendly_in_daylight_timer = function(self,dtime) + self.friendly_in_daylight_timer = self.friendly_in_daylight_timer + dtime + if self.friendly_in_daylight_timer >= 2 then + self.friendly_in_daylight_timer = 0 + local pos = self.object:get_pos() + if minetest.get_node_light(pos) >= 13 then --1 greater than torch light + if self.following == false then + self.hostile = false + end + else + self.hostile = true + end + end + end + end + --this stops the pig from flying into the air mob_register.manage_jump_timer = function(self,dtime) if self.jump_timer > 0 then