diff options
author | cheapie <no-email-for-you@example.com> | 2024-12-30 16:54:45 -0600 |
---|---|---|
committer | cheapie <no-email-for-you@example.com> | 2024-12-30 16:54:45 -0600 |
commit | d677a4d1d6d2d1dc6af36b644f8f01bacf0313b7 (patch) | |
tree | 9571b0610c95a75f6e7bce2b090479f959044f77 /init.lua | |
download | bm_to_mesecons-d677a4d1d6d2d1dc6af36b644f8f01bacf0313b7.tar bm_to_mesecons-d677a4d1d6d2d1dc6af36b644f8f01bacf0313b7.tar.gz bm_to_mesecons-d677a4d1d6d2d1dc6af36b644f8f01bacf0313b7.tar.bz2 bm_to_mesecons-d677a4d1d6d2d1dc6af36b644f8f01bacf0313b7.tar.xz bm_to_mesecons-d677a4d1d6d2d1dc6af36b644f8f01bacf0313b7.zip |
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..fd0aeb7 --- /dev/null +++ b/init.lua @@ -0,0 +1,93 @@ +local meseconrules = { + vector.new(1,0,0), + vector.new(-1,0,0), + vector.new(0,0,1), + vector.new(0,0,-1), + vector.new(1,1,0), + vector.new(-1,1,0), + vector.new(0,1,1), + vector.new(0,1,-1), +} + +core.register_node("bm_to_mesecons:converter_off",{ + description = "Basic Machines to Mesecons Converter", + tiles = { + "bm_to_mesecons_converter_off.png", + "bm_to_mesecons_converter_sides.png", + }, + use_texture_alpha = "opaque", + is_ground_content = false, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.5,0.5,-0.47,0.5}, + {-0.438,-0.47,-0.438,0.438,-0.42,0.438}, + }, + }, + groups = { + dig_immediate = 2, + }, + effector = { + action_on = function(pos) + local node = core.get_node(pos) + node.name = "bm_to_mesecons:converter_on" + core.swap_node(pos,node) + mesecon.receptor_on(pos,meseconrules) + core.get_node_timer(pos):start(0.5) + end, + }, + mesecons = { + receptor = { + state = mesecon.state.off, + rules = meseconrules, + }, + }, + on_construct = function(pos) + core.get_meta(pos):set_string("infotext","Basic Machines to Mesecons Converter") + end, +}) + +core.register_node("bm_to_mesecons:converter_on",{ + description = "Basic Machines to Mesecons Converter (on state - you hacker you!)", + tiles = { + "bm_to_mesecons_converter_on.png", + "bm_to_mesecons_converter_sides.png", + }, + use_texture_alpha = "opaque", + is_ground_content = false, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.5,0.5,-0.47,0.5}, + {-0.438,-0.47,-0.438,0.438,-0.42,0.438}, + }, + }, + groups = { + dig_immediate = 2, + not_in_creative_inventory = 1, + }, + drop = "bm_to_mesecons:converter_off", + mesecons = { + receptor = { + state = mesecon.state.on, + rules = meseconrules, + }, + }, + on_timer = function(pos) + local node = core.get_node(pos) + if node.name ~= "bm_to_mesecons:converter_on" then return end + node.name = "bm_to_mesecons:converter_off" + core.swap_node(pos,node) + mesecon.receptor_off(pos,meseconrules) + end, +}) + +core.register_craft({ + output = "bm_to_mesecons:converter_off", + type = "shapeless", + recipe = {"basic_machines:mesecon_adapter"}, +}) |