minetest-particles/init.lua

86 lines
2.3 KiB
Lua
Raw Normal View History

2012-09-15 03:46:50 -07:00
--[[
Particles for Minetest
Copyright (c) 2012 cornernote, Brett O'Donnell <cornernote@gmail.com>
Source Code: https://github.com/cornernote/minetest-particles
License: GPLv3
MAIN LOADER
]]--
-- load api
dofile(minetest.get_modpath("particles").."/api.lua")
2012-09-15 04:45:05 -07:00
-- register register files for mods
dofile(minetest.get_modpath("particles").."/mod_default.lua")
if minetest.get_modpath("mesecons") ~= nil then
dofile(minetest.get_modpath("particles").."/mod_mesecons.lua")
end
2012-09-15 03:46:50 -07:00
-- register_on_dignode
minetest.register_on_dignode(function(pos, oldnode, digger)
particles.on_dignode(pos, oldnode, digger)
end)
2012-09-15 04:45:05 -07:00
-- register smoke particle
minetest.register_entity("particles:smoke", {
physical = true,
visual_size = {x=0.25, y=0.25},
collisionbox = {-0.01,-0.01,-0.01,0.01,0.01,0.01},
visual = "sprite",
textures = {"smoke_puff.png"},
on_step = function(self, dtime)
self.object:setacceleration({x=0, y=0.5, z=0})
self.timer = self.timer + dtime
if self.timer > 3 then
self.object:remove()
end
end,
timer = 0,
})
-- register smoke abm
minetest.register_abm({
nodenames = {"group:smokes","default:torch"},
interval = 5,
chance = 5,
action = function(pos)
minetest.env:add_entity({x=pos.x+math.random()*0.5,y=pos.y+0.75,z=pos.z+math.random()*0.5}, "particles:smoke")
end,
})
-- register signalbubble
minetest.register_entity("particles:signalbubble", {
physical = true,
visual_size = {x=0.10, y=0.10},
collisionbox = {-0.01,-0.01,-0.01,0.01,0.01,0.01},
visual = "sprite",
textures = {"particles_signalbubble.png"},
timer = 0,
lifetime = 4,
on_step = function(self, dtime)
self.timer = self.timer + dtime
if self.timer > self.lifetime then
self.object:remove()
end
end,
on_activate = function(self, staticdata)
self.object:setacceleration({x=0, y=0.05, z=0})
end,
})
-- register signalbubble abm
minetest.register_abm({
nodenames = {"group:signalbubbles","mesecons:mesecon_on","mesecons:wall_lever_on","mesecons:mesecon_torch_on"},
interval = 1,
chance = 5,
action = function(pos)
2012-09-15 04:46:44 -07:00
minetest.env:add_entity({x=pos.x+math.random()*0.5,y=pos.y,z=pos.z+math.random()*0.5}, "particles:signalbubble")
2012-09-15 04:45:05 -07:00
end,
})
2012-09-15 03:46:50 -07:00
-- log that we started
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname()))