dmobs/mobs/butterfly.lua

40 lines
1.3 KiB
Lua
Raw Normal View History

2016-12-14 05:36:47 -08:00
--butterflies
minetest.register_abm({
nodenames = {"flowers:flower_rose", "flowers:flower_tulip",
"flowers:flower_dandelion_yellow", "flowers:flower_viola",
"flowers:flower_dandelion_white", "flowers:flower_geranium"},
2016-12-14 05:36:47 -08:00
interval = 10.0,
chance = 10,
action = function(pos, node, active_object_count, active_object_count_wider)
minetest.add_entity({x=pos.x,y=pos.y+0.3,z=pos.z}, "dmobs:butterfly")
2016-12-14 05:36:47 -08:00
end
})
minetest.register_entity("dmobs:butterfly", {
2017-01-16 12:40:25 -08:00
visual = "mesh",
mesh = "butterfly.b3d",
2016-12-14 05:36:47 -08:00
physical = true,
textures = {"dmobs_butterfly.png",},
2017-01-16 12:40:25 -08:00
visual_size = {x=0.3, y=0.3},
2016-12-14 05:36:47 -08:00
on_activate = function(self)
num = math.random(1,4)
self.object:set_properties({textures = {"dmobs_butterfly"..num..".png",},})
2017-01-16 12:40:25 -08:00
self.object:set_animation({x=1, y=10}, 20, 0)
self.object:set_yaw(math.pi+num)
2017-01-16 12:40:25 -08:00
minetest.after(10, function()
2016-12-14 05:36:47 -08:00
self.object:remove()
end)
end,
on_step = function(self)
local pos = self.object:get_pos()
local vec = self.object:get_velocity()
2017-01-16 12:40:25 -08:00
local num = math.random(-math.pi, math.pi)
self.object:set_yaw(math.pi+num)
self.object:set_velocity({x=-math.sin(12*pos.y), y=math.cos(12*pos.x), z=-math.sin(12*pos.y)})
self.object:set_acceleration({x=-math.sin(6*vec.y), y=math.cos(6*vec.x), z=-math.sin(6*vec.y)})
2016-12-14 05:36:47 -08:00
end,
collisionbox = {0,0,0,0,0.1,0},
})