Add TA3 Command Converter and TA4 Gaze Sensor

This commit is contained in:
Joachim Stolberg 2023-06-08 21:09:27 +02:00
parent 4b164afca3
commit d758751ee0
17 changed files with 141 additions and 9 deletions

View File

@ -307,3 +307,8 @@ function techage.menu.eval_input(pos, form_def, fields, player_name)
end
return fields.refresh or fields.save or fields.key_enter_field
end
function techage.dropdown_index(sChoices, selected_value)
local l = sChoices:split(",")
return index(l, selected_value) or 1
end

View File

@ -126,6 +126,7 @@ techage.Items = {
ta3_valve = "techage:ta3_valve_closed",
ta3_motor = "techage:ta3_motor_off",
ta3_injector = "techage:ta3_injector_pas",
ta3_command_converter = "techage:ta3_command_converter_off",
----------------------------
techage_ta4 = "techage_ta4.png",
techage_ta4c = "techage_ta4c.png",
@ -205,6 +206,7 @@ techage.Items = {
ta4_autocrafter = "techage:ta4_autocrafter_pas",
ta4_recipeblock = "techage:ta4_recipeblock",
ta4_chargedetector = "techage:ta4_chargedetector_off",
ta4_gaze_sensor = "techage:ta4_gaze_sensor_off",
----------------------------
techage_ta5 = "techage:ta5_fr_nucleus",
ta5_flycontroller = "techage:ta5_flycontroller",

View File

@ -107,6 +107,7 @@ techage.manual_DE.aTitel = {
"4,Aufkocher / reboiler)",
"2,Logik-/Schalt-Blöcke",
"3,TA3 Taster/Schalter / Button/Switch",
"3,TA3 Kommando Konverter / Command Converter",
"3,TA3 Logikblock / Logic Block",
"3,TA3 Wiederholer / Repeater",
"3,TA3 Sequenzer / Sequencer",
@ -193,6 +194,7 @@ techage.manual_DE.aTitel = {
"3,TA4 Zustandssammler / State Collector",
"3,TA4 Detektor / Detector",
"3,TA4 Energiespeicher-Ladungsdetektor / Energy Storage Charge Detector",
"3,TA4 Blicksensor / Gaze Sensor",
"3,TA4 Sequenzer",
"2,Move/Dreh-Controller",
"3,TA4 Move Controller",
@ -1059,6 +1061,12 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"Mit dem TA3 Kommando Konverter können 'on' / 'off' Kommandos in andere Kommandos umgewandelt werden\\, sowie die Weiterleitung verhindert oder verzögert werden. Die Nummer des Zielblockes bzw. die Nummern der Zielblöcke\\, die Kommandos die gesendet werden sollen\\, sowie die Verzögerungszeiten in Sekunden müssen eingegeben werden. Wird kein Kommando eingegeben\\, wird nichts gesendet.\n"..
"\n"..
"Die Nummern können auch mit Hilfe des Techage Programmers programmiert werden.\n"..
"\n"..
"\n"..
"\n",
"Den TA3 Logikblock kann man so programmieren\\, dass ein oder mehrere Eingangskommandos zu einem Ausgangskommando verknüpft und gesendet werden. Dieser Block kann daher diverse Logik-Elemente wie AND\\, OR\\, NOT\\, XOR usw. ersetzen.\n"..
"Eingangkommandos für den Logikblock sind 'on'/'off' Kommandos.\n"..
"Eingangskommandos werden über die Nummer referenziert\\, also bspw. '1234' für das Kommando vom Sender mit der Nummer 1234.\n"..
@ -1700,6 +1708,12 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"Der TA4 Blicksensor generiert ein Kommando\\, wenn der Block vom Besitzer oder anderen konfigurierten Spielern angesehen/fokussiert wird und sendet ein zweites Kommando\\, wenn der Block nicht mehr fokussiert wird. Er dient damit als Ersatz für Taster/Schalter\\, um bspw. Türen zu öffnen/schließen.\n"..
"\n"..
"Der TA4 Blicksensor kann nur mit dem Gabelschlüsselmenü programmiert werden.\n"..
"\n"..
"\n"..
"\n",
"über den TA4 Sequenzer können ganze Abläufe programmiert werden. Hier ein Beispiel:\n"..
"\n"..
" -- this is a comment\n"..
@ -2117,7 +2131,7 @@ techage.manual_DE.aText = {
"\n"..
"Mit der Taste \"Test\" wird die Flugstrecke mit den absoluten Koordinaten zur Überprüfung im Chat ausgegeben.\n"..
"\n"..
"Die maximale Distanz für die gesammte Flugstrecke beträgt 500 m.\n"..
"Die maximale Distanz für die gesammte Flugstrecke beträgt 1000 m. Es können bis zu 32 Blöcke antrainiert werden.\n"..
"\n"..
"Die Nutzung des TA5 Flug Controllers benötigt 40 Erfahrungspunkte.\n"..
"\n"..
@ -2297,6 +2311,7 @@ techage.manual_DE.aItemName = {
"reboiler",
"ta3_logic",
"ta3_button",
"ta3_command_converter",
"ta3_logic",
"ta3_repeater",
"ta3_sequencer",
@ -2383,6 +2398,7 @@ techage.manual_DE.aItemName = {
"ta4_collector",
"ta4_detector",
"ta4_chargedetector",
"ta4_gaze_sensor",
"ta4_sequencer",
"",
"ta4_movecontroller",
@ -2588,6 +2604,7 @@ techage.manual_DE.aPlanTable = {
"",
"",
"",
"",
"ta4_windturbine",
"",
"",
@ -2649,6 +2666,7 @@ techage.manual_DE.aPlanTable = {
"",
"",
"",
"",
"ta4_liquid_filter_base",
"ta4_liquid_filter_gravel",
"ta4_liquid_filter_top",

View File

@ -108,6 +108,7 @@ techage.manual_EN.aTitel = {
"4,Reboiler",
"2,Logic / Switching Blocks",
"3,TA3 Button / Switch",
"3,TA3 Command Converter",
"3,TA3 Logic Block",
"3,TA3 Repeater",
"3,TA3 Sequencer",
@ -195,6 +196,7 @@ techage.manual_EN.aTitel = {
"3,TA4 State Collector",
"3,TA4 Detector",
"3,TA4 Energy Storage Charge Detector",
"3,TA4 Gaze Sensor",
"3,TA4 Sequencer",
"2,Move/Turn Controller",
"3,TA4 Move Controller",
@ -1066,6 +1068,13 @@ techage.manual_EN.aText = {
"\n"..
"\n"..
"\n",
"With the TA3 command converter\\, 'on' / 'off' commands can be converted into other commands\\, and forwarding can be prevented or delayed.\n"..
"The number of the target block or the numbers of the target blocks\\, the commands to be sent and the delay times in seconds must be entered. If no command is entered\\, nothing is sent.\n"..
"\n"..
"The numbers can also be programmed using the Techage programmer.\n"..
"\n"..
"\n"..
"\n",
"The TA3 logic block can be programmed in such a way that one or more input commands are linked to one output command and sent. This block can therefore replace various logic elements such as AND\\, OR\\, NOT\\, XOR etc. \n"..
"Input commands for the logic block are 'on' /'off' commands.\n"..
"Input commands are referenced via the number\\, e.g. '1234' for the command from the sender with the number 1234. \n"..
@ -1710,6 +1719,12 @@ techage.manual_EN.aText = {
"\n"..
"\n"..
"\n",
"The TA4 gaze sensor generates a command when the block is viewed/focused by the owner or other configured players and sends a second command when the block is no longer focused. It thus serves as a replacement for buttons/switches\\, for example to open/close doors.\n"..
"\n"..
"The TA4 Gaze Sensor can only be programmed using the open-end wrench menu.\n"..
"\n"..
"\n"..
"\n",
"Entire processes can be programmed using the TA4 sequencer. Here's an example:\n"..
"\n"..
" -- this is a comment\n"..
@ -2128,7 +2143,7 @@ techage.manual_EN.aText = {
"\n"..
"With the \"Test\" button\\, the flight route with the absolute coordinates is output for checking in the chat.\n"..
"\n"..
"The maximum distance for the entire flight distance is 500 m.\n"..
"The maximum distance for the entire flight distance is 1000 m. Up to 32 blocks can be trained.\n"..
"\n"..
"The use of the TA5 Flight Controller requires 40 experience points.\n"..
"\n"..
@ -2307,6 +2322,7 @@ techage.manual_EN.aItemName = {
"reboiler",
"ta3_logic",
"ta3_button",
"ta3_command_converter",
"ta3_logic",
"ta3_repeater",
"ta3_sequencer",
@ -2394,6 +2410,7 @@ techage.manual_EN.aItemName = {
"ta4_collector",
"ta4_detector",
"ta4_chargedetector",
"ta4_gaze_sensor",
"ta4_sequencer",
"",
"ta4_movecontroller",
@ -2600,6 +2617,7 @@ techage.manual_EN.aPlanTable = {
"",
"",
"",
"",
"ta4_windturbine",
"",
"",
@ -2661,6 +2679,7 @@ techage.manual_EN.aPlanTable = {
"",
"",
"",
"",
"ta4_liquid_filter_base",
"ta4_liquid_filter_gravel",
"ta4_liquid_filter_top",

View File

@ -290,6 +290,8 @@ 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/gaze_sensor.lua")
dofile(MP.."/logic/command_converter.lua")
dofile(MP.."/logic/mba_detector.lua")
dofile(MP.."/logic/cart_detector.lua")
dofile(MP.."/logic/charge_detector.lua")

View File

@ -117,7 +117,6 @@ Access:=Zugriff:
Button or switch=Taster oder Schalter
Change the block name (infotext)=Ändere den Blocknamen
Command to be sent=Zu sendender Befehl
Destination block number(s)=Zielblocknummer
Infotext=Infotext
TA3 Button/Switch=TA3 Taster/Schalter
TA4 Button/Switch=TA4 Schalter/Taster
@ -134,6 +133,7 @@ Type=Typ
### button_2x.lua ###
### button_4x.lua ###
### charge_detector.lua ###
### gaze_sensor.lua ###
### player_detector.lua ###
Command=Kommando
@ -141,6 +141,7 @@ Number=Nummer
### button.lua ###
### cart_detector.lua ###
### command_converter.lua ###
### detector.lua ###
### light_detector.lua ###
### lua_logic.lua ###
@ -153,6 +154,7 @@ Insert destination node number(s)=Gebe Zielnummer(n) ein
### button.lua ###
### chest.lua ###
### command_converter.lua ###
### detector.lua ###
### doorcontroller.lua ###
### mesecons_converter.lua ###
@ -162,6 +164,11 @@ Insert destination node number(s)=Gebe Zielnummer(n) ein
Save=Speichern
### button.lua ###
### gaze_sensor.lua ###
Destination block number(s)=Zielblocknummer(n)
### button_2x.lua ###
TA4 2x Button=TA4 2x Taster
@ -259,6 +266,13 @@ Node numbers to read the states from=Knotennummern zum Lesen der Zustände
Send an event if state is equal or larger than=Senden ein Event wenn Status größer oder gleich als
TA4 State Collector=TA4 Zuständesammler
### command_converter.lua ###
Receive=Empfang
Send delay (s)=Sendeverz. (s)
Sent command=Sendekommando
TA3 Command Converter=TA3 Kommando Konverter
### concentrator.lua ###
TA4 Tube Concentrator=TA4 Röhren Konzentrator
@ -605,6 +619,15 @@ TA5 Pipe=TA5 Leitung
TechAge Gate Block=TechAge Torblock
### gaze_sensor.lua ###
Command to send when sensor is no longer viewed=Befehl zum Senden, wenn der Sensor nicht mehr angesehen wird
Command to send when sensor is viewed=Befehl zum Senden, wenn der Sensor angesehen wird
Input the player name(s) separated by blanks.@nIf empty, only the owner is accepted.=Geben den/die Spielernamen durch Leerzeichen getrennt ein.@nWenn leer, wird nur der Besitzer akzeptiert.
Player Names=Spielernamen
TA4 Gaze Sensor=TA4 Blicksensor
### gearbox.lua ###
TA2 Gearbox=TA2 Getriebeblock
@ -674,6 +697,7 @@ TA5 Heat Exchanger 1=TA5 Wärmetauscher 1
### heatexchanger2.lua ###
Error!=
Blue pipe connection error@n(@1 found / @2 expected)=Verbindungsfehler blaue Leitung@n(@1 erkannt / @2 erwartet)
Blue pipe coolant missing@n(@1 found / @2 expected)=Kühlmittel fehlt bei der blauen Leitung@n(@1 erkannt / @2 erwartet)
Cooler error=Kühlungsfehler

View File

@ -117,7 +117,6 @@ Access:=
Button or switch=
Change the block name (infotext)=
Command to be sent=
Destination block number(s)=
Infotext=
TA3 Button/Switch=
TA4 Button/Switch=
@ -134,6 +133,7 @@ Type=
### button_2x.lua ###
### button_4x.lua ###
### charge_detector.lua ###
### gaze_sensor.lua ###
### player_detector.lua ###
Command=
@ -141,6 +141,7 @@ Number=
### button.lua ###
### cart_detector.lua ###
### command_converter.lua ###
### detector.lua ###
### light_detector.lua ###
### lua_logic.lua ###
@ -153,6 +154,7 @@ Insert destination node number(s)=
### button.lua ###
### chest.lua ###
### command_converter.lua ###
### detector.lua ###
### doorcontroller.lua ###
### mesecons_converter.lua ###
@ -162,6 +164,11 @@ Insert destination node number(s)=
Save=
### button.lua ###
### gaze_sensor.lua ###
Destination block number(s)=
### button_2x.lua ###
TA4 2x Button=
@ -259,6 +266,13 @@ Node numbers to read the states from=
Send an event if state is equal or larger than=
TA4 State Collector=
### command_converter.lua ###
Receive=
Send delay \\[s\\]=
Sent command=
TA3 Command Converter=
### concentrator.lua ###
TA4 Tube Concentrator=
@ -605,6 +619,14 @@ TA5 Pipe=
TechAge Gate Block=
### gaze_sensor.lua ###
Command to send when sensor is no longer viewed=
Command to send when sensor is viewed=
Input the player name(s) separated by blanks.@nIf empty, only the owner is accepted.=
Player Names=
TA4 Gaze Sensor=
### gearbox.lua ###
TA2 Gearbox=
@ -674,6 +696,7 @@ TA5 Heat Exchanger 1=
### heatexchanger2.lua ###
Error!=
Blue pipe connection error@n(@1 found / @2 expected)=
Blue pipe coolant missing@n(@1 found / @2 expected)=
Cooler error=

View File

@ -76,7 +76,9 @@ function techage.logic.send_cmnd(pos, ident, default, time)
if time and time > 0 then
minetest.get_node_timer(pos):start(time)
end
techage.send_multi(own_num, numbers, command, payload)
if command and command ~= "" then
techage.send_multi(own_num, numbers, command, payload)
end
end
function techage.logic.send_off(pos, meta)

View File

@ -536,6 +536,13 @@ Hinweis: Mit dem Programmer können Blocknummern sehr einfach eingesammelt und k
[ta3_button|image]
### TA3 Kommando Konverter / Command Converter
Mit dem TA3 Kommando Konverter können `on` / `off` Kommandos in andere Kommandos umgewandelt werden, sowie die Weiterleitung verhindert oder verzögert werden. Die Nummer des Zielblockes bzw. die Nummern der Zielblöcke, die Kommandos die gesendet werden sollen, sowie die Verzögerungszeiten in Sekunden müssen eingegeben werden. Wird kein Kommando eingegeben, wird nichts gesendet.
Die Nummern können auch mit Hilfe des Techage Programmers programmiert werden.
[ta3_command_converter|image]
### TA3 Logikblock / Logic Block

View File

@ -538,6 +538,16 @@ Note: With the programmer, block numbers can be easily collected and configured.
[ta3_button|image]
### TA3 Command Converter
With the TA3 command converter, `on` / `off` commands can be converted into other commands, and forwarding can be prevented or delayed.
The number of the target block or the numbers of the target blocks, the commands to be sent and the delay times in seconds must be entered. If no command is entered, nothing is sent.
The numbers can also be programmed using the Techage programmer.
[ta3_command_converter|image]
### TA3 Logic Block
The TA3 logic block can be programmed in such a way that one or more input commands are linked to one output command and sent. This block can therefore replace various logic elements such as AND, OR, NOT, XOR etc.

View File

@ -544,6 +544,14 @@ Der Ladungsdetektor muss dazu über eine Verteilerdose an das Stromnetz angeschl
[ta4_chargedetector|image]
### TA4 Blicksensor / Gaze Sensor
Der TA4 Blicksensor generiert ein Kommando, wenn der Block vom Besitzer oder anderen konfigurierten Spielern angesehen/fokussiert wird und sendet ein zweites Kommando, wenn der Block nicht mehr fokussiert wird. Er dient damit als Ersatz für Taster/Schalter, um bspw. Türen zu öffnen/schließen.
Der TA4 Blicksensor kann nur mit dem Gabelschlüsselmenü programmiert werden.
[ta4_gaze_sensor|image]
### TA4 Sequenzer
über den TA4 Sequenzer können ganze Abläufe programmiert werden. Hier ein Beispiel:

View File

@ -535,6 +535,14 @@ To do this, the charge detector must be connected to the grid via a junction box
[ta4_chargedetector|image]
### TA4 Gaze Sensor
The TA4 gaze sensor generates a command when the block is viewed/focused by the owner or other configured players and sends a second command when the block is no longer focused. It thus serves as a replacement for buttons/switches, for example to open/close doors.
The TA4 Gaze Sensor can only be programmed using the open-end wrench menu.
[ta4_gaze_sensor|image]
### TA4 Sequencer
Entire processes can be programmed using the TA4 sequencer. Here's an example:

View File

@ -84,7 +84,7 @@ Der TA5 Flug Controller ist ähnlich zum TA4 Move Controller. Im Gegensatz zum T
Mit der Taste "Test" wird die Flugstrecke mit den absoluten Koordinaten zur Überprüfung im Chat ausgegeben.
Die maximale Distanz für die gesammte Flugstrecke beträgt 500 m.
Die maximale Distanz für die gesammte Flugstrecke beträgt 1000 m. Es können bis zu 32 Blöcke antrainiert werden.
Die Nutzung des TA5 Flug Controllers benötigt 40 Erfahrungspunkte.

View File

@ -84,7 +84,7 @@ The TA5 Flight Controller is similar to the TA4 Move Controller. In contrast to
With the "Test" button, the flight route with the absolute coordinates is output for checking in the chat.
The maximum distance for the entire flight distance is 500 m.
The maximum distance for the entire flight distance is 1000 m. Up to 32 blocks can be trained.
The use of the TA5 Flight Controller requires 40 experience points.

View File

@ -106,6 +106,7 @@
- [Aufkocher / reboiler)](./manual_ta3_DE.md#aufkocher--reboiler))
- [Logik-/Schalt-Blöcke](./manual_ta3_DE.md#logik-schalt-blöcke)
- [TA3 Taster/Schalter / Button/Switch](./manual_ta3_DE.md#ta3-tasterschalter--buttonswitch)
- [TA3 Kommando Konverter / Command Converter](./manual_ta3_DE.md#ta3-kommando-konverter--command-converter)
- [TA3 Logikblock / Logic Block](./manual_ta3_DE.md#ta3-logikblock--logic-block)
- [TA3 Wiederholer / Repeater](./manual_ta3_DE.md#ta3-wiederholer--repeater)
- [TA3 Sequenzer / Sequencer](./manual_ta3_DE.md#ta3-sequenzer--sequencer)
@ -192,6 +193,7 @@
- [TA4 Zustandssammler / State Collector](./manual_ta4_DE.md#ta4-zustandssammler--state-collector)
- [TA4 Detektor / Detector](./manual_ta4_DE.md#ta4-detektor--detector)
- [TA4 Energiespeicher-Ladungsdetektor / Energy Storage Charge Detector](./manual_ta4_DE.md#ta4-energiespeicher-ladungsdetektor--energy-storage-charge-detector)
- [TA4 Blicksensor / Gaze Sensor](./manual_ta4_DE.md#ta4-blicksensor--gaze-sensor)
- [TA4 Sequenzer](./manual_ta4_DE.md#ta4-sequenzer)
- [Move/Dreh-Controller](./manual_ta4_DE.md#movedreh-controller)
- [TA4 Move Controller](./manual_ta4_DE.md#ta4-move-controller)

View File

@ -107,6 +107,7 @@
- [Reboiler](./manual_ta3_EN.md#reboiler)
- [Logic / Switching Blocks](./manual_ta3_EN.md#logic--switching-blocks)
- [TA3 Button / Switch](./manual_ta3_EN.md#ta3-button--switch)
- [TA3 Command Converter](./manual_ta3_EN.md#ta3-command-converter)
- [TA3 Logic Block](./manual_ta3_EN.md#ta3-logic-block)
- [TA3 Repeater](./manual_ta3_EN.md#ta3-repeater)
- [TA3 Sequencer](./manual_ta3_EN.md#ta3-sequencer)
@ -194,6 +195,7 @@
- [TA4 State Collector](./manual_ta4_EN.md#ta4-state-collector)
- [TA4 Detector](./manual_ta4_EN.md#ta4-detector)
- [TA4 Energy Storage Charge Detector](./manual_ta4_EN.md#ta4-energy-storage-charge-detector)
- [TA4 Gaze Sensor](./manual_ta4_EN.md#ta4-gaze-sensor)
- [TA4 Sequencer](./manual_ta4_EN.md#ta4-sequencer)
- [Move/Turn Controller](./manual_ta4_EN.md#moveturn-controller)
- [TA4 Move Controller](./manual_ta4_EN.md#ta4-move-controller)

View File

@ -22,8 +22,8 @@ local MP = minetest.get_modpath("techage")
local mark = dofile(MP .. "/basis/mark_lib.lua")
local fly = techage.flylib
local MAX_DIST = 500
local MAX_BLOCKS = 16
local MAX_DIST = 1000
local MAX_BLOCKS = 32
local EX_POINTS = 40
local WRENCH_MENU = {