diff --git a/README.md b/README.md index 2125554..8cb10d5 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,15 @@ Required: Minetest Game ### History + +#### 2020-06-21 + +Updates (see local readme files): +- signs_bot v1.03 +- techage v0.13 +- hyperloop v2.06 + + #### 2020-06-18 - techage v0.12 diff --git a/hyperloop/README.md b/hyperloop/README.md index c613a6c..fc20f34 100644 --- a/hyperloop/README.md +++ b/hyperloop/README.md @@ -64,9 +64,9 @@ has some risks. Therefore: ## Configuration The following can be changed in the minetest menu (Settings -> Advanced Settings -> Mods -> hyperloop) or directly in 'minetest.conf' -* "WiFi block enabled" - To enable the usage of WiFi blocks -* "WiFi block crafting enabled" - To enable the crafting of WiFi blocks -* "free tube placement enabled" - If enabled Hyperloop Tubes and Elevator Shafts can be build in all directions. +* "WiFi block enabled" - To enable the usage of WiFi blocks (default: false) +* "WiFi block crafting enabled" - To enable the crafting of WiFi blocks (default: false) +* "free tube placement enabled" - If enabled Hyperloop Tubes and Elevator Shafts can be build in all directions (default: true) When this option is disabled, Hyperloop tubes can only be built in the horizontal direction and elevator shafts in the vertical direction. Example for 'minetest.conf': diff --git a/hyperloop/init.lua b/hyperloop/init.lua index 5549a38..7c5f73a 100644 --- a/hyperloop/init.lua +++ b/hyperloop/init.lua @@ -3,7 +3,7 @@ Hyperloop Mod ============= - v2.04 by JoSt + v2.06 by JoSt Copyright (C) 2017-2019 Joachim Stolberg @@ -33,6 +33,7 @@ 2019-03-23 v2.03 Elevator duplication bugfix 2020-01-03 v2.04 Elevator door bugfix (MT 5+) 2020-03-12 v2.05 minetest translator added (thanks to acmgit/Clyde) + 2020-06-14 v2.06 The default value for `hyperloop_free_tube_placement_enabled` is now true ]]-- @@ -63,7 +64,7 @@ else -- Configuration settings hyperloop.wifi_enabled = minetest.settings:get_bool("hyperloop_wifi_enabled") hyperloop.wifi_crafting_enabled = minetest.settings:get_bool("hyperloop_wifi_crafting_enabled") - hyperloop.free_tube_placement_enabled = minetest.settings:get_bool("hyperloop_free_tube_placement_enabled") + hyperloop.free_tube_placement_enabled = minetest.settings:get_bool("hyperloop_free_tube_placement_enabled", true) dofile(minetest.get_modpath("hyperloop") .. "/network.lua") dofile(minetest.get_modpath("hyperloop") .. "/data_base.lua") diff --git a/signs_bot/README.md b/signs_bot/README.md index 808d949..8c0fa79 100644 --- a/signs_bot/README.md +++ b/signs_bot/README.md @@ -166,4 +166,5 @@ optional: farming redo, node_io, doc, techage, minecart - 2020-01-02 v1.00 * bot inventory filter added, documentation enhanced - 2020-03-27 v1.01 * flower command and sign added - 2020-03-30 v1.02 * Program flow control commands added +- 2020-06-21 v1.03 * Interpreter bugfixes, node and crop sensors changed diff --git a/signs_bot/crop_sensor.lua b/signs_bot/crop_sensor.lua index bb3b89a..f2ff12d 100644 --- a/signs_bot/crop_sensor.lua +++ b/signs_bot/crop_sensor.lua @@ -46,9 +46,8 @@ local function node_timer(pos) if swap_node(pos, "signs_bot:crop_sensor_on") then signs_bot.send_signal(pos) signs_bot.lib.activate_extender_nodes(pos, true) + minetest.after(1, swap_node, pos, "signs_bot:crop_sensor") end - else - swap_node(pos, "signs_bot:crop_sensor") end return true end @@ -118,8 +117,8 @@ minetest.register_node("signs_bot:crop_sensor_on", { sunlight_propagates = true, paramtype2 = "facedir", is_ground_content = false, - diggable = false, - groups = {sign_bot_sensor = 1, not_in_creative_inventory = 1}, + drop = "signs_bot:crop_sensor", + groups = {sign_bot_sensor = 1, cracky = 1, not_in_creative_inventory = 1}, sounds = default.node_sound_metal_defaults(), }) @@ -152,7 +151,7 @@ if minetest.get_modpath("doc") then data = { item = "signs_bot:crop_sensor", text = table.concat({ - I("The Crop Sensor sends a signal when, for example wheat is fully grown."), + I("The Crop Sensor sends cyclical signals when, for example, wheat is fully grown."), I("The sensor range is one node/meter."), I("The sensor has an active side (red) that must point to the crop/field."), diff --git a/signs_bot/init.lua b/signs_bot/init.lua index 022ab12..e4bb8ec 100644 --- a/signs_bot/init.lua +++ b/signs_bot/init.lua @@ -15,7 +15,7 @@ signs_bot = {} -- Version for compatibility checks, see readme.md/history -signs_bot.version = 1.01 +signs_bot.version = 1.03 if minetest.global_exists("techage") and techage.version < 0.06 then minetest.log("error", "[signs_bot] Signs Bot requires techage version 0.06 or newer!") diff --git a/signs_bot/interpreter.lua b/signs_bot/interpreter.lua index aa83e58..5d320a1 100644 --- a/signs_bot/interpreter.lua +++ b/signs_bot/interpreter.lua @@ -49,7 +49,7 @@ local function get_line_tokens(script) while idx < #lines do idx = idx + 1 -- remove comments - local line = string.split(lines[idx], "--")[1] or "" + local line = string.split(lines[idx], "--", true, 1)[1] or "" -- remove blanks line = trim(line) if #line > 0 then @@ -255,10 +255,6 @@ function api.check_script(script) return false, I("'repeat' missing"), 0 elseif (tbl["end"] or 0) < (tbl["repeat"] or 0) then return false, I("'end' missing"), 0 - elseif (tbl["call"] or 0) > (tbl["return"] or 0) then - return false, I("'return' missing"), 0 - elseif (tbl["call"] or 0) < (tbl["return"] or 0) then - return false, I("'call' missing"), 0 end return true, I("Checked and approved"), 0 end diff --git a/signs_bot/node_sensor.lua b/signs_bot/node_sensor.lua index 0902eb8..8bb86b3 100644 --- a/signs_bot/node_sensor.lua +++ b/signs_bot/node_sensor.lua @@ -71,16 +71,12 @@ local function any_node_changed(pos) if mem.num ~= num then if mem.mode == 1 and num < mem.num then - mem.num = num return true elseif mem.mode == 2 and num > mem.num then - mem.num = num return true elseif mem.mode == 3 then - mem.num = num return true end - mem.num = num end return false end @@ -93,6 +89,9 @@ local function on_receive_fields(pos, formname, fields, player) end if fields.accept then mem.mode = DropdownValues[fields.mode] or 3 + mem.num = nil + minetest.get_node_timer(pos):start(CYCLE_TIME) + swap_node(pos, "signs_bot:node_sensor") end meta:set_string("formspec", formspec(mem)) end @@ -102,9 +101,8 @@ local function node_timer(pos) if swap_node(pos, "signs_bot:node_sensor_on") then signs_bot.send_signal(pos) signs_bot.lib.activate_extender_nodes(pos, true) + minetest.after(1, swap_node, pos, "signs_bot:node_sensor") end - else - swap_node(pos, "signs_bot:node_sensor") end return true end @@ -172,13 +170,14 @@ minetest.register_node("signs_bot:node_sensor_on", { on_timer = node_timer, update_infotext = update_infotext, + on_receive_fields = on_receive_fields, on_rotate = screwdriver.disallow, paramtype = "light", sunlight_propagates = true, paramtype2 = "facedir", is_ground_content = false, - diggable = false, - groups = {sign_bot_sensor = 1, not_in_creative_inventory = 1}, + drop = "signs_bot:node_sensor", + groups = {sign_bot_sensor = 1, cracky = 1, not_in_creative_inventory = 1}, sounds = default.node_sound_metal_defaults(), }) @@ -211,7 +210,7 @@ if minetest.get_modpath("doc") then data = { item = "signs_bot:node_sensor", text = table.concat({ - I("The node sensor can send a signal when it detects that nodes appear or disappear,"), + I("The node sensor sends cyclical signals when it detects that nodes have appeared or disappeared,"), I("but has to be configured accordingly."), I("Valid nodes are all kind of blocks and plants."), I("The sensor range is 3 nodes/meters in one direction."), diff --git a/techage/README.md b/techage/README.md index 7f30632..425d757 100644 --- a/techage/README.md +++ b/techage/README.md @@ -35,7 +35,7 @@ Textures: CC BY-SA 3.0 ### Dependencies Required: default, doors, bucket, stairs, screwdriver, basic_materials, tubelib2, minecart, lcdlib, safer_lua Recommended: signs_bot, hyperloop, compost, techpack_stairway, autobahn -Optional: unified_inventory, wielded_light, unifieddyes, lua-mashal, lsqlite3, moreores +Optional: unified_inventory, wielded_light, unifieddyes, lua-mashal, lsqlite3, moreores, ethereal, mesecon The mods `default`, `doors`, `bucket`, `stairs`, and `screwdriver` are part of Minetest Game. @@ -87,7 +87,8 @@ to 'lsqlite3' and 'lua-marshal', but there is no way back, so: - 2020-04-26 V0.07 * English translation added - 2020-05-22 V0.08 * Support for 'lua-marshal' and 'lsqlite3' added - 2020-05-31 V0.09 * TA4 tubes upgraded, manuals updated -- 2020-06-04 V0.10 * minor changes and bugfixes -- 2020-06-14 V0.11 * cart commands added for both controllers, support for moreores added -- 2020-06-17 V0.12 * Ethereal support added, manual correction, tin ingot recipe bugfix +- 2020-06-04 V0.10 * minor changes and bugfixes +- 2020-06-14 V0.11 * cart commands added for both controllers, support for moreores added +- 2020-06-17 V0.12 * Ethereal support added, manual correction, tin ingot recipe bugfix +- 2020-06-19 V0.13 * Mesecons Converter added diff --git a/techage/basis/liquid_lib.lua b/techage/basis/liquid_lib.lua index f01695c..0cd37a3 100644 --- a/techage/basis/liquid_lib.lua +++ b/techage/basis/liquid_lib.lua @@ -182,13 +182,7 @@ end local function empty_on_punch(pos, nvm, full_container, item_count) nvm.liquid = nvm.liquid or {} nvm.liquid.amount = nvm.liquid.amount or 0 - local lqd_def - -- handle legacy items - if IsLiquid[full_container] then - lqd_def = {inv_item = full_container, size = (item_count or 1), container = ""} - else - lqd_def = get_liquid_def(full_container) - end + local lqd_def = get_liquid_def(full_container) local ndef_lqd = LQD(pos) if lqd_def and ndef_lqd then local tank_size = ndef_lqd.capa or 0 diff --git a/techage/doc/items.lua b/techage/doc/items.lua index d41cec0..4261273 100644 --- a/techage/doc/items.lua +++ b/techage/doc/items.lua @@ -111,6 +111,7 @@ techage.Items = { ta3_drill_pipe_wrench = "techage:ta3_drill_pipe_wrench", ta3_pipe = "techage:ta3_pipeS", ta3_pipe_wall_entry = "techage:ta3_pipe_wall_entry", + ta3_mesecons_converter = "techage:ta3_mesecons_converter", ---------------------------- techage_ta4 = "techage_ta4.png", ta4_windturbine = "techage:ta4_wind_turbine", diff --git a/techage/doc/manual_DE.lua b/techage/doc/manual_DE.lua index 46852cc..24000cf 100644 --- a/techage/doc/manual_DE.lua +++ b/techage/doc/manual_DE.lua @@ -99,6 +99,7 @@ techage.manual_DE.aTitel = { "3,TechAge Signallampe / Signal Lamp", "3,Tür/Tor Blöcke / Door/Gate Blocks", "3,TA3 Tür Controller / Door Controller", + "3,TA3 Mesecons Umsetzer / TA3 Mesecons Converter", "2,Detektoren", "3,TA3 Detektor / Detector", "3,TA3 Wagen Detektor / Cart Detector", @@ -934,6 +935,13 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", + "Der Mesecons Umsetzer dient zur Umwandlung von Techage on/off Kommandos in Mesecons Signale und umgekehrt.\n".. + "Dazu müssen eine oder mehrere Knotennummern eingegeben und der Konverter mit Mesecons Blöcken \n".. + "über Mesecons Leitungen verbunden werden. Den Mesecons Umsetzer kann man auch mit dem Programmer konfigurieren.\n".. + "Der Mesecons Umsetzer akzeptiert bis zu 5 Kommandos pro Sekunde\\, bei höherer Belastung schaltet er sich ab.\n".. + "\n".. + "\n".. + "\n", "Detektoren scannen ihre Umgebung ab und senden ein 'on'-Kommando\\, wenn das Gesuchte erkannt wurde.\n".. "\n".. "\n".. @@ -1566,6 +1574,7 @@ techage.manual_DE.aItemName = { "ta3_signallamp", "ta3_doorblock", "ta3_doorcontroller", + "ta3_mesecons_converter", "ta3_nodedetector", "ta3_detector", "ta3_cartdetector", @@ -1771,6 +1780,7 @@ techage.manual_DE.aPlanTable = { "", "", "", + "", "ta4_windturbine", "", "", diff --git a/techage/doc/manual_EN.lua b/techage/doc/manual_EN.lua index 9fba149..147d730 100644 --- a/techage/doc/manual_EN.lua +++ b/techage/doc/manual_EN.lua @@ -99,6 +99,7 @@ techage.manual_EN.aTitel = { "3,TechAge Signal Lamp", "3,Door/Gate Blocks", "3,TA3 Door Controller", + "3,TA3 Mesecons Converter", "2,Detectors", "3,TA3 Detector", "3,TA3 Cart Detector", @@ -932,6 +933,13 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", + "The Mesecons converter is used to convert Techage on/off commands into Mesecons signals and vice versa.\n".. + "To do this\\, one or more node numbers must be entered and the converter with Mesecons blocks\n".. + "has to be connected via Mesecons cables. The Mesecons converter can also be configured with the programmer.\n".. + "The Mesecons converter accepts up to 5 commands per second\\; it switches itself off at higher loads.\n".. + "\n".. + "\n".. + "\n", "Detectors scan their surroundings and send an 'on' command when the search is recognized.\n".. "\n".. "\n".. @@ -1556,6 +1564,7 @@ techage.manual_EN.aItemName = { "ta3_signallamp", "ta3_doorblock", "ta3_doorcontroller", + "ta3_mesecons_converter", "ta3_nodedetector", "ta3_detector", "ta3_cartdetector", @@ -1761,6 +1770,7 @@ techage.manual_EN.aPlanTable = { "", "", "", + "", "ta4_windturbine", "", "", diff --git a/techage/init.lua b/techage/init.lua index eac5e3a..22fac07 100644 --- a/techage/init.lua +++ b/techage/init.lua @@ -13,7 +13,7 @@ techage = {} -- Version for compatibility checks, see readme.md/history -techage.version = 0.12 +techage.version = 0.13 if minetest.global_exists("tubelib") then minetest.log("error", "[techage] Techage can't be used together with the mod tubelib!") @@ -223,6 +223,9 @@ dofile(MP.."/logic/gateblock.lua") dofile(MP.."/logic/doorblock.lua") dofile(MP.."/logic/doorcontroller.lua") dofile(MP.."/logic/collector.lua") +if minetest.global_exists("mesecon") then + dofile(MP.."/logic/mesecons_converter.lua") +end -- Test dofile(MP.."/recipe_checker.lua") diff --git a/techage/items/baborium.lua b/techage/items/baborium.lua index 55176ea..28f3a30 100644 --- a/techage/items/baborium.lua +++ b/techage/items/baborium.lua @@ -43,8 +43,9 @@ minetest.register_ore({ y_max = -250, }) -techage.furnace.register_recipe({ +minetest.register_craft({ + type = 'cooking', output = 'techage:baborium_ingot', - recipe = {'techage:baborium_lump'}, - time = 3, -}) + recipe = 'techage:baborium_lump', + cooktime = 5, +}) \ No newline at end of file diff --git a/techage/items/hydrogen.lua b/techage/items/hydrogen.lua index a4e3826..c64c4a6 100644 --- a/techage/items/hydrogen.lua +++ b/techage/items/hydrogen.lua @@ -31,7 +31,6 @@ minetest.register_craftitem("techage:cylinder_large_hydrogen", { stack_max = 1, }) -techage.register_liquid("techage:hydrogen", "", 1, "techage:hydrogen") techage.register_liquid("techage:cylinder_small_hydrogen", "techage:ta3_cylinder_small", 1, "techage:hydrogen") techage.register_liquid("techage:cylinder_large_hydrogen", "techage:ta3_cylinder_large", 6, "techage:hydrogen") diff --git a/techage/items/oil.lua b/techage/items/oil.lua index 61828d8..a36ff1a 100644 --- a/techage/items/oil.lua +++ b/techage/items/oil.lua @@ -132,6 +132,5 @@ minetest.register_craftitem("techage:ta3_canister_oil", { }) techage.register_liquid("techage:bucket_oil", "bucket:bucket_empty", 1, "techage:oil_source") -techage.register_liquid("techage:oil_source", "", 1, "techage:oil_source") techage.register_liquid("techage:ta3_barrel_oil", "techage:ta3_barrel_empty", 10, "techage:oil_source") techage.register_liquid("techage:ta3_canister_oil", "techage:ta3_canister_empty", 1, "techage:oil_source") diff --git a/techage/locale/techage.de.tr b/techage/locale/techage.de.tr index 6187681..61e3e20 100644 --- a/techage/locale/techage.de.tr +++ b/techage/locale/techage.de.tr @@ -215,6 +215,7 @@ TA1 Melting Pot=TA1 Schmelztiegel TA1 Meridium Hammer (smash stone to gravel)=TA1 Meridiumhammer (zerschlage Stein zu Kies) TA1 Mese Hammer (smash stone to gravel)=TA1 Mesehammer (zerschlage Stein zu Kies) TA1 Steel Hammer (smash stone to gravel)=TA1 Stahlhammer (zerschlage Stein zu Kies) +TA1 Stone Hammer (smash stone to gravel)=TA1 Steinhammer (zerschlage Stein zu Kies) TA2 Boiler Base=TA2 Boiler unten TA2 Boiler Top=TA2 Boiler oben TA2 Cylinder=TA2 Zylinder @@ -261,6 +262,7 @@ TA3 Generator=TA3 Generator TA3 Gravel Sieve=TA3 Kiessieb TA3 Logic Block=TA3 Logikblock TA3 Melting=TA3 Schmelzen +TA3 Mesecons Converter=TA3 Mesecons Konverter TA3 Naphtha=TA3 Naphtha TA3 Naphtha Barrel=TA3 Naphtha-Fass TA3 Naphtha Canister=TA3 Naphtha-Kanister diff --git a/techage/locale/template.txt b/techage/locale/template.txt index c56c864..926d96b 100644 --- a/techage/locale/template.txt +++ b/techage/locale/template.txt @@ -213,6 +213,7 @@ TA1 Melting Pot= TA1 Meridium Hammer (smash stone to gravel)= TA1 Mese Hammer (smash stone to gravel)= TA1 Steel Hammer (smash stone to gravel)= +TA1 Stone Hammer (smash stone to gravel)= TA2 Boiler Base= TA2 Boiler Top= TA2 Cylinder= @@ -259,6 +260,7 @@ TA3 Generator= TA3 Gravel Sieve= TA3 Logic Block= TA3 Melting= +TA3 Mesecons Converter= TA3 Naphtha= TA3 Naphtha Barrel= TA3 Naphtha Canister= diff --git a/techage/logic/mesecons_converter.lua b/techage/logic/mesecons_converter.lua new file mode 100644 index 0000000..92ff783 --- /dev/null +++ b/techage/logic/mesecons_converter.lua @@ -0,0 +1,147 @@ +--[[ + + TechAge + ======= + + Copyright (C) 2017-2020 Joachim Stolberg + + GPL v3 + See LICENSE.txt for more information + + Mesecons converter + +]]-- + +-- for lazy programmers +local M = minetest.get_meta +local S = techage.S + +local logic = techage.logic +local OVER_LOAD_MAX = 10 +local CYCLE_TIME = 2 + +local function formspec(meta) + local numbers = meta:get_string("numbers") or "" + return "size[7.5,3]".. + "field[0.5,1;7,1;numbers;"..S("Insert destination node number(s)")..";"..numbers.."]" .. + "button_exit[2,2;3,1;exit;"..S("Save").."]" +end + +local function send_message(pos, topic) + local meta = M(pos) + local mem = techage.get_mem(pos) + mem.overload_cnt = (mem.overload_cnt or 0) + 1 + if mem.overload_cnt > OVER_LOAD_MAX then + logic.infotext(M(pos), S("TA3 Mesecons Converter"), "fault (overloaded)") + minetest.get_node_timer(pos):stop() + return false + end + local own_num = meta:get_string("node_number") + local numbers = meta:get_string("numbers") + techage.send_multi(own_num, numbers, topic) +end + +minetest.register_node("techage:ta3_mesecons_converter", { + description = S("TA3 Mesecons Converter"), + tiles = { + -- up, down, right, left, back, front + "techage_filling_ta3.png^techage_frame_ta3_top.png", + "techage_filling_ta3.png^techage_frame_ta3_top.png", + "techage_filling_ta3.png^techage_frame_ta3.png^techage_appl_mesecons_converter.png", + }, + + after_place_node = function(pos, placer) + local meta = M(pos) + local mem = techage.get_mem(pos) + logic.after_place_node(pos, placer, "techage:ta3_mesecons_converter", S("TA3 Mesecons Converter")) + logic.infotext(meta, S("TA3 Mesecons Converter")) + meta:set_string("formspec", formspec(meta)) + mem.overload_cnt = 0 + minetest.get_node_timer(pos):start(CYCLE_TIME) + mesecon.on_placenode(pos, minetest.get_node(pos)) + end, + + on_receive_fields = function(pos, formname, fields, player) + if minetest.is_protected(pos, player:get_player_name()) then + return + end + + local meta = M(pos) + if techage.check_numbers(fields.numbers, player:get_player_name()) then + meta:set_string("numbers", fields.numbers) + logic.infotext(M(pos), S("TA3 Mesecons Converter")) + meta:set_string("formspec", formspec(meta)) + end + minetest.get_node_timer(pos):start(CYCLE_TIME) + end, + + on_timer = function(pos,elapsed) + local mem = techage.get_mem(pos) + mem.overload_cnt = 0 + return true + end, + + techage_set_numbers = function(pos, numbers, player_name) + local meta = M(pos) + local res = logic.set_numbers(pos, numbers, player_name, S("TA3 Mesecons Converter")) + meta:set_string("formspec", formspec(meta)) + return res + end, + + mesecons = { + receptor = { + state = mesecon.state.off, + rules = mesecon.rules.default, + }, + effector = { + rules = mesecon.rules.default, + action_on = function(pos, node) + send_message(pos, "on") + end, + action_off = function(pos, node) + send_message(pos, "off") + end, + action_change = function(pos, node) + send_message(pos, "change") + end, + } + }, + + after_dig_node = function(pos, oldnode, oldmetadata) + techage.remove_node(pos, oldnode, oldmetadata) + techage.del_mem(pos) + mesecon.on_dignode(pos, oldnode) + end, + + paramtype2 = "facedir", + groups = {choppy=2, cracky=2, crumbly=2}, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), +}) + + +minetest.register_craft({ + output = "techage:ta3_mesecons_converter", + recipe = { + {"techage:ta3_repeater", "mesecons:wire_00000000_off"}, + }, +}) + +techage.register_node({"techage:ta3_mesecons_converter"}, { + on_recv_message = function(pos, src, topic, payload) + local mem = techage.get_mem(pos) + mem.overload_cnt = (mem.overload_cnt or 0) + 1 + if mem.overload_cnt > OVER_LOAD_MAX then + logic.infotext(M(pos), S("TA3 Mesecons Converter"), "fault (overloaded)") + minetest.get_node_timer(pos):stop() + return false + elseif topic == "on" then + mesecon.receptor_on(pos, mesecon.rules.default) + elseif topic == "off" then + mesecon.receptor_off(pos, mesecon.rules.default) + end + end, + on_node_load = function(pos) + minetest.get_node_timer(pos):start(CYCLE_TIME) + end, +}) diff --git a/techage/manuals/manual_ta3_DE.md b/techage/manuals/manual_ta3_DE.md index 7eccbc5..87f98bf 100644 --- a/techage/manuals/manual_ta3_DE.md +++ b/techage/manuals/manual_ta3_DE.md @@ -592,6 +592,14 @@ Der Tür Controller dient zur Ansteuerung der TA3 Tür/Tor Blöcke. Beim Tür Co [ta3_doorcontroller|image] +### TA3 Mesecons Umsetzer / TA3 Mesecons Converter + +Der Mesecons Umsetzer dient zur Umwandlung von Techage on/off Kommandos in Mesecons Signale und umgekehrt. +Dazu müssen eine oder mehrere Knotennummern eingegeben und der Konverter mit Mesecons Blöcken +über Mesecons Leitungen verbunden werden. Den Mesecons Umsetzer kann man auch mit dem Programmer konfigurieren. +Der Mesecons Umsetzer akzeptiert bis zu 5 Kommandos pro Sekunde, bei höherer Belastung schaltet er sich ab. + +[ta3_mesecons_converter|image] ## Detektoren diff --git a/techage/manuals/manual_ta3_EN.md b/techage/manuals/manual_ta3_EN.md index f9bc118..e3610e3 100644 --- a/techage/manuals/manual_ta3_EN.md +++ b/techage/manuals/manual_ta3_EN.md @@ -590,6 +590,16 @@ The door controller is used to control the TA3 door/gate blocks. With the door c [ta3_doorcontroller|image] +### TA3 Mesecons Converter + +The Mesecons converter is used to convert Techage on/off commands into Mesecons signals and vice versa. +To do this, one or more node numbers must be entered and the converter with Mesecons blocks +has to be connected via Mesecons cables. The Mesecons converter can also be configured with the programmer. +The Mesecons converter accepts up to 5 commands per second; it switches itself off at higher loads. + +[ta3_mesecons_converter|image] + + ## Detectors diff --git a/techage/manuals/toc_DE.md b/techage/manuals/toc_DE.md index e8c28f8..f348fd5 100644 --- a/techage/manuals/toc_DE.md +++ b/techage/manuals/toc_DE.md @@ -98,6 +98,7 @@ - [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) + - [TA3 Mesecons Umsetzer / TA3 Mesecons Converter](./manual_ta3_DE.md#ta3-mesecons-umsetzer--ta3-mesecons-converter) - [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/techage/manuals/toc_EN.md b/techage/manuals/toc_EN.md index 4efd76f..03c2002 100644 --- a/techage/manuals/toc_EN.md +++ b/techage/manuals/toc_EN.md @@ -98,6 +98,7 @@ - [TechAge Signal Lamp](./manual_ta3_EN.md#techage-signal-lamp) - [Door/Gate Blocks](./manual_ta3_EN.md#doorgate-blocks) - [TA3 Door Controller](./manual_ta3_EN.md#ta3-door-controller) + - [TA3 Mesecons Converter](./manual_ta3_EN.md#ta3-mesecons-converter) - [Detectors](./manual_ta3_EN.md#detectors) - [TA3 Detector](./manual_ta3_EN.md#ta3-detector) - [TA3 Cart Detector](./manual_ta3_EN.md#ta3-cart-detector) diff --git a/techage/mod.conf b/techage/mod.conf index 7151add..632496e 100644 --- a/techage/mod.conf +++ b/techage/mod.conf @@ -1,4 +1,4 @@ name = techage depends = default,doors,tubelib2,basic_materials,bucket,stairs,screwdriver,minecart,lcdlib,safer_lua -optional_depends = unified_inventory,wielded_light,unifieddyes,moreores, ethereal +optional_depends = unified_inventory,wielded_light,unifieddyes,moreores,ethereal,mesecon description = Techage, go through 4 tech ages in search of wealth and power! diff --git a/techage/textures/techage_appl_mesecons_converter.png b/techage/textures/techage_appl_mesecons_converter.png new file mode 100644 index 0000000..dee002e Binary files /dev/null and b/techage/textures/techage_appl_mesecons_converter.png differ