Skip to content

Commit

Permalink
Add light sensor and RTC (Real Time Clock)
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeija committed Mar 24, 2013
1 parent 3a1bf37 commit ddfe350
Show file tree
Hide file tree
Showing 6 changed files with 112 additions and 0 deletions.
1 change: 1 addition & 0 deletions digilines_lightsensor/depends.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
digilines
57 changes: 57 additions & 0 deletions digilines_lightsensor/init.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
local GET_COMMAND = "GET"

local lsensor_nodebox =
{
type = "fixed",
fixed = {
{ -8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }, -- bottom slab

{ -7/16, -7/16, -7/16, -4/16, -5/16, 7/16 }, -- bonds
{ 4/16, -7/16, -7/16, 7/16, -5/16, 7/16 },
{ -7/16, -7/16, -7/16, 7/16, -5/16, -4/16 },
{ -7/16, -7/16, 4/16, 7/16, -5/16, 7/16 },

{ -1/16, -7/16, -1/16, 1/16, -5/16, 1/16 }, -- pin thing in the middle
}
}

local lsensor_selbox =
{
type = "fixed",
fixed = {{ -8/16, -8/16, -8/16, 8/16, -3/16, 8/16 }}
}

local on_digiline_receive = function (pos, node, channel, msg)
local setchan = minetest.env:get_meta(pos):get_string("channel")
if channel == setchan and msg == GET_COMMAND then
local lightval = minetest.env:get_node_light(pos)
digiline:receptor_send(pos, digiline.rules.default, channel, lightval)
end
end

minetest.register_node("digilines_lightsensor:lightsensor", {
description = "Digiline Lightsensor",
drawtype = "nodebox",
tiles = {"digilines_lightsensor.png"},

paramtype = "light",
groups = {dig_immediate=2},
selection_box = lsensor_selbox,
node_box = lsensor_nodebox,
digiline =
{
receptor = {},
effector = {
action = on_digiline_receive
},
},
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string("formspec", "field[channel;Channel;${channel}]")
end,
on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.env:get_meta(pos)
fields.channel = fields.channel or ""
meta:set_string("channel", fields.channel)
end,
})
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions digilines_rtc/depends.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
digilines
53 changes: 53 additions & 0 deletions digilines_rtc/init.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
local GET_COMMAND = "GET"

local rtc_nodebox =
{
type = "fixed",
fixed = {
{ -8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }, -- bottom slab

{ -7/16, -7/16, -7/16, 7/16, -5/16, 7/16 },
}
}

local rtc_selbox =
{
type = "fixed",
fixed = {{ -8/16, -8/16, -8/16, 8/16, -3/16, 8/16 }}
}

local on_digiline_receive = function (pos, node, channel, msg)
local setchan = minetest.env:get_meta(pos):get_string("channel")
if channel == setchan and msg == GET_COMMAND then
local timeofday = minetest.env:get_timeofday()
digiline:receptor_send(pos, digiline.rules.default, channel, timeofday)
end
end

minetest.register_node("digilines_rtc:rtc", {
description = "Digiline Real Time Clock (RTC)",
drawtype = "nodebox",
tiles = {"digilines_rtc.png"},

paramtype = "light",
paramtype2 = "facedir",
groups = {dig_immediate=2},
selection_box = rtc_selbox,
node_box = rtc_nodebox,
digiline =
{
receptor = {},
effector = {
action = on_digiline_receive
},
},
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string("formspec", "field[channel;Channel;${channel}]")
end,
on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.env:get_meta(pos)
fields.channel = fields.channel or ""
meta:set_string("channel", fields.channel)
end,
})
Binary file added digilines_rtc/textures/digilines_rtc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit ddfe350

Please sign in to comment.