diff --git a/basic_machines/chest.lua b/basic_machines/chest.lua index be26878..f991537 100644 --- a/basic_machines/chest.lua +++ b/basic_machines/chest.lua @@ -17,7 +17,7 @@ local M = minetest.get_meta local S = techage.S local TA4_INV_SIZE = 50 -local EX_PIONTS = 10 +local EX_POINTS = 20 local MP = minetest.get_modpath(minetest.get_current_modname()) local mConf = dofile(MP.."/basis/conf_inv.lua") @@ -366,7 +366,7 @@ minetest.register_node("techage:chest_ta4", { techage.remove_node(pos, oldnode, oldmetadata) hyperloop.after_dig_node(pos, oldnode, oldmetadata, digger) end, - ta5_formspec = {menu=hyperloop.WRENCH_MENU, ex_points=EX_PIONTS}, + ta5_formspec = {menu=hyperloop.WRENCH_MENU, ex_points=EX_POINTS}, ta_after_formspec = hyperloop.after_formspec, allow_metadata_inventory_put = ta4_allow_metadata_inventory_put, allow_metadata_inventory_take = ta4_allow_metadata_inventory_take, diff --git a/basic_machines/consumer.lua b/basic_machines/consumer.lua index d132ce5..d99a9ec 100644 --- a/basic_machines/consumer.lua +++ b/basic_machines/consumer.lua @@ -178,6 +178,7 @@ function techage.register_consumer(base_name, inv_name, tiles, tNode, validState local node = minetest.get_node(pos) meta:set_int("push_dir", techage.side_to_indir("L", node.param2)) meta:set_int("pull_dir", techage.side_to_indir("R", node.param2)) + meta:set_string("owner", placer:get_player_name()) -- Delete existing node number. Needed for Digtron compatibility. if (meta:contains("node_number")) then meta:set_string("node_number", "") diff --git a/basic_machines/electronic_fab.lua b/basic_machines/electronic_fab.lua index b73318f..3ed69dc 100644 --- a/basic_machines/electronic_fab.lua +++ b/basic_machines/electronic_fab.lua @@ -32,21 +32,19 @@ local RecipeType = { local function formspec(self, pos, nvm) local rtype = RecipeType[CRD(pos).stage] + local owner = M(pos):get_string("owner") return "size[8.4,8.4]".. - default.gui_bg.. - default.gui_bg_img.. - default.gui_slots.. - "list[context;src;0,0;2,4;]".. - recipes.formspec(2.2, 0, rtype, nvm).. - "list[context;dst;6.4,0;2,4;]".. - "image_button[3.7,3.3;1,1;".. self:get_state_button_image(nvm) ..";state_button;]".. - "tooltip[3.7,3.3;1,1;"..self:get_state_tooltip(nvm).."]".. - "list[current_player;main;0.2,4.5;8,4;]".. - "listring[context;dst]".. - "listring[current_player;main]".. - "listring[context;src]".. - "listring[current_player;main]".. - default.get_hotbar_bg(0.2, 4.5) + "list[context;src;0,0;2,4;]".. + recipes.formspec(2.2, 0, rtype, nvm, owner).. + "list[context;dst;6.4,0;2,4;]".. + "image_button[3.7,3.3;1,1;".. self:get_state_button_image(nvm) ..";state_button;]".. + "tooltip[3.7,3.3;1,1;"..self:get_state_tooltip(nvm).."]".. + "list[current_player;main;0.2,4.5;8,4;]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0.2, 4.5) end local function allow_metadata_inventory_put(pos, listname, index, stack, player) diff --git a/basis/fly_lib.lua b/basis/fly_lib.lua index 00b1cea..8cc8d19 100644 --- a/basis/fly_lib.lua +++ b/basis/fly_lib.lua @@ -52,8 +52,8 @@ end -- yaw in radiant local function rotate(v, yaw) - local sinyaw = math.sin(2 * math.pi - yaw) - local cosyaw = math.cos(2 * math.pi - yaw) + local sinyaw = math.sin(yaw) + local cosyaw = math.cos(yaw) return {x = v.x * cosyaw - v.z * sinyaw, y = v.y, z = v.x * sinyaw + v.z * cosyaw} end @@ -212,11 +212,13 @@ local function attach_single_object(parent, obj, dir) local offs = table.copy(dir) -- Calc entity rotation, which is relative to the parent's rotation local rot = parent:get_rotation() - dir = rotate(dir, rot.y) if self.param2 >= 20 then + dir = rotate(dir, 2 * math.pi - rot.y) dir.y = -dir.y + dir.x = -dir.x rot.y = rot.y - yaw elseif self.param2 < 4 then + dir = rotate(dir, 2 * math.pi - rot.y) rot.y = rot.y - yaw end dir = vector.multiply(dir, 29) @@ -234,7 +236,7 @@ end -- Attach all objects around to the parent object -- offs is the search/attach position offset -local function attach_objects(pos, offs, parent) +local function attach_objects(pos, offs, parent, yoffs) local pos1 = vector.add(pos, offs) for _, obj in pairs(minetest.get_objects_inside_radius(pos1, 0.9)) do local dir = vector.subtract(obj:get_pos(), pos) @@ -243,6 +245,7 @@ local function attach_objects(pos, offs, parent) if entity.name == "__builtin:item" then -- dropped items --obj:set_attach(objref, "", {x=0, y=0, z=0}, {x=0, y=0, z=0}, true) -- hier kracht es elseif entity.name ~= "techage:move_item" then + dir.y = dir.y + yoffs attach_single_object(parent, obj, dir) end elseif obj:is_player() then @@ -260,6 +263,7 @@ local function detach_objects(pos, self) obj:set_detach() obj:set_properties({visual_size = {x=1, y=1}}) local pos1 = vector.add(pos, item.offs) + pos1.y = pos1.y - (self.yoffs or 0) obj:set_pos(pos1) end end @@ -579,16 +583,19 @@ end local function move_node(pos, pos1_idx, start_pos, lpath, max_speed, height, move2to1, handover, cpos) local pos2 = next_path_pos(start_pos, lpath, 1) --print("move_node", P2S(pos), P2S(start_pos), lpath, max_speed, height, move2to1, P2S(pos2)) + -- optional for non-player objects + local yoffs = M(pos):get_float("offset") + if pos2 then local dir = determine_dir(start_pos, pos2) local obj = node_to_entity(start_pos) if obj then local offs = {x=0, y=height or 1, z=0} - attach_objects(start_pos, offs, obj) + attach_objects(start_pos, offs, obj, yoffs) if dir.y == 0 then if (dir.x ~= 0 and dir.z == 0) or (dir.x == 0 and dir.z ~= 0) then - attach_objects(start_pos, dir, obj) + attach_objects(start_pos, dir, obj, yoffs) end end local self = obj:get_luaentity() @@ -600,6 +607,7 @@ local function move_node(pos, pos1_idx, start_pos, lpath, max_speed, height, mov self.base_pos = pos self.move2to1 = move2to1 self.handover = handover + self.yoffs = yoffs --print("move_node", P2S(start_pos), P2S(pos2), P2S(dir), P2S(pos)) move_entity(obj, pos2, dir) end diff --git a/basis/recipe_lib.lua b/basis/recipe_lib.lua index b9af669..7dac9a2 100644 --- a/basis/recipe_lib.lua +++ b/basis/recipe_lib.lua @@ -46,6 +46,22 @@ local RECIPE = { }, } +local function filter_recipes_based_on_points(recipes, owner) + local ex_points = 0 + if owner then + local player = minetest.get_player_by_name(owner) + ex_points = techage.get_expoints(player) or 0 + end + + local tbl = {} + for _,item in ipairs(recipes) do + if ex_points >= (item.ex_points or 0) then + tbl[#tbl + 1] = item + end + end + return tbl +end + -- Formspec local function input_string(recipe) @@ -93,6 +109,7 @@ function techage.recipes.add(rtype, recipe) name, num = unpack(string.split(recipe.output, " ")) item.output = {name = name or "", num = tonumber(num) or 0} item.catalyst = recipe.catalyst + item.ex_points = recipe.ex_points or 0 Recipes[rtype][#Recipes[rtype]+1] = item output = name @@ -109,8 +126,9 @@ function techage.recipes.add(rtype, recipe) } end -function techage.recipes.formspec(x, y, rtype, nvm) +function techage.recipes.formspec(x, y, rtype, nvm, owner) local recipes = Recipes[rtype] or {} + recipes = filter_recipes_based_on_points(recipes, owner) nvm.recipe_idx = range(nvm.recipe_idx or 1, 1, #recipes) local idx = nvm.recipe_idx local recipe = recipes[idx] or RECIPE diff --git a/doc/items.lua b/doc/items.lua index 1919426..7905050 100644 --- a/doc/items.lua +++ b/doc/items.lua @@ -202,6 +202,9 @@ techage.Items = { ta4_terminal = "techage:terminal3", ta4_autocrafter = "techage:ta4_autocrafter_pas", ta4_recipeblock = "techage:ta4_recipeblock", + ---------------------------- + ta5_flycontroller = "techage:ta5_flycontroller", + ta5_aichip = "techage:ta5_aichip", } function techage.add_manual_items(table_with_items) diff --git a/doc/manual_DE.lua b/doc/manual_DE.lua index 075714b..06b60cb 100644 --- a/doc/manual_DE.lua +++ b/doc/manual_DE.lua @@ -227,6 +227,22 @@ techage.manual_DE.aTitel = { "3,TA4 Elektronikfabrik / Electronic Fab", "3,TA4 Injektor / Injector", "3,TA4 Recycler", + "1,TA5: Zukunft", + "2,Energiequellen", + "3,TA5 Fusionsreaktor (geplant)", + "2,Energiespeicher", + "3,TA5 Hybrid-Speicher (geplant)", + "2,Logik Blöcke", + "2,Transport und Verkehr", + "3,TA5 Flug Controller", + "3,TA5 Hyperloop Transport Kiste", + "3,TA5 Hyperloop Transport Tank", + "3,Hyperloop Teleport Blöcke (geplant)", + "3,TA5 Container (geplant)", + "3,TA5-Teleport-Tubes (geplant)", + "3,TA5-Teleport-Pipes (geplant)", + "2,Weitere TA5 Blöcke/Items", + "3,TA5 KI Chip / TA5 AI Chip", } techage.manual_DE.aText = { @@ -1669,6 +1685,11 @@ techage.manual_DE.aText = { " - 'b2a' Bewege Block von B nach A\n".. " - 'move' Bewege Block auf die andere Seite\n".. "\n".. + "*Wichtige Hinweise:*\n".. + "\n".. + " - Sofern mehrere Blöcke bewegt werden sollen\\, muss der Block\\, der die Spieler/Mobs mitnehmen soll\\, beim Antrainieren als erstes angeklickt werden.\n".. + " - Hat der Block\\, der die Spieler/Mobs mitnehmen soll\\, eine reduzierte Höhe\\, so muss die Höhe im Controller über das Schraubenschlüsselmenü eingestellt werden (bspw. Höhe = 0.5). Ansonsten wird der Spieler/Mob nicht \"gefunden\" und damit nicht mitgenommen.\n".. + "\n".. "\n".. "\n", "Der TA4 Drehcontroller ist ähnlich zum Move Controller\"\\, aber die ausgewählten Blöcke werden nicht bewegt\\, sondern um ihr Zentrum nach rechts oder links gedreht.\n".. @@ -1953,6 +1974,69 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", + "Maschinen zur Überwindung von Raum und Zeit\\, neue Energiequellen und andere Errungenschaften prägen dein Leben. \n".. + "\n".. + "Für die Herstellung und Nutzung von TA5 Maschinen und Blöcken sind Erfahrungspunkte (experience points) notwendig. Diese können nur über den Teilchenbeschleuniger aus TA4 erarbeitet werden.\n".. + "\n".. + "\n".. + "\n", + "", + "", + "", + "", + "", + "", + "Der TA5 Flug Controller ist ähnlich zum TA4 Move Controller. Im Gegensatz zum TA4 Move Controller können hier mehrere Bewegungen zu einer Flugstrecke kombiniert werden. Diese Flugstrecke kann im Eingabefeld über mehrere x\\,y\\,z Angaben definiert werden (eine Bewegung pro Zeile). Über \"Speichern\" wird die Flugstrecke geprüft und gespeichert. Bei einem Fehler wird eine Fehlermeldung ausgegeben.\n".. + "\n".. + "Mit der Taste \"Test\" wird die Flugstrecke mit den absoluten Koordinaten zur Überprüfung im Chat ausgegeben.\n".. + "\n".. + "Die maximale Distanz für die gesammte Flugstrecke beträgt 500 m.\n".. + "\n".. + "Die Nutzung des TA5 Flug Controllers benötigt 40 Erfahrungspunkte.\n".. + "\n".. + "\n".. + "\n", + "Die TA5 Hyperloop Transport Kiste erlaubt den Transport von Gegenständen über ein Hyperloop Netzwerk.\n".. + "\n".. + "Eine normale TA4 Kiste muss man dazu auf eine Hyperloop Junction stellen. Die Kiste bekommt damit ein zusätzliches Schraubenschlüssel-Menü mit dem man das Pairing von zwei Kisten durchführen kann. Dinge\\, die in der Kiste sind\\, werden zur Gegenstelle teleportiert. Die Kiste kann auch mit einem Schieber gefüllt/geleert werden.\n".. + "\n".. + "Die Nutzung der TA5 Hyperloop Transport Kiste benötigt 20 Erfahrungspunkte.\n".. + "\n".. + "\n".. + "\n", + "Der TA5 Hyperloop Transport Tank erlaubt den Transport von Flüssigkeiten über ein Hyperloop Netzwerk.\n".. + "\n".. + "Ein TA4 Tank muss man dazu auf eine Hyperloop Junction stellen. Der Tank bekommt damit ein zusätzliches Schraubenschlüssel-Menü mit dem man das Pairing von zwei Tanks durchführen kann. Flüssigkeiten\\, die in dem Tank sind\\, werden zur Gegenstelle teleportiert. Der Tank kann auch mit einer Pumpe gefüllt/geleert werden.\n".. + "\n".. + "Die Nutzung des TA5 Hyperloop Transport Tanks benötigt 20 Erfahrungspunkte.\n".. + "\n".. + "\n".. + "\n", + "Die Hyperloop Teleport Blöcke erlauben den Aufbau von Hyperloop Netzwerk ohne Hyperloop-Röhren.\n".. + "\n".. + "Die Nutzung der Hyperloop Teleport Blöcke benötigt 120 Erfahrungspunkte.\n".. + "\n", + "Der TA5 Container erlaubt Techage Anlagen ein- und an einer anderen Stelle wieder auszupacken.\n".. + "\n".. + "Für die Nutzung des TA5 Containers werden 80 Erfahrungspunkte benötigt.\n".. + "\n", + "Teleport Tubes erlauben den Item-Transport ohne Tubes bis zu einer Entfernung von 200 Blöcken.\n".. + "\n".. + "Die Teleport-Tubes benötigen jeweils 5 ku Strom.\n".. + "\n".. + "Für die Nutzung der TA5 Teleport Tubes werden 60 Erfahrungspunkte benötigt.\n".. + "\n", + "Teleport Pipes erlauben den Flüssigkeiten-Transport ohne Pipes bis zu einer Entfernung von 200 Blöcken.\n".. + "\n".. + "Die Teleport-Pipes benötigen jeweils 5 ku Strom.\n".. + "\n".. + "Für die Nutzung der TA5 Teleport Pipes werden 60 Erfahrungspunkte benötigt.\n".. + "\n", + "", + "Der TA5 KI Chip wird teilweise zur Herstellung von TA5 Blöcken benötigt. Der TA5 KI Chip kann nur auf der TA4 Elektronik Fab hergestellt werden. Dazu werden 10 Erfahrungspunkte benötigt.\n".. + "\n".. + "\n".. + "\n", } techage.manual_DE.aItemName = { @@ -2182,6 +2266,22 @@ techage.manual_DE.aItemName = { "ta4_electronicfab", "ta4_injector", "ta4_recycler", + "techage_ta5", + "", + "", + "", + "", + "", + "", + "ta5_flycontroller", + "ta4_chest", + "ta4_tank", + "", + "", + "", + "", + "", + "ta5_aichip", } techage.manual_DE.aPlanTable = { @@ -2411,5 +2511,21 @@ techage.manual_DE.aPlanTable = { "", "", "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", } diff --git a/doc/manual_EN.lua b/doc/manual_EN.lua index d10266d..9063ea8 100644 --- a/doc/manual_EN.lua +++ b/doc/manual_EN.lua @@ -117,7 +117,7 @@ techage.manual_EN.aTitel = { "3,Door/Gate Blocks", "3,TA3 Door Controller", "3,TA3 Door Controller II", - "3,TA3 sound block", + "3,TA3 Sound Block", "3,TA3 Mesecons Converter", "2,Detectors", "3,TA3 Detector", @@ -223,6 +223,22 @@ techage.manual_EN.aTitel = { "3,TA4 Electronic Fab", "3,TA4 Injector", "3,TA4 Recycler", + "1,TA5: Future", + "2,Energy Sources", + "3,TA5 Fusion Reactor (planned)", + "2,Energy Storage", + "3,TA5 Hybrid Storage (planned)", + "2,Logic blocks", + "2,Transport and Traffic", + "3,TA5 Flight Controller", + "3,TA5 Hyperloop Transport Chest", + "3,TA5 Hyperloop Transport Tank", + "3,Hyperloop Teleport Blocks (planned)", + "3,TA5 Container (planned)", + "3,TA5 Teleport Tubes (planned)", + "3,TA5 Teleport Pipes (planned)", + "2,More TA5 Blocks / Items", + "3,TA5 AI Chip", } techage.manual_EN.aText = { @@ -1663,6 +1679,11 @@ techage.manual_EN.aText = { " - 'b2a' Move block from B to A.\n".. " - 'move' Move block to the other side\n".. "\n".. + "*Important instructions:*\n".. + "\n".. + " - If several blocks are to be moved\\, the block that is to take the players/mobs must be clicked first when training.\n".. + " - If the block that is supposed to take the players/mobs has a reduced height\\, the height must be set in the controller using the open-ended wrench menu (e.g. height = 0.5). Otherwise the player/mob will not be \"found\" and will not be taken away.\n".. + "\n".. "\n".. "\n", "The TA4 turn controller is similar to the \"Move Controller\"\\, but the selected blocks are not moved\\, but rotated around their center to the right or left.\n".. @@ -1879,6 +1900,69 @@ techage.manual_EN.aText = { "\n".. " \n".. "\n", + "Machines to overcome space and time\\, new sources of energy and other achievements shape your life.\n".. + "\n".. + "Experience points are required for the manufacture and use of TA5 machines and blocks. These can only be worked out using the collider from TA4.\n".. + "\n".. + "\n".. + "\n", + "", + "", + "", + "", + "", + "", + "The TA5 Flight Controller is similar to the TA4 Move Controller. In contrast to the TA4 Move Controller\\, several movements can be combined into one flight route. This flight route can be defined in the input field using several x\\,y\\,z entries (one movement per line). The flight route is checked and saved via \"Save\". In the event of an error\\, an error message is issued.\n".. + "\n".. + "With the \"Test\" button\\, the flight route with the absolute coordinates is output for checking in the chat.\n".. + "\n".. + "The maximum distance for the entire flight distance is 500 m.\n".. + "\n".. + "The use of the TA5 Flight Controller requires 40 experience points.\n".. + "\n".. + "\n".. + "\n", + "The TA5 Hyperloop Transport Chest allows objects to be transported over a Hyperloop network.\n".. + "\n".. + "A normal TA4 chest has to be placed on a Hyperloop Junction. The chest has an additional wrench menu with which you can pair two chests. Things that are in the chest are teleported to the remote station. The box can also be filled/emptied with a pusher.\n".. + "\n".. + "The use of the TA5 Hyperloop Transport Chest requires 20 experience points.\n".. + "\n".. + "\n".. + "\n", + "The TA5 Hyperloop Transport Tank allows liquids to be transported over a Hyperloop network.\n".. + "\n".. + "A TA4 Tank has to be placed on a Hyperloop Junction. This gives the tank an additional wrench menu that can be used to pair two tanks. Liquids in the tank will be teleported to the remote station. The tank can also be filled/emptied with a pump.\n".. + "\n".. + "The use of the TA5 Hyperloop Transport Tank requires 20 experience points.\n".. + "\n".. + "\n".. + "\n", + "The Hyperloop Teleport Blocks allow the construction of a Hyperloop network without Hyperloop tubes.\n".. + "\n".. + "The use of the Hyperloop Teleport Blocks requires 120 experience points.\n".. + "\n", + "The TA5 container allows Techage systems to be packed and unpacked at another location.\n".. + "\n".. + "80 experience points are required to use the TA5 container.\n".. + "\n", + "Teleport tubes allow items to be transported without tubes up to a distance of 200 blocks.\n".. + "\n".. + "The teleport tubes each require 5 ku of electricity.\n".. + "\n".. + "60 experience points are required to use the TA5 Teleport Tubes.\n".. + "\n", + "Teleport Pipes allow liquids to be transported without pipes up to a distance of 200 blocks.\n".. + "\n".. + "The teleport pipes each require 5 ku of electricity.\n".. + "\n".. + "60 experience points are required to use the TA5 Teleport Pipes.\n".. + "\n", + "", + "The TA5 AI Chip is partly required for the production of TA5 blocks. The TA5 AI Chip can only be manufactured at the TA4 Electronics Fab. This requires 10 experience points.\n".. + "\n".. + "\n".. + "\n", } techage.manual_EN.aItemName = { @@ -2104,6 +2188,22 @@ techage.manual_EN.aItemName = { "ta4_electronicfab", "ta4_injector", "ta4_recycler", + "techage_ta5", + "", + "", + "", + "", + "", + "", + "ta5_flycontroller", + "ta4_chest", + "ta4_tank", + "", + "", + "", + "", + "", + "ta5_aichip", } techage.manual_EN.aPlanTable = { @@ -2329,5 +2429,21 @@ techage.manual_EN.aPlanTable = { "", "", "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", } diff --git a/items/electronic.lua b/items/electronic.lua index 642be15..49f7a33 100644 --- a/items/electronic.lua +++ b/items/electronic.lua @@ -78,3 +78,9 @@ techage.recipes.add("ta4_electronic_fab", { output = "techage:ta4_leds 8", input = {"basic_materials:plastic_sheet 4", "basic_materials:copper_wire 1", "techage:ta4_silicon_wafer 1"} }) + +techage.recipes.add("ta4_electronic_fab", { + output = "techage:ta5_aichip 2", + input = {"techage:ta4_leds 8", "basic_materials:copper_wire 1", "basic_materials:gold_wire 1", "techage:ta4_silicon_wafer 1"}, + ex_points = 10, +}) diff --git a/liquids/tank.lua b/liquids/tank.lua index c81b635..ffb4e11 100644 --- a/liquids/tank.lua +++ b/liquids/tank.lua @@ -25,7 +25,7 @@ local hyperloop = techage.hyperloop local remote_pos = techage.hyperloop.remote_pos local CAPACITY = 1000 -local EX_PIONTS = 20 +local EX_POINTS = 20 local function on_rightclick(pos, node, clicker) local rmt_pos = remote_pos(pos) @@ -243,7 +243,7 @@ minetest.register_node("techage:ta4_tank", { techage.remove_node(pos, oldnode, oldmetadata) end, on_rightclick = on_rightclick, - ta5_formspec = {menu=hyperloop.WRENCH_MENU, ex_points=EX_PIONTS}, + ta5_formspec = {menu=hyperloop.WRENCH_MENU, ex_points=EX_POINTS}, ta_after_formspec = hyperloop.after_formspec, can_dig = can_dig, paramtype2 = "facedir", diff --git a/manuals/markdown2formspec.py b/manuals/markdown2formspec.py index 76c7cb4..86bb605 100644 --- a/manuals/markdown2formspec.py +++ b/manuals/markdown2formspec.py @@ -247,6 +247,7 @@ parse_md_file("./manual_ta1_DE.md", mod, manual) parse_md_file("./manual_ta2_DE.md", mod, manual) parse_md_file("./manual_ta3_DE.md", mod, manual) parse_md_file("./manual_ta4_DE.md", mod, manual) +parse_md_file("./manual_ta5_DE.md", mod, manual) gen_lua_file("../doc/manual_DE.lua") gen_toc_md_file("./toc_DE.md", "Inhaltsverzeichnis") @@ -259,6 +260,7 @@ parse_md_file("./manual_ta1_EN.md", mod, manual) parse_md_file("./manual_ta2_EN.md", mod, manual) parse_md_file("./manual_ta3_EN.md", mod, manual) parse_md_file("./manual_ta4_EN.md", mod, manual) +parse_md_file("./manual_ta5_EN.md", mod, manual) gen_lua_file("../doc/manual_EN.lua") gen_toc_md_file("./toc_EN.md", "Table of Contents") diff --git a/manuals/toc_DE.md b/manuals/toc_DE.md index e1db255..4167593 100644 --- a/manuals/toc_DE.md +++ b/manuals/toc_DE.md @@ -225,4 +225,20 @@ - [TA4 Steinbrecher / Quarry](./manual_ta4_DE.md#ta4-steinbrecher--quarry) - [TA4 Elektronikfabrik / Electronic Fab](./manual_ta4_DE.md#ta4-elektronikfabrik--electronic-fab) - [TA4 Injektor / Injector](./manual_ta4_DE.md#ta4-injektor--injector) - - [TA4 Recycler](./manual_ta4_DE.md#ta4-recycler) \ No newline at end of file + - [TA4 Recycler](./manual_ta4_DE.md#ta4-recycler) +- [TA5: Zukunft](./manual_ta5_DE.md#ta5:-zukunft) + - [Energiequellen](./manual_ta5_DE.md#energiequellen) + - [TA5 Fusionsreaktor (geplant)](./manual_ta5_DE.md#ta5-fusionsreaktor-(geplant)) + - [Energiespeicher](./manual_ta5_DE.md#energiespeicher) + - [TA5 Hybrid-Speicher (geplant)](./manual_ta5_DE.md#ta5-hybrid-speicher-(geplant)) + - [Logik Blöcke](./manual_ta5_DE.md#logik-blöcke) + - [Transport und Verkehr](./manual_ta5_DE.md#transport-und-verkehr) + - [TA5 Flug Controller](./manual_ta5_DE.md#ta5-flug-controller) + - [TA5 Hyperloop Transport Kiste](./manual_ta5_DE.md#ta5-hyperloop-transport-kiste) + - [TA5 Hyperloop Transport Tank](./manual_ta5_DE.md#ta5-hyperloop-transport-tank) + - [Hyperloop Teleport Blöcke (geplant)](./manual_ta5_DE.md#hyperloop-teleport-blöcke-(geplant)) + - [TA5 Container (geplant)](./manual_ta5_DE.md#ta5-container-(geplant)) + - [TA5-Teleport-Tubes (geplant)](./manual_ta5_DE.md#ta5-teleport-tubes-(geplant)) + - [TA5-Teleport-Pipes (geplant)](./manual_ta5_DE.md#ta5-teleport-pipes-(geplant)) + - [Weitere TA5 Blöcke/Items](./manual_ta5_DE.md#weitere-ta5-blöckeitems) + - [TA5 KI Chip / TA5 AI Chip](./manual_ta5_DE.md#ta5-ki-chip--ta5-ai-chip) \ No newline at end of file diff --git a/manuals/toc_EN.md b/manuals/toc_EN.md index b908895..b3e2e8a 100644 --- a/manuals/toc_EN.md +++ b/manuals/toc_EN.md @@ -116,7 +116,7 @@ - [Door/Gate Blocks](./manual_ta3_EN.md#doorgate-blocks) - [TA3 Door Controller](./manual_ta3_EN.md#ta3-door-controller) - [TA3 Door Controller II](./manual_ta3_EN.md#ta3-door-controller-ii) - - [TA3 sound block](./manual_ta3_EN.md#ta3-sound-block) + - [TA3 Sound Block](./manual_ta3_EN.md#ta3-sound-block) - [TA3 Mesecons Converter](./manual_ta3_EN.md#ta3-mesecons-converter) - [Detectors](./manual_ta3_EN.md#detectors) - [TA3 Detector](./manual_ta3_EN.md#ta3-detector) @@ -221,4 +221,20 @@ - [TA4 Quarry](./manual_ta4_EN.md#ta4-quarry) - [TA4 Electronic Fab](./manual_ta4_EN.md#ta4-electronic-fab) - [TA4 Injector](./manual_ta4_EN.md#ta4-injector) - - [TA4 Recycler](./manual_ta4_EN.md#ta4-recycler) \ No newline at end of file + - [TA4 Recycler](./manual_ta4_EN.md#ta4-recycler) +- [TA5: Future](./manual_ta5_EN.md#ta5:-future) + - [Energy Sources](./manual_ta5_EN.md#energy-sources) + - [TA5 Fusion Reactor (planned)](./manual_ta5_EN.md#ta5-fusion-reactor-(planned)) + - [Energy Storage](./manual_ta5_EN.md#energy-storage) + - [TA5 Hybrid Storage (planned)](./manual_ta5_EN.md#ta5-hybrid-storage-(planned)) + - [Logic blocks](./manual_ta5_EN.md#logic-blocks) + - [Transport and Traffic](./manual_ta5_EN.md#transport-and-traffic) + - [TA5 Flight Controller](./manual_ta5_EN.md#ta5-flight-controller) + - [TA5 Hyperloop Transport Chest](./manual_ta5_EN.md#ta5-hyperloop-transport-chest) + - [TA5 Hyperloop Transport Tank](./manual_ta5_EN.md#ta5-hyperloop-transport-tank) + - [Hyperloop Teleport Blocks (planned)](./manual_ta5_EN.md#hyperloop-teleport-blocks-(planned)) + - [TA5 Container (planned)](./manual_ta5_EN.md#ta5-container-(planned)) + - [TA5 Teleport Tubes (planned)](./manual_ta5_EN.md#ta5-teleport-tubes-(planned)) + - [TA5 Teleport Pipes (planned)](./manual_ta5_EN.md#ta5-teleport-pipes-(planned)) + - [More TA5 Blocks / Items](./manual_ta5_EN.md#more-ta5-blocks--items) + - [TA5 AI Chip](./manual_ta5_EN.md#ta5-ai-chip) \ No newline at end of file diff --git a/move_controller/flycontroller.lua b/move_controller/flycontroller.lua index cb10a1f..a1db0fd 100644 --- a/move_controller/flycontroller.lua +++ b/move_controller/flycontroller.lua @@ -24,7 +24,7 @@ local mark = dofile(MP .. "/basis/mark_lib.lua") local MAX_DIST = 500 local MAX_BLOCKS = 16 -local EX_PIONTS = 40 +local EX_POINTS = 40 local WRENCH_MENU = { { @@ -85,7 +85,7 @@ minetest.register_node("techage:ta5_flycontroller", { if minetest.is_protected(pos, player:get_player_name()) then return end - if techage.get_expoints(player) < EX_PIONTS then + if techage.get_expoints(player) < EX_POINTS then return end @@ -198,7 +198,7 @@ minetest.register_node("techage:ta5_flycontroller", { techage.remove_node(pos, oldnode, oldmetadata) end, - ta5_formspec = {menu=WRENCH_MENU, ex_points=EX_PIONTS}, + ta5_formspec = {menu=WRENCH_MENU, ex_points=EX_POINTS}, paramtype2 = "facedir", groups = {choppy=2, cracky=2, crumbly=2}, is_ground_content = false, diff --git a/move_controller/movecontroller.lua b/move_controller/movecontroller.lua index 8068124..e72d918 100644 --- a/move_controller/movecontroller.lua +++ b/move_controller/movecontroller.lua @@ -55,6 +55,13 @@ local WRENCH_MENU = { tooltip = S("Value in the range of 0.0 to 1.0"), default = "1.0", }, + { + type = "float", + name = "offset", + label = S("Object offset"), + tooltip = S("Y-offset for non-player objects like vehicles (-0.5 to 0.5)"), + default = "0.0", + }, } local function formspec(nvm, meta)