2014-04-16 19:10:00 +02:00
|
|
|
|
|
|
|
local S = technic.worldgen.gettext
|
|
|
|
|
2013-03-30 11:36:45 +01:00
|
|
|
minetest.register_node( ":technic:mineral_uranium", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Uranium Ore"),
|
2013-03-30 11:36:45 +01:00
|
|
|
tiles = { "default_stone.png^technic_mineral_uranium.png" },
|
|
|
|
is_ground_content = true,
|
2014-07-25 04:26:43 +02:00
|
|
|
groups = {cracky=3, radioactive=1},
|
2013-03-30 11:36:45 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
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
|
|
|
drop = 'craft "technic:uranium_lump" 1',
|
2013-03-30 11:36:45 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node( ":technic:mineral_chromium", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Chromium Ore"),
|
2013-03-30 11:36:45 +01:00
|
|
|
tiles = { "default_stone.png^technic_mineral_chromium.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=3},
|
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
drop = 'craft "technic:chromium_lump" 1',
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node( ":technic:mineral_zinc", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Zinc Ore"),
|
2013-03-30 11:36:45 +01:00
|
|
|
tile_images = { "default_stone.png^technic_mineral_zinc.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=3},
|
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
drop = 'craft "technic:zinc_lump" 1',
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node( ":technic:granite", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Granite"),
|
2013-03-30 11:36:45 +01:00
|
|
|
tiles = { "technic_granite.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=3},
|
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node( ":technic:marble", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Marble"),
|
2013-03-30 11:36:45 +01:00
|
|
|
tiles = { "technic_marble.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=3},
|
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node( ":technic:marble_bricks", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Marble Bricks"),
|
2013-03-30 11:36:45 +01:00
|
|
|
tiles = { "technic_marble_bricks.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=3},
|
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
})
|
|
|
|
|
2013-06-27 04:13:44 +02:00
|
|
|
minetest.register_node(":technic:uranium_block", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Uranium Block"),
|
2013-06-27 04:13:44 +02:00
|
|
|
tiles = { "technic_uranium_block.png" },
|
|
|
|
is_ground_content = true,
|
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
|
|
|
groups = {uranium_block=1, cracky=1, level=2, radioactive=3},
|
2013-06-27 04:13:44 +02:00
|
|
|
sounds = default.node_sound_stone_defaults()
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node(":technic:chromium_block", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Chromium Block"),
|
2013-06-27 04:13:44 +02:00
|
|
|
tiles = { "technic_chromium_block.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=1, level=2},
|
|
|
|
sounds = default.node_sound_stone_defaults()
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node(":technic:zinc_block", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Zinc Block"),
|
2013-06-27 04:13:44 +02:00
|
|
|
tiles = { "technic_zinc_block.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=1, level=2},
|
|
|
|
sounds = default.node_sound_stone_defaults()
|
|
|
|
})
|
|
|
|
|
split default iron/steel into three metals
Override the default mod's iron/steel substance, replacing it with three
metals: wrought iron (pure iron), carbon steel (iron alloyed with a little
carbon), and cast iron (iron alloyed with lots of carbon). Wrought iron
is easiest to refine, then cast iron, and carbon steel the most difficult,
matching the historical progression. Recipes that used default steel are
changed to use one of the three, the choice of alloy for each application
being both somewhat realistic and also matching up with game progression.
The default:steel{_ingot,block} items are identified specifically with
wrought iron. This makes the default refining recipes work appropriately.
Iron-using recipes defined outside technic are thus necessarily
reinterpreted to use wrought iron, which is mostly appropriate.
Some objects are renamed accordingly.
Rather than use the default steel textures for wrought iron, with technic
providing textures for the other two, technic now provides textures for
all three metals. This avoids problems that would occur with texture
packs that provide default_steel_{ingot,block} textures that are not
intended to support this wrought-iron/carbon-steel/cast-iron distinction.
A texture pack can provide a distinct set of three textures specifically
for the situation where this distinction is required.
Incidentally make grinding and alloy cooking recipes work correctly when
ingredients are specified by alias.
2014-05-16 23:02:49 +02:00
|
|
|
minetest.register_alias("technic:wrought_iron_block", "default:steelblock")
|
|
|
|
|
|
|
|
minetest.override_item("default:steelblock", {
|
|
|
|
description = S("Wrought Iron Block"),
|
|
|
|
tiles = { "technic_wrought_iron_block.png" },
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node(":technic:cast_iron_block", {
|
|
|
|
description = S("Cast Iron Block"),
|
|
|
|
tiles = { "technic_cast_iron_block.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=1, level=2},
|
|
|
|
sounds = default.node_sound_stone_defaults()
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node(":technic:carbon_steel_block", {
|
|
|
|
description = S("Carbon Steel Block"),
|
|
|
|
tiles = { "technic_carbon_steel_block.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=1, level=2},
|
|
|
|
sounds = default.node_sound_stone_defaults()
|
|
|
|
})
|
|
|
|
|
2013-06-27 04:13:44 +02:00
|
|
|
minetest.register_node(":technic:stainless_steel_block", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Stainless Steel Block"),
|
2013-06-27 04:13:44 +02:00
|
|
|
tiles = { "technic_stainless_steel_block.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=1, level=2},
|
|
|
|
sounds = default.node_sound_stone_defaults()
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node(":technic:brass_block", {
|
2014-04-16 19:10:00 +02:00
|
|
|
description = S("Brass Block"),
|
2013-06-27 04:13:44 +02:00
|
|
|
tiles = { "technic_brass_block.png" },
|
|
|
|
is_ground_content = true,
|
|
|
|
groups = {cracky=1, level=2},
|
|
|
|
sounds = default.node_sound_stone_defaults()
|
|
|
|
})
|
|
|
|
|
2013-03-30 11:36:45 +01:00
|
|
|
minetest.register_craft({
|
|
|
|
output = 'technic:marble_bricks 4',
|
|
|
|
recipe = {
|
|
|
|
{'technic:marble','technic:marble'},
|
|
|
|
{'technic:marble','technic:marble'}
|
|
|
|
}
|
|
|
|
})
|
2013-04-15 04:24:55 +02:00
|
|
|
|
|
|
|
minetest.register_alias("technic:diamond_block", "default:diamondblock")
|
2014-04-21 21:24:01 +02:00
|
|
|
minetest.register_alias("technic:diamond", "default:diamond")
|
|
|
|
minetest.register_alias("technic:mineral_diamond", "default:stone_with_diamond")
|
2014-04-16 19:10:00 +02:00
|
|
|
|
split default iron/steel into three metals
Override the default mod's iron/steel substance, replacing it with three
metals: wrought iron (pure iron), carbon steel (iron alloyed with a little
carbon), and cast iron (iron alloyed with lots of carbon). Wrought iron
is easiest to refine, then cast iron, and carbon steel the most difficult,
matching the historical progression. Recipes that used default steel are
changed to use one of the three, the choice of alloy for each application
being both somewhat realistic and also matching up with game progression.
The default:steel{_ingot,block} items are identified specifically with
wrought iron. This makes the default refining recipes work appropriately.
Iron-using recipes defined outside technic are thus necessarily
reinterpreted to use wrought iron, which is mostly appropriate.
Some objects are renamed accordingly.
Rather than use the default steel textures for wrought iron, with technic
providing textures for the other two, technic now provides textures for
all three metals. This avoids problems that would occur with texture
packs that provide default_steel_{ingot,block} textures that are not
intended to support this wrought-iron/carbon-steel/cast-iron distinction.
A texture pack can provide a distinct set of three textures specifically
for the situation where this distinction is required.
Incidentally make grinding and alloy cooking recipes work correctly when
ingredients are specified by alias.
2014-05-16 23:02:49 +02:00
|
|
|
local function for_each_registered_node(action)
|
|
|
|
local already_reg = {}
|
|
|
|
for k, _ in pairs(minetest.registered_nodes) do
|
|
|
|
table.insert(already_reg, k)
|
|
|
|
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
|
|
|
|
|
|
|
|
for_each_registered_node(function(node_name)
|
|
|
|
local node_def = minetest.registered_nodes[node_name]
|
|
|
|
if node_name ~= "default:steelblock" and string.find(node_name, "steelblock") and string.find(node_def.description, "Steel") then
|
|
|
|
minetest.override_item(node_name, { description = string.gsub(node_def.description, "Steel", S("Wrought Iron")) })
|
|
|
|
end
|
|
|
|
if node_def.tiles or node_def.tile_images then
|
|
|
|
local tn = node_def.tiles and "tiles" or "tile_images"
|
|
|
|
local tl = {}
|
|
|
|
local ca = false
|
|
|
|
for i, t in ipairs(node_def[tn]) do
|
|
|
|
if type(t) == "string" and t == "default_steel_block.png" then
|
|
|
|
ca = true
|
|
|
|
t = "technic_wrought_iron_block.png"
|
|
|
|
end
|
|
|
|
table.insert(tl, t)
|
|
|
|
end
|
|
|
|
if ca then minetest.override_item(node_name, { [tn] = tl }) end
|
|
|
|
end
|
|
|
|
end)
|