diff options
21 files changed, 125 insertions, 18 deletions
diff --git a/technic/depends.txt b/technic/depends.txt index eec4a14..c2671c5 100644 --- a/technic/depends.txt +++ b/technic/depends.txt @@ -1,5 +1,6 @@ default pipeworks +technic_worldgen bucket? mesecons_mvps? intllib? diff --git a/technic/items.lua b/technic/items.lua index a902947..b974b95 100644 --- a/technic/items.lua +++ b/technic/items.lua @@ -11,11 +11,6 @@ minetest.register_craftitem( "technic:doped_silicon_wafer", { inventory_image = "technic_doped_silicon_wafer.png", }) -minetest.register_craftitem("technic:enriched_uranium", { - description = S("Enriched Uranium"), - inventory_image = "technic_enriched_uranium.png", -}) - minetest.register_craftitem("technic:uranium_fuel", { description = S("Uranium Fuel"), inventory_image = "technic_uranium_fuel.png", @@ -163,3 +158,37 @@ minetest.register_node("technic:machine_casing", { tiles = {"technic_machine_casing.png"}, sounds = default.node_sound_stone_defaults(), }) + +for p = 0, 35 do + local nici = (p ~= 0 and p ~= 7 and p ~= 35) and 1 or nil + local psuffix = p == 7 and "" or p + local ingot = "technic:uranium"..psuffix.."_ingot" + local block = "technic:uranium"..psuffix.."_block" + local ov = p == 7 and minetest.override_item or nil; + (ov or minetest.register_craftitem)(ingot, { + description = string.format(S("%.1f%%-Fissile Uranium Ingot"), p/10), + inventory_image = "technic_uranium_ingot.png", + groups = {uranium_ingot=1, not_in_creative_inventory=nici}, + }); + (ov or minetest.register_node)(block, { + description = string.format(S("%.1f%%-Fissile Uranium Block"), p/10), + tiles = {"technic_uranium_block.png"}, + is_ground_content = true, + groups = {uranium_block=1, not_in_creative_inventory=nici, cracky=1, level=2, radioactive=math.floor(math.sqrt(p) + 0.5)}, + sounds = default.node_sound_stone_defaults(), + }); + if not ov then + minetest.register_craft({ + output = block, + recipe = { + {ingot, ingot, ingot}, + {ingot, ingot, ingot}, + {ingot, ingot, ingot}, + }, + }) + minetest.register_craft({ + output = ingot.." 9", + recipe = {{block}}, + }) + end +end diff --git a/technic/legacy.lua b/technic/legacy.lua index c835937..8360a71 100644 --- a/technic/legacy.lua +++ b/technic/legacy.lua @@ -29,6 +29,7 @@ technic.legacy_nodenames = { ["technic:generator"] = "technic:lv_generator", ["technic:generator_active"] = "technic:lv_generator_active", ["technic:iron_dust"] = "technic:wrought_iron_dust", + ["technic:enriched_uranium"] = "technic:uranium35_ingot", } for old, new in pairs(technic.legacy_nodenames) do diff --git a/technic/locale/de.txt b/technic/locale/de.txt index 984296b..1a1e82a 100644 --- a/technic/locale/de.txt +++ b/technic/locale/de.txt @@ -29,6 +29,8 @@ Graphite = Graphit Carbon Cloth = Kohlefasergewebe Raw Latex = Rohlatex Rubber Fiber = Gummifaser +%.1f%%-Fissile Uranium Ingot = +%.1f%%-Fissile Uranium Block = ## Machine misc Machine cannot be removed because it is not empty = Die Maschine kann nicht entfernt werden, weil sie noch nicht leer ist. @@ -162,6 +164,7 @@ Talinite = Talinite Tin = Zinn Wrought Iron = Schmiedeeisen Zinc = Zink +%.1f%%-Fissile Uranium = ## Tools RE Battery = Akkubatterie diff --git a/technic/locale/es.txt b/technic/locale/es.txt index 2323abc..9d58ebd 100644 --- a/technic/locale/es.txt +++ b/technic/locale/es.txt @@ -29,6 +29,8 @@ Graphite = Grafito Carbon Cloth = Tela de Carbon Raw Latex = Latex Crudo Rubber Fiber = Fibra de Hule +%.1f%%-Fissile Uranium Ingot = +%.1f%%-Fissile Uranium Block = ## Machine misc Machine cannot be removed because it is not empty = La maquina no puede removerse porque no esta vacia @@ -152,6 +154,7 @@ Talinite = Talinita Tin = Estanio Wrought Iron = Hierro Forjado Zinc = Zinc +%.1f%%-Fissile Uranium = ## Tools RE Battery = diff --git a/technic/locale/it.txt b/technic/locale/it.txt index 70da24e..234a858 100644 --- a/technic/locale/it.txt +++ b/technic/locale/it.txt @@ -26,6 +26,8 @@ Graphite = Lastra in graffite Carbon Cloth = Fibra di carbonio Raw Latex = Latex grezzo Rubber Fiber = Fibra di gomma +%.1f%%-Fissile Uranium Ingot = +%.1f%%-Fissile Uranium Block = ## Machine misc Machine cannot be removed because it is not empty = La macchina non può essere rimossa perchè non è vuota @@ -159,6 +161,7 @@ Talinite = Talinite Tin = Stagno Wrought Iron = Ferro Battuto Zinc = Zinco +%.1f%%-Fissile Uranium = ## Tools RE Battery = diff --git a/technic/locale/template.txt b/technic/locale/template.txt index 3d18f3b..0d47974 100644 --- a/technic/locale/template.txt +++ b/technic/locale/template.txt @@ -29,6 +29,8 @@ Graphite = Carbon Cloth = Raw Latex = Rubber Fiber = +%.1f%%-Fissile Uranium Ingot = +%.1f%%-Fissile Uranium Block = ## Machine misc Machine cannot be removed because it is not empty = @@ -167,6 +169,7 @@ Talinite = Tin = Wrought Iron = Zinc = +%.1f%%-Fissile Uranium = ## Tools RE Battery = diff --git a/technic/machines/HV/nuclear_reactor.lua b/technic/machines/HV/nuclear_reactor.lua index e5d7a1b..c4587bb 100644 --- a/technic/machines/HV/nuclear_reactor.lua +++ b/technic/machines/HV/nuclear_reactor.lua @@ -493,7 +493,6 @@ local default_radiation_resistance_per_node = { ["technic:mineral_uranium"] = 71, ["technic:mineral_zinc"] = 19, ["technic:stainless_steel_block"] = 40, - ["technic:uranium_block"] = 500, ["technic:zinc_block"] = 36, ["tnt:tnt"] = 11, ["tnt:tnt_burning"] = 11, @@ -501,6 +500,7 @@ local default_radiation_resistance_per_node = { local default_radiation_resistance_per_group = { concrete = 16, tree = 3.4, + uranium_block = 500, wood = 1.7, } local cache_radiation_resistance = {} diff --git a/technic/machines/register/centrifuge_recipes.lua b/technic/machines/register/centrifuge_recipes.lua index 0f33c66..7f252b6 100644 --- a/technic/machines/register/centrifuge_recipes.lua +++ b/technic/machines/register/centrifuge_recipes.lua @@ -20,6 +20,21 @@ local recipes = { { "moretrees:rubber_tree_trunk", rubber_tree_planks.." 4", "technic:raw_latex" }, } +-- Refining uranium via centrifuge is intended to make it a practical +-- necessity to set up an automated cascade of centrifuges. Once the +-- cascade has been primed, production of one 3.5%-fissile dust requires +-- input of five 0.7%-fissile dust and 490 centrifuge operations, and +-- produces four 0.0%-fissile dust as a byproduct. The busiest stage +-- of the cascade is the one taking 0.7%-fissile dust, which performs 28 +-- of the 490 operations. The least busy is the one taking 3.4%-fissile +-- dust, which performs 1 of the 490 operations. +local function uranium_dust(p) + return "technic:uranium"..(p == 7 and "" or p).."_dust" +end +for p = 1, 34 do + table.insert(recipes, { uranium_dust(p).." 2", uranium_dust(p-1), uranium_dust(p+1) }) +end + if minetest.get_modpath("bushes_classic") then for _, berry in ipairs({ "blackberry", "blueberry", "gooseberry", "raspberry", "strawberry" }) do table.insert(recipes, { "bushes:"..berry.."_bush", "default:stick 20", "bushes:"..berry.." 4" }) diff --git a/technic/machines/register/compressor_recipes.lua b/technic/machines/register/compressor_recipes.lua index 5c5fe91..4fba03b 100644 --- a/technic/machines/register/compressor_recipes.lua +++ b/technic/machines/register/compressor_recipes.lua @@ -15,7 +15,7 @@ local recipes = { {"default:copper_ingot 5", "technic:copper_plate"}, {"technic:coal_dust 4", "technic:graphite"}, {"technic:carbon_cloth", "technic:carbon_plate"}, - {"technic:enriched_uranium 4", "technic:uranium_fuel"}, + {"technic:uranium35_ingot 5", "technic:uranium_fuel"}, } for _, data in pairs(recipes) do diff --git a/technic/machines/register/extractor_recipes.lua b/technic/machines/register/extractor_recipes.lua index 41cf56d..f752144 100644 --- a/technic/machines/register/extractor_recipes.lua +++ b/technic/machines/register/extractor_recipes.lua @@ -24,9 +24,6 @@ local recipes = { {"technic:raw_latex", "technic:rubber 3"}, {"moretrees:rubber_tree_trunk_empty", "technic:rubber"}, {"moretrees:rubber_tree_trunk", "technic:rubber"}, - - -- Other - {"technic:uranium 5", "technic:enriched_uranium"}, } for _, data in pairs(recipes) do diff --git a/technic/machines/register/grinder_recipes.lua b/technic/machines/register/grinder_recipes.lua index df69665..6ab19e7 100644 --- a/technic/machines/register/grinder_recipes.lua +++ b/technic/machines/register/grinder_recipes.lua @@ -16,6 +16,7 @@ local recipes = { {"default:gold_lump", "technic:gold_dust 2"}, {"default:iron_lump", "technic:wrought_iron_dust 2"}, {"technic:chromium_lump", "technic:chromium_dust 2"}, + {"technic:uranium_lump", "technic:uranium_dust 2"}, {"technic:zinc_lump", "technic:zinc_dust 2"}, -- Other @@ -87,6 +88,41 @@ if minetest.get_modpath("gloopores") or minetest.get_modpath("glooptest") then register_dust("Talinite", "glooptest:talinite_ingot") end +for p = 0, 35 do + local nici = (p ~= 0 and p ~= 7 and p ~= 35) and 1 or nil + local psuffix = p == 7 and "" or p + local ingot = "technic:uranium"..psuffix.."_ingot" + local dust = "technic:uranium"..psuffix.."_dust" + minetest.register_craftitem(dust, { + description = S("%s Dust"):format(string.format(S("%.1f%%-Fissile Uranium"), p/10)), + inventory_image = "technic_uranium_dust.png", + on_place_on_ground = minetest.craftitem_place_item, + groups = {uranium_dust=1, not_in_creative_inventory=nici}, + }) + minetest.register_craft({ + type = "cooking", + recipe = dust, + output = ingot, + }) + technic.register_grinder_recipe({ input = {ingot}, output = dust }) +end + +local function uranium_dust(p) + return "technic:uranium"..(p == 7 and "" or p).."_dust" +end +for pa = 0, 34 do + for pb = pa+1, 35 do + local pc = (pa+pb)/2 + if pc == math.floor(pc) then + minetest.register_craft({ + type = "shapeless", + recipe = { uranium_dust(pa), uranium_dust(pb) }, + output = uranium_dust(pc).." 2", + }) + end + end +end + minetest.register_craft({ type = "fuel", recipe = "technic:coal_dust", diff --git a/technic/textures/technic_enriched_uranium.png b/technic/textures/technic_enriched_uranium.png Binary files differdeleted file mode 100644 index 8759e65..0000000 --- a/technic/textures/technic_enriched_uranium.png +++ /dev/null diff --git a/technic/textures/technic_uranium_dust.png b/technic/textures/technic_uranium_dust.png Binary files differnew file mode 100644 index 0000000..9c211dc --- /dev/null +++ b/technic/textures/technic_uranium_dust.png diff --git a/technic/textures/technicx32/technic_uranium_dust.png b/technic/textures/technicx32/technic_uranium_dust.png Binary files differnew file mode 100644 index 0000000..d8095c3 --- /dev/null +++ b/technic/textures/technicx32/technic_uranium_dust.png diff --git a/technic_worldgen/crafts.lua b/technic_worldgen/crafts.lua index 759d8ed..3965258 100644 --- a/technic_worldgen/crafts.lua +++ b/technic_worldgen/crafts.lua @@ -1,11 +1,19 @@ local S = technic.worldgen.gettext -minetest.register_craftitem(":technic:uranium", { - description = S("Uranium"), - inventory_image = "technic_uranium.png", +minetest.register_craftitem(":technic:uranium_lump", { + description = S("Uranium Lump"), + inventory_image = "technic_uranium_lump.png", on_place_on_ground = minetest.craftitem_place_item, }) +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}, +}) minetest.register_craftitem(":technic:chromium_lump", { description = S("Chromium Lump"), @@ -74,7 +82,7 @@ local function register_block(block, ingot) }) end -register_block("technic:uranium_block", "technic:uranium") +register_block("technic:uranium_block", "technic:uranium_ingot") register_block("technic:chromium_block", "technic:chromium_ingot") register_block("technic:zinc_block", "technic:zinc_ingot") register_block("technic:brass_block", "technic:brass_ingot") @@ -96,6 +104,12 @@ minetest.register_craft({ 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", }) diff --git a/technic_worldgen/locale/de.txt b/technic_worldgen/locale/de.txt index 1dacb41..401c94c 100644 --- a/technic_worldgen/locale/de.txt +++ b/technic_worldgen/locale/de.txt @@ -3,7 +3,8 @@ # by Xanthin ## crafts.lua -Uranium = Uran +Uranium Lump = Uranklumpen +Uranium Ingot = Uranbarren Chromium Lump = Chromklumpen Chromium Ingot = Chrombarren Zinc Lump = Zinkklumpen diff --git a/technic_worldgen/locale/template.txt b/technic_worldgen/locale/template.txt index a4a6e4d..594e0ce 100644 --- a/technic_worldgen/locale/template.txt +++ b/technic_worldgen/locale/template.txt @@ -2,7 +2,8 @@ # technic_worldgen translation template ###crafts.lua -Uranium = +Uranium Lump = +Uranium Ingot = Chromium Lump = Chromium Ingot = Zinc Lump = diff --git a/technic_worldgen/nodes.lua b/technic_worldgen/nodes.lua index 29ea5fb..20cf159 100644 --- a/technic_worldgen/nodes.lua +++ b/technic_worldgen/nodes.lua @@ -7,7 +7,7 @@ minetest.register_node( ":technic:mineral_uranium", { is_ground_content = true, groups = {cracky=3, radioactive=1}, sounds = default.node_sound_stone_defaults(), - drop = 'craft "technic:uranium" 1', + drop = 'craft "technic:uranium_lump" 1', }) minetest.register_node( ":technic:mineral_chromium", { @@ -56,7 +56,7 @@ 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}, + groups = {uranium_block=1, cracky=1, level=2, radioactive=3}, sounds = default.node_sound_stone_defaults() }) diff --git a/technic_worldgen/textures/technic_uranium_ingot.png b/technic_worldgen/textures/technic_uranium_ingot.png Binary files differnew file mode 100644 index 0000000..38978f8 --- /dev/null +++ b/technic_worldgen/textures/technic_uranium_ingot.png diff --git a/technic_worldgen/textures/technic_uranium.png b/technic_worldgen/textures/technic_uranium_lump.png Binary files differindex 2f5a66c..2f5a66c 100644 --- a/technic_worldgen/textures/technic_uranium.png +++ b/technic_worldgen/textures/technic_uranium_lump.png |