diff options
author | cheapie <no-email-for-you@example.com> | 2015-12-01 23:57:57 -0600 |
---|---|---|
committer | cheapie <no-email-for-you@example.com> | 2015-12-01 23:57:57 -0600 |
commit | 037ce5ff5d429f26c8d5695abeac727035359e35 (patch) | |
tree | c675deb9514ef9293fc91ec2dfb437f3af209571 /init.lua | |
download | rgblightstone-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.lua | 52 |
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 |