added smoke and mesecons support

master
Brett O'Donnell 2012-09-15 21:15:05 +09:30
parent de92c558a5
commit 879dc0f3c7
14 changed files with 176 additions and 38 deletions

View File

@ -28,7 +28,9 @@ Modders Guide
----------------------------------
If you want particles in your mod then simply add this line:
Dig Particles:
Add this line to your mod:
particles.register_dig_particle(node,texture,[params])
- node = the name of the node (your_mod:your_node)
@ -40,6 +42,17 @@ create particles of wood after digging a bookshelf:
particles.register_dig_particle("default:bookshelf","default_wood")
Smoke Particles and Signal Bubbles:
Add smokes=1 or signalbubbles=1 to the groups in the node definition.
EG:
minetest.register_node("your_mod:your_item", {
description = "Your Item",
groups = {smokes=1},
})
----------------------------------
License

View File

@ -13,48 +13,73 @@ MAIN LOADER
-- load api
dofile(minetest.get_modpath("particles").."/api.lua")
-- register dig particles for default nodes
particles.register_dig_particle("default:bookshelf","default_wood")
particles.register_dig_particle("default:brick","default_brick")
particles.register_dig_particle("default:cactus","default_cactus")
particles.register_dig_particle("default:chest","default_wood")
particles.register_dig_particle("default:chest_locked","default_wood")
particles.register_dig_particle("default:clay","default_clay")
particles.register_dig_particle("default:cobble","default_cobble")
particles.register_dig_particle("default:desert_sand","default_desert_sand")
particles.register_dig_particle("default:desert_stone","default_desert_stone")
particles.register_dig_particle("default:dirt","default_dirt")
particles.register_dig_particle("default:dirt_with_grass","default_dirt")
particles.register_dig_particle("default:dirt_with_grass_footsteps","default_dirt")
particles.register_dig_particle("default:dry_shrub","default_dirt")
particles.register_dig_particle("default:fence_wood","default_wood")
particles.register_dig_particle("default:furnace","default_cobble")
particles.register_dig_particle("default:glass","default_glass")
particles.register_dig_particle("default:gravel","default_gravel")
particles.register_dig_particle("default:junglegrass","default_dirt")
particles.register_dig_particle("default:jungletree","default_jungletree")
particles.register_dig_particle("default:ladder","default_wood")
particles.register_dig_particle("default:leaves","default_leaves")
particles.register_dig_particle("default:mese","default_mese")
particles.register_dig_particle("default:mossycobble","default_mossycobble")
particles.register_dig_particle("default:papyrus","default_papyrus")
particles.register_dig_particle("default:rail","default_rail")
particles.register_dig_particle("default:sand","default_sand")
particles.register_dig_particle("default:sandstone","default_sandstone")
particles.register_dig_particle("default:sapling","default_dirt")
particles.register_dig_particle("default:sign_wall","default_wood")
particles.register_dig_particle("default:steelblock","default_steelblock")
particles.register_dig_particle("default:stone","default_stone")
particles.register_dig_particle("default:stone_with_coal","default_stone")
particles.register_dig_particle("default:stone_with_iron","default_stone")
particles.register_dig_particle("default:torch","default_wood")
particles.register_dig_particle("default:tree","default_tree")
particles.register_dig_particle("default:wood","default_wood")
-- 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
-- register_on_dignode
minetest.register_on_dignode(function(pos, oldnode, digger)
particles.on_dignode(pos, oldnode, digger)
end)
-- 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)
minetest.env:add_entity({x=pos.x,y=pos.y,z=pos.z}, "particles:signalbubble")
end,
})
-- log that we started
minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname()))

49
mod_default.lua Normal file
View File

@ -0,0 +1,49 @@
--[[
Particles for Minetest
Copyright (c) 2012 cornernote, Brett O'Donnell <cornernote@gmail.com>
Source Code: https://github.com/cornernote/minetest-particles
License: GPLv3
DEFAULT MOD
]]--
-- register dig particles for default nodes
particles.register_dig_particle("default:bookshelf","default_wood")
particles.register_dig_particle("default:brick","default_brick")
particles.register_dig_particle("default:cactus","default_cactus")
particles.register_dig_particle("default:chest","default_wood")
particles.register_dig_particle("default:chest_locked","default_wood")
particles.register_dig_particle("default:clay","default_clay")
particles.register_dig_particle("default:cobble","default_cobble")
particles.register_dig_particle("default:desert_sand","default_desert_sand")
particles.register_dig_particle("default:desert_stone","default_desert_stone")
particles.register_dig_particle("default:dirt","default_dirt")
particles.register_dig_particle("default:dirt_with_grass","default_dirt")
particles.register_dig_particle("default:dirt_with_grass_footsteps","default_dirt")
particles.register_dig_particle("default:dry_shrub","default_dirt")
particles.register_dig_particle("default:fence_wood","default_wood")
particles.register_dig_particle("default:furnace","default_cobble")
particles.register_dig_particle("default:glass","default_glass")
particles.register_dig_particle("default:gravel","default_gravel")
particles.register_dig_particle("default:junglegrass","default_dirt")
particles.register_dig_particle("default:jungletree","default_jungletree")
particles.register_dig_particle("default:ladder","default_wood")
particles.register_dig_particle("default:leaves","default_leaves")
particles.register_dig_particle("default:mese","default_mese")
particles.register_dig_particle("default:mossycobble","default_mossycobble")
particles.register_dig_particle("default:papyrus","default_papyrus")
particles.register_dig_particle("default:rail","default_rail")
particles.register_dig_particle("default:sand","default_sand")
particles.register_dig_particle("default:sandstone","default_sandstone")
particles.register_dig_particle("default:sapling","default_dirt")
particles.register_dig_particle("default:sign_wall","default_wood")
particles.register_dig_particle("default:steelblock","default_steelblock")
particles.register_dig_particle("default:stone","default_stone")
particles.register_dig_particle("default:stone_with_coal","default_stone")
particles.register_dig_particle("default:stone_with_iron","default_stone")
particles.register_dig_particle("default:torch","default_wood")
particles.register_dig_particle("default:tree","default_tree")
particles.register_dig_particle("default:wood","default_wood")

51
mod_mesecons.lua Normal file
View File

@ -0,0 +1,51 @@
--[[
Particles for Minetest
Copyright (c) 2012 cornernote, Brett O'Donnell <cornernote@gmail.com>
Source Code: https://github.com/cornernote/minetest-particles
License: GPLv3
MESECONS MOD
]]--
-- register dig particles for mesecons nodes
particles.register_dig_particle("mesecons_powerplant:power_plant","particles_yellow")
particles.register_dig_particle("mesecons_random:removestone","particles_gray")
particles.register_dig_particle("mesecons_lamp:lamp_off","particles_yellow")
particles.register_dig_particle("mesecons_lamp:lamp_on","particles_yellow")
particles.register_dig_particle("mesecons:mesecon_off","particles_yellow")
particles.register_dig_particle("mesecons:mesecon_on","particles_yellow")
particles.register_dig_particle("mesecons_detector:object_detector_off","particles_lightgray")
particles.register_dig_particle("mesecons_detector:object_detector_on","particles_lightgray")
particles.register_dig_particle("mesecons_wireless:wireless_inverter_on","particles_brown")
particles.register_dig_particle("mesecons_wireless:wireless_inverter_off","particles_brown")
particles.register_dig_particle("mesecons_wireless:wireless_receiver_on","particles_brown")
particles.register_dig_particle("mesecons_wireless:wireless_receiver_off","particles_brown")
particles.register_dig_particle("mesecons_wireless:wireless_transmitter_on","particles_brown")
particles.register_dig_particle("mesecons_wireless:wireless_transmitter_off","particles_brown")
particles.register_dig_particle("mesecons_switch:mesecon_switch_off","particles_gray")
particles.register_dig_particle("mesecons_switch:mesecon_switch_off","particles_gray")
particles.register_dig_particle("mesecons_button:button_on","particles_yellow")
particles.register_dig_particle("mesecons_button:button_off","particles_yellow")
particles.register_dig_particle("mesecons_pistons:piston_normal","particles_brown")
particles.register_dig_particle("mesecons_pistons:piston_sticky","particles_brown")
particles.register_dig_particle("mesecons_blinkyplant:blinky_plant_off","particles_yellow")
particles.register_dig_particle("mesecons_blinkyplant:blinky_plant_on","particles_yellow")
particles.register_dig_particle("mesecons_torch:mesecon_torch_off","particles_yellow")
particles.register_dig_particle("mesecons_torch:mesecon_torch_on","particles_yellow")
particles.register_dig_particle("mesecons_hydroturbine:hydro_turbine_off","particles_gray")
particles.register_dig_particle("mesecons_hydroturbine:hydro_turbine_on","particles_gray")
particles.register_dig_particle("mesecons_pressureplates:pressure_plate_stone_off","particles_gray")
particles.register_dig_particle("mesecons_pressureplates:pressure_plate_stone_on","particles_gray")
particles.register_dig_particle("mesecons_pressureplates:pressure_plate_wood_off","particles_brown")
particles.register_dig_particle("mesecons_pressureplates:pressure_plate_wood_on","particles_brown")
particles.register_dig_particle("mesecons_temperest:mesecon_socket_off","particles_gray")
particles.register_dig_particle("mesecons_temperest:mesecon_socket_on","particles_red")
particles.register_dig_particle("mesecons_temperest:mesecon_inverter_off","particles_gray")
particles.register_dig_particle("mesecons_temperest:mesecon_inverter_on","particles_red")
particles.register_dig_particle("mesecons_temperest:mesecon_plug","particles_black")
particles.register_dig_particle("mesecons_movestones:movestone","particles_gray")
particles.register_dig_particle("mesecons_movestones:sticky_movestone","particles_gray")

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

BIN
textures/particles_gray.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

BIN
textures/particles_red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

BIN
textures/particles_tan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B