diff options
Diffstat (limited to 'mesecons_button')
-rw-r--r-- | mesecons_button/depends.txt | 2 | ||||
-rw-r--r-- | mesecons_button/doc/button/description.html | 1 | ||||
-rw-r--r-- | mesecons_button/doc/button/preview.png | bin | 0 -> 80160 bytes | |||
-rw-r--r-- | mesecons_button/doc/button/recipe.png | bin | 0 -> 8031 bytes | |||
-rw-r--r-- | mesecons_button/init.lua | 98 | ||||
-rw-r--r-- | mesecons_button/sounds/mesecons_button_pop.ogg | bin | 0 -> 6184 bytes | |||
-rw-r--r-- | mesecons_button/sounds/mesecons_button_push.ogg | bin | 0 -> 6982 bytes | |||
-rw-r--r-- | mesecons_button/textures/jeija_wall_button_off.png | bin | 0 -> 411 bytes | |||
-rw-r--r-- | mesecons_button/textures/jeija_wall_button_on.png | bin | 0 -> 449 bytes | |||
-rw-r--r-- | mesecons_button/textures/jeija_wall_button_sides.png | bin | 0 -> 434 bytes |
10 files changed, 101 insertions, 0 deletions
diff --git a/mesecons_button/depends.txt b/mesecons_button/depends.txt new file mode 100644 index 0000000..19c798c --- /dev/null +++ b/mesecons_button/depends.txt @@ -0,0 +1,2 @@ +mesecons +mesecons_receiver diff --git a/mesecons_button/doc/button/description.html b/mesecons_button/doc/button/description.html new file mode 100644 index 0000000..ae6bf07 --- /dev/null +++ b/mesecons_button/doc/button/description.html @@ -0,0 +1 @@ +This receptor can be attached to walls. It turns on for 1 second if it's punched. diff --git a/mesecons_button/doc/button/preview.png b/mesecons_button/doc/button/preview.png Binary files differnew file mode 100644 index 0000000..b69f8f4 --- /dev/null +++ b/mesecons_button/doc/button/preview.png diff --git a/mesecons_button/doc/button/recipe.png b/mesecons_button/doc/button/recipe.png Binary files differnew file mode 100644 index 0000000..c6232b4 --- /dev/null +++ b/mesecons_button/doc/button/recipe.png diff --git a/mesecons_button/init.lua b/mesecons_button/init.lua new file mode 100644 index 0000000..f287d52 --- /dev/null +++ b/mesecons_button/init.lua @@ -0,0 +1,98 @@ +-- WALL BUTTON +-- A button that when pressed emits power for 1 second +-- and then turns off again + +mesecon.button_turnoff = function (pos) + local node = minetest.get_node(pos) + if node.name=="mesecons_button:button_on" then --has not been dug + minetest.swap_node(pos, {name = "mesecons_button:button_off", param2=node.param2}) + minetest.sound_play("mesecons_button_pop", {pos=pos}) + local rules = mesecon.rules.buttonlike_get(node) + mesecon.receptor_off(pos, rules) + end +end + +minetest.register_node("mesecons_button:button_off", { + drawtype = "nodebox", + tiles = { + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_off.png" + }, + paramtype = "light", + paramtype2 = "facedir", + legacy_wallmounted = true, + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = { -6/16, -6/16, 5/16, 6/16, 6/16, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { + { -6/16, -6/16, 6/16, 6/16, 6/16, 8/16 }, -- the thin plate behind the button + { -4/16, -2/16, 4/16, 4/16, 2/16, 6/16 } -- the button itself + } + }, + groups = {dig_immediate=2, mesecon_needs_receiver = 1}, + description = "Button", + on_rightclick = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_button:button_on", param2=node.param2}) + mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) + minetest.sound_play("mesecons_button_push", {pos=pos}) + minetest.after(1, mesecon.button_turnoff, pos) + end, + sounds = default.node_sound_stone_defaults(), + mesecons = {receptor = { + state = mesecon.state.off, + rules = mesecon.rules.buttonlike_get + }} +}) + +minetest.register_node("mesecons_button:button_on", { + drawtype = "nodebox", + tiles = { + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_sides.png", + "jeija_wall_button_on.png" + }, + paramtype = "light", + paramtype2 = "facedir", + legacy_wallmounted = true, + walkable = false, + light_source = default.LIGHT_MAX-7, + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = { -6/16, -6/16, 5/16, 6/16, 6/16, 8/16 } + }, + node_box = { + type = "fixed", + fixed = { + { -6/16, -6/16, 6/16, 6/16, 6/16, 8/16 }, + { -4/16, -2/16, 11/32, 4/16, 2/16, 6/16 } + } + }, + groups = {dig_immediate=2, not_in_creative_inventory=1, mesecon_needs_receiver = 1}, + drop = 'mesecons_button:button_off', + description = "Button", + sounds = default.node_sound_stone_defaults(), + mesecons = {receptor = { + state = mesecon.state.on, + rules = mesecon.rules.buttonlike_get + }} +}) + +minetest.register_craft({ + output = "mesecons_button:button_off 2", + recipe = { + {"group:mesecon_conductor_craftable","default:stone"}, + } +}) diff --git a/mesecons_button/sounds/mesecons_button_pop.ogg b/mesecons_button/sounds/mesecons_button_pop.ogg Binary files differnew file mode 100644 index 0000000..9d56bb8 --- /dev/null +++ b/mesecons_button/sounds/mesecons_button_pop.ogg diff --git a/mesecons_button/sounds/mesecons_button_push.ogg b/mesecons_button/sounds/mesecons_button_push.ogg Binary files differnew file mode 100644 index 0000000..53d45c1 --- /dev/null +++ b/mesecons_button/sounds/mesecons_button_push.ogg diff --git a/mesecons_button/textures/jeija_wall_button_off.png b/mesecons_button/textures/jeija_wall_button_off.png Binary files differnew file mode 100644 index 0000000..0e3ff25 --- /dev/null +++ b/mesecons_button/textures/jeija_wall_button_off.png diff --git a/mesecons_button/textures/jeija_wall_button_on.png b/mesecons_button/textures/jeija_wall_button_on.png Binary files differnew file mode 100644 index 0000000..1d97464 --- /dev/null +++ b/mesecons_button/textures/jeija_wall_button_on.png diff --git a/mesecons_button/textures/jeija_wall_button_sides.png b/mesecons_button/textures/jeija_wall_button_sides.png Binary files differnew file mode 100644 index 0000000..9b79b57 --- /dev/null +++ b/mesecons_button/textures/jeija_wall_button_sides.png |