summaryrefslogtreecommitdiff
path: root/firealarm_hornstrobe
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2018-08-30 18:13:59 -0500
committercheapie <no-email-for-you@example.com>2018-08-30 18:13:59 -0500
commit6dc64c7050c410e0979e520bbbd6b60ba46fb485 (patch)
tree0b5173840709baf0da3d7d8680665afec6875334 /firealarm_hornstrobe
parent1ccedfc92c99c1759b32df04ee7afb3225bcdcff (diff)
downloadfirealarm-6dc64c7050c410e0979e520bbbd6b60ba46fb485.tar
firealarm-6dc64c7050c410e0979e520bbbd6b60ba46fb485.tar.gz
firealarm-6dc64c7050c410e0979e520bbbd6b60ba46fb485.tar.bz2
firealarm-6dc64c7050c410e0979e520bbbd6b60ba46fb485.tar.xz
firealarm-6dc64c7050c410e0979e520bbbd6b60ba46fb485.zip
Add remote strobe and old-fashioned horn/light plate
Diffstat (limited to 'firealarm_hornstrobe')
-rw-r--r--firealarm_hornstrobe/init.lua189
-rw-r--r--firealarm_hornstrobe/sounds/firealarm_horn_old.oggbin0 -> 38903 bytes
-rw-r--r--firealarm_hornstrobe/textures/firealarm_hornstrobe_old_front_off.pngbin0 -> 2882 bytes
-rw-r--r--firealarm_hornstrobe/textures/firealarm_hornstrobe_old_front_on.pngbin0 -> 2835 bytes
-rw-r--r--firealarm_hornstrobe/textures/firealarm_hornstrobe_remotestrobe_front_off.pngbin0 -> 1622 bytes
5 files changed, 189 insertions, 0 deletions
diff --git a/firealarm_hornstrobe/init.lua b/firealarm_hornstrobe/init.lua
index 8f48912..fc7ac13 100644
--- a/firealarm_hornstrobe/init.lua
+++ b/firealarm_hornstrobe/init.lua
@@ -77,6 +77,156 @@ minetest.register_node(":firealarm:hornstrobe_on",{
},
})
+minetest.register_node(":firealarm:remotestrobe_off",{
+ description = "Fire Alarm Remote Strobe",
+ groups = { oddly_breakable_by_hand = 1 },
+ tiles = {
+ "firealarm_hornstrobe_top.png",
+ "firealarm_hornstrobe_top.png",
+ "firealarm_hornstrobe_side.png",
+ "firealarm_hornstrobe_side.png",
+ "firealarm_hornstrobe_back.png",
+ "firealarm_hornstrobe_remotestrobe_front_off.png",
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.15,-0.02,0.4,0.18,0.37,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,
+ after_place_node = function(pos)
+ firealarm.setDevInfo("notification",pos,{strobeActive = false,hornActive = false})
+ end,
+ after_dig_node = function(pos)
+ firealarm.setDevInfo("notification",pos,nil)
+ end,
+})
+
+local remoteStrobeOnFrontTexture = "[combine:32x320"..
+ ":0,0=firealarm_hornstrobe_front_on.png"..
+ ":0,32=firealarm_hornstrobe_remotestrobe_front_off.png"..
+ ":0,64=firealarm_hornstrobe_remotestrobe_front_off.png"..
+ ":0,96=firealarm_hornstrobe_remotestrobe_front_off.png"..
+ ":0,128=firealarm_hornstrobe_remotestrobe_front_off.png"..
+ ":0,160=firealarm_hornstrobe_remotestrobe_front_off.png"..
+ ":0,192=firealarm_hornstrobe_remotestrobe_front_off.png"..
+ ":0,224=firealarm_hornstrobe_remotestrobe_front_off.png"..
+ ":0,256=firealarm_hornstrobe_remotestrobe_front_off.png"..
+ ":0,288=firealarm_hornstrobe_remotestrobe_front_off.png"
+
+minetest.register_node(":firealarm:remotestrobe_on",{
+ drop = "firealarm:remotestrobe_off",
+ description = "Fire Alarm Remote Strobe (on state - you hacker you!)",
+ groups = { oddly_breakable_by_hand = 1,not_in_creative_inventory = 1 },
+ tiles = {
+ "firealarm_hornstrobe_top.png",
+ "firealarm_hornstrobe_top.png",
+ "firealarm_hornstrobe_side.png",
+ "firealarm_hornstrobe_side.png",
+ "firealarm_hornstrobe_back.png",
+ {
+ name = remoteStrobeOnFrontTexture,
+ animation =
+ {
+ type = "vertical_frames",
+ aspect_w = 32,
+ aspect_h = 32,
+ length = 1,
+ },
+ }
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ light_source = 8,
+ use_texture_alpha = true,
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5,-0.5,0.4,0.5,0.5,0.401},
+ {-0.15,-0.02,0.4,0.18,0.37,0.5},
+ },
+ },
+})
+
+minetest.register_node(":firealarm:hornstrobe_old_off",{
+ description = "Fire Alarm Horn/Light Plate",
+ groups = { oddly_breakable_by_hand = 1 },
+ tiles = {
+ "firealarm_hornstrobe_top.png",
+ "firealarm_hornstrobe_top.png",
+ "firealarm_hornstrobe_side.png",
+ "firealarm_hornstrobe_side.png",
+ "firealarm_hornstrobe_back.png",
+ "firealarm_hornstrobe_old_front_off.png",
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.15,-0.02,0.4,0.18,0.37,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,
+ after_place_node = function(pos)
+ firealarm.setDevInfo("notification",pos,{strobeActive = false,hornActive = false})
+ end,
+ after_dig_node = function(pos)
+ firealarm.setDevInfo("notification",pos,nil)
+ end,
+})
+
+local oldHornStrobeOnFrontTexture = "[combine:64x128"..
+ ":0,0=firealarm_hornstrobe_old_front_on.png"..
+ ":0,64=firealarm_hornstrobe_old_front_off.png"
+
+minetest.register_node(":firealarm:hornstrobe_old_on",{
+ drop = "firealarm:hornstrobe_old_off",
+ description = "Fire Alarm Horn/Light Plate (on state - you hacker you!)",
+ groups = { oddly_breakable_by_hand = 1,not_in_creative_inventory = 1 },
+ tiles = {
+ "firealarm_hornstrobe_top.png",
+ "firealarm_hornstrobe_top.png",
+ "firealarm_hornstrobe_side.png",
+ "firealarm_hornstrobe_side.png",
+ "firealarm_hornstrobe_back.png",
+ {
+ name = oldHornStrobeOnFrontTexture,
+ animation =
+ {
+ type = "vertical_frames",
+ aspect_w = 64,
+ aspect_h = 64,
+ length = 0.6,
+ },
+ }
+ },
+ paramtype = "light",
+ paramtype2 = "facedir",
+ light_source = 8,
+ use_texture_alpha = true,
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {
+ {-0.5,-0.5,0.4,0.5,0.5,0.401},
+ {-0.15,-0.02,0.4,0.18,0.37,0.5},
+ },
+ },
+})
+
minetest.register_abm({
label = "Update horn/strobe state",
nodenames = {"firealarm:hornstrobe_off","firealarm:hornstrobe_on"},
@@ -97,3 +247,42 @@ minetest.register_abm({
end
end,
})
+
+minetest.register_abm({
+ label = "Update remote strobe state",
+ nodenames = {"firealarm:remotestrobe_off","firealarm:remotestrobe_on"},
+ interval = 1,
+ chance = 1,
+ action = function(pos,node)
+ local devInfo = firealarm.getDevInfo("notification",pos)
+ if not devInfo then return end
+ if node.name == "firealarm:remotestrobe_off" and devInfo.strobeActive then
+ node.name = "firealarm:remotestrobe_on"
+ minetest.set_node(pos,node)
+ elseif node.name == "firealarm:remotestrobe_on" and not devInfo.strobeActive then
+ node.name = "firealarm:remotestrobe_off"
+ minetest.set_node(pos,node)
+ end
+ end,
+})
+
+minetest.register_abm({
+ label = "Update horn/light plate state",
+ nodenames = {"firealarm:hornstrobe_old_off","firealarm:hornstrobe_old_on"},
+ interval = 3,
+ chance = 1,
+ action = function(pos,node)
+ local devInfo = firealarm.getDevInfo("notification",pos)
+ if not devInfo then return end
+ if node.name == "firealarm:hornstrobe_old_off" and devInfo.strobeActive then
+ node.name = "firealarm:hornstrobe_old_on"
+ minetest.set_node(pos,node)
+ elseif node.name == "firealarm:hornstrobe_old_on" and not devInfo.strobeActive then
+ node.name = "firealarm:hornstrobe_old_off"
+ minetest.set_node(pos,node)
+ end
+ if devInfo.hornActive then
+ minetest.sound_play("firealarm_horn_old",{pos=pos})
+ end
+ end,
+})
diff --git a/firealarm_hornstrobe/sounds/firealarm_horn_old.ogg b/firealarm_hornstrobe/sounds/firealarm_horn_old.ogg
new file mode 100644
index 0000000..0c1dead
--- /dev/null
+++ b/firealarm_hornstrobe/sounds/firealarm_horn_old.ogg
Binary files differ
diff --git a/firealarm_hornstrobe/textures/firealarm_hornstrobe_old_front_off.png b/firealarm_hornstrobe/textures/firealarm_hornstrobe_old_front_off.png
new file mode 100644
index 0000000..0dfb6ae
--- /dev/null
+++ b/firealarm_hornstrobe/textures/firealarm_hornstrobe_old_front_off.png
Binary files differ
diff --git a/firealarm_hornstrobe/textures/firealarm_hornstrobe_old_front_on.png b/firealarm_hornstrobe/textures/firealarm_hornstrobe_old_front_on.png
new file mode 100644
index 0000000..234c527
--- /dev/null
+++ b/firealarm_hornstrobe/textures/firealarm_hornstrobe_old_front_on.png
Binary files differ
diff --git a/firealarm_hornstrobe/textures/firealarm_hornstrobe_remotestrobe_front_off.png b/firealarm_hornstrobe/textures/firealarm_hornstrobe_remotestrobe_front_off.png
new file mode 100644
index 0000000..6c18b97
--- /dev/null
+++ b/firealarm_hornstrobe/textures/firealarm_hornstrobe_remotestrobe_front_off.png
Binary files differ