adamo-nuclear/data.lua

1938 lines
46 KiB
Lua

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
})