This commit is contained in:
Simon Brodtmann 2025-10-11 00:57:09 +02:00
parent c6620b338f
commit f68a992587
34 changed files with 1969 additions and 1 deletions

View file

@ -0,0 +1,93 @@
local util = require("data-util")
if mods["248k-Redux"] then
data:extend({
{
type = "fluid",
name = "fi-arc-pure-cobalt",
default_temperature = 1900,
max_temperature = 2650,
heat_capacity = "100kJ",
base_color = { r=0.92, g=0.29, b=0.22 },
flow_color = { r=0.92, g=0.29, b=0.22 },
pressure_to_speed_ratio = 0.400,
flow_to_energy_ratio = 0,
icon = "__Cobalt2__/graphics/icons/fi-arc-pure-cobalt.png",
icon_size = 64, icon_mipmaps = 4,
order = "a-a"
},
{
type = "item",
name = "fi-materials-pure-cobalt",
icon = "__Cobalt2__/graphics/icons/fi-materials-pure-cobalt.png",
icon_size = 64,
stack_size = 100,
subgroup = "fi_item_subgroup_a-c",
order = "b-a",
},
{
type = "recipe",
name = "fi-purify-cobalt-recipe",
enabled = false,
category = "el_purifier_category",
main_product = "el_dirty_water",
ingredients = {
{type="fluid", name="water", amount=50},
{type="item", name="cobaltite-ore", amount=10}
},
results = {
{type="fluid", name="el_dirty_water", amount=50},
{type="item", name="fi-materials-pure-cobalt", amount=5},
},
energy_required = 1,
always_show_made_in = true,
icon_size = 64,
icons = (mods["Krastorio2"] and
{
{ icon = "__248k-Redux__/ressources/fluids/el_dirty_water.png", icon_size = 64},
{ icon = "__Cobalt2__/graphics/icons/cobaltite-ore.png", icon_size = 64, scale=0.2, shift= {-8, -8}},
} or {
{ icon = "__Cobalt2__/graphics/icons/cobaltite-ore.png", icon_size = 64},
}),
group = "fi_item_group",
subgroup = "fi_item_subgroup_f",
order = "f-a",
},
{
type = "recipe",
name = "fi-arc-pure-cobalt-recipe",
enabled = false,
category = "el_arc_furnace_category",
ingredients = {
{type="item", name="fi-materials-pure-cobalt", amount=1},
},
results = {
{type="fluid", name="fi-arc-pure-cobalt", amount=200},
},
energy_required = 0.2,
order = "a-b",
group = "fi_item_group",
subgroup = "fi_item_subgroup_f",
always_show_made_in = true
},
{
type = "recipe",
name = "fi-cast-pure-cobalt-recipe",
enabled = false,
category = "el_caster_category",
ingredients = {
{type="fluid", name="fi-arc-pure-cobalt", amount=100},
},
results = {
{type="item", name="cobalt-plate", amount=1},
},
energy_required = 0.2,
order = "a-b",
always_show_made_in = true,
allow_decomposition = false
}
})
util.add_unlock("fi_caster_tech","fi-arc-pure-cobalt-recipe")
util.add_unlock("fi_caster_tech","fi-cast-pure-cobalt-recipe")
util.add_unlock("fi_purifier_tech","fi-purify-cobalt-recipe")
end

View file

@ -0,0 +1,115 @@
local util = require("data-util")
if mods["Krastorio2"] then
data:extend(
{
{
type = "item",
name = "enriched-cobalt",
icon_size = 64,
icon = "__Cobalt2__/graphics/icons/enriched-cobalt.png",
group ="raw-material",
subgroup = "cobalt",
order = "a",
stack_size = 100
},
{
type = "recipe",
name = "enriched-cobalt",
main_product="enriched-cobalt",
icon = "__Cobalt2__/graphics/icons/enriched-cobalt.png",
icon_size = 64,
category = "chemistry",
energy_required = 3,
enabled = false,
always_show_made_in = true,
always_show_products = true,
group ="raw-material",
subgroup = "cobalt",
ingredients =
{
{type = "fluid", name = "sulfuric-acid", amount = 3},
{type = "fluid", name = "water", amount = 25, ignored_by_productivity = 25, ignored_by_stats = 25},
{type = "item", name = "cobaltite-ore", amount = 9}
},
results =
{
{type = "item", name = "enriched-cobalt", amount = 6},
{type = "fluid", name = "kr-dirty-water", amount = 25, ignored_by_productivity = 25, ignored_by_stats = 25}
},
crafting_machine_tint =
{
primary = {r = 0.721, g = 0.525, b = 0.043, a = 0.000},
secondary = {r = 0.200, g = 0.680, b = 0.300, a = 0.357},
tertiary = {r = 0.690, g = 0.768, b = 0.870, a = 0.000},
quaternary = {r = 0.0, g = 0.980, b = 0.603, a = 0.900}
},
order = "e03[enriched-cobalt]"
},
{
type = "recipe",
name = "enriched-cobalt-plate",
icons =
{
{ icon = "__Cobalt2__/graphics/icons/cobalt-plate.png", icon_size = 64 },
{ icon = "__Cobalt2__/graphics/icons/enriched-cobalt.png", icon_size = 64, scale=0.125, shift= {-8, -8}},
},
category = "smelting",
energy_required = 16,
enabled = false,
always_show_made_in = true,
always_show_products = true,
ingredients = { {type="item", name="enriched-cobalt", amount=5} },
results = { {type="item", name="cobalt-plate", amount=5} },
order = "a",
},
{
type = "recipe",
name = "dirty-water-filtration-cobalt",
category = "kr-fluid-filtration",
icons =
{
{
icon = data.raw.fluid["kr-dirty-water"].icon,
icon_size = data.raw.fluid["kr-dirty-water"].icon_size
},
{
icon = data.raw.item["cobaltite-ore"].icon,
icon_size = data.raw.item["cobaltite-ore"].icon_size,
scale = 0.20 * (data.raw.fluid["kr-dirty-water"].icon_size/data.raw.item["cobaltite-ore"].icon_size),
shift = {0, 4}
}
},
icon_size = data.raw.fluid["kr-dirty-water"].icon_size,
energy_required = 2,
enabled = false,
allow_as_intermediate = false,
always_show_made_in = true,
always_show_products = true,
ingredients =
{
{type = "fluid", name = "kr-dirty-water", amount = 100, ignored_by_productivity = 100, ignored_by_stats = 100},
},
results =
{
{type = "fluid", name = "water", amount = 90, ignored_by_productivity = 90, ignored_by_stats = 90},
{type = "item", name = "stone", probability = 0.40, amount = 1},
{type = "item", name = "cobaltite-ore", probability = 0.10, amount = 1},
},
crafting_machine_tint =
{
primary = {r = 0.60, g = 0.20, b = 0, a = 0.6},
secondary = {r = 1.0, g = 0.843, b = 0.0, a = 0.9}
},
group ="raw-material",
subgroup = "cobalt",
order = "w013[dirty-water-filtration-Cobalt2]"
}
})
util.add_effect("kr-enriched-ores", { type = "unlock-recipe", recipe = "enriched-cobalt" })
util.add_effect("kr-enriched-ores", { type = "unlock-recipe", recipe = "enriched-cobalt-plate" })
util.add_effect("kr-enriched-ores", { type = "unlock-recipe", recipe = "dirty-water-filtration-cobalt" })
util.add_productivity("enriched-cobalt")
util.add_productivity("enriched-cobalt-plate")
end

View file

@ -0,0 +1,53 @@
-- Matter recipes for Krastorio2
if mods["Krastorio2"] then
local matter = require("__Krastorio2__/prototypes/libraries/matter")
data:extend(
{
{
type = "technology",
name = "cobalt-matter-processing",
icons =
{
{
icon = "__Krastorio2Assets__/technologies/matter-coal.png",
icon_size = 256,
},
{
icon = "__Cobalt2__/graphics/icons/cobaltite-ore.png",
icon_size = 64,
scale = 1.4,
}
},
prerequisites = {"kr-matter-processing"},
unit =
{
count = 350,
ingredients =
{
{"production-science-pack", 1},
{"utility-science-pack", 1},
{"matter-tech-card", 1}
},
time = 45
}
},
})
matter.createMatterRecipe({
material = { type = "item", name = "cobaltite-ore", amount = 10 },
matter_count = 5,
energy_required = 1,
need_stabilizer = false,
unlocked_by_technology = "cobalt-matter-processing"
})
matter.createMatterRecipe({
material = { type = "item", name = "cobalt-plate", amount = 10 },
matter_count = 10,
energy_required = 3,
only_deconversion = true,
need_stabilizer = true,
unlocked_by_technology = "cobalt-matter-processing"
})
end

View file

@ -0,0 +1,108 @@
-- Additional recipes if Space Exploration mod is enabled
local util = require("data-util")
if mods["space-exploration"] then
se_delivery_cannon_recipes["cobaltite-ore"] = {name= "cobaltite-ore"}
se_delivery_cannon_recipes["cobalt-plate"] = {name= "cobalt-plate"}
util.se_landfill({ore="cobaltite-ore"})
util.se_matter({ore="cobaltite-ore", energy_required=1, quant_out=10, stream_out=60})
data:extend({
{
type = "item-subgroup",
name = "cobalt",
group = "resources",
order = "a-h-z-a",
}
})
util.set_item_subgroup("cobalt-plate", "cobalt")
data:extend({
{
type = "item",
name = "cobalt-ingot",
icons = {{icon = "__Cobalt2__/graphics/icons/cobalt-ingot.png", icon_size = 64}},
order = "b-b",
stack_size = 50,
subgroup = "cobalt",
},
{
type = "fluid",
name = "molten-cobalt",
default_temperature = 232,
max_temperature = 232,
base_color = {r=191, g=219, b=233},
flow_color = {r=191, g=219, b=233},
icons = {{icon = "__Cobalt2__/graphics/icons/molten-cobalt.png", icon_size = 64}},
order = "a[molten]-a",
pressure_to_speed_ratio = 0.4,
flow_to_energy_ratio = 0.59,
auto_barrel = false,
subgroup = "fluid",
},
{
type = "recipe",
category = "smelting",
name = "molten-cobalt",
subgroup = "cobalt",
results = {
{type = "fluid", name = "molten-cobalt", amount = mods["Krastorio2"] and 750 or 900},
},
energy_required = 45,
ingredients = {
{name = mods["Krastorio2"] and "enriched-cobalt" or "cobaltite-ore", amount = 24},
{type = "fluid", name = "se-pyroflux", amount = 10},
},
enabled = false,
always_show_made_in = true,
allow_as_intermediate = false,
order = "a-a"
},
{
type = "recipe",
name = "cobalt-ingot",
category = "casting",
results = {{type="item", name="cobalt-ingot", amount=1}},
energy_required = 18.75,
ingredients = {
{type = "fluid", name = "molten-cobalt", amount = 250},
},
enabled = false,
always_show_made_in = true,
allow_as_intermediate = false,
},
{
type = "recipe",
category = "crafting",
name = "cobalt-ingot-to-plate",
icons = {
{icon = "__Cobalt2__/graphics/icons/cobalt-plate.png", icon_size = 64},
{icon = "__Cobalt2__/graphics/icons/cobalt-ingot.png", icon_size = 32, scale = 0.125, shift = {-8, -8}},
},
results = {
{type="item", name = "cobalt-plate", amount = 10},
},
energy_required = 3.75,
ingredients = {
{type="item", name = "cobalt-ingot", amount = 1}
},
enabled = false,
always_show_made_in = true,
allow_decomposition = false,
order = "a-c-b"
},
})
util.add_effect("se-pyroflux-smelting", {type = "unlock-recipe", recipe= "molten-cobalt"})
util.add_effect("se-pyroflux-smelting", {type = "unlock-recipe", recipe= "cobalt-ingot"})
util.add_effect("se-pyroflux-smelting", {type = "unlock-recipe", recipe= "cobalt-ingot-to-plate"})
util.add_effect("se-vulcanite-smelting", {type = "unlock-recipe", recipe= "molten-cobalt"})
util.add_effect("se-vulcanite-smelting", {type = "unlock-recipe", recipe= "cobalt-ingot"})
util.add_effect("se-vulcanite-smelting", {type = "unlock-recipe", recipe= "cobalt-ingot-to-plate"})
if mods["Krastorio2"] then
util.set_item_subgroup("enriched-cobalt", "cobalt")
data.raw.recipe["enriched-cobalt-plate"].order= "d[cobalt-plate]"
se_delivery_cannon_recipes["enriched-cobalt"] = {name= "enriched-cobalt"}
end
se_delivery_cannon_recipes["cobalt-ingot"] = {name= "cobalt-ingot"}
end

View file

@ -0,0 +1,202 @@
local util = require("data-util")
data:extend({{
type = "item-subgroup",
name = "cobalt",
group = "intermediate-products",
order = "c"
}
})
local founding_category = "crafting"
if mods["bzfoundry"] then
founding_category = "founding"
end
local cobalt_carbide_ingredients = {{type="item", name="cobalt-plate", amount=6}}
if data.raw.item["tungsten-carbide"] then
table.insert(cobalt_carbide_ingredients, {type="item", name="tungsten-carbide", amount=2})
end
if data.raw.item["tantalum-plate"] then
table.insert(cobalt_carbide_ingredients, {type="item", name="tantalum-plate", amount=3})
end
local high_power_cobalt_magnet_ingredients = {{type="item", name="cobalt-plate", amount=4}}
if data.raw.item["graphene"] then
table.insert(high_power_cobalt_magnet_ingredients, {type="item", name="graphene", amount=2})
end
if data.raw.item["kr-rare-metals"] then
table.insert(high_power_cobalt_magnet_ingredients, {type="item", name="kr-rare-metals", amount=2})
end
local cobalt_electromagnet_ingredients = {{type="item", name="cobalt-plate", amount=4}}
if data.raw.item["niobium-tin-cable"] then
table.insert(cobalt_electromagnet_ingredients, {type="item", name="niobium-tin-cable", amount=2})
end
if data.raw.item["indium-solder"] then
table.insert(cobalt_electromagnet_ingredients, {type="item", name="indium-solder", amount=1})
end
data:extend({
{
type = "item",
name = "cobalt-plate",
icon = "__Cobalt2__/graphics/icons/cobalt-plate.png",
icon_size = 64,
subgroup = "cobalt",
order = "b[cobalt-plate]",
stack_size = 100
},
{
type = "item",
name = "cobalt-carbide",
icon = "__Cobalt2__/graphics/icons/cobalt-carbide.png",
icon_size = 64,
subgroup = "cobalt",
order = "b[cobalt-carbide]",
stack_size = 100,
},
{
type = "item",
name = "cobalt-electromagnet",
icon = "__Cobalt2__/graphics/icons/cobalt-electromagnet.png",
icon_size = 128,
subgroup = "intermediate-product",
order = "e[cobalt-electromagnet]",
stack_size = 100,
},
{
type = "item",
name = "high-power-cobalt-magnet",
icon = "__Cobalt2__/graphics/icons/high-power-cobalt-magnet.png",
icon_size = 64,
subgroup = "intermediate-product",
order = "h[high-power-cobalt-magnet]",
stack_size = 100,
},
{
type = "recipe",
name = "cobalt-plate",
category = "smelting",
order = "a[cobalt-plate]",
icons = (mods["Krastorio2"] and
{
{ icon = "__Cobalt2__/graphics/icons/cobalt-plate.png", icon_size = 64},
{ icon = "__Cobalt2__/graphics/icons/cobaltite-ore.png", icon_size = 64, scale=0.125, shift= {-8, -8}},
} or {
{ icon = "__Cobalt2__/graphics/icons/cobalt-plate.png", icon_size = 64},
}),
main_product = "cobalt-plate",
enabled = false,
energy_required = 24,
ingredients = {{type="item", name="cobaltite-ore", amount=15}},
results = {{type="item", name = "cobalt-plate", amount=5}}
},
{
type = "recipe",
name = "cobalt-carbide",
category = founding_category,
order = "d[cobalt-carbide]",
enabled = false,
energy_required = 4,
ingredients = cobalt_carbide_ingredients,
results = {{type="item", name="cobalt-carbide", amount=2}},
},
{
type = "recipe",
name = "high-power-cobalt-magnet",
category = "crafting",
order = "h[high-power-cobalt-magnet]",
enabled = false,
energy_required = 5,
ingredients = high_power_cobalt_magnet_ingredients,
results = {{type="item", name="high-power-cobalt-magnet", amount=1}},
},
{
type = "recipe",
name = "cobalt-electromagnet",
category = "crafting",
order = "c[cobalt-electromagnet]",
enabled = false,
energy_required = 4,
ingredients = cobalt_electromagnet_ingredients,
results = {{type="item", name="cobalt-electromagnet", amount=2}},
}
})
if mods["space-exploration"] then
util.add_unlock("se-space-assembling","high-power-cobalt-magnet")
else
util.add_unlock("automation-3","high-power-cobalt-magnet")
end
if mods["Chromium2"] then
data:extend({
{
type = "item",
name = "co-cr-alloy",
icon = "__Cobalt2__/graphics/icons/co-cr-alloy.png",
icon_size = 64,
subgroup = "cobalt",
order = "c[cobalt-carbide]",
stack_size = 100,
},
{
type = "recipe",
name = "co-cr-alloy",
category = founding_category,
order = "c[co-cr-alloy]",
enabled = false,
energy_required = 20,
ingredients = {{type="item", name="cobalt-plate", amount=5}, {type="item", name="chromium-plate", amount=5}},
results = {{type="item", name="co-cr-alloy", amount=10}},
}
})
util.add_productivity("co-cr-alloy")
util.add_unlock("robotics","co-cr-alloy")
end
if mods["space-exploration"] then
data:extend({
{
type = "recipe",
name = "cobalt-data-storage-substrate",
icons = {
{ icon = "__space-exploration-graphics__/graphics/icons/data-storage-substrate.png", icon_size = 64},
{ icon = "__Cobalt2__/graphics/icons/cobalt-plate.png", icon_size = 64, scale=0.3},
},
category = "crafting",
group = "science",
subgroup = "data-generic",
order = "z-01",
enabled = false,
energy_required = 10,
ingredients = {{type="item", name="glass", amount=2},{type="item", name="silicon", amount=2},{type="item", name="cobalt-plate", amount=4}},
results = {{type="item", name="se-data-storage-substrate", amount=1}, {name="se-scrap", amount=1, probability=0.5}},
},
{
type = "recipe",
name = "co-cr-aeroframe-pole",
icons = {
{ icon = "__space-exploration-graphics__/graphics/icons/aeroframe-pole.png", icon_size = 64},
{ icon = "__Cobalt2__/graphics/icons/co-cr-alloy.png", icon_size = 64, scale=0.3, shift= {-8, -8}},
},
category = "crafting",
group = "intermediate-products",
subgroup = "specialist-assembling",
order = "z-05",
enabled = false,
energy_required = 1,
ingredients = {{type="item", name="se-beryllium-plate", amount=2},{type="item", name="co-cr-alloy", amount=2}},
results = {{type="item", name="se-aeroframe-pole", amount=2}},
}
})
util.add_unlock("se-aeroframe-pole","co-cr-aeroframe-pole")
util.add_productivity("co-cr-aeroframe-pole")
end
util.add_productivity("cobalt-plate")
util.add_productivity("cobalt-carbide")
util.add_productivity("high-power-cobalt-magnet")
util.add_productivity("cobalt-electromagnet")

View file

@ -0,0 +1,73 @@
local resource_autoplace = require('resource-autoplace');
local item_sounds = require('__base__.prototypes.item_sounds')
data.raw.planet.nauvis.map_gen_settings.autoplace_controls["cobaltite-ore"] = {}
data.raw.planet.nauvis.map_gen_settings.autoplace_settings.entity.settings["cobaltite-ore"] = {}
resource_autoplace.initialize_patch_set("cobaltite-ore", true)
data:extend({
{
type = "autoplace-control",
category = "resource",
name = "cobaltite-ore",
richness = true,
order = "b-e"
},
{
type = "resource",
icon_size = 64,
icon_mipmaps = 3,
name = "cobaltite-ore",
icon = "__Cobalt2__/graphics/icons/cobaltite-ore.png",
flags = { "placeable-neutral" },
order = "a-b-a",
map_color = { r = 0.20, g = 0.20, b = 1.00 },
minable =
{
hardness = 1,
mining_particle = "copper-ore-particle",
mining_time = 1,
result = "cobaltite-ore"
},
collision_box = { { -0.1, -0.1 }, { 0.1, 0.1 } },
selection_box = { { -0.5, -0.5 }, { 0.5, 0.5 } },
autoplace = resource_autoplace.resource_autoplace_settings {
name = "cobaltite-ore",
order = "b-z",
base_density = 2,
base_spots_per_km2 = 1,
has_starting_area_placement = true,
regular_rq_factor_multiplier = 1.0,
starting_rq_factor_multiplier = 1.0,
},
stage_counts = { 15000, 9500, 5500, 2900, 1300, 400, 150, 80 },
stages =
{
sheet =
{
filename = "__Cobalt2__/graphics/entity/ores/hr-cobaltite-ore.png",
priority = "extra-high",
size = 128,
frame_count = 8,
variation_count = 8,
scale = 0.5
}
},
},
{
type = "item",
name = "cobaltite-ore",
icon_size = 64,
icon_mipmaps = 3,
icon = "__Cobalt2__/graphics/icons/cobaltite-ore.png",
subgroup = "raw-resource",
order = "t-c-a",
stack_size = 50,
weight = 20 * kg,
inventory_move_sound = item_sounds.resource_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.resource_inventory_move
},
})

View file

@ -0,0 +1,127 @@
local util = require("data-util")
local cobaltCarbidePre = {"chemical-science-pack"}
local cobaltCarbideIng = {
{ "automation-science-pack", 1 },
{ "logistic-science-pack", 1 },
{ "chemical-science-pack", 1 }
}
local cobaltElecPre = {"chemical-science-pack"}
local cobaltElecIng = {
{ "automation-science-pack", 1 },
{ "logistic-science-pack", 1 },
{ "chemical-science-pack", 1 }
}
if mods["space-exploration"] then
cobaltCarbidePre = {"space-science-pack"}
cobaltCarbideIng = {
{ "automation-science-pack", 1 },
{ "logistic-science-pack", 1 },
{ "chemical-science-pack", 1 },
{ "se-rocket-science-pack", 1 },
{ "space-science-pack", 1 }
}
cobaltElecPre = {"space-science-pack"}
cobaltElecIng = {
{ "automation-science-pack", 1 },
{ "logistic-science-pack", 1 },
{ "chemical-science-pack", 1 },
{ "se-rocket-science-pack", 1 },
{ "space-science-pack", 1 }
}
end
data:extend({
{
type = "technology",
name = "cobalt-refining",
icons = {{ icon = "__Cobalt2__/graphics/icons/cobalt-plate.png", icon_size = 64 }},
prerequisites = {"advanced-material-processing"},
effects = {
{
type = "unlock-recipe",
recipe = "cobalt-plate",
}
},
unit =
{
count = 75,
ingredients =
{
{ "automation-science-pack", 1 },
{ "logistic-science-pack", 1 }
},
time = 30
}
},
{
type = "technology",
name = "cobalt-carbide",
icons = {{ icon = "__Cobalt2__/graphics/icons/cobalt-carbide.png", icon_size = 64 }},
prerequisites = cobaltCarbidePre,
effects = {
{
type = "unlock-recipe",
recipe = "cobalt-carbide",
}
},
unit =
{
count = 100,
ingredients = cobaltCarbideIng,
time = 30
}
},
{
type = "technology",
name = "cobalt-electromagnet",
icons = {{ icon = "__Cobalt2__/graphics/icons/cobalt-electromagnet.png", icon_size = 128 }},
prerequisites = cobaltElecPre,
effects = {
{
type = "unlock-recipe",
recipe = "cobalt-electromagnet",
}
},
unit =
{
count = 100,
ingredients = cobaltElecIng,
time = 30
}
}
})
if mods["space-exploration"] then
data:extend({
{
type = "technology",
name = "cobalt-substrates",
icons = {
{ icon = "__space-exploration-graphics__/graphics/technology/data-card.png", icon_size = 141},
{ icon = "__Cobalt2__/graphics/icons/cobalt-plate.png", icon_size = 64, scale=0.5, shift= {-16, -16}},
},
prerequisites = {"production-science-pack"},
effects = {
{
type = "unlock-recipe",
recipe = "cobalt-data-storage-substrate",
}
},
unit =
{
count = 75,
ingredients =
{
{ "automation-science-pack", 1 },
{ "logistic-science-pack", 1 },
{ "chemical-science-pack", 1 },
{ "se-rocket-science-pack", 1 },
{ "space-science-pack", 1 },
{ "production-science-pack", 1 }
},
time = 30
}
}
})
end