Upgrade fuel cell/electrolyzser
This commit is contained in:
parent
49fd5bc29a
commit
4b7fd5725d
@ -99,4 +99,4 @@ function api.restore_at_startup()
|
|||||||
return {}
|
return {}
|
||||||
end
|
end
|
||||||
|
|
||||||
return api
|
return api
|
||||||
|
@ -1267,16 +1267,16 @@ techage.manual_DE.aText = {
|
|||||||
"Damit können Stromspitzen oder ein Überangebot an Strom in Wasserstoff umgewandelt und so gespeichert werden.\n"..
|
"Damit können Stromspitzen oder ein Überangebot an Strom in Wasserstoff umgewandelt und so gespeichert werden.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"Im Spiel kann Strom mit Hilfe des Elektrolyseurs in Wasserstoff und Wasserstoff über die Brennstoffzelle wieder in Strom umgewandelt werden.\n"..
|
"Im Spiel kann Strom mit Hilfe des Elektrolyseurs in Wasserstoff und Wasserstoff über die Brennstoffzelle wieder in Strom umgewandelt werden.\n"..
|
||||||
"Damit kann Strom (in Form von Wasserstoff) nicht nur in Tanks gelagert\\, sonder mit Hilfe von Gasflaschen auch mit Wagen (carts) transportiert werden.\n"..
|
"Damit kann Strom (in Form von Wasserstoff) nicht nur in Tanks gelagert\\, sonder mit dem Tankwagen auch transportiert werden.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"Die Umwandlung von Strom in Wasserstoff und zurück ist aber verlustbehaftet. Von 100 Einheiten Strom kommen nach der Umwandlung in Wasserstoff und zurück nur 83 Einheiten Strom wieder raus.\n"..
|
"Die Umwandlung von Strom in Wasserstoff und zurück ist aber verlustbehaftet. Von 100 Einheiten Strom kommen nach der Umwandlung in Wasserstoff und zurück nur 95 Einheiten Strom wieder raus.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n",
|
"\n",
|
||||||
"Der Elektrolyseur wandelt Strom in Wasserstoff um.\n"..
|
"Der Elektrolyseur wandelt Strom in Wasserstoff um.\n"..
|
||||||
"Es muss von links mit Strom versorgt werden. Rechts kann Wasserstoff über Röhren und Pumpen entnommen werden.\n"..
|
"Es muss von links mit Strom versorgt werden. Rechts kann Wasserstoff über Röhren und Pumpen entnommen werden.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"Der Elektrolyseur kann bis zu 30 ku an Strom aufnehmen und generiert dann alle 4 s ein Wasserstoff Item.\n"..
|
"Der Elektrolyseur kann bis zu 35 ku an Strom aufnehmen und generiert dann alle 4 s ein Wasserstoff Item.\n"..
|
||||||
"In den Elektrolyseur passen 200 Einheiten Wasserstoff.\n"..
|
"In den Elektrolyseur passen 200 Einheiten Wasserstoff.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
@ -1284,7 +1284,11 @@ techage.manual_DE.aText = {
|
|||||||
"Die Brennstoffzelle wandelt Wasserstoff in Strom um.\n"..
|
"Die Brennstoffzelle wandelt Wasserstoff in Strom um.\n"..
|
||||||
"Sie muss von links per Pumpe mit Wasserstoff versorgt werden. Rechts ist der Stromanschluss.\n"..
|
"Sie muss von links per Pumpe mit Wasserstoff versorgt werden. Rechts ist der Stromanschluss.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"Die Brennstoffzelle kann bis zu 25 ku an Strom abgeben und benötigt dazu alle 4 s ein Wasserstoff Item.\n"..
|
"Die Brennstoffzelle kann bis zu 34 ku an Strom abgeben und benötigt dazu alle 4 s ein Wasserstoff Item.\n"..
|
||||||
|
"\n"..
|
||||||
|
"Normalerweise arbeitet die Brennstoffzelle als Generator der Kategorie 2 (wie auch anderen Speichersystemen).\n"..
|
||||||
|
"In diesem Fall können keine anderen Blöcke der Kategorie 2 wie der Akku-Block geladen werden.\n"..
|
||||||
|
"Über das Kontrollkästchen kann die Brennstoffzelle jedoch auch als Generator der Kategorie 1 eingesetzt werden.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n",
|
"\n",
|
||||||
|
@ -1252,16 +1252,16 @@ techage.manual_EN.aText = {
|
|||||||
"This enables current peaks or an excess supply of electricity to be converted into hydrogen and thus stored.\n"..
|
"This enables current peaks or an excess supply of electricity to be converted into hydrogen and thus stored.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"In the game\\, electricity can be converted back into electricity via the fuel cell using the electrolyzer in hydrogen and hydrogen.\n"..
|
"In the game\\, electricity can be converted back into electricity via the fuel cell using the electrolyzer in hydrogen and hydrogen.\n"..
|
||||||
"This means that electricity (in the form of hydrogen) can not only be stored in tanks\\, but can also be transported with carts using gas cylinders.\n"..
|
"This means that electricity (in the form of hydrogen) can not only be stored in tanks\\, but also transported by means of the tank cart.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"However\\, the conversion of electricity into hydrogen and back is lossy. Out of 100 units of electricity\\, only 83 units of electricity come out after the conversion to hydrogen and back.\n"..
|
"However\\, the conversion of electricity into hydrogen and back is lossy. Out of 100 units of electricity\\, only 95 units of electricity come out after the conversion to hydrogen and back.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n",
|
"\n",
|
||||||
"The electrolyzer converts electricity into hydrogen.\n"..
|
"The electrolyzer converts electricity into hydrogen.\n"..
|
||||||
"It must be powered from the left. On the right\\, hydrogen can be extracted via pipes and pumps.\n"..
|
"It must be powered from the left. On the right\\, hydrogen can be extracted via pipes and pumps.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"The electrolyzer can draw up to 30 ku of electricity and then generates a hydrogen item every 4 s.\n"..
|
"The electrolyzer can draw up to 35 ku of electricity and then generates a hydrogen item every 4 s.\n"..
|
||||||
"200 units of hydrogen fit into the electrolyzer.\n"..
|
"200 units of hydrogen fit into the electrolyzer.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
@ -1269,7 +1269,10 @@ techage.manual_EN.aText = {
|
|||||||
"The fuel cell converts hydrogen into electricity.\n"..
|
"The fuel cell converts hydrogen into electricity.\n"..
|
||||||
"It must be supplied with hydrogen from the left by a pump. The power connection is on the right.\n"..
|
"It must be supplied with hydrogen from the left by a pump. The power connection is on the right.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"The fuel cell can deliver up to 25 ku of electricity and needs a hydrogen item every 4 s.\n"..
|
"The fuel cell can deliver up to 34 ku of electricity and needs a hydrogen item every 4 s.\n"..
|
||||||
|
"\n"..
|
||||||
|
"Usually the fuel cell works as a category 2 generator (like other storage systems). \n"..
|
||||||
|
"In this case\\, no other category 2 blocks such as the battery block can be charged. However\\, the fuel cell can also be used as a category 1 generator via the check box.\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n"..
|
"\n"..
|
||||||
"\n",
|
"\n",
|
||||||
|
@ -24,7 +24,7 @@ local networks = techage.networks
|
|||||||
|
|
||||||
local CYCLE_TIME = 2
|
local CYCLE_TIME = 2
|
||||||
local STANDBY_TICKS = 3
|
local STANDBY_TICKS = 3
|
||||||
local PWR_NEEDED = 30
|
local PWR_NEEDED = 35
|
||||||
local PWR_UNITS_PER_HYDROGEN_ITEM = 80
|
local PWR_UNITS_PER_HYDROGEN_ITEM = 80
|
||||||
local CAPACITY = 200
|
local CAPACITY = 200
|
||||||
|
|
||||||
|
@ -24,10 +24,26 @@ local networks = techage.networks
|
|||||||
|
|
||||||
local CYCLE_TIME = 2
|
local CYCLE_TIME = 2
|
||||||
local STANDBY_TICKS = 4
|
local STANDBY_TICKS = 4
|
||||||
local PWR_CAPA = 25
|
local PWR_CAPA = 34
|
||||||
local PWR_UNITS_PER_HYDROGEN_ITEM = 80
|
local PWR_UNITS_PER_HYDROGEN_ITEM = 75
|
||||||
local CAPACITY = 100
|
local CAPACITY = 100
|
||||||
|
|
||||||
|
local States = {}
|
||||||
|
local STATE = function(pos) return States[techage.get_node_lvm(pos).name] end
|
||||||
|
|
||||||
|
local function is_gen1(nvm)
|
||||||
|
if not nvm.running then
|
||||||
|
local is_gen1 = dump(nvm.is_gen1 or false)
|
||||||
|
return "checkbox[0.3,0.5;is_gen1;"..S("Cat. 1 generator")..";"..is_gen1.."]"..
|
||||||
|
"tooltip[0.3,0.5;1,1;"..S("If set, fuelcell will work\nas cat. 1 generator")..";#0C3D32;#FFFFFF]"
|
||||||
|
end
|
||||||
|
if nvm.is_gen1 then
|
||||||
|
return "label[0.5,0.7;"..S("Cat. 1 generator").."]"
|
||||||
|
else
|
||||||
|
return "label[0.5,0.7;"..S("Cat. 2 generator").."]"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function formspec(self, pos, nvm)
|
local function formspec(self, pos, nvm)
|
||||||
local amount = (nvm.liquid and nvm.liquid.amount) or 0
|
local amount = (nvm.liquid and nvm.liquid.amount) or 0
|
||||||
local lqd_name = (nvm.liquid and nvm.liquid.name) or "techage:liquid"
|
local lqd_name = (nvm.liquid and nvm.liquid.name) or "techage:liquid"
|
||||||
@ -46,6 +62,7 @@ local function formspec(self, pos, nvm)
|
|||||||
"label[2.5,-0.1;"..minetest.colorize( "#000000", S("Fuel Cell")).."]"..
|
"label[2.5,-0.1;"..minetest.colorize( "#000000", S("Fuel Cell")).."]"..
|
||||||
techage.item_image(0.5,2, lqd_name)..
|
techage.item_image(0.5,2, lqd_name)..
|
||||||
arrow..
|
arrow..
|
||||||
|
is_gen1(nvm)..
|
||||||
"image_button[2,2.5;1,1;".. self:get_state_button_image(nvm) ..";state_button;]"..
|
"image_button[2,2.5;1,1;".. self:get_state_button_image(nvm) ..";state_button;]"..
|
||||||
"tooltip[2,2.5;1,1;"..self:get_state_tooltip(nvm).."]"..
|
"tooltip[2,2.5;1,1;"..self:get_state_tooltip(nvm).."]"..
|
||||||
techage.power.formspec_label_bar(pos, 3.5, 0.8, S("Electricity"), PWR_CAPA, nvm.given)
|
techage.power.formspec_label_bar(pos, 3.5, 0.8, S("Electricity"), PWR_CAPA, nvm.given)
|
||||||
@ -71,7 +88,7 @@ local State = techage.NodeStates:new({
|
|||||||
cycle_time = CYCLE_TIME,
|
cycle_time = CYCLE_TIME,
|
||||||
standby_ticks = STANDBY_TICKS,
|
standby_ticks = STANDBY_TICKS,
|
||||||
formspec_func = formspec,
|
formspec_func = formspec,
|
||||||
infotext_name = S("TA4 Fuel Cell"),
|
infotext_name = S("TA4 Fuel Cell Gen2"),
|
||||||
start_node = start_node,
|
start_node = start_node,
|
||||||
stop_node = stop_node,
|
stop_node = stop_node,
|
||||||
})
|
})
|
||||||
@ -94,18 +111,19 @@ end
|
|||||||
-- converts hydrogen into power
|
-- converts hydrogen into power
|
||||||
local function node_timer(pos, elapsed)
|
local function node_timer(pos, elapsed)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
|
local state = STATE(pos)
|
||||||
--print("fuelcell", nvm.running, nvm.given, nvm.num_pwr_units)
|
--print("fuelcell", nvm.running, nvm.given, nvm.num_pwr_units)
|
||||||
if has_hydrogen(nvm) then
|
if has_hydrogen(nvm) then
|
||||||
local outdir = M(pos):get_int("outdir")
|
local outdir = M(pos):get_int("outdir")
|
||||||
nvm.given = power.generator_alive(pos, Cable, CYCLE_TIME, outdir)
|
nvm.given = power.generator_alive(pos, Cable, CYCLE_TIME, outdir)
|
||||||
consuming(pos, nvm)
|
consuming(pos, nvm)
|
||||||
State:keep_running(pos, nvm, 1) -- TODO warum hier 1 und nicht COUNTDOWN_TICKS?
|
state:keep_running(pos, nvm, 1) -- TODO warum hier 1 und nicht COUNTDOWN_TICKS?
|
||||||
else
|
else
|
||||||
State:standby(pos, nvm)
|
state:standby(pos, nvm)
|
||||||
nvm.given = 0
|
nvm.given = 0
|
||||||
end
|
end
|
||||||
if techage.is_activeformspec(pos) then
|
if techage.is_activeformspec(pos) then
|
||||||
M(pos):set_string("formspec", formspec(State, pos, nvm))
|
M(pos):set_string("formspec", formspec(state, pos, nvm))
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
@ -115,14 +133,26 @@ local function on_receive_fields(pos, formname, fields, player)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
State:state_button_event(pos, nvm, fields)
|
if fields.is_gen1 then
|
||||||
M(pos):set_string("formspec", formspec(State, pos, nvm))
|
nvm.is_gen1 = fields.is_gen1 == "true"
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
|
if nvm.is_gen1 then
|
||||||
|
node.name = "techage:ta4_fuelcell2"
|
||||||
|
else
|
||||||
|
node.name = "techage:ta4_fuelcell"
|
||||||
|
end
|
||||||
|
minetest.swap_node(pos, node)
|
||||||
|
local outdir = M(pos):get_int("outdir")
|
||||||
|
techage.power.update_network(pos, outdir, Cable)
|
||||||
|
end
|
||||||
|
STATE(pos):state_button_event(pos, nvm, fields)
|
||||||
|
M(pos):set_string("formspec", formspec(STATE(pos), pos, nvm))
|
||||||
end
|
end
|
||||||
|
|
||||||
local function on_rightclick(pos, node, clicker)
|
local function on_rightclick(pos, node, clicker)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
techage.set_activeformspec(pos, clicker)
|
techage.set_activeformspec(pos, clicker)
|
||||||
M(pos):set_string("formspec", formspec(State, pos, nvm))
|
M(pos):set_string("formspec", formspec(STATE(pos), pos, nvm))
|
||||||
end
|
end
|
||||||
|
|
||||||
local function after_place_node(pos)
|
local function after_place_node(pos)
|
||||||
@ -130,7 +160,7 @@ local function after_place_node(pos)
|
|||||||
nvm.running = false
|
nvm.running = false
|
||||||
nvm.num_pwr_units = 0
|
nvm.num_pwr_units = 0
|
||||||
local number = techage.add_node(pos, "techage:ta4_fuelcell")
|
local number = techage.add_node(pos, "techage:ta4_fuelcell")
|
||||||
State:node_init(pos, nvm, number)
|
STATE(pos):node_init(pos, nvm, number)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
M(pos):set_int("outdir", networks.side_to_outdir(pos, "R"))
|
M(pos):set_int("outdir", networks.side_to_outdir(pos, "R"))
|
||||||
Pipe:after_place_node(pos)
|
Pipe:after_place_node(pos)
|
||||||
@ -173,7 +203,7 @@ local liquid_def = {
|
|||||||
local leftover = liquid.srv_put(pos, indir, name, amount)
|
local leftover = liquid.srv_put(pos, indir, name, amount)
|
||||||
if techage.is_activeformspec(pos) then
|
if techage.is_activeformspec(pos) then
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
M(pos):set_string("formspec", formspec(State, pos, nvm))
|
M(pos):set_string("formspec", formspec(STATE(pos), pos, nvm))
|
||||||
end
|
end
|
||||||
return leftover
|
return leftover
|
||||||
end,
|
end,
|
||||||
@ -181,7 +211,7 @@ local liquid_def = {
|
|||||||
amount, name = liquid.srv_take(pos, indir, name, amount)
|
amount, name = liquid.srv_take(pos, indir, name, amount)
|
||||||
if techage.is_activeformspec(pos) then
|
if techage.is_activeformspec(pos) then
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
M(pos):set_string("formspec", formspec(State, pos, nvm))
|
M(pos):set_string("formspec", formspec(STATE(pos), pos, nvm))
|
||||||
end
|
end
|
||||||
return amount, name
|
return amount, name
|
||||||
end
|
end
|
||||||
@ -269,9 +299,126 @@ minetest.register_node("techage:ta4_fuelcell_on", {
|
|||||||
light_source = 6,
|
light_source = 6,
|
||||||
})
|
})
|
||||||
|
|
||||||
Cable:add_secondary_node_names({"techage:ta4_fuelcell", "techage:ta4_fuelcell_on"})
|
-------------------------------------------------------------------------------
|
||||||
Pipe:add_secondary_node_names({"techage:ta4_fuelcell", "techage:ta4_fuelcell_on"})
|
-- Gen1 fuellcell
|
||||||
techage.register_node({"techage:ta4_fuelcell", "techage:ta4_fuelcell_on"}, {
|
-------------------------------------------------------------------------------
|
||||||
|
local State2 = techage.NodeStates:new({
|
||||||
|
node_name_passive = "techage:ta4_fuelcell2",
|
||||||
|
node_name_active = "techage:ta4_fuelcell2_on",
|
||||||
|
cycle_time = CYCLE_TIME,
|
||||||
|
standby_ticks = STANDBY_TICKS,
|
||||||
|
formspec_func = formspec,
|
||||||
|
infotext_name = S("TA4 Fuel Cell Gen1"),
|
||||||
|
start_node = start_node,
|
||||||
|
stop_node = stop_node,
|
||||||
|
})
|
||||||
|
|
||||||
|
local netw_def2 = {
|
||||||
|
pipe2 = {
|
||||||
|
sides = {L = 1}, -- Pipe connection sides
|
||||||
|
ntype = "tank",
|
||||||
|
},
|
||||||
|
ele1 = {
|
||||||
|
sides = {R = 1}, -- Cable connection sides
|
||||||
|
ntype = "gen1",
|
||||||
|
nominal = PWR_CAPA - 1, -- to be able to distiguish between cat1 and 2
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
minetest.register_node("techage:ta4_fuelcell2", {
|
||||||
|
description = S("TA4 Fuel Cell"),
|
||||||
|
tiles = {
|
||||||
|
-- up, down, right, left, back, front
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4_top.png^techage_appl_arrow.png",
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4.png",
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_hole_electric.png",
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_hole_pipe.png",
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_fuelcell.png^techage_appl_ctrl_unit.png^[transformFX",
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_fuelcell.png^techage_appl_ctrl_unit.png",
|
||||||
|
},
|
||||||
|
|
||||||
|
can_dig = function(pos, player)
|
||||||
|
if minetest.is_protected(pos, player:get_player_name()) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return liquid.is_empty(pos)
|
||||||
|
end,
|
||||||
|
|
||||||
|
after_place_node = after_place_node,
|
||||||
|
after_dig_node = after_dig_node,
|
||||||
|
tubelib2_on_update2 = tubelib2_on_update2,
|
||||||
|
on_punch = liquid.on_punch,
|
||||||
|
networks = netw_def2,
|
||||||
|
liquid = liquid_def,
|
||||||
|
on_receive_fields = on_receive_fields,
|
||||||
|
on_timer = node_timer,
|
||||||
|
on_rightclick = on_rightclick,
|
||||||
|
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {cracky=2, crumbly=2, choppy=2, not_in_creative_inventory=1},
|
||||||
|
on_rotate = screwdriver.disallow,
|
||||||
|
is_ground_content = false,
|
||||||
|
drop = "techage:ta4_fuelcell",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("techage:ta4_fuelcell2_on", {
|
||||||
|
description = S("TA4 Fuel Cell"),
|
||||||
|
tiles = {
|
||||||
|
-- up, down, right, left, back, front
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4_top.png^techage_appl_arrow.png",
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4.png",
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_hole_electric.png",
|
||||||
|
"techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_hole_pipe.png",
|
||||||
|
{
|
||||||
|
image = "techage_filling4_ta4.png^techage_frame4_ta4.png^techage_appl_fuelcell4.png^techage_appl_ctrl_unit4.png^[transformFX",
|
||||||
|
backface_culling = false,
|
||||||
|
animation = {
|
||||||
|
type = "vertical_frames",
|
||||||
|
aspect_w = 32,
|
||||||
|
aspect_h = 32,
|
||||||
|
length = 0.8,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
image = "techage_filling4_ta4.png^techage_frame4_ta4.png^techage_appl_fuelcell4.png^techage_appl_ctrl_unit4.png",
|
||||||
|
backface_culling = false,
|
||||||
|
animation = {
|
||||||
|
type = "vertical_frames",
|
||||||
|
aspect_w = 32,
|
||||||
|
aspect_h = 32,
|
||||||
|
length = 0.8,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
tubelib2_on_update2 = tubelib2_on_update2,
|
||||||
|
networks = netw_def2,
|
||||||
|
liquid = liquid_def,
|
||||||
|
on_receive_fields = on_receive_fields,
|
||||||
|
on_punch = liquid.on_punch,
|
||||||
|
on_timer = node_timer,
|
||||||
|
on_rightclick = on_rightclick,
|
||||||
|
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {not_in_creative_inventory=1},
|
||||||
|
on_rotate = screwdriver.disallow,
|
||||||
|
is_ground_content = false,
|
||||||
|
diggable = false,
|
||||||
|
paramtype = "light",
|
||||||
|
light_source = 6,
|
||||||
|
})
|
||||||
|
|
||||||
|
States["techage:ta4_fuelcell"] = State
|
||||||
|
States["techage:ta4_fuelcell_on"] = State
|
||||||
|
States["techage:ta4_fuelcell2"] = State2
|
||||||
|
States["techage:ta4_fuelcell2_on"] = State2
|
||||||
|
|
||||||
|
Cable:add_secondary_node_names({"techage:ta4_fuelcell", "techage:ta4_fuelcell_on",
|
||||||
|
"techage:ta4_fuelcell2", "techage:ta4_fuelcell2_on"})
|
||||||
|
Pipe:add_secondary_node_names({"techage:ta4_fuelcell", "techage:ta4_fuelcell_on",
|
||||||
|
"techage:ta4_fuelcell2", "techage:ta4_fuelcell2_on"})
|
||||||
|
techage.register_node({"techage:ta4_fuelcell", "techage:ta4_fuelcell_on",
|
||||||
|
"techage:ta4_fuelcell2", "techage:ta4_fuelcell2_on"}, {
|
||||||
on_recv_message = function(pos, src, topic, payload)
|
on_recv_message = function(pos, src, topic, payload)
|
||||||
local nvm = techage.get_nvm(pos)
|
local nvm = techage.get_nvm(pos)
|
||||||
if topic == "load" then
|
if topic == "load" then
|
||||||
@ -279,7 +426,7 @@ techage.register_node({"techage:ta4_fuelcell", "techage:ta4_fuelcell_on"}, {
|
|||||||
elseif topic == "delivered" then
|
elseif topic == "delivered" then
|
||||||
return math.floor((nvm.given or 0) + 0.5)
|
return math.floor((nvm.given or 0) + 0.5)
|
||||||
else
|
else
|
||||||
return State:on_receive_message(pos, topic, payload)
|
return STATE(pos):on_receive_message(pos, topic, payload)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
@ -292,4 +439,3 @@ minetest.register_craft({
|
|||||||
{'default:steel_ingot', "techage:ta4_wlanchip", 'default:steel_ingot'},
|
{'default:steel_ingot', "techage:ta4_wlanchip", 'default:steel_ingot'},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
1
i18n.py
1
i18n.py
@ -455,4 +455,5 @@ def run_all_subfolders(folder):
|
|||||||
update_folder(modfolder + "/")
|
update_folder(modfolder + "/")
|
||||||
|
|
||||||
|
|
||||||
|
_argv.append("--sort")
|
||||||
main()
|
main()
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -88,8 +88,8 @@ Since the levels build on each other, all ages have to be run through one after
|
|||||||
| Oil Drill Box | | 16 | |
|
| Oil Drill Box | | 16 | |
|
||||||
| Oil Pumpjack | | 16 | |
|
| Oil Pumpjack | | 16 | |
|
||||||
| TA3 Oil Reboiler | | 14 | |
|
| TA3 Oil Reboiler | | 14 | |
|
||||||
| TA4 Electrolyzer | | | 30 |
|
| TA4 Electrolyzer | | | 35 |
|
||||||
| TA4 Fuel Cell | | | 25 |
|
| TA4 Fuel Cell | | | 34 |
|
||||||
| TA4 Reactor | - | - | 8 |
|
| TA4 Reactor | - | - | 8 |
|
||||||
| Steam Engine | 25 | | |
|
| Steam Engine | 25 | | |
|
||||||
| Coal Power Station | | 80 | |
|
| Coal Power Station | | 80 | |
|
||||||
|
@ -196,9 +196,9 @@ Strom kann mittels Elektrolyse in Wasserstoff und Sauerstoff aufgespalten werden
|
|||||||
Damit können Stromspitzen oder ein Überangebot an Strom in Wasserstoff umgewandelt und so gespeichert werden.
|
Damit können Stromspitzen oder ein Überangebot an Strom in Wasserstoff umgewandelt und so gespeichert werden.
|
||||||
|
|
||||||
Im Spiel kann Strom mit Hilfe des Elektrolyseurs in Wasserstoff und Wasserstoff über die Brennstoffzelle wieder in Strom umgewandelt werden.
|
Im Spiel kann Strom mit Hilfe des Elektrolyseurs in Wasserstoff und Wasserstoff über die Brennstoffzelle wieder in Strom umgewandelt werden.
|
||||||
Damit kann Strom (in Form von Wasserstoff) nicht nur in Tanks gelagert, sonder mit Hilfe von Gasflaschen auch mit Wagen (carts) transportiert werden.
|
Damit kann Strom (in Form von Wasserstoff) nicht nur in Tanks gelagert, sonder mit dem Tankwagen auch transportiert werden.
|
||||||
|
|
||||||
Die Umwandlung von Strom in Wasserstoff und zurück ist aber verlustbehaftet. Von 100 Einheiten Strom kommen nach der Umwandlung in Wasserstoff und zurück nur 83 Einheiten Strom wieder raus.
|
Die Umwandlung von Strom in Wasserstoff und zurück ist aber verlustbehaftet. Von 100 Einheiten Strom kommen nach der Umwandlung in Wasserstoff und zurück nur 95 Einheiten Strom wieder raus.
|
||||||
|
|
||||||
[ta4_hydrogen|image]
|
[ta4_hydrogen|image]
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ Die Umwandlung von Strom in Wasserstoff und zurück ist aber verlustbehaftet. Vo
|
|||||||
Der Elektrolyseur wandelt Strom in Wasserstoff um.
|
Der Elektrolyseur wandelt Strom in Wasserstoff um.
|
||||||
Es muss von links mit Strom versorgt werden. Rechts kann Wasserstoff über Röhren und Pumpen entnommen werden.
|
Es muss von links mit Strom versorgt werden. Rechts kann Wasserstoff über Röhren und Pumpen entnommen werden.
|
||||||
|
|
||||||
Der Elektrolyseur kann bis zu 30 ku an Strom aufnehmen und generiert dann alle 4 s ein Wasserstoff Item.
|
Der Elektrolyseur kann bis zu 35 ku an Strom aufnehmen und generiert dann alle 4 s ein Wasserstoff Item.
|
||||||
In den Elektrolyseur passen 200 Einheiten Wasserstoff.
|
In den Elektrolyseur passen 200 Einheiten Wasserstoff.
|
||||||
|
|
||||||
[ta4_electrolyzer|image]
|
[ta4_electrolyzer|image]
|
||||||
@ -219,7 +219,11 @@ In den Elektrolyseur passen 200 Einheiten Wasserstoff.
|
|||||||
Die Brennstoffzelle wandelt Wasserstoff in Strom um.
|
Die Brennstoffzelle wandelt Wasserstoff in Strom um.
|
||||||
Sie muss von links per Pumpe mit Wasserstoff versorgt werden. Rechts ist der Stromanschluss.
|
Sie muss von links per Pumpe mit Wasserstoff versorgt werden. Rechts ist der Stromanschluss.
|
||||||
|
|
||||||
Die Brennstoffzelle kann bis zu 25 ku an Strom abgeben und benötigt dazu alle 4 s ein Wasserstoff Item.
|
Die Brennstoffzelle kann bis zu 34 ku an Strom abgeben und benötigt dazu alle 4 s ein Wasserstoff Item.
|
||||||
|
|
||||||
|
Normalerweise arbeitet die Brennstoffzelle als Generator der Kategorie 2 (wie auch anderen Speichersystemen).
|
||||||
|
In diesem Fall können keine anderen Blöcke der Kategorie 2 wie der Akku-Block geladen werden.
|
||||||
|
Über das Kontrollkästchen kann die Brennstoffzelle jedoch auch als Generator der Kategorie 1 eingesetzt werden.
|
||||||
|
|
||||||
[ta4_fuelcell|image]
|
[ta4_fuelcell|image]
|
||||||
|
|
||||||
|
@ -196,9 +196,9 @@ Electrolysis can be used to split electricity into hydrogen and oxygen. On the o
|
|||||||
This enables current peaks or an excess supply of electricity to be converted into hydrogen and thus stored.
|
This enables current peaks or an excess supply of electricity to be converted into hydrogen and thus stored.
|
||||||
|
|
||||||
In the game, electricity can be converted back into electricity via the fuel cell using the electrolyzer in hydrogen and hydrogen.
|
In the game, electricity can be converted back into electricity via the fuel cell using the electrolyzer in hydrogen and hydrogen.
|
||||||
This means that electricity (in the form of hydrogen) can not only be stored in tanks, but can also be transported with carts using gas cylinders.
|
This means that electricity (in the form of hydrogen) can not only be stored in tanks, but also transported by means of the tank cart.
|
||||||
|
|
||||||
However, the conversion of electricity into hydrogen and back is lossy. Out of 100 units of electricity, only 83 units of electricity come out after the conversion to hydrogen and back.
|
However, the conversion of electricity into hydrogen and back is lossy. Out of 100 units of electricity, only 95 units of electricity come out after the conversion to hydrogen and back.
|
||||||
|
|
||||||
[ta4_hydrogen|image]
|
[ta4_hydrogen|image]
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ However, the conversion of electricity into hydrogen and back is lossy. Out of 1
|
|||||||
The electrolyzer converts electricity into hydrogen.
|
The electrolyzer converts electricity into hydrogen.
|
||||||
It must be powered from the left. On the right, hydrogen can be extracted via pipes and pumps.
|
It must be powered from the left. On the right, hydrogen can be extracted via pipes and pumps.
|
||||||
|
|
||||||
The electrolyzer can draw up to 30 ku of electricity and then generates a hydrogen item every 4 s.
|
The electrolyzer can draw up to 35 ku of electricity and then generates a hydrogen item every 4 s.
|
||||||
200 units of hydrogen fit into the electrolyzer.
|
200 units of hydrogen fit into the electrolyzer.
|
||||||
|
|
||||||
[ta4_electrolyzer|image]
|
[ta4_electrolyzer|image]
|
||||||
@ -219,7 +219,10 @@ The electrolyzer can draw up to 30 ku of electricity and then generates a hydrog
|
|||||||
The fuel cell converts hydrogen into electricity.
|
The fuel cell converts hydrogen into electricity.
|
||||||
It must be supplied with hydrogen from the left by a pump. The power connection is on the right.
|
It must be supplied with hydrogen from the left by a pump. The power connection is on the right.
|
||||||
|
|
||||||
The fuel cell can deliver up to 25 ku of electricity and needs a hydrogen item every 4 s.
|
The fuel cell can deliver up to 34 ku of electricity and needs a hydrogen item every 4 s.
|
||||||
|
|
||||||
|
Usually the fuel cell works as a category 2 generator (like other storage systems).
|
||||||
|
In this case, no other category 2 blocks such as the battery block can be charged. However, the fuel cell can also be used as a category 1 generator via the check box.
|
||||||
|
|
||||||
[ta4_fuelcell|image]
|
[ta4_fuelcell|image]
|
||||||
|
|
||||||
|
@ -45,7 +45,8 @@ local Generators = {
|
|||||||
S("Wind turbine"),
|
S("Wind turbine"),
|
||||||
S("Accu Box"),
|
S("Accu Box"),
|
||||||
S("Energy storage"),
|
S("Energy storage"),
|
||||||
S("Fuel cell"),
|
S("Fuel cell cat. 1"),
|
||||||
|
S("Fuel cell cat. 2"),
|
||||||
S("Electrolyzer"),
|
S("Electrolyzer"),
|
||||||
S("TA2 Generator"),
|
S("TA2 Generator"),
|
||||||
}
|
}
|
||||||
@ -53,7 +54,8 @@ local Generators = {
|
|||||||
local Storage = {
|
local Storage = {
|
||||||
[S("Accu Box")] = true,
|
[S("Accu Box")] = true,
|
||||||
[S("Energy storage")] = true,
|
[S("Energy storage")] = true,
|
||||||
[S("Fuel cell")] = true,
|
[S("Fuel cell cat. 1")] = true,
|
||||||
|
[S("Fuel cell cat. 2")] = true,
|
||||||
[S("Electrolyzer")] = true,
|
[S("Electrolyzer")] = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,8 +66,9 @@ local GeneratorPerformances = {
|
|||||||
70, -- S("Wind turbine")
|
70, -- S("Wind turbine")
|
||||||
10, -- S("Accu Box")
|
10, -- S("Accu Box")
|
||||||
60, -- S("Energy storage")
|
60, -- S("Energy storage")
|
||||||
25, -- S("Fuel cell")
|
33, -- S("Fuel cell cat. 1")
|
||||||
30, -- S("Electrolyzer")
|
34, -- S("Fuel cell cat. 2")
|
||||||
|
35, -- S("Electrolyzer")
|
||||||
24, -- S("TA2 Generator")
|
24, -- S("TA2 Generator")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,11 +205,16 @@ local function calc_network_data_type(pos, nvm, gentype)
|
|||||||
pow_max2, pow_curr2, num_nodes2 = consumer_data(netw.con2, nominal)
|
pow_max2, pow_curr2, num_nodes2 = consumer_data(netw.con2, nominal)
|
||||||
pow_stored1 = storage_load(netw.con2, Gentype2Maxvalue[gentype]).." %"
|
pow_stored1 = storage_load(netw.con2, Gentype2Maxvalue[gentype]).." %"
|
||||||
pow_stored2 = pow_stored1
|
pow_stored2 = pow_stored1
|
||||||
elseif gentype == S("Fuel cell") then
|
elseif gentype == S("Fuel cell cat. 2") then
|
||||||
pow_max1, pow_curr1, num_nodes1 = generator_data(netw.gen2, nominal)
|
pow_max1, pow_curr1, num_nodes1 = generator_data(netw.gen2, nominal)
|
||||||
pow_max2, pow_curr2, num_nodes2 = 0, 0, 0
|
pow_max2, pow_curr2, num_nodes2 = 0, 0, 0
|
||||||
pow_stored1 = storage_load(netw.gen2, Gentype2Maxvalue[gentype]).." %"
|
pow_stored1 = storage_load(netw.gen2, Gentype2Maxvalue[gentype]).." %"
|
||||||
pow_stored2 = "-"
|
pow_stored2 = "-"
|
||||||
|
elseif gentype == S("Fuel cell cat. 1") then
|
||||||
|
pow_max1, pow_curr1, num_nodes1 = generator_data(netw.gen1, nominal)
|
||||||
|
pow_max2, pow_curr2, num_nodes2 = 0, 0, 0
|
||||||
|
pow_stored1 = storage_load(netw.gen1, Gentype2Maxvalue[gentype]).." %"
|
||||||
|
pow_stored2 = "-"
|
||||||
elseif gentype == S("Electrolyzer") then
|
elseif gentype == S("Electrolyzer") then
|
||||||
pow_max1, pow_curr1, num_nodes1 = 0, 0, 0
|
pow_max1, pow_curr1, num_nodes1 = 0, 0, 0
|
||||||
pow_max2, pow_curr2, num_nodes2 = consumer_data(netw.con2, nominal)
|
pow_max2, pow_curr2, num_nodes2 = consumer_data(netw.con2, nominal)
|
||||||
@ -336,7 +344,7 @@ end
|
|||||||
local function formspec2(pos, mem)
|
local function formspec2(pos, mem)
|
||||||
local meta = M(pos)
|
local meta = M(pos)
|
||||||
local output = meta:get_string("output")
|
local output = meta:get_string("output")
|
||||||
local command = mem.cmnd or ""
|
local command = mem.cmnd or "help"
|
||||||
output = minetest.formspec_escape(output)
|
output = minetest.formspec_escape(output)
|
||||||
output = output:gsub("\n", ",")
|
output = output:gsub("\n", ",")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user