summaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
authorcheapie <no-email-for-you@example.com>2015-12-01 23:57:57 -0600
committercheapie <no-email-for-you@example.com>2015-12-01 23:57:57 -0600
commit037ce5ff5d429f26c8d5695abeac727035359e35 (patch)
treec675deb9514ef9293fc91ec2dfb437f3af209571 /init.lua
downloadrgblightstone-037ce5ff5d429f26c8d5695abeac727035359e35.tar
rgblightstone-037ce5ff5d429f26c8d5695abeac727035359e35.tar.gz
rgblightstone-037ce5ff5d429f26c8d5695abeac727035359e35.tar.bz2
rgblightstone-037ce5ff5d429f26c8d5695abeac727035359e35.tar.xz
rgblightstone-037ce5ff5d429f26c8d5695abeac727035359e35.zip
Added content, so it, you know, does something...
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua52
1 files changed, 52 insertions, 0 deletions
diff --git a/init.lua b/init.lua
new file mode 100644
index 0000000..0e140d7
--- /dev/null
+++ b/init.lua
@@ -0,0 +1,52 @@
+rgblightstone = {}
+rgblightstone.colors = {"off","black","blue","brown","cyan","darkblue","darkcyan","darkgray","darkgreen","darkmagenta","darkred","gray","green","magenta","red","white","yellow"}
+function rgblightstone.add(name)
+ minetest.register_node("rgblightstone:lightstone_" .. name, {
+ tiles = name == "off" and {"jeija_lightstone_darkgray_off.png"} or {"rgblightstone_"..name..".png"},
+ drop = "rgblightstone:lightstone_off",
+ groups = name == "off" and {cracky=2} or {cracky=2,not_in_creative_inventory=1},
+ description="RGB Lightstone ("..name..")",
+ sounds = default.node_sound_stone_defaults(),
+ on_construct = function(pos)
+ local meta = minetest.get_meta(pos)
+ meta:set_string("formspec", "field[channel;Channel;${channel}]")
+ end,
+ on_receive_fields = function(pos, formname, fields, sender)
+ if fields.channel then minetest.get_meta(pos):set_string("channel", fields.channel) end
+ end,
+ light_source = name~= "off" and default.LIGHT_MAX-2 or 0,
+ digiline = {
+ receptor = {},
+ effector = {
+ action = function(pos, node, channel, msg)
+ local channel_set = minetest.get_meta(pos):get_string("channel")
+ if channel==channel_set then
+ for _,color in ipairs(rgblightstone.colors) do
+ if msg==color then minetest.swap_node(pos, {name = "rgblightstone:lightstone_"..color}) end
+ end
+ end
+ end
+ }
+ }
+ })
+end
+for _,i in ipairs(rgblightstone.colors) do rgblightstone.add(i) end
+if minetest.get_modpath("mesecons_luacontroller") and minetest.get_modpath("digilines") then
+ minetest.register_craft({
+ output = "rgblightstone:lightstone_off",
+ recipe = {
+ {"","mesecons_lightstone:lightstone_green_off",""},
+ {"mesecons_lightstone:lightstone_red_off","mesecons_luacontroller:luacontroller0000","mesecons_lightstone:lightstone_blue_off"},
+ {"","digilines:wire_std_00000000",""}
+ }
+ })
+else
+ minetest.register_craft({
+ output = "rgblightstone:lightstone_off",
+ recipe = {
+ {"","mesecons_lightstone:lightstone_green_off",""},
+ {"mesecons_lightstone:lightstone_red_off","group:mesecon_conductor_craftable","mesecons_lightstone:lightstone_blue_off"},
+ {"","group:mesecon_conductor_craftable",""}
+ }
+ })
+end