require("factsheet") local MOX_glow_color = {r = 1,g = 1,b = 1,a = 1} local pg_base_color = data.raw.fluid["petroleum-gas"].base_color local sulfuric_base_color = data.raw.fluid["sulfuric-acid"].base_color local sulfuric_flow_color = data.raw.fluid["sulfuric-acid"].flow_color local uranium_hex_base_color = {r = 0.5,g = 0.5,b = 0.5,a = 0.5} local uranium_hex_flow_color = {r = 0.5,g = 0.5,b = 0.5,a = 0.1} local plutonium_hex_base_color = {r= 100,g = 10,b = 10,a = 150} local plutonium_hex_flow_color = {r= 100,g = 10,b = 10,a = 25} local aqueous_raffinate_base_color = adamo.colors.midbrown local aqueous_raffinate_flow_color = adamo.colors.highbrown local raffinate_base_color = adamo.colors.darkbrown local raffinate_flow_color = adamo.colors.midbrown local oxide_color_table = { NU = {r=139,g=69,b=19}, DU = {r = 32, g = 32, b = 32}, LEU = {r = 96, g = 96, b = 96}, HEU = {r = 160, g = 160, b = 160}, WGU = {r = 224, g = 224, b = 224}, RGPu = {r = 0, g = 153, b = 0}, WGPu = {r = 0, g = 255, b = 0}, } -- Code uses "nuclear" as fast-reaction fuel category. local bombardment_category = { type = "recipe-category", name = "neutron-bombardment" } local thermal_fuel_category = { type = "fuel-category", name = "adamo-nuclear-thermal-reaction" } data:extend({ bombardment_category, thermal_fuel_category }) local nuclear_group = { type = "item-group", name = "adamo-nuclear-group", order = "n", icon = "__adamo-nuclear__/graphics/icons/nuclear_group.png", icon_size = 64 } local prod_mach_group = { type = "item-subgroup", group = "adamo-nuclear-group", name = "adamo-nuclear-production-machine", order = "a" } local processing_subgroup = { type = "item-subgroup", group = "adamo-nuclear-group", name = "adamo-nuclear-processing-group", order = "c" } local enrichment_group = { type = "item-subgroup", group = "adamo-nuclear-group", name = "adamo-nuclear-enrichment-group", order = "h" } local oxide_subgroup = { type = "item-subgroup", group = "adamo-nuclear-group", name = "adamo-nuclear-oxide-group", order = "j" } local products_subgroup = { type = "item-subgroup", group = "adamo-nuclear-group", name = "adamo-nuclear-products-group", order = "l" } local spent_fuel_group = { type = "item-subgroup", group = "adamo-nuclear-group", name = "adamo-nuclear-spent-fuel-group", order = "n" } local hex_subgroup = { type = "item-subgroup", group = "fluids", name = "adamo-nuclear-hex-group", order = "n" } local raffinate_subgroup = { type = "item-subgroup", group = "fluids", name = "adamo-nuclear-raffinate-group", order = "o" } data:extend({ nuclear_group, prod_mach_group, products_subgroup, oxide_subgroup, enrichment_group, processing_subgroup, spent_fuel_group, hex_subgroup, raffinate_subgroup }) local natural_hex_fluid = { type = "fluid", name = "adamo-nuclear-natural-uranium-hex", subgroup = "adamo-nuclear-hex-group", order = "n0", icon = "__adamo-nuclear__/graphics/icons/hex.png", icon_size = 32, base_color = uranium_hex_base_color, flow_color = uranium_hex_flow_color, default_temperature = 25, max_temperature = 100, heat_capacity = "0.1KJ", } local Pu_hex_fluid = { type = "fluid", name = "adamo-nuclear-Pu-hex", subgroup = "adamo-nuclear-hex-group", order = "n1", icon = "__adamo-nuclear__/graphics/icons/Pu-hex.png", icon_size = 32, base_color = plutonium_hex_base_color, flow_color = plutonium_hex_flow_color, default_temperature = 25, max_temperature = 100, heat_capacity = "0.1KJ", } local LEU_PUREX_hex_fluid = { type = "fluid", name = "adamo-nuclear-LEU-PUREX-hex", subgroup = "adamo-nuclear-hex-group", order = "n2", icon = "__adamo-nuclear__/graphics/icons/LEU-PUREX-hex.png", icon_size = 32, base_color = uranium_hex_base_color, flow_color = uranium_hex_flow_color, default_temperature = 25, max_temperature = 100, heat_capacity = "0.1KJ", } local HEU_PUREX_hex_fluid = { type = "fluid", name = "adamo-nuclear-HEU-PUREX-hex", subgroup = "adamo-nuclear-hex-group", order = "n3", icon = "__adamo-nuclear__/graphics/icons/HEU-PUREX-hex.png", icon_size = 32, base_color = uranium_hex_base_color, flow_color = uranium_hex_flow_color, default_temperature = 25, max_temperature = 100, heat_capacity = "0.1KJ", } local weak_fissile_fluid = { type = "fluid", name = "adamo-nuclear-aqueous-raffinate", subgroup = "adamo-nuclear-raffinate-group", order = "o1", icon = "__adamo-nuclear__/graphics/icons/aqueous-raffinate.png", icon_size = 32, base_color = aqueous_raffinate_base_color, flow_color = aqueous_raffinate_flow_color, default_temperature = 25, max_temperature = 100, heat_capacity = "0.01KJ", } local strong_fissile_fluid = { type = "fluid", name = "adamo-nuclear-raffinate", subgroup = "adamo-nuclear-raffinate-group", order = "o2", icon = "__adamo-nuclear__/graphics/icons/raffinate.png", icon_size = 32, base_color = raffinate_base_color, flow_color = raffinate_flow_color, default_temperature = 25, max_temperature = 100, heat_capacity = "0.1KJ", } data:extend({ natural_hex_fluid, Pu_hex_fluid, LEU_PUREX_hex_fluid, HEU_PUREX_hex_fluid, weak_fissile_fluid, strong_fissile_fluid }) local urania_item = { type = "item", name = "adamo-nuclear-urania", subgroup = "adamo-nuclear-processing-group", order = "n", stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/urania.png", icon_size = 32, } local LEU_fuel_item = { type = "item", name = "adamo-nuclear-LEU-fuel-cell", subgroup = "adamo-nuclear-products-group", order = "m", stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/LEU-fuel-cell.png", icon_size = 32, fuel_category = "adamo-nuclear-thermal-reaction", fuel_value = "82GJ", burnt_result = "adamo-nuclear-used-up-LEU-fuel-cell", } local MOX_fuel_item = { type = "item", name = "adamo-nuclear-MOX-fuel-cell", subgroup = "adamo-nuclear-products-group", order = "o", stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/MOX-fuel-cell.png", icon_size = 32, fuel_category = "nuclear", fuel_value = "162GJ", burnt_result = "adamo-nuclear-used-up-MOX-fuel-cell", fuel_glow_color = MOX_glow_color } local used_LEU_item = { type = "item", name = "adamo-nuclear-used-up-LEU-fuel-cell", subgroup = "adamo-nuclear-spent-fuel-group", order = "m1", stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/used-up-LEU-fuel-cell.png", icon_size = 32, } local used_MOX_item = { type = "item", name = "adamo-nuclear-used-up-MOX-fuel-cell", subgroup = "adamo-nuclear-spent-fuel-group", order = "m3", stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/used-up-MOX-fuel-cell.png", icon_size = 32, } local actinides_item = { type = "item", name = "adamo-nuclear-actinides", subgroup = "adamo-nuclear-products-group", order = "p1", stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/actinides.png", icon_size = 32, } local waste_item = { type = "item", name = "adamo-nuclear-ceramic-waste", subgroup = "adamo-nuclear-products-group", order = "p2", stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/ceramic-waste.png", icon_size = 64, } local thermal_reactor_item = { type = "item", name = "adamo-nuclear-thermal-reactor", icon = "__adamo-nuclear__/graphics/icons/thermal-reactor.png", icon_size = 32, subgroup = "energy", order = "b[steam-power]-b[adamo-nuclear-thermal-reactor]", place_result = "adamo-nuclear-thermal-reactor", stack_size = 50 } local prod_reactor_item = { type = "item", name = "adamo-nuclear-production-reactor", icon = "__adamo-nuclear__/graphics/icons/production-reactor.png", icon_size = 32, subgroup = "adamo-nuclear-production-machine", order = "n[production-reactor]", place_result = "adamo-nuclear-production-reactor", stack_size = 10 } data:extend({ urania_item, LEU_fuel_item, MOX_fuel_item, used_LEU_item, used_MOX_item, actinides_item, waste_item, thermal_reactor_item, prod_reactor_item, }) local urania_recipe_sulfuric = { type = "recipe", name = "adamo-nuclear-urania-by-H2SO4", category = "chemistry", enabled = false, energy_required = 10, -- same as explosives main_product = "adamo-nuclear-urania", ingredients = {{ type = "item", name = "uranium-ore", amount = 50 },{ type = "fluid", name = "sulfuric-acid", amount = 160 },{ type = "fluid", name = "water", amount = 40 }}, results = {{ type = "item", name = "adamo-nuclear-urania", amount = 1 }}, show_amount_in_title = false, always_show_products = false, always_show_made_in = true, crafting_machine_tint = { primary = oxide_color_table.NU, secondary = sulfuric_base_color, tertiary = sulfuric_flow_color, quaternary = data.raw.fluid.water.flow_color }, } local urania_recipe_hydrofluoric = { type = "recipe", name = "adamo-nuclear-urania-by-HF", category = "chemistry", enabled = false, energy_required = 10, ingredients = {{ type = "item", name = "uranium-ore", amount = 50 },{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 80 },{ type = "fluid", name = "water", amount = 120 }}, results = {{ type = "item", name = "adamo-nuclear-urania", amount = 1 }}, show_amount_in_title = false, always_show_products = false, always_show_made_in = true, crafting_machine_tint = { primary = oxide_color_table.NU, secondary = adamo.colors.hf_base, tertiary = adamo.colors.hf_flow, quaternary = data.raw.fluid.water.flow_color }, } local urania_hex_recipe = { type = "recipe", name = "adamo-nuclear-natural-uranium-hex", category = "chemistry", enabled = false, subgroup = "adamo-nuclear-processing-group", main_product = "adamo-nuclear-natural-uranium-hex", energy_required = 10, ingredients = {{ type = "item", name = "adamo-nuclear-urania", amount = 1 },{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 60 },{ type = "fluid", name = "water", amount = 30 }}, results = {{ type = "fluid", name = "adamo-nuclear-natural-uranium-hex", amount = 10, fluidbox_index = 1, }}, always_show_made_in = true, crafting_machine_tint = { primary = uranium_hex_base_color, secondary = adamo.colors.hf_base, tertiary = adamo.colors.hf_flow, quaternary = oxide_color_table.NU }, } local LEU_enrichment_recipe = { type = "recipe", category = "centrifuging", name = "adamo-nuclear-LEU-enrichment", energy_required = 10, subgroup = "adamo-nuclear-enrichment-group", order = "m1", enabled = false, ingredients = {{ type = "fluid", name = "adamo-nuclear-natural-uranium-hex", amount = 10 }}, results = {{ type = "fluid", name = "adamo-nuclear-DU-hex", amount = 10, probability = 6.75/7.75 },{ type = "fluid", name = "adamo-nuclear-LEU-hex", amount = 10, probability = 1/7.75 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/LEU-enrichment.png", } local HEU_enrichment_recipe = { type = "recipe", category = "centrifuging", name = "adamo-nuclear-HEU-enrichment", energy_required = 10, subgroup = "adamo-nuclear-enrichment-group", order = "m2", enabled = false, ingredients = {{ type = "fluid", name = "adamo-nuclear-natural-uranium-hex", amount = 10 }}, results = {{ type = "fluid", name = "adamo-nuclear-DU-hex", amount = 10, probability = 36.5/37.5 },{ type = "fluid", name = "adamo-nuclear-HEU-hex", amount = 10, probability = 1/37.5 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/HEU-enrichment.png", } local WGU_enrichment_recipe = { type = "recipe", category = "centrifuging", name = "adamo-nuclear-WGU-enrichment", energy_required = 10, subgroup = "adamo-nuclear-enrichment-group", order = "m3", enabled = false, ingredients = {{ type = "fluid", name = "adamo-nuclear-natural-uranium-hex", amount = 10 }}, results = {{ type = "fluid", name = "adamo-nuclear-DU-hex", amount = 10, probability = 149/150 },{ type = "fluid", name = "adamo-nuclear-WGU-hex", amount = 10, probability = 1/150 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/WGU-enrichment.png", } local Pu_enrichment_recipe = { type = "recipe", category = "centrifuging", name = "adamo-nuclear-WGPu-enrichment", energy_required = 20, subgroup = "adamo-nuclear-enrichment-group", order = "n1", enabled = false, ingredients = {{ type = "fluid", name = "adamo-nuclear-Pu-hex", amount = 20 }}, results = {{ type = "fluid", name = "adamo-nuclear-RGPu-hex", amount = 10, },{ type = "fluid", name = "adamo-nuclear-WGPu-hex", amount = 10, }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/WGPu-enrichment.png", } local LEU_PUREX_enrichment_recipe = { type = "recipe", category = "centrifuging", name = "adamo-nuclear-LEU-PUREX-enrichment", energy_required = 10, subgroup = "adamo-nuclear-enrichment-group", order = "o1", enabled = false, ingredients = {{ type = "fluid", name = "adamo-nuclear-LEU-PUREX-hex", amount = 10 }}, results = {{ type = "fluid", name = "adamo-nuclear-LEU-hex", amount = 10, probability = 135/150 },{ type = "fluid", name = "adamo-nuclear-Pu-hex", amount = 10, probability = 1/150 },{ type = "fluid", name = "adamo-nuclear-DU-hex", amount = 10, probability = 14/150 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/LEU-PUREX-enrichment.png", } local HEU_PUREX_enrichment_recipe = { type = "recipe", category = "centrifuging", name = "adamo-nuclear-HEU-PUREX-enrichment", energy_required = 10, subgroup = "adamo-nuclear-enrichment-group", order = "o2", enabled = false, ingredients = {{ type = "fluid", name = "adamo-nuclear-HEU-PUREX-hex", amount = 10 }}, results = {{ type = "fluid", name = "adamo-nuclear-HEU-hex", amount = 10, probability = 67/70 },{ type = "fluid", name = "adamo-nuclear-Pu-hex", amount = 10, probability = 1/70 },{ type = "fluid", name = "adamo-nuclear-DU-hex", amount = 10, probability = 2/70 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/HEU-PUREX-enrichment.png", } local RGPu_recipe = { type = "recipe", category = "chemistry", name = "adamo-nuclear-highgrade-RGPu-oxide", main_product = "adamo-nuclear-RGPu-oxide", enabled = false, energy_required = 10, always_show_made_in = true, subgroup = "adamo-nuclear-processing-group", order = "o1", ingredients = {{ type = "fluid", name = "adamo-nuclear-Pu-hex", amount = 10 },{ type = "fluid", name = "water", amount = 30 }}, results = {{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 60, },{ type = "item", name = "adamo-nuclear-RGPu-oxide", amount = 1 }}, crafting_machine_tint = { primary = oxide_color_table.RGPu, secondary = adamo.colors.hf_base, tertiary = plutonium_hex_flow_color, quaternary = data.raw.fluid.water.flow_color }, } local plutonia_238_recipe = { type = "recipe", category = "neutron-bombardment", name = "adamo-nuclear-transmute-Pu238-oxide", energy_required = 600, enabled = false, subgroup = "adamo-nuclear-products-group", order = "p", ingredients = {{ amount = 1, name = "adamo-nuclear-actinides", type = "item", },{ amount = 1, name = "adamo-nuclear-DU-oxide", type = "item", },{ amount = 600, name = "water", type = "fluid", }}, result = "adamo-nuclear-Pu238-oxide", } local LEU_PUREX_stage_1 = { type = "recipe", category = "chemistry", name = "adamo-nuclear-LEU-PUREX-stage-1", subgroup = "adamo-nuclear-spent-fuel-group", order = "m1", energy_required = 10, emissions_multiplier = 3, enabled = false, ingredients = { {"adamo-nuclear-used-up-LEU-fuel-cell", 1}, { type = "fluid", name = "petroleum-gas", amount = 10 }, { type = "fluid", name = "water", amount = 10 }, }, results = { {waste_item.name, 1}, {actinides_item.name, 1}, { type = "fluid", name = weak_fissile_fluid.name, amount = 10 } }, crafting_machine_tint = { primary = weak_fissile_fluid.base_color, secondary = aqueous_raffinate_base_color, tertiary = sulfuric_flow_color, quaternary = oxide_color_table.LEU } } local LEU_PUREX_stage_2 = { type = "recipe", category = "chemistry", name = "adamo-nuclear-LEU-PUREX-stage-2", subgroup = "adamo-nuclear-spent-fuel-group", order = "m2", energy_required } local LEU_PUREX_recipe_sulfuric = { type = "recipe", category = "chemistry", name = "adamo-nuclear-LEU-PUREX-by-H2SO4", subgroup = "adamo-nuclear-spent-fuel-group", order = "m1", energy_required = 150, emissions_multiplier = 3, enabled = false, ingredients = {{ type = "fluid", name = "sulfuric-acid", amount = 150 },{ type = "fluid", name = "petroleum-gas", amount = 150 },{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 900 },{ type = "item", name = "adamo-nuclear-used-up-LEU-fuel-cell", amount = 15 }}, results = {{ type = "fluid", name = "adamo-nuclear-LEU-PUREX-hex", amount = 150 },{ type = "fluid", -- name = "adamo-nuclear-aqueous-raffinate", name = "adamo-nuclear-raffinate", amount = 209 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/LEU-PUREX.png", crafting_machine_tint = { primary = uranium_hex_base_color, secondary = aqueous_raffinate_base_color, tertiary = sulfuric_flow_color, quaternary = oxide_color_table.LEU }, } local LEU_PUREX_recipe_hydrofluoric = { type = "recipe", category = "chemistry", name = "adamo-nuclear-LEU-PUREX-by-HF", subgroup = "adamo-nuclear-spent-fuel-group", order = "m2", energy_required = 150, emissions_multiplier = 3, enabled = false, ingredients = {{ type = "fluid", name = "petroleum-gas", amount = 150 },{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 1050 },{ type = "item", name = "adamo-nuclear-used-up-LEU-fuel-cell", amount = 15 }}, results = {{ type = "fluid", -- name = "adamo-nuclear-aqueous-raffinate", name = "adamo-nuclear-raffinate", amount = 209 },{ type = "fluid", name = "adamo-nuclear-LEU-PUREX-hex", amount = 150 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/LEU-PUREX.png", crafting_machine_tint = { primary = uranium_hex_base_color, secondary = aqueous_raffinate_base_color, tertiary = adamo.colors.hf_flow, quaternary = oxide_color_table.LEU }, } local HEU_PUREX_recipe_sulfuric = { type = "recipe", category = "chemistry", name = "adamo-nuclear-HEU-PUREX-by-H2SO4", subgroup = "adamo-nuclear-spent-fuel-group", order = "m3", energy_required = 70, emissions_multiplier = 3, enabled = false, ingredients = {{ type = "fluid", name = "sulfuric-acid", amount = 70 },{ type = "fluid", name = "petroleum-gas", amount = 70 },{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 420 },{ type = "item", name = "used-up-uranium-fuel-cell", amount = 7 }}, results = {{ type = "fluid", -- name = "adamo-nuclear-aqueous-raffinate", name = "adamo-nuclear-raffinate", amount = 231 },{ type = "fluid", name = "adamo-nuclear-HEU-PUREX-hex", amount = 70 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/HEU-PUREX.png", crafting_machine_tint = { primary = uranium_hex_base_color, secondary = aqueous_raffinate_base_color, tertiary = sulfuric_flow_color, quaternary = oxide_color_table.HEU }, } local HEU_PUREX_recipe_hydrofluoric = { type = "recipe", category = "chemistry", name = "adamo-nuclear-HEU-PUREX-by-HF", subgroup = "adamo-nuclear-spent-fuel-group", order = "m4", energy_required = 70, emissions_multiplier = 3, enabled = false, ingredients = {{ type = "fluid", name = "petroleum-gas", amount = 70 },{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 490 },{ type = "item", name = "used-up-uranium-fuel-cell", amount = 7 }}, results = {{ type = "fluid", -- name = "adamo-nuclear-aqueous-raffinate", name = "adamo-nuclear-raffinate", amount = 231 },{ type = "fluid", name = "adamo-nuclear-HEU-PUREX-hex", amount = 70 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/HEU-PUREX.png", crafting_machine_tint = { primary = uranium_hex_base_color, secondary = aqueous_raffinate_base_color, tertiary = adamo.colors.hf_flow, quaternary = oxide_color_table.HEU }, } local LEU_REMIX_recipe = { type = "recipe", category = "crafting-with-fluid", name = "adamo-nuclear-LEU-REMIX", subgroup = "adamo-nuclear-spent-fuel-group", order = "n1", energy_required = 270, emissions_multiplier = 5, enabled = false, ingredients = {{ type = "item", name = "adamo-nuclear-HEU-oxide", amount = 1 },{ type = "item", name = "adamo-nuclear-used-up-LEU-fuel-cell", amount = 27 },{ type = "fluid", name = "petroleum-gas", amount = 270 },{ type = "item", name = "iron-plate", amount = 27 }}, results = {{ type = "fluid", name = "adamo-nuclear-raffinate", -- amount = 10 amount = 100 },{ type = "item", name = "adamo-nuclear-LEU-fuel-cell", amount = 27 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/LEU-REMIX.png", crafting_machine_tint = { primary = raffinate_base_color, secondary = adamo.colors.highgrey, tertiary = pg_flow_color, quaternary = oxide_color_table.LEU }, } local MOX_REMIX_recipe = { type = "recipe", category = "crafting-with-fluid", name = "adamo-nuclear-MOX-REMIX", subgroup = "adamo-nuclear-spent-fuel-group", order = "n2", energy_required = 340, emissions_multiplier = 5, enabled = false, ingredients = {{ type = "item", name = "adamo-nuclear-RGPu-oxide", amount = 1 },{ type = "item", name = "adamo-nuclear-used-up-MOX-fuel-cell", amount = 34 },{ type = "fluid", name = "petroleum-gas", amount = 340 },{ type = "item", name = "iron-plate", amount = 33 }}, results = {{ type = "item", name = "adamo-nuclear-MOX-fuel-cell", amount = 33 },{ type = "fluid", name = "adamo-nuclear-raffinate", -- amount = 20 amount = 200 }}, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/MOX-REMIX.png", crafting_machine_tint = { primary = raffinate_base_color, secondary = adamo.colors.highgrey, tertiary = pg_flow_color, quaternary = oxide_color_table.RGPu }, } local LEU_fuel_recipe = { type = "recipe", name = "adamo-nuclear-LEU-fuel-cell", energy_required = 10, category = "advanced-crafting", enabled = false, ingredients = {{ "adamo-nuclear-LEU-oxide",1 },{ "iron-plate",1 }}, result = "adamo-nuclear-LEU-fuel-cell" } local MOX_fuel_recipe = { type = "recipe", name = "adamo-nuclear-MOX-fuel-cell", subgroup = "adamo-nuclear-products-group", order = "p", energy_required = 100, category = "advanced-crafting", enabled = false, ingredients = { {type = "item", name = "adamo-nuclear-DU-oxide", amount = 93}, {type = "item", name = "adamo-nuclear-RGPu-oxide", amount = 7}, {type = "item", name = "iron-plate", amount = 100}, }, results = {{"adamo-nuclear-MOX-fuel-cell",100}}, } -- local aqueous_raffinate_processing_recipe = { -- type = "recipe", -- category = "chemistry", -- name = "adamo-nuclear-aqueous-raffinate-processing", -- subgroup = "adamo-nuclear-processing-group", -- order = "p1", -- energy_required = 30, -- category = "chemistry", -- enabled = false, -- ingredients = {{ -- type = "fluid", -- name = "adamo-nuclear-aqueous-raffinate", -- amount = 300 -- }}, -- results = {{ -- type = "fluid", -- name = "adamo-nuclear-raffinate", -- amount = 1, -- }}, -- crafting_machine_tint = { -- primary = raffinate_base_color, -- secondary = aqueous_raffinate_base_color, -- tertiary = aqueous_raffinate_flow_color, -- quaternary = raffinate_flow_color -- }, -- } local raffinate_processing_recipe = { type = "recipe", name = "adamo-nuclear-raffinate-processing", subgroup = "adamo-nuclear-processing-group", order = "p2", energy_required = 10, category = "chemistry", enabled = false, icon_size = 64, icon = "__adamo-nuclear__/graphics/icons/raffinate-processing.png", ingredients = {{ type = "fluid", name = "adamo-nuclear-raffinate", amount = 300, },{ type = "fluid", name = "water", amount = 300, },{ type = "item", name = "stone", amount = 30, }}, results = {{ type = "item", name = "adamo-nuclear-actinides", amount = 1 },{ type = "item", name = "adamo-nuclear-ceramic-waste", amount = 2 }}, crafting_machine_tint = { primary = raffinate_base_color, secondary = {r = 227, g = 124, b = 14}, tertiary = raffinate_flow_color, quaternary = adamo.colors.highbrown }, } local plutonium_rocket_recipe = { type = "recipe", name = "adamo-nuclear-thermonuclear-rocket", energy_required = 50, order = "d[rocket-launcher]-n[adamo-nuclear-thermonuclear-rocket]", enabled = false, main_product = "adamo-nuclear-thermonuclear-rocket", category = "crafting-with-fluid", ingredients = {{ type = "item", name = "rocket", amount = 1 },{ type = "item", name = "explosives", amount = 1 },{ type = "item", name = "rocket-control-unit", amount = 1 },{ type = "item", name = "adamo-nuclear-WGPu-oxide", amount = 1 },{ type = "item", name = "adamo-nuclear-DU-oxide", amount = 1 },{ type = "fluid", name = "water", amount = 100 }}, result = "adamo-nuclear-thermonuclear-rocket", } local thermal_reactor_recipe = { type = "recipe", name = "adamo-nuclear-thermal-reactor", energy_required = 2, enabled = false, ingredients = { {"concrete", 40}, {"steel-plate", 20}, {"adamo-nuclear-DU-oxide",20}, {"advanced-circuit", 50}, {"pipe", 10} }, result = "adamo-nuclear-thermal-reactor", } local prod_reactor_recipe = { type = "recipe", name = "adamo-nuclear-production-reactor", energy_required = 4, enabled = false, ingredients = { {"centrifuge", 1}, {"adamo-nuclear-DU-oxide", 100}, {"refined-concrete", 100}, {"filter-inserter",5}, {"steel-chest",5} -- processing unit? }, result = "adamo-nuclear-production-reactor", } data:extend({ urania_recipe_sulfuric, urania_recipe_hydrofluoric, urania_hex_recipe, LEU_enrichment_recipe, HEU_enrichment_recipe, WGU_enrichment_recipe, Pu_enrichment_recipe, LEU_PUREX_enrichment_recipe, HEU_PUREX_enrichment_recipe, plutonia_238_recipe, RGPu_recipe, LEU_PUREX_recipe_sulfuric, LEU_PUREX_recipe_hydrofluoric, HEU_PUREX_recipe_sulfuric, HEU_PUREX_recipe_hydrofluoric, LEU_REMIX_recipe, MOX_REMIX_recipe, LEU_fuel_recipe, MOX_fuel_recipe, -- aqueous_raffinate_processing_recipe, raffinate_processing_recipe, plutonium_rocket_recipe, thermal_reactor_recipe, prod_reactor_recipe, }) add_recipes_to_tech("uranium-processing", { "adamo-nuclear-urania-by-H2SO4", "adamo-nuclear-urania-by-HF", "adamo-nuclear-natural-uranium-hex", "adamo-nuclear-LEU-enrichment", "adamo-nuclear-LEU-fuel-cell", "adamo-nuclear-thermal-reactor" }) add_recipes_to_tech("nuclear-power", { "adamo-nuclear-HEU-enrichment", "adamo-nuclear-WGU-enrichment" }) move_recipe_to_tech("nuclear-power","atomic-bomb") add_recipes_to_tech("nuclear-fuel-reprocessing", { "adamo-nuclear-production-reactor", "adamo-nuclear-LEU-PUREX-by-HF", "adamo-nuclear-LEU-PUREX-by-H2SO4", "adamo-nuclear-LEU-REMIX", "adamo-nuclear-HEU-PUREX-by-HF", "adamo-nuclear-HEU-PUREX-by-H2SO4", "adamo-nuclear-LEU-PUREX-enrichment", "adamo-nuclear-HEU-PUREX-enrichment", "adamo-nuclear-transmute-Pu238-oxide", "adamo-nuclear-highgrade-RGPu-oxide", -- "adamo-nuclear-aqueous-raffinate-processing", "adamo-nuclear-raffinate-processing" }) add_recipes_to_tech("kovarex-enrichment-process", { "adamo-nuclear-MOX-fuel-cell", "adamo-nuclear-MOX-REMIX" }) add_recipes_to_tech("atomic-bomb", { "adamo-nuclear-WGPu-enrichment", "adamo-nuclear-thermonuclear-rocket" }) adamo.recipes.set.productivity({ "adamo-nuclear-urania-by-H2SO4", "adamo-nuclear-urania-by-HF", "adamo-nuclear-raffinate-processing", "adamo-nuclear-transmute-Pu238-oxide", "adamo-nuclear-natural-uranium-hex", "adamo-nuclear-highgrade-RGPu-oxide" }) -- Oxides and hexes. local order_number = 1 data:extend({{ type = "item", name = "adamo-nuclear-Pu238-oxide", subgroup = "adamo-nuclear-products-group", order = "p", stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/Pu238.png", icon_size = 32, }}) for _,grade in pairs({ "DU","LEU","HEU","WGU","RGPu","WGPu" }) do local oxide_color = oxide_color_table[grade] local hex_color = uranium_hex_base_color local hex_flow_color = uranium_hex_flow_color if grade:match "Pu" then hex_color = plutonium_hex_base_color hex_flow_color = plutonium_hex_flow_color end local hex_recipe = { type = "recipe", name = "adamo-nuclear-"..grade.."-hex", category = "chemistry", enabled = false, energy_required = 30, always_show_made_in = true, main_product = "adamo-nuclear-"..grade.."-hex", ingredients = {{ type = "item", name = "adamo-nuclear-"..grade.."-oxide", amount = 1 },{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 60 },{ type = "fluid", name = "water", amount = 30 }}, results = {{ type = "fluid", name = "adamo-nuclear-"..grade.."-hex", amount = 10 }}, hide_from_player_crafting = true, crafting_machine_tint = { primary = hex_color, secondary = adamo.colors.hf_base, tertiary = adamo.colors.hf_flow, quaternary = oxide_color }, } local oxide_recipe = { type = "recipe", category = "chemistry", name = "adamo-nuclear-"..grade.."-oxide", main_product = "adamo-nuclear-"..grade.."-oxide", enabled = false, energy_required = 10, always_show_made_in = true, ingredients = {{ type = "fluid", name = "adamo-nuclear-"..grade.."-hex", amount = 10 },{ type = "fluid", name = "water", amount = 30 }}, results = {{ type = "fluid", name = "adamo-chemical-hydrofluoric-acid", amount = 60, },{ type = "item", name = "adamo-nuclear-"..grade.."-oxide", amount = 1 }}, crafting_machine_tint = { primary = adamo.colors.hf_base, secondary = oxide_color, tertiary = hex_flow_color, quaternary = data.raw.fluid.water.flow_color }, } local item = { type = "item", name = "adamo-nuclear-"..grade.."-oxide", subgroup = "adamo-nuclear-oxide-group", order = "nz"..order_number, stack_size = 50, icon = "__adamo-nuclear__/graphics/icons/"..grade..".png", icon_size = 32, } local fluid = { type = "fluid", name = "adamo-nuclear-"..grade.."-hex", group = "fluid", subgroup = "adamo-nuclear-hex-group", order = "nz"..order_number, icon = "__adamo-nuclear__/graphics/icons/"..grade.."-hex.png", icon_size = 32, base_color = hex_color, flow_color = hex_flow_color, default_temperature = 25, max_temperature = 100, heat_capacity = "0.1KJ", } data:extend({hex_recipe,oxide_recipe,item,fluid}) if grade:match "Pu" then add_recipe_to_tech("atomic-bomb", "adamo-nuclear-"..grade.."-oxide" ) add_recipe_to_tech("atomic-bomb", "adamo-nuclear-"..grade.."-hex" ) elseif grade:match "LEU" or grade:match "DU" then add_recipe_to_tech("uranium-processing", "adamo-nuclear-"..grade.."-oxide" ) add_recipe_to_tech("uranium-processing", "adamo-nuclear-"..grade.."-hex" ) else add_recipe_to_tech("nuclear-power", "adamo-nuclear-"..grade.."-oxide" ) add_recipe_to_tech("nuclear-power", "adamo-nuclear-"..grade.."-hex" ) end order_number = order_number + 1 end local grade = "DU" data.raw.recipe["adamo-nuclear-"..grade.."-oxide"].ingredients = {{ type = "fluid", name = "water", amount = 30 },{ type = "fluid", name = "adamo-nuclear-"..grade.."-hex", amount = 10 }} local grade = "RGPu" data.raw.recipe["adamo-nuclear-"..grade.."-oxide"].ingredients = {{ type = "fluid", name = "water", amount = 30 },{ type = "fluid", name = "adamo-nuclear-"..grade.."-hex", amount = 10 }} local thermal_reactor_entity = { type = "boiler", name = "adamo-nuclear-thermal-reactor", icon = "__adamo-nuclear__/graphics/icons/thermal-reactor.png", icon_size = 32, flags = {"placeable-neutral", "player-creation"}, minable = { mining_time = 0.2, result = "adamo-nuclear-thermal-reactor" }, fast_replaceable_group = "boiler", max_health = 200, corpse = "boiler-remnants", vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, mode = "output-to-separate-pipe", resistances = {{ type = "fire", percent = 90 },{ type = "explosion", percent = 30 },{ type = "impact", percent = 30 }}, collision_box = {{-1.29, -0.79}, {1.29, 0.79}}, selection_box = {{-1.5, -1}, {1.5, 1}}, target_temperature = 165, fluid_box = { base_area = 2, height = 2, base_level = -1, pipe_covers = pipecoverspictures(), pipe_connections = {{ type = "input-output", position = {-2, 0.5} },{ type = "input-output", position = {2, 0.5}} }, production_type = "input-output", filter = "water" }, output_fluid_box = { base_area = 2, height = 2, base_level = 1, pipe_covers = pipecoverspictures(), pipe_connections = {{ type = "output", position = {0, -1.5} }}, production_type = "output", filter = "steam" }, energy_consumption = "3600kW", energy_source = { type = "burner", fuel_category = "adamo-nuclear-thermal-reaction", effectivity = 1, fuel_inventory_size = 1, burnt_inventory_size =1, emissions_per_minute = 0, smoke = nil, light_flicker = { color = {r = 0,g = 0,b = 1,a = 0.3}, minimum_intensity = 0.3, maximum_intensity = 0.3, minimum_light_size = 0.1, light_intensity_to_size_coefficient = 1 } }, working_sound = data.raw.boiler["boiler"].working_sound, structure = data.raw.boiler["boiler"].structure, patch = data.raw.boiler["boiler"].patch, fire_flicker_enabled = false, fire_glow_flicker_enabled = false, fire = { north = { filename = "__adamo-nuclear__/graphics/entity/" .."thermal-reactor-N-fire.png", priority = "extra-high", frame_count = 1, width = 12, height = 13, shift = util.by_pixel(0, -8.5), hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-thermal-reactor-N-fire.png", priority = "extra-high", frame_count = 1, width = 26, height = 26, shift = util.by_pixel(0, -8.5), scale = 0.5 } }, east = { filename = "__adamo-nuclear__/graphics/entity/" .."thermal-reactor-E-fire.png", priority = "extra-high", frame_count = 1, width = 14, height = 14, shift = util.by_pixel(-10, -22), hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-thermal-reactor-E-fire.png", priority = "extra-high", frame_count = 1, width = 28, height = 28, shift = util.by_pixel(-9.5, -22), scale = 0.5 } }, south = { filename = "__adamo-nuclear__/graphics/entity/" .."thermal-reactor-S-fire.png", priority = "extra-high", frame_count = 1, width = 12, height = 9, shift = util.by_pixel(-1, -26.5), hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-thermal-reactor-S-fire.png", priority = "extra-high", frame_count = 1, width = 26, height = 16, shift = util.by_pixel(-1, -26.5), scale = 0.5 } }, west = { filename = "__adamo-nuclear__/graphics/entity/" .."thermal-reactor-W-fire.png", priority = "extra-high", frame_count = 1, width = 14, height = 14, shift = util.by_pixel(13, -23), hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-thermal-reactor-W-fire.png", priority = "extra-high", frame_count = 1, width = 30, height = 29, shift = util.by_pixel(13, -23.25), scale = 0.5 } } }, fire_glow = { north = { filename = "__adamo-nuclear__/graphics/entity/" .."thermal-reactor-N-light.png", priority = "extra-high", frame_count = 1, width = 100, height = 87, shift = util.by_pixel(-1, -6.5), blend_mode = "additive-soft", hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-thermal-reactor-N-light.png", priority = "extra-high", frame_count = 1, width = 200, height = 173, shift = util.by_pixel(-1, -6.75), blend_mode = "additive-soft", scale = 0.5 } }, east = { filename = "__adamo-nuclear__/graphics/entity/" .."thermal-reactor-E-light.png", priority = "extra-high", frame_count = 1, width = 70, height = 122, shift = util.by_pixel(0, -13), blend_mode = "additive-soft", hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-thermal-reactor-E-light.png", priority = "extra-high", frame_count = 1, width = 139, height = 244, shift = util.by_pixel(0.25, -13), blend_mode = "additive-soft", scale = 0.5 } }, south = { filename = "__adamo-nuclear__/graphics/entity/" .."thermal-reactor-S-light.png", priority = "extra-high", frame_count = 1, width = 100, height = 81, shift = util.by_pixel(1, 5.5), blend_mode = "additive-soft", hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-thermal-reactor-S-light.png", priority = "extra-high", frame_count = 1, width = 200, height = 162, shift = util.by_pixel(1, 5.5), blend_mode = "additive-soft", scale = 0.5 } }, west = { filename = "__adamo-nuclear__/graphics/entity/" .."thermal-reactor-W-light.png", priority = "extra-high", frame_count = 1, width = 68, height = 109, shift = util.by_pixel(2, -6.5), blend_mode = "additive-soft", hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-thermal-reactor-W-light.png", priority = "extra-high", frame_count = 1, width = 136, height = 217, shift = util.by_pixel(2, -6.25), blend_mode = "additive-soft", scale = 0.5 } } }, burning_cooldown = 20 } local prod_anim_speed = 0.5 local prod_reactor_corpse = adamo.centrifuge.remnants(5/3) prod_reactor_corpse.name = "adamo-nuyclear-production-reactor-remnants" local prod_reactor_explosion = adamo.centrifuge.explosion(5/3) prod_reactor_explosion.name = "adamo-nuclear-production-reactor-explosion" local prod_reactor_entity = { type = "assembling-machine", name = "adamo-nuclear-production-reactor", icon = "__adamo-nuclear__/graphics/icons/" .."production-reactor.png", icon_size = 32, flags = { "placeable-neutral", "placeable-player", "player-creation" }, minable = { mining_time = 1, result = "adamo-nuclear-production-reactor" }, max_health = 350, crafting_speed = 1, crafting_categories = {"neutron-bombardment"}, energy_source = { type = "electric", usage_priority = "secondary-input" }, energy_usage = "750kW", module_specification = { module_slots = 4 }, allowed_effects = { "consumption", "speed", "productivity", "pollution" }, corpse = "adamo-nuyclear-production-reactor-remnants", dying_explosion = "adamo-nuclear-production-reactor-explosion", resistances = {{ type = "fire", percent = 70 }}, collision_box = adamo.centrifuge.collision_box(5/3), selection_box = adamo.centrifuge.selection_box(5/3), drawing_box = adamo.centrifuge.drawing_box(5/3), always_draw_idle_animation = true, idle_animation = {layers = adamo.centrifuge.idle_layers(3/2,prod_anim_speed)}, animation = { layers = {{ filename = "__adamo-nuclear__/graphics/entity/production-reactor-C-light.png", priority = "high", blend_mode = "additive", -- centrifuge line_length = 8, width = 96, height = 104, frame_count = 64, animation_speed = prod_anim_speed, draw_as_glow = true, shift = util.by_pixel(0*3/2, -27*3/2), scale = 3/2, hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-production-reactor-C-light.png", priority = "high", scale = 0.5*3/2, blend_mode = "additive", -- centrifuge line_length = 8, width = 190, height = 207, frame_count = 64, animation_speed = prod_anim_speed, draw_as_glow = true, shift = util.by_pixel(0*3/2, -27.25*3/2) } },{ filename = "__adamo-nuclear__/graphics/entity/" .."production-reactor-B-light.png", priority = "high", blend_mode = "additive", -- centrifuge line_length = 8, width = 65, height = 103, frame_count = 64, animation_speed = prod_anim_speed, draw_as_glow = true, shift = util.by_pixel(16.5*3/2, 0.5*3/2), scale = 3/2, hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-production-reactor-B-light.png", priority = "high", scale = 0.5*3/2, blend_mode = "additive", -- centrifuge line_length = 8, width = 131, height = 206, frame_count = 64, animation_speed = prod_anim_speed, draw_as_glow = true, shift = util.by_pixel(16.75*3/2, 0.5*3/2) } },{ filename = "__adamo-nuclear__/graphics/entity/" .."production-reactor-A-light.png", priority = "high", blend_mode = "additive", -- centrifuge line_length = 8, width = 55, height = 98, frame_count = 64, animation_speed = prod_anim_speed, draw_as_glow = true, shift = util.by_pixel(-23.5*3/2, -2*3/2), scale = 3/2, hr_version = { filename = "__adamo-nuclear__/graphics/entity/" .."hr-production-reactor-A-light.png", priority = "high", scale = 0.5*3/2, blend_mode = "additive", -- centrifuge line_length = 8, width = 108, height = 197, frame_count = 64, animation_speed = prod_anim_speed, draw_as_glow = true, shift = util.by_pixel(-23.5*3/2, -1.75*3/2) } }} }, working_visualisations = {{ effect = "uranium-glow", fadeout = true, light = { intensity = 0.55, size = 9.9*3/2, shift = {0.0, 0.0}, color = { r = 0.0, g = 0.15, b = 1.0 } } }}, open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, working_sound = { sound = {{ filename = "__base__/sound/assembling-machine-t2-1.ogg", volume = 0.8 },{ filename = "__base__/sound/assembling-machine-t2-2.ogg", volume = 0.8 }}, idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, apparent_volume = 1.5 }, fluid_boxes = adamo.centrifuge.fluid_boxes(5/3) } data:extend({ thermal_reactor_entity, prod_reactor_entity, prod_reactor_corpse, prod_reactor_explosion, }) local plutonium_explosion_wave = { type = "projectile", name = "adamo-nuclear-atomic-explosion-wave", flags = {"not-on-map"}, acceleration = 0, action = { { type = "direct", action_delivery = { type = "instant", target_effects = { { type = "create-entity", entity_name = "explosion" } } } }, { type = "area", radius = 3, action_delivery = { type = "instant", target_effects = { type = "damage", damage = {amount = 1000, type = "explosion"} } } } }, animation = { filename = "__core__/graphics/empty.png", frame_count = 1, width = 1, height = 1, priority = "high" }, shadow = { filename = "__core__/graphics/empty.png", frame_count = 1, width = 1, height = 1, priority = "high" } } local plutonium_rocket_projectile = { type = "projectile", name = "adamo-nuclear-thermonuclear-rocket-projectile", flags = {"not-on-map"}, acceleration = 0.005, action = { type = "direct", action_delivery = { type = "instant", target_effects = { { repeat_count = 150, type = "create-trivial-smoke", smoke_name = "nuclear-smoke", offset_deviation = {{-1, -1}, {1, 1}}, starting_frame = 3, starting_frame_deviation = 5, starting_frame_speed = 0, starting_frame_speed_deviation = 5, speed_from_center = 0.5 }, { type = "create-entity", entity_name = "explosion" }, { type = "damage", damage = {amount = 1000, type = "explosion"} }, { type = "create-entity", entity_name = "small-scorchmark", check_buildability = true }, { type = "nested-result", action = { type = "area", target_entities = false, trigger_from_target = true, repeat_count = 2000, radius = 35, action_delivery = { type = "projectile", projectile = "adamo-nuclear-atomic-explosion-wave", starting_speed = 0.5 } } } } } }, light = {intensity = 0.8, size = 15}, animation = { filename = "__base__/graphics/entity/" .."rocket/rocket.png", frame_count = 8, line_length = 8, width = 9, height = 35, shift = {0, 0}, priority = "high" }, shadow = { filename = "__base__/graphics/entity/" .."rocket/rocket-shadow.png", frame_count = 1, width = 7, height = 24, priority = "high", shift = {0, 0} }, smoke = { { name = "smoke-fast", deviation = {0.15, 0.15}, frequency = 1, position = {0, 1}, slow_down_factor = 1, starting_frame = 3, starting_frame_deviation = 5, starting_frame_speed = 0, starting_frame_speed_deviation = 5 } } } local plutonium_rocket_ammo = { type = "ammo", name = "adamo-nuclear-thermonuclear-rocket", subgroup = "ammo", order = "d[rocket-launcher]-r[adamo-nuclear-thermonuclear-rocket]", stack_size = 10, icon = "__base__/graphics/icons/atomic-bomb.png", icon_size = 64, icon_mipmaps = 4, ammo_type = { range_modifier = 3, cooldown_modifier = 3, target_type = "position", category = "rocket", action = { type = "direct", action_delivery = { type = "projectile", projectile = "adamo-nuclear-thermonuclear-rocket-projectile", starting_speed = 0.05, source_effects = { type = "create-entity", entity_name = "explosion-hit" } } } } } data:extend({ plutonium_explosion_wave, plutonium_rocket_projectile, plutonium_rocket_ammo })