summaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua93
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"},
+})