From 1d37eae1a7f6f794f8fc30f9f6e2639fc4deb5d4 Mon Sep 17 00:00:00 2001 From: OgelGames Date: Sun, 24 Jan 2021 22:41:06 +1100 Subject: [PATCH] add compatibility, fix rotation --- README.md | 2 - compatibility.lua | 208 ++++++++++++++++++++++++++ diode.lua | 3 + filter.lua | 5 +- init.lua | 13 +- limiter.lua | 3 + mod.conf | 2 +- splitter.lua | 3 + textures/digicontrol_trisplitter2.png | Bin 12530 -> 0 bytes textures/digistuff_insulated_edge.png | Bin 0 -> 103 bytes textures/digistuff_insulated_full.png | Bin 0 -> 96 bytes trisplitter.lua | 3 + 12 files changed, 237 insertions(+), 5 deletions(-) create mode 100644 compatibility.lua delete mode 100644 textures/digicontrol_trisplitter2.png create mode 100644 textures/digistuff_insulated_edge.png create mode 100644 textures/digistuff_insulated_full.png diff --git a/README.md b/README.md index a6728bc..48e5b88 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,7 @@ Adds nodes to control the flow of digiline messages. - router (sorting tube for digiline messages) - crossing and double corner insulated wires -- compatibility for replacing `digiline_routing` - craft recipes -- insulated wires from `digistuff` (when not installed) ## License diff --git a/compatibility.lua b/compatibility.lua new file mode 100644 index 0000000..59679f1 --- /dev/null +++ b/compatibility.lua @@ -0,0 +1,208 @@ + +if not minetest.get_modpath("digiline_routing") then + -- Aliases for main nodes + minetest.register_alias("digiline_routing:diode", "digicontrol:diode") + minetest.register_alias("digiline_routing:filter", "digicontrol:filter") + minetest.register_alias("digiline_routing:splitter", "digicontrol:splitter") + -- Alias for crafting item + minetest.register_alias("digiline_routing:connector", "digilines:wire_std_00000000") + -- LBM to replace nodes + minetest.register_lbm({ + label = "Digicontrol digiline_routing compatibility", + name = "digicontrol:routing_compat", + nodenames = { + "digiline_routing:filter", + "digiline_routing:splitter", + "digiline_routing:filter_b", + "digiline_routing:splitter_b" + }, + action = function(pos, node) + local p = (node.param2 + 1) % 4 + -- For some reason the node name will be the aliased one... + if node.name == "digicontrol:splitter" or node.name == "digicontrol:filter" then + minetest.swap_node(pos, {name = node.name, param2 = p}) + else + minetest.swap_node(pos, {name = "digistuff:insulated_straight", param2 = p}) + end + end + }) +end + +if minetest.get_modpath("digistuff") then + -- Use digicontrol on_rotate + for _,n in pairs({"insulated_straight", "insulated_tjunction", "insulated_corner"}) do + minetest.override_item("digistuff:"..n, { + on_rotate = digicontrol.on_rotate + }) + end +else + -- Register digistuff's insulated wires + minetest.register_node(":digistuff:insulated_straight", { + description = "Insulated Digiline (straight)", + tiles = { + "digistuff_insulated_full.png", + "digistuff_insulated_full.png", + "digistuff_insulated_edge.png", + "digistuff_insulated_edge.png", + "digistuff_insulated_full.png", + "digistuff_insulated_full.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = {dig_immediate = 3}, + walkable = false, + node_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.1,0.5,-0.4,0.1} + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.15,0.5,-0.35,0.15} + } + }, + on_rotate = digicontrol.on_rotate, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, + digiline = { + wire = { + rules = function(node) + return { + digicontrol.get_rule(1, node.param2), + digicontrol.get_rule(3, node.param2) + } + end + } + } + }) + minetest.register_node(":digistuff:insulated_tjunction", { + description = "Insulated Digiline (T junction)", + tiles = { + "digistuff_insulated_full.png", + "digistuff_insulated_full.png", + "digistuff_insulated_edge.png", + "digistuff_insulated_edge.png", + "digistuff_insulated_full.png", + "digistuff_insulated_edge.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = {dig_immediate = 3}, + walkable = false, + node_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.1,0.5,-0.4,0.1}, + {-0.1,-0.5,-0.5,0.1,-0.4,-0.1} + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.5,0.5,-0.35,0.15} + } + }, + on_rotate = digicontrol.on_rotate, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, + digiline = { + receptor = {}, + wire = { + rules = function(node) + return { + digicontrol.get_rule(1, node.param2), + digicontrol.get_rule(2, node.param2), + digicontrol.get_rule(3, node.param2) + } + end + } + } + }) + minetest.register_node(":digistuff:insulated_corner", { + description = "Insulated Digiline (corner)", + tiles = { + "digistuff_insulated_full.png", + "digistuff_insulated_full.png", + "digistuff_insulated_full.png", + "digistuff_insulated_edge.png", + "digistuff_insulated_full.png", + "digistuff_insulated_edge.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = {dig_immediate = 3}, + walkable = false, + node_box = { + type = "fixed", + fixed = { + {-0.1,-0.5,-0.5,0.1,-0.4,0.1}, + {-0.5,-0.5,-0.1,0.1,-0.4,0.1} + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.5,0.15,-0.35,0.15} + } + }, + on_rotate = digicontrol.on_rotate, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, + digiline = { + receptor = {}, + wire = { + rules = function(node) + return { + digicontrol.get_rule(2, node.param2), + digicontrol.get_rule(3, node.param2) + } + end + } + } + }) + minetest.register_node(":digistuff:insulated_fourway", { + description = "Insulated Digiline (four-way junction)", + tiles = { + "digistuff_insulated_full.png", + "digistuff_insulated_full.png", + "digistuff_insulated_edge.png", + "digistuff_insulated_edge.png", + "digistuff_insulated_edge.png", + "digistuff_insulated_edge.png" + }, + paramtype = "light", + is_ground_content = false, + groups = {dig_immediate = 3}, + walkable = false, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.1,0.5,-0.4,0.1}, + {-0.1,-0.5,-0.5,0.1,-0.4,-0.1}, + {-0.1,-0.5,0.1,0.1,-0.4,0.5} + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.5,0.5,-0.35,0.5} + } + }, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, + digiline = { + wire = { + rules = digicontrol.all_rules + } + } + }) +end diff --git a/diode.lua b/diode.lua index 7bccdab..3655ec8 100644 --- a/diode.lua +++ b/diode.lua @@ -17,6 +17,9 @@ minetest.register_node("digicontrol:diode", { paramtype2 = "facedir", is_ground_content = false, groups = {digicontrol = 1, dig_immediate = 2}, + on_rotate = digicontrol.on_rotate, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, digiline = { semiconductor = { rules = function(node) diff --git a/filter.lua b/filter.lua index 7f38589..f6342ff 100644 --- a/filter.lua +++ b/filter.lua @@ -17,8 +17,11 @@ minetest.register_node("digicontrol:filter", { paramtype2 = "facedir", is_ground_content = false, groups = {digicontrol = 1, dig_immediate = 2}, + on_rotate = digicontrol.on_rotate, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, on_construct = function(pos) - minetest.get_meta(pos):set_string("formspec", "field[channel;Channel;${channel}]") + minetest.get_meta(pos):set_string("formspec", "field[channel;Digiline Channel;${channel}]") end, on_receive_fields = function(pos, _, fields, sender) if minetest.is_protected(pos, sender:get_player_name()) then return end diff --git a/init.lua b/init.lua index 00d044d..704cc58 100644 --- a/init.lua +++ b/init.lua @@ -35,12 +35,23 @@ function digicontrol.get_side(pos, from, param2) return ((facedir - param2) + 4) % 4 end +function digicontrol.on_rotate(pos, node, _, mode, new_param2) + if mode ~= 1 then return false end + node.param2 = new_param2 + minetest.swap_node(pos, node) + digilines.update_autoconnect(pos) + return true +end + local MP = minetest.get_modpath("digicontrol") -- Overrides to digilines functions dofile(MP.."/override.lua") --- Nodes +-- Compatibility for digiline_routing and digistuff +dofile(MP.."/compatibility.lua") + +-- Digicontrol nodes dofile(MP.."/diode.lua") dofile(MP.."/splitter.lua") dofile(MP.."/trisplitter.lua") diff --git a/limiter.lua b/limiter.lua index 6e7f39a..bacd841 100644 --- a/limiter.lua +++ b/limiter.lua @@ -17,6 +17,9 @@ minetest.register_node("digicontrol:limiter", { paramtype2 = "facedir", is_ground_content = false, groups = {digicontrol = 1, dig_immediate = 2}, + on_rotate = digicontrol.on_rotate, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, on_construct = function(pos) local meta = minetest.get_meta(pos) meta:set_string("formspec", "field[limit;Message Limit (messages/second);${limit}]") diff --git a/mod.conf b/mod.conf index 9c01ff8..ef84fe7 100644 --- a/mod.conf +++ b/mod.conf @@ -1,5 +1,5 @@ name = digicontrol description = Adds nodes to control the flow of digiline messages depends = default, digilines -optional_depends = digiline_routing +optional_depends = digistuff min_minetest_version = 5.0 \ No newline at end of file diff --git a/splitter.lua b/splitter.lua index 623d2ef..905d31d 100644 --- a/splitter.lua +++ b/splitter.lua @@ -17,6 +17,9 @@ minetest.register_node("digicontrol:splitter", { paramtype2 = "facedir", is_ground_content = false, groups = {digicontrol = 1, dig_immediate = 2}, + on_rotate = digicontrol.on_rotate, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, digiline = { semiconductor = { rules = function(node, pos, from) diff --git a/textures/digicontrol_trisplitter2.png b/textures/digicontrol_trisplitter2.png deleted file mode 100644 index 3d8ff5bf699c1379ae4fa2cd3dc9cf970444f2f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12530 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 diff --git a/textures/digistuff_insulated_edge.png b/textures/digistuff_insulated_edge.png new file mode 100644 index 0000000000000000000000000000000000000000..2584697164bf4e183e55600c48856ecd796a007b GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|dY&$hAr-fhBlbP>$o@ZZ!4+l~ zBZ-c1u0(?gDK--h8oXK(sDAN^r`0<429DJt47FTmB;qDUX99IHc)I$ztaD0e0sv7` B9(4c! literal 0 HcmV?d00001 diff --git a/textures/digistuff_insulated_full.png b/textures/digistuff_insulated_full.png new file mode 100644 index 0000000000000000000000000000000000000000..0c87d7583b79382a749bc563cfc76232bbb7e061 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|>Ygr+Ar-fhBlbP>$o@ZZ!4+l~ uBZ-c1u0(?gDK--h8oXK(sLnfOGQ*UkXITT*cYX$HVeoYIb6Mw<&;$U3xg7=o literal 0 HcmV?d00001 diff --git a/trisplitter.lua b/trisplitter.lua index e4774fd..45df1a7 100644 --- a/trisplitter.lua +++ b/trisplitter.lua @@ -17,6 +17,9 @@ minetest.register_node("digicontrol:trisplitter", { paramtype2 = "facedir", is_ground_content = false, groups = {digicontrol = 1, dig_immediate = 2}, + on_rotate = digicontrol.on_rotate, + after_place_node = digilines.update_autoconnect, + after_destruct = digilines.update_autoconnect, digiline = { semiconductor = { rules = function(node, pos, from)