From b2a124dd8308e067869e0992a73b4b88df97ab64 Mon Sep 17 00:00:00 2001 From: BobFred7 <57379622+BobFred7@users.noreply.github.com> Date: Fri, 01 May 2020 21:24:12 +0200 Subject: [PATCH] Deal with lava cans wasting lava (#532) --- technic/items.lua | 344 +++++++++++++++++++++++++++------------------------------ 1 files changed, 163 insertions(+), 181 deletions(-) diff --git a/technic/items.lua b/technic/items.lua index 6532e00..cf57229 100644 --- a/technic/items.lua +++ b/technic/items.lua @@ -1,221 +1,203 @@ -minetest.register_craftitem( "technic:silicon_wafer", { - description = "Silicon Wafer", + +local S = technic.getter + +minetest.register_craftitem("technic:silicon_wafer", { + description = S("Silicon Wafer"), inventory_image = "technic_silicon_wafer.png", - on_place_on_ground = minetest.craftitem_place_item, }) minetest.register_craftitem( "technic:doped_silicon_wafer", { - description = "Doped Silicon Wafer", + description = S("Doped Silicon Wafer"), inventory_image = "technic_doped_silicon_wafer.png", - on_place_on_ground = minetest.craftitem_place_item, }) --- tubes crafting recipes - -minetest.register_craft({ - output = 'pipeworks:tube_000000 9', - recipe = { - {'technic:stainless_steel_ingot', 'default:glass', 'technic:stainless_steel_ingot'}, - {'technic:stainless_steel_ingot', 'default:glass', 'technic:stainless_steel_ingot'}, - {'technic:stainless_steel_ingot', 'default:glass', 'technic:stainless_steel_ingot'}, - } -}) -minetest.register_craft({ - output = 'pipeworks:mese_tube_000000', - recipe = { - {'default:mese_crystal_fragment', 'pipeworks:tube_000000', 'default:mese_crystal_fragment'}, - } -}) - -minetest.register_craft({ - output = 'pipeworks:accelerator_tube_000000', - recipe = { - {'technic:copper_coil', 'pipeworks:tube_000000', 'technic:copper_coil'}, - } -}) - -minetest.register_craft({ - output = 'pipeworks:detector_tube_off_000000', - recipe = { - {'mesecons:mesecon', 'pipeworks:tube_000000', 'mesecons:mesecon'}, - } -}) - -minetest.register_craft({ - output = 'pipeworks:sand_tube_000000', - recipe = { - {'default:sand', 'pipeworks:tube_000000', 'default:sand'}, - } -}) - -minetest.register_craft({ - output = 'pipeworks:teleport_tube_000000', - recipe = { - {'default:mese_crystal', 'technic:copper_coil', 'default:mese_crystal'}, - {'pipeworks:tube_000000', 'technic:control_logic_unit', 'pipeworks:tube_000000'}, - {'default:mese_crystal', 'technic:copper_coil', 'default:mese_crystal'}, - } +minetest.register_craftitem("technic:uranium_fuel", { + description = S("Uranium Fuel"), + inventory_image = "technic_uranium_fuel.png", }) minetest.register_craftitem( "technic:diamond_drill_head", { - description = "Diamond Drill Head", + description = S("Diamond Drill Head"), inventory_image = "technic_diamond_drill_head.png", - on_place_on_ground = minetest.craftitem_place_item, }) -minetest.register_craft({ - output = 'technic:diamond_drill_head', - recipe = { - {'technic:stainless_steel_ingot', 'default:diamond', 'technic:stainless_steel_ingot'}, - {'default:diamond', '', 'default:diamond'}, - {'technic:stainless_steel_ingot', 'default:diamond', 'technic:stainless_steel_ingot'}, +minetest.register_tool("technic:blue_energy_crystal", { + description = S("Blue Energy Crystal"), + inventory_image = minetest.inventorycube( + "technic_diamond_block_blue.png", + "technic_diamond_block_blue.png", + "technic_diamond_block_blue.png"), + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + tool_capabilities = { + max_drop_level = 0, + groupcaps = { + fleshy = {times={}, uses=10000, maxlevel=0} + } } }) -minetest.register_craft({ - output = 'technic:green_energy_crystal', - recipe = { - {'default:gold_ingot', 'technic:battery', 'dye:green'}, - {'technic:battery', 'technic:red_energy_crystal', 'technic:battery'}, - {'dye:green', 'technic:battery', 'default:gold_ingot'}, +minetest.register_tool("technic:green_energy_crystal", { + description = S("Green Energy Crystal"), + inventory_image = minetest.inventorycube( + "technic_diamond_block_green.png", + "technic_diamond_block_green.png", + "technic_diamond_block_green.png"), + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + tool_capabilities = { + max_drop_level = 0, + groupcaps = { + fleshy = {times={}, uses=10000, maxlevel=0} + } } }) -minetest.register_craft({ - output = 'technic:blue_energy_crystal', - recipe = { - {'default:gold_ingot', 'technic:battery', 'dye:blue'}, - {'technic:battery', 'technic:green_energy_crystal', 'technic:battery'}, - {'dye:blue', 'technic:battery', 'default:gold_ingot'}, +minetest.register_tool("technic:red_energy_crystal", { + description = S("Red Energy Crystal"), + inventory_image = minetest.inventorycube( + "technic_diamond_block_red.png", + "technic_diamond_block_red.png", + "technic_diamond_block_red.png"), + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + tool_capabilities = { + max_drop_level = 0, + groupcaps = { + fleshy = {times={}, uses=10000, maxlevel=0} + } } }) -minetest.register_craft({ - output = 'technic:red_energy_crystal', - recipe = { - {'default:gold_ingot', 'technic:battery', 'dye:red'}, - {'technic:battery', 'default:diamondblock', 'technic:battery'}, - {'dye:red', 'technic:battery', 'default:gold_ingot'}, - } -}) - -minetest.register_tool("technic:blue_energy_crystal", -{description = "Blue Energy Crystal", -inventory_image = minetest.inventorycube("technic_diamond_block_blue.png", "technic_diamond_block_blue.png", "technic_diamond_block_blue.png"), -tool_capabilities = {load=0,max_drop_level=0, groupcaps={fleshy={times={}, uses=10000, maxlevel=0}}}}) - -minetest.register_tool("technic:green_energy_crystal", -{description = "Green Energy Crystal", -inventory_image = minetest.inventorycube("technic_diamond_block_green.png", "technic_diamond_block_green.png", "technic_diamond_block_green.png"), -tool_capabilities = {load=0,max_drop_level=0, groupcaps={fleshy={times={}, uses=10000, maxlevel=0}}}}) - -minetest.register_tool("technic:red_energy_crystal", -{description = "Red Energy Crystal", -inventory_image = minetest.inventorycube("technic_diamond_block_red.png", "technic_diamond_block_red.png", "technic_diamond_block_red.png"), -tool_capabilities = {load=0,max_drop_level=0, groupcaps={fleshy={times={}, uses=10000, maxlevel=0}}}}) - - -minetest.register_craftitem( "technic:fine_copper_wire", { - description = "Fine Copper Wire", - inventory_image = "technic_fine_copper_wire.png", - on_place_on_ground = minetest.craftitem_place_item, -}) - -minetest.register_craft({ - output = 'technic:fine_copper_wire 2', - recipe = { - {'', 'default:copper_ingot', ''}, - {'', 'default:copper_ingot', ''}, - {'', 'default:copper_ingot', ''}, - } -}) - -minetest.register_craftitem( "technic:copper_coil", { - description = "Copper Coil", +minetest.register_craftitem("technic:copper_coil", { + description = S("Copper Coil"), inventory_image = "technic_copper_coil.png", - on_place_on_ground = minetest.craftitem_place_item, }) -minetest.register_craft({ - output = 'technic:copper_coil 1', - recipe = { - {'technic:fine_copper_wire', 'default:steel_ingot', 'technic:fine_copper_wire'}, - {'default:steel_ingot', '', 'default:steel_ingot'}, - {'technic:fine_copper_wire', 'default:steel_ingot', 'technic:fine_copper_wire'}, - } -}) - -minetest.register_craftitem( "technic:motor", { - description = "Electric Motor", - inventory_image = "technic_motor.png", - on_place_on_ground = minetest.craftitem_place_item, -}) - -minetest.register_craft({ - output = 'technic:motor', - recipe = { - {'default:steel_ingot', 'technic:copper_coil', 'default:steel_ingot'}, - {'default:steel_ingot', 'technic:copper_coil', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'}, - } -}) - -minetest.register_craftitem( "technic:lv_transformer", { - description = "Low Voltage Transformer", +minetest.register_craftitem("technic:lv_transformer", { + description = S("Low Voltage Transformer"), inventory_image = "technic_lv_transformer.png", - on_place_on_ground = minetest.craftitem_place_item, }) -minetest.register_craft({ - output = 'technic:lv_transformer', - recipe = { - {'default:iron_lump', 'default:iron_lump', 'default:iron_lump'}, - {'technic:copper_coil', 'default:iron_lump', 'technic:copper_coil'}, - {'default:iron_lump', 'default:iron_lump', 'default:iron_lump'}, - } -}) - -minetest.register_craftitem( "technic:mv_transformer", { - description = "Medium Voltage Transformer", +minetest.register_craftitem("technic:mv_transformer", { + description = S("Medium Voltage Transformer"), inventory_image = "technic_mv_transformer.png", - on_place_on_ground = minetest.craftitem_place_item, -}) - -minetest.register_craft({ - output = 'technic:mv_transformer', - recipe = { - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'technic:copper_coil', 'default:steel_ingot', 'technic:copper_coil'}, - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - } }) minetest.register_craftitem( "technic:hv_transformer", { - description = "High Voltage Transformer", + description = S("High Voltage Transformer"), inventory_image = "technic_hv_transformer.png", - on_place_on_ground = minetest.craftitem_place_item, -}) - -minetest.register_craft({ - output = 'technic:hv_transformer', - recipe = { - {'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot'}, - {'technic:copper_coil', 'technic:stainless_steel_ingot', 'technic:copper_coil'}, - {'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot'}, - } }) minetest.register_craftitem( "technic:control_logic_unit", { - description = "Control Logic Unit", + description = S("Control Logic Unit"), inventory_image = "technic_control_logic_unit.png", - on_place_on_ground = minetest.craftitem_place_item, }) -minetest.register_craft({ - output = 'technic:control_logic_unit', - recipe = { - {'', 'default:gold_ingot', ''}, - {'default:copper_ingot', 'technic:silicon_wafer', 'default:copper_ingot'}, - {'', 'default:copper_ingot', ''}, - } +minetest.register_craftitem("technic:mixed_metal_ingot", { + description = S("Mixed Metal Ingot"), + inventory_image = "technic_mixed_metal_ingot.png", }) + +minetest.register_craftitem("technic:composite_plate", { + description = S("Composite Plate"), + inventory_image = "technic_composite_plate.png", +}) + +minetest.register_craftitem("technic:copper_plate", { + description = S("Copper Plate"), + inventory_image = "technic_copper_plate.png", +}) + +minetest.register_craftitem("technic:carbon_plate", { + description = S("Carbon Plate"), + inventory_image = "technic_carbon_plate.png", +}) + +minetest.register_craftitem("technic:graphite", { + description = S("Graphite"), + inventory_image = "technic_graphite.png", +}) + +minetest.register_craftitem("technic:carbon_cloth", { + description = S("Carbon Cloth"), + inventory_image = "technic_carbon_cloth.png", +}) + +minetest.register_node("technic:machine_casing", { + description = S("Machine Casing"), + groups = {cracky=2}, + sunlight_propagates = true, + paramtype = "light", + drawtype = "allfaces", + 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}, + }); + -- Note on radioactivity of blocks: + -- Source: <http://www.wise-uranium.org/rup.html> + -- The baseline radioactivity of an isotope is not especially + -- correlated with whether it's fissile (i.e., suitable as + -- reactor fuel). Natural uranium consists mainly of fissile + -- U-235 and non-fissile U-238, and both U-235 and U-238 are + -- significantly radioactive. U-235's massic activity is + -- about 80.0 MBq/kg, and U-238's is about 12.4 MBq/kg, which + -- superficially suggests that 3.5%-fissile uranium should have + -- only 1.19 times the activity of fully-depleted uranium. + -- But a third isotope affects the result hugely: U-234 has + -- massic activity of 231 GBq/kg. Natural uranium has massic + -- composition of 99.2837% U-238, 0.711% U-235, and 0.0053% U-234, + -- so its activity comes roughly 49% each from U-234 and U-238 + -- and only 2% from U-235. During enrichment via centrifuge, + -- the U-234 fraction is concentrated along with the U-235, with + -- the U-234:U-235 ratio remaining close to its original value. + -- (Actually the U-234 gets separated from U-238 slightly more + -- than the U-235 is, so the U-234:U-235 ratio is slightly + -- higher in enriched uranium.) A typical massic composition + -- for 3.5%-fissile uranium is 96.47116% U-238, 3.5% U-235, and + -- 0.02884% U-234. This gives 3.5%-fissile uranium about 6.55 + -- times the activity of fully-depleted uranium. The values we + -- compute here for the "radioactive" group value are based on + -- linear interpolation of activity along that scale, rooted at + -- a natural (0.7%-fissile) uranium block having the activity of + -- 9 uranium ore blocks (due to 9 ingots per block). The group + -- value is proportional to the square root of the activity, and + -- uranium ore has radioactive=1. This yields radioactive=1.0 + -- for a fully-depleted uranium block and radioactive=2.6 for + -- a 3.5%-fissile uranium block. + local radioactivity = math.floor(math.sqrt((1+5.55*p/35) * 18 / (1+5.55*7/35)) + 0.5); + (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=radioactivity}, + 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 + -- Gitblit v1.8.0