From 1359baff7b00d0cd1cb5b3af9a905bb36f6892fa Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Sat, 28 Sep 2019 19:40:49 +0200 Subject: [PATCH] Further manual_ta3_DE chapters added --- doc/guide.lua | 14 +- doc/items.lua | 34 ++- doc/manual_DE.lua | 431 +++++++++++++++++++++++------ doc/plans.lua | 57 ++-- manuals/manual_ta1_DE.md | 10 +- manuals/manual_ta1_EN.md | 4 +- manuals/manual_ta2_DE.md | 50 ++-- manuals/manual_ta3_DE.md | 344 ++++++++++++++++++++++- manuals/markdown2formspec.py | 22 +- manuals/toc_DE.md | 14 +- oil/drillbox.lua | 2 +- textures/techage_oil_tower_inv.png | Bin 14693 -> 9507 bytes textures/techage_ta1.png | Bin 0 -> 8884 bytes textures/techage_ta2.png | Bin 0 -> 11807 bytes textures/techage_ta3.png | Bin 0 -> 8447 bytes textures/techage_ta4.png | Bin 0 -> 4703 bytes textures/techage_ta4_tes.png | Bin 0 -> 9724 bytes tools/repairkit.lua | 6 + 18 files changed, 827 insertions(+), 161 deletions(-) create mode 100644 textures/techage_ta1.png create mode 100644 textures/techage_ta2.png create mode 100644 textures/techage_ta3.png create mode 100644 textures/techage_ta4.png create mode 100644 textures/techage_ta4_tes.png diff --git a/doc/guide.lua b/doc/guide.lua index 06ed1ce..945914e 100644 --- a/doc/guide.lua +++ b/doc/guide.lua @@ -16,6 +16,9 @@ local tPlans = techage.ConstructionPlans -- k/v table with plan definitions local function tooltip(item) if type(item) == "table" then local img, name = item[1], item[2] + if img == "" then -- larger image for the plan? + return "", name + end local ndef = minetest.registered_nodes[name] if ndef and ndef.description then return img, minetest.formspec_escape(ndef.description) @@ -36,7 +39,10 @@ local function plan(images) if item ~= false then local img, tooltip = tooltip(item) local x_offs, y_offs = (x-1) * 0.9, (y-1) * 0.9 + 0.8 - if string.find(img, ":") then + if img == "" then + img = tooltip -- use tooltip for bigger image + tbl[#tbl+1] = "image["..x_offs..","..y_offs..";2.2,2.2;"..img.."]" + elseif string.find(img, ":") then tbl[#tbl+1] = "item_image["..x_offs..","..y_offs..";1,1;"..img.."]" else tbl[#tbl+1] = "image["..x_offs..","..y_offs..";1,1;"..img.."]" @@ -59,7 +65,11 @@ local function formspec_help(meta) bttn = "button[9.6,1;1,1;plan;"..S("Plan").."]" elseif aItemName[idx] ~= "" then local item = tItems[aItemName[idx]] or "" - bttn = box.."item_image[9.6,1;1,1;"..item.."]" + if string.find(item, ":") then + bttn = box.."item_image[9.6,1;1,1;"..item.."]" + else + bttn = "image[9.3,1;2,2;"..item.."]" + end else bttn = "" end diff --git a/doc/items.lua b/doc/items.lua index 9f7d560..827b3c6 100644 --- a/doc/items.lua +++ b/doc/items.lua @@ -13,6 +13,7 @@ ]]-- techage.Items = { + techage_ta1 = "techage_ta1.png", iron = "techage:iron_ingot", charcoal = "techage:charcoal", lighter = "techage:lighter", @@ -22,6 +23,8 @@ techage.Items = { ta1_hopper = "techage:hopper_ta1", wlanchip = "techage:ta4_wlanchip", tube = "techage:tubeS", + ---------------- + techage_ta2 = "techage_ta2.png", ta2_firebox = "techage:firebox", ta2_boiler = "techage:boiler2", ta2_cylinder = "techage:cylinder", @@ -36,6 +39,9 @@ techage.Items = { ta2_gravelsieve = "techage:ta2_gravelsieve_pas", ta2_liquidsampler = "techage:ta2_liquidsampler_pas", ta2_rinser = "techage:ta2_rinser_pas", + ta2_chest = "techage:chest_ta2", + --------------------- + techage_ta3 = "techage_ta3.png", ta3_firebox = "techage:coalfirebox", ta3_boiler = "techage:coalboiler_top", ta3_turbine = "techage:turbine", @@ -49,6 +55,7 @@ techage.Items = { ta3_electronicfab = "techage:ta3_electronic_fab_pas", ta3_gravelsieve = "techage:ta3_gravelsieve_pas", ta3_liquidsampler = "techage:ta3_liquidsampler_pas", + ta3_funnel = "techage:ta3_funnel", ta3_powercable = "techage:electric_cableS", ta3_powerline = "techage:power_lineS", ta3_powerswitch = "techage:powerswitch", @@ -57,7 +64,32 @@ techage.Items = { ta3_powerpole2 = "techage:power_pole2", ta3_powerpole4 = "techage:power_pole", ta3_powerswitchbox = "techage:powerswitch_box", + ta3_powerterminal = "techage:ta3_power_terminal", + ta3_trowel = "techage:trowel", ta3_tinygenerator = "techage:tiny_generator", ta3_akkublock = "techage:ta3_akku", - + ta3_furnace = "techage:ta3_furnace_pas", + ta3_furnacefirebox = "techage:furnace_firebox", + ta3_booster = "techage:ta3_booster", + ta3_oilexplorer = "techage:oilexplorer", + ta3_drillbox = "techage:ta3_drillbox_pas", + ta3_pumpjack = "techage:ta3_pumpjack_pas", + ta3_drillbit = "techage:oil_drillbit", + ta3_end_wrench = "techage:end_wrench", + ---------------------------- + ta3_button = "techage:ta3_button_off", + ta3_cartdetector = "techage:ta3_cartdetector_off", + ta3_detector = "techage:ta3_detector_off", + ta3_logic = "techage:ta3_logic", + ta3_nodedetector = "techage:ta3_nodedetector_off", + ta3_playerdetector = "techage:ta3_playerdetector_off", + ta3_repeater = "techage:ta3_repeater", + ta3_sequencer = "techage:ta3_sequencer", + ta3_timer = "techage:ta3_timer", + ta3_terminal = "techage:terminal2", + ta3_signallamp = "techage:signal_lamp_off", + ta3_doorblock = "techage:doorblock20", + ta3_programmer = "techage:programmer", + ---------------------------- + techage_ta4 = "techage_ta4.png", } diff --git a/doc/manual_DE.lua b/doc/manual_DE.lua index 6f13207..aed864e 100644 --- a/doc/manual_DE.lua +++ b/doc/manual_DE.lua @@ -33,6 +33,7 @@ techage.manual_DE.aTitel = { "3,TA2 Elektronikfabrik", "2,Sonstige Blöcke", "3,TA2 Flüssigkeitensammler", + "3,TA2 Gesicherte Kiste", "1,TA3: Ölzeitalter", "2,Kohlekraftwerk", "3,TA3 Kohlekraftwerks-Feuerbox", @@ -52,7 +53,7 @@ techage.manual_DE.aTitel = { "3,TA3 Kleiner Stromgenerator", "3,TA3 Akku Block", "3,TA3 Strom Terminal", - "2,Industrieofen", + "2,TA3 Industrieofen", "3,TA3 Ofen-Feuerkiste", "3,TA3 Ofenoberteil", "3,TA3 Gebläse", @@ -68,19 +69,26 @@ techage.manual_DE.aTitel = { "3,TA3 Sequenzer", "3,TA3 Timer", "3,TA3 Terminal", + "3,TechAge Signallampe", + "3,Tür/Tor Blöcke", "2,Detektoren", "3,TA3 Detektor", "3,TA3 Wagen Detektor", "3,TA3 Block Detektor", "3,TA3 Spieler Detektor", "2,TA3 Maschinen", - "3,TA3 Autocrafter", + "3,TA3 Schieber", "3,TA3 Verteiler", + "3,TA3 Autocrafter", "3,TA3 Elektronikfabrik", "3,TA3 Trichter", "3,TA3 Kiessieb", "3,TA3 Mühle", "3,TA3 Flüssigkeitensammler", + "2,Werkzeuge", + "3,Techage Info Tool", + "3,TechAge Programmer", + "3,TechAge Kelle", } techage.manual_DE.aText = { @@ -189,6 +197,8 @@ techage.manual_DE.aText = { "In TA2 geht es darum\\, erste Maschinen zur Verarbeitung von Erzen zu bauen und zu betreiben. Einige Maschinen müssen dazu über Antriebsachsen angetrieben werden. Dazu musst du eine Dampfmaschine bauen und diese mit Kohle oder Holzkohle anheizen.\n".. "\n".. "In TA2 steht auch ein Kiesspüler zur Verfügung\\, mit dem seltene Erze wie Usmium Nuggets ausgewaschen werden können. Diese Nuggets wirst du später für weitere Rezepte brauchen.\n".. + "\n".. + "\n".. "\n", "Die Dampfmaschine besteht aus mehreren Blöcken und muss wie im Plan rechts abgebildet\\, zusammen gebaut werden. Dazu werden die Blöcke TA2 Feuerbox\\, TA2 Boiler oben\\, TA2 Boiler unten\\, TA2 Zylinder\\, TA2 Schwungrad und Dampfleitungen benötigt.\n".. "\n".. @@ -202,9 +212,7 @@ techage.manual_DE.aText = { " - bei allen Maschinen kann die Antriebsachse an allen Seiten angeschlossen werden\\, welche nicht durch andere Funktionen belegt wird\\, wie bspw. die IN und OUT Löcher bei Mühle und Sieb.\n".. "\n".. "Der Boiler muss mit Wasser gefüllt werden. Dazu bis zu 10 Eimer Wasser in den Boiler füllen.\n".. - "\n".. "Die Feuerbox muss mit Kohle oder Holzkohle gefüllt werden.\n".. - "\n".. "Wenn das Wasser heiß ist\\, kann das Ventil am Boiler geöffnet und anschließend die Dampfmaschine am Schwungrad gestartet werden.\n".. "\n".. "Die Dampfmaschine leistet 25 ku\\, kann damit mehrere Maschinen gleichzeitig antreiben.\n".. @@ -265,7 +273,7 @@ techage.manual_DE.aText = { "\n".. "Im ersten Fall werden immer alle Items weitergeleitet und der Verteiler läuft nicht voll. Im zweiten Fall werden Items zurückgehalten und der Verteiler kann voll laufen und in der Folge blockieren.\n".. "\n".. - "Einstellbar ist die Betriebsart ist über die \">>|\" Checkbox (an => Betriebsart 2)\n".. + "Einstellbar ist die Betriebsart über die \">>|\" Checkbox (an => Betriebsart 2)\n".. "\n".. "Wird nur ein Ausgang aktiviert und mit mehreren Items konfiguriert\\, so kann die 1:1 Checkbox angeklickt werden. In diesem Falle werden Items streng gemäß der Filtereinstellung weitergegeben. Fehlt ein Item in der Reihenfolge\\, blockiert der Verteiler. Damit lassen sich andere Maschinen wie bspw. der Autocrafter exakt gemäß dem eingestellten Rezept bestücken.\n".. "\n".. @@ -285,7 +293,7 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", - "Der Kiesspüler ist in der Lade\\, aus bereits gesiebtem Kies die Erze Usmium und Kupfer auszuspülen\\, sofern dieser von Wasser überspült wird.\n".. + "Der Kiesspüler ist in der Lade\\, aus bereits gesiebtem Kies die Erze Usmium und Kupfer auszuspülen\\, sofern dieser von Wasser überspült wird.\n".. "\n".. "Ob der Kiesspüler korrekt arbeitet\\, kann mit Hilfe von Stöcken (sticks) getestet werden\\, wenn diese in das Inventar des Kiesspülers getan werden. Diese müssen einzeln ausgespült und vom Trichter eingefangen werden.\n".. "\n".. @@ -298,14 +306,12 @@ techage.manual_DE.aText = { "\n".. "\n", "Die Mühle ist in der Lage\\, verschiedenes Gestein\\, aber auch Holz und andere Items zu mahlen.\n".. - "\n".. - "Die Verarbeitungsleistung ist ein Item alle 2 s. Die Mühle benötigt 4 ku Energie.\n".. + "Die Verarbeitungsleistung ist ein Item alle 4 s. Die Mühle benötigt 4 ku Energie.\n".. "\n".. "\n".. "\n", "Das Kiessieb ist in der Lage\\, Kies zu sieben um Erze zu gewinnen. Als Ergebnis erhält man teilweise \"gesiebtes Kies\"\\, was nicht wieder gesiebt werden kann.\n".. - "\n".. - "Die Verarbeitungsleistung ist ein Item alle 2 s. Die Kiessieb benötigt 3 ku Energie.\n".. + "Die Verarbeitungsleistung ist ein Item alle 4 s. Das Kiessieb benötigt 3 ku Energie.\n".. "\n".. "\n".. "\n", @@ -313,7 +319,7 @@ techage.manual_DE.aText = { "\n", "Der Autocrafter dient zur automatischen Herstellung von Waren. Alles was der Spieler über das \"Crafting Grid\" herstellen kann\\, kann auch durch den Autocrafter erledigt werden. Dazu müssen im Menü des Autocrafters das Rezept eingegeben und die notwendigen Zutaten hinzugefügt werden.\n".. "\n".. - "Zutaten und hergestellte Waren können über Rühren und Schieber in und aus dem Block transportiert werden.\n".. + "Zutaten und hergestellte Waren können über Röhren und Schieber in und aus dem Block transportiert werden.\n".. "\n".. "Die Verarbeitungsleistung ist ein Item alle 4 s. Der Autocrafter benötigt 4 ku Energie.\n".. "\n".. @@ -332,11 +338,17 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", + "Die gesicherte Kiste kann nur von den Spielern genutzt werden\\, die an diesem Ort auch bauen können\\, also Protection Rechte besitzen. Es spielt dabei keine Rolle\\, wer die Kiste setzt. \n".. + "\n".. + "\n".. + "\n", "Bei TA3 gilt es\\, die Dampf-betriebenen Maschinen durch leistungsfähigere und mit elektrischem Strom betriebene Maschinen abzulösen.\n".. "\n".. "Dazu musst du Kohlekraftwerke und Generatoren bauen. Bald wirst du sehen\\, dass dein Strombedarf nur mit Öl-betriebenen Kraftwerken zu decken ist. Also machst du dich auf die Suche nach Erdöl. Bohrtürme und Ölpumpen helfen die\\, an das Öl zu kommen. Schienenwege dienen dir zum Öltransport bis in die Kraftwerke.\n".. "\n".. "Das Industrielle Zeitalter ist auf seinem Höhepunkt.\n".. + "\n".. + "\n".. "\n", "Das Kohlekraftwerk besteht aus mehreren Blöcken und muss wie im Plan rechts abgebildet\\, zusammen gebaut werden. Dazu werden die Blöcke TA3 Kohlekraftwerks-Feuerbox\\, TA3 Boiler oben\\, TA3 Boiler unten\\, TA3 Turbine\\, TA3 Generator und TA3 Kühler benötigt.\n".. "\n".. @@ -375,20 +387,20 @@ techage.manual_DE.aText = { " - Isolierte Kabel (TA Stromkabel) für die lokale Verkabelung im Boden oder in Gebäuden. Diese Kabel lassen sich in der Wand oder im Boden verstecken (können mit der Kelle \"verputzt\" werden).\n".. " - Überlandleitungen (TA Stromleitung) für Freiluftverkabelung über große Strecken. Diese Kabel sind geschützt\\, können also von anderen Spielern nicht entfernt werden.\n".. "\n".. - "Verbraucher aber auch Generatoren können in einem Stromnetzwerk parallel betrieben werden. Mit Hilfe der Verteilerboxen können so große Netzwerke aufgebaut werden.\n".. - "Wird zu wenig Strom bereitgestellt\\, gehen Teile der Verbraucher aus\\, bzw. Lampen können flackern.\n".. - "In diesem Zusammenhang ist auch wichtig\\, dass die Funktionsweise von Forceload Blöcken verstanden wurde\\, denn Generatoren liefern bspw. nur Strom\\, wenn der entsprechende Map-Block geladen ist. Dies kann mit einen Forceload Block erzwungen werden.\n".. + "Mehrere Verbraucher und Generatoren können in einem Stromnetzwerk zusammen betrieben werden. Mit Hilfe der Verteilerboxen können so große Netzwerke aufgebaut werden.\n".. + "Wird zu wenig Strom bereitgestellt\\, gehen Teile der Verbraucher aus\\, bzw. Lampen beginnen zu flackern.\n".. + "In diesem Zusammenhang ist auch wichtig\\, dass die Funktionsweise von Forceload Blöcken verstanden wurde\\, denn bspw. Generatoren liefern nur Strom\\, wenn der entsprechende Map-Block geladen ist. Dies kann mit einen Forceload Block erzwungen werden.\n".. "\n".. "\n".. "\n", - "Für die lokale Verkabelung im Boden oder in Gebäuden. Abzweigungen können mit Hilfe von Verteilerboxen realisiert werden. Die maximale Kabellänge zwischen Maschinen oder Verteilerboxen beträgt 1000 m. Es können maximale 1000 Knoten in einem Strom-Netzwerk verbunden werden. Als Knoten zählen alle Generatoren\\, Akkus\\, Verteiler und Maschinen.\n".. + "Für die lokale Verkabelung im Boden oder in Gebäuden.\n".. + "Abzweigungen können mit Hilfe von Verteilerboxen realisiert werden. Die maximale Kabellänge zwischen Maschinen oder Verteilerboxen beträgt 1000 m. Es können maximale 1000 Knoten in einem Strom-Netzwerk verbunden werden. Als Knoten zählen alle Generatoren\\, Akkus\\, Verteilerboxen und Maschinen.\n".. "\n".. "Da die Stromkabel nicht automatisch geschützt sind\\, wird für längere Strecken die Überlandleitungen (TA Stromleitung) empfohlen.\n".. "\n".. - "Stromkabel können mit der Kelle verputzt also in der Wand oder im Boden versteckt werden. Als Material zum Verputzen können alle Stein\\, Clay und sonstige Blöcke ohne Intelligenz genutzt werden. Erde (dirt) geht nicht\\, da Erde zu Gras oder ähnlichem konvertiert werden kann\\, was die Leitung zerstören würde.\n".. + "Stromkabel können mit der Kelle verputzt also in der Wand oder im Boden versteckt werden. Als Material zum Verputzen können alle Stein-\\, Clay- und sonstige Blöcke ohne \"Intelligenz\" genutzt werden. Erde (dirt) geht nicht\\, da Erde zu Gras oder ähnlichem konvertiert werden kann\\, was die Leitung zerstören würde.\n".. "\n".. "Zum Verputzen muss mit der Kelle auf das Kabel geklickt werden. Das Material\\, mit dem das Kabel verputzt werden soll\\, muss sich im Spieler-Inventar ganz links befinden.\n".. - "\n".. "Die Kabel können wieder sichtbar gemacht werden\\, indem man mit der Kelle wieder auf den Block klickt.\n".. "\n".. "Außer Kabel können auch die TA Verteilerbox und die TA Stromschalterbox verputzt werden.\n".. @@ -396,11 +408,11 @@ techage.manual_DE.aText = { "\n".. "\n", "Mit der Verteilerbox kann Strom in bis zu 6 Richtungen verteilt werden. Verteilerboxen können auch mit der Kelle verputzt (versteckt) und wieder sichtbar gemacht werden.\n".. - "Wird mit dem TechAge Info Werkzeug (Schraubenschlüssel) auf die Verteilerbox geklickt\\, wird angezeigt\\, wieviel Leistung die Generatoren liefern bzw. die Verbraucher im Netzwerk beziehen. \n".. + "Wird mit dem TechAge Info Werkzeug (Schraubenschlüssel) auf die Verteilerbox geklickt\\, wird angezeigt\\, wie viel Leistung die Generatoren liefern bzw. die Verbraucher im Netzwerk beziehen.\n".. "\n".. "\n".. "\n", - "Mit der TA Stromleitung und den Strommasten können halbwegs realistische Überlandleitungen realisiert werden. Die Strommasten-Köpfe dienen gleichzeitig zum Schutz der Stromleitung (Protection). Dazu muss mindestens alle 16 m ein Masten gesetzt werden. Der Schutz gilt aber nur die die Stromleitung und die Masten\\, alle anderen Blöcke in diesem Bereich sind dadurch nicht geschützt.\n".. + "Mit der TA Stromleitung und den Strommasten können halbwegs realistische Überlandleitungen realisiert werden. Die Strommasten-Köpfe dienen gleichzeitig zum Schutz der Stromleitung (Protection). Dazu muss alle 16 m oder weniger ein Masten gesetzt werden. Der Schutz gilt aber nur die die Stromleitung und die Masten\\, alle anderen Blöcke in diesem Bereich sind dadurch nicht geschützt.\n".. "\n".. "\n".. "\n", @@ -431,48 +443,289 @@ techage.manual_DE.aText = { "\n".. "\n", "Der Akku Block dient zur Speicherung von überschüssiger Energie und gibt bei Stromausfall automatisch Strom ab (soweit vorhanden).\n".. - "Der Akku Block ist eine sekundäre Stromquelle. Das bedeutet\\, bei Strombedarf werden zuerst die Generatoren genutzt. Nur wenn der Strom im Netz nicht ausreicht\\, springt der Aku Block ein. Das Gleiche gilt auch für die Stromaufnahme. Daher kann auch kein Akku mit einem anderen Akku geladen werden.\n".. + "Der Akku Block ist eine sekundäre Stromquelle. Das bedeutet\\, bei Strombedarf werden zuerst die Generatoren genutzt. Nur wenn der Strom im Netz nicht ausreicht\\, springt der Akku Block ein. Das Gleiche gilt auch für die Stromaufnahme. Daher kann auch kein Akku mit einem anderen Akku geladen werden.\n".. "Der Akku liefert 10 ku bzw. nimmt 10 ku auf.\n".. - "Bei Volllast kann ein Akku 400 s lang Strom aufnehmen und wenn er voll ist\\, auch wieder abgeben. Dies entspricht 8 h bei einem normalen Spieltag von 20 min.\n".. + "Bei Volllast kann ein Akku 400 s lang Strom aufnehmen und wenn er voll ist\\, auch wieder abgeben. Dies entspricht 8 h Spielzeit bei einem normalen Spieltag von 20 min.\n".. + "\n".. + "\n".. + "\n", + "Das Strom-Terminal muss von eine Verteilerbox platziert werden. Es zeigt Daten aus dem Stromnetz an wie:\n".. + "\n".. + " - Leistung alle Generatoren\n".. + " - Leistung alles Akkus (Sekundärquellen)\n".. + " - Leistungsaufnahme aller Maschinen\n".. + " - Anzahl der Netzwerk-Blöcke (max. 1000)\nDie Daten des Terminals werden beim Öffnen des Menüs und dann nur durch Anklicken des \"Update\" Buttons aktualisiert.\n".. + "\n".. + "\n".. + "\n", + "Der TA3 Industrieofen dient als Ergänzung zu normalen Ofen (furnace). Damit können alle Waren mit \"Koch\" Rezepte\\, auch im Industrieofen hergestellt werden. Es gibt aber auch spezielle Rezepte\\, die nur im Industrieofen hergestellt werden können.\n".. + "Der Industrieofen hat sein eigenes Menü zur Rezeptauswahl. Abhängig von den Waren im Industrieofen Inventar links kann rechts das Ausgangsprodukt gewählt werden.\n".. + "\n".. + "Der Industrieofen benötigt Strom (für das Gebläse) sowie Kohle\\, Holzkohle oder Erdöl für die Befeuerung. Der Industrieofens und muss wie im Plan rechts abgebildet\\, zusammen gebaut werden.\n".. + "\n".. + "Die Brennzeit für Kohle und Erdöl beträgt 80 s und für Holzkohle 240 s.\n".. + "\n".. + "\n".. + "\n", + "Ist Teil des TA3 Industrieofen. Muss mit Kohle\\, Holzkohle oder Erdöl befeuert werden.\n".. + "\n".. + "\n".. + "\n", + "Ist Teil des TA3 Industrieofen. Siehe TA3 Industrieofen.\n".. + "\n".. + "\n".. + "\n", + "Ist Teil des TA3 Industrieofen. Siehe TA3 Industrieofen.\n".. + "\n".. + "\n".. + "\n", + "Um deine Generatoren und Öfen mit Öl betrieben zu können\\, muss du zuerst nach Öl suchen und einen Bohrturm errichten und danach das Öl fördern.\n".. + "Dazu dienen dir TA3 Ölexplorer\\, TA3 Ölbohrkiste und TA3 Ölpumpe.\n".. + "\n".. + "\n".. + "\n", + "Mit dem Ölexplorer kannst du nach Öl suchen. Dazu den Block auf den Boden setzen und mit Rechtsklick die Suche starten.\n".. + "Über die Chat-Ausgabe wird dir angezeigt\\, in welcher Tiefe nach Öl gesucht wurde und wie viel Öl (oil) gefunden wurde.\n".. + "Du kannst bis zu 4 mal auf den Block klicken\\, um auch in tieferen Bereichen nach Öl zu suchen. Ölfelder haben eine Größe von 2000 bis zu 20000 Items.\n".. + "\n".. + "Falls die Suche erfolglos war\\, musst du den Block ca. 16 m weiter setzen.\n".. + "Der Ölexplorer sucht immer innerhalb des ganzen Map-Blocks und darunter nach Öl\\, in dem er gesetzt wurde. Eine erneute Suche im gleichen Map-Block (16x16 Feld) macht daher keinen Sinn.\n".. + "\n".. + "Falls Öl gefunden wurde\\, wird die Stelle für den Bohrturm angezeigt. Die Mitte des angezeigten Bereiches am besten gleich mit einem Schild markieren und den ganzen Bereich gegen fremde Spieler schützen.\n".. + "\n".. + "Gib die Suche nach Öl nicht zu schnell auf. Es kann wenn du Pech hast\\, sehr lange dauern\\, bis du eine Ölquelle gefunden hast.\n".. + "Es macht auch keinen Sinn\\, einen Bereich den ein anderer Spieler bereits abgesucht hat\\, nochmals abzusuchen. Die Chance\\, irgendwo Öl zu finden\\, ist für alle Spieler gleich.\n".. + "\n".. + "Der Ölexplorer kann immer wieder zur Suche nach Öl eingesetzt werden.\n".. + "\n".. + "\n".. + "\n", + "Die Ölbohrkiste muss genau an die Stelle gesetzt werden\\, die vom Ölexplorer angezeigt wurde.\n".. + "Wird auf den Button der Ölbohrkiste geklickt\\, wird über der Kiste ein Bohrturm errichtet. Dies dauert einige Sekunden.\n".. + "Die Ölbohrkiste hat 4 Seiten\\, bei IN muss das Bohrgestänge über Schieber angeliefert und bei OUT muss das Bohrmaterial abtransportiert werden. Über eine der anderen zwei Seiten muss die Ölbohrkiste mit Strom versorgt werden.\n".. + "\n".. + "Die Ölbohrkiste bohrt bis zum Ölfeld (1 Meter in 16 s) und benötigt dazu 10 ku Strom.\n".. + "Wurde das Ölfeld erreicht\\, kann der Bohrturm abgebaut und die Kiste entfernt werden.\n".. + "\n".. + "\n".. + "\n", + "An die Stelle der Ölbohrkiste muss nun die Ölpumpe platziert werden. Auch die Ölpumpe benötigt Strom (16 ku) und liefert alle 8 s ein Erdöl-Item\\, das in einer Kiste gesammelt werden muss. Dazu muss die Ölpumpe über eine Röhre mit der Kiste verbunden werden.\n".. + "Ist alles Öl abgepumpt\\, kann auch die Ölpumpe wieder entfernt werden.\n".. + "\n".. + "\n".. + "\n", + "Das Bohrgestänge wird für die Bohrung benötigt. Es werden so viele Bohrgestänge Items benötigt wie als Tiefe für das Ölfeld angegeben wurde. Das Bohrgestänge ist nach der Bohrung nutzlos\\, kann aber auch nicht abgebaut werden und verbleibt im Boden.\n".. + "\n".. + "\n".. + "\n", + "Neben den Röhren für Warentransport\\, sowie den Gas- und Stromleitungen gibt es auch noch eine drahtlose Kommunikationsebene\\, über die Blöcke untereinander Daten austauschen können. Dafür müssen keine Leitungen gezogen werden\\, sondern die Verbindung zwischen Sender und Empfänger erfolgt nur über die Blocknummer. Alle Blöcke\\, die an dieser Kommunikation teilnehmen können\\, zeigen die Blocknummer als Info-Text an\\, wenn man mit dem Mauscursor den Block fixiert.\n".. + "Welche Kommandos ein Block unterstützt\\, kann mit dem TechAge Info Werkzeug (Schraubenschlüssel) ausgelesen und angezeigt werden.\n".. + "Die einfachsten Kommandos\\, die von fast allen Blöcken unterstützt werden\\, sind:\n".. + "\n".. + " - 'on' - Block/Maschine/Lampe einschalten\n".. + " - 'off' - Block/Maschine/Lampe ausschalten\n".. + "\n".. + "Mir Hilfe des TA3 Terminal können diese Kommandos sehr einfach ausprobiert werden. Angenommen\\, eine Signallampe hat die Nummer 123.\n".. + "Dann kann mit:\n".. + "\n".. + " cmd 123 on\n".. + "\n".. + "die Lampe ein\\, und mit:\n".. + "\n".. + " cmd 123 off\n".. + "\n".. + "die Lampe wieder ausgeschaltet werden. Diese Kommandos müssen so in das Eingabefeld des TA3 Terminals eingegeben werden.\n".. + "\n".. + "Kommandos wie 'on' und 'off' werden zum Empfänger gesendet\\, ohne dass eine Antwort zurück kommt. Diese Kommandos können daher bspw. mit einem Taster/Schalter auch gleichzeitig an mehrere Empfänger gesendet werden\\, wenn dort im Eingabefeld mehrere Nummern eingegeben werden.\n".. + "\n".. + "Ein Kommandos wie 'state' fordert den Status eines Blockes an. Der Block sendet in Folge seinen Status zurück. Diese Art von bestätigten Kommandos kann gleichzeitig nur an einen Empfänger gesendet werden.\n".. + "Auch dieses Kommandos kann mit dem TA3 Terminal bspw. an einem Schieber ausprobiert werden:\n".. + "\n".. + " cmd 123 state\n".. + "\n".. + "Mögliche Antworten des Schiebers sind:\n".. + "\n".. + " - 'running' --> bin am arbeiten\n".. + " - 'stopped' --> ausgeschaltet\n".. + " - 'standby' --> nichts zu tun\\, da Quell-Inventar leer\n".. + " - 'blocked' --> kann nichts tun\\, da Ziel-Inventar voll\n".. + "\n".. + "Dieser Status wird bei vielen Blöcken gleichzeitig auch über den Info-Text angezeigt.\n".. + "\n".. + "\n".. + "\n", + "Der Taster/Schalter sendet 'on'/'off' Kommandos zu den Blöcken\\, die über die Nummern konfiguriert wurden.\n".. + "Der Taster/Schalter kann als Taster (button) oder Schalter (switch) konfiguriert werden. Wird er als Taster konfiguriert\\, so kann die Zeit zwischen den 'on' und 'off' Kommandos eingestellt werden.\n".. + "\n".. + "Über die Checkbox \"public\" kann eingestellt werden\\, ob den Taster von jedem (gesetzt)\\, oder nur vom Besitzer selbst (nicht gesetzt) genutzt werden darf.\n".. + "\n".. + "Hinweis: Mit dem Programmer können Blocknummern sehr einfach eingesammelt und konfiguriert werden.\n".. + "\n".. + "\n".. + "\n", + "Den TA3 Logikblock kann man so programmieren\\, dass ein oder mehrere Eingangssignale zu einem Ausgangssignal verknüpft und gesendet werden. Dieser Block kann daher diverse Logik-Elemente wie AND\\, OR\\, NOT\\, XOR usw. ersetzen.\n".. + "Eingangssignale für den Logikblock sind 'on'/'off' Kommandos. Ein 'on' ist ein logisches 'true'\\, ein 'off' entspricht dem 'false'.\n".. + "Eingangssignale werden über die Nummer referenziert\\, also bspw. 'n123' für das Signal vom Sender mit der Nummer 123.\n".. + "\n".. + "*Beispiele für den IF Ausdruck*\n".. + "\n".. + "Signal negieren (NOT):\n".. + "\n".. + " not n123\n".. + "\n".. + "Logisches UND (AND):\n".. + "\n".. + " n123 and n345\n".. + "\n".. + "Logisches ODER (OR):\n".. + "\n".. + " n123 or n345\n".. + "\n".. + "Ist der 'if'-Ausdruck wahr (true)\\, wird der 'then' Zweig ausgeführt\\, anderenfalls der 'else' Zweig.\n".. + "Bei 'then' und 'else' kann entweder 'true'\\, 'false'\\, oder nichts eingegeben werden:\n".. + "\n".. + " - bei 'true' wird 'on' gesendet\n".. + " - bei 'false' wird 'off' gesendet\n".. + " - wird nichts eingegeben\\, wird auch nichts gesendet\n".. + "\n".. + "Den oder die Ziel-Blöcke für das Ausgangssignal muss man im Zielnummern-Feld eingeben.\n".. + "\n".. + "\n".. + "\n", + "Der Wiederholer (repeater) sendet das empfangene Signal an alle konfigurierten Nummern weiter.\n".. + "Dies kann bspw. Sinn machen\\, wenn man viele Blöcke gleichzeitig angesteuert werden sollen. Den Wiederholer kann man dazu mit dem Programmer konfigurieren\\, was nicht bei allen Blöcken möglich ist.\n".. + "\n".. + "\n".. + "\n", + "Der Sequenzer kann eine Reihe von 'on'/'off' Kommandos senden\\, wobei der Abstand zwischen den Kommandos in Sekunden angegeben werden muss. Damit kann man bspw. eine Lampe blinken lassen.\n".. + "Es können bis zu 8 Kommandos konfiguriert werden\\, jedes mit Zielblocknummer und Anstand zum nächsten Kommando.\n".. + "Der Sequenzer wiederholt die Kommandos endlos\\, wenn \"Run endless\" gesetzt wird.\n".. + "Wird also Kommando nichts ausgewählt\\, wird nur die angegeben Zeit in Sekunden gewartet.\n".. + "\n".. + "\n".. + "\n", + "Der Timer kann Kommandos Spielzeit-gesteuert senden. Für jede Kommandozeile kann die Uhrzeit\\, die Zielnummer(n) und das Kommando selbst angegeben werden. Damit lassen sich bspw. Lampen abends ein- und morgens wieder ausschalten.\n".. + "\n".. + "\n".. + "\n", + "Das Terminal dient in erster Linie zum Austesten der Kommandoschnittstelle anderer Blöcke (siehe \"Logik-/Schalt-Blöcke\").\n".. + "Man kann aber auch Kommandos auf Tasten legen und so das Terminal produktiv nutzen.\n".. + "\n".. + " set \n".. + "\n".. + "Mit 'set 1 ON cmd 123 on' kann bspw. die Usertaste 1 mit dem Kommando 'cnd 123 on' programmiert werden. Wird die Taste gedrückt\\, wird das Kommando gesendet und die Antwort auf dem Bildschirm ausgegeben.\n".. + "\n".. + "Das Terminal besitzt folgende\\, lokalen Kommandos:\n".. + "\n".. + " - 'clear' lösche Bildschirm\n".. + " - 'help' gib eine Hilfeseite aus\n".. + " - 'pub' schalte in den öffentlichen Modus um\n".. + " - 'priv' schalte in den privaten Modus um\n".. + "\n".. + "Im privaten Modul kann nur der Besitzer selbst Kommandos eingeben oder Tasten nutzen.\n".. + "\n".. + "\n".. + "\n", + "Die Signallampe kann mit 'on'/'off' Kommando ein- bzw. ausgeschaltet werden. Diese Lampe braucht keinen Strom und\n".. + "kann mit der Spritzpistole farbig gemacht werden.\n".. + "\n".. + "\n".. + "\n", + "Diese Blöcke kann man mit einem 'off' Kommando verschwinden lassen und mit dem 'on' Kommando wieder hervor zaubern.\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".. + "\n".. + "\n".. + "\n", + "Detektoren scannen ihre Umgebung ab und senden ein 'on'-Kommando\\, wenn das Gesuchte erkannt wurde.\n".. + "\n".. + "\n".. + "\n", + "Der Detektor ist eine spezieller Röhrenblock\\, der erkennt\\, wenn Items über die Röhre weitergegeben werden. Es muss dazu auf beiden Seiten mit der Röhre verbunden sein.\n".. + "Er sendet ein 'on'\\, wenn ein Item erkannt wird\\, gefolgt von einem 'off' eine Sekunde später.\n".. + "Danach werden weitere Kommando für 8 Sekunden blockiert.\n".. + "\n".. + "\n".. + "\n", + "Der Wagen Detektor sendet ein 'on'-Kommando\\, wenn er einen Wagen/Cart (Minecart) direkt vor sich erkannt hat. Zusätzlich kann der Detektor auch den Wagen wieder starten\\, wenn ein 'on'-Kommando empfangen wird.\n".. + "\n".. + "\n".. + "\n", + "Der Block Detektor sendet ein 'on'-Kommando\\, wenn er erkennt\\, dass Blöcke vor ihm erscheinen oder verschwinden\\, muss jedoch entsprechend konfiguriert werden. Nach dem Zurückschalten des Detektors in den Standardzustand (grauer Block) wird ein 'off'-Kommando gesendet. Gültige Blöcke sind alle Arten von Blöcken und Pflanzen\\, aber keine Tiere oder Spieler. Die Sensorreichweite beträgt 3 Blöcke/Meter in Pfeilrichtung.\n".. + "\n".. + "\n".. + "\n", + "Der Spieler Detektor sendet ein 'on'-Kommando\\, wenn er einen Spieler in einem Umkreis von 4 m um den Block herum erkennt. Verlässt der Spieler wieder den Bereich\\, wird ein 'off'-Kommando gesendet.\n".. + "Soll die Suche auf bestimmte Spieler eingegrenzt werden\\, so können diese Spielernamen auch eingegeben 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".. + "\n".. + "\n", + "Die Funktion entspricht der von TA2.\n".. + "Die Verarbeitungsleistung beträgt 6 Items alle 2 s.\n".. + "\n".. + "\n".. + "\n", + "Die Funktion entspricht der von TA2.\n".. + "Die Verarbeitungsleistung beträgt 12 Items alle 4 s.\n".. + "\n".. + "\n".. + "\n", + "Die Funktion entspricht der von TA2.\n".. + "Die Verarbeitungsleistung beträgt 2 Items alle 4 s. Der Autocrafter benötigt hierfür 6 ku Strom.\n".. + "\n".. + "\n".. + "\n", + "Die Funktion entspricht der von TA2\\, nur werden hier TA4 WLAN Chips produziert.\n".. + "Die Verarbeitungsleistung beträgt ein Chip alle 6 s. Der Block benötigt hierfür 12 ku Strom.\n".. + "\n".. + "\n".. + "\n", + "Der TA3 Trichter sammelt abgelegte Gegenstände und speichert sie in seinem Inventar. Gegenstände werden angesaugt\\, wenn sie auf den Trichterblock fallen.\n".. + "Der Scanradius beträgt 1 m.\n".. + "\n".. + "\n".. + "\n", + "Die Funktion entspricht der von TA2.\n".. + "Die Verarbeitungsleistung beträgt 2 Items alle 4 s. Der Block benötigt 4 ku Strom.\n".. + "\n".. + "\n".. + "\n", + "Die Funktion entspricht der von TA2.\n".. + "Die Verarbeitungsleistung beträgt 2 Items alle 4 s. Der Block benötigt 6 ku Strom.\n".. + "\n".. + "\n".. + "\n", + "Die Funktion entspricht der von TA2.\n".. + "Die Verarbeitungsleistung ist 2 Items alle 8 s. Der Block benötigt 5 ku Strom.\n".. "\n".. "\n".. "\n", "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", + "Das Techage Info Tool (Schraubenschlüssel) hat verschiedene Funktionen. Er zeigt die Uhrzeit\\, die Position\\, die Temperatur und das Biome an\\, wenn auf einen unbekannten Block geklickt wird.\n".. + "Wird auf einen TechAge Block mit Kommandoschnittstelle geklickt\\, werden alle verfügbaren Daten abgerufen (siehe auch \"Logik-/Schalt-Blöcke\").\n".. + "\n".. + "\n".. + "\n", + "Mit dem Programmer können Blocknummern mit einem Rechtsklick von mehreren Blöcken eingesammelt und mit einem Linksklick in einen Block wie Taster/Schalter geschrieben werden.\n".. + "Wird in die Luft geklickt\\, wird der interne Speicher gelöscht.\n".. + "\n".. + "\n".. + "\n", + "Die Kelle dient zum Verputzen von Stromkabel. Siehe dazu \"TA Stromkabel\".\n".. + "\n".. + "\n".. + "\n", } techage.manual_DE.aItemName = { "wlanchip", "", - "iron", + "techage_ta1", "", "", "ta1_gravelsieve", @@ -481,7 +734,7 @@ techage.manual_DE.aItemName = { "ta1_hopper", "", "meridium", - "", + "techage_ta2", "", "ta2_firebox", "ta2_boiler", @@ -502,7 +755,8 @@ techage.manual_DE.aItemName = { "ta2_electronicfab", "", "ta2_liquidsampler", - "", + "ta2_chest", + "techage_ta3", "", "ta3_firebox", "ta3_boiler", @@ -520,36 +774,43 @@ techage.manual_DE.aItemName = { "ta3_powerswitchbox", "ta3_tinygenerator", "ta3_akkublock", + "ta3_powerterminal", "", + "ta3_furnacefirebox", + "ta3_furnace", + "ta3_booster", + "techage_ta3", + "ta3_oilexplorer", + "ta3_drillbox", + "ta3_pumpjack", + "ta3_drillbit", + "ta3_logic", + "ta3_button", + "ta3_logic", + "ta3_repeater", + "ta3_sequencer", + "ta3_timer", + "ta3_terminal", + "ta3_signallamp", + "ta3_doorblock", + "ta3_nodedetector", + "ta3_detector", + "ta3_cartdetector", + "ta3_nodedetector", + "ta3_playerdetector", + "ta3_grinder", + "ta3_pusher", + "ta3_distributor", + "ta3_autocrafter", + "ta3_electronicfab", + "ta3_funnel", + "ta3_gravelsieve", + "ta3_grinder", + "ta3_liquidsampler", "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", + "ta3_end_wrench", + "ta3_programmer", + "ta3_trowel", } techage.manual_DE.aPlanTable = { @@ -586,6 +847,7 @@ techage.manual_DE.aPlanTable = { "", "", "", + "", "coalpowerstation", "", "", @@ -604,6 +866,13 @@ techage.manual_DE.aPlanTable = { "", "", "", + "ta3_furnace", + "", + "", + "", + "", + "", + "", "", "", "", diff --git a/doc/plans.lua b/doc/plans.lua index 79a599b..9799556 100644 --- a/doc/plans.lua +++ b/doc/plans.lua @@ -14,6 +14,14 @@ techage.ConstructionPlans = {} + +local IMG_1 = {"", "techage_ta1.png"} +local IMG_2 = {"", "techage_ta2.png"} +local IMG_3 = {"", "techage_ta3.png"} +local IMG_4 = {"", "techage_ta4.png"} +local IMG41 = {"", "techage_ta4_tes.png"} + + -- -- TA1: Coal Pile -- @@ -38,14 +46,14 @@ local MEPOT = {"default_cobble.png^techage_meltingpot.png", "techage:meltingpot" local FLAME = {"techage_flame.png", nil} techage.ConstructionPlans["coalburner"] = { - {false, false, false, MEPOT, false}, - {false, false, false, FLAME, false}, - {false, false, COBBL, CCOAL, COBBL}, - {false, false, COBBL, CCOAL, COBBL}, - {false, false, COBBL, CCOAL, COBBL}, - {false, false, COBBL, CCOAL, COBBL}, - {false, false, false, LIGTR, COBBL}, - {false, false, COBBL, COBBL, COBBL}, + {false, false, MEPOT, false, false, IMG_1, false}, + {false, false, FLAME, false}, + {false, COBBL, CCOAL, COBBL}, + {false, COBBL, CCOAL, COBBL}, + {false, COBBL, CCOAL, COBBL}, + {false, COBBL, CCOAL, COBBL}, + {false, false, LIGTR, COBBL}, + {false, COBBL, COBBL, COBBL}, } -- @@ -78,12 +86,12 @@ local CYLIN = {"techage_filling_ta2.png^techage_cylinder.png^techage_frame_ta2.p local FLYWH = {"techage_filling_ta2.png^techage_frame_ta2.png^techage_flywheel.png^[transformFX]", "techage:flywheel"} techage.ConstructionPlans["steamengine"] = { + {false, false, false, false, false, IMG_2, false}, {false, false, false, false, false, false, false}, - {false, false, false, false, false, false, false}, - {false, false, PK000, PI000, PK270, false, false}, - {false, false, BOIL2, false, PI090, false, false}, - {false, false, BOIL1, false, PI090, false, false}, - {false, false, FIBOX, false, PK090, CYLIN, FLYWH}, + {false, PK000, PI000, PK270, false, false, false}, + {false, BOIL2, false, PI090, false, false, false}, + {false, BOIL1, false, PI090, false, false, false}, + {false, FIBOX, false, PK090, CYLIN, FLYWH, false}, } -- @@ -116,18 +124,6 @@ techage.ConstructionPlans["gravelrinser"] = { {false, GLASS, WATER, GLASS, GLASS, GLASS, GLASS, GLASS}, {false, DDIRT, DDIRT, TK000, RINSR, TK270, HOPPR, CHEST}, } ---local Tube = "techage_tube_knee.png" ---local Tube2 = "techage_tube_knee.png^[transformR270" ---local Rinser = "techage_filling_ta2.png^techage_appl_rinser.png^techage_frame_ta2.png" ---local Hopper = "techage_hopper.png" ---local Glass = "default_glass.png" ---local Water = "default_water.png" ---local Chest = "default_chest_lock.png" ---local Dirt = "default_dirt.png" - ---local Images = { ---} - -- -- Coal Power Station @@ -157,12 +153,13 @@ local Tubes = {"techage_tube_tube.png", "techage:tubeS"} local Pushr = {"techage_appl_pusher.png^techage_frame_ta3.png", "techage:ta3_pusher_pas"} local Boost = {"techage_filling_ta3.png^techage_appl_compressor.png^[transformFX^techage_frame_ta3.png", "techage:ta3_booster"} local Fibox = {"techage_concrete.png^techage_appl_firehole.png^techage_frame_ta3.png", "techage:furnace_firebox"} -local Furnc = {"techage_concrete.png^techage_appl_furnace.png^techage_frame_ta3.png", "ta3_furnace_pas"} +local Furnc = {"techage_concrete.png^techage_appl_furnace.png^techage_frame_ta3.png", "techage:ta3_furnace_pas"} techage.ConstructionPlans["ta3_furnace"] = { - {false, false, false, false, false, false, false}, - {Tubes, Pushr, Tubes, Furnc, Tubes, Pushr, Tube}, - {false, Cable, Boost, Fibox, false, false, false}, + {false, false, false, false, false, false, false, false}, + {false, false, false, false, false, false, false, false}, + {false, Tubes, Pushr, Tubes, Furnc, Tubes, Pushr, Tubes}, + {false, false, Cable, Boost, Fibox, false, false, false}, } @@ -186,7 +183,7 @@ local INLET = {"basic_materials_concrete_block.png^techage_gaspipe.png^[transfor local OGLAS = {"default_obsidian_glass.png", "default:obsidian_glass"} techage.ConstructionPlans["storagesystem"] = { - {false, false, false, false, false, false, false, false, false, false, false}, + {false, false, false, false, false, false, false, false, false, IMG41, false}, {false, false, false, PN000, PIPEH, PIPEH, PN270, false, false, false, false}, {false, CONCR, CONCR, INLET, CONCR, CONCR, PIPEV, false, false, false, false}, {false, CONCR, GRAVL, GRAVL, GRAVL, CONCR, PN090, HEXR1, PIPEH, PN270, false}, diff --git a/manuals/manual_ta1_DE.md b/manuals/manual_ta1_DE.md index 4d5f002..b9acdbb 100644 --- a/manuals/manual_ta1_DE.md +++ b/manuals/manual_ta1_DE.md @@ -4,7 +4,8 @@ In TA1 geht es darum, mit einfachen Werkzeugen und Gerätschaften ausreichend Er Natürlich muss es für ein Eisenzeitalter auch Eisen geben und nicht nur Stahl (steel), wie in "Minetest Game". Daher wurden einige Rezepte geändert, so dass zuerst Eisen hergestellt werden muss und erst später dann Stahl. -[iron](/image/) +[techage_ta1](/image/) + ## Köhler @@ -25,6 +26,7 @@ Dann kannst du die 9 Holzkohleblöcke entnehmen und den Köhler erneut füllen. [coalpile](/plan/) + ## Kohlebrenner Den Kohlebrenner benötigst du bspw. um Eisen und andere Erze im Schmelztiegel zu schmelzen. Es gibt verschiedene Rezepte, welche verschiedene Temperaturen benötigen. Je höher der Turm, um so heißer ist die Flamme. Eine Höhe von 11 Blöcken über der Bodenplatte ist für alle Rezepte, ein Brenner mit dieser Höhe benötigt aber auch mehr Holzkohle. @@ -44,18 +46,21 @@ Der Schmelztiegel hat ein eigenes Menü mit Rezepten und ein Inventar, wo du die [coalburner](/plan/) + ## Erze und Werkzeuge TA1 hat seine eigenen Werkzeuge wie Hammer und Kiessieb, aber auch bereits eine Maschine zur Automatisierung, den TA1 Trichter (hopper). [ta1_gravelsieve](/image/) + ### Hammer Mit dem TA1 Hammer kann Stein (stone) in einer Mine, aber auch Steine (cobble) zu Kies (gravel) geklopft werden. Der Hammer ist in verschiedenen Ausführungen und damit verschiedenen Eigenschaften verfügbar: Bronze, Stahl, Mese und Diamant. [hammer](/image/) + ### Kiessieb Mit dem Kiessieb können Erze aus dem Kies gesiebt werden. Dazu mit dem Kies (gravel) auf das Sieb klicken. Das gesiebte Kies und die Erze fallen unten heraus. @@ -64,6 +69,7 @@ Um hier nicht stundenlang am Sieb zu stehen, kann das Sieben mit dem Trichter (h [ta1_gravelsieve](/image/) + ### Trichter Der Trichter saugt Gegenstände (items) von oben ein und gibt diese nach rechts weiter. Beim Platzieren des Trichters muss daher auf die Ausgaberichtung geachtet werden. @@ -74,6 +80,7 @@ Der Trichter kann auch Items in Kisten legen, sofern die Kiste neben dem Trichte [ta1_hopper](/image/) + ### Kies sieben mit dem Trichter Mit Hilfe von zwei Kisten, zwei Trichtern und einem Kiessieb kann der Siebevorgang automatisiert werden. Der Plan rechts zeigt den Aufbau. @@ -82,6 +89,7 @@ Bei den Kisten darauf achten, dass es die "chest_locked" ist, sonst klaut dir je [hoppersieve](/plan/) + ### Meridium TA1 hat seine eigene Metalllegierung Meridium. Meridium Ingots können mit dem Kohlebrenner aus Stahl und Mesesplitter hergestellt werden. Meridium leuchtet im Dunkeln. Auch Werkzeuge aus Meridium leuchten und sind daher im Untertagebau sehr hilfreich. diff --git a/manuals/manual_ta1_EN.md b/manuals/manual_ta1_EN.md index d6d77d7..d5ffbde 100644 --- a/manuals/manual_ta1_EN.md +++ b/manuals/manual_ta1_EN.md @@ -523,9 +523,7 @@ techage.register_entry_page("ta3l", "node_detector", techage.register_entry_page("ta3l", "player_detector", S("TA3 Player Detector"), - S("The Player Detector sends a 'on' signal when it detects a player@n".. - "within a radius of 4 m around the node.@n".. - "The detector can be configured with player names to scan for."), + S(funnel."), "techage:ta3_playerdetector_off") techage.register_entry_page("ta3l", "programmer", diff --git a/manuals/manual_ta2_DE.md b/manuals/manual_ta2_DE.md index 4f6ce13..9e560bd 100644 --- a/manuals/manual_ta2_DE.md +++ b/manuals/manual_ta2_DE.md @@ -4,6 +4,8 @@ In TA2 geht es darum, erste Maschinen zur Verarbeitung von Erzen zu bauen und z In TA2 steht auch ein Kiesspüler zur Verfügung, mit dem seltene Erze wie Usmium Nuggets ausgewaschen werden können. Diese Nuggets wirst du später für weitere Rezepte brauchen. +[techage_ta2](/image/) + ## Dampfmaschine Die Dampfmaschine besteht aus mehreren Blöcken und muss wie im Plan rechts abgebildet, zusammen gebaut werden. Dazu werden die Blöcke TA2 Feuerbox, TA2 Boiler oben, TA2 Boiler unten, TA2 Zylinder, TA2 Schwungrad und Dampfleitungen benötigt. @@ -17,16 +19,15 @@ Bei allen Blöcken beim Setzen immer auch die Ausrichtung achten: - Antriebsachse beim Schwungrad nur rechts - bei allen Maschinen kann die Antriebsachse an allen Seiten angeschlossen werden, welche nicht durch andere Funktionen belegt wird, wie bspw. die IN und OUT Löcher bei Mühle und Sieb. -Der Boiler muss mit Wasser gefüllt werden. Dazu bis zu 10 Eimer Wasser in den Boiler füllen. - -Die Feuerbox muss mit Kohle oder Holzkohle gefüllt werden. - +Der Boiler muss mit Wasser gefüllt werden. Dazu bis zu 10 Eimer Wasser in den Boiler füllen. +Die Feuerbox muss mit Kohle oder Holzkohle gefüllt werden. Wenn das Wasser heiß ist, kann das Ventil am Boiler geöffnet und anschließend die Dampfmaschine am Schwungrad gestartet werden. Die Dampfmaschine leistet 25 ku, kann damit mehrere Maschinen gleichzeitig antreiben. [steamengine](/plan/) + ### TA2 Feuerbox Teil der Dampfmaschine. @@ -36,7 +37,6 @@ Die Feuerbox muss mit Kohle oder Holzkohle gefüllt werden. Die Brenndauer ist a [ta2_firebox](/image/) - ### TA2 Boiler Teil der Dampfmaschine. Muss mit Wasser gefüllt werden. Wem kein Wasser mehr vorhanden ist oder die Temperatur zu weit absinkt, schaltet sich der Boiler ab. @@ -44,7 +44,6 @@ Teil der Dampfmaschine. Muss mit Wasser gefüllt werden. Wem kein Wasser mehr vo [ta2_boiler](/image/) - ### TA2 Zylinder Teil der Dampfmaschine. @@ -52,7 +51,6 @@ Teil der Dampfmaschine. [ta2_cylinder](/image/) - ### TA2 Schwungrad Antriebsteil der Dampfmaschine. Das Schwungrad muss über Antriebsachsen mit den Maschinen verbunden werden. @@ -60,19 +58,20 @@ Antriebsteil der Dampfmaschine. Das Schwungrad muss über Antriebsachsen mit den [ta2_flywheel](/image/) - ### TA2 Dampfleitungen Teil der Dampfmaschine. Der Boiler muss mit dem Zylinder über die Dampfleitungen (steam pipes) verbunden werden. Die Dampfleitung besitzt keine Abzweigungen, die maximale Länge beträgt 12 m (Blöcke). [ta2_steampipe](/image/) + ## Items schieben und sortieren Um Gegenstände (Items) von einer Verarbeitungsstation zur nächsten weiter zu transportieren, werden Schieber und Röhren verwendet. Siehe Plan. [itemtransport](/plan/) + ### Röhren Zwei Maschinen können mit Hilfe eines Schiebers und einer Röhre (tube) verbunden werden. Röhren besitzen keine Abzweigungen. Die maximale Länge beträgt 200 m (Blöcke). @@ -83,6 +82,7 @@ Die Transportkapazität einer Röhre ist unbegrenzt und nur durch die Schieber b [tube](/image/) + ### TA2 Schieber Ein Schieber ist in der Lage, Items aus Kisten oder Maschinen zu ziehen und in andere Kisten oder Maschinen zu schieben. Oder anders gesagt: Zwischen zwei Blöcken mit Inventar muss ein und genau ein Schieber sein. Mehrere Schieber in Reihe sind nicht möglich. @@ -93,6 +93,7 @@ Der Verarbeitungsleistung eines TA2 Schiebers beträgt 2 Items alle 2 s. [ta2_pusher](/image/) + ### TA2 Verteiler Der Verteiler ist in der Lage, die Items aus seinem Inventar sortieren in bis zu vier Richtungen weiter zu transportieren. Dazu muss der Verteiler entsprechend konfiguriert werden. @@ -107,7 +108,7 @@ Für einen nicht-konfigurierten Ausgang gibt es zwei Betriebsarten: Im ersten Fall werden immer alle Items weitergeleitet und der Verteiler läuft nicht voll. Im zweiten Fall werden Items zurückgehalten und der Verteiler kann voll laufen und in der Folge blockieren. -Einstellbar ist die Betriebsart ist über die ">>|" Checkbox (an => Betriebsart 2) +Einstellbar ist die Betriebsart über die ">>|" Checkbox (an => Betriebsart 2) Wird nur ein Ausgang aktiviert und mit mehreren Items konfiguriert, so kann die 1:1 Checkbox angeklickt werden. In diesem Falle werden Items streng gemäß der Filtereinstellung weitergegeben. Fehlt ein Item in der Reihenfolge, blockiert der Verteiler. Damit lassen sich andere Maschinen wie bspw. der Autocrafter exakt gemäß dem eingestellten Rezept bestücken. @@ -115,6 +116,7 @@ Der Verarbeitungsleistung eines TA2 Verteilers beträgt 4 Items alle 2 s, wobei [ta2_distributor](/image/) + ## Kieswaschanlage Die Kieswaschanlage ist eine komplexere Maschine mit dem Ziel, Usmium Nuggets aus gesiebtem Kies auszuwaschen. Für den Aufbau wird ein TA2 Kiesspüler mit Achsenantrieb, ein Trichter, eine Kiste, sowie fließendes Wasser benötigt. @@ -129,9 +131,10 @@ Das Ganze umgeben von weiteren Glasblöcken, so dass das Wasser über den Kiessp [gravelrinser](/plan/) + ### TA2 Kiesspüler -Der Kiesspüler ist in der Lade, aus bereits gesiebtem Kies die Erze Usmium und Kupfer auszuspülen, sofern dieser von Wasser überspült wird. +Der Kiesspüler ist in der Lade, aus bereits gesiebtem Kies die Erze Usmium und Kupfer auszuspülen, sofern dieser von Wasser überspült wird. Ob der Kiesspüler korrekt arbeitet, kann mit Hilfe von Stöcken (sticks) getestet werden, wenn diese in das Inventar des Kiesspülers getan werden. Diese müssen einzeln ausgespült und vom Trichter eingefangen werden. @@ -139,42 +142,46 @@ Die Verarbeitungsleistung ist ein Kies Item alle 2 s. Der Kiesspüler benötigt [ta2_rinser](/image/) + ## Stein mahlen und sieben Das Mahlen und Siebe von Gestein dient zur Gewinnung von Erzen. Gesiebtes Kies kann aber auch anderweitig genutzt werden. Mühle und Sieb müssen angetrieben und damit in der Nähe einer Dampfmaschine aufgebaut werden. [ta2_grinder](/image/) + ### TA2 Mühle -Die Mühle ist in der Lage, verschiedenes Gestein, aber auch Holz und andere Items zu mahlen. - -Die Verarbeitungsleistung ist ein Item alle 2 s. Die Mühle benötigt 4 ku Energie. +Die Mühle ist in der Lage, verschiedenes Gestein, aber auch Holz und andere Items zu mahlen. +Die Verarbeitungsleistung ist ein Item alle 4 s. Die Mühle benötigt 4 ku Energie. [ta2_grinder](/image/) + ### TA2 Kiessieb -Das Kiessieb ist in der Lage, Kies zu sieben um Erze zu gewinnen. Als Ergebnis erhält man teilweise "gesiebtes Kies", was nicht wieder gesiebt werden kann. - -Die Verarbeitungsleistung ist ein Item alle 2 s. Die Kiessieb benötigt 3 ku Energie. +Das Kiessieb ist in der Lage, Kies zu sieben um Erze zu gewinnen. Als Ergebnis erhält man teilweise "gesiebtes Kies", was nicht wieder gesiebt werden kann. +Die Verarbeitungsleistung ist ein Item alle 4 s. Das Kiessieb benötigt 3 ku Energie. [ta2_gravelsieve](/image/) + ## Items produzieren Mit TA2 Maschinen können nicht nur Erze gewonnen, sondern auch Gegenstände hergestellt werden. + ### TA2 Autocrafter Der Autocrafter dient zur automatischen Herstellung von Waren. Alles was der Spieler über das "Crafting Grid" herstellen kann, kann auch durch den Autocrafter erledigt werden. Dazu müssen im Menü des Autocrafters das Rezept eingegeben und die notwendigen Zutaten hinzugefügt werden. -Zutaten und hergestellte Waren können über Rühren und Schieber in und aus dem Block transportiert werden. +Zutaten und hergestellte Waren können über Röhren und Schieber in und aus dem Block transportiert werden. Die Verarbeitungsleistung ist ein Item alle 4 s. Der Autocrafter benötigt 4 ku Energie. [ta2_autocrafter](/image/) + ### TA2 Elektronikfabrik Die Elektronikfabrik ist eine Spezialmaschine und nur für die Herstellung der Vakuumröhren nutzbar. Vakuumröhren werden für TA3 Maschinen und Blöcke benötigt. @@ -183,6 +190,7 @@ Die Verarbeitungsleistung ist eine Vakuumröhre alle 6 s. Die Elektronikfabrik b [ta2_electronicfab](/image/) + ## Sonstige Blöcke ### TA2 Flüssigkeitensammler @@ -192,3 +200,11 @@ Für manche Rezepte wird Wasser benötigt. Damit auch diese Rezepte automatisier Die Verarbeitungsleistung ist ein Wassereimer alle 8 s. Der Flüssigkeitensammler benötigt 3 ku Energie. [ta2_liquidsampler](/image/) + + +### TA2 Gesicherte Kiste + +Die gesicherte Kiste kann nur von den Spielern genutzt werden, die an diesem Ort auch bauen können, also Protection Rechte besitzen. Es spielt dabei keine Rolle, wer die Kiste setzt. + +[ta2_chest](/image/) + diff --git a/manuals/manual_ta3_DE.md b/manuals/manual_ta3_DE.md index 196d842..142fa3f 100644 --- a/manuals/manual_ta3_DE.md +++ b/manuals/manual_ta3_DE.md @@ -6,6 +6,7 @@ Dazu musst du Kohlekraftwerke und Generatoren bauen. Bald wirst du sehen, dass d Das Industrielle Zeitalter ist auf seinem Höhepunkt. +[techage_ta3](/image/) ## Kohlekraftwerk @@ -59,29 +60,29 @@ Dient zur Abkühlung des heißen Dampfs aus der Turbine. Muss über Dampfleitun ## Eletrischer Strom -In TA3 (und TA4) werden die Maschinen mit Strom angetrieben. Dazu müssen die Maschinen und Generatoren mit Stromkabel verbunden werden. +In TA3 (und TA4) werden die Maschinen mit Strom angetrieben. Dazu müssen die Maschinen und Generatoren mit Stromkabel verbunden werden. Tech Age besitzt 2 Arten von Stromkabel: - Isolierte Kabel (TA Stromkabel) für die lokale Verkabelung im Boden oder in Gebäuden. Diese Kabel lassen sich in der Wand oder im Boden verstecken (können mit der Kelle "verputzt" werden). - Überlandleitungen (TA Stromleitung) für Freiluftverkabelung über große Strecken. Diese Kabel sind geschützt, können also von anderen Spielern nicht entfernt werden. -Verbraucher aber auch Generatoren können in einem Stromnetzwerk parallel betrieben werden. Mit Hilfe der Verteilerboxen können so große Netzwerke aufgebaut werden. -Wird zu wenig Strom bereitgestellt, gehen Teile der Verbraucher aus, bzw. Lampen können flackern. -In diesem Zusammenhang ist auch wichtig, dass die Funktionsweise von Forceload Blöcken verstanden wurde, denn Generatoren liefern bspw. nur Strom, wenn der entsprechende Map-Block geladen ist. Dies kann mit einen Forceload Block erzwungen werden. +Mehrere Verbraucher und Generatoren können in einem Stromnetzwerk zusammen betrieben werden. Mit Hilfe der Verteilerboxen können so große Netzwerke aufgebaut werden. +Wird zu wenig Strom bereitgestellt, gehen Teile der Verbraucher aus, bzw. Lampen beginnen zu flackern. +In diesem Zusammenhang ist auch wichtig, dass die Funktionsweise von Forceload Blöcken verstanden wurde, denn bspw. Generatoren liefern nur Strom, wenn der entsprechende Map-Block geladen ist. Dies kann mit einen Forceload Block erzwungen werden. [ta3_powerswitch](/image/) ### TA Stromkabel -Für die lokale Verkabelung im Boden oder in Gebäuden. Abzweigungen können mit Hilfe von Verteilerboxen realisiert werden. Die maximale Kabellänge zwischen Maschinen oder Verteilerboxen beträgt 1000 m. Es können maximale 1000 Knoten in einem Strom-Netzwerk verbunden werden. Als Knoten zählen alle Generatoren, Akkus, Verteiler und Maschinen. +Für die lokale Verkabelung im Boden oder in Gebäuden. +Abzweigungen können mit Hilfe von Verteilerboxen realisiert werden. Die maximale Kabellänge zwischen Maschinen oder Verteilerboxen beträgt 1000 m. Es können maximale 1000 Knoten in einem Strom-Netzwerk verbunden werden. Als Knoten zählen alle Generatoren, Akkus, Verteilerboxen und Maschinen. Da die Stromkabel nicht automatisch geschützt sind, wird für längere Strecken die Überlandleitungen (TA Stromleitung) empfohlen. -Stromkabel können mit der Kelle verputzt also in der Wand oder im Boden versteckt werden. Als Material zum Verputzen können alle Stein, Clay und sonstige Blöcke ohne Intelligenz genutzt werden. Erde (dirt) geht nicht, da Erde zu Gras oder ähnlichem konvertiert werden kann, was die Leitung zerstören würde. - -Zum Verputzen muss mit der Kelle auf das Kabel geklickt werden. Das Material, mit dem das Kabel verputzt werden soll, muss sich im Spieler-Inventar ganz links befinden. +Stromkabel können mit der Kelle verputzt also in der Wand oder im Boden versteckt werden. Als Material zum Verputzen können alle Stein-, Clay- und sonstige Blöcke ohne "Intelligenz" genutzt werden. Erde (dirt) geht nicht, da Erde zu Gras oder ähnlichem konvertiert werden kann, was die Leitung zerstören würde. +Zum Verputzen muss mit der Kelle auf das Kabel geklickt werden. Das Material, mit dem das Kabel verputzt werden soll, muss sich im Spieler-Inventar ganz links befinden. Die Kabel können wieder sichtbar gemacht werden, indem man mit der Kelle wieder auf den Block klickt. Außer Kabel können auch die TA Verteilerbox und die TA Stromschalterbox verputzt werden. @@ -92,14 +93,14 @@ Außer Kabel können auch die TA Verteilerbox und die TA Stromschalterbox verput ### TA Verteilerbox Mit der Verteilerbox kann Strom in bis zu 6 Richtungen verteilt werden. Verteilerboxen können auch mit der Kelle verputzt (versteckt) und wieder sichtbar gemacht werden. -Wird mit dem TechAge Info Werkzeug (Schraubenschlüssel) auf die Verteilerbox geklickt, wird angezeigt, wieviel Leistung die Generatoren liefern bzw. die Verbraucher im Netzwerk beziehen. +Wird mit dem TechAge Info Werkzeug (Schraubenschlüssel) auf die Verteilerbox geklickt, wird angezeigt, wie viel Leistung die Generatoren liefern bzw. die Verbraucher im Netzwerk beziehen. [ta3_powerjunction](/image/) ### TA Stromleitung -Mit der TA Stromleitung und den Strommasten können halbwegs realistische Überlandleitungen realisiert werden. Die Strommasten-Köpfe dienen gleichzeitig zum Schutz der Stromleitung (Protection). Dazu muss mindestens alle 16 m ein Masten gesetzt werden. Der Schutz gilt aber nur die die Stromleitung und die Masten, alle anderen Blöcke in diesem Bereich sind dadurch nicht geschützt. +Mit der TA Stromleitung und den Strommasten können halbwegs realistische Überlandleitungen realisiert werden. Die Strommasten-Köpfe dienen gleichzeitig zum Schutz der Stromleitung (Protection). Dazu muss alle 16 m oder weniger ein Masten gesetzt werden. Der Schutz gilt aber nur die die Stromleitung und die Masten, alle anderen Blöcke in diesem Bereich sind dadurch nicht geschützt. [ta3_powerline](/image/) @@ -149,76 +150,389 @@ Der kleine Stromgenerator wird mit Erdöl betrieben und kann für kleine Verbrau ### TA3 Akku Block Der Akku Block dient zur Speicherung von überschüssiger Energie und gibt bei Stromausfall automatisch Strom ab (soweit vorhanden). -Der Akku Block ist eine sekundäre Stromquelle. Das bedeutet, bei Strombedarf werden zuerst die Generatoren genutzt. Nur wenn der Strom im Netz nicht ausreicht, springt der Aku Block ein. Das Gleiche gilt auch für die Stromaufnahme. Daher kann auch kein Akku mit einem anderen Akku geladen werden. +Der Akku Block ist eine sekundäre Stromquelle. Das bedeutet, bei Strombedarf werden zuerst die Generatoren genutzt. Nur wenn der Strom im Netz nicht ausreicht, springt der Akku Block ein. Das Gleiche gilt auch für die Stromaufnahme. Daher kann auch kein Akku mit einem anderen Akku geladen werden. Der Akku liefert 10 ku bzw. nimmt 10 ku auf. -Bei Volllast kann ein Akku 400 s lang Strom aufnehmen und wenn er voll ist, auch wieder abgeben. Dies entspricht 8 h bei einem normalen Spieltag von 20 min. +Bei Volllast kann ein Akku 400 s lang Strom aufnehmen und wenn er voll ist, auch wieder abgeben. Dies entspricht 8 h Spielzeit bei einem normalen Spieltag von 20 min. [ta3_akkublock](/image/) ### TA3 Strom Terminal +Das Strom-Terminal muss von eine Verteilerbox platziert werden. Es zeigt Daten aus dem Stromnetz an wie: +- Leistung alle Generatoren +- Leistung alles Akkus (Sekundärquellen) +- Leistungsaufnahme aller Maschinen +- Anzahl der Netzwerk-Blöcke (max. 1000) +Die Daten des Terminals werden beim Öffnen des Menüs und dann nur durch Anklicken des "Update" Buttons aktualisiert. + +[ta3_powerterminal](/image/) -## Industrieofen +## TA3 Industrieofen + +Der TA3 Industrieofen dient als Ergänzung zu normalen Ofen (furnace). Damit können alle Waren mit "Koch" Rezepte, auch im Industrieofen hergestellt werden. Es gibt aber auch spezielle Rezepte, die nur im Industrieofen hergestellt werden können. +Der Industrieofen hat sein eigenes Menü zur Rezeptauswahl. Abhängig von den Waren im Industrieofen Inventar links kann rechts das Ausgangsprodukt gewählt werden. + +Der Industrieofen benötigt Strom (für das Gebläse) sowie Kohle, Holzkohle oder Erdöl für die Befeuerung. Der Industrieofens und muss wie im Plan rechts abgebildet, zusammen gebaut werden. + +Die Brennzeit für Kohle und Erdöl beträgt 80 s und für Holzkohle 240 s. + +[ta3_furnace](/plan/) + ### TA3 Ofen-Feuerkiste +Ist Teil des TA3 Industrieofen. Muss mit Kohle, Holzkohle oder Erdöl befeuert werden. + +[ta3_furnacefirebox](/image/) + + ### TA3 Ofenoberteil +Ist Teil des TA3 Industrieofen. Siehe TA3 Industrieofen. + +[ta3_furnace](/image/) + + ### TA3 Gebläse +Ist Teil des TA3 Industrieofen. Siehe TA3 Industrieofen. + +[ta3_booster](/image/) + ## Öl-Anlagen -### TA3 Ölexplorer +Um deine Generatoren und Öfen mit Öl betrieben zu können, muss du zuerst nach Öl suchen und einen Bohrturm errichten und danach das Öl fördern. +Dazu dienen dir TA3 Ölexplorer, TA3 Ölbohrkiste und TA3 Ölpumpe. + +[techage_ta3](/image/) + + +### TA3 Ölexplorer + +Mit dem Ölexplorer kannst du nach Öl suchen. Dazu den Block auf den Boden setzen und mit Rechtsklick die Suche starten. +Über die Chat-Ausgabe wird dir angezeigt, in welcher Tiefe nach Öl gesucht wurde und wie viel Öl (oil) gefunden wurde. +Du kannst bis zu 4 mal auf den Block klicken, um auch in tieferen Bereichen nach Öl zu suchen. Ölfelder haben eine Größe von 2000 bis zu 20000 Items. + +Falls die Suche erfolglos war, musst du den Block ca. 16 m weiter setzen. +Der Ölexplorer sucht immer innerhalb des ganzen Map-Blocks und darunter nach Öl, in dem er gesetzt wurde. Eine erneute Suche im gleichen Map-Block (16x16 Feld) macht daher keinen Sinn. + +Falls Öl gefunden wurde, wird die Stelle für den Bohrturm angezeigt. Die Mitte des angezeigten Bereiches am besten gleich mit einem Schild markieren und den ganzen Bereich gegen fremde Spieler schützen. + +Gib die Suche nach Öl nicht zu schnell auf. Es kann wenn du Pech hast, sehr lange dauern, bis du eine Ölquelle gefunden hast. +Es macht auch keinen Sinn, einen Bereich den ein anderer Spieler bereits abgesucht hat, nochmals abzusuchen. Die Chance, irgendwo Öl zu finden, ist für alle Spieler gleich. + +Der Ölexplorer kann immer wieder zur Suche nach Öl eingesetzt werden. + +[ta3_oilexplorer](/image/) + ### TA3 Ölbohrkiste +Die Ölbohrkiste muss genau an die Stelle gesetzt werden, die vom Ölexplorer angezeigt wurde. +Wird auf den Button der Ölbohrkiste geklickt, wird über der Kiste ein Bohrturm errichtet. Dies dauert einige Sekunden. +Die Ölbohrkiste hat 4 Seiten, bei IN muss das Bohrgestänge über Schieber angeliefert und bei OUT muss das Bohrmaterial abtransportiert werden. Über eine der anderen zwei Seiten muss die Ölbohrkiste mit Strom versorgt werden. + +Die Ölbohrkiste bohrt bis zum Ölfeld (1 Meter in 16 s) und benötigt dazu 10 ku Strom. +Wurde das Ölfeld erreicht, kann der Bohrturm abgebaut und die Kiste entfernt werden. + +[ta3_drillbox](/image/) + + ### TA3 Ölpumpe +An die Stelle der Ölbohrkiste muss nun die Ölpumpe platziert werden. Auch die Ölpumpe benötigt Strom (16 ku) und liefert alle 8 s ein Erdöl-Item, das in einer Kiste gesammelt werden muss. Dazu muss die Ölpumpe über eine Röhre mit der Kiste verbunden werden. +Ist alles Öl abgepumpt, kann auch die Ölpumpe wieder entfernt werden. + +[ta3_pumpjack](/image/) + + ### TA3 Bohrgestänge +Das Bohrgestänge wird für die Bohrung benötigt. Es werden so viele Bohrgestänge Items benötigt wie als Tiefe für das Ölfeld angegeben wurde. Das Bohrgestänge ist nach der Bohrung nutzlos, kann aber auch nicht abgebaut werden und verbleibt im Boden. + +[ta3_drillbit](/image/) + ## Logik-/Schalt-Blöcke +Neben den Röhren für Warentransport, sowie den Gas- und Stromleitungen gibt es auch noch eine drahtlose Kommunikationsebene, über die Blöcke untereinander Daten austauschen können. Dafür müssen keine Leitungen gezogen werden, sondern die Verbindung zwischen Sender und Empfänger erfolgt nur über die Blocknummer. Alle Blöcke, die an dieser Kommunikation teilnehmen können, zeigen die Blocknummer als Info-Text an, wenn man mit dem Mauscursor den Block fixiert. +Welche Kommandos ein Block unterstützt, kann mit dem TechAge Info Werkzeug (Schraubenschlüssel) ausgelesen und angezeigt werden. +Die einfachsten Kommandos, die von fast allen Blöcken unterstützt werden, sind: + +- `on` - Block/Maschine/Lampe einschalten +- `off` - Block/Maschine/Lampe ausschalten + +Mir Hilfe des TA3 Terminal können diese Kommandos sehr einfach ausprobiert werden. Angenommen, eine Signallampe hat die Nummer 123. +Dann kann mit: + + cmd 123 on + +die Lampe ein, und mit: + + cmd 123 off + +die Lampe wieder ausgeschaltet werden. Diese Kommandos müssen so in das Eingabefeld des TA3 Terminals eingegeben werden. + +Kommandos wie `on` und `off` werden zum Empfänger gesendet, ohne dass eine Antwort zurück kommt. Diese Kommandos können daher bspw. mit einem Taster/Schalter auch gleichzeitig an mehrere Empfänger gesendet werden, wenn dort im Eingabefeld mehrere Nummern eingegeben werden. + +Ein Kommandos wie `state` fordert den Status eines Blockes an. Der Block sendet in Folge seinen Status zurück. Diese Art von bestätigten Kommandos kann gleichzeitig nur an einen Empfänger gesendet werden. +Auch dieses Kommandos kann mit dem TA3 Terminal bspw. an einem Schieber ausprobiert werden: + + cmd 123 state + +Mögliche Antworten des Schiebers sind: +- `running` --> bin am arbeiten +- `stopped` --> ausgeschaltet +- `standby` --> nichts zu tun, da Quell-Inventar leer +- `blocked` --> kann nichts tun, da Ziel-Inventar voll + +Dieser Status wird bei vielen Blöcken gleichzeitig auch über den Info-Text angezeigt. + +[ta3_logic](/image/) + + ### TA3 Taster/Schalter +Der Taster/Schalter sendet `on`/`off` Kommandos zu den Blöcken, die über die Nummern konfiguriert wurden. +Der Taster/Schalter kann als Taster (button) oder Schalter (switch) konfiguriert werden. Wird er als Taster konfiguriert, so kann die Zeit zwischen den `on` und `off` Kommandos eingestellt werden. + +Über die Checkbox "public" kann eingestellt werden, ob den Taster von jedem (gesetzt), oder nur vom Besitzer selbst (nicht gesetzt) genutzt werden darf. + +Hinweis: Mit dem Programmer können Blocknummern sehr einfach eingesammelt und konfiguriert werden. + +[ta3_button](/image/) + + ### TA3 Logikblock +Den TA3 Logikblock kann man so programmieren, dass ein oder mehrere Eingangssignale zu einem Ausgangssignal verknüpft und gesendet werden. Dieser Block kann daher diverse Logik-Elemente wie AND, OR, NOT, XOR usw. ersetzen. +Eingangssignale für den Logikblock sind `on`/`off` Kommandos. Ein `on` ist ein logisches `true`, ein `off` entspricht dem `false`. +Eingangssignale werden über die Nummer referenziert, also bspw. `n123` für das Signal vom Sender mit der Nummer 123. + +**Beispiele für den IF Ausdruck** + +Signal negieren (NOT): + + not n123 + +Logisches UND (AND): + + n123 and n345 + +Logisches ODER (OR): + + n123 or n345 + +Ist der `if`-Ausdruck wahr (true), wird der `then` Zweig ausgeführt, anderenfalls der `else` Zweig. +Bei `then` und `else` kann entweder `true`, `false`, oder nichts eingegeben werden: +- bei `true` wird `on` gesendet +- bei `false` wird `off` gesendet +- wird nichts eingegeben, wird auch nichts gesendet + +Den oder die Ziel-Blöcke für das Ausgangssignal muss man im Zielnummern-Feld eingeben. + +[ta3_logic](/image/) + + ### TA3 Wiederholer +Der Wiederholer (repeater) sendet das empfangene Signal an alle konfigurierten Nummern weiter. +Dies kann bspw. Sinn machen, wenn man viele Blöcke gleichzeitig angesteuert werden sollen. Den Wiederholer kann man dazu mit dem Programmer konfigurieren, was nicht bei allen Blöcken möglich ist. + +[ta3_repeater](/image/) + + ### TA3 Sequenzer +Der Sequenzer kann eine Reihe von `on`/`off` Kommandos senden, wobei der Abstand zwischen den Kommandos in Sekunden angegeben werden muss. Damit kann man bspw. eine Lampe blinken lassen. +Es können bis zu 8 Kommandos konfiguriert werden, jedes mit Zielblocknummer und Anstand zum nächsten Kommando. +Der Sequenzer wiederholt die Kommandos endlos, wenn "Run endless" gesetzt wird. +Wird also Kommando nichts ausgewählt, wird nur die angegeben Zeit in Sekunden gewartet. + +[ta3_sequencer](/image/) + + ### TA3 Timer +Der Timer kann Kommandos Spielzeit-gesteuert senden. Für jede Kommandozeile kann die Uhrzeit, die Zielnummer(n) und das Kommando selbst angegeben werden. Damit lassen sich bspw. Lampen abends ein- und morgens wieder ausschalten. + +[ta3_timer](/image/) + + ### TA3 Terminal +Das Terminal dient in erster Linie zum Austesten der Kommandoschnittstelle anderer Blöcke (siehe "Logik-/Schalt-Blöcke"). +Man kann aber auch Kommandos auf Tasten legen und so das Terminal produktiv nutzen. + + set + +Mit `set 1 ON cmd 123 on` kann bspw. die Usertaste 1 mit dem Kommando `cnd 123 on` programmiert werden. Wird die Taste gedrückt, wird das Kommando gesendet und die Antwort auf dem Bildschirm ausgegeben. + +Das Terminal besitzt folgende, lokalen Kommandos: +- `clear` lösche Bildschirm +- `help` gib eine Hilfeseite aus +- `pub` schalte in den öffentlichen Modus um +- `priv` schalte in den privaten Modus um + +Im privaten Modul kann nur der Besitzer selbst Kommandos eingeben oder Tasten nutzen. + +[ta3_terminal](/image/) + + +### TechAge Signallampe + +Die Signallampe kann mit `on`/`off` Kommando ein- bzw. ausgeschaltet werden. Diese Lampe braucht keinen Strom und +kann mit der Spritzpistole farbig gemacht werden. + +[ta3_signallamp](/image/) + + +### Tür/Tor Blöcke + +Diese Blöcke kann man mit einem `off` Kommando verschwinden lassen und mit dem `on` Kommando wieder hervor zaubern. +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). + +[ta3_doorblock](/image/) + + ## Detektoren +Detektoren scannen ihre Umgebung ab und senden ein `on`-Kommando, wenn das Gesuchte erkannt wurde. + +[ta3_nodedetector](/image/) + + ### TA3 Detektor +Der Detektor ist eine spezieller Röhrenblock, der erkennt, wenn Items über die Röhre weitergegeben werden. Es muss dazu auf beiden Seiten mit der Röhre verbunden sein. +Er sendet ein `on`, wenn ein Item erkannt wird, gefolgt von einem `off` eine Sekunde später. +Danach werden weitere Kommando für 8 Sekunden blockiert. + +[ta3_detector](/image/) + + ### TA3 Wagen Detektor +Der Wagen Detektor sendet ein `on`-Kommando, wenn er einen Wagen/Cart (Minecart) direkt vor sich erkannt hat. Zusätzlich kann der Detektor auch den Wagen wieder starten, wenn ein `on`-Kommando empfangen wird. + +[ta3_cartdetector](/image/) + + ### TA3 Block Detektor +Der Block Detektor sendet ein `on`-Kommando, wenn er erkennt, dass Blöcke vor ihm erscheinen oder verschwinden, muss jedoch entsprechend konfiguriert werden. Nach dem Zurückschalten des Detektors in den Standardzustand (grauer Block) wird ein `off`-Kommando gesendet. Gültige Blöcke sind alle Arten von Blöcken und Pflanzen, aber keine Tiere oder Spieler. Die Sensorreichweite beträgt 3 Blöcke/Meter in Pfeilrichtung. + +[ta3_nodedetector](/image/) + + ### TA3 Spieler Detektor +Der Spieler Detektor sendet ein `on`-Kommando, wenn er einen Spieler in einem Umkreis von 4 m um den Block herum erkennt. Verlässt der Spieler wieder den Bereich, wird ein `off`-Kommando gesendet. +Soll die Suche auf bestimmte Spieler eingegrenzt werden, so können diese Spielernamen auch eingegeben werden. + +[ta3_playerdetector](/image/) + ## TA3 Maschinen -### TA3 Autocrafter +Bei TA3 existieren die gleichen Maschinen wie bei TA2, nur sind diese hier leistungsfähiger und benötigen Strom statt Achsenantrieb. +Im folgenden sind daher nur die unterschiedlichen, technischen Daten angegeben. + +[ta3_grinder](/image/) + + +### TA3 Schieber + +Die Funktion entspricht der von TA2. +Die Verarbeitungsleistung beträgt 6 Items alle 2 s. + +[ta3_pusher](/image/) + ### TA3 Verteiler +Die Funktion entspricht der von TA2. +Die Verarbeitungsleistung beträgt 12 Items alle 4 s. + +[ta3_distributor](/image/) + + +### TA3 Autocrafter + +Die Funktion entspricht der von TA2. +Die Verarbeitungsleistung beträgt 2 Items alle 4 s. Der Autocrafter benötigt hierfür 6 ku Strom. + +[ta3_autocrafter](/image/) + + ### TA3 Elektronikfabrik +Die Funktion entspricht der von TA2, nur werden hier TA4 WLAN Chips produziert. +Die Verarbeitungsleistung beträgt ein Chip alle 6 s. Der Block benötigt hierfür 12 ku Strom. + +[ta3_electronicfab](/image/) + + ### TA3 Trichter +Der TA3 Trichter sammelt abgelegte Gegenstände und speichert sie in seinem Inventar. Gegenstände werden angesaugt, wenn sie auf den Trichterblock fallen. +Der Scanradius beträgt 1 m. + +[ta3_funnel](/image/) + + ### TA3 Kiessieb +Die Funktion entspricht der von TA2. +Die Verarbeitungsleistung beträgt 2 Items alle 4 s. Der Block benötigt 4 ku Strom. + +[ta3_gravelsieve](/image/) + + ### TA3 Mühle +Die Funktion entspricht der von TA2. +Die Verarbeitungsleistung beträgt 2 Items alle 4 s. Der Block benötigt 6 ku Strom. + +[ta3_grinder](/image/) + + ### TA3 Flüssigkeitensammler +Die Funktion entspricht der von TA2. +Die Verarbeitungsleistung ist 2 Items alle 8 s. Der Block benötigt 5 ku Strom. + +[ta3_liquidsampler](/image/) + + + +## Werkzeuge + +### Techage Info Tool + +Das Techage Info Tool (Schraubenschlüssel) hat verschiedene Funktionen. Er zeigt die Uhrzeit, die Position, die Temperatur und das Biome an, wenn auf einen unbekannten Block geklickt wird. +Wird auf einen TechAge Block mit Kommandoschnittstelle geklickt, werden alle verfügbaren Daten abgerufen (siehe auch "Logik-/Schalt-Blöcke"). + +[ta3_end_wrench](/image/) + + +### TechAge Programmer + +Mit dem Programmer können Blocknummern mit einem Rechtsklick von mehreren Blöcken eingesammelt und mit einem Linksklick in einen Block wie Taster/Schalter geschrieben werden. +Wird in die Luft geklickt, wird der interne Speicher gelöscht. + +[ta3_programmer](/image/) + + + +### TechAge Kelle + +Die Kelle dient zum Verputzen von Stromkabel. Siehe dazu "TA Stromkabel". + +[ta3_trowel](/image/) + diff --git a/manuals/markdown2formspec.py b/manuals/markdown2formspec.py index 875cc23..3bfef16 100644 --- a/manuals/markdown2formspec.py +++ b/manuals/markdown2formspec.py @@ -14,6 +14,7 @@ def formspec_escape(text): text = text.replace(",", "\\\\,") text = text.replace('"', '\\"') text = text.replace('\n', '\\n') + #print ">>>>"+text+"<<<<" return text lTitel = [] @@ -30,11 +31,12 @@ def lua_table(name, lData): lOut.append("}\n\n") return "\n".join(lOut) -def lua_test_table(name, lData): +def lua_text_table(name, lData): lOut = [] lOut.append("%s = {" % name) for lines in lData: for line in lines[:-1]: + line = line.replace('
', '\\n') lOut.append(' "%s\\n"..' % line) if len(lines) > 0: lOut.append(' "%s\\n",' % lines[-1]) @@ -67,8 +69,9 @@ class MyRenderer(mistune.Renderer): def block_code(self, code, lang): text = formspec_escape(code.strip()) lines = text.split("\n") - text2 = "\n " + "\n ".join(lines) + "\n" - self.TextChunck.append(text2) + lines = [" " + item for item in lines] + self.TextChunck.extend(lines) + self.TextChunck.append("") return "" # ~ def block_quote(self, text): @@ -130,14 +133,19 @@ class MyRenderer(mistune.Renderer): def autolink(self, link, is_email=False): return link + def linebreak(self): + return "\\n" + + def newline(self): + return "\\n" + + def inline_html(self, text): + print text # ~ # ~ double_emphasis(text) # ~ image(src, title, alt_text) - # ~ linebreak() - # ~ newline() # ~ link(link, title, content) # ~ strikethrough(text) - # ~ text(text) # ~ inline_html(text) @@ -153,7 +161,7 @@ def gen_lua_file(dest_name): print("Write Lua file '%s'" % dest_name) lOut = ["%s.%s = {}\n\n" % (mod, manual)] lOut.append(lua_table("%s.%s.aTitel" % (mod, manual), lTitel)) - lOut.append(lua_test_table("%s.%s.aText" % (mod, manual), lText)) + lOut.append(lua_text_table("%s.%s.aText" % (mod, manual), lText)) lOut.append(lua_table("%s.%s.aItemName" % (mod, manual), lItemName)) lOut.append(lua_table("%s.%s.aPlanTable" % (mod, manual), lPlanTable)) file(dest_name, "w").write("".join(lOut)) diff --git a/manuals/toc_DE.md b/manuals/toc_DE.md index bd56975..5ab8864 100644 --- a/manuals/toc_DE.md +++ b/manuals/toc_DE.md @@ -32,6 +32,7 @@ - [TA2 Elektronikfabrik](./manual_ta2_DE.md#ta2-elektronikfabrik) - [Sonstige Blöcke](./manual_ta2_DE.md#sonstige-blöcke) - [TA2 Flüssigkeitensammler](./manual_ta2_DE.md#ta2-flüssigkeitensammler) + - [TA2 Gesicherte Kiste](./manual_ta2_DE.md#ta2-gesicherte-kiste) - [TA3: Ölzeitalter](./manual_ta3_DE.md#ta3:-Ölzeitalter) - [Kohlekraftwerk](./manual_ta3_DE.md#kohlekraftwerk) - [TA3 Kohlekraftwerks-Feuerbox](./manual_ta3_DE.md#ta3-kohlekraftwerks-feuerbox) @@ -51,7 +52,7 @@ - [TA3 Kleiner Stromgenerator](./manual_ta3_DE.md#ta3-kleiner-stromgenerator) - [TA3 Akku Block](./manual_ta3_DE.md#ta3-akku-block) - [TA3 Strom Terminal](./manual_ta3_DE.md#ta3-strom-terminal) - - [Industrieofen](./manual_ta3_DE.md#industrieofen) + - [TA3 Industrieofen](./manual_ta3_DE.md#ta3-industrieofen) - [TA3 Ofen-Feuerkiste](./manual_ta3_DE.md#ta3-ofen-feuerkiste) - [TA3 Ofenoberteil](./manual_ta3_DE.md#ta3-ofenoberteil) - [TA3 Gebläse](./manual_ta3_DE.md#ta3-gebläse) @@ -67,16 +68,23 @@ - [TA3 Sequenzer](./manual_ta3_DE.md#ta3-sequenzer) - [TA3 Timer](./manual_ta3_DE.md#ta3-timer) - [TA3 Terminal](./manual_ta3_DE.md#ta3-terminal) + - [TechAge Signallampe](./manual_ta3_DE.md#techage-signallampe) + - [Tür/Tor Blöcke](./manual_ta3_DE.md#tür/tor-blöcke) - [Detektoren](./manual_ta3_DE.md#detektoren) - [TA3 Detektor](./manual_ta3_DE.md#ta3-detektor) - [TA3 Wagen Detektor](./manual_ta3_DE.md#ta3-wagen-detektor) - [TA3 Block Detektor](./manual_ta3_DE.md#ta3-block-detektor) - [TA3 Spieler Detektor](./manual_ta3_DE.md#ta3-spieler-detektor) - [TA3 Maschinen](./manual_ta3_DE.md#ta3-maschinen) - - [TA3 Autocrafter](./manual_ta3_DE.md#ta3-autocrafter) + - [TA3 Schieber](./manual_ta3_DE.md#ta3-schieber) - [TA3 Verteiler](./manual_ta3_DE.md#ta3-verteiler) + - [TA3 Autocrafter](./manual_ta3_DE.md#ta3-autocrafter) - [TA3 Elektronikfabrik](./manual_ta3_DE.md#ta3-elektronikfabrik) - [TA3 Trichter](./manual_ta3_DE.md#ta3-trichter) - [TA3 Kiessieb](./manual_ta3_DE.md#ta3-kiessieb) - [TA3 Mühle](./manual_ta3_DE.md#ta3-mühle) - - [TA3 Flüssigkeitensammler](./manual_ta3_DE.md#ta3-flüssigkeitensammler) \ No newline at end of file + - [TA3 Flüssigkeitensammler](./manual_ta3_DE.md#ta3-flüssigkeitensammler) + - [Werkzeuge](./manual_ta3_DE.md#werkzeuge) + - [Techage Info Tool](./manual_ta3_DE.md#techage-info-tool) + - [TechAge Programmer](./manual_ta3_DE.md#techage-programmer) + - [TechAge Kelle](./manual_ta3_DE.md#techage-kelle) \ No newline at end of file diff --git a/oil/drillbox.lua b/oil/drillbox.lua index 19e80ca..f1a996a 100644 --- a/oil/drillbox.lua +++ b/oil/drillbox.lua @@ -27,7 +27,7 @@ local formspec0 = "size[5,4]".. default.gui_bg.. default.gui_bg_img.. default.gui_slots.. - "image[1,0;3.4,3.4;techage_oil_tower_inv.png]".. + "image[1,0;3.4,3.4;techage_ta3.png]".. "button_exit[1,3.2;3,1;build;"..S("Build derrick").."]" local function play_sound(pos) diff --git a/textures/techage_oil_tower_inv.png b/textures/techage_oil_tower_inv.png index d0fb91b330ce09d63c216f6e4727541948e47ad4..a261e41ada20544dffe3422a831f4ff0289c9378 100644 GIT binary patch literal 9507 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 N002ovPDHLkV1k+?PBZ`j literal 0 HcmV?d00001 diff --git a/textures/techage_ta3.png b/textures/techage_ta3.png new file mode 100644 index 0000000000000000000000000000000000000000..e61e01eb40917d1e0bc1a44f6f9585f315b8be7b GIT binary patch literal 8447 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 literal 0 HcmV?d00001 diff --git a/textures/techage_ta4.png b/textures/techage_ta4.png new file mode 100644 index 0000000000000000000000000000000000000000..ee15a564fa175d02100f41f4ccdc9ad5f10088e7 GIT binary patch literal 4703 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 literal 0 HcmV?d00001 diff --git a/textures/techage_ta4_tes.png b/textures/techage_ta4_tes.png new file mode 100644 index 0000000000000000000000000000000000000000..8dcf64ca469cd48b08c3f2fdd90efa7b8377de7a GIT binary patch literal 9724 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 KMNUMnLSTa9nx4S` literal 0 HcmV?d00001 diff --git a/tools/repairkit.lua b/tools/repairkit.lua index 3faa74f..9d0f003 100644 --- a/tools/repairkit.lua +++ b/tools/repairkit.lua @@ -54,26 +54,32 @@ local function read_state(itemstack, user, pointed_thing) if ndef and ndef.description then local info = techage.send_single("0", number, "info", nil) if info and info ~= "" and info ~= "unsupported" then + info = dump(info) minetest.chat_send_player(user:get_player_name(), ndef.description.." "..number..": Supported Commands:\n"..info.." ") end local state = techage.send_single("0", number, "state", nil) if state and state ~= "" and state ~= "unsupported" then + state = dump(state) minetest.chat_send_player(user:get_player_name(), ndef.description.." "..number..": state = "..state.." ") end local fuel = techage.send_single("0", number, "fuel", nil) if fuel and fuel ~= "" and fuel ~= "unsupported" then + fuel = dump(fuel) minetest.chat_send_player(user:get_player_name(), ndef.description.." "..number..": fuel = "..fuel.." ") end local counter = techage.send_single("0", number, "counter", nil) if counter and counter ~= "" and counter ~= "unsupported" then + counter = dump(counter) minetest.chat_send_player(user:get_player_name(), ndef.description.." "..number..": counter = "..counter.." ") end local load = techage.send_single("0", number, "load", nil) if load and load ~= "" and load ~= "unsupported" then + load = dump(load) minetest.chat_send_player(user:get_player_name(), ndef.description.." "..number..": load = "..load.." % ") end local capa = techage.send_single("0", number, "capa", nil) if capa and capa ~= "" and capa ~= "unsupported" then + capa = dump(capa) minetest.chat_send_player(user:get_player_name(), ndef.description.." "..number..": capa = "..capa.." % ") end local owner = M(pos):get_string("owner") or ""