| | |
| | | -- |
| | | -- The nuclear reactor core needs water and a protective shield to work. |
| | | -- This is checked now and then and if the machine is tampered with... BOOM! |
| | | local burn_ticks = 1 -- [minutes]. How many minutes does the power plant burn per serving? |
| | | local burn_ticks = 24*60 -- [minutes]. How many minutes does the power plant burn per serving? |
| | | local power_supply = 10000 -- [HV] EUs |
| | | local fuel_type = "technic:enriched_uranium" -- This reactor burns this stuff |
| | | |
| | | -- FIXME: recipe must make more sense like a rod recepticle, steam chamber, HV generator? |
| | | minetest.register_craft({ |
| | | output = 'technic:hv_nuclear_reactor_core', |
| | | minetest.register_craft( |
| | | {output = 'technic:hv_nuclear_reactor_core', |
| | | recipe = { |
| | | {'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot', 'technic:stainless_steel_ingot'}, |
| | | {'technic:stainless_steel_ingot', '', 'technic:stainless_steel_ingot'}, |
| | |
| | | } |
| | | }) |
| | | |
| | | minetest.register_craftitem("technic:hv_nuclear_reactor_core", { |
| | | description = "Uranium Rod Driven HV Reactor", |
| | | minetest.register_craftitem( |
| | | "technic:hv_nuclear_reactor_core", |
| | | {description = "Uranium Rod Driven HV Reactor", |
| | | stack_max = 1, |
| | | }) |
| | | |
| | |
| | | "list[current_player;main;0,5;8,4;]" |
| | | |
| | | -- "Boxy sphere" |
| | | local nodebox = {{ -0.353, -0.353, -0.353, 0.353, 0.353, 0.353 }, -- Box |
| | | local nodebox = { |
| | | { -0.353, -0.353, -0.353, 0.353, 0.353, 0.353 }, -- Box |
| | | { -0.495, -0.064, -0.064, 0.495, 0.064, 0.064 }, -- Circle +-x |
| | | { -0.483, -0.128, -0.128, 0.483, 0.128, 0.128 }, |
| | | { -0.462, -0.191, -0.191, 0.462, 0.191, 0.191 }, |
| | |
| | | |
| | | minetest.register_node( |
| | | "technic:hv_nuclear_reactor_core", |
| | | { |
| | | description = "Nuclear Reactor", |
| | | tiles = {"technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", |
| | | "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png"}, |
| | | {description = "Nuclear Reactor", |
| | | tiles = {"technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", |
| | | "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", |
| | | "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png"}, |
| | | -- paramtype2 = "facedir", |
| | | groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, |
| | | legacy_facedir_simple = true, |
| | |
| | | |
| | | minetest.register_node( |
| | | "technic:hv_nuclear_reactor_core_active", |
| | | { |
| | | description = "Coal Driven Generator", |
| | | {description = "Uranium Rod Driven HV Reactor", |
| | | tiles = {"technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", |
| | | "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png"}, |
| | | -- paramtype2 = "facedir", |
| | | groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, |
| | | legacy_facedir_simple = true, |
| | | sounds = default.node_sound_wood_defaults(), |
| | | drop="technic:generator", |
| | | drop="technic:hv_nuclear_reactor_core", |
| | | drawtype="nodebox", |
| | | light_source = 15, |
| | | paramtype = "light", |
| | |
| | | -- C = Concrete, S = Stainless Steel, W = water node (not floating), #=reactor core, |=HV cable |
| | | -- The man-hole and the HV cable is only in the middle. |
| | | local water_nodes = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, |
| | | {x=pos.x+1, y=pos.y+1, z=pos.z+1}, "default:water_source") |
| | | {x=pos.x+1, y=pos.y+1, z=pos.z+1}, |
| | | "default:water_source") |
| | | --print("Water ( 25):"..#water_nodes) |
| | | if #water_nodes ~= 25 then |
| | | --print("Water supply defect") |
| | | return 0 |
| | | end |
| | | local inner_shield_nodes = minetest.find_nodes_in_area({x=pos.x-2, y=pos.y-2, z=pos.z-2}, |
| | | {x=pos.x+2, y=pos.y+2, z=pos.z+2}, "technic:concrete") |
| | | {x=pos.x+2, y=pos.y+2, z=pos.z+2}, |
| | | "technic:concrete") |
| | | |
| | | --print("Concrete 1 ( 96):"..#inner_shield_nodes) |
| | | if #inner_shield_nodes ~= 96 then |
| | |
| | | return 0 |
| | | end |
| | | local steel_shield_nodes = minetest.find_nodes_in_area({x=pos.x-3, y=pos.y-3, z=pos.z-3}, |
| | | {x=pos.x+3, y=pos.y+3, z=pos.z+3}, "default:steelblock") |
| | | {x=pos.x+3, y=pos.y+3, z=pos.z+3}, |
| | | "default:steelblock") |
| | | |
| | | --print("Steel ( 216):"..#steel_shield_nodes) |
| | | if #steel_shield_nodes ~= 216 then |
| | |
| | | return 0 |
| | | end |
| | | local outer_shield_nodes = minetest.find_nodes_in_area({x=pos.x-5, y=pos.y-5, z=pos.z-5}, |
| | | {x=pos.x+5, y=pos.y+5, z=pos.z+5}, "technic:concrete") |
| | | {x=pos.x+5, y=pos.y+5, z=pos.z+5}, |
| | | "technic:concrete") |
| | | --print("Concrete 2 (1080):"..#outer_shield_nodes) |
| | | if #outer_shield_nodes ~= (984+#inner_shield_nodes) then |
| | | --print("Outer shield defect") |
| | |
| | | end |
| | | |
| | | minetest.register_abm( |
| | | { |
| | | nodenames = {"technic:hv_nuclear_reactor_core","technic:hv_nuclear_reactor_core_active"}, |
| | | {nodenames = {"technic:hv_nuclear_reactor_core","technic:hv_nuclear_reactor_core_active"}, |
| | | interval = 1, |
| | | chance = 1, |
| | | action = function(pos, node, active_object_count, active_object_count_wider) |