From d677a4d1d6d2d1dc6af36b644f8f01bacf0313b7 Mon Sep 17 00:00:00 2001 From: cheapie Date: Mon, 30 Dec 2024 16:54:45 -0600 Subject: Add initial content --- .luacheckrc | 6 ++ LICENSE | 22 +++++++ init.lua | 93 ++++++++++++++++++++++++++++ mod.conf | 2 + textures/bm_to_mesecons_converter_off.png | Bin 0 -> 7607 bytes textures/bm_to_mesecons_converter_on.png | Bin 0 -> 7811 bytes textures/bm_to_mesecons_converter_sides.png | Bin 0 -> 1995 bytes 7 files changed, 123 insertions(+) create mode 100644 .luacheckrc create mode 100644 LICENSE create mode 100644 init.lua create mode 100644 mod.conf create mode 100644 textures/bm_to_mesecons_converter_off.png create mode 100644 textures/bm_to_mesecons_converter_on.png create mode 100644 textures/bm_to_mesecons_converter_sides.png diff --git a/.luacheckrc b/.luacheckrc new file mode 100644 index 0000000..a21d36f --- /dev/null +++ b/.luacheckrc @@ -0,0 +1,6 @@ +max_line_length = 120 +read_globals = { + "core", + "mesecon", + "vector", +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b3dbff0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. 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"}, +}) diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..b141d5f --- /dev/null +++ b/mod.conf @@ -0,0 +1,2 @@ +name = bm_to_mesecons +depends = basic_machines,mesecons diff --git a/textures/bm_to_mesecons_converter_off.png b/textures/bm_to_mesecons_converter_off.png new file mode 100644 index 0000000..3192bff Binary files /dev/null and b/textures/bm_to_mesecons_converter_off.png differ diff --git a/textures/bm_to_mesecons_converter_on.png b/textures/bm_to_mesecons_converter_on.png new file mode 100644 index 0000000..121888d Binary files /dev/null and b/textures/bm_to_mesecons_converter_on.png differ diff --git a/textures/bm_to_mesecons_converter_sides.png b/textures/bm_to_mesecons_converter_sides.png new file mode 100644 index 0000000..bc3cebd Binary files /dev/null and b/textures/bm_to_mesecons_converter_sides.png differ -- cgit v1.2.3