adamo-nuclear/materials.lua

308 lines
8.3 KiB
Lua
Raw Normal View History

2023-12-20 04:27:07 +00:00
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
}}