diff --git a/doc/items.lua b/doc/items.lua index b752186..7e815dd 100644 --- a/doc/items.lua +++ b/doc/items.lua @@ -104,6 +104,7 @@ techage.Items = { ta3_signallamp = "techage:signal_lamp_off", ta3_doorblock = "techage:doorblock20", ta3_programmer = "techage:programmer", + ta3_doorcontroller = "techage:ta3_doorcontroller", ---------------------------- techage_ta4 = "techage_ta4.png", ta4_windturbine = "techage:ta4_wind_turbine", diff --git a/doc/manual_DE.lua b/doc/manual_DE.lua index 90ad74a..68bca64 100644 --- a/doc/manual_DE.lua +++ b/doc/manual_DE.lua @@ -91,6 +91,7 @@ techage.manual_DE.aTitel = { "3,TA3 Terminal", "3,TechAge Signallampe / Signal Lamp", "3,Tür/Tor Blöcke / Door/Gate Blocks", + "3,TA3 Tür Controller / Door Controller", "2,Detektoren", "3,TA3 Detektor / Detector", "3,TA3 Wagen Detektor / Cart Detector", @@ -864,9 +865,14 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", - "Diese Blöcke kann man mit einem 'off' Kommando verschwinden lassen und mit dem 'on' Kommando wieder hervor zaubern.\n".. + "Mit diese Blöcken kann man Türe und Tore realisieren\\, die über Kommandos geöffnet (Blöcke verschwinden) und wieder geschlossen werden können. Pro Tor oder Tür wird dazu ein Tür Controller benötigt. \n".. + "\n".. "Das Aussehen der Blöcke kann über das Block-Menü eingestellt werden.\n".. - "Damit lassen sich Geheimtüren realisieren\\, die sich nur bei bestimmten Spielern öffnen (mit Hilfe des Spieler-Detektors).\n".. + "Damit lassen sich Geheimtüren realisieren\\, die sich nur bei bestimmten Spielern öffnen (mit Hilfe des Spieler-Detektors). \n".. + "\n".. + "\n".. + "\n", + "Der Tür Controller dient zur Ansteuerung der TA3 Tür/Tor Blöcke. Beim Tür Controller müssen die Nummern der Tür/Tor Blöcke eingegeben werden. Wird ein 'on'/'off' Kommando Kommando an den Tür Controller gesendet\\, öffnet/schließt dieser die Tür bzw. das Tor.\n".. "\n".. "\n".. "\n", @@ -1401,6 +1407,7 @@ techage.manual_DE.aItemName = { "ta3_terminal", "ta3_signallamp", "ta3_doorblock", + "ta3_doorcontroller", "ta3_nodedetector", "ta3_detector", "ta3_cartdetector", @@ -1587,6 +1594,7 @@ techage.manual_DE.aPlanTable = { "", "", "", + "", "ta4_windturbine", "", "", diff --git a/init.lua b/init.lua index c915043..9c9df82 100644 --- a/init.lua +++ b/init.lua @@ -176,6 +176,7 @@ else dofile(MP.."/logic/cart_detector.lua") dofile(MP.."/logic/gateblock.lua") dofile(MP.."/logic/doorblock.lua") + dofile(MP.."/logic/doorcontroller.lua") dofile(MP.."/logic/collector.lua") -- Test diff --git a/locale/techage.de.tr b/locale/techage.de.tr index 8782277..eccc348 100644 --- a/locale/techage.de.tr +++ b/locale/techage.de.tr @@ -75,6 +75,7 @@ Hydrogen Cylinder Large=Wasserstoffflasche groß Hydrogen Cylinder Small=Wasserstoffflasche klein In use:=In Benutzung: Insert destination node number(s)=Gebe Zielnummer(n) ein +Insert door/gate block number(s)=Gebe Tür-/Tornummer(n) ein Inverter=Wechselrichter Leave Powder=Laub Pulver Liquid Filler=Einfülltrichter @@ -215,6 +216,7 @@ TA3 Distillation Tower 2=TA3 Destillationsturm 2 TA3 Distillation Tower 3=TA3 Destillationsturm 3 TA3 Distillation Tower 4=TA3 Destillationsturm 4 TA3 Distillation Tower Base=TA3 Destillationsturm Basis +TA3 Door Controller=TA3 Tür Controller TA3 Drill Bit=TA3 Bohrgestänge TA3 Ele Fab=TA3 E-Fabrik TA3 Fuel Oil=TA3 Schweröl diff --git a/locale/template.txt b/locale/template.txt index 508b9a8..4fbae80 100644 --- a/locale/template.txt +++ b/locale/template.txt @@ -73,6 +73,7 @@ Hydrogen Cylinder Large= Hydrogen Cylinder Small= In use:= Insert destination node number(s)= +Insert door/gate block number(s)= Inverter= Leave Powder= Liquid Filler= @@ -213,6 +214,7 @@ TA3 Distillation Tower 2= TA3 Distillation Tower 3= TA3 Distillation Tower 4= TA3 Distillation Tower Base= +TA3 Door Controller= TA3 Drill Bit= TA3 Ele Fab= TA3 Fuel Oil= diff --git a/logic/doorblock.lua b/logic/doorblock.lua index 32e77fa..721d819 100644 --- a/logic/doorblock.lua +++ b/logic/doorblock.lua @@ -12,6 +12,7 @@ ]]-- +local M = minetest.get_meta local S = techage.S -- See also gateblock!!! @@ -52,19 +53,12 @@ for idx,pgn in ipairs(tPgns) do node_box = { type = "fixed", fixed = { - { -8/16, -8/16, -2/16, 8/16, 8/16, 2/16}, + { -8/16, -8/16, -1/16, 8/16, 8/16, 1/16}, }, }, after_place_node = function(pos, placer) - local nvm = techage.get_nvm(pos) - local meta = minetest.get_meta(pos) - local node = minetest.get_node(pos) - local number = techage.add_node(pos, "techage:doorblock"..idx) - nvm.facedir = node.param2 - meta:set_string("node_number", number) - meta:set_string("infotext", S("TechAge Door Block").." "..number) - meta:set_string("formspec", "size[3,2]".. + M(pos):set_string("formspec", "size[3,2]".. "label[0,0;Select texture]".. "dropdown[0,0.5;3;type;"..sTextures..";"..NUM_TEXTURES.."]".. "button_exit[0.5,1.5;2,1;exit;Save]") @@ -73,23 +67,21 @@ for idx,pgn in ipairs(tPgns) do on_receive_fields = function(pos, formname, fields, player) local meta = minetest.get_meta(pos) local node = minetest.get_node(pos) - local nvm = techage.get_nvm(pos) if fields.type then node.name = "techage:doorblock"..tTextures[fields.type] minetest.swap_node(pos, node) - nvm.name = node.name end if fields.exit then meta:set_string("formspec", nil) + local number = techage.add_node(pos, node.name) + meta:set_string("infotext", S("TechAge Door Block").." "..number) end end, - after_dig_node = function(pos, oldnode, oldmetadata) + after_dig_node = function(pos) techage.remove_node(pos) - techage.del_mem(pos) end, - --drawtype = "glasslike", paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, @@ -97,27 +89,15 @@ for idx,pgn in ipairs(tPgns) do groups = {cracky=2, choppy=2, crumbly=2, not_in_creative_inventory = idx==NUM_TEXTURES and 0 or 1}, is_ground_content = false, drop = "techage:doorblock"..NUM_TEXTURES, - }) - - techage.register_node({"techage:doorblock"..idx}, { - on_recv_message = function(pos, src, topic, payload) - if topic == "on" then - minetest.remove_node(pos) - elseif topic == "off" then - local nvm = techage.get_nvm(pos) - nvm.facedir = nvm.facedir or 0 - nvm.name = nvm.name or "techage:doorblock"..NUM_TEXTURES - minetest.add_node(pos, {name = nvm.name, paramtype2 = "facedir", param2 = nvm.facedir}) - end - end, - }) + }, + techage.register_node({"techage:doorblock"..idx}, {})) end minetest.register_craft({ output = "techage:doorblock"..NUM_TEXTURES, recipe = { + {"techage:basalt_glass_thin", "", ""}, {"default:mese_crystal_fragment", "",""}, - {"techage:vacuum_tube", "", ""}, {"group:wood", "", ""}, }, }) diff --git a/logic/gateblock.lua b/logic/gateblock.lua index 3c24324..00720ba 100644 --- a/logic/gateblock.lua +++ b/logic/gateblock.lua @@ -12,6 +12,7 @@ ]]-- +local M = minetest.get_meta local S = techage.S -- See also doorblock!!! @@ -41,13 +42,9 @@ for idx,pgn in ipairs(tPgns) do minetest.register_node("techage:gateblock"..idx, { description = S("TechAge Gate Block"), tiles = {pgn}, + drawtype = "glasslike", after_place_node = function(pos, placer) - local meta = minetest.get_meta(pos) - local node = minetest.get_node(pos) - local number = techage.add_node(pos, "techage:gateblock"..idx) - meta:set_string("node_number", number) - meta:set_string("infotext", S("TechAge Gate Block").." "..number) - meta:set_string("formspec", "size[3,2]".. + M(pos):set_string("formspec", "size[3,2]".. "label[0,0;Select texture]".. "dropdown[0,0.5;3;type;"..sTextures..";"..NUM_TEXTURES.."]".. "button_exit[0.5,1.5;2,1;exit;Save]") @@ -59,49 +56,36 @@ for idx,pgn in ipairs(tPgns) do if fields.type then node.name = "techage:gateblock"..tTextures[fields.type] minetest.swap_node(pos, node) - techage.add_node(pos, node.name) end if fields.exit then meta:set_string("formspec", nil) + print(node.name) + local number = techage.add_node(pos, node.name) + meta:set_string("infotext", S("TechAge Gate Block").." "..number) end end, after_dig_node = function(pos) techage.remove_node(pos) - tubelib2.del_mem(pos) end, paramtype = "light", - drawtype = "glasslike", paramtype2 = "facedir", + sunlight_propagates = true, sounds = default.node_sound_stone_defaults(), groups = {cracky=2, choppy=2, crumbly=2, not_in_creative_inventory = idx==NUM_TEXTURES and 0 or 1}, is_ground_content = false, drop = "techage:gateblock"..NUM_TEXTURES, - }) - - techage.register_node({"techage:gateblock"..idx}, { - on_recv_message = function(pos, src, topic, payload) - local node = minetest.get_node(pos) - if topic == "on" then - minetest.remove_node(pos) - elseif topic == "off" then - local num = techage.get_node_number(pos) - local info = techage.get_node_info(num) - if info then - minetest.add_node(pos, {name=info.name}) - end - end - end, - }) + }, + techage.register_node({"techage:gateblock"..idx}, {})) end minetest.register_craft({ output = "techage:gateblock"..NUM_TEXTURES, recipe = { - {"group:wood", "", ""}, - {"techage:vacuum_tube", "", ""}, + {"techage:basalt_glass", "", ""}, {"default:mese_crystal_fragment", "",""}, + {"group:wood", "", ""}, }, }) diff --git a/manuals/manual_ta3_DE.md b/manuals/manual_ta3_DE.md index de8a829..5206955 100644 --- a/manuals/manual_ta3_DE.md +++ b/manuals/manual_ta3_DE.md @@ -531,14 +531,23 @@ kann mit der Spritzpistole farbig gemacht werden. ### Tür/Tor Blöcke / Door/Gate Blocks -Diese Blöcke kann man mit einem `off` Kommando verschwinden lassen und mit dem `on` Kommando wieder hervor zaubern. +Mit diese Blöcken kann man Türe und Tore realisieren, die über Kommandos geöffnet (Blöcke verschwinden) und wieder geschlossen werden können. Pro Tor oder Tür wird dazu ein Tür Controller benötigt. + Das Aussehen der Blöcke kann über das Block-Menü eingestellt werden. -Damit lassen sich Geheimtüren realisieren, die sich nur bei bestimmten Spielern öffnen (mit Hilfe des Spieler-Detektors). +Damit lassen sich Geheimtüren realisieren, die sich nur bei bestimmten Spielern öffnen (mit Hilfe des Spieler-Detektors). [ta3_doorblock|image] +### TA3 Tür Controller / Door Controller + +Der Tür Controller dient zur Ansteuerung der TA3 Tür/Tor Blöcke. Beim Tür Controller müssen die Nummern der Tür/Tor Blöcke eingegeben werden. Wird ein `on`/`off` Kommando Kommando an den Tür Controller gesendet, öffnet/schließt dieser die Tür bzw. das Tor. + +[ta3_doorcontroller|image] + + + ## Detektoren Detektoren scannen ihre Umgebung ab und senden ein `on`-Kommando, wenn das Gesuchte erkannt wurde. diff --git a/manuals/ta4_lua_controller_EN.pdf b/manuals/ta4_lua_controller_EN.pdf index c4bb308..e5d63d4 100644 Binary files a/manuals/ta4_lua_controller_EN.pdf and b/manuals/ta4_lua_controller_EN.pdf differ diff --git a/manuals/toc_DE.md b/manuals/toc_DE.md index fe56e09..391056c 100644 --- a/manuals/toc_DE.md +++ b/manuals/toc_DE.md @@ -90,6 +90,7 @@ - [TA3 Terminal](./manual_ta3_DE.md#ta3-terminal) - [TechAge Signallampe / Signal Lamp](./manual_ta3_DE.md#techage-signallampe--signal-lamp) - [Tür/Tor Blöcke / Door/Gate Blocks](./manual_ta3_DE.md#türtor-blöcke--doorgate-blocks) + - [TA3 Tür Controller / Door Controller](./manual_ta3_DE.md#ta3-tür-controller--door-controller) - [Detektoren](./manual_ta3_DE.md#detektoren) - [TA3 Detektor / Detector](./manual_ta3_DE.md#ta3-detektor--detector) - [TA3 Wagen Detektor / Cart Detector](./manual_ta3_DE.md#ta3-wagen-detektor--cart-detector) diff --git a/textures/techage_appl_doorcontroller.png b/textures/techage_appl_doorcontroller.png new file mode 100644 index 0000000..7013aa3 Binary files /dev/null and b/textures/techage_appl_doorcontroller.png differ