From 7ce72287be43469af55899e30fe0f15479e3297e Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Fri, 21 Jun 2019 23:04:27 +0200 Subject: [PATCH] power line nodes added --- init.lua | 1 + power/electric_cable.lua | 7 +- power/power_line.lua | 110 ++++++++++++++++++++++++++++ textures/techage_power_line.png | Bin 0 -> 192 bytes textures/techage_power_line_inv.png | Bin 0 -> 607 bytes textures/techage_power_pole.png | Bin 0 -> 190 bytes textures/techage_power_pole_top.png | Bin 0 -> 241 bytes 7 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 power/power_line.lua create mode 100644 textures/techage_power_line.png create mode 100644 textures/techage_power_line_inv.png create mode 100644 textures/techage_power_pole.png create mode 100644 textures/techage_power_pole_top.png diff --git a/init.lua b/init.lua index 1509a4d..a261ca5 100644 --- a/init.lua +++ b/init.lua @@ -47,6 +47,7 @@ else dofile(MP.."/power/steam_pipe.lua") dofile(MP.."/power/biogas_pipe.lua") dofile(MP.."/power/electric_cable.lua") + dofile(MP.."/power/power_line.lua") dofile(MP.."/power/junctionbox.lua") dofile(MP.."/power/powerswitch.lua") diff --git a/power/electric_cable.lua b/power/electric_cable.lua index 9b24ae8..928d86d 100644 --- a/power/electric_cable.lua +++ b/power/electric_cable.lua @@ -26,9 +26,14 @@ local Cable = tubelib2.Tube:new({ max_tube_length = 1000, show_infotext = false, tube_type = "electric_cable", - primary_node_names = {"techage:electric_cableS", "techage:electric_cableA"}, + primary_node_names = {"techage:electric_cableS", "techage:electric_cableA", "techage:power_line"}, secondary_node_names = {}, after_place_tube = function(pos, param2, tube_type, num_tubes) + -- Don't replace "power line" nodes + if minetest.get_node(pos).name == "techage:power_line" then + M(pos):set_int("tl2_param2", param2) + return + end -- Don't replace "hidden" cable if M(pos):get_string("techage_hidden_nodename") == "" then minetest.swap_node(pos, {name = "techage:electric_cable"..tube_type, param2 = param2 % 32}) diff --git a/power/power_line.lua b/power/power_line.lua new file mode 100644 index 0000000..72aae46 --- /dev/null +++ b/power/power_line.lua @@ -0,0 +1,110 @@ +--[[ + + TechAge + ======= + + Copyright (C) 2019 Joachim Stolberg + + LGPLv2.1+ + See LICENSE.txt for more information + + TA3/TA4 Power line for electrical landline +]]-- + +-- for lazy programmers +local S = function(pos) if pos then return minetest.pos_to_string(pos) end end +local P = minetest.string_to_pos +local M = minetest.get_meta + +-- Load support for intllib. +local MP = minetest.get_modpath("techage") +local I,_ = dofile(MP.."/intllib.lua") + +local Cable = techage.ElectricCable + + +-- Primary techage.ElectricCable node +minetest.register_node("techage:power_line", { + description = I("TA Power Line"), + tiles = {"techage_power_line.png"}, + inventory_image = 'techage_power_line_inv.png', + after_place_node = function(pos, placer, itemstack, pointed_thing) + if not Cable:after_place_tube(pos, placer, pointed_thing) then + minetest.remove_node(pos) + return true + end + return false + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if oldmetadata and oldmetadata.fields and oldmetadata.fields.tl2_param2 then + oldnode.param2 = oldmetadata.fields.tl2_param2 + Cable:after_dig_tube(pos, oldnode) + end + end, + + paramtype2 = "facedir", -- important! + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-1/32, -1/32, -4/8, 1/32, 1/32, 4/8}, + }, + }, + selection_box = { + type = "fixed", + fixed = {-2/32, -2/32, -4/8, 2/32, 2/32, 4/8}, + }, + on_rotate = screwdriver.disallow, -- important! + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("techage:power_pole", { + description = I("TA Power Pole"), + --tiles = {"techage_power_pole.png"}, + tiles = { + "default_wood.png^techage_power_pole_top.png", + "default_wood.png^techage_power_pole_top.png", + "default_wood.png^techage_power_pole.png" + }, + + paramtype2 = "facedir", -- important! + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { -4/32, -16/32, -4/32, 4/32, 16/32, 4/32}, + {-16/32, -6/32, -1/32, 16/32, -4/32, 1/32}, + { -1/32, -6/32, -16/32, 1/32, -4/32, 16/32}, + {-16/32, -4/32, -2/32, -12/32, 4/32, 2/32}, + { 12/32, -4/32, -2/32, 16/32, 4/32, 2/32}, + { -2/32, -4/32, -16/32, 2/32, 4/32, -12/32}, + { -2/32, -4/32, 12/32, 2/32, 4/32, 16/32}, + --{ -1/32, -1/32, -4/8, 1/32, 1/32, 4/8}, + --{ -4/8, -1/32, -1/32, 4/8, 1/32, 1/32}, + }, + }, + on_rotate = screwdriver.disallow, -- important! + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky=2, crumbly=2, choppy=2}, + sounds = default.node_sound_defaults(), +}) + +techage.power.register_node({"techage:power_pole"}, { + power_network = Cable, +}) + +minetest.register_craft({ + output = "techage:power_line 24", + recipe = { + {"default:copper_ingot", "", ""}, + {"", "default:copper_ingot", ""}, + {"", "", "default:copper_ingot"}, + }, +}) diff --git a/textures/techage_power_line.png b/textures/techage_power_line.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6f606dbbad880332e271967aacb8f5a3b4aa54 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH3?%tPCZz)@mUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIICs1s;*b3=G`DAk4@xYmNj^kSD+=#MLLW&`pU=SByEyfMa&S?b9HgB|(0{ z3=Yq3qyaewo-U3d5|@(`fS@R$f#DdNMzf?|5yPnkTW5Xw^5x2Nho;1LcXobGYCOWQ cn|&D@!)qncsV2SNT|m7Ip00i_>zopr05S_U9smFU literal 0 HcmV?d00001 diff --git a/textures/techage_power_line_inv.png b/textures/techage_power_line_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..913f80d2ea175f81abafa9c020108f483cb16220 GIT binary patch literal 607 zcmV-l0-*hgP)Px#32;bRa{vGf6951U69E94oEQKA02@$DR7Euw03;6p zOlfgRAOJ2F12!oZHzEx%9SbfQ1+o#=hX4Qo33O6UQ~Lb?_}LvxeXnb>0mA?Q0k}y- zK~zY`?bW?b!!Qs4;5)gh81Dokog*b(U0GC&gsMD1BveLJis%Sw2gWu}&Yk-slGy13 zfTd*d=Zo+B6G$&K_y-q3_TCS&4LtRN9k^i+$UcpQ+a9nr0Da(N2w2N_CV(VThZTTxmVoLocmb5r@{Gczev#3@*8=82F!u4$AP$0ywLli&6wE_l zY(bl4Ls$ktK9lIoWEp50*bn2GP7n|jEW03o&_i-;fq z?7VewwxF}OA|wsT(v?l{rsdZdnxTSe^XO%G>bF`5LCY493ZVy*hUPjWM@l1R*$;IHoFb5etL_C-&^ZD)TcNS%G}U;vjb? zhIQv;UIICs1s;*b3=G`DAk4@xYmNj^kSD+=#MLLW@b%M!r%s*Py?gg&mM42aI!l85 zf*Bm1-ADs+^gLZ0LnJOICoHh7*k1j0*Y(xk|E6=aGI>cVFvst$`a0|3_0{FO%hy-$ d?<>n=XILhoam94jgf&2&44$rjF6*2Ung9-SJSPAE literal 0 HcmV?d00001 diff --git a/textures/techage_power_pole_top.png b/textures/techage_power_pole_top.png new file mode 100644 index 0000000000000000000000000000000000000000..be4b4844c7abcfbd78660c7f528f87a8507a1b63 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIICs1s;*b3=G`DAk4@xYmNj^kUzjD#MLLW@c;k+Z{IvUb?Vga-Mi=QJ$e$P zxg^Lhn8D%MjWi%9&eO#)MB{w2KnsJaszx)Tmo}H6(18m|k2>@cI@A<=c5x*-2jwO* zFvTzlm>*`DGDSk9bxtFLN