forked from minetest-mods/technic
ec008d7045
Radiation is attenuated exponentially by passing through shielding material. Radiation resistance values are assigned to all bulk-material nodes, and the radiation damage ABM traces the path of each radiation ray to count up the shielding. The relative radiation resistance values are essentially real, but the effectiveness of all shielding is scaled down by a factor of about 70 for game purposes. Strength of the existing radiation sources is increased by varying amounts to compensate for shielding. Uranium block and ore, both usable as shielding, are made slightly radioactive, the latter only very slightly.
164 lines
4.9 KiB
Lua
164 lines
4.9 KiB
Lua
|
|
local S = technic.worldgen.gettext
|
|
|
|
minetest.register_node( ":technic:mineral_uranium", {
|
|
description = S("Uranium Ore"),
|
|
tiles = { "default_stone.png^technic_mineral_uranium.png" },
|
|
is_ground_content = true,
|
|
groups = {cracky=3, radioactive=1},
|
|
sounds = default.node_sound_stone_defaults(),
|
|
drop = 'craft "technic:uranium" 1',
|
|
})
|
|
|
|
minetest.register_node( ":technic:mineral_chromium", {
|
|
description = S("Chromium Ore"),
|
|
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", {
|
|
description = S("Zinc Ore"),
|
|
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", {
|
|
description = S("Granite"),
|
|
tiles = { "technic_granite.png" },
|
|
is_ground_content = true,
|
|
groups = {cracky=3},
|
|
sounds = default.node_sound_stone_defaults(),
|
|
})
|
|
|
|
minetest.register_node( ":technic:marble", {
|
|
description = S("Marble"),
|
|
tiles = { "technic_marble.png" },
|
|
is_ground_content = true,
|
|
groups = {cracky=3},
|
|
sounds = default.node_sound_stone_defaults(),
|
|
})
|
|
|
|
minetest.register_node( ":technic:marble_bricks", {
|
|
description = S("Marble Bricks"),
|
|
tiles = { "technic_marble_bricks.png" },
|
|
is_ground_content = true,
|
|
groups = {cracky=3},
|
|
sounds = default.node_sound_stone_defaults(),
|
|
})
|
|
|
|
minetest.register_node(":technic:uranium_block", {
|
|
description = S("Uranium Block"),
|
|
tiles = { "technic_uranium_block.png" },
|
|
is_ground_content = true,
|
|
groups = {cracky=1, level=2, radioactive=3},
|
|
sounds = default.node_sound_stone_defaults()
|
|
})
|
|
|
|
minetest.register_node(":technic:chromium_block", {
|
|
description = S("Chromium Block"),
|
|
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", {
|
|
description = S("Zinc Block"),
|
|
tiles = { "technic_zinc_block.png" },
|
|
is_ground_content = true,
|
|
groups = {cracky=1, level=2},
|
|
sounds = default.node_sound_stone_defaults()
|
|
})
|
|
|
|
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()
|
|
})
|
|
|
|
minetest.register_node(":technic:stainless_steel_block", {
|
|
description = S("Stainless Steel Block"),
|
|
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", {
|
|
description = S("Brass Block"),
|
|
tiles = { "technic_brass_block.png" },
|
|
is_ground_content = true,
|
|
groups = {cracky=1, level=2},
|
|
sounds = default.node_sound_stone_defaults()
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = 'technic:marble_bricks 4',
|
|
recipe = {
|
|
{'technic:marble','technic:marble'},
|
|
{'technic:marble','technic:marble'}
|
|
}
|
|
})
|
|
|
|
minetest.register_alias("technic:diamond_block", "default:diamondblock")
|
|
minetest.register_alias("technic:diamond", "default:diamond")
|
|
minetest.register_alias("technic:mineral_diamond", "default:stone_with_diamond")
|
|
|
|
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)
|