Add buttons for all woods
This commit is contained in:
parent
a2fefb264b
commit
7fab1ada00
1 changed files with 45 additions and 30 deletions
|
@ -8,19 +8,6 @@ local button_get_output_rules = function(node)
|
||||||
return rules
|
return rules
|
||||||
end
|
end
|
||||||
|
|
||||||
mesecon.button_turnoff = function (pos)
|
|
||||||
local node = minetest.get_node(pos)
|
|
||||||
if node.name=="mesecons_button:button_stone_on" then --has not been dug
|
|
||||||
minetest.swap_node(pos, {name="mesecons_button:button_stone_off",param2=node.param2})
|
|
||||||
minetest.sound_play("mesecons_button_pop", {pos=pos})
|
|
||||||
mesecon.receptor_off(pos, button_get_output_rules(node))
|
|
||||||
elseif node.name=="mesecons_button:button_wood_on" then --has not been dug
|
|
||||||
minetest.swap_node(pos, {name="mesecons_button:button_wood_off",param2=node.param2})
|
|
||||||
minetest.sound_play("mesecons_button_pop", {pos=pos})
|
|
||||||
mesecon.receptor_off(pos, button_get_output_rules(node))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local boxes_off = {
|
local boxes_off = {
|
||||||
type = "wallmounted",
|
type = "wallmounted",
|
||||||
wall_side = { -8/16, -2/16, -4/16, -6/16, 2/16, 4/16 },
|
wall_side = { -8/16, -2/16, -4/16, -6/16, 2/16, 4/16 },
|
||||||
|
@ -75,7 +62,7 @@ local on_button_place = function(itemstack, placer, pointed_thing)
|
||||||
|
|
||||||
if success then
|
if success then
|
||||||
if idef.sounds and idef.sounds.place then
|
if idef.sounds and idef.sounds.place then
|
||||||
--minetest.sound_play(idef.sounds.place, {pos=above, gain=1})
|
minetest.sound_play(idef.sounds.place, {pos=above, gain=1})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
|
@ -84,9 +71,16 @@ end
|
||||||
local buttonuse = "Rightclick the button to push it."
|
local buttonuse = "Rightclick the button to push it."
|
||||||
|
|
||||||
mesecon.register_button = function(basename, description, texture, recipeitem, sounds, plusgroups, button_timer, longdesc)
|
mesecon.register_button = function(basename, description, texture, recipeitem, sounds, plusgroups, button_timer, longdesc)
|
||||||
local groups_off = {handy=1,pickaxey=1, attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, dig_by_piston=1}
|
local groups_off = table.copy(plusgroups)
|
||||||
|
groups_off.attached_node=1
|
||||||
|
groups_off.dig_by_water=1
|
||||||
|
groups_off.destroy_by_lava_flow=1
|
||||||
|
groups_off.dig_by_piston=1
|
||||||
|
groups_off.button=1 -- button (off)
|
||||||
|
|
||||||
local groups_on = table.copy(groups_off)
|
local groups_on = table.copy(groups_off)
|
||||||
groups_on.not_in_creative_inventory=1
|
groups_on.not_in_creative_inventory=1
|
||||||
|
groups_on.button=2 -- button (on)
|
||||||
|
|
||||||
minetest.register_node("mesecons_button:button_"..basename.."_off", {
|
minetest.register_node("mesecons_button:button_"..basename.."_off", {
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
|
@ -111,7 +105,17 @@ mesecon.register_button = function(basename, description, texture, recipeitem, s
|
||||||
minetest.swap_node(pos, {name="mesecons_button:button_"..basename.."_on", param2=node.param2})
|
minetest.swap_node(pos, {name="mesecons_button:button_"..basename.."_on", param2=node.param2})
|
||||||
mesecon.receptor_on(pos, button_get_output_rules(node))
|
mesecon.receptor_on(pos, button_get_output_rules(node))
|
||||||
minetest.sound_play("mesecons_button_push", {pos=pos})
|
minetest.sound_play("mesecons_button_push", {pos=pos})
|
||||||
minetest.after(button_timer, mesecon.button_turnoff, pos)
|
local button_turnoff = function(a)
|
||||||
|
local pos = a.pos
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
local basename = a.basename
|
||||||
|
if node.name=="mesecons_button:button_"..basename.."_on" then --has not been dug
|
||||||
|
minetest.swap_node(pos, {name="mesecons_button:button_"..basename.."_off",param2=node.param2})
|
||||||
|
minetest.sound_play("mesecons_button_pop", {pos=pos})
|
||||||
|
mesecon.receptor_off(pos, button_get_output_rules(node))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
minetest.after(button_timer, button_turnoff, {pos=pos, basename=basename})
|
||||||
end,
|
end,
|
||||||
sounds = sounds,
|
sounds = sounds,
|
||||||
mesecons = {receptor = {
|
mesecons = {receptor = {
|
||||||
|
@ -163,21 +167,32 @@ mesecon.register_button(
|
||||||
1,
|
1,
|
||||||
"A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second. It can only be placed on solid opaque full cubes (like cobblestone).")
|
"A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second. It can only be placed on solid opaque full cubes (like cobblestone).")
|
||||||
|
|
||||||
mesecon.register_button(
|
local woods = {
|
||||||
"wood",
|
{ "wood", "mcl_core:wood", "default_wood.png", "Oak Button" },
|
||||||
"Oak Wood Button",
|
{ "acaciawood", "mcl_core:acaciawood", "default_acacia_wood.png", "Acacia Button" },
|
||||||
"default_wood.png",
|
{ "birchwood", "mcl_core:birchwood", "mcl_core_planks_birch.png", "Birch Button" },
|
||||||
"mcl_core:wood",
|
{ "darkwood", "mcl_core:darkwood", "mcl_core_planks_big_oak.png", "Dark Oak Button" },
|
||||||
mcl_sounds.node_sound_wood_defaults(),
|
{ "sprucewood", "mcl_core:sprucewood", "mcl_core_planks_spruce.png", "Spruce Button" },
|
||||||
{material_wood=1,handy=1,axey=1},
|
{ "junglewood", "mcl_core:junglewood", "default_junglewood.png", "Jungle Button" },
|
||||||
1.5,
|
}
|
||||||
"A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. It can only be placed on solid opaque full cubes (like cobblestone).")
|
|
||||||
|
|
||||||
minetest.register_craft({
|
for w=1, #woods do
|
||||||
type = "fuel",
|
mesecon.register_button(
|
||||||
recipe = 'mesecons_button:button_wood_off',
|
woods[w][1],
|
||||||
burntime = 5,
|
woods[w][4],
|
||||||
})
|
woods[w][3],
|
||||||
|
woods[w][2],
|
||||||
|
mcl_sounds.node_sound_wood_defaults(),
|
||||||
|
{material_wood=1,handy=1,axey=1},
|
||||||
|
1.5,
|
||||||
|
"A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. It can only be placed on solid opaque full cubes (like cobblestone).")
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "mesecons_button:button_"..woods[w][1].."_off",
|
||||||
|
burntime = 5,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
-- Add entry aliases for the Help
|
-- Add entry aliases for the Help
|
||||||
if minetest.get_modpath("doc") then
|
if minetest.get_modpath("doc") then
|
||||||
|
|
Reference in a new issue