'doc' support and German translation added

master
Joachim Stolberg 2019-06-27 21:16:40 +02:00
parent 455b92876d
commit 2156194085
29 changed files with 2210 additions and 126 deletions

View File

@ -49,6 +49,9 @@ More information:
The copy function can be used to clone node cubes up to 5x3x3 nodes. There is the pattern shield for the template position and the copy shield for the "3x3x3" copy. Since the bot also copies air blocks, the function can also be used for mining or tunnels. The items to be placed must be in the inventory. Items that the bot degrades are in Inventory afterwards. If there are missing items in the inventory during copying, he will set "missing items" blocks, which dissolve into air when degrading.
In-game help:
The mod has an in-game help to all blocks and signs. Therefore, it is highly recommended that you have installed the mods 'doc' and 'unified_inventory'.
Commands:
The commands are also all described as help in the "Sign command" node.
All blocks or signs that are set are taken from the bot inventory.
@ -99,7 +102,7 @@ Code: Licensed under the GNU LGPL version 2.1 or later. See LICENSE.txt
### Dependencies
default, farming, basic_materials, tubelib2
optional: farming redo
optional: farming redo, node_io, doc, techage
### History
@ -111,3 +114,4 @@ optional: farming redo
- 2019-04-15 v0.06 * nodes remove bugfix, punch_cart command added, cart sensor added
- 2019-04-18 v0.07 * node_io is now optional, support for MTG chests and furnace added
- 2019-05-22 v0.08 * recipe bug fixes and prepared for techage
- 2019-05-25 v0.09 * in-game help added for the mod 'doc'

View File

@ -307,3 +307,26 @@ if minetest.global_exists("techage") then
})
end
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "box", {
name = I("Signs Bot Box"),
data = {
item = "signs_bot:box",
text = table.concat({
I("The Box is the housing of the bot."),
I("Place the box and start the bot by means of the 'On' button."),
I("If the mod techage is installed, the bot needs electrical power."),
"",
I("The bot leaves the box on the right side."),
I("It will not start, if this position is blocked."),
"",
I("To stop and remove the bot, press the 'Off' button."),
"",
I("The box inventory simulates the inventory of the bot."),
I("You will not be able to access the inventory, if the bot is running."),
I("The bot can carry up to 8 stacks and 6 signs with it."),
}, "\n")
},
})
end

View File

@ -66,3 +66,17 @@ minetest.register_craft({
{"", "", ""}
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "bot_flap", {
name = I("Bot Flap"),
data = {
item = "signs_bot:bot_flap",
text = table.concat({
I("The flap is a simple block used as door for the bot."),
I("Place the flap in any wall, and the bot will automatically open"),
I("and close the flap as it passes through it."),
}, "\n")
},
})
end

View File

@ -116,3 +116,16 @@ minetest.register_craft({
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "bot_sensor", {
name = I("Bot Sensor"),
data = {
item = "signs_bot:bot_sensor",
text = table.concat({
I("The Bot Sensor detects any bot and sends a signal, if a bot is nearby."),
I("the sensor range is one node/meter."),
I("The sensor direction does not care."),
}, "\n")
},
})
end

View File

@ -149,3 +149,17 @@ minetest.register_lbm({
minetest.get_node_timer(pos):start(CYCLE_TIME)
end
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "cart_sensor", {
name = I("Cart Sensor"),
data = {
item = "signs_bot:cart_sensor",
text = table.concat({
I("The Cart Sensor detects and sends a signal, if a cart (Minecart) is nearby."),
I("the sensor range is one node/meter."),
I("The sensor has an active side (red) that must point to the rail/cart."),
}, "\n")
},
})
end

View File

@ -159,3 +159,22 @@ minetest.register_craft({
{"default:steel_ingot", "default:mese_crystal_fragment", "default:steel_ingot"}
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "changer", {
name = I("Bot Control Unit"),
data = {
item = "signs_bot:changer1",
text = table.concat({
I("The Bot Control Unit is used to lead the bot by means of signs."),
I("The unit can be loaded with up to 4 different signs and can be programmed by means of sensors."),
"",
I("To load the unit, place a sign on the red side of the unit and click on the unit."),
I("The sign disappears / is moved to the inventory of the unit."),
I("This can be repeated 3 times."),
"",
I("Use the connection tool to connect up to 4 sensors with the Bot Control Unit."),
}, "\n")
},
})
end

View File

@ -233,3 +233,19 @@ signs_bot.register_inventory({"signs_bot:chest"}, {
listname = "main",
},
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "chest", {
name = I("Signs Bot Chest"),
data = {
item = "signs_bot:chest",
text = table.concat({
I("The Signs Bot Chest is a special chest with sensor function."),
I("It sends a signal depending on the chest state."),
I("Possible states are 'empty', 'not empty', 'almost full'"),
"",
I("A typical use case is to turn off the bot, when the chest is almost full or empty."),
}, "\n")
},
})
end

View File

@ -161,7 +161,7 @@ harvest
sow_seed 1
backward
place_sign 1
turn_off]]
turn_around]]
signs_bot.register_sign({
name = "farming",
@ -178,3 +178,18 @@ minetest.register_craft({
{"dye:grey", "", ""}
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "farming", {
name = I("Sign 'farming'"),
data = {
item = "signs_bot:farming",
text = table.concat({
I("Used to harvest and seed a 3x3 field."),
I("Place the sign in front of the field."),
I("The seed to be placed has to be in the first inventory slot of the bot."),
I("When finished, the bot turns."),
}, "\n")
},
})
end

View File

@ -218,3 +218,33 @@ minetest.register_craft({
{"", "", ""}
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "pattern", {
name = I("Sign 'pattern'"),
data = {
item = "signs_bot:pattern",
text = table.concat({
I("Used to make a copy of a 3x3x3 cube."),
I("Place the sign in front of the pattern to be copied."),
I("Use the copy sign to make the copy of this pattern on a different location."),
I("The bot must first reach the pattern sign, then the copy sign."),
}, "\n")
},
})
end
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "copy3x3x3", {
name = I("Sign 'copy3x3x3'"),
data = {
item = "signs_bot:copy3x3x3",
text = table.concat({
I("Used to make a copy of a 3x3x3 cube."),
I("Place the sign in front of the location, where the copy should be made."),
I("Use the pattern sign to mark the pattern."),
}, "\n")
},
})
end

View File

@ -350,3 +350,19 @@ minetest.register_craft({
{"", "dye:black", ""}
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "sign_cmnd", {
name = I("Sign 'command'"),
data = {
item = "signs_bot:sign_cmnd",
text = table.concat({
I("The 'command' sign can be programmed by the player."),
I("Place the sign in front of you and use the node menu to program your sequence of bot commands."),
I("The menu has an edit field for your commands and a help page with all available commands."),
I("The help page has a copy button to simplify the programming."),
}, "\n")
},
})
end

View File

@ -200,6 +200,8 @@ local function cond_move(base_pos, mem)
activate_sensor(mem.robot_pos, (mem.robot_param2 + 1) % 4)
activate_sensor(mem.robot_pos, (mem.robot_param2 + 3) % 4)
end
else
return lib.DONE
end
return lib.BUSY
else

View File

@ -141,3 +141,18 @@ minetest.register_lbm({
minetest.get_node_timer(pos):start(CYCLE_TIME)
end
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "crop_sensor", {
name = I("Crop Sensor"),
data = {
item = "signs_bot:crop_sensor",
text = table.concat({
I("The Crop Sensor sends a signal when, for example wheat is fully grown."),
I("The sensor range is one node/meter."),
I("The sensor has an active side (red) that must point to the crop/field."),
}, "\n")
},
})
end

View File

@ -4,3 +4,4 @@ basic_materials
tubelib2
node_io?
techage?
doc?

129
doc.lua Normal file
View File

@ -0,0 +1,129 @@
signs_bot.doc = {}
if not minetest.get_modpath("doc") then
return
end
-- Load support for intllib.
local MP = minetest.get_modpath("signs_bot")
local I,_ = dofile(MP.."/intllib.lua")
local function formspec(data)
if data.image then
local image = "image["..(doc.FORMSPEC.ENTRY_WIDTH - 3)..",0;3,2;"..data.image.."]"
local formstring = doc.widgets.text(data.text, doc.FORMSPEC.ENTRY_START_X, doc.FORMSPEC.ENTRY_START_Y+1.6, doc.FORMSPEC.ENTRY_WIDTH, doc.FORMSPEC.ENTRY_HEIGHT - 1.6)
return image..formstring
elseif data.item then
local box = "box["..(doc.FORMSPEC.ENTRY_WIDTH - 1.6)..",0;1,1.1;#BBBBBB]"
local image = "item_image["..(doc.FORMSPEC.ENTRY_WIDTH - 1.5)..",0.1;1,1;"..data.item.."]"
local formstring = doc.widgets.text(data.text, doc.FORMSPEC.ENTRY_START_X, doc.FORMSPEC.ENTRY_START_Y+0.8, doc.FORMSPEC.ENTRY_WIDTH, doc.FORMSPEC.ENTRY_HEIGHT - 0.8)
return box..image..formstring
else
return doc.entry_builders.text(data.text)
end
end
local start_doc = table.concat({
I("After you have placed the Signs Bot Box, you can start the bot by means of the 'On' button in the box menu."),
I("The bot then runs straight up until it reaches an obstacle (a step with two or more blocks up or down or a sign.)"),
I("If the bot first reaches a sign it will execute the commands on the sign."),
I("If the command(s) on the sign is e.g. 'turn_around', the bot turns and goes back."),
I("In this case, the bot reaches his box again and turns off."),
"",
I("The Signs Bot Box has an inventory with 6 stacks for signs and 8 stacks for other items (to be placed/dug by the bot)."),
I("This inventory simulates the bot internal inventory."),
I("That means you will only have access to the inventory if the bot is turned off ('sitting' in his box)."),
}, "\n")
local control_doc = table.concat({
I("You simply control the direction of the bot by means of the 'turn left' and 'turn right' signs (signs with the arrow)."),
I("The bot can run over steps (one block up/down). But there are also commands to move the bot up and down."),
"",
I("It is not necessary to mark a way back to the box."),
I("With the command 'turn_off' the bot will turn off and be back in his box from every position."),
I("The same applies if you turn off the bot by the box menu."),
I("If the bot reaches a sign from the wrong direction (from back or sides) the sign will be ignored."),
I("The bot will walk over."),
"",
I("All predefined signs have a menu with a list of the bot commands."),
I("These signs can't be changed, but you can craft and program your own signs."),
I("For this you have to use the 'command' sign."),
I("This sign has an edit field for your commands and a help page with all available commands."),
I("The help page has a copy button to simplify the programming."),
"",
I("Also for your own signs it is important to know:"),
I("After the execution of the last command of the sign, the bot falls back into its default behaviour and runs in its taken direction."),
"",
I("A standard job for the bot is to move items from one chest to another"),
I("(chest or node with a chest like inventory)."),
I("This can be done by means of the two signs 'take item' and 'add item'."),
I("These signs have to be placed on top of chest nodes."),
}, "\n")
local sensor_doc = table.concat({
I("In addition to the signs the bot can be controlled by means of sensors."),
I("Sensors like the Bot Sensor have two states: on and off."),
I("If the Bot Sensor detects a bot it will switch to the state 'on' and"),
I("sends a signal to a connected block, called an actuator."),
"",
I("Sensors are:"),
I("- Bot Sensor: Sends a signal when the robot passes by"),
I("- Node Sensor: Sends a signal when it detects any node"),
I("- Crop Sensor: Sends a signal when, for example wheat is fully grown"),
I("- Bot Chest: Sends a signal depending on the chest state (empty, full)"),
"",
I("Actuators are:"),
I("- Signs Bot Box: Can turn the bot off and on"),
I("- Control Unit: Can be used to exchange the sign to lead the bot"),
"",
I("Additional sensors and actuator can be added by other mods."),
}, "\n")
local tool_doc = table.concat({
I("To send a signal from a sensor to an actuator, the sensor has to be connected (paired) with actuator."),
I("To connect sensor and actuator, the Sensor Connection Tool has to be used."),
I("Simply click with the tool on both blocks and the sensor will be connected with the actuator."),
I("A successful connection is indicated by a ping/pong noise."),
"",
I("Before you connect sensor with actuator, take care that the actuator is in the requested state."),
I("For example: If you want to start the Bot with a sensor, connect the sensor with the Bot Box,"),
I("when the Bot is in the state 'on'. Otherwise the sensor signal will stop the Bot,"),
I("instead of starting it."),
}, "\n")
doc.add_category("signs_bot",
{
name = I("Signs Bot"),
description = I("A robot controlled by signs, used for automated work"),
sorting = "custom",
sorting_data = {"start", "control", "sensor_doc", "tool",
"box", "bot_flap", "duplicator",
"bot_sensor", "cart_sensor", "node_sensor", "crop_sensor", "chest", "timer",
"changer", "sensor_extender",
"farming", "pattern", "copy3x3x3",
"sign_cmnd", "sign_right", "sign_left", "sign_take", "sign_add", "sign_stop", "sign_blank"},
build_formspec = formspec,
})
doc.add_entry("signs_bot", "start", {
name = I("Start the Bot"),
data = {text = start_doc, image = "signs_bot_doc_image.png"},
})
doc.add_entry("signs_bot", "control", {
name = I("Control the Bot"),
data = {text = control_doc, image = "signs_bot_doc_image.png"},
})
doc.add_entry("signs_bot", "sensor_doc", {
name = I("Sensors and Actuators"),
data = {text = sensor_doc, image = "signs_bot_doc_image.png"},
})
doc.add_entry("signs_bot", "tool", {
name = I("Connecting sensors and actuator"),
data = {text = tool_doc, image = "signs_bot_doc_image.png"},
})

View File

@ -49,7 +49,8 @@ local function allow_metadata_inventory_put(pos, listname, index, stack, player)
if listname == "outp" then
return 0
end
if minetest.get_item_group(stack:get_name(), "sign_bot_sign") ~= 1 then
if minetest.get_item_group(stack:get_name(), "sign_bot_sign") ~= 1
and stack:get_name() ~= "default:book_written" then
return 0
end
if listname == "temp" then
@ -72,9 +73,9 @@ local function move_to_output(pos)
local outp_stack = inv:get_stack("outp", 1)
if (inp_stack:get_name() == "signs_bot:sign_blank"
or inp_stack:get_name() == "signs_bot:sign_user")
and temp_stack:get_name() == "signs_bot:sign_cmnd"
and outp_stack:get_name() == "" then
or inp_stack:get_name() == "signs_bot:sign_user")
and temp_stack:get_name() == "signs_bot:sign_cmnd"
and outp_stack:get_name() == "" then
local stack = ItemStack("signs_bot:sign_user")
stack:set_count(inp_stack:get_count())
local meta = stack:get_meta()
@ -84,6 +85,19 @@ local function move_to_output(pos)
inp_stack:clear()
inv:set_stack("inp", 1, inp_stack)
inv:set_stack("outp", 1, stack)
elseif (inp_stack:get_name() == "signs_bot:sign_blank"
or inp_stack:get_name() == "signs_bot:sign_user")
and temp_stack:get_name() == "default:book_written"
and outp_stack:get_name() == "" then
local stack = ItemStack("signs_bot:sign_user")
stack:set_count(inp_stack:get_count())
local meta = stack:get_meta()
local temp_data = temp_stack:get_meta():to_table().fields
meta:set_string("cmnd", temp_data.text)
meta:set_string("description", temp_data.title)
inp_stack:clear()
inv:set_stack("inp", 1, inp_stack)
inv:set_stack("outp", 1, stack)
end
end
@ -210,3 +224,30 @@ minetest.register_craft({
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "duplicator", {
name = I("Signs Duplicator"),
data = {
item = "signs_bot:duplicator",
text = table.concat({
I("The Duplicator can be used to make copies of signs."),
I("1. Put one 'cmnd' sign to be used as template into the 'Template' inventory"),
I("2. Add one or several 'blank signs' to the 'Input' inventory."),
I("3. Take the copies from the 'Output' inventory."),
"",
I("Written books [default:book_written] can alternatively be used as template"),
I("Already written signs can be used as input, too."),
}, "\n")
},
})
end
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "sign_blank", {
name = I('Sign "blank"'),
data = {
item = "signs_bot:sign_blank",
text = I("Needed as input for the Duplicator.")
},
})
end

View File

@ -125,3 +125,17 @@ minetest.register_craft({
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "sensor_extender", {
name = I("Sensor Extender"),
data = {
item = "signs_bot:sensor_extender",
text = table.concat({
I("With the Sensor Extender, sensor signals can be sent to more than one actuator."),
I("Place one or more extender nearby the sensor and connect each extender"),
I("with one further actuator by means of the Connection Tool."),
}, "\n")
},
})
end

View File

@ -14,8 +14,9 @@
signs_bot = {}
signs_bot.S = minetest.get_translator("signs_bot")
local MP = minetest.get_modpath("signs_bot")
dofile(MP.."/intllib.lua")
dofile(MP.."/doc.lua")
dofile(MP.."/lib.lua")
dofile(MP.."/basis.lua")
dofile(MP.."/robot.lua")

View File

@ -1,4 +1,4 @@
#!/bin/bash
../intllib/tools/xgettext.sh ./basis.lua ./bot_flap.lua ./bot_sensor.lua ./changer.lua ./chest.lua ./cmd_farming.lua ./cmd_item.lua ./cmd_move.lua ./cmd_pattern.lua ./cmd_place.lua ./cmd_sign.lua ./commands.lua ./crop_sensor.lua ./duplicator.lua ./extender.lua ./init.lua ./lib.lua ./node_sensor.lua ./nodes.lua ./robot.lua ./signal.lua ./signs.lua ./tool.lua ./timer.lua
../intllib/tools/xgettext.sh ./basis.lua ./bot_flap.lua ./bot_sensor.lua ./cart_sensor.lua ./changer.lua ./chest.lua ./cmd_farming.lua ./cmd_item.lua ./cmd_move.lua ./cmd_pattern.lua ./cmd_place.lua ./cmd_sign.lua ./commands.lua ./crop_sensor.lua ./doc.lua ./duplicator.lua ./extender.lua ./init.lua ./lib.lua ./node_sensor.lua ./nodes.lua ./robot.lua ./signal.lua ./signs.lua ./tool.lua ./timer.lua

Binary file not shown.

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-04-15 20:53+0200\n"
"PO-Revision-Date: 2019-05-22 15:05+0200\n"
"POT-Creation-Date: 2019-06-25 23:36+0200\n"
"PO-Revision-Date: 2019-06-27 21:14+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
@ -36,7 +36,7 @@ msgstr "Andere Gegenstände"
#: basis.lua
msgid "Robot Box "
msgstr "Roboter Kiste "
msgstr "Roboter Box"
#: basis.lua
msgid "running"
@ -48,12 +48,71 @@ msgstr "gestoppt"
#: basis.lua
msgid "Signs Bot Box"
msgstr "Signs Bot Kiste"
msgstr "Signs Bot Box"
#: basis.lua
msgid "The Box is the housing of the bot."
msgstr "Die Box ist das Gehäuse des Roboters."
#: basis.lua
msgid "Place the box and start the bot by means of the 'On' button."
msgstr "Platziere die Box und starte den Roboter über den \"An\" Button."
#: basis.lua
msgid "If the mod techage is installed, the bot needs electrical power."
msgstr ""
"Wenn die Mod techage installiert ist, benötigt der Roboter elektrischen "
"Strom."
#: basis.lua
msgid "The bot leaves the box on the right side."
msgstr "Der Roboter verlässt die Box auf der rechten Seite."
#: basis.lua
msgid "It will not start, if this position is blocked."
msgstr "Er startet nicht, wenn diese Position belegt ist."
#: basis.lua
msgid "To stop and remove the bot, press the 'Off' button."
msgstr ""
"Um den Roboter zu stoppen bzw. zu entfernen, drücke den \"Aus\" Button."
#: basis.lua
msgid "The box inventory simulates the inventory of the bot."
msgstr "Das Inventar der Box simuliert das Roboter Inventar."
#: basis.lua
msgid "You will not be able to access the inventory, if the bot is running."
msgstr ""
"Du hast keinen Zugriff auf das Inventar, sofern der Roboter unterwegs ist."
#: basis.lua
msgid "The bot can carry up to 8 stacks and 6 signs with it."
msgstr "Der Roboter kann 8 Stapel von Blöcken und 6 Zeichen transportieren."
#: bot_flap.lua
msgid "Exit"
msgstr "Beenden"
#: bot_flap.lua
msgid "Bot Flap"
msgstr "Roboterklappe"
#: bot_flap.lua
msgid "The flap is a simple block used as door for the bot."
msgstr ""
"Die Klappe ist ein einfacher Block, welcher vom Roboter als Tür genutzt wird."
#: bot_flap.lua
msgid "Place the flap in any wall, and the bot will automatically open"
msgstr ""
"Platziere die Klappe in eine Mauer und der Roboter wird die Klappe "
"automatisch öffnen"
#: bot_flap.lua
msgid "and close the flap as it passes through it."
msgstr "und wieder schließen, wenn er durchgegangen ist."
#: bot_sensor.lua
msgid "Bot Sensor: Connected with "
msgstr "Bot Sensor: Verbunden mit "
@ -66,6 +125,38 @@ msgstr "Bot Sensor"
msgid "Bot Sensor: Not connected"
msgstr "Bot Sensor: Nicht verbunden"
#: bot_sensor.lua
msgid "The Bot Sensor detects any bot and sends a signal, if a bot is nearby."
msgstr ""
"Der Roboter Sensor entdeckt jeden Roboter und sendet ein Signal, sofern ein "
"Roboter in der Nähe ist."
#: bot_sensor.lua cart_sensor.lua
msgid "the sensor range is one node/meter."
msgstr "Der Sensorbereich ist einen Block/Meter groß."
#: bot_sensor.lua
msgid "The sensor direction does not care."
msgstr "Die Ausrichtung des Sensor spielt keine Rolle."
#: cart_sensor.lua
msgid "Cart Sensor: Connected with "
msgstr "Wagen Sensor: Verbunden mit "
#: cart_sensor.lua
msgid "Cart Sensor"
msgstr "Wagen Sesor"
#: cart_sensor.lua
msgid ""
"The Cart Sensor detects and sends a signal, if a cart (Minecart) is nearby."
msgstr "Der Wagen Sensor sendet ein Signal, sofern ein Wagen in der Nähe ist."
#: cart_sensor.lua
msgid "The sensor has an active side (red) that must point to the rail/cart."
msgstr ""
"Der Sensor hat eine aktive Seite (rot), welche zu den Schienen zeigen muss."
#: changer.lua
msgid "Signs:"
msgstr "Zeichen:"
@ -74,6 +165,42 @@ msgstr "Zeichen:"
msgid "Bot Control Unit"
msgstr "Roboter Steuerungseinheit"
#: changer.lua
msgid "The Bot Control Unit is used to lead the bot by means of signs."
msgstr ""
"Die Roboter Steuerungseinheit dient zur Steuerung des Roboters über Zeichen."
#: changer.lua
msgid ""
"The unit can be loaded with up to 4 different signs and can be programmed by "
"means of sensors."
msgstr ""
"Die Einheit kann mit bis zu 4 verschiedenen Zeichen geladen und über "
"Sensoren programmiert werden."
#: changer.lua
msgid ""
"To load the unit, place a sign on the red side of the unit and click on the "
"unit."
msgstr ""
"Um die Steuerungseinheit zu laden, platziere ein Zeichen auf die rote Seite "
"der Einheit und klicke auf die Einheit."
#: changer.lua
msgid "The sign disappears / is moved to the inventory of the unit."
msgstr "Das Zeichen verschwindet/ist in die Steuerungseinheit verschoben."
#: changer.lua
msgid "This can be repeated 3 times."
msgstr "Dies kann bis zu 3 mal wiederholt werden."
#: changer.lua
msgid ""
"Use the connection tool to connect up to 4 sensors with the Bot Control Unit."
msgstr ""
"Benutze das Verbinde-Werkzeug um die bis zu 4 Sensoren mit der "
"Steuerungseinheit zu verbinden."
#: chest.lua
msgid "Bot Chest: Sends signal to "
msgstr "Roboter Kiste: Sende Signal zu "
@ -82,6 +209,27 @@ msgstr "Roboter Kiste: Sende Signal zu "
msgid "Signs Bot Chest"
msgstr "Signs Bot Kiste"
#: chest.lua
msgid "The Signs Bot Chest is a special chest with sensor function."
msgstr ""
"Die Roboter Kiste ist eine spezielle Kiste mit zusätzlicher Sensor-Funktion."
#: chest.lua
msgid "It sends a signal depending on the chest state."
msgstr "Sie sendet ein Signal abhängig vom Zustand der Kiste."
#: chest.lua
msgid "Possible states are 'empty', 'not empty', 'almost full'"
msgstr "Mögliche Zustände sind \"leer\", \"nicht leer\" und \"fast voll\""
#: chest.lua
msgid ""
"A typical use case is to turn off the bot, when the chest is almost full or "
"empty."
msgstr ""
"Ein typischer Anwendungsfall ist den Roboter zu stoppen, wenn die Kiste fast "
"voll oder leer ist."
#: cmd_farming.lua
msgid ""
"Sow farming seeds\n"
@ -112,6 +260,28 @@ msgstr ""
msgid "Sign \"farming\""
msgstr "Zeichen \"Farming\""
#: cmd_farming.lua
msgid "Sign 'farming'"
msgstr "Zeichen 'Farming'"
#: cmd_farming.lua
msgid "Used to harvest and seed a 3x3 field."
msgstr "Benötigt um ein 3x3 Feld zu ernten und wieder zu sähen."
#: cmd_farming.lua
msgid "Place the sign in front of the field."
msgstr "Platziere das Zeichen vor das Feld."
#: cmd_farming.lua
msgid "The seed to be placed has to be in the first inventory slot of the bot."
msgstr ""
"Das Saatgut, dass gesät werden soll, muss sich an der 1. Position im "
"Inventar befinden."
#: cmd_farming.lua
msgid "When finished, the bot turns."
msgstr "Der Roboter dreht um, wenn er fertig ist."
#: cmd_item.lua
msgid ""
"Take <num> items from a chest like node\n"
@ -123,6 +293,22 @@ msgstr ""
"und tue diese in das eigene Inventar\n"
"an der Position <slot>. Slot = (1..8)"
#: cmd_item.lua
msgid ""
"Take <num> items from a chest like node\n"
"and put it into the item inventory.\n"
"Take care that at least one more\n"
"item of this type is available.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
"Nehme <num> Gegenstände aus der\n"
"Kiste oder dem Kisten-ähnlichen Block\n"
"und tue diese in das eigene Inventar.\n"
"Achte darauf, dass mindestens ein\n"
"weiterer Gegenstand von diesem Typ\n"
"verfügbar ist.\n"
"<slot> ist die Inventar Position (1..8)"
#: cmd_item.lua
msgid ""
"Add <num> items to a chest like node\n"
@ -134,6 +320,32 @@ msgstr ""
"<slot> ist die Position im\n"
"eigenen Inventar (1--8)."
#: cmd_item.lua
msgid ""
"Add <num> items to a chest like node\n"
"taken from the item inventory,\n"
"but only if at least one item\n"
"of this type is already available.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
"Lege <num> Gegenstände aus dem\n"
"eigenen Inventar in die andere Kiste,\n"
"aber nur, wenn bereits mindestens ein\n"
"Gegenstand von gleichen Typ verfügbar\n"
"ist. <slot> ist die Position im\n"
"eigenen Inventar (1--8)."
#: cmd_item.lua
msgid ""
"Add <num> fuel to a furnace like node\n"
"taken from the item inventory.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
"Lege <num> Brennstoffe aus dem\n"
"eigenen Inventar in den anderen Block.\n"
"<slot> ist die Position im\n"
"eigenen Inventar (1--8)."
#: cmd_item.lua
msgid ""
"Pick up all objects\n"
@ -163,25 +375,25 @@ msgstr "Schlage den Wagen um ihn zu starten"
msgid "Move the robot one step back"
msgstr ""
"Bewege den Roboter\n"
"einen Schritt zurück."
"einen Schritt zurück"
#: cmd_move.lua
msgid "Turn the robot to the left"
msgstr ""
"Drehe den Roboter\n"
"nach links."
"nach links"
#: cmd_move.lua
msgid "Turn the robot to the right"
msgstr ""
"Drehe den Roboter\n"
"nach rechts."
"nach rechts"
#: cmd_move.lua
msgid "Turn the robot around"
msgstr ""
"Drehe den Roboter\n"
"um (180 Grad)."
"um (180 Grad)"
#: cmd_move.lua
msgid "Move the robot upwards"
@ -193,7 +405,7 @@ msgstr ""
msgid "Move the robot down"
msgstr ""
"Bewege den Roboter\n"
"nach unten."
"nach unten"
#: cmd_move.lua
msgid ""
@ -205,7 +417,7 @@ msgstr ""
#: cmd_move.lua
msgid "Stop the robot."
msgstr "Stoppe den Roboter"
msgstr "Stoppe den Roboter."
#: cmd_move.lua
msgid ""
@ -214,7 +426,7 @@ msgid ""
msgstr ""
"Schalte den Roboter aus und\n"
"setze ihn damit zurück in\n"
"seine Box"
"seine Box."
#: cmd_pattern.lua
msgid "Store pattern to be cloned."
@ -244,6 +456,44 @@ msgstr "Zeichen \"Vorlage\""
msgid "Sign \"copy 3x3x3\""
msgstr "Zeichen \"kopiere 3x3x3\""
#: cmd_pattern.lua
msgid "Sign 'pattern'"
msgstr "Zeichen 'Vorlage'"
#: cmd_pattern.lua
msgid "Used to make a copy of a 3x3x3 cube."
msgstr "Benötigt um eine Kopie eines 3x3x3 Quadrats zu machen."
#: cmd_pattern.lua
msgid "Place the sign in front of the pattern to be copied."
msgstr "Platziere das Zeichen vor die Vorlage, die kopiert werden soll."
#: cmd_pattern.lua
msgid ""
"Use the copy sign to make the copy of this pattern on a different location."
msgstr ""
"Benutze das Kopier-Zeichen, um eine Kopie dieser Vorlage an einer anderen "
"Stelle zu machen."
#: cmd_pattern.lua
msgid "The bot must first reach the pattern sign, then the copy sign."
msgstr ""
"Der Roboter muss zuerst das Vorlage-Zeichen und dann das Kopier-Zeichen "
"erreichen."
#: cmd_pattern.lua
msgid "Sign 'copy3x3x3'"
msgstr "Zeichen 'kopiere 3x3x3'"
#: cmd_pattern.lua
msgid "Place the sign in front of the location, where the copy should be made."
msgstr ""
"Platziere das Zeichen vor die Stelle, wo die Kopie hergestellt werden soll."
#: cmd_pattern.lua
msgid "Use the pattern sign to mark the pattern."
msgstr "Benutze das Vorlage-Zeichen und die Vorlage zu markieren."
#: cmd_place.lua
msgid ""
"Place a block in front of the robot\n"
@ -421,7 +671,7 @@ msgstr "Fehler: Kein Zeichen verfügar"
#: cmd_sign.lua
msgid "Error: Signs inventory slot is occupied"
msgstr "Fehler: Die Zeicheninventar Position ist belegt-"
msgstr "Fehler: Die Zeicheninventar Position ist belegt"
#: cmd_sign.lua
msgid "Error: Position is protected"
@ -448,6 +698,35 @@ msgstr ""
"<slot> ist die Position im\n"
"eigenen Inventar (1--6)."
#: cmd_sign.lua
msgid "Sign 'command'"
msgstr "Zeichen 'Kommando'"
#: cmd_sign.lua
msgid "The 'command' sign can be programmed by the player."
msgstr "Das 'Kommando' Zeichen kann vom Spieler programmiert werden."
#: cmd_sign.lua
msgid ""
"Place the sign in front of you and use the node menu to program your "
"sequence of bot commands."
msgstr ""
"Platziere das Zeichen vor dir und nutze das Zeichen-Menü, um die Kommando-"
"Sequenz zu programmieren."
#: cmd_sign.lua
msgid ""
"The menu has an edit field for your commands and a help page with all "
"available commands."
msgstr ""
"Das Menü hat ein Eingabefeld für deine Kommandos und eine Hilfeseite zu "
"allen Kommandos."
#: cmd_sign.lua doc.lua
msgid "The help page has a copy button to simplify the programming."
msgstr ""
"Die Hilfeseite hat einen Kopier-Button um die Programmierung zu erleichtern."
#: commands.lua
msgid "commands:"
msgstr "Kommandos:"
@ -466,7 +745,7 @@ msgstr "Kommandozeilen Fehler in Zeile "
#: commands.lua
msgid "Checked and approved"
msgstr "geprüft und genehmigt"
msgstr "Geprüft und genehmigt"
#: commands.lua
msgid ""
@ -500,6 +779,326 @@ msgstr "Ernte Sensor: Verbunden mit "
msgid "Crop Sensor"
msgstr "Ernte Sesor"
#: crop_sensor.lua
msgid "The Crop Sensor sends a signal when, for example wheat is fully grown."
msgstr ""
"Der Ernte Sensor sendet ein Signal, wenn bspw. der Weizen voll ausgewachsen "
"ist."
#: crop_sensor.lua
msgid "The sensor range is one node/meter."
msgstr "Der Sensorbereich beträgt einen Block/Meter."
#: crop_sensor.lua
msgid "The sensor has an active side (red) that must point to the crop/field."
msgstr ""
"Der Sensor hat eine aktive Seite (rot), welche zur der Pflanze zeigen muss."
#: doc.lua
msgid ""
"After you have placed the Signs Bot Box, you can start the bot by means of "
"the 'On' button in the box menu."
msgstr ""
"Nachdem du die Roboter-Kiste platziert hast, kannst du den Roboter über den "
"\"An\" Button im Kistenmenü starten."
#: doc.lua
msgid ""
"The bot then runs straight up until it reaches an obstacle (a step with two "
"or more blocks up or down or a sign.)"
msgstr ""
"Der Roboter läuft dann geradeaus, bis er ein Hindernis erreicht (eine Stufe "
"mit zwei oder mehr Blöcken, auf oder ab)."
#: doc.lua
msgid ""
"If the bot first reaches a sign it will execute the commands on the sign."
msgstr ""
"Falls der Roboter zuerst ein Zeichen erreicht, wird er die Kommandos auf dem "
"Zeichen ausführen."
#: doc.lua
msgid ""
"If the command(s) on the sign is e.g. 'turn_around', the bot turns and goes "
"back."
msgstr ""
"Falls das Kommandos auf dem Zeichen bspw. ein 'turn_around' ist, dreht der "
"Roboter um und geht zurück."
#: doc.lua
msgid "In this case, the bot reaches his box again and turns off."
msgstr ""
"In diesem Fall erreicht der Roboter wieder seine Box und schaltet sich ab."
#: doc.lua
msgid ""
"The Signs Bot Box has an inventory with 6 stacks for signs and 8 stacks for "
"other items (to be placed/dug by the bot)."
msgstr ""
"Die Roboter Box hat ein Inventar für 6 Stapel Zeichen und 8 Stapel für "
"andere Gegenstände (welche platziert oder eingesammelt werden können)."
#: doc.lua
msgid "This inventory simulates the bot internal inventory."
msgstr "Das Inventar der Box simuliert das Roboter Inventar."
#: doc.lua
msgid ""
"That means you will only have access to the inventory if the bot is turned "
"off ('sitting' in his box)."
msgstr ""
"Das bedeutet, du hast nur Zugriff auf das Inventar, sofern der Roboter "
"ausgeschaltet ist."
#: doc.lua
msgid ""
"You simply control the direction of the bot by means of the 'turn left' and "
"'turn right' signs (signs with the arrow)."
msgstr ""
"Du kannst die Richtung des Roboters ganz einfach über 'turn_left' (drehe "
"nach links) oder 'turn_right' (drehe nach rechts) Zeichen verändern."
#: doc.lua
msgid ""
"The bot can run over steps (one block up/down). But there are also commands "
"to move the bot up and down."
msgstr ""
"Der Roboter kann auch Stufen überwinden (eine Block hoch oder runter). Aber "
"es gibt auch Kommandos, um den Roboter nach oben oder unten zu bewegen."
#: doc.lua
msgid "It is not necessary to mark a way back to the box."
msgstr ""
"Es ist nicht notwendig, dem Roboter einen Weg zurück zu seiner Box zu "
"markieren."
#: doc.lua
msgid ""
"With the command 'turn_off' the bot will turn off and be back in his box "
"from every position."
msgstr ""
"Mit dem Kommando \"turn_off\" wird der Roboter ausgeschaltet und befindet "
"sich danach wieder in seiner Box, egal wo er war."
#: doc.lua
msgid "The same applies if you turn off the bot by the box menu."
msgstr ""
"Das gleiche gilt, wenn du den Roboter über den 'Aus' Button ausschaltest."
#: doc.lua
msgid ""
"If the bot reaches a sign from the wrong direction (from back or sides) the "
"sign will be ignored."
msgstr ""
"Wenn der Roboter ein Zeichen von der falschen Richtung erreicht (von der "
"Seite oder von hinten), wird das Zeichen ignoriert."
#: doc.lua
msgid "The bot will walk over."
msgstr "Der Roboter läuft einfach hinüber."
#: doc.lua
msgid "All predefined signs have a menu with a list of the bot commands."
msgstr ""
"Alle vordefinierten Zeichen haben ein Menü mit der Liste der Kommandos."
#: doc.lua
msgid ""
"These signs can't be changed, but you can craft and program your own signs."
msgstr ""
"Diese Zeichen können nicht geändert werden, aber du kannst eigene Zeichen "
"herstellen und programmieren."
#: doc.lua
msgid "For this you have to use the 'command' sign."
msgstr "Dafür kannst du das 'command' Zeichen verwenden."
#: doc.lua
msgid ""
"This sign has an edit field for your commands and a help page with all "
"available commands."
msgstr ""
"Das Zeichen hat ein Eingabefeld für deine Kommandos und eine Hilfeseite zu "
"allen Kommandos."
#: doc.lua
msgid "Also for your own signs it is important to know:"
msgstr "Es ist auch für eigene Zeichen wichtig zu wissen:"
#: doc.lua
msgid ""
"After the execution of the last command of the sign, the bot falls back into "
"its default behaviour and runs in its taken direction."
msgstr ""
"Nach der Ausführung des letzten Kommandos eines Zeichens fällt der Roboter "
"immer zurück in sein Standardverhalten und läuft in die eingeschlagene "
"Richtung weiter."
#: doc.lua
msgid "A standard job for the bot is to move items from one chest to another"
msgstr ""
"Eine Standardaufgabe für den Roboter ist, Gegenstände von einer Kiste in "
"eine andere zu tun"
#: doc.lua
msgid "(chest or node with a chest like inventory)."
msgstr "(Kiste oder Block mit Kisten-ähnlichem Inventar)."
#: doc.lua
msgid "This can be done by means of the two signs 'take item' and 'add item'."
msgstr ""
"Das kann mit Hilfe von zwei Zeichen realisiert werden: 'take_item' und "
"'add_item'."
#: doc.lua
msgid "These signs have to be placed on top of chest nodes."
msgstr "Diese Zeichen müssen auf den Kisten platziert werden."
#: doc.lua
msgid "In addition to the signs the bot can be controlled by means of sensors."
msgstr ""
"Zusätzlich zu den Zeichen kann der Roboter auch über Sensoren gesteuert "
"werden."
#: doc.lua
msgid "Sensors like the Bot Sensor have two states: on and off."
msgstr ""
"Sensoren wie der Roboter-Sensor haben zwei Zustande: on' (an) und "
"'off' (aus)."
#: doc.lua
msgid "If the Bot Sensor detects a bot it will switch to the state 'on' and"
msgstr ""
"Wenn der Roboter-Sensor einen Roboter erkennt geht er in den Zustand 'on' und"
#: doc.lua
msgid "sends a signal to a connected block, called an actuator."
msgstr "sendet ein Signal zu einem verbundenen Block, einem Aktor."
#: doc.lua
msgid "Sensors are:"
msgstr "Sensoren sind:"
#: doc.lua
msgid "- Bot Sensor: Sends a signal when the robot passes by"
msgstr "- Roboter Sensor: Sendet ein Signal wenn ein Roboter vorbei geht"
#: doc.lua
msgid "- Node Sensor: Sends a signal when it detects any node"
msgstr ""
"- Block Sensor: Sendet ein Signal bei einer Veränderung von Blocken vor sich"
#: doc.lua
msgid "- Crop Sensor: Sends a signal when, for example wheat is fully grown"
msgstr ""
"- Ernte Sensor: Sendet ein Signal, wenn bspw. der Weizen voll ausgewachsen "
"ist"
#: doc.lua
msgid "- Bot Chest: Sends a signal depending on the chest state (empty, full)"
msgstr ""
"- Roboter-Kiste: Sendet ein Signal abhängig vom Zustand der Kiste (voll, "
"leer)"
#: doc.lua
msgid "Actuators are:"
msgstr "Aktoren sind:"
#: doc.lua
msgid "- Signs Bot Box: Can turn the bot off and on"
msgstr "- Roboter-Box: Kann den Roboter ein- und ausschalten"
#: doc.lua
msgid "- Control Unit: Can be used to exchange the sign to lead the bot"
msgstr ""
"- Steuerungseinheit: Wird genutzt um Zeichen auszutauschen und damit den "
"Roboter zu steuern"
#: doc.lua
msgid "Additional sensors and actuator can be added by other mods."
msgstr ""
"Weitere Sensoren und Aktoren können von weiteren Mods hinzugefügt werden."
#: doc.lua
msgid ""
"To send a signal from a sensor to an actuator, the sensor has to be "
"connected (paired) with actuator."
msgstr ""
"Um ein Signal von einem Sensor zu einem Aktor senden zu können, muss der "
"Sensor mit dem Aktor verbunden werden (Pairing)."
#: doc.lua
msgid ""
"To connect sensor and actuator, the Sensor Connection Tool has to be used."
msgstr ""
"Das Sensor Verbinde-Werkzeug wir genutzt, um Sensoren mit Aktoren zu "
"verbinden."
#: doc.lua
msgid ""
"Simply click with the tool on both blocks and the sensor will be connected "
"with the actuator."
msgstr ""
"Klicke einfach mit dem Werkzeug nacheinander auf beide Blöcke und der Sensor "
"wird mit dem Aktor verbunden."
#: doc.lua
msgid "A successful connection is indicated by a ping/pong noise."
msgstr ""
"Eine erfolgreiche Verbindung wird über ein Ping/Pong-Geräusch angezeigt."
#: doc.lua
msgid ""
"Before you connect sensor with actuator, take care that the actuator is in "
"the requested state."
msgstr ""
"Bevor du einen Sensor mit einem Aktor verbindest, achte darauf, dass sich "
"der Aktor im richtigen Zustand befindet."
#: doc.lua
msgid ""
"For example: If you want to start the Bot with a sensor, connect the sensor "
"with the Bot Box,"
msgstr ""
"Zum Beispiel: Wenn du den Roboter über einen Sensor starten willst, verbinde "
"Sensor und Roboter-Kiste nur,"
#: doc.lua
msgid ""
"when the Bot is in the state 'on'. Otherwise the sensor signal will stop the "
"Bot,"
msgstr ""
"wenn der Roboter an ist (im Zustand 'on'). Anderenfalls würde der Sensor den "
"Roboter ausschalten,"
#: doc.lua
msgid "instead of starting it."
msgstr "anstatt ihn zu starten."
#: doc.lua
msgid "Signs Bot"
msgstr "Signs Bot"
#: doc.lua
msgid "A robot controlled by signs, used for automated work"
msgstr "Ein Roboter, gesteuert über Zeichen, für Automatisierungsaufgaben"
#: doc.lua
msgid "Start the Bot"
msgstr "Starte den Roboter"
#: doc.lua
msgid "Control the Bot"
msgstr "Steuere den Roboter"
#: doc.lua
msgid "Sensors and Actuators"
msgstr "Sensoren und Aktoren"
#: doc.lua
msgid "Connecting sensors and actuator"
msgstr "Verbinde Sensor mit Aktor"
#: duplicator.lua
msgid "Input:"
msgstr "Eingabe:"
@ -548,6 +1147,41 @@ msgstr "\"Benutzer\" Zeichen"
msgid "Sign \"blank\""
msgstr "\"Leeres\" Zeichen"
#: duplicator.lua
msgid "The Duplicator can be used to make copies of signs."
msgstr ""
"Der Zeichen Kopierer kann zur Herstellung von Kopien eines Zeichens genutzt "
"werden."
#: duplicator.lua
msgid ""
"1. Put one 'cmnd' sign to be used as template into the 'Template' inventory"
msgstr "1. Lege ein Kommando-Zeichen als Vorlage in das 'Vorlage' Inventar"
#: duplicator.lua
msgid "2. Add one or several 'blank signs' to the 'Input' inventory."
msgstr "2. Füge ein oder mehrere 'leere Zeichen' als Eingabe hinzu."
#: duplicator.lua
msgid "3. Take the copies from the 'Output' inventory."
msgstr "3. Entnehme die Kopieren aus der Ausgabe."
#: duplicator.lua
msgid ""
"Written books [default:book_written] can alternatively be used as template"
msgstr ""
"Alternativ können auch beschriebene Bücher [default:book_written] als "
"Vorlage verwendet werden"
#: duplicator.lua
msgid "Already written signs can be used as input, too."
msgstr ""
"Bereits beschriebene Zeichen können auch als Eingabe-Zeichen genutzt werden."
#: duplicator.lua
msgid "Needed as input for the Duplicator."
msgstr "Wird als Eingabe für den Zeichen Kopierer benötigt."
#: extender.lua
msgid "Sensor Extender: Connected with "
msgstr "Sensor Erweiterung: Verbunden mit "
@ -560,6 +1194,24 @@ msgstr "Sensor Erweiterung"
msgid "Sensor Extender: Not connected"
msgstr "Sensor Erweiterung: Nicht verbunden"
#: extender.lua
msgid ""
"With the Sensor Extender, sensor signals can be sent to more than one "
"actuator."
msgstr ""
"Mit Hilfe der Sensor-Erweiterung können weitere Aktoren mit dem Sensor "
"verbunden werden."
#: extender.lua
msgid "Place one or more extender nearby the sensor and connect each extender"
msgstr ""
"Platziere ein oder mehrere Sensor-Erweiterungen neben einen Sensor und "
"verbinde diese"
#: extender.lua
msgid "with one further actuator by means of the Connection Tool."
msgstr "mit weiteren Aktoren mit Hilfe des Verbinde-Werkzeuges."
#: node_sensor.lua
msgid "Node Sensor: Connected with "
msgstr "Block Sensor: Verbunden mit "
@ -568,6 +1220,29 @@ msgstr "Block Sensor: Verbunden mit "
msgid "Node Sensor"
msgstr "Block Sensor"
#: node_sensor.lua
msgid ""
"The Node Sensor sends a signal when it detects any node change (nodes appear "
"or disappear)."
msgstr ""
"Der Block Sensor sendet ein Signal, wenn er eine Veränderung von Blocken vor "
"sich entdeckt (ein Block erscheint oder verschwindet)."
#: node_sensor.lua
msgid "Valid nodes are all kind of blocks and plants."
msgstr "Gültig sind alle Arten von Blöcken oder Pflanzen."
#: node_sensor.lua
msgid "The sensor range is 3 nodes/meters in one direction."
msgstr "Die Sensor-Reichweite beträgt 3 Blöcke/Meter in eine Richtung."
#: node_sensor.lua
msgid ""
"The sensor has an active side (red) that must point to the observed area."
msgstr ""
"Der Sensor hat eine aktive Seite (rot) welche zu dem zu überwachenden "
"Bereich zeigen muss."
#: signs.lua
msgid "Sign \"turn right\""
msgstr "Zeichen \"rechts drehen\""
@ -588,6 +1263,36 @@ msgstr "Zeichen \"Lege Gegenstand\""
msgid "Sign \"stop\""
msgstr "Zeichen \"Stopp\""
#: signs.lua
msgid "The Bot turns right when it detects this sign in front of it."
msgstr "Der Roboter dreht nach rechts, wenn er dieses Zeichen vor sich hat."
#: signs.lua
msgid "The Bot turns left when it detects this sign in front of it."
msgstr "Der Roboter dreht nach links, wenn er dieses Zeichen vor sich hat."
#: signs.lua
msgid ""
"The Bot takes items out of a chest in front of it and then turns around."
msgstr ""
"Der Roboter nimmt Gegenstände aus einer Kiste vor sich und dreht dann um."
#: signs.lua
msgid "This sign has to be placed on top of the chest."
msgstr "Das Zeichen muss auf der Kiste platziert werden."
#: signs.lua
msgid "The Bot puts items into a chest in front of it and then turns around."
msgstr "Der Roboter legt Gegenstände in eine Kiste vor sich und dreht dann um."
#: signs.lua
msgid ""
"The Bot will stop in front of this sign until the sign is removed or the bot "
"is turned off."
msgstr ""
"Der Roboter stoppt vor diesem Zeichen, bis das Zeichen entfernt, oder der "
"Roboter ausgeschaltet wird."
#: tool.lua
msgid "Sensor Connection Tool"
msgstr "Sensor Verbindungswerkzeug"
@ -607,3 +1312,14 @@ msgstr "Zykluszeit [min]:"
#: timer.lua
msgid "Start"
msgstr "Start"
#: timer.lua
msgid "Special kind of sensor."
msgstr "Spezielle Form eines Sensors."
#: timer.lua
msgid ""
"Can be programmed with a time in seconds, e.g. to start the bot cyclically."
msgstr ""
"Kann mit einer Zeit in Sekunden programmiert werden, um bspw. den Roboter "
"zyklisch zu starten."

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-04-14 19:34+0200\n"
"PO-Revision-Date: 2019-04-14 19:36+0200\n"
"POT-Creation-Date: 2019-06-25 23:27+0200\n"
"PO-Revision-Date: 2019-06-25 23:34+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
@ -50,10 +50,69 @@ msgstr "gestoppt"
msgid "Signs Bot Box"
msgstr "Signs Bot Kiste"
#: basis.lua
msgid "The Box is the housing of the bot."
msgstr "Die Kiste ist das Gehäuse des Roboters."
#: basis.lua
msgid "Place the box and start the bot by means of the 'On' button."
msgstr "Platziere die Kiste und starte den Roboter über den \"An\" Button."
#: basis.lua
msgid "If the mod techage is installed, the bot needs electrical power."
msgstr ""
"Wenn die Mod techage installiert ist, benötigt der Roboter elektrischen "
"Strom."
#: basis.lua
msgid "The bot leaves the box on the right side."
msgstr "Der Roboter verlässt die Kiste auf der rechten Seite."
#: basis.lua
msgid "It will not start, if this position is blocked."
msgstr "Er startet nicht, wenn diese Position belegt ist."
#: basis.lua
msgid "To stop and remove the bot, press the 'Off' button."
msgstr ""
"Um den Roboter zu stoppen bzw. zu entfernen, drücke den \"Aus\" Button."
#: basis.lua
msgid "The box inventory simulates the inventory of the bot."
msgstr "Das Inventar der Kiste simuliert das Roboter Inventar."
#: basis.lua
msgid "You will not be able to access the inventory, if the bot is running."
msgstr ""
"Du hast keinen Zugriff auf das Inventar, sofern der Roboter unterwegs ist."
#: basis.lua
msgid "The bot can carry up to 8 stacks and 6 signs with it."
msgstr "Der Roboter kann 8 Stapel von Blöcken und 6 Zeichen transportieren."
#: bot_flap.lua
msgid "Exit"
msgstr "Beenden"
#: bot_flap.lua
msgid "Bot Flap"
msgstr "Roboterklappe"
#: bot_flap.lua
msgid "The flap is a simple block used as door for the bot."
msgstr ""
"Die Klappe ist ein einfacher Block, welcher vom Roboter als Tür genutzt wird."
#: bot_flap.lua
msgid "Place the flap in any wall, and the bot will automatically open"
msgstr ""
"Platziere die Klappe in eine Mauer und der Roboter wird die Klappe "
"automatisch öffnen"
#: bot_flap.lua
msgid "and close the flap as it passes through it."
msgstr " und wieder schließen, wenn er durchgegangen ist."
#: bot_sensor.lua
msgid "Bot Sensor: Connected with "
msgstr "Bot Sensor: Verbunden mit "
@ -66,6 +125,38 @@ msgstr "Bot Sensor"
msgid "Bot Sensor: Not connected"
msgstr "Bot Sensor: Nicht verbunden"
#: bot_sensor.lua
msgid "The Bot Sensor detects any bot and sends a signal, if a bot is nearby."
msgstr ""
"Der Roboter Sensor entdeckt jeden Roboter und sendet ein Signal, sofern ein "
"Roboter in der Nähe ist."
#: bot_sensor.lua cart_sensor.lua
msgid "the sensor range is one node/meter."
msgstr "Der Sensorbereich ist einen Block/Meter groß."
#: bot_sensor.lua
msgid "The sensor direction does not care."
msgstr "Die Ausrichtung des Sensor spielt keine Rolle."
#: cart_sensor.lua
msgid "Cart Sensor: Connected with "
msgstr "Wagen Sensor: Verbunden mit "
#: cart_sensor.lua
msgid "Cart Sensor"
msgstr "Wagen Sesor"
#: cart_sensor.lua
msgid ""
"The Cart Sensor detects and sends a signal, if a cart (Minecart) is nearby."
msgstr "Der Wagen Sensor sendet ein Signal, sofern ein Wagen in der Nähe ist."
#: cart_sensor.lua
msgid "The sensor has an active side (red) that must point to the rail/cart."
msgstr ""
"Der Sensor hat eine aktive Seite (rot), welche zu den Schienen zeigen muss."
#: changer.lua
msgid "Signs:"
msgstr "Zeichen:"
@ -74,6 +165,42 @@ msgstr "Zeichen:"
msgid "Bot Control Unit"
msgstr "Roboter Steuerungseinheit"
#: changer.lua
msgid "The Bot Control Unit is used to lead the bot by means of signs."
msgstr ""
"Die Roboter Steuerungseinheit dient zur Steuerung des Roboters über Zeichen."
#: changer.lua
msgid ""
"The unit can be loaded with up to 4 different signs and can be programmed by "
"means of sensors."
msgstr ""
"Die Einheit kann mit bis zu 4 verschiedenen Zeichen geladen und über "
"Sensoren programmiert werden."
#: changer.lua
msgid ""
"To load the unit, place a sign on the red side of the unit and click on the "
"unit."
msgstr ""
"Um die Steuerungseinheit zu laden, platziere ein Zeichen auf die rote Seite "
"der Einheit und klicke auf die Einheit."
#: changer.lua
msgid "The sign disappears / is moved to the inventory of the unit."
msgstr "Das Zeichen verschwindet/ist in die Steuerungseinheit verschoben."
#: changer.lua
msgid "This can be repeated 3 times."
msgstr "Dies kann bis zu 3 mal wiederholt werden."
#: changer.lua
msgid ""
"Use the connection tool to connect up to 4 sensors with the Bot Control Unit."
msgstr ""
"Benutze das Verbinde-Werkzeug um die bis zu 4 Sensoren mit der "
"Steuerungseinheit zu verbinden."
#: chest.lua
msgid "Bot Chest: Sends signal to "
msgstr "Roboter Kiste: Sende Signal zu "
@ -82,6 +209,27 @@ msgstr "Roboter Kiste: Sende Signal zu "
msgid "Signs Bot Chest"
msgstr "Signs Bot Kiste"
#: chest.lua
msgid "The Signs Bot Chest is a special chest with sensor function."
msgstr ""
"Die Roboter Kiste ist eine spezielle Kiste mit zusätzlicher Sensor-Funktion."
#: chest.lua
msgid "It sends a signal depending on the chest state."
msgstr "Sie sendet ein Signal abhängig vom Zustand der Kiste."
#: chest.lua
msgid "Possible states are 'empty', 'not empty', 'almost full'"
msgstr "Mögliche Zustände sind \"leer\", \"nicht leer\" und \"fast voll\""
#: chest.lua
msgid ""
"A typical use case is to turn off the bot, when the chest is almost full or "
"empty."
msgstr ""
"Ein typischer Anwendungsfall ist den Roboter zu stoppen, wenn die Kiste fast "
"voll oder leer ist."
#: cmd_farming.lua
msgid ""
"Sow farming seeds\n"
@ -112,6 +260,28 @@ msgstr ""
msgid "Sign \"farming\""
msgstr "Zeichen \"Farming\""
#: cmd_farming.lua
msgid "Sign 'farming'"
msgstr "Zeichen 'Farming'"
#: cmd_farming.lua
msgid "Used to harvest and seed a 3x3 field."
msgstr "Benötigt um ein 3x3 Feld zu ernten oder zu sähen."
#: cmd_farming.lua
msgid "Place the sign in front of the field."
msgstr "Pflanze einen Setzling vor den Roboter."
#: cmd_farming.lua
msgid "The seed to be placed has to be in the first inventory slot of the bot."
msgstr ""
"Das Saatgut, dass gesät werden soll, muss sich an der 1. Position im "
"Inventar befinden."
#: cmd_farming.lua
msgid "When finished, the bot turns."
msgstr "Der Roboter dreht um, wenn er fertig ist."
#: cmd_item.lua
msgid ""
"Take <num> items from a chest like node\n"
@ -123,6 +293,22 @@ msgstr ""
"und tue diese in das eigene Inventar\n"
"an der Position <slot>. Slot = (1..8)"
#: cmd_item.lua
msgid ""
"Take <num> items from a chest like node\n"
"and put it into the item inventory.\n"
"Take care that at least one more\n"
"item of this type is available.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
"Nehme <num> Gegenstände aus der\n"
"Kiste oder dem Kisten-ähnlichen Block\n"
"und tue diese in das eigene Inventar.\n"
"Achte darauf, dass mindestens ein\n"
"weiterer Gegenstand von diesem Typ\n"
"verfügbar ist.\n"
"<slot> ist die Inventar Position (1..8)"
#: cmd_item.lua
msgid ""
"Add <num> items to a chest like node\n"
@ -134,6 +320,32 @@ msgstr ""
"<slot> ist die Position im\n"
"eigenen Inventar (1--8)."
#: cmd_item.lua
msgid ""
"Add <num> items to a chest like node\n"
"taken from the item inventory,\n"
"but only if at least one item\n"
"of this type is already available.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
"Lege <num> Gegenstände aus dem\n"
"eigenen Inventar in die andere Kiste,\n"
"aber nur, wenn bereits mindestens ein\n"
"Gegenstand von gleichen Typ verfügbar\n"
"ist. <slot> ist die Position im\n"
"eigenen Inventar (1--8)."
#: cmd_item.lua
msgid ""
"Add <num> fuel to a furnace like node\n"
"taken from the item inventory.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
"Lege <num> Brennstoffe aus dem\n"
"eigenen Inventar in den anderen Block.\n"
"<slot> ist die Position im\n"
"eigenen Inventar (1--8)."
#: cmd_item.lua
msgid ""
"Pick up all objects\n"
@ -155,6 +367,10 @@ msgstr ""
"<slot> ist die Position im\n"
"eigenen Inventar (1--8)."
#: cmd_item.lua
msgid "Punch a rail cart to start it"
msgstr "Schlage den Wagen um ihn zu starten"
#: cmd_move.lua
msgid "Move the robot one step back"
msgstr ""
@ -183,13 +399,13 @@ msgstr ""
msgid "Move the robot upwards"
msgstr ""
"Bewege den Roboter\n"
"nach unten"
"nach oben"
#: cmd_move.lua
msgid "Move the robot down"
msgstr ""
"Bewege den Roboter\n"
"nach oben."
"nach unten."
#: cmd_move.lua
msgid ""
@ -240,6 +456,44 @@ msgstr "Zeichen \"Vorlage\""
msgid "Sign \"copy 3x3x3\""
msgstr "Zeichen \"kopiere 3x3x3\""
#: cmd_pattern.lua
msgid "Sign 'pattern'"
msgstr "Zeichen 'Vorlage'"
#: cmd_pattern.lua
msgid "Used to make a copy of a 3x3x3 cube."
msgstr "Benötigt um eine Kopie eines 3x3x3 Quadrats zu machen."
#: cmd_pattern.lua
msgid "Place the sign in front of the pattern to be copied."
msgstr "Pflanze einen Setzling vor den Roboter."
#: cmd_pattern.lua
msgid ""
"Use the copy sign to make the copy of this pattern on a different location."
msgstr ""
"Benutze das Kopier-Zeichen, um eine Kopie dieser Vorlage an einer anderen "
"Stelle zu machen."
#: cmd_pattern.lua
msgid "The bot must first reach the pattern sign, then the copy sign."
msgstr ""
"Der Roboter muss zuerst das Vorlage-Zeichen und dann das Kopier-Zeichen "
"erreichen."
#: cmd_pattern.lua
msgid "Sign 'copy3x3x3'"
msgstr "Zeichen 'kopiere 3x3x3'"
#: cmd_pattern.lua
msgid "Place the sign in front of the location, where the copy should be made."
msgstr ""
"Platziere das Zeichen vor die Stelle, wo die Kopie hergestellt werden soll."
#: cmd_pattern.lua
msgid "Use the pattern sign to mark the pattern."
msgstr "Benutze das Vorlage-Zeichen und die Vorlage zu markieren."
#: cmd_place.lua
msgid ""
"Place a block in front of the robot\n"
@ -444,8 +698,37 @@ msgstr ""
"<slot> ist die Position im\n"
"eigenen Inventar (1--6)."
#: cmd_sign.lua
msgid "Sign 'command'"
msgstr "Zeichen 'Kommando'"
#: cmd_sign.lua
msgid "The 'command' sign can be programmed by the player."
msgstr "Das 'Kommando' Zeichen kann vom Spieler programmiert werden."
#: cmd_sign.lua
msgid ""
"Place the sign in front of you and use the node menu to program your "
"sequence of bot commands."
msgstr ""
"Platziere das Zeichen vor dir und nutze das Zeichen-Menü, um die Kommando-"
"Sequenz zu programmieren."
#: cmd_sign.lua
msgid ""
"The menu has an edit field for your commands and a help page with all "
"available commands."
msgstr ""
"Das Menü hat ein Eingabefeld für deine Kommandos und eine Hilfeseite zu "
"allen Kommandos."
#: cmd_sign.lua
msgid "The help page has a copy button to simplify the programming."
msgstr ""
"Die Hilfeseite hat einen Kopier-Button um die Programmierung zu erleichtern."
#: commands.lua
msgid " commands:"
msgid "commands:"
msgstr "Kommandos:"
#: commands.lua
@ -496,6 +779,21 @@ msgstr "Ernte Sensor: Verbunden mit "
msgid "Crop Sensor"
msgstr "Ernte Sesor"
#: crop_sensor.lua
msgid "The Crop Sensor sends a signal when, for example wheat is fully grown."
msgstr ""
"Der Ernte Sensor sendet ein Signal, wenn bspw. der Weizen voll ausgewachsen "
"ist."
#: crop_sensor.lua
msgid "The sensor range is one node/meter."
msgstr "Der Sensorbereich beträgt einen Block/Meter."
#: crop_sensor.lua
msgid "The sensor has an active side (red) that must point to the crop/field."
msgstr ""
"Der Sensor hat eine aktive Seite (rot), welche zur der Pflanze zeigen muss."
#: duplicator.lua
msgid "Input:"
msgstr "Eingabe:"
@ -544,6 +842,41 @@ msgstr "\"Benutzer\" Zeichen"
msgid "Sign \"blank\""
msgstr "\"Leeres\" Zeichen"
#: duplicator.lua
msgid "The Duplicator can be used to make copies of signs."
msgstr ""
"Der Zeichen Kopierer kann zur Herstellung von Kopien eines Zeichens genutzt "
"werden."
#: duplicator.lua
msgid ""
"1. Put one 'cmnd' sign to be used as template into the 'Template' inventory"
msgstr "1. Lege ein Kommando-Zeichen als Vorlage in das 'Vorlage' Inventar."
#: duplicator.lua
msgid "2. Add one or several 'blank signs' to the 'Input' inventory."
msgstr "2. Füge ein oder mehrere 'leere Zeichen' als Eingabe hinzu."
#: duplicator.lua
msgid "3. Take the copies from the 'Output' inventory."
msgstr "3. Entnehme die Kopieren aus der Ausgabe."
#: duplicator.lua
msgid ""
"Written books [default:book_written] can alternatively be used as template"
msgstr ""
"Alternativ können auch beschriebene Bücher [default:book_written] als "
"Vorlage verwendet werden."
#: duplicator.lua
msgid "Already written signs can be used as input, too."
msgstr ""
"Bereits beschriebene Zeichen können auch als Eingabe-Zeichen genutzt werden."
#: duplicator.lua
msgid "Needed as input for the Duplicator."
msgstr "Wird als Eingabe für den Zeichen Kopierer benötigt."
#: extender.lua
msgid "Sensor Extender: Connected with "
msgstr "Sensor Erweiterung: Verbunden mit "
@ -556,6 +889,24 @@ msgstr "Sensor Erweiterung"
msgid "Sensor Extender: Not connected"
msgstr "Sensor Erweiterung: Nicht verbunden"
#: extender.lua
msgid ""
"With the Sensor Extender, sensor signals can be sent to more than one "
"actuator."
msgstr ""
"Mit Hilfe der Sensor-Erweiterung können weitere Aktoren mit dem Sensor "
"verbunden werden."
#: extender.lua
msgid "Place one or more extender nearby the sensor and connect each extender"
msgstr ""
"Platziere ein oder mehrere Sensor-Erweiterungen neben einen Sensor und "
"verbinde diese"
#: extender.lua
msgid "with one further actuator by means of the Connection Tool."
msgstr "mit weiteren Aktoren mit Hilfe des Verbinde-Werkzeuges."
#: node_sensor.lua
msgid "Node Sensor: Connected with "
msgstr "Block Sensor: Verbunden mit "
@ -564,6 +915,29 @@ msgstr "Block Sensor: Verbunden mit "
msgid "Node Sensor"
msgstr "Block Sensor"
#: node_sensor.lua
msgid ""
"The Node Sensor sends a signal when it detects any node change (nodes appear "
"or disappear)."
msgstr ""
"Der Block Sensor sendet ein Signal, wenn er eine Veränderung von Blocken vor "
"sich entdeckt (ein Block erscheint oder verschwindet)."
#: node_sensor.lua
msgid "Valid nodes are all kind of blocks and plants."
msgstr "Gültig sind alle Arten von Blöcken oder Pflanzen."
#: node_sensor.lua
msgid "The sensor range is 3 nodes/meters in one direction."
msgstr "Die Sensor-Reichweite beträgt 3 Blöcke/Meter in eine Richtung."
#: node_sensor.lua
msgid ""
"The sensor has an active side (red) that must point to the observed area."
msgstr ""
"Der Sensor hat eine aktive Seite (rot) welche zu dem zu überwachenden "
"Bereich zeigen muss."
#: signs.lua
msgid "Sign \"turn right\""
msgstr "Zeichen \"rechts drehen\""
@ -584,6 +958,36 @@ msgstr "Zeichen \"Lege Gegenstand\""
msgid "Sign \"stop\""
msgstr "Zeichen \"Stopp\""
#: signs.lua
msgid "The Bot turns right when it detects this sign in front of it."
msgstr "Der Roboter dreht nach rechts, wenn er dieses Zeichen vor sich hat."
#: signs.lua
msgid "The Bot turns left when it detects this sign in front of it."
msgstr "Der Roboter dreht nach links, wenn er dieses Zeichen vor sich hat."
#: signs.lua
msgid ""
"The Bot takes items out of a chest in front of it and then turns around."
msgstr ""
"Der Roboter nimmt Gegenstände aus einer Kiste vor sich und dreht dann um."
#: signs.lua
msgid "This sign has to be placed on top of the chest."
msgstr "Das Zeichen muss auf der Kiste platziert werden."
#: signs.lua
msgid "The Bot puts items into a chest in front of it and then turns around."
msgstr "Der Roboter legt Gegenstände in eine Kiste vor sich und dreht dann um."
#: signs.lua
msgid ""
"The Bot will stop in front of this sign until the sign is removed or the bot "
"is turned off."
msgstr ""
"Der Roboter stoppt vor diesem Zeichen, bis das Zeichen entfernt, oder der "
"Roboter ausgeschaltet wird."
#: tool.lua
msgid "Sensor Connection Tool"
msgstr "Sensor Verbindungswerkzeug"
@ -603,3 +1007,14 @@ msgstr "Zykluszeit [min]:"
#: timer.lua
msgid "Start"
msgstr "Start"
#: timer.lua
msgid "Special kind of sensor."
msgstr "Spezielle Form eines Sensors."
#: timer.lua
msgid ""
"Can be programmed with a time in seconds, e.g. to start the bot cyclically."
msgstr ""
"Kann mit einer Zeit in Sekunden programmiert werden, um bspw. den Roboter "
"zyklisch zu starten."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-04-15 20:53+0200\n"
"POT-Creation-Date: 2019-06-25 23:36+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -49,10 +49,62 @@ msgstr ""
msgid "Signs Bot Box"
msgstr ""
#: basis.lua
msgid "The Box is the housing of the bot."
msgstr ""
#: basis.lua
msgid "Place the box and start the bot by means of the 'On' button."
msgstr ""
#: basis.lua
msgid "If the mod techage is installed, the bot needs electrical power."
msgstr ""
#: basis.lua
msgid "The bot leaves the box on the right side."
msgstr ""
#: basis.lua
msgid "It will not start, if this position is blocked."
msgstr ""
#: basis.lua
msgid "To stop and remove the bot, press the 'Off' button."
msgstr ""
#: basis.lua
msgid "The box inventory simulates the inventory of the bot."
msgstr ""
#: basis.lua
msgid "You will not be able to access the inventory, if the bot is running."
msgstr ""
#: basis.lua
msgid "The bot can carry up to 8 stacks and 6 signs with it."
msgstr ""
#: bot_flap.lua
msgid "Exit"
msgstr ""
#: bot_flap.lua
msgid "Bot Flap"
msgstr ""
#: bot_flap.lua
msgid "The flap is a simple block used as door for the bot."
msgstr ""
#: bot_flap.lua
msgid "Place the flap in any wall, and the bot will automatically open"
msgstr ""
#: bot_flap.lua
msgid "and close the flap as it passes through it."
msgstr ""
#: bot_sensor.lua
msgid "Bot Sensor: Connected with "
msgstr ""
@ -65,6 +117,35 @@ msgstr ""
msgid "Bot Sensor: Not connected"
msgstr ""
#: bot_sensor.lua
msgid "The Bot Sensor detects any bot and sends a signal, if a bot is nearby."
msgstr ""
#: bot_sensor.lua cart_sensor.lua
msgid "the sensor range is one node/meter."
msgstr ""
#: bot_sensor.lua
msgid "The sensor direction does not care."
msgstr ""
#: cart_sensor.lua
msgid "Cart Sensor: Connected with "
msgstr ""
#: cart_sensor.lua
msgid "Cart Sensor"
msgstr ""
#: cart_sensor.lua
msgid ""
"The Cart Sensor detects and sends a signal, if a cart (Minecart) is nearby."
msgstr ""
#: cart_sensor.lua
msgid "The sensor has an active side (red) that must point to the rail/cart."
msgstr ""
#: changer.lua
msgid "Signs:"
msgstr ""
@ -73,6 +154,35 @@ msgstr ""
msgid "Bot Control Unit"
msgstr ""
#: changer.lua
msgid "The Bot Control Unit is used to lead the bot by means of signs."
msgstr ""
#: changer.lua
msgid ""
"The unit can be loaded with up to 4 different signs and can be programmed by "
"means of sensors."
msgstr ""
#: changer.lua
msgid ""
"To load the unit, place a sign on the red side of the unit and click on the "
"unit."
msgstr ""
#: changer.lua
msgid "The sign disappears / is moved to the inventory of the unit."
msgstr ""
#: changer.lua
msgid "This can be repeated 3 times."
msgstr ""
#: changer.lua
msgid ""
"Use the connection tool to connect up to 4 sensors with the Bot Control Unit."
msgstr ""
#: chest.lua
msgid "Bot Chest: Sends signal to "
msgstr ""
@ -81,6 +191,24 @@ msgstr ""
msgid "Signs Bot Chest"
msgstr ""
#: chest.lua
msgid "The Signs Bot Chest is a special chest with sensor function."
msgstr ""
#: chest.lua
msgid "It sends a signal depending on the chest state."
msgstr ""
#: chest.lua
msgid "Possible states are 'empty', 'not empty', 'almost full'"
msgstr ""
#: chest.lua
msgid ""
"A typical use case is to turn off the bot, when the chest is almost full or "
"empty."
msgstr ""
#: cmd_farming.lua
msgid ""
"Sow farming seeds\n"
@ -104,6 +232,26 @@ msgstr ""
msgid "Sign \"farming\""
msgstr ""
#: cmd_farming.lua
msgid "Sign 'farming'"
msgstr ""
#: cmd_farming.lua
msgid "Used to harvest and seed a 3x3 field."
msgstr ""
#: cmd_farming.lua
msgid "Place the sign in front of the field."
msgstr ""
#: cmd_farming.lua
msgid "The seed to be placed has to be in the first inventory slot of the bot."
msgstr ""
#: cmd_farming.lua
msgid "When finished, the bot turns."
msgstr ""
#: cmd_item.lua
msgid ""
"Take <num> items from a chest like node\n"
@ -111,6 +259,15 @@ msgid ""
"<slot> is the inventory slot (1..8)"
msgstr ""
#: cmd_item.lua
msgid ""
"Take <num> items from a chest like node\n"
"and put it into the item inventory.\n"
"Take care that at least one more\n"
"item of this type is available.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
#: cmd_item.lua
msgid ""
"Add <num> items to a chest like node\n"
@ -118,6 +275,22 @@ msgid ""
"<slot> is the inventory slot (1..8)"
msgstr ""
#: cmd_item.lua
msgid ""
"Add <num> items to a chest like node\n"
"taken from the item inventory,\n"
"but only if at least one item\n"
"of this type is already available.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
#: cmd_item.lua
msgid ""
"Add <num> fuel to a furnace like node\n"
"taken from the item inventory.\n"
"<slot> is the inventory slot (1..8)"
msgstr ""
#: cmd_item.lua
msgid ""
"Pick up all objects\n"
@ -196,6 +369,39 @@ msgstr ""
msgid "Sign \"copy 3x3x3\""
msgstr ""
#: cmd_pattern.lua
msgid "Sign 'pattern'"
msgstr ""
#: cmd_pattern.lua
msgid "Used to make a copy of a 3x3x3 cube."
msgstr ""
#: cmd_pattern.lua
msgid "Place the sign in front of the pattern to be copied."
msgstr ""
#: cmd_pattern.lua
msgid ""
"Use the copy sign to make the copy of this pattern on a different location."
msgstr ""
#: cmd_pattern.lua
msgid "The bot must first reach the pattern sign, then the copy sign."
msgstr ""
#: cmd_pattern.lua
msgid "Sign 'copy3x3x3'"
msgstr ""
#: cmd_pattern.lua
msgid "Place the sign in front of the location, where the copy should be made."
msgstr ""
#: cmd_pattern.lua
msgid "Use the pattern sign to mark the pattern."
msgstr ""
#: cmd_place.lua
msgid ""
"Place a block in front of the robot\n"
@ -347,6 +553,30 @@ msgid ""
"<slot> is the inventory slot (1..8)"
msgstr ""
#: cmd_sign.lua
msgid "Sign 'command'"
msgstr ""
#: cmd_sign.lua
msgid "The 'command' sign can be programmed by the player."
msgstr ""
#: cmd_sign.lua
msgid ""
"Place the sign in front of you and use the node menu to program your "
"sequence of bot commands."
msgstr ""
#: cmd_sign.lua
msgid ""
"The menu has an edit field for your commands and a help page with all "
"available commands."
msgstr ""
#: cmd_sign.lua doc.lua
msgid "The help page has a copy button to simplify the programming."
msgstr ""
#: commands.lua
msgid "commands:"
msgstr ""
@ -391,6 +621,261 @@ msgstr ""
msgid "Crop Sensor"
msgstr ""
#: crop_sensor.lua
msgid "The Crop Sensor sends a signal when, for example wheat is fully grown."
msgstr ""
#: crop_sensor.lua
msgid "The sensor range is one node/meter."
msgstr ""
#: crop_sensor.lua
msgid "The sensor has an active side (red) that must point to the crop/field."
msgstr ""
#: doc.lua
msgid ""
"After you have placed the Signs Bot Box, you can start the bot by means of "
"the 'On' button in the box menu."
msgstr ""
#: doc.lua
msgid ""
"The bot then runs straight up until it reaches an obstacle (a step with two "
"or more blocks up or down or a sign.)"
msgstr ""
#: doc.lua
msgid ""
"If the bot first reaches a sign it will execute the commands on the sign."
msgstr ""
#: doc.lua
msgid ""
"If the command(s) on the sign is e.g. 'turn_around', the bot turns and goes "
"back."
msgstr ""
#: doc.lua
msgid "In this case, the bot reaches his box again and turns off."
msgstr ""
#: doc.lua
msgid ""
"The Signs Bot Box has an inventory with 6 stacks for signs and 8 stacks for "
"other items (to be placed/dug by the bot)."
msgstr ""
#: doc.lua
msgid "This inventory simulates the bot internal inventory."
msgstr ""
#: doc.lua
msgid ""
"That means you will only have access to the inventory if the bot is turned "
"off ('sitting' in his box)."
msgstr ""
#: doc.lua
msgid ""
"You simply control the direction of the bot by means of the 'turn left' and "
"'turn right' signs (signs with the arrow)."
msgstr ""
#: doc.lua
msgid ""
"The bot can run over steps (one block up/down). But there are also commands "
"to move the bot up and down."
msgstr ""
#: doc.lua
msgid "It is not necessary to mark a way back to the box."
msgstr ""
#: doc.lua
msgid ""
"With the command 'turn_off' the bot will turn off and be back in his box "
"from every position."
msgstr ""
#: doc.lua
msgid "The same applies if you turn off the bot by the box menu."
msgstr ""
#: doc.lua
msgid ""
"If the bot reaches a sign from the wrong direction (from back or sides) the "
"sign will be ignored."
msgstr ""
#: doc.lua
msgid "The bot will walk over."
msgstr ""
#: doc.lua
msgid "All predefined signs have a menu with a list of the bot commands."
msgstr ""
#: doc.lua
msgid ""
"These signs can't be changed, but you can craft and program your own signs."
msgstr ""
#: doc.lua
msgid "For this you have to use the 'command' sign."
msgstr ""
#: doc.lua
msgid ""
"This sign has an edit field for your commands and a help page with all "
"available commands."
msgstr ""
#: doc.lua
msgid "Also for your own signs it is important to know:"
msgstr ""
#: doc.lua
msgid ""
"After the execution of the last command of the sign, the bot falls back into "
"its default behaviour and runs in its taken direction."
msgstr ""
#: doc.lua
msgid "A standard job for the bot is to move items from one chest to another"
msgstr ""
#: doc.lua
msgid "(chest or node with a chest like inventory)."
msgstr ""
#: doc.lua
msgid "This can be done by means of the two signs 'take item' and 'add item'."
msgstr ""
#: doc.lua
msgid "These signs have to be placed on top of chest nodes."
msgstr ""
#: doc.lua
msgid "In addition to the signs the bot can be controlled by means of sensors."
msgstr ""
#: doc.lua
msgid "Sensors like the Bot Sensor have two states: on and off."
msgstr ""
#: doc.lua
msgid "If the Bot Sensor detects a bot it will switch to the state 'on' and"
msgstr ""
#: doc.lua
msgid "sends a signal to a connected block, called an actuator."
msgstr ""
#: doc.lua
msgid "Sensors are:"
msgstr ""
#: doc.lua
msgid "- Bot Sensor: Sends a signal when the robot passes by"
msgstr ""
#: doc.lua
msgid "- Node Sensor: Sends a signal when it detects any node"
msgstr ""
#: doc.lua
msgid "- Crop Sensor: Sends a signal when, for example wheat is fully grown"
msgstr ""
#: doc.lua
msgid "- Bot Chest: Sends a signal depending on the chest state (empty, full)"
msgstr ""
#: doc.lua
msgid "Actuators are:"
msgstr ""
#: doc.lua
msgid "- Signs Bot Box: Can turn the bot off and on"
msgstr ""
#: doc.lua
msgid "- Control Unit: Can be used to exchange the sign to lead the bot"
msgstr ""
#: doc.lua
msgid "Additional sensors and actuator can be added by other mods."
msgstr ""
#: doc.lua
msgid ""
"To send a signal from a sensor to an actuator, the sensor has to be "
"connected (paired) with actuator."
msgstr ""
#: doc.lua
msgid ""
"To connect sensor and actuator, the Sensor Connection Tool has to be used."
msgstr ""
#: doc.lua
msgid ""
"Simply click with the tool on both blocks and the sensor will be connected "
"with the actuator."
msgstr ""
#: doc.lua
msgid "A successful connection is indicated by a ping/pong noise."
msgstr ""
#: doc.lua
msgid ""
"Before you connect sensor with actuator, take care that the actuator is in "
"the requested state."
msgstr ""
#: doc.lua
msgid ""
"For example: If you want to start the Bot with a sensor, connect the sensor "
"with the Bot Box,"
msgstr ""
#: doc.lua
msgid ""
"when the Bot is in the state 'on'. Otherwise the sensor signal will stop the "
"Bot,"
msgstr ""
#: doc.lua
msgid "instead of starting it."
msgstr ""
#: doc.lua
msgid "Signs Bot"
msgstr ""
#: doc.lua
msgid "A robot controlled by signs, used for automated work"
msgstr ""
#: doc.lua
msgid "Start the Bot"
msgstr ""
#: doc.lua
msgid "Control the Bot"
msgstr ""
#: doc.lua
msgid "Sensors and Actuators"
msgstr ""
#: doc.lua
msgid "Connecting sensors and actuator"
msgstr ""
#: duplicator.lua
msgid "Input:"
msgstr ""
@ -433,6 +918,36 @@ msgstr ""
msgid "Sign \"blank\""
msgstr ""
#: duplicator.lua
msgid "The Duplicator can be used to make copies of signs."
msgstr ""
#: duplicator.lua
msgid ""
"1. Put one 'cmnd' sign to be used as template into the 'Template' inventory"
msgstr ""
#: duplicator.lua
msgid "2. Add one or several 'blank signs' to the 'Input' inventory."
msgstr ""
#: duplicator.lua
msgid "3. Take the copies from the 'Output' inventory."
msgstr ""
#: duplicator.lua
msgid ""
"Written books [default:book_written] can alternatively be used as template"
msgstr ""
#: duplicator.lua
msgid "Already written signs can be used as input, too."
msgstr ""
#: duplicator.lua
msgid "Needed as input for the Duplicator."
msgstr ""
#: extender.lua
msgid "Sensor Extender: Connected with "
msgstr ""
@ -445,6 +960,20 @@ msgstr ""
msgid "Sensor Extender: Not connected"
msgstr ""
#: extender.lua
msgid ""
"With the Sensor Extender, sensor signals can be sent to more than one "
"actuator."
msgstr ""
#: extender.lua
msgid "Place one or more extender nearby the sensor and connect each extender"
msgstr ""
#: extender.lua
msgid "with one further actuator by means of the Connection Tool."
msgstr ""
#: node_sensor.lua
msgid "Node Sensor: Connected with "
msgstr ""
@ -453,6 +982,25 @@ msgstr ""
msgid "Node Sensor"
msgstr ""
#: node_sensor.lua
msgid ""
"The Node Sensor sends a signal when it detects any node change (nodes appear "
"or disappear)."
msgstr ""
#: node_sensor.lua
msgid "Valid nodes are all kind of blocks and plants."
msgstr ""
#: node_sensor.lua
msgid "The sensor range is 3 nodes/meters in one direction."
msgstr ""
#: node_sensor.lua
msgid ""
"The sensor has an active side (red) that must point to the observed area."
msgstr ""
#: signs.lua
msgid "Sign \"turn right\""
msgstr ""
@ -473,6 +1021,33 @@ msgstr ""
msgid "Sign \"stop\""
msgstr ""
#: signs.lua
msgid "The Bot turns right when it detects this sign in front of it."
msgstr ""
#: signs.lua
msgid "The Bot turns left when it detects this sign in front of it."
msgstr ""
#: signs.lua
msgid ""
"The Bot takes items out of a chest in front of it and then turns around."
msgstr ""
#: signs.lua
msgid "This sign has to be placed on top of the chest."
msgstr ""
#: signs.lua
msgid "The Bot puts items into a chest in front of it and then turns around."
msgstr ""
#: signs.lua
msgid ""
"The Bot will stop in front of this sign until the sign is removed or the bot "
"is turned off."
msgstr ""
#: tool.lua
msgid "Sensor Connection Tool"
msgstr ""
@ -492,3 +1067,12 @@ msgstr ""
#: timer.lua
msgid "Start"
msgstr ""
#: timer.lua
msgid "Special kind of sensor."
msgstr ""
#: timer.lua
msgid ""
"Can be programmed with a time in seconds, e.g. to start the bot cyclically."
msgstr ""

View File

@ -1,98 +0,0 @@
Signs Bot [signs_bot] User Manual
=================================
After you have placed the Signs Bot Box, you can start the bot by means of the "On" button in the box menu.
The bot then runs straight up until it reaches an obstacle (a step with two or more blocks up or down)
or a sign. If the bot first reaches a sign it will execute the commands on the sign.
If the command(s) on the sign is e.g. "turn_around", the bot turns and goes back.
In this case, the bot reaches his box again and turns off.
The Signs Bot Box has an inventory with 6 stacks for signs and 8 stacks for other items (to be placed/dug by the bot).
This inventory simulates the bot internal inventory. That means you will only have access to the inventory if the
bot is turned off ('sitting' in his box).
Control the bot by means of signs
---------------------------------
You simply can control the direction of the bot by means of the "turn left" and "turn right" signs (signs with the arrow).
The bot can run over steps (one block up/down). But there are also commands to move the bot up and down.
It is not necessary to mark a way back to the box. With the command "turn_off" the bot will turn off and be back in his box
from every position. The same applies if you turn off the bot by the box menu.
If the bot reaches a sign from the wrong direction (from back or sides) the sign will be ignored. The bot will walk over.
All predefined signs have a menu with a list of the bot commands. These signs can't be changed, but you can craft and program your own signs. For this you have to use the "command" sign. This sign has an edit field for your commands and a help page with all available
commands. The help page has a copy button to simplify the programming.
Also for your own signs it is important to know: After the execution of the last command of the sign, the bot falls back into its default behaviour and runs in its taken direction.
A standard job for the bot is to move items from one chest to another (chest or node with a chest like inventory).
This can be done by means of the two signs "take item" and "add item". These signs have to be placed on top of the chest node.
With 3 of the 4 featured signs, you can implement your first bot job.
![Example1](https://github.com/joe7575/signs_bot/blob/master/doc/example01.png)
When started, the bot will run to the "turn right" sign and will go on to the first chest. Than the bot will execute the commands from the "take item" sign:
take_item 99
turn_around
The bot will take a stack from the chest, make a turn and run to the second chest on the left. Here the bot will execute the commands:
add_item 99
turn_around
This will lead the bot back to the first chest and so on.
Control the bot by means of additional sensors
----------------------------------------------
In addition to the signs the bot can be controlled by means of sensors. Sensors like the Bot Sensor have two states: on/off.
If the Bot Sensor detects a bot it will switch to the state "on" and sends a signal to a connected block, called an actuator.
The following sensors are available:
- Bot Sensor: Sends a signal when the robot passes by (range is one block)
- Node Sensor: Sends a signal when it detects a change (tree, cactus, flower, etc.) in front of the sensor (range is 3 blocks)
- Crop Sensor: Sends a signal when, for example, the wheat is fully grown (range is one block)
- Bot Chest: Sends a signal depending on the chest state. Possible states are "empty", "not empty", "almost full".
Actuators are:
- Signs Bot Box: Can turn the bot off and on
- Control Unit: Can be used to exchange the sign in front of the Control Unit and therefore, steer the bot eg. in different direction
To send a signal from a sensor to an actuator, the sensor has to be connected (paired) with actuator. The Connection Tool is used to perform the pairing. Simply click on both blocks one after the other and the sensor is connected with the actuator.
A successful pairing is indicated by a ping / pong noise.
I will explain that with the next example, automated farming:
![Example2](https://github.com/joe7575/signs_bot/blob/master/doc/example02.png)
You need at least the farming sign (on the left) and a crop sensor (on the right).
The farming sign has the commands:
dig_sign 1
move
harvest
sow_seed 1
backward
place_sign 1
turn_off
When the Bot reaches this sign, the Bot will:
* dig the sign and store it in the inventory
* make one step forward
* harvest all crops from the 3x3 field, which are in the final stage
* sow the seed from its inventory slot 1 on all fields with soil
* make one step backward
* place the sign again
* turn and move back
"move" and "harvest" have not parameters here. The Bot will use the default values in this case, which is "1" for both commands.
I the given inventory slot is busy (in this case with the seed) the Bot will take the next free slot. The same is the case
for "take" commands. If the given slot is empty, the Bot will try to take something from the following slots.
To start the Bot if crops are in the final stage, the crop sensor has to be paired with the Sign Bot Box by means of the Sensor Connection Tool. The sensor only observes the field in front of it. So, place the sensor in that way, that the red side shows to the field.
The bot must be active (turned on) during the pairing process so that it will be started with the sensor signal.
If the bot is turned off during the pairing process, the sensor would send an off signal and try turn off the bot.
Hint: Before you do the pairing, place a stop sign between Box and farming sign. The Bot will stop in front of the sign but will be is still "on".

View File

@ -1,4 +1,4 @@
name=signs_bot
depends = default,farming,basic_materials,tubelib2
optional_depends = node_io,techage
optional_depends = node_io,techage,doc
description = A robot controlled by signs

View File

@ -157,3 +157,18 @@ minetest.register_lbm({
minetest.get_node_timer(pos):start(CYCLE_TIME)
end
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "node_sensor", {
name = I("Node Sensor"),
data = {
item = "signs_bot:node_sensor",
text = table.concat({
I("The Node Sensor sends a signal when it detects any node change (nodes appear or disappear)."),
I("Valid nodes are all kind of blocks and plants."),
I("The sensor range is 3 nodes/meters in one direction."),
I("The sensor has an active side (red) that must point to the observed area."),
}, "\n")
},
})
end

View File

@ -150,3 +150,56 @@ minetest.register_craft({
}
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "sign_right", {
name = I('Sign "turn right"'),
data = {
item = "signs_bot:sign_right",
text = I("The Bot turns right when it detects this sign in front of it.")
},
})
end
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "sign_left", {
name = I('Sign "turn left"'),
data = {
item = "signs_bot:sign_left",
text = I("The Bot turns left when it detects this sign in front of it.")
},
})
end
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "sign_take", {
name = I('Sign "take item"'),
data = {
item = "signs_bot:sign_take",
text = table.concat({
I("The Bot takes items out of a chest in front of it and then turns around."),
I("This sign has to be placed on top of the chest."),
}, "\n") },
})
end
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "sign_add", {
name = I('Sign "add item"'),
data = {
item = "signs_bot:sign_add",
text = table.concat({
I("The Bot puts items into a chest in front of it and then turns around."),
I("This sign has to be placed on top of the chest."),
}, "\n") },
})
end
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "sign_stop", {
name = I('Sign "stop"'),
data = {
item = "signs_bot:sign_stop",
text = I("The Bot will stop in front of this sign until the sign is removed or the bot is turned off.")
},
})
end

View File

@ -57,6 +57,25 @@ if minetest.global_exists("techage") then
end,
})
signs_bot.register_botcommand("low_batt", {
mod = "techage",
params = "<percent>",
description = S("Turn the bot off if the\nbattery power is below the\ngiven value (1..99)"),
check = function(val)
val = tonumber(val or 5)
return val and val > 0 and val < 100
end,
cmnd = function(base_pos, mem, val)
val = tonumber(val or 5)
local pwr = percent_value(signs_bot.MAX_CAPA, mem.capa)
if pwr < val then
signs_bot.stop_robot(base_pos, mem)
return signs_bot.lib.TURN_OFF
end
return true
end,
})
local Cable = techage.ElectricCable
local consume_power = techage.power.consume_power
local power_available = techage.power.power_available

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -179,3 +179,16 @@ minetest.register_lbm({
minetest.get_node_timer(pos):start(2)
end
})
if minetest.get_modpath("doc") then
doc.add_entry("signs_bot", "timer", {
name = I("Bot Timer"),
data = {
item = "signs_bot:timer",
text = table.concat({
I("Special kind of sensor."),
I("Can be programmed with a time in seconds, e.g. to start the bot cyclically."),
}, "\n")
},
})
end