clean up ai.lua
parent
cadd53c103
commit
8ca5f221ec
|
@ -175,12 +175,6 @@ mobs.mob_step = function(self, dtime)
|
||||||
|
|
||||||
--print(self.object:get_yaw())
|
--print(self.object:get_yaw())
|
||||||
|
|
||||||
--if self.state == "die" then
|
|
||||||
-- print("need custom die stop moving thing")
|
|
||||||
-- return
|
|
||||||
--end
|
|
||||||
|
|
||||||
|
|
||||||
state_switch(self, dtime)
|
state_switch(self, dtime)
|
||||||
|
|
||||||
state_execution(self,dtime)
|
state_execution(self,dtime)
|
||||||
|
@ -191,165 +185,5 @@ mobs.mob_step = function(self, dtime)
|
||||||
mobs.collision(self)
|
mobs.collision(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--if not self.fire_resistant then
|
|
||||||
-- mcl_burning.tick(self.object, dtime)
|
|
||||||
--end
|
|
||||||
|
|
||||||
--if use_cmi then
|
|
||||||
--cmi.notify_step(self.object, dtime)
|
|
||||||
--end
|
|
||||||
|
|
||||||
--local pos = self.object:get_pos()
|
|
||||||
--local yaw = 0
|
|
||||||
|
|
||||||
--if mobs_debug then
|
|
||||||
--update_tag(self)
|
|
||||||
--end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--if self.jump_sound_cooloff > 0 then
|
|
||||||
-- self.jump_sound_cooloff = self.jump_sound_cooloff - dtime
|
|
||||||
--end
|
|
||||||
|
|
||||||
--if self.opinion_sound_cooloff > 0 then
|
|
||||||
-- self.opinion_sound_cooloff = self.opinion_sound_cooloff - dtime
|
|
||||||
--end
|
|
||||||
|
|
||||||
--if falling(self, pos) then
|
|
||||||
-- Return if mob died after falling
|
|
||||||
-- return
|
|
||||||
--end
|
|
||||||
|
|
||||||
|
|
||||||
-- run custom function (defined in mob lua file)
|
|
||||||
--if self.do_custom then
|
|
||||||
|
|
||||||
-- when false skip going any further
|
|
||||||
--if self.do_custom(self, dtime) == false then
|
|
||||||
-- return
|
|
||||||
--end
|
|
||||||
--end
|
|
||||||
|
|
||||||
-- knockback timer
|
|
||||||
--if self.pause_timer > 0 then
|
|
||||||
|
|
||||||
-- self.pause_timer = self.pause_timer - dtime
|
|
||||||
|
|
||||||
-- return
|
|
||||||
--end
|
|
||||||
|
|
||||||
-- attack timer
|
|
||||||
--self.timer = self.timer + dtime
|
|
||||||
|
|
||||||
--[[
|
|
||||||
if self.state ~= "attack" then
|
|
||||||
|
|
||||||
if self.timer < 1 then
|
|
||||||
print("returning>>error code 1")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
self.timer = 0
|
|
||||||
end
|
|
||||||
]]--
|
|
||||||
|
|
||||||
-- never go over 100
|
|
||||||
--if self.timer > 100 then
|
|
||||||
-- self.timer = 1
|
|
||||||
--end
|
|
||||||
|
|
||||||
-- mob plays random sound at times
|
|
||||||
--if math_random(1, 70) == 1 then
|
|
||||||
-- mob_sound(self, "random", true)
|
|
||||||
--end
|
|
||||||
|
|
||||||
-- environmental damage timer (every 1 second)
|
|
||||||
--self.env_damage_timer = self.env_damage_timer + dtime
|
|
||||||
|
|
||||||
--if (self.state == "attack" and self.env_damage_timer > 1)
|
|
||||||
--or self.state ~= "attack" then
|
|
||||||
--
|
|
||||||
-- self.env_damage_timer = 0
|
|
||||||
--
|
|
||||||
-- -- check for environmental damage (water, fire, lava etc.)
|
|
||||||
-- if do_env_damage(self) then
|
|
||||||
-- return
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- node replace check (cow eats grass etc.)
|
|
||||||
-- replace(self, pos)
|
|
||||||
--end
|
|
||||||
|
|
||||||
--monster_attack(self)
|
|
||||||
|
|
||||||
--npc_attack(self)
|
|
||||||
|
|
||||||
--breed(self)
|
|
||||||
|
|
||||||
--do_jump(self)
|
|
||||||
|
|
||||||
--runaway_from(self)
|
|
||||||
|
|
||||||
|
|
||||||
--if is_at_water_danger(self) and self.state ~= "attack" then
|
|
||||||
-- if math_random(1, 10) <= 6 then
|
|
||||||
-- set_velocity(self, 0)
|
|
||||||
-- self.state = "stand"
|
|
||||||
-- set_animation(self, "stand")
|
|
||||||
-- yaw = yaw + math_random(-0.5, 0.5)
|
|
||||||
-- yaw = set_yaw(self, yaw, 8)
|
|
||||||
-- end
|
|
||||||
--end
|
|
||||||
|
|
||||||
|
|
||||||
-- Add water flowing for mobs from mcl_item_entity
|
|
||||||
--[[
|
|
||||||
local p, node, nn, def
|
|
||||||
p = self.object:get_pos()
|
|
||||||
node = minetest_get_node_or_nil(p)
|
|
||||||
if node then
|
|
||||||
nn = node.name
|
|
||||||
def = minetest_registered_nodes[nnenable_physicss if not on/in flowing liquid
|
|
||||||
self._flowing = false
|
|
||||||
enable_physics(self.object, self, true)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
--Mob following code.
|
|
||||||
follow_flop(self)
|
|
||||||
|
|
||||||
|
|
||||||
if is_at_cliff_or_danger(self) then
|
|
||||||
set_velocity(self, 0)
|
|
||||||
self.state = "stand"
|
|
||||||
set_animation(self, "stand")
|
|
||||||
local yaw = self.object:get_yaw() or 0
|
|
||||||
yaw = set_yaw(self, yaw + 0.78, 8)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Despawning: when lifetimer expires, remove mob
|
|
||||||
if remove_far
|
|
||||||
and self.can_despawn == true
|
|
||||||
and ((not self.nametag) or (self.nametag == ""))
|
|
||||||
and self.state ~= "attack"
|
|
||||||
and self.following == nil then
|
|
||||||
|
|
||||||
self.lifetimer = self.lifetimer - dtime
|
|
||||||
if self.despawn_immediately or self.lifetimer <= 0 then
|
|
||||||
minetest.log("action", "Mob "..self.name.." despawns in mob_step at "..minetest.pos_to_string(pos, 1))
|
|
||||||
mcl_burning.extinguish(self.object)
|
|
||||||
self.object:remove()
|
|
||||||
elseif self.lifetimer <= 10 then
|
|
||||||
if math_random(10) < 4 then
|
|
||||||
self.despawn_immediately = true
|
|
||||||
else
|
|
||||||
self.lifetimer = 20
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
]]--
|
|
||||||
|
|
||||||
self.old_velocity = self.object:get_velocity()
|
self.old_velocity = self.object:get_velocity()
|
||||||
end
|
end
|
||||||
|
|
|
@ -3297,3 +3297,172 @@ end
|
||||||
function mobs:yaw(self, yaw, delay, dtime)
|
function mobs:yaw(self, yaw, delay, dtime)
|
||||||
set_yaw(self, yaw, delay, dtime)
|
set_yaw(self, yaw, delay, dtime)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
mob_step = function()
|
||||||
|
|
||||||
|
--if self.state == "die" then
|
||||||
|
-- print("need custom die stop moving thing")
|
||||||
|
-- return
|
||||||
|
--end
|
||||||
|
|
||||||
|
--if not self.fire_resistant then
|
||||||
|
-- mcl_burning.tick(self.object, dtime)
|
||||||
|
--end
|
||||||
|
|
||||||
|
--if use_cmi then
|
||||||
|
--cmi.notify_step(self.object, dtime)
|
||||||
|
--end
|
||||||
|
|
||||||
|
--local pos = self.object:get_pos()
|
||||||
|
--local yaw = 0
|
||||||
|
|
||||||
|
--if mobs_debug then
|
||||||
|
--update_tag(self)
|
||||||
|
--end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--if self.jump_sound_cooloff > 0 then
|
||||||
|
-- self.jump_sound_cooloff = self.jump_sound_cooloff - dtime
|
||||||
|
--end
|
||||||
|
|
||||||
|
--if self.opinion_sound_cooloff > 0 then
|
||||||
|
-- self.opinion_sound_cooloff = self.opinion_sound_cooloff - dtime
|
||||||
|
--end
|
||||||
|
|
||||||
|
--if falling(self, pos) then
|
||||||
|
-- Return if mob died after falling
|
||||||
|
-- return
|
||||||
|
--end
|
||||||
|
|
||||||
|
|
||||||
|
-- run custom function (defined in mob lua file)
|
||||||
|
--if self.do_custom then
|
||||||
|
|
||||||
|
-- when false skip going any further
|
||||||
|
--if self.do_custom(self, dtime) == false then
|
||||||
|
-- return
|
||||||
|
--end
|
||||||
|
--end
|
||||||
|
|
||||||
|
-- knockback timer
|
||||||
|
--if self.pause_timer > 0 then
|
||||||
|
|
||||||
|
-- self.pause_timer = self.pause_timer - dtime
|
||||||
|
|
||||||
|
-- return
|
||||||
|
--end
|
||||||
|
|
||||||
|
-- attack timer
|
||||||
|
--self.timer = self.timer + dtime
|
||||||
|
|
||||||
|
--[[
|
||||||
|
if self.state ~= "attack" then
|
||||||
|
|
||||||
|
if self.timer < 1 then
|
||||||
|
print("returning>>error code 1")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
self.timer = 0
|
||||||
|
end
|
||||||
|
]]--
|
||||||
|
|
||||||
|
-- never go over 100
|
||||||
|
--if self.timer > 100 then
|
||||||
|
-- self.timer = 1
|
||||||
|
--end
|
||||||
|
|
||||||
|
-- mob plays random sound at times
|
||||||
|
--if math_random(1, 70) == 1 then
|
||||||
|
-- mob_sound(self, "random", true)
|
||||||
|
--end
|
||||||
|
|
||||||
|
-- environmental damage timer (every 1 second)
|
||||||
|
--self.env_damage_timer = self.env_damage_timer + dtime
|
||||||
|
|
||||||
|
--if (self.state == "attack" and self.env_damage_timer > 1)
|
||||||
|
--or self.state ~= "attack" then
|
||||||
|
--
|
||||||
|
-- self.env_damage_timer = 0
|
||||||
|
--
|
||||||
|
-- -- check for environmental damage (water, fire, lava etc.)
|
||||||
|
-- if do_env_damage(self) then
|
||||||
|
-- return
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- node replace check (cow eats grass etc.)
|
||||||
|
-- replace(self, pos)
|
||||||
|
--end
|
||||||
|
|
||||||
|
--monster_attack(self)
|
||||||
|
|
||||||
|
--npc_attack(self)
|
||||||
|
|
||||||
|
--breed(self)
|
||||||
|
|
||||||
|
--do_jump(self)
|
||||||
|
|
||||||
|
--runaway_from(self)
|
||||||
|
|
||||||
|
|
||||||
|
--if is_at_water_danger(self) and self.state ~= "attack" then
|
||||||
|
-- if math_random(1, 10) <= 6 then
|
||||||
|
-- set_velocity(self, 0)
|
||||||
|
-- self.state = "stand"
|
||||||
|
-- set_animation(self, "stand")
|
||||||
|
-- yaw = yaw + math_random(-0.5, 0.5)
|
||||||
|
-- yaw = set_yaw(self, yaw, 8)
|
||||||
|
-- end
|
||||||
|
--end
|
||||||
|
|
||||||
|
|
||||||
|
-- Add water flowing for mobs from mcl_item_entity
|
||||||
|
--[[
|
||||||
|
local p, node, nn, def
|
||||||
|
p = self.object:get_pos()
|
||||||
|
node = minetest_get_node_or_nil(p)
|
||||||
|
if node then
|
||||||
|
nn = node.name
|
||||||
|
def = minetest_registered_nodes[nnenable_physicss if not on/in flowing liquid
|
||||||
|
self._flowing = false
|
||||||
|
enable_physics(self.object, self, true)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
--Mob following code.
|
||||||
|
follow_flop(self)
|
||||||
|
|
||||||
|
|
||||||
|
if is_at_cliff_or_danger(self) then
|
||||||
|
set_velocity(self, 0)
|
||||||
|
self.state = "stand"
|
||||||
|
set_animation(self, "stand")
|
||||||
|
local yaw = self.object:get_yaw() or 0
|
||||||
|
yaw = set_yaw(self, yaw + 0.78, 8)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Despawning: when lifetimer expires, remove mob
|
||||||
|
if remove_far
|
||||||
|
and self.can_despawn == true
|
||||||
|
and ((not self.nametag) or (self.nametag == ""))
|
||||||
|
and self.state ~= "attack"
|
||||||
|
and self.following == nil then
|
||||||
|
|
||||||
|
self.lifetimer = self.lifetimer - dtime
|
||||||
|
if self.despawn_immediately or self.lifetimer <= 0 then
|
||||||
|
minetest.log("action", "Mob "..self.name.." despawns in mob_step at "..minetest.pos_to_string(pos, 1))
|
||||||
|
mcl_burning.extinguish(self.object)
|
||||||
|
self.object:remove()
|
||||||
|
elseif self.lifetimer <= 10 then
|
||||||
|
if math_random(10) < 4 then
|
||||||
|
self.despawn_immediately = true
|
||||||
|
else
|
||||||
|
self.lifetimer = 20
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
]]--
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue