mirror of
https://asciireactor.com/factorio/adamo-nuclear.git
synced 2024-12-03 17:25:07 +00:00
308 lines
8.3 KiB
Lua
308 lines
8.3 KiB
Lua
MOX_glow_color = {r = 1,g = 1,b = 1,a = 1}
|
|
sulfuric_base_color = data.raw.fluid["sulfuric-acid"].base_color
|
|
sulfuric_flow_color = data.raw.fluid["sulfuric-acid"].flow_color
|
|
uranium_hex_base_color = {r = 0.5,g = 0.5,b = 0.5}
|
|
uranium_hex_flow_color = {r = 0.5,g = 0.5,b = 0.5}
|
|
plutonium_hex_base_color = {r= 100,g = 10,b = 10,a = 150}
|
|
plutonium_hex_flow_color = {r= 100,g = 10,b = 10,a = 25}
|
|
oxide_color_table = {
|
|
-- NU = {r=139,g=69,b=19},
|
|
NU = {r = 0,g = 200,b = 255},
|
|
DU = {r = 16, g = 16, b = 16},
|
|
LEU = {r = 210, g = 210, b = 210},
|
|
HEU = {r = 255, g = 255, b = 255},
|
|
-- WGU = {r = 224, g = 224, b = 224},
|
|
-- RGPu = {r = 0, g = 153, b = 0},
|
|
RGPu = {r = 0, g = 153, b = 0},
|
|
WGU = {r = 0, g = 255, b = 0},
|
|
}
|
|
oxide_color_table["LEU-PUREX"] = {r=150,g=0,b=150}
|
|
oxide_color_table["HEU-PUREX"] = {r=200,g=0,b=0}
|
|
LEU_slurry_base_color = adamo.colors.darkbrown
|
|
LEU_slurry_flow_color = oxide_color_table["LEU-PUREX"]
|
|
HEU_slurry_base_color = adamo.colors.darkbrown
|
|
HEU_slurry_flow_color = oxide_color_table["HEU-PUREX"]
|
|
pg_flow_color = data.raw.fluid["petroleum-gas"].flow_color
|
|
pg_base_color = data.raw.fluid["petroleum-gas"].base_color
|
|
|
|
natural_hex_fluid = {
|
|
type = "fluid",
|
|
name = "adamo-nuclear-natural-uranium-hex",
|
|
subgroup = hex_subgroup.name,
|
|
order = "n0",
|
|
icon = "__adamo-nuclear__/graphics/icons/hex.png",
|
|
icon_size = 32,
|
|
base_color = uranium_hex_base_color,
|
|
flow_color = oxide_color_table.NU,
|
|
default_temperature = 25,
|
|
max_temperature = 100,
|
|
heat_capacity = "0.1KJ",
|
|
}
|
|
LEU_slurry = {
|
|
type = "fluid",
|
|
name = "adamo-nuclear-LEU-slurry",
|
|
subgroup = slurry_group.name,
|
|
order = "o1",
|
|
icon = "__adamo-nuclear__/graphics/icons/LEU-sludge.png",
|
|
icon_size = 32,
|
|
base_color = LEU_slurry_base_color,
|
|
flow_color = LEU_slurry_flow_color,
|
|
default_temperature = 25,
|
|
max_temperature = 100,
|
|
heat_capacity = "0.01KJ",
|
|
}
|
|
HEU_slurry = {
|
|
type = "fluid",
|
|
name = "adamo-nuclear-HEU-slurry",
|
|
subgroup = slurry_group.name,
|
|
order = "o2",
|
|
icon = "__adamo-nuclear__/graphics/icons/HEU-sludge.png",
|
|
icon_size = 32,
|
|
base_color = HEU_slurry_base_color,
|
|
flow_color = HEU_slurry_flow_color,
|
|
default_temperature = 25,
|
|
max_temperature = 100,
|
|
heat_capacity = "0.1KJ",
|
|
}
|
|
urania_item = {
|
|
type = "item",
|
|
name = "adamo-nuclear-uranium-oxide",
|
|
subgroup = processing_group.name,
|
|
order = "n",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/urania.png",
|
|
icon_size = 32,
|
|
}
|
|
LEU_fuel_item = {
|
|
type = "item",
|
|
name = "adamo-nuclear-LEU-fuel-cell",
|
|
subgroup = fuel_group.name,
|
|
order = "m",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/blue-fuel-cell.png",
|
|
icon_size = 32,
|
|
fuel_category = thermal_fuel_category.name,
|
|
fuel_value = "62GJ",
|
|
burnt_result = "adamo-nuclear-used-up-LEU-fuel-cell",
|
|
}
|
|
HEU_fuel_item = data.raw.item["uranium-fuel-cell"]
|
|
MOX_fuel_item = {
|
|
type = "item",
|
|
name = "adamo-nuclear-MOX-fuel-cell",
|
|
subgroup = fuel_group.name,
|
|
order = "o",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/cyan-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
|
|
}
|
|
WGPu_fuel_item = {
|
|
type = "item",
|
|
name = "adamo-nuclear-WGPu-fuel-cell",
|
|
subgroup = products_group.name,
|
|
order = "w",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/activated-green-fuel-cell.png",
|
|
icon_size = 32,
|
|
}
|
|
used_LEU_item = {
|
|
type = "item",
|
|
name = LEU_fuel_item.burnt_result,
|
|
subgroup = spent_fuel_group.name,
|
|
order = "m1",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/purple-fuel-cell.png",
|
|
icon_size = 32,
|
|
}
|
|
used_HEU_item = data.raw.item["used-up-uranium-fuel-cell"]
|
|
used_MOX_item = {
|
|
type = "item",
|
|
name = MOX_fuel_item.burnt_result,
|
|
subgroup = spent_fuel_group.name,
|
|
order = "m3",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/brown-fuel-cell.png",
|
|
icon_size = 32,
|
|
}
|
|
actinides_item = {
|
|
type = "item",
|
|
name = "adamo-nuclear-actinides",
|
|
subgroup = reprocessing_group.name,
|
|
order = "p",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/actinides.png",
|
|
icon_size = 32,
|
|
}
|
|
waste_item = {
|
|
type = "item",
|
|
name = "adamo-nuclear-ceramic-waste",
|
|
subgroup = reprocessing_group.name,
|
|
order = "w",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/ceramic-waste.png",
|
|
icon_size = 64,
|
|
}
|
|
|
|
local order_number = 1
|
|
for _,grade in pairs({
|
|
"LEU","HEU","WGU","DU","LEU-PUREX","HEU-PUREX"
|
|
}) do
|
|
local oxide_color = oxide_color_table[grade]
|
|
local hex_color = uranium_hex_base_color
|
|
local item = {
|
|
type = "item",
|
|
name = "adamo-nuclear-"..grade.."-oxide",
|
|
subgroup = recovery_group.name,
|
|
order = "nz"..order_number.."a",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/"..grade..".png",
|
|
icon_size = 32,
|
|
}
|
|
local fluid = {
|
|
type = "fluid",
|
|
name = "adamo-nuclear-"..grade.."-hex",
|
|
subgroup = enrichment_group.name,
|
|
order = "nz"..order_number.."b",
|
|
icon = "__adamo-nuclear__/graphics/icons/"..grade.."-hex.png",
|
|
icon_size = 32,
|
|
base_color = hex_color,
|
|
flow_color = oxide_color,
|
|
default_temperature = 25,
|
|
max_temperature = 100,
|
|
heat_capacity = "0.1KJ",
|
|
|
|
}
|
|
if grade:match "PUREX" then
|
|
item.subgroup = processing_group.name
|
|
fluid.subgroup = processing_group.name
|
|
end
|
|
data:extend({item,fluid})
|
|
order_number = order_number + 1
|
|
end
|
|
|
|
|
|
for _,grade in pairs({
|
|
"LEU","HEU","WGU","DU","LEU-PUREX","HEU-PUREX"
|
|
}) do
|
|
local oxide_color = oxide_color_table[grade]
|
|
local hex_color = uranium_hex_base_color
|
|
local hex_flow_color = uranium_hex_flow_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 = 100
|
|
}},
|
|
results = {{
|
|
type = "fluid",
|
|
name = "adamo-chemical-hydrofluoric-acid",
|
|
amount = 60,
|
|
},{
|
|
type = "item",
|
|
name = "adamo-nuclear-"..grade.."-oxide",
|
|
amount = 1
|
|
}},
|
|
crafting_machine_tint = {
|
|
primary = hex_color,
|
|
secondary = oxide_color,
|
|
tertiary = hex_flow_color,
|
|
quaternary = oxide_color
|
|
},
|
|
}
|
|
local hex_recipe = {
|
|
type = "recipe",
|
|
name = "adamo-nuclear-"..grade.."-hex",
|
|
category = "chemistry",
|
|
enabled = false,
|
|
energy_required = 10,
|
|
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 = 100
|
|
}},
|
|
results = {{
|
|
type = "fluid",
|
|
name = "adamo-nuclear-"..grade.."-hex",
|
|
amount = 10
|
|
}},
|
|
hide_from_player_crafting = true,
|
|
crafting_machine_tint = {
|
|
primary = hex_color,
|
|
secondary = oxide_color,
|
|
tertiary = adamo.colors.hf_flow,
|
|
quaternary = oxide_color
|
|
},
|
|
}
|
|
if grade:match "PUREX" then
|
|
hex_recipe.hide_from_player_crafting = false
|
|
oxide_recipe.hide_from_player_crafting = true
|
|
adamo.tech.add.recipe("nuclear-fuel-reprocessing",hex_recipe)
|
|
adamo.tech.add.recipe("nuclear-fuel-reprocessing",oxide_recipe)
|
|
elseif grade:match "LEU" or grade:match "DU" then
|
|
adamo.tech.add.recipe("uranium-processing",oxide_recipe)
|
|
adamo.tech.add.recipe("uranium-processing",hex_recipe)
|
|
else
|
|
adamo.tech.add.recipe("nuclear-power",oxide_recipe)
|
|
adamo.tech.add.recipe("nuclear-power",hex_recipe)
|
|
end
|
|
data:extend({hex_recipe,oxide_recipe})
|
|
end
|
|
|
|
|
|
data:extend({
|
|
{
|
|
type = "item",
|
|
name = "adamo-nuclear-RGPu-oxide",
|
|
subgroup = processing_group.name,
|
|
order = "nz"..order_number,
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/RGPu.png",
|
|
icon_size = 32,
|
|
},
|
|
{
|
|
type = "item",
|
|
name = "adamo-nuclear-Pu238-oxide",
|
|
subgroup = products_group.name,
|
|
order = "m",
|
|
stack_size = 50,
|
|
icon = "__adamo-nuclear__/graphics/icons/Pu238.png",
|
|
icon_size = 32,
|
|
}
|
|
})
|
|
order_number = order_number + 1
|
|
|
|
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
|
|
}}
|