technic/technic_worldgen/crafts.lua

180 lines
4.9 KiB
Lua
Raw Normal View History

2014-04-16 19:10:00 +02:00
local S = technic.worldgen.gettext
Uranium enrichment via centrifuge Replacing the extractor-based system, uranium to be used as reactor fuel must now be enriched in stages using the centrifuge. Uranium metal can exist at 36 levels of fissile content, from 0.0% to 3.5% in steps of 0.1%. One round of centrifuging splits two dust of a particular grade in to one dust each of the two neighbouring grades. Uranium of each grade can exist as dust, ingot, and block, with all the regular metal processes to convert between them. Uranium from ore exists in lump form, and is 0.7% fissle. The blocks are radioactive to a degree dependent on fissile content. Thus the chemical refinement and processing of uranium now follows the standard pattern for metals, and is orthogonal to isotopic enrichment. Each form of uranium (dust, ingot, block) intentionally looks identical regardless of fissile grade. If technic_worldgen is used alone, it defines only one grade of uranium (as before), but defines it in the regular metal pattern, with lump, ingot produced by cooking lump, and block crafted from ingots. It identifies the metal only as "uranium". The multiple grades of uranium are defined by the technic mod, which identifies each grade as "N.N%-fissile uranium". The single grade that was registered by technic_worldgen is redefined to be described specifically as "0.7%-fissile uranium". For the redefinition to work, technic_worldgen must load before technic, so technic now declares a dependency on technic_worldgen. Each fuel rod is made from five 3.5%-fissile ingots, each of which in turn requires one to start with five 0.7%-fissile dust, so each fuel rod is now derived from 12.5 uranium lumps (or 25 if the lumps were first cooked rather than being ground). This replaces the 20 lumps required by the former recipes. After setting up and priming the centrifuge cascade, enriching a full set of fuel for the reactor (six fuel rods) takes 14700 centrifuge operations. It's intended to be a practical necessity to automate the centrifuge. In the absence of EU upgrades for the centrifuges, these operations consume 5.88e8 EU, about 0.97% of the 6.048e10 EU that the fuel set will produce in the reactor. The intent is that, in this respect as in others, operating a reactor should carry a very high up-front cost, but ultimately be very profitable.
2014-07-27 03:48:08 +02:00
minetest.register_craftitem(":technic:uranium_lump", {
description = S("Uranium Lump"),
inventory_image = "technic_uranium_lump.png",
2013-03-30 11:36:45 +01:00
on_place_on_ground = minetest.craftitem_place_item,
})
Uranium enrichment via centrifuge Replacing the extractor-based system, uranium to be used as reactor fuel must now be enriched in stages using the centrifuge. Uranium metal can exist at 36 levels of fissile content, from 0.0% to 3.5% in steps of 0.1%. One round of centrifuging splits two dust of a particular grade in to one dust each of the two neighbouring grades. Uranium of each grade can exist as dust, ingot, and block, with all the regular metal processes to convert between them. Uranium from ore exists in lump form, and is 0.7% fissle. The blocks are radioactive to a degree dependent on fissile content. Thus the chemical refinement and processing of uranium now follows the standard pattern for metals, and is orthogonal to isotopic enrichment. Each form of uranium (dust, ingot, block) intentionally looks identical regardless of fissile grade. If technic_worldgen is used alone, it defines only one grade of uranium (as before), but defines it in the regular metal pattern, with lump, ingot produced by cooking lump, and block crafted from ingots. It identifies the metal only as "uranium". The multiple grades of uranium are defined by the technic mod, which identifies each grade as "N.N%-fissile uranium". The single grade that was registered by technic_worldgen is redefined to be described specifically as "0.7%-fissile uranium". For the redefinition to work, technic_worldgen must load before technic, so technic now declares a dependency on technic_worldgen. Each fuel rod is made from five 3.5%-fissile ingots, each of which in turn requires one to start with five 0.7%-fissile dust, so each fuel rod is now derived from 12.5 uranium lumps (or 25 if the lumps were first cooked rather than being ground). This replaces the 20 lumps required by the former recipes. After setting up and priming the centrifuge cascade, enriching a full set of fuel for the reactor (six fuel rods) takes 14700 centrifuge operations. It's intended to be a practical necessity to automate the centrifuge. In the absence of EU upgrades for the centrifuges, these operations consume 5.88e8 EU, about 0.97% of the 6.048e10 EU that the fuel set will produce in the reactor. The intent is that, in this respect as in others, operating a reactor should carry a very high up-front cost, but ultimately be very profitable.
2014-07-27 03:48:08 +02:00
minetest.register_alias("technic:uranium", "technic:uranium_lump")
minetest.register_craftitem(":technic:uranium_ingot", {
description = S("Uranium Ingot"),
inventory_image = "technic_uranium_ingot.png",
on_place_on_ground = minetest.craftitem_place_item,
groups = {uranium_ingot=1},
})
2013-03-30 11:36:45 +01:00
2013-07-17 21:34:35 +02:00
minetest.register_craftitem(":technic:chromium_lump", {
2014-04-16 19:10:00 +02:00
description = S("Chromium Lump"),
2013-03-30 11:36:45 +01:00
inventory_image = "technic_chromium_lump.png",
on_place_on_ground = minetest.craftitem_place_item,
})
2013-07-17 21:34:35 +02:00
minetest.register_craftitem(":technic:chromium_ingot", {
2014-04-16 19:10:00 +02:00
description = S("Chromium Ingot"),
2013-03-30 11:36:45 +01:00
inventory_image = "technic_chromium_ingot.png",
on_place_on_ground = minetest.craftitem_place_item,
})
2013-07-17 21:34:35 +02:00
minetest.register_craftitem(":technic:zinc_lump", {
2014-04-16 19:10:00 +02:00
description = S("Zinc Lump"),
2013-03-30 11:36:45 +01:00
inventory_image = "technic_zinc_lump.png",
})
2013-07-17 21:34:35 +02:00
minetest.register_craftitem(":technic:zinc_ingot", {
2014-04-16 19:10:00 +02:00
description = S("Zinc Ingot"),
2013-03-30 11:36:45 +01:00
inventory_image = "technic_zinc_ingot.png",
})
2013-10-26 09:13:17 +02:00
minetest.register_craftitem(":technic:brass_ingot", {
2014-04-16 19:10:00 +02:00
description = S("Brass Ingot"),
2013-10-26 09:13:17 +02:00
inventory_image = "technic_brass_ingot.png",
})
minetest.register_alias("technic:wrought_iron_ingot", "default:steel_ingot")
minetest.override_item("default:steel_ingot", {
description = S("Wrought Iron Ingot"),
inventory_image = "technic_wrought_iron_ingot.png",
})
minetest.register_craftitem(":technic:cast_iron_ingot", {
description = S("Cast Iron Ingot"),
inventory_image = "technic_cast_iron_ingot.png",
})
minetest.register_craftitem(":technic:carbon_steel_ingot", {
description = S("Carbon Steel Ingot"),
inventory_image = "technic_carbon_steel_ingot.png",
})
2013-07-17 21:34:35 +02:00
minetest.register_craftitem(":technic:stainless_steel_ingot", {
2014-04-16 19:10:00 +02:00
description = S("Stainless Steel Ingot"),
2013-03-30 11:36:45 +01:00
inventory_image = "technic_stainless_steel_ingot.png",
})
2013-07-17 21:34:35 +02:00
local function register_block(block, ingot)
minetest.register_craft({
output = block,
recipe = {
{ingot, ingot, ingot},
{ingot, ingot, ingot},
{ingot, ingot, ingot},
}
})
minetest.register_craft({
output = ingot.." 9",
recipe = {
{block}
}
})
end
Uranium enrichment via centrifuge Replacing the extractor-based system, uranium to be used as reactor fuel must now be enriched in stages using the centrifuge. Uranium metal can exist at 36 levels of fissile content, from 0.0% to 3.5% in steps of 0.1%. One round of centrifuging splits two dust of a particular grade in to one dust each of the two neighbouring grades. Uranium of each grade can exist as dust, ingot, and block, with all the regular metal processes to convert between them. Uranium from ore exists in lump form, and is 0.7% fissle. The blocks are radioactive to a degree dependent on fissile content. Thus the chemical refinement and processing of uranium now follows the standard pattern for metals, and is orthogonal to isotopic enrichment. Each form of uranium (dust, ingot, block) intentionally looks identical regardless of fissile grade. If technic_worldgen is used alone, it defines only one grade of uranium (as before), but defines it in the regular metal pattern, with lump, ingot produced by cooking lump, and block crafted from ingots. It identifies the metal only as "uranium". The multiple grades of uranium are defined by the technic mod, which identifies each grade as "N.N%-fissile uranium". The single grade that was registered by technic_worldgen is redefined to be described specifically as "0.7%-fissile uranium". For the redefinition to work, technic_worldgen must load before technic, so technic now declares a dependency on technic_worldgen. Each fuel rod is made from five 3.5%-fissile ingots, each of which in turn requires one to start with five 0.7%-fissile dust, so each fuel rod is now derived from 12.5 uranium lumps (or 25 if the lumps were first cooked rather than being ground). This replaces the 20 lumps required by the former recipes. After setting up and priming the centrifuge cascade, enriching a full set of fuel for the reactor (six fuel rods) takes 14700 centrifuge operations. It's intended to be a practical necessity to automate the centrifuge. In the absence of EU upgrades for the centrifuges, these operations consume 5.88e8 EU, about 0.97% of the 6.048e10 EU that the fuel set will produce in the reactor. The intent is that, in this respect as in others, operating a reactor should carry a very high up-front cost, but ultimately be very profitable.
2014-07-27 03:48:08 +02:00
register_block("technic:uranium_block", "technic:uranium_ingot")
2013-07-17 21:34:35 +02:00
register_block("technic:chromium_block", "technic:chromium_ingot")
register_block("technic:zinc_block", "technic:zinc_ingot")
2013-10-26 09:13:17 +02:00
register_block("technic:brass_block", "technic:brass_ingot")
register_block("technic:cast_iron_block", "technic:cast_iron_ingot")
register_block("technic:carbon_steel_block", "technic:carbon_steel_ingot")
2013-07-17 21:34:35 +02:00
register_block("technic:stainless_steel_block", "technic:stainless_steel_ingot")
2013-06-27 04:13:44 +02:00
2013-03-30 11:36:45 +01:00
minetest.register_craft({
type = 'cooking',
2013-07-17 21:34:35 +02:00
recipe = "technic:zinc_lump",
2013-03-30 11:36:45 +01:00
output = "technic:zinc_ingot",
})
2013-06-27 04:13:44 +02:00
minetest.register_craft({
type = 'cooking',
2013-07-17 21:34:35 +02:00
recipe = "technic:chromium_lump",
2013-06-27 04:13:44 +02:00
output = "technic:chromium_ingot",
})
2013-07-17 21:34:35 +02:00
Uranium enrichment via centrifuge Replacing the extractor-based system, uranium to be used as reactor fuel must now be enriched in stages using the centrifuge. Uranium metal can exist at 36 levels of fissile content, from 0.0% to 3.5% in steps of 0.1%. One round of centrifuging splits two dust of a particular grade in to one dust each of the two neighbouring grades. Uranium of each grade can exist as dust, ingot, and block, with all the regular metal processes to convert between them. Uranium from ore exists in lump form, and is 0.7% fissle. The blocks are radioactive to a degree dependent on fissile content. Thus the chemical refinement and processing of uranium now follows the standard pattern for metals, and is orthogonal to isotopic enrichment. Each form of uranium (dust, ingot, block) intentionally looks identical regardless of fissile grade. If technic_worldgen is used alone, it defines only one grade of uranium (as before), but defines it in the regular metal pattern, with lump, ingot produced by cooking lump, and block crafted from ingots. It identifies the metal only as "uranium". The multiple grades of uranium are defined by the technic mod, which identifies each grade as "N.N%-fissile uranium". The single grade that was registered by technic_worldgen is redefined to be described specifically as "0.7%-fissile uranium". For the redefinition to work, technic_worldgen must load before technic, so technic now declares a dependency on technic_worldgen. Each fuel rod is made from five 3.5%-fissile ingots, each of which in turn requires one to start with five 0.7%-fissile dust, so each fuel rod is now derived from 12.5 uranium lumps (or 25 if the lumps were first cooked rather than being ground). This replaces the 20 lumps required by the former recipes. After setting up and priming the centrifuge cascade, enriching a full set of fuel for the reactor (six fuel rods) takes 14700 centrifuge operations. It's intended to be a practical necessity to automate the centrifuge. In the absence of EU upgrades for the centrifuges, these operations consume 5.88e8 EU, about 0.97% of the 6.048e10 EU that the fuel set will produce in the reactor. The intent is that, in this respect as in others, operating a reactor should carry a very high up-front cost, but ultimately be very profitable.
2014-07-27 03:48:08 +02:00
minetest.register_craft({
type = 'cooking',
recipe = "technic:uranium_lump",
output = "technic:uranium_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = minetest.registered_aliases["technic:wrought_iron_ingot"],
output = "technic:cast_iron_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = "technic:cast_iron_ingot",
cooktime = 2,
output = "technic:wrought_iron_ingot",
})
minetest.register_craft({
type = 'cooking',
recipe = "technic:carbon_steel_ingot",
cooktime = 2,
output = "technic:wrought_iron_ingot",
})
local function for_each_registered_item(action)
local already_reg = {}
for k, _ in pairs(minetest.registered_items) do
table.insert(already_reg, k)
end
local really_register_craftitem = minetest.register_craftitem
minetest.register_craftitem = function(name, def)
really_register_craftitem(name, def)
action(string.gsub(name, "^:", ""))
end
local really_register_tool = minetest.register_tool
minetest.register_tool = function(name, def)
really_register_tool(name, def)
action(string.gsub(name, "^:", ""))
end
local really_register_node = minetest.register_node
minetest.register_node = function(name, def)
really_register_node(name, def)
action(string.gsub(name, "^:", ""))
end
for _, name in ipairs(already_reg) do
action(name)
end
end
local steel_to_iron = {}
for _, i in ipairs({
"default:axe_steel",
"default:pick_steel",
"default:shovel_steel",
"default:sword_steel",
"doors:door_steel",
"farming:hoe_steel",
"glooptest:hammer_steel",
"glooptest:handsaw_steel",
"glooptest:reinforced_crystal_glass",
"mesecons_doors:op_door_steel",
"mesecons_doors:sig_door_steel",
"vessels:steel_bottle",
}) do
steel_to_iron[i] = true
end
for_each_registered_item(function(item_name)
local item_def = minetest.registered_items[item_name]
if steel_to_iron[item_name] and string.find(item_def.description, "Steel") then
minetest.override_item(item_name, { description = string.gsub(item_def.description, "Steel", S("Iron")) })
end
end)