summaryrefslogtreecommitdiff
path: root/firealarm_pullstation
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2018-08-24 16:19:53 -0500
committercheapie <no-email-for-you@example.com>2018-08-24 16:19:53 -0500
commitdf75dc7b7ec03a3b30052efbea988c3ab2b8f430 (patch)
tree60b9f3982ed111b7effcff5ff54eb7862997c732 /firealarm_pullstation
downloadfirealarm-df75dc7b7ec03a3b30052efbea988c3ab2b8f430.tar
firealarm-df75dc7b7ec03a3b30052efbea988c3ab2b8f430.tar.gz
firealarm-df75dc7b7ec03a3b30052efbea988c3ab2b8f430.tar.bz2
firealarm-df75dc7b7ec03a3b30052efbea988c3ab2b8f430.tar.xz
firealarm-df75dc7b7ec03a3b30052efbea988c3ab2b8f430.zip
Initial commit
Diffstat (limited to 'firealarm_pullstation')
-rw-r--r--firealarm_pullstation/depends.txt1
-rw-r--r--firealarm_pullstation/init.lua90
-rw-r--r--firealarm_pullstation/sounds/firealarm_pullstation_pull.oggbin0 -> 8029 bytes
-rw-r--r--firealarm_pullstation/sounds/firealarm_pullstation_reset.oggbin0 -> 7373 bytes
-rw-r--r--firealarm_pullstation/textures/firealarm_pullstation_back.pngbin0 -> 146 bytes
-rw-r--r--firealarm_pullstation/textures/firealarm_pullstation_front_off.pngbin0 -> 4588 bytes
-rw-r--r--firealarm_pullstation/textures/firealarm_pullstation_front_on.pngbin0 -> 4740 bytes
7 files changed, 91 insertions, 0 deletions
diff --git a/firealarm_pullstation/depends.txt b/firealarm_pullstation/depends.txt
new file mode 100644
index 0000000..d4798ab
--- /dev/null
+++ b/firealarm_pullstation/depends.txt
@@ -0,0 +1 @@
+firealarm_common
diff --git a/firealarm_pullstation/init.lua b/firealarm_pullstation/init.lua
new file mode 100644
index 0000000..b212ec8
--- /dev/null
+++ b/firealarm_pullstation/init.lua
@@ -0,0 +1,90 @@
+minetest.register_node(":firealarm:pullstation_off",{
+ description = "Fire Alarm Pull Station",
+ groups = { oddly_breakable_by_hand = 1 },
+ tiles = {
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_front_off.png",
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.15,-0.5,0.4,0.18,-0.11,0.5},
+ },
+ },
+ on_punch = function(pos,_,player)
+ local name = player:get_player_name()
+ minetest.chat_send_player(name,string.format("Position: %d,%d,%d",pos.x,pos.y,pos.z))
+ end,
+ on_rightclick = function(pos,node)
+ local devInfo = firealarm.getDevInfo("signaling",pos)
+ if devInfo then
+ devInfo.active = true
+ node.name = "firealarm:pullstation_on"
+ minetest.set_node(pos,node)
+ minetest.sound_play("firealarm_pullstation_pull",{pos=pos})
+ if devInfo.associated then
+ local panelPos = minetest.get_position_from_hash(devInfo.associated)
+ if panelPos then firealarm.loadNode(panelPos) end
+ if type(firealarm.panelABM) == "function" then firealarm.panelABM(pos) end
+ end
+ end
+ end,
+ after_place_node = function(pos)
+ firealarm.setDevInfo("signaling",pos,{active = false,manualReset = true})
+ end,
+ after_dig_node = function(pos)
+ firealarm.setDevInfo("signaling",pos,nil)
+ end,
+})
+
+minetest.register_node(":firealarm:pullstation_on",{
+ drop = "firealarm:pullstation_off",
+ description = "Fire Alarm Pull Station (pulled state - you hacker you!)",
+ groups = { oddly_breakable_by_hand = 1,not_in_creative_inventory = 1 },
+ tiles = {
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_back.png",
+ "firealarm_pullstation_front_on.png",
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.15,-0.5,0.4,0.18,-0.11,0.5},
+ },
+ },
+ on_punch = function(pos,_,player)
+ local name = player:get_player_name()
+ minetest.chat_send_player(name,string.format("Position: %d,%d,%d",pos.x,pos.y,pos.z))
+ end,
+ on_rightclick = function(pos,node,name)
+ --local name = minetest.get_player_name(clicker)
+ if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,"protection_bypass") then
+ minetest.record_protection_violation(pos,name)
+ minetest.chat_send_player(name,"You are not authorized to reset this pull station")
+ return
+ end
+ local devInfo = firealarm.getDevInfo("signaling",pos)
+ if devInfo then
+ devInfo.active = false
+ node.name = "firealarm:pullstation_off"
+ minetest.set_node(pos,node)
+ minetest.sound_play("firealarm_pullstation_reset",{pos=pos})
+ end
+ end,
+ after_dig_node = function(pos)
+ firealarm.setDevInfo("signaling",pos,nil)
+ end,
+})
diff --git a/firealarm_pullstation/sounds/firealarm_pullstation_pull.ogg b/firealarm_pullstation/sounds/firealarm_pullstation_pull.ogg
new file mode 100644
index 0000000..1f6922e
--- /dev/null
+++ b/firealarm_pullstation/sounds/firealarm_pullstation_pull.ogg
Binary files differ
diff --git a/firealarm_pullstation/sounds/firealarm_pullstation_reset.ogg b/firealarm_pullstation/sounds/firealarm_pullstation_reset.ogg
new file mode 100644
index 0000000..7e125e0
--- /dev/null
+++ b/firealarm_pullstation/sounds/firealarm_pullstation_reset.ogg
Binary files differ
diff --git a/firealarm_pullstation/textures/firealarm_pullstation_back.png b/firealarm_pullstation/textures/firealarm_pullstation_back.png
new file mode 100644
index 0000000..4beaa00
--- /dev/null
+++ b/firealarm_pullstation/textures/firealarm_pullstation_back.png
Binary files differ
diff --git a/firealarm_pullstation/textures/firealarm_pullstation_front_off.png b/firealarm_pullstation/textures/firealarm_pullstation_front_off.png
new file mode 100644
index 0000000..a77f411
--- /dev/null
+++ b/firealarm_pullstation/textures/firealarm_pullstation_front_off.png
Binary files differ
diff --git a/firealarm_pullstation/textures/firealarm_pullstation_front_on.png b/firealarm_pullstation/textures/firealarm_pullstation_front_on.png
new file mode 100644
index 0000000..e5fc410
--- /dev/null
+++ b/firealarm_pullstation/textures/firealarm_pullstation_front_on.png
Binary files differ