From 94389990ed38c2d734f00e81a496733db3fbb2ef Mon Sep 17 00:00:00 2001 From: Konstantin Logashenko Date: Mon, 7 Feb 2022 16:50:06 +0300 Subject: [PATCH 1/9] Implement the light detector (detects light level of the node above) --- logic/light_detector.lua | 174 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100755 logic/light_detector.lua diff --git a/logic/light_detector.lua b/logic/light_detector.lua new file mode 100755 index 0000000..400ce99 --- /dev/null +++ b/logic/light_detector.lua @@ -0,0 +1,174 @@ +--[[ + + TechAge + ======= + + Copyright (C) 2019-2020 Joachim Stolberg + + AGPL v3 + See LICENSE.txt for more information + + Light Detector + +]]-- + +-- for lazy programmers +local M = minetest.get_meta +local S = techage.S +local P2S = function(pos) if pos then return minetest.pos_to_string(pos) end end + +local logic = techage.logic +local CYCLE_TIME = 2 + +local function switch_off(pos) + local node = minetest.get_node(pos) + if node.name == "techage:ta3_lightdetector_on" then + logic.swap_node(pos, "techage:ta3_lightdetector_off") + logic.send_off(pos, M(pos)) + end +end + +local function switch_on(pos) + logic.swap_node(pos, "techage:ta3_lightdetector_on") + if logic.send_on(pos, M(pos)) then + minetest.after(1, switch_off, pos) + end +end + +local function node_timer(pos) + + local nvm = techage.get_nvm(pos) + + trigger = nvm.mode or 7 + + local pos_above = {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node_light(pos_above, nil) == nil then + switch_off(pos) + return true + end + + if minetest.get_node_light(pos_above, nil) > trigger then + switch_on(pos) + else + switch_off(pos) + end + return true +end + +local function formspec(meta, nvm) + local numbers = meta:get_string("numbers") or "" + local dropdown_label = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15" -- Has to be a cleaner way of doing this, but it's just easier this way + return "size[7.5,4]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "field[0.5,1;7,1;numbers;"..S("Insert destination node number(s)")..";"..numbers.."]" .. + "label[0.2,1.6;"..S("Send signal if light level is above:").."]".. + "dropdown[0.2,2.1;7.3,1;mode;"..dropdown_label.."; "..(nvm.mode or 7).."]".. + "button_exit[2,3.2;3,1;accept;"..S("accept").."]" +end + +local function on_receive_fields(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + + local meta = minetest.get_meta(pos) + local nvm = techage.get_nvm(pos) + + if fields.accept then + nvm.mode = tonumber(fields.mode) or 7 + if techage.check_numbers(fields.numbers, player:get_player_name()) then + meta:set_string("numbers", fields.numbers) + logic.infotext(M(pos), S("TA3 Light Detector")) + end + meta:set_string("formspec", formspec(meta, nvm)) + end +end + +local function techage_set_numbers(pos, numbers, player_name) + local meta = M(pos) + local res = logic.set_numbers(pos, numbers, player_name, S("TA3 Light Detector")) + meta:set_string("formspec", formspec(meta)) + return res +end + +local function after_dig_node(pos, oldnode, oldmetadata, digger) + techage.remove_node(pos, oldnode, oldmetadata) +end + +minetest.register_node("techage:ta3_lightdetector_off", { + description = S("TA3 Light Detector (Off)"), + tiles = { + -- up, down, right, left, back, front + "techage_filling_ta3.png^techage_frame_ta3_top.png^techage_appl_lightdetector.png", + "techage_filling_ta3.png^techage_frame_ta3_top.png", + "techage_filling_ta3.png^techage_frame_ta3_top.png^techage_appl_arrow.png^[transformR90", + }, + after_place_node = function(pos, placer) + local meta = M(pos) + local nvm = techage.get_nvm(pos) + logic.after_place_node(pos, placer, "techage:ta3_lightdetector_off", S("TA3 Light Detector")) + logic.infotext(meta, S("TA3 Light Detector")) + meta:set_string("formspec", formspec(meta, nvm)) + minetest.get_node_timer(pos):start(CYCLE_TIME) + end, + + on_receive_fields = on_receive_fields, + on_timer = node_timer, + techage_set_numbers = techage_set_numbers, + after_dig_node = after_dig_node, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("techage:ta3_lightdetector_on", { + description = "TA3 Light Detector (On)", + tiles = { + -- up, down, right, left, back, front + "techage_filling_ta3.png^techage_frame_ta3_top.png^techage_appl_lightdetector_on.png", + "techage_filling_ta3.png^techage_frame_ta3_top.png", + "techage_filling_ta3.png^techage_frame_ta3_top.png^techage_appl_arrow.png^[transformR90", + }, + on_receive_fields = on_receive_fields, + on_timer = node_timer, + techage_set_numbers = techage_set_numbers, + after_dig_node = after_dig_node, + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2, not_in_creative_inventory=1}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + drop = "techage:ta3_cartdetector_off" +}) + +minetest.register_craft({ + output = "techage:ta3_lightdetector_off", + recipe = { + {"", "group:wood", "default:glass"}, + {"", "default:copper_ingot", "techage:vacuum_tube"}, + {"", "group:wood", "default:mese_crystal"}, + }, +}) + +techage.register_node({"techage:ta3_lightdetector_off", "techage:ta3_lightdetector_on"}, { + on_recv_message = function(pos, src, topic, payload) + if topic == "state" then + local node = techage.get_node_lvm(pos) + if node.name == "techage:ta3_lightdetector_on" then + return "on" + else + return "off" + end + elseif topic == "light_level" then -- Allow finding the specific light level + local pos_above = {x = pos.x, y = pos.y + 1, z = pos.z} + return minetest.get_node_light(pos_above, nil) + else + return "unsupported" + end + end, + on_node_load = function(pos) + minetest.get_node_timer(pos):start(CYCLE_TIME) + end, +}) From 3837e5a22bb66fc0c163cb297e63b3d24ee968b7 Mon Sep 17 00:00:00 2001 From: Konstantin Logashenko Date: Mon, 7 Feb 2022 16:50:44 +0300 Subject: [PATCH 2/9] Make sure to update the init too --- init.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/init.lua b/init.lua index 7674ca0..e1da762 100644 --- a/init.lua +++ b/init.lua @@ -285,6 +285,7 @@ dofile(MP.."/logic/timer.lua") dofile(MP.."/logic/lua_logic.lua") -- old dofile(MP.."/logic/logic_block.lua") -- new dofile(MP.."/logic/node_detector.lua") +dofile(MP.."/logic/light_detector.lua") dofile(MP.."/logic/player_detector.lua") dofile(MP.."/logic/mba_detector.lua") dofile(MP.."/logic/cart_detector.lua") From 877d754c6aef951bc97cdfb55e5e9aa4f1a19665 Mon Sep 17 00:00:00 2001 From: Konstantin Logashenko Date: Mon, 7 Feb 2022 16:53:56 +0300 Subject: [PATCH 3/9] Textures for light detector --- textures/techage_appl_lightdetector.png | Bin 0 -> 1957 bytes textures/techage_appl_lightdetector_on.png | Bin 0 -> 2250 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 textures/techage_appl_lightdetector.png create mode 100755 textures/techage_appl_lightdetector_on.png diff --git a/textures/techage_appl_lightdetector.png b/textures/techage_appl_lightdetector.png new file mode 100755 index 0000000000000000000000000000000000000000..ebd2db73d2124476f2e3a80dfb34c0900a6d144c GIT binary patch literal 1957 zcmV;W2U_@vP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+T~YUw&W%Z{AU$e0+JAqrewB*CS?t{-)cz&|G+Y5$C z(8}=`=h?r)uJ-{coc8u?cd4I#^67~D)6`-!+x<9$JRJ!ib~>M3IS17Ekk0wze!9KV zdU*~BU<`#nVaHQQ{J!!rlh}`??$)jW9Z3}TENNTvkNCM8bYB2?yL-XUUy;cjj>FNF zR(!$fw3EKrXUyw9`IXhnrm!y?Xv zpW;64v*66W`VQ6xQf{)*N%nIhR}u7eN_QS7J#e zmr`oQq%~Cds_0)~XxyZQrY*MAax1NN$ft*{J@(XdFTD;PGEf5Ch$D?W%BYhjq%_0S z8E2Y#mRT3Hwq%8+E3UNiDy!aDJ6U~Z?UlLDtkKCDZ=$SUy0ZpzN|y_=a-zl=7~?=- zJQ)KJG#h6=QwVI#8E3w*I1yz;sYcEqV+;(2Nvw-*+})Xb%bNqb-{pC4+4wx@5k?z;p2!;X5WHTO7U39~H8 zNkrkg8O)k61={3G#4PHr{FDo!ud*5c46dq{2mW zpH;&QfapL2SF0@8(K_nb;k2<_bR%f@i&;Hnx1H3mP-~A_z;6i-Vo%Bt`%TFnrFlyY zqJT7(foKNvW9sA+`W{2Jj%V)$8h7I+UJYBwBe;+?xW3@Gr?S8Ul* zPI*{~s0zvTVSTRx!7;wiN9j-rlQJHUn>I=sRh+@LAfw+`6Bwg)KVB7hzN@ zEmvU*y+2h3_l*+rv2~wnjXij*Fe?sNh}Yr|rTn;KI{K|0(*MlSv4t8gD0ZmV{0Ww) z*8L0c{7)R=OSRy?``_HZHcUrhLJ9x?0fcEoLr_UWLm+T+Z)Rz1WdHzpoPCi!NW(xJ z#b48kA5;|VAmWgrI$01Eanvdlp+cw?T6HkF^b49aBq=VAf@{ISkHxBki?gl{u7V)= z0pjT7r060g{x2!Ci1FaKAMfrx?%n}Hz05Q#G!AIGZKe`&F_T>tJ6|CngfP0%FEh)S zlcXek$Jadqe7%eDEdO(Vj$SoqF(4ok&oaZbi8qL+H*JISK5>K8V^%aZ;wj>&s_B$3WIR?mZ*kVjRo1*Ge_=SMuPk$& z<}eai#1bTkP*6n)W!Q+(s*_?NMf-6d|B&mK$fc001V)YpRG>k2{osG_yIU(iIpHOR z<3PuY<9v(&ox4Dz<~ZNSj?*{+g3rK}-tt%Kz|1G;acMz~GZ1 zo3bkfX$tu~@P0<$lm!NEfu1$5x8^=hAAmG%wEwTz3P{A1|*K+n+DqOiltXfUNQYB r%+VIQ7V;*ib(>i#4#Z+uES|reF*g}iVt-bE00000NkvXXu0mjf*KeAc literal 0 HcmV?d00001 diff --git a/textures/techage_appl_lightdetector_on.png b/textures/techage_appl_lightdetector_on.png new file mode 100755 index 0000000000000000000000000000000000000000..69940331e52729819b57df016d6c50eb0c211859 GIT binary patch literal 2250 zcmV;*2sQVKP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+T~YSmgA@r{bv=u1g0QhIl**J@8B)JZvax-&U95} zz5435j*WyQh`2+5&G_Hn)BJ^xPuZGCoKs23;uA|OUT~7_{_NJ-xPI5ipIf+o>Nocd zkFJ0=?8`LH^MZc*c!A^Tuh0F4+ZiXHft-DsI_S)L-cOKcpx}4EJJ+V17bHETbH2Wv zVXw4at|J4CP8ctE<4178u3x`r3i|ayR;#}e54u1&_kmXrf5y+;(0u{mefEN%y&?-A zaO{Duw9*Ssr{B>_f4HadPZ2qP&+H!~qG^kL{5;?{XU}tvot?yF09QImU8$@yJXir| zSg$1|a+bYk=YV4dKZ3|TWM9F6BSXF;N*_Z=ASZjB8}G1N&wBE^8|4K= zP)IOI20;R{Vx*Yhw+so1p+J#{5;0{eBq^krD5by&Wd$i#`6GZ&T|a?F%d=A3iM zQhW(0V`NGyTyiNz1d~b>j3szp&{2I2HCC#ra?Q0=X^>Bgjaq8law|=`@1dgvn4UWK z+)J0?2Bb9NppgcTJj##>t<5mwq?snqJj;}uwZrN&Yp=}xm^F7;^NT2bjz3sKH}f@w z({e(}85r}?fpJy_AZV|g+3aHU%A9g$iw`CQ@`#d@obHq{Fc^pPG~LbJ2Xk+EGeGyd zy!o$~GfLf`V9qFY56pe$?F-hrta2L`LFz(aiV7KEKYdMnmO-ISt7llAzSWxVzVI&| zXi@_KHH6mYkkINF6Urhpr7N?=D*%UR(3-#y4AM zMlCd;T(sCKHJb>+oIP@>y+clj7Gmr?vCa%3V#saAoo#K{4(xL)@m5Fw>~EO z>3bELTqm^Nz0l}>ND zGK(J84^>mbC?5}I?jkGjb z7PG*_y|-4S+o>BvO|j0Vg5ebiz`F1u4mc%I@GE z)Mg+z_lgU2-om2F!|ZshwDJa;J7e?P&|H$;5DoJ^i0)FNZKvUr#$Awv2@~7r>gbkD zp-}AhsJ=kZj3PL(1ptEZX&Nf)IZ~=o03a%loHD}D$jFz3G=7)?L2fhDV+M{Z$N(?U z^1`H3aXa=X=C{_KFP0v&Yt%6(@wWIe`1(IXcUd|<%&#sCYC^MJxQm5*DQ@;I6Hnk} zu^;UPy~)RhJNABJuPb(xa&@7`KIJL&&(+D;)W3)w`gn@|#Q%fv%@zOiinCbX)fueU z&3av|M`iuZH*V$^cXnIMy8XbCT)eyL4gL<4gpxB+k48FstiJYG6Sl)YDAGL^ z&_8)o?D>;nA6xV8#&=sCXqT_B7v=gM*Syx__BE=;{-OQxe{mp`&)Ex>;(q`&Ni>%Qhp*mR*6>-!m z6rn<>6nNgNw7S4z7YA_yOYRM#hx^1QsaWRu!6+2%cAcQcw(JwR0n3JR=e8<;40(`xT@htyye~w-? zXE7ik63;Tjw23!}r#Eeb^FDEe6=jw9oOsNn3lcwaUGeyhbHQbSXGY9)YMwYkEEd{W zX=7G2HR37asH*9dFJwGcId5^+%2n39Cx2l$r>`t?o#rqSSi}+}h)_^P31!%b(W;YT zAw~OfAODc+m&m1%s{}@l1yrCxcKzUg@Vi?pKRMwgh2ucSi{pHZ0G+!)qvkl@$BxrD z0fNuKmEQ7K>cGq=>9v*?Jp%f+fs5;wrtATiJHX(RA)B%*1!)TTJn()--;@OgZh@XP zueattP9K0Yb(OpU4i16Q0%foJyt}Ktw|~zx`}+afhjMB{vkn3P000S4OjJbxz=TI| zOo0CY&A_{Q00001bW%=J06^y0W&i*H0b)x>L;#2d9Y_EG010qNS#tmYE+YT{E+YYW zr9XB6000McNliru<^lu^8wbZDF;xHn08dFoK~xyiV_+Z^aKRW_P?}=}OlAR$(Et~L zG8|Th#;;ftj-kBA~Sj2v#67;8MtnVV16fIS{6V0j7kZfn?tT Y05>-oUBF3x`2YX_07*qoM6N<$f(k`3ssI20 literal 0 HcmV?d00001 From 39cb0e150a9c5fbe1480ec9e5e135c7c9fa091a8 Mon Sep 17 00:00:00 2001 From: Konstantin Logashenko Date: Mon, 21 Feb 2022 21:29:43 +0300 Subject: [PATCH 4/9] Add documentation for light detector (only English) --- doc/items.lua | 9 ++---- doc/manual_EN.lua | 82 ++++++----------------------------------------- 2 files changed, 11 insertions(+), 80 deletions(-) diff --git a/doc/items.lua b/doc/items.lua index abad424..ea48388 100644 --- a/doc/items.lua +++ b/doc/items.lua @@ -85,7 +85,6 @@ techage.Items = { ta3_powerswitchbox = "techage:powerswitch_box", ta3_powerterminal = "techage:ta3_power_terminal", ta3_trowel = "techage:trowel", - ta3_screwdriver = "techage:screwdriver", ta3_tinygenerator = "techage:tiny_generator", ta3_akkublock = "techage:ta3_akku", ta3_furnace = "techage:ta3_furnace_pas", @@ -110,6 +109,7 @@ techage.Items = { ta3_logic = "techage:ta3_logic", ta3_nodedetector = "techage:ta3_nodedetector_off", ta3_playerdetector = "techage:ta3_playerdetector_off", + ta3_lightdetector = "techage:ta3_lightdetector_off", ta3_repeater = "techage:ta3_repeater", ta3_sequencer = "techage:ta3_sequencer", ta3_timer = "techage:ta3_timer", @@ -204,18 +204,13 @@ techage.Items = { ta4_autocrafter = "techage:ta4_autocrafter_pas", ta4_recipeblock = "techage:ta4_recipeblock", ---------------------------- - techage_ta5 = "techage:ta5_fr_nucleus", ta5_flycontroller = "techage:ta5_flycontroller", ta5_aichip = "techage:ta5_aichip", ta5_tele_pipe = "techage:ta5_tele_pipe", ta5_tele_tube = "techage:ta5_tele_tube", ta5_chest = "techage:ta5_hl_chest", ta5_tank = "techage:ta5_hl_tank", - ta5_magnet = "techage:ta5_magnet1", - ta5_pump = "techage:ta5_pump", - ta5_fr_shell = "techage:ta5_fr_shell", - ta5_fr_nucleus = "techage:ta5_fr_nucleus", - ta5_fr_controller = "techage:ta5_fr_controller_pas", + } function techage.add_manual_items(table_with_items) diff --git a/doc/manual_EN.lua b/doc/manual_EN.lua index 0abb1d6..09add7a 100644 --- a/doc/manual_EN.lua +++ b/doc/manual_EN.lua @@ -124,6 +124,7 @@ techage.manual_EN.aTitel = { "3,TA3 Cart Detector", "3,TA3 Block Detector", "3,TA3 Player Detector", + "3,TA3 Light Detector", "2,TA3 Machines", "3,TA3 Pusher", "3,TA3 Distributor", @@ -139,7 +140,6 @@ techage.manual_EN.aTitel = { "3,TechAge Programmer", "3,TechAge Trowel / Trowel", "3,TA3 drill pipe wrench", - "3,Techage Screwdriver", "1,TA4: Present", "2,Wind Turbine", "3,TA4 Wind Turbine", @@ -230,13 +230,7 @@ techage.manual_EN.aTitel = { "3,TA4 Recycler", "1,TA5: Future", "2,Energy Sources", - "3,TA5 Fusion Reactor", - "4,TA5 Fusion Reactor Magnet", - "4,TA5 Pump", - "4,TA5 Heat Exchanger", - "4,TA5 Fusion Reactor Controller", - "4,TA5 Fusion Reactor Shell", - "4,TA5 Fusion Reactor Core", + "3,TA5 Fusion Reactor (planned)", "2,Energy Storage", "3,TA5 Hybrid Storage (planned)", "2,Logic blocks", @@ -1196,6 +1190,11 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", + "The light detector turns on when the light level of the block above exceeds a level. The level can be configured from the menu of the block.\n".. + "If you have a TA4 Lua Controller, you can get the specific light level of the block by using $send_cmnd(, 'light_level').\n".. + "\n".. + "\n".. + "\n", "TA3 has the same machines as TA2\\, only these are more powerful and require electricity instead of axis drive.\n".. "Therefore\\, only the different technical data are given below.\n".. "\n".. @@ -1273,15 +1272,6 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", - "The Techage Screwdriver serves as a replacement for the normal screwdriver. It has the following functions:\n".. - "\n".. - " - Left click: turn the block to the left\n".. - " - Right click: turn the visible side of the block upwards\n".. - " - Shift + left click: save the alignment of the clicked block\n".. - " - Shift + right click: apply the saved alignment to the clicked block\n".. - "\n".. - " \n".. - "\n", "Renewable energy sources such as wind\\, sun and biofuels help you to leave the oil age. With modern technologies and intelligent machines you set out into the future.\n".. "\n".. "\n".. @@ -1998,48 +1988,7 @@ techage.manual_EN.aText = { "\n".. "\n", "", - "Nuclear fusion means the fusing of two atomic nuclei. Depending on the reaction\\, large amounts of energy can be released. Nuclear fusions\\, in which energy is released\\, take place in the form of chain reactions. They are the source of the energy of the stars\\, including our sun\\, for example. A fusion reactor converts the energy released during controlled nuclear fusion into electricity.\n".. - "\n".. - "*How ​​do fusion reactors work?*\n".. - "\n".. - "A fusion reactor works according to the classic principle of a thermal power plant: water is heated and drives a steam turbine\\, whose kinetic energy is converted into electricity by a generator.\n".. - "\n".. - "A fusion power plant initially requires a large amount of energy\\, since a plasma has to be generated. \"Plasma\" is the name given to the fourth state of matter\\, after solid\\, liquid and gaseous. This requires a lot of electricity. Only through this extreme concentration of energy does the fusion reaction ignite and the heat given off is used to generate electricity via the heat exchanger. The generator then delivers 800 ku of electricity.\n".. - "\n".. - "The plan on the right shows a section through the fusion reactor.\n".. - "\n".. - "60 experience points are required to operate the fusion reactor. The fusion reactor must be built entirely in a forceload block area.\n".. - "\n".. - "\n".. - "\n", - "A total of 60 TA5 Fusion Reactor Magnets are required to set up the fusion reactor. These form the ring in which the plasma forms. The TA5 Fusion Reactor Magnets requires power and has two ports for cooling.\n".. - "\n".. - "There are two types of magnets\\, so all sides of the magnet that face the plasma ring can also be protected with a heat shield.\n".. - "\n".. - "With the corner magnets on the inside of the ring\\, one connection side is covered (power or cooling) and can therefore not be connected. This is technically not feasible and therefore has no influence on the function of the fusion reactor. \n".. - "\n".. - "\n".. - "\n", - "The pump is required to fill the cooling circuit with isobutane. About 350 units of isobutane are required.\n".. - "\n".. - "\n".. - "\n", - "The TA5 Heat Exchanger is required to convert the heat generated in the fusion reactor first to steam and then to electricity. The Heat Exchanger itself requires 5 ku electricity. The structure is similar to the Heat Exchanger of the energy store from TA4.\n".. - "\n".. - "\n".. - "\n", - "The fusion reactor is switched on via the TA5 Fusion Reactor Controller. The cooling/Heat Exchanger must be switched on first and then the controller. It takes about 2 minutes for the reactor to start up and supply electricity. The fusion reactor and thus the controller requires 400 ku of electricity to maintain the plasma.\n".. - "\n".. - "\n".. - "\n", - "The entire reactor must be surrounded by a shell that absorbs the enormous pressure that the magnets exert on the plasma and protects the environment from radiation. Without this shell\\, the reactor cannot be started. With the TechAge Trowel\\, power cables and cooling pipes of the fusion reactor can also be integrated into the shell.\n".. - "\n".. - "\n".. - "\n", - "The core must sit in the center of the reactor. See illustration under \"TA5 Fusion Reactor\". The TechAge Trowel is also required for this.\n".. - "\n".. - "\n".. - "\n", + "", "", "", "", @@ -2235,6 +2184,7 @@ techage.manual_EN.aItemName = { "ta3_cartdetector", "ta3_nodedetector", "ta3_playerdetector", + "ta3_lightdetector", "ta3_grinder", "ta3_pusher", "ta3_distributor", @@ -2250,7 +2200,6 @@ techage.manual_EN.aItemName = { "ta3_programmer", "ta3_trowel", "ta3_drill_pipe_wrench", - "ta3_screwdriver", "techage_ta4", "", "ta4_windturbine", @@ -2342,12 +2291,6 @@ techage.manual_EN.aItemName = { "techage_ta5", "", "", - "ta5_magnet", - "ta5_pump", - "", - "ta5_fr_controller", - "ta5_fr_shell", - "ta5_fr_nucleus", "", "", "", @@ -2594,12 +2537,6 @@ techage.manual_EN.aPlanTable = { "", "", "", - "ta5_fusion_reactor", - "", - "", - "ta5_heatexchanger", - "", - "", "", "", "", @@ -2616,4 +2553,3 @@ techage.manual_EN.aPlanTable = { "", "", } - From 1306c9a0baa25ac294e8101eedca10356f5e8908 Mon Sep 17 00:00:00 2001 From: Konstantin Logashenko Date: Mon, 21 Feb 2022 21:37:07 +0300 Subject: [PATCH 5/9] Revert "Add documentation for light detector (only English)" This reverts commit 39cb0e150a9c5fbe1480ec9e5e135c7c9fa091a8. --- doc/items.lua | 9 ++++-- doc/manual_EN.lua | 82 +++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 80 insertions(+), 11 deletions(-) diff --git a/doc/items.lua b/doc/items.lua index ea48388..abad424 100644 --- a/doc/items.lua +++ b/doc/items.lua @@ -85,6 +85,7 @@ techage.Items = { ta3_powerswitchbox = "techage:powerswitch_box", ta3_powerterminal = "techage:ta3_power_terminal", ta3_trowel = "techage:trowel", + ta3_screwdriver = "techage:screwdriver", ta3_tinygenerator = "techage:tiny_generator", ta3_akkublock = "techage:ta3_akku", ta3_furnace = "techage:ta3_furnace_pas", @@ -109,7 +110,6 @@ techage.Items = { ta3_logic = "techage:ta3_logic", ta3_nodedetector = "techage:ta3_nodedetector_off", ta3_playerdetector = "techage:ta3_playerdetector_off", - ta3_lightdetector = "techage:ta3_lightdetector_off", ta3_repeater = "techage:ta3_repeater", ta3_sequencer = "techage:ta3_sequencer", ta3_timer = "techage:ta3_timer", @@ -204,13 +204,18 @@ techage.Items = { ta4_autocrafter = "techage:ta4_autocrafter_pas", ta4_recipeblock = "techage:ta4_recipeblock", ---------------------------- + techage_ta5 = "techage:ta5_fr_nucleus", ta5_flycontroller = "techage:ta5_flycontroller", ta5_aichip = "techage:ta5_aichip", ta5_tele_pipe = "techage:ta5_tele_pipe", ta5_tele_tube = "techage:ta5_tele_tube", ta5_chest = "techage:ta5_hl_chest", ta5_tank = "techage:ta5_hl_tank", - + ta5_magnet = "techage:ta5_magnet1", + ta5_pump = "techage:ta5_pump", + ta5_fr_shell = "techage:ta5_fr_shell", + ta5_fr_nucleus = "techage:ta5_fr_nucleus", + ta5_fr_controller = "techage:ta5_fr_controller_pas", } function techage.add_manual_items(table_with_items) diff --git a/doc/manual_EN.lua b/doc/manual_EN.lua index 09add7a..0abb1d6 100644 --- a/doc/manual_EN.lua +++ b/doc/manual_EN.lua @@ -124,7 +124,6 @@ techage.manual_EN.aTitel = { "3,TA3 Cart Detector", "3,TA3 Block Detector", "3,TA3 Player Detector", - "3,TA3 Light Detector", "2,TA3 Machines", "3,TA3 Pusher", "3,TA3 Distributor", @@ -140,6 +139,7 @@ techage.manual_EN.aTitel = { "3,TechAge Programmer", "3,TechAge Trowel / Trowel", "3,TA3 drill pipe wrench", + "3,Techage Screwdriver", "1,TA4: Present", "2,Wind Turbine", "3,TA4 Wind Turbine", @@ -230,7 +230,13 @@ techage.manual_EN.aTitel = { "3,TA4 Recycler", "1,TA5: Future", "2,Energy Sources", - "3,TA5 Fusion Reactor (planned)", + "3,TA5 Fusion Reactor", + "4,TA5 Fusion Reactor Magnet", + "4,TA5 Pump", + "4,TA5 Heat Exchanger", + "4,TA5 Fusion Reactor Controller", + "4,TA5 Fusion Reactor Shell", + "4,TA5 Fusion Reactor Core", "2,Energy Storage", "3,TA5 Hybrid Storage (planned)", "2,Logic blocks", @@ -1190,11 +1196,6 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", - "The light detector turns on when the light level of the block above exceeds a level. The level can be configured from the menu of the block.\n".. - "If you have a TA4 Lua Controller, you can get the specific light level of the block by using $send_cmnd(, 'light_level').\n".. - "\n".. - "\n".. - "\n", "TA3 has the same machines as TA2\\, only these are more powerful and require electricity instead of axis drive.\n".. "Therefore\\, only the different technical data are given below.\n".. "\n".. @@ -1272,6 +1273,15 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", + "The Techage Screwdriver serves as a replacement for the normal screwdriver. It has the following functions:\n".. + "\n".. + " - Left click: turn the block to the left\n".. + " - Right click: turn the visible side of the block upwards\n".. + " - Shift + left click: save the alignment of the clicked block\n".. + " - Shift + right click: apply the saved alignment to the clicked block\n".. + "\n".. + " \n".. + "\n", "Renewable energy sources such as wind\\, sun and biofuels help you to leave the oil age. With modern technologies and intelligent machines you set out into the future.\n".. "\n".. "\n".. @@ -1988,7 +1998,48 @@ techage.manual_EN.aText = { "\n".. "\n", "", - "", + "Nuclear fusion means the fusing of two atomic nuclei. Depending on the reaction\\, large amounts of energy can be released. Nuclear fusions\\, in which energy is released\\, take place in the form of chain reactions. They are the source of the energy of the stars\\, including our sun\\, for example. A fusion reactor converts the energy released during controlled nuclear fusion into electricity.\n".. + "\n".. + "*How ​​do fusion reactors work?*\n".. + "\n".. + "A fusion reactor works according to the classic principle of a thermal power plant: water is heated and drives a steam turbine\\, whose kinetic energy is converted into electricity by a generator.\n".. + "\n".. + "A fusion power plant initially requires a large amount of energy\\, since a plasma has to be generated. \"Plasma\" is the name given to the fourth state of matter\\, after solid\\, liquid and gaseous. This requires a lot of electricity. Only through this extreme concentration of energy does the fusion reaction ignite and the heat given off is used to generate electricity via the heat exchanger. The generator then delivers 800 ku of electricity.\n".. + "\n".. + "The plan on the right shows a section through the fusion reactor.\n".. + "\n".. + "60 experience points are required to operate the fusion reactor. The fusion reactor must be built entirely in a forceload block area.\n".. + "\n".. + "\n".. + "\n", + "A total of 60 TA5 Fusion Reactor Magnets are required to set up the fusion reactor. These form the ring in which the plasma forms. The TA5 Fusion Reactor Magnets requires power and has two ports for cooling.\n".. + "\n".. + "There are two types of magnets\\, so all sides of the magnet that face the plasma ring can also be protected with a heat shield.\n".. + "\n".. + "With the corner magnets on the inside of the ring\\, one connection side is covered (power or cooling) and can therefore not be connected. This is technically not feasible and therefore has no influence on the function of the fusion reactor. \n".. + "\n".. + "\n".. + "\n", + "The pump is required to fill the cooling circuit with isobutane. About 350 units of isobutane are required.\n".. + "\n".. + "\n".. + "\n", + "The TA5 Heat Exchanger is required to convert the heat generated in the fusion reactor first to steam and then to electricity. The Heat Exchanger itself requires 5 ku electricity. The structure is similar to the Heat Exchanger of the energy store from TA4.\n".. + "\n".. + "\n".. + "\n", + "The fusion reactor is switched on via the TA5 Fusion Reactor Controller. The cooling/Heat Exchanger must be switched on first and then the controller. It takes about 2 minutes for the reactor to start up and supply electricity. The fusion reactor and thus the controller requires 400 ku of electricity to maintain the plasma.\n".. + "\n".. + "\n".. + "\n", + "The entire reactor must be surrounded by a shell that absorbs the enormous pressure that the magnets exert on the plasma and protects the environment from radiation. Without this shell\\, the reactor cannot be started. With the TechAge Trowel\\, power cables and cooling pipes of the fusion reactor can also be integrated into the shell.\n".. + "\n".. + "\n".. + "\n", + "The core must sit in the center of the reactor. See illustration under \"TA5 Fusion Reactor\". The TechAge Trowel is also required for this.\n".. + "\n".. + "\n".. + "\n", "", "", "", @@ -2184,7 +2235,6 @@ techage.manual_EN.aItemName = { "ta3_cartdetector", "ta3_nodedetector", "ta3_playerdetector", - "ta3_lightdetector", "ta3_grinder", "ta3_pusher", "ta3_distributor", @@ -2200,6 +2250,7 @@ techage.manual_EN.aItemName = { "ta3_programmer", "ta3_trowel", "ta3_drill_pipe_wrench", + "ta3_screwdriver", "techage_ta4", "", "ta4_windturbine", @@ -2291,6 +2342,12 @@ techage.manual_EN.aItemName = { "techage_ta5", "", "", + "ta5_magnet", + "ta5_pump", + "", + "ta5_fr_controller", + "ta5_fr_shell", + "ta5_fr_nucleus", "", "", "", @@ -2537,6 +2594,12 @@ techage.manual_EN.aPlanTable = { "", "", "", + "ta5_fusion_reactor", + "", + "", + "ta5_heatexchanger", + "", + "", "", "", "", @@ -2553,3 +2616,4 @@ techage.manual_EN.aPlanTable = { "", "", } + From 93deeb33d660375f0db251b59e8cec5c27ae8693 Mon Sep 17 00:00:00 2001 From: Konstantin Logashenko Date: Mon, 21 Feb 2022 21:48:58 +0300 Subject: [PATCH 6/9] Add Construction Board documentation for light detector --- doc/items.lua | 1 + doc/manual_EN.lua | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/doc/items.lua b/doc/items.lua index abad424..b163cc8 100644 --- a/doc/items.lua +++ b/doc/items.lua @@ -110,6 +110,7 @@ techage.Items = { ta3_logic = "techage:ta3_logic", ta3_nodedetector = "techage:ta3_nodedetector_off", ta3_playerdetector = "techage:ta3_playerdetector_off", + ta3_lightdetector = "techage:ta3_lightdetector_off", ta3_repeater = "techage:ta3_repeater", ta3_sequencer = "techage:ta3_sequencer", ta3_timer = "techage:ta3_timer", diff --git a/doc/manual_EN.lua b/doc/manual_EN.lua index 0abb1d6..62b901b 100644 --- a/doc/manual_EN.lua +++ b/doc/manual_EN.lua @@ -124,6 +124,7 @@ techage.manual_EN.aTitel = { "3,TA3 Cart Detector", "3,TA3 Block Detector", "3,TA3 Player Detector", + "3,TA3 Light Detector" "2,TA3 Machines", "3,TA3 Pusher", "3,TA3 Distributor", @@ -1196,6 +1197,11 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", + "The light detector sends an 'on' command if the light level above it exceeds a certain level, which can be set in the right-click menu of the block.\n".. + "If you have a TA4 Lua controller, you can get the exact light level by getting the block's 'light_level' property.\n".. + "\n".. + "\n".. + "\n", "TA3 has the same machines as TA2\\, only these are more powerful and require electricity instead of axis drive.\n".. "Therefore\\, only the different technical data are given below.\n".. "\n".. @@ -2235,6 +2241,7 @@ techage.manual_EN.aItemName = { "ta3_cartdetector", "ta3_nodedetector", "ta3_playerdetector", + "ta3_lightdetector", "ta3_grinder", "ta3_pusher", "ta3_distributor", @@ -2505,6 +2512,7 @@ techage.manual_EN.aPlanTable = { "", "", "", + "", "ta4_windturbine", "", "", From 598b0b9b11de01a612d21de8bba32da2e575ad8e Mon Sep 17 00:00:00 2001 From: Konstantin Logashenko Date: Tue, 22 Feb 2022 11:33:52 +0300 Subject: [PATCH 7/9] Revert "Add Construction Board documentation for light detector" This reverts commit 93deeb33d660375f0db251b59e8cec5c27ae8693. Revert manual documentation, to add automatically generated one instead --- doc/items.lua | 1 - doc/manual_EN.lua | 8 -------- 2 files changed, 9 deletions(-) diff --git a/doc/items.lua b/doc/items.lua index b163cc8..abad424 100644 --- a/doc/items.lua +++ b/doc/items.lua @@ -110,7 +110,6 @@ techage.Items = { ta3_logic = "techage:ta3_logic", ta3_nodedetector = "techage:ta3_nodedetector_off", ta3_playerdetector = "techage:ta3_playerdetector_off", - ta3_lightdetector = "techage:ta3_lightdetector_off", ta3_repeater = "techage:ta3_repeater", ta3_sequencer = "techage:ta3_sequencer", ta3_timer = "techage:ta3_timer", diff --git a/doc/manual_EN.lua b/doc/manual_EN.lua index 62b901b..0abb1d6 100644 --- a/doc/manual_EN.lua +++ b/doc/manual_EN.lua @@ -124,7 +124,6 @@ techage.manual_EN.aTitel = { "3,TA3 Cart Detector", "3,TA3 Block Detector", "3,TA3 Player Detector", - "3,TA3 Light Detector" "2,TA3 Machines", "3,TA3 Pusher", "3,TA3 Distributor", @@ -1197,11 +1196,6 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", - "The light detector sends an 'on' command if the light level above it exceeds a certain level, which can be set in the right-click menu of the block.\n".. - "If you have a TA4 Lua controller, you can get the exact light level by getting the block's 'light_level' property.\n".. - "\n".. - "\n".. - "\n", "TA3 has the same machines as TA2\\, only these are more powerful and require electricity instead of axis drive.\n".. "Therefore\\, only the different technical data are given below.\n".. "\n".. @@ -2241,7 +2235,6 @@ techage.manual_EN.aItemName = { "ta3_cartdetector", "ta3_nodedetector", "ta3_playerdetector", - "ta3_lightdetector", "ta3_grinder", "ta3_pusher", "ta3_distributor", @@ -2512,7 +2505,6 @@ techage.manual_EN.aPlanTable = { "", "", "", - "", "ta4_windturbine", "", "", From dfa9f2c7cbed929405f72c44a552144fe5542b12 Mon Sep 17 00:00:00 2001 From: Konstantin Logashenko Date: Tue, 22 Feb 2022 11:50:35 +0300 Subject: [PATCH 8/9] Update md manual file for light detector (lua file not generated) and add item entry to doc/items.lua --- doc/items.lua | 1 + manuals/manual_ta3_EN.md | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/doc/items.lua b/doc/items.lua index abad424..b163cc8 100644 --- a/doc/items.lua +++ b/doc/items.lua @@ -110,6 +110,7 @@ techage.Items = { ta3_logic = "techage:ta3_logic", ta3_nodedetector = "techage:ta3_nodedetector_off", ta3_playerdetector = "techage:ta3_playerdetector_off", + ta3_lightdetector = "techage:ta3_lightdetector_off", ta3_repeater = "techage:ta3_repeater", ta3_sequencer = "techage:ta3_sequencer", ta3_timer = "techage:ta3_timer", diff --git a/manuals/manual_ta3_EN.md b/manuals/manual_ta3_EN.md index b24434c..1226097 100644 --- a/manuals/manual_ta3_EN.md +++ b/manuals/manual_ta3_EN.md @@ -730,6 +730,12 @@ If the search should be limited to specific players, these player names can also [ta3_playerdetector|image] +### TA3 Light Detector + +The light detector sends an `on` command if the light level of the block above exceeds a certain level, which can be set through the right-click menu. +If you have a TA4 Lua Controller, you can get the exact light level with $get_cmd(num, 'light_level') + +[ta3_lightdetector|image] ## TA3 Machines From e3cdb47f9efa00e1db17e28673e61dbf89adce6a Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Wed, 23 Feb 2022 19:01:38 +0100 Subject: [PATCH 9/9] Add German translation --- doc/manual_DE.lua | 8 ++++++++ doc/manual_EN.lua | 8 ++++++++ locale/techage.de.tr | 7 +++++++ locale/template.txt | 7 +++++++ logic/light_detector.lua | 2 +- manuals/manual_ta3_DE.md | 8 ++++++++ manuals/toc_DE.md | 1 + manuals/toc_EN.md | 1 + 8 files changed, 41 insertions(+), 1 deletion(-) diff --git a/doc/manual_DE.lua b/doc/manual_DE.lua index 0ea121b..ac4f9e6 100644 --- a/doc/manual_DE.lua +++ b/doc/manual_DE.lua @@ -124,6 +124,7 @@ techage.manual_DE.aTitel = { "3,TA3 Wagen Detektor / Cart Detector", "3,TA3 Block Detektor / Node Detector", "3,TA3 Spieler Detektor / Player Detector", + "3,TA3 Lichtdetektor", "2,TA3 Maschinen", "3,TA3 Schieber / Pusher", "3,TA3 Verteiler / Distributor", @@ -1198,6 +1199,11 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", + "Der Lichtdetektor sendet einen 'on'-Kommando\\, wenn der Lichtpegel des darüber liegenden Blocks einen bestimmten Pegel überschreitet\\, der über das Rechtsklickmenü eingestellt werden kann.\n".. + "Mit einen TA4 Lua Controller kann die genaue Lichtstärke mit $get_cmd(num\\, 'light_level') ermitteln werden.\n".. + "\n".. + "\n".. + "\n", "Bei TA3 existieren die gleichen Maschinen wie bei TA2\\, nur sind diese hier leistungsfähiger und benötigen Strom statt Achsenantrieb.\n".. "Im folgenden sind daher nur die unterschiedlichen\\, technischen Daten angegeben.\n".. "\n".. @@ -2240,6 +2246,7 @@ techage.manual_DE.aItemName = { "ta3_cartdetector", "ta3_nodedetector", "ta3_playerdetector", + "ta3_lightdetector", "ta3_grinder", "ta3_pusher", "ta3_distributor", @@ -2511,6 +2518,7 @@ techage.manual_DE.aPlanTable = { "", "", "", + "", "ta4_windturbine", "", "", diff --git a/doc/manual_EN.lua b/doc/manual_EN.lua index 0abb1d6..06a3856 100644 --- a/doc/manual_EN.lua +++ b/doc/manual_EN.lua @@ -124,6 +124,7 @@ techage.manual_EN.aTitel = { "3,TA3 Cart Detector", "3,TA3 Block Detector", "3,TA3 Player Detector", + "3,TA3 Light Detector", "2,TA3 Machines", "3,TA3 Pusher", "3,TA3 Distributor", @@ -1196,6 +1197,11 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", + "The light detector sends an 'on' command if the light level of the block above exceeds a certain level\\, which can be set through the right-click menu.\n".. + "If you have a TA4 Lua Controller\\, you can get the exact light level with $get_cmd(num\\, 'light_level')\n".. + "\n".. + "\n".. + "\n", "TA3 has the same machines as TA2\\, only these are more powerful and require electricity instead of axis drive.\n".. "Therefore\\, only the different technical data are given below.\n".. "\n".. @@ -2235,6 +2241,7 @@ techage.manual_EN.aItemName = { "ta3_cartdetector", "ta3_nodedetector", "ta3_playerdetector", + "ta3_lightdetector", "ta3_grinder", "ta3_pusher", "ta3_distributor", @@ -2505,6 +2512,7 @@ techage.manual_EN.aPlanTable = { "", "", "", + "", "ta4_windturbine", "", "", diff --git a/locale/techage.de.tr b/locale/techage.de.tr index b59c664..6ce7269 100644 --- a/locale/techage.de.tr +++ b/locale/techage.de.tr @@ -127,6 +127,7 @@ Command=Kommando ### button.lua ### ### cart_detector.lua ### ### detector.lua ### +### light_detector.lua ### ### lua_logic.lua ### ### mesecons_converter.lua ### ### node_detector.lua ### @@ -178,6 +179,7 @@ TA4 4x Button=TA4 4x Taster TA3 Cart Detector=TA3 Wagen Detektor ### cart_detector.lua ### +### light_detector.lua ### ### node_detector.lua ### accept=akzeptieren @@ -732,6 +734,11 @@ Block has an@nadditional wrench menu=Block besitzt ein@nzusätzliches@nSchrauben connected with=verbunden mit +### light_detector.lua ### + +Send signal if light level is above:=Sende ein Signal wenn der Lichtwert größer ist als: +TA3 Light Detector=TA3 Lichtdetektor + ### lighter.lua ### TA1 Lighter=TA1 Anzünder diff --git a/locale/template.txt b/locale/template.txt index 63384bd..6067446 100644 --- a/locale/template.txt +++ b/locale/template.txt @@ -127,6 +127,7 @@ Command= ### button.lua ### ### cart_detector.lua ### ### detector.lua ### +### light_detector.lua ### ### lua_logic.lua ### ### mesecons_converter.lua ### ### node_detector.lua ### @@ -178,6 +179,7 @@ TA4 4x Button= TA3 Cart Detector= ### cart_detector.lua ### +### light_detector.lua ### ### node_detector.lua ### accept= @@ -732,6 +734,11 @@ Block has an@nadditional wrench menu= connected with= +### light_detector.lua ### + +Send signal if light level is above:= +TA3 Light Detector= + ### lighter.lua ### TA1 Lighter= diff --git a/logic/light_detector.lua b/logic/light_detector.lua index 400ce99..7105b8a 100755 --- a/logic/light_detector.lua +++ b/logic/light_detector.lua @@ -98,7 +98,7 @@ local function after_dig_node(pos, oldnode, oldmetadata, digger) end minetest.register_node("techage:ta3_lightdetector_off", { - description = S("TA3 Light Detector (Off)"), + description = S("TA3 Light Detector"), tiles = { -- up, down, right, left, back, front "techage_filling_ta3.png^techage_frame_ta3_top.png^techage_appl_lightdetector.png", diff --git a/manuals/manual_ta3_DE.md b/manuals/manual_ta3_DE.md index e44f9f7..5902650 100644 --- a/manuals/manual_ta3_DE.md +++ b/manuals/manual_ta3_DE.md @@ -737,6 +737,14 @@ Soll die Suche auf bestimmte Spieler eingegrenzt werden, so können diese Spiele [ta3_playerdetector|image] +### TA3 Lichtdetektor + +Der Lichtdetektor sendet einen `on`-Kommando, wenn der Lichtpegel des darüber liegenden Blocks einen bestimmten Pegel überschreitet, der über das Rechtsklickmenü eingestellt werden kann. +Mit einen TA4 Lua Controller kann die genaue Lichtstärke mit $get_cmd(num, 'light_level') ermitteln werden. + +[ta3_lightdetector|image] + + ## TA3 Maschinen Bei TA3 existieren die gleichen Maschinen wie bei TA2, nur sind diese hier leistungsfähiger und benötigen Strom statt Achsenantrieb. diff --git a/manuals/toc_DE.md b/manuals/toc_DE.md index 36fc807..7d02fb9 100644 --- a/manuals/toc_DE.md +++ b/manuals/toc_DE.md @@ -123,6 +123,7 @@ - [TA3 Wagen Detektor / Cart Detector](./manual_ta3_DE.md#ta3-wagen-detektor--cart-detector) - [TA3 Block Detektor / Node Detector](./manual_ta3_DE.md#ta3-block-detektor--node-detector) - [TA3 Spieler Detektor / Player Detector](./manual_ta3_DE.md#ta3-spieler-detektor--player-detector) + - [TA3 Lichtdetektor](./manual_ta3_DE.md#ta3-lichtdetektor) - [TA3 Maschinen](./manual_ta3_DE.md#ta3-maschinen) - [TA3 Schieber / Pusher](./manual_ta3_DE.md#ta3-schieber--pusher) - [TA3 Verteiler / Distributor](./manual_ta3_DE.md#ta3-verteiler--distributor) diff --git a/manuals/toc_EN.md b/manuals/toc_EN.md index 705a0a2..bb5becf 100644 --- a/manuals/toc_EN.md +++ b/manuals/toc_EN.md @@ -123,6 +123,7 @@ - [TA3 Cart Detector](./manual_ta3_EN.md#ta3-cart-detector) - [TA3 Block Detector](./manual_ta3_EN.md#ta3-block-detector) - [TA3 Player Detector](./manual_ta3_EN.md#ta3-player-detector) + - [TA3 Light Detector](./manual_ta3_EN.md#ta3-light-detector) - [TA3 Machines](./manual_ta3_EN.md#ta3-machines) - [TA3 Pusher](./manual_ta3_EN.md#ta3-pusher) - [TA3 Distributor](./manual_ta3_EN.md#ta3-distributor)