Activate TA5, improve move/fly controller

master
Joachim Stolberg 2021-12-25 16:12:09 +01:00
parent fd5b33e025
commit 79890c1c1b
15 changed files with 339 additions and 32 deletions

View File

@ -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,

View File

@ -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", "")

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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 = {
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
}

View File

@ -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 = {
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
}

View File

@ -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,
})

View File

@ -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",

View File

@ -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")

View File

@ -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)
- [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)

View File

@ -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)
- [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)

View File

@ -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,

View File

@ -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)