Restructure repository

This commit is contained in:
Simon Brodtmann 2025-10-19 16:35:09 +02:00
parent 58b29d041d
commit 88a2da7b40
125 changed files with 3 additions and 41 deletions

20
bzcarbon2/LICENSE.md Normal file
View file

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2021 Brevven
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View file

@ -0,0 +1,12 @@
local util = require("data-util");
if util.me.use_fiber() then
if not mods["space-age"] then
util.replace_ingredient("low-density-structure", "plastic-bar", "carbon-fiber")
util.replace_ingredient("se-low-density-structure-beryllium", "plastic-bar", "carbon-fiber")
util.add_ingredient("exoskeleton-equipment", "carbon-fiber", 10)
util.replace_ingredient("combat-shotgun", "wood", "carbon-fiber")
end
util.replace_some_ingredient("flying-fortress", util.titanium_plate, 1000, "carbon-fiber", 2000)
util.replace_some_ingredient("flying-fortress", "steel-plate", 1000, "carbon-fiber", 2000)
end

View file

@ -0,0 +1,85 @@
-- Matter recipes for Krastorio2
local util = require("data-util");
if util.k2() then
data:extend(
{
{
type = "technology",
name = "carbon-matter-processing",
icons =
{
{
icon = util.k2assets().."/technologies/matter-coal.png",
icon_size = 256,
},
{
icon = "__bzcarbon__/graphics/icons/diamond.png",
icon_size = 128,
scale = 0.7,
}
},
effects = {},
prerequisites = {"kr-matter-processing"},
unit =
{
count = 350,
ingredients =
{
{"production-science-pack", 1},
{"utility-science-pack", 1},
{"kr-matter-tech-card", 1}
},
time = 45
}
},
})
util.k2matter({
k2matter = {
material = {
name = "flake-graphite",
type = "item",
amount = 10,
},
matter_count = 5,
energy_required = 1,
needs_stabilizer = false,
allow_productivity = true,
unlocked_by = "carbon-matter-processing"
}
})
util.k2matter({
k2matter = {
material = {
name = "graphite",
type = "item",
amount = 10,
},
matter_count = 7.5,
energy_required = 2,
needs_stabilizer = true,
allow_productivity = true,
only_deconversion = true,
unlocked_by = "carbon-matter-processing"
}
})
util.k2matter({
k2matter = {
material = {
name = "diamond",
type = "item",
amount = 1,
},
matter_count = 8,
energy_required = 2,
needs_stabilizer = true,
allow_productivity = true,
only_deconversion = true,
unlocked_by = "carbon-matter-processing"
}
})
end

View file

@ -0,0 +1,11 @@
local util = require("data-util")
local cutil = require("carbon-util")
if util.k2() then
if util.me.use_fullerenes() then
-- Add extra nanotube recipes.
-- This could be moved to data-updates in future if necessary
cutil.nanotube_recipe("imersium-plate")
cutil.nanotube_recipe("kr-s-c-imersium-beam", "imersium-beam")
cutil.nanotube_recipe("kr-s-c-imersium-gear-wheel", "imersium-gear-wheel")
end
end

View file

@ -0,0 +1,15 @@
local util = require("data-util");
if util.me.use_flake_graphite() and mods["Rich-Rocks-Requiem"] then
if data.raw.recipe["rrr-stone-processing"] then
table.insert(data.raw.recipe["rrr-stone-processing"].results,
{name = "flake-graphite", probability = 0.35, amount = 1}
)
end
if data.raw.recipe["rrr-raw-ores-processing"] then
table.insert(data.raw.recipe["rrr-raw-ores-processing"].results,
{name = "flake-graphite", probability = 0.65, amount = 10}
)
end
end

View file

@ -0,0 +1,13 @@
local util = require("data-util");
local cutil = require("carbon-util")
if mods["space-exploration"] then
-- core mining balancing graphite at full, diamond removed
util.remove_product("se-core-fragment-omni", "rough-diamond")
if util.me.use_fullerenes() then
cutil.nanotube_recipe("se-aeroframe-scaffold", "se-aeroframe-scaffold", "se-aeroframe-scaffold")
local nm_name = cutil.nanotube_recipe("se-nanomaterial", "se-nanomaterial", "se-nanomaterial")
util.set_ingredient(nm_name, "nanotubes", 2)
end
end

View file

@ -0,0 +1,38 @@
-- Deadlock stacking recipes
local util = require("data-util");
if deadlock and deadlock["add_stack"] then
deadlock.add_stack("flake-graphite", "__bzcarbon__/graphics/icons/stacked/flake-graphite-stacked.png", "deadlock-stacking-1", 64)
deadlock.add_stack("graphite", "__bzcarbon__/graphics/icons/stacked/graphite-stacked.png", "deadlock-stacking-1", 128)
deadlock.add_stack("diamond", "__bzcarbon__/graphics/icons/stacked/diamond-stacked.png" , "deadlock-stacking-2", 128)
deadlock.add_stack("graphene", "__bzcarbon__/graphics/icons/stacked/graphene-stacked.png" , "deadlock-stacking-2", 128)
deadlock.add_stack("crucible", "__bzcarbon__/graphics/icons/stacked/crucible-stacked.png" , "deadlock-stacking-2", 128)
if util.me.use_fullerenes() then
deadlock.add_stack("fullerenes", "__bzcarbon__/graphics/icons/stacked/fullerene-stacked.png", "deadlock-stacking-2", 128)
deadlock.add_stack("nanotubes", "__bzcarbon__/graphics/icons/stacked/nanotube-stacked.png", "deadlock-stacking-2", 128)
end
if util.me.use_carbon_black() then
deadlock.add_stack("carbon-black", "__bzcarbon__/graphics/icons/stacked/carbon-black-stacked.png", "deadlock-stacking-2", 64)
end
if util.me.use_rough_diamond() then
deadlock.add_stack("rough-diamond", "__bzcarbon__/graphics/icons/stacked/rough-diamond-stacked.png" , "deadlock-stacking-2", 64)
end
end
-- Deadlock crating recipes
if deadlock_crating then
deadlock_crating.add_crate("flake-graphite", "deadlock-crating-1")
deadlock_crating.add_crate("graphite", "deadlock-crating-1")
deadlock_crating.add_crate("diamond", "deadlock-crating-2")
deadlock_crating.add_crate("graphene", "deadlock-crating-2")
deadlock_crating.add_crate("crucible", "deadlock-crating-2")
if util.me.use_fullerenes() then
deadlock_crating.add_crate("fullerenes", "deadlock-crating-2")
deadlock_crating.add_crate("nanotubes", "deadlock-crating-2")
end
if util.me.use_carbon_black() then
deadlock_crating.add_crate("carbon-black", "deadlock-crating-2")
end
end

View file

@ -0,0 +1,152 @@
local util = require("data-util");
if util.k2() then
-- HCL graphite processing
if util.me.use_flake_graphite() then
local gsubgroup = "raw-material"
if mods["space-exploration"] and data.raw["item-subgroup"]["carbon"] then
gsubgroup = "carbon"
end
data:extend({
{
type = "recipe",
name = "enriched-graphite",
main_product = "graphite",
icons = {
{ icon = "__bzcarbon__/graphics/icons/graphite.png", icon_size = 128},
{ icon = util.k2assets().."/icons/fluids/hydrogen-chloride.png", icon_size = 64, scale=0.25, icon_mipmaps = 3, shift= {-8, -8}},
},
category = "chemistry",
subgroup = gsubgroup,
order = "g[graphite]",
enabled = false,
energy_required = 6,
crafting_machine_tint =
{
primary = {r = 0.2, g = 0.2, b = 0.2, a = 0.6},
secondary = {r = 0.2, g = 0.2, b = 0.2, a = 0.9},
tertiary = {r = 0.2, g = 0.2, b = 0.2, a = 0.9},
quaternary = {r = 0.2, g = 0.2, b = 0.2, a = 0.9},
},
ingredients = {
{type="item", name="flake-graphite", amount=10},
{type="fluid", name="water", amount=25, ignored_by_stats=25, ignored_by_productivity=25},
{type="fluid", name="kr-hydrogen-chloride", amount=25},
},
results = {
{type="item", name="graphite", amount=18},
{type="fluid", name="kr-dirty-water", amount=25, ignored_by_stats=25, ignored_by_productivity=25},
},
},
{
type = "recipe",
name = "dirty-water-filtration-graphite",
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["flake-graphite"].icon,
icon_size = data.raw.item["flake-graphite"].icon_size,
scale = 0.20 * 64 / (data.raw.item["flake-graphite"].icon_size or 64),
shift = {0, 4}
}
},
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, catalyst_amount = 100},
},
results =
{
{type = "fluid", name = "water", amount = 90, catalyst_amount = 90},
{type = "item", name = "stone", probability = 0.30, amount = 1},
{type = "item", name = "flake-graphite", probability = 0.05, amount = 1},
},
crafting_machine_tint =
{
primary = {r = 0.2, g = 0.2, b = 0.2, a = 0.6},
secondary = {r = 0.2, g = 0.2, b = 0.2, a = 0.9}
},
subgroup = "raw-material",
order = "w013[dirty-water-filtration-graphite]"
},
{
type = "technology",
name = "enriched-graphite",
icons =
{
{
icon = "__bzcarbon__/graphics/icons/graphite.png",
icon_size = 128,
},
{
icon = util.k2assets().."/icons/fluids/hydrogen-chloride.png",
icon_size = 64, icon_mipmaps = 3,
shift = {-32,-32},
}
},
effects =
{
{
type = "unlock-recipe",
recipe = "enriched-graphite"
},
{
type = "unlock-recipe",
recipe = "dirty-water-filtration-graphite",
}
},
prerequisites = {"kr-enriched-ores"},
unit =
{
count = 50,
ingredients =
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1}
},
time = 30
}
},
})
end
-- heavy water
data:extend({
{
type = "recipe",
name = "heavy-water-graphene",
icons = {
{ icon = util.k2assets().."/icons/fluids/heavy-water.png", icon_size = 64, icon_mipmaps = 3,},
{ icon = "__bzcarbon__/graphics/icons/graphene.png", icon_size = 128, scale=0.25, shift= {-8, -8}},
},
category = "kr-electrolysis",
subgroup = "fluid-recipes",
order = "y06[heavy-water]",
enabled = false,
energy_required = 60,
ingredients = {
{type="item", name="graphene", amount=1, ignored_by_stats=1, ignored_by_productivity=1},
{type="fluid", name="water", amount=500},
},
results = {
{type="item", name="graphene", amount=1, probability=.8, ignored_by_stats=1, ignored_by_productivity=1},
{type="fluid", name="kr-heavy-water", amount=40},
},
}
})
util.add_effect("graphene", {type="unlock-recipe", recipe="heavy-water-graphene"})
util.add_prerequisite("fullerenes", "kr-atmosphere-condensation")
end

View file

@ -0,0 +1,52 @@
local util = require("data-util");
if mods["space-exploration"] then
if util.me.use_rough_diamond() then
se_resources["diamond"] = {
order = "b-z",
has_starting_area_placement = false,
base_density = 0.5,
base_spots_per_km2 = 0.5,
}
end
se_delivery_cannon_recipes["graphite"] = {name= "graphite"}
se_delivery_cannon_recipes["diamond"] = {name= "diamond"}
if util.me.use_flake_graphite() then
util.se_landfill({ore="flake-graphite"})
se_delivery_cannon_recipes["flake-graphite"] = {name= "flake-graphite"}
util.se_matter({ore="flake-graphite", energy_required=1, quant_out=10, stream_out=60})
end
if util.me.use_rough_diamond() then
se_delivery_cannon_recipes["rough-diamond"] = {name= "rough-diamond"}
if mods["space-exploration"] > "0.6" then
util.se_matter({ore="rough-diamond", energy_required=15, quant_out=1, stream_out=55})
end
end
data:extend({
{
type = "recipe",
name = "diamond-synthesis-vulcanite",
category = "smelting",
order = "g[diamond]",
energy_required = 40,
enabled = false,
always_show_made_in = true,
allow_as_intermediate = false,
ingredients = {
{type = "item", name = "graphite", amount = 20},
{type = "item", name = "se-vulcanite-block", amount = 1},
},
results = {
{type = "item", name = "diamond", amount = 3},
},
icons =
{
{ icon = "__bzcarbon__/graphics/icons/diamond.png", icon_size = 128},
{ icon = "__space-exploration-graphics__/graphics/icons/vulcanite-block.png", icon_size = 64, scale=0.25, shift= {-10, -10}},
},
},
})
util.add_effect("se-processing-vulcanite", {type="unlock-recipe", recipe="diamond-synthesis-vulcanite"})
end

View file

@ -0,0 +1,363 @@
local util = require("data-util");
-- TECHS
util.add_prerequisite("steel-processing", "graphite-processing")
util.add_prerequisite("low-density-structure", "diamond-processing")
util.add_prerequisite("processing-unit", "diamond-processing")
util.add_prerequisite("laser", "diamond-processing")
-- update carbon black alternate recipe if possible
util.replace_ingredient("carbon-black", "coal", "crushed-coal")
if not mods["space-age"] then -- more uses for graphene in vanilla
util.add_prerequisite("power-armor-mk2", "graphene")
util.add_ingredient("power-armor-mk2", "graphene", 30)
util.add_prerequisite("rocket-control-unit", "graphene")
util.add_ingredient("rocket-control-unit", "graphene", 1)
end
util.add_prerequisite("electronics", "graphite-processing")
if util.k2() then
util.add_prerequisite("graphite-processing", "automation-science-pack")
util.add_prerequisite("graphite-processing", "basic-fluid-handling")
end
-- furnace recipe rework w/ crucible, more in data-final-fixes
util.add_effect("advanced-material-processing-2", {type="unlock-recipe", recipe="crucible"})
for i, ingredient in pairs(util.me.crucible_ingredients) do
util.add_ingredient("crucible", ingredient, 5)
if data.raw.item[ingredient] then
util.add_to_product("crucible", "crucible", 1)
end
end
for i, furnace in pairs(util.me.furnaces) do
util.add_ingredient(furnace, "crucible", 1)
for j, ingredient in pairs(util.me.crucible_ingredients) do
util.remove_ingredient(furnace, ingredient)
end
end
-- space age
if mods["space-age"] then
util.add_ingredient("crusher", "diamond", 10)
util.add_ingredient("big-mining-drill", "diamond", 10)
util.add_prerequisite("big-mining-drill", "diamond-processing-2")
util.replace_ingredient("quantum-processor", "tungsten-carbide", "diamond", 2)
if data.raw.fluid["vacuum"] then
util.add_ingredient("graphite-synthesis", "vacuum", 4)
end
util.remove_product("scrap-recycling", "solder")
util.add_product("scrap-recycling", util.item("rough-diamond", 1, .01))
util.set_product_probability("scrap-recycling", "processing-unit", 0.03)
util.add_ingredient("cryogenic-plant", "graphene", 20)
util.add_ingredient("fluoroketone", "graphene", 1)
-- Crushing industries
util.add_ingredient("crusher-2", "diamond", 10)
util.add_ingredient("big-crusher", "diamond", 10)
util.add_ingredient("big-electric-crusher", "diamond", 10)
if mods["planet-muluna"] then
util.add_unlock("greenhouses", "diamond-processing")
end
end
-- fullerenes & nanotubes
if util.me.use_fullerenes() then
util.add_prerequisite("graphene", "fullerenes")
util.add_prerequisite("military-3", "fullerenes")
util.replace_some_ingredient("poison-capsule", "coal", 9, "fullerenes", 90)
if not util.k2() then
util.replace_some_ingredient("slowdown-capsule", "coal", 4, "fullerenes", 40)
end
util.add_ingredient("capture-bot-rocket", "fullerenes", 10)
util.add_ingredient("biolab", "fullerenes", 50)
util.add_ingredient("overgrowth-yumako-soil", "fullerenes", 50)
util.add_ingredient("overgrowth-jellynut-soil", "fullerenes", 50)
-- K2
util.add_ingredient("kr-biter-virus", "fullerenes", 100)
util.add_ingredient("kr-creep-virus", "fullerenes", 100)
util.replace_some_ingredient("kr-biomass", "petroleum-gas", 25, "fullerenes", 25)
-- SE
util.add_ingredient("se-vitalic-reagent", "fullerenes", 4)
util.add_ingredient("se-medpack-2", "fullerenes", 100)
util.add_ingredient("se-nutrient-gel", "fullerenes", 5)
util.add_ingredient("se-nutrient-gel-coal", "fullerenes", 5)
end
-- carbon black
if util.me.use_carbon_black() then
-- Plastic from carbon black, carbon black from oil processing
util.replace_ingredient("plastic-bar", "coal", "carbon-black")
util.replace_ingredient("plastic-bar", "crushed-coal", "carbon-black", 1)
util.add_product("basic-oil-processing", util.item("carbon-black", 1))
util.add_product("advanced-oil-processing", util.item("carbon-black", 1))
util.add_product("light-oil-cracking", util.item("carbon-black", 1))
util.add_product("heavy-oil-cracking", util.item("carbon-black", 1))
-- More outlets for carbon black now, so can make it here too
util.add_product("simple-coal-liquefaction", util.item("carbon-black", 1))
util.add_product("coal-liquefaction", util.item("carbon-black", 1))
--K2
if mods.bztitanium then
util.add_ingredient("kr-black-reinforced-plate", "carbon-black", 5)
util.add_ingredient("kr-white-reinforced-plate", "titanium-plate", 1)
end
util.add_effect("plastics", {type="unlock-recipe", recipe="carbon-black"})
util.add_effect("oil-processing", {type="unlock-recipe", recipe="graphite-carbon-black"})
end
util.add_ingredient("rocket-engine-nozzle", "graphite", 1)
util.add_to_product("rocket-engine-nozzle", "rocket-engine-nozzle", 1)
util.add_time("rocket-engine-nozzle", 5)
util.add_ingredient("rocket-engine-nozzle-basic", "graphite", 1)
util.add_to_product("rocket-engine-nozzle-basic", "rocket-engine-nozzle", 1)
util.add_time("rocket-engine-nozzle-basic", 5)
util.add_ingredient("battery", "graphite", 1)
util.add_ingredient("pump", "graphite", 2)
if data.raw.recipe["speed-module-5"] then
util.add_ingredient("speed-module-5", "diamond", 5)
util.add_ingredient("effectivity-module-5", "diamond", 5)
util.add_ingredient("productivity-module-5", "diamond", 5)
elseif data.raw.recipe["speed-module-4"] then
util.add_ingredient("speed-module-4", "diamond", 6)
util.add_ingredient("effectivity-module-4", "diamond", 6)
util.add_ingredient("productivity-module-4", "diamond", 6)
else
util.add_ingredient("speed-module-2", "diamond", 1)
util.add_ingredient("efficiency-module-2", "diamond", 1)
util.add_ingredient("quality-module-2", "diamond", 1)
util.add_ingredient("productivity-module-2", "diamond", 1)
end
util.add_ingredient("laser-turret", "diamond", 1)
util.add_ingredient("assembling-machine-3", "diamond", 4)
util.add_ingredient("low-density-structure", "diamond", 1)
util.add_ingredient("se-low-density-structure-beryllium", "diamond", 1)
if util.me.reuse() then
util.add_product("low-density-structure", {type="item", name="diamond", amount=1, probability = 0.5, ignored_by_stats=1, ignored_by_productivity=1})
util.add_product("se-low-density-structure-beryllium", {type="item", name="diamond", amount=1, probability = 0.5, ignored_by_stats=1, ignored_by_productivity=1})
if data.raw.recipe["low-density-structure"] and
not data.raw.recipe["low-density-structure"].icon and
not data.raw.recipe["low-density-structure"].icons
then
util.set_subgroup("low-density-structure", data.raw.item["low-density-structure"].subgroup)
util.set_icons("low-density-structure", {
{ icon = "__base__/graphics/icons/low-density-structure.png", icon_size = 64, icon_mipmaps = 4},
})
util.set_subgroup("se-low-density-structure-beryllium", data.raw.item["low-density-structure"].subgroup)
util.set_icons("se-low-density-structure-beryllium", {
{ icon = "__base__/graphics/icons/low-density-structure.png", icon_size = 64, icon_mipmaps = 4},
})
util.set_subgroup("low-density-structure-RS", data.raw.item["low-density-structure"].subgroup)
util.set_icons("low-density-structure-RS", {
{ icon = "__base__/graphics/icons/low-density-structure.png", icon_size = 64, icon_mipmaps = 4},
})
end
end
if util.k2() then
util.replace_some_ingredient("steel-plate", "iron-plate", 2, "graphite", 4)
util.add_ingredient("tungsten-carbide", "graphite", 4)
util.replace_some_ingredient("kr-s-c-steel-beam", "iron-plate", 4, "graphite", 8)
util.replace_some_ingredient("kr-s-c-steel-gear-wheel", "iron-plate", 2, "graphite", 4)
elseif mods.bzfoundry2 and util.me.foundry_enable() then
util.replace_some_ingredient("steel-plate", "iron-plate", 1, "graphite", 1)
util.replace_some_ingredient("tungsten-carbide", "tungsten-plate", 1, "graphite", 1)
end
util.add_ingredient("kr-energy-control-unit", "activated-carbon", 3)
if not util.k2() then
util.multiply_recipe("lubricant", 2)
end
util.replace_some_ingredient("lubricant", "heavy-oil", 10, "graphite", 1)
-- SE Lubricant
util.multiply_recipe("se-cryonite-lubricant", 2)
util.replace_some_ingredient("se-cryonite-lubricant", "se-cryonite-slush", 10, "graphite", 1)
util.add_ingredient("nuclear-reactor", "graphite", 500)
util.add_ingredient("satellite", "graphene", 100)
-- K2
util.add_ingredient("empty-dt-fuel", "graphite", 1)
util.add_ingredient("kr-steel-pump", "graphite", 2)
util.add_ingredient("kr-electrolysis-plant", "graphite", 10)
util.add_ingredient("kr-fusion-reactor", "graphite", 350)
util.add_ingredient("kr-antimatter-reactor", "graphite", 350)
util.add_ingredient("kr-electric-mining-drill-mk3", "diamond", 5)
util.add_ingredient("kr-quarry-drill", "diamond", 20)
util.add_ingredient("advanced-exoskeleton-equipment", "diamond", 10)
util.add_ingredient("improved-pollution-filter", "graphene", 1)
util.add_ingredient("lithium-sulfur-battery", "graphene", 1)
util.add_ingredient("matter-research-data", "graphene", 5)
util.add_ingredient("kr-advanced-solar-panel", "graphene", 5)
util.add_ingredient("imersite-solar-panel-equipment", "graphene", 5)
util.add_ingredient("kr-advanced-chemical-plant", "graphene", 20)
util.add_ingredient("empty-antimatter-fuel-cell", "graphene", 10)
util.add_prerequisite("kr-lithium-sulfur-battery", "graphene")
util.set_tech_recipe("kr-lithium-sulfur-battery",
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"production-science-pack", 1},
{"utility-science-pack", 1},
})
util.set_tech_recipe("kr-robot-battery",
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"production-science-pack", 1},
{"utility-science-pack", 1},
})
util.set_tech_recipe("kr-battery-mk3-equipment",
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"production-science-pack", 1},
{"utility-science-pack", 1},
})
-- AAI Industry
util.add_ingredient("area-mining-drill", "diamond", 8)
util.add_ingredient("vehicle-miner-mk4", "diamond", 4)
-- Space Exploration
util.add_ingredient("se-material-testing-pack", "graphite", 1)
util.add_ingredient("se-space-particle-accelerator", "graphite", 10)
util.add_ingredient("se-space-particle-collider", "graphite", 10)
util.add_ingredient("se-canister", "graphite", 1)
util.add_ingredient("se-naquium-ingot", "graphite", 1)
util.add_ingredient("se-antimatter-reactor", "graphite", 500)
util.replace_some_ingredient("se-naquium-powder", "se-vitalic-acid", 2, "graphene", 2)
util.add_ingredient("se-quantum-processor", "graphene", 1)
util.add_ingredient("se-space-solar-panel-2", "graphene", 4)
util.add_ingredient("se-biochemical-resistance-data", "graphene", 1)
util.add_ingredient("se-tensile-strength-data", "graphene", 1)
util.add_ingredient("se-space-biochemical-laboratory", "graphene", 4)
util.add_ingredient("se-space-decontamination-facility", "graphene", 10)
util.add_ingredient("se-space-genetics-facility", "graphene", 20)
util.add_ingredient("se-space-growth-facility", "graphene", 4)
util.add_ingredient("se-nanomaterial", "graphene", 1)
util.add_ingredient("se-void-probe", "graphene", 100)
util.add_ingredient("se-adaptive-armour-equipment-4", "graphene", 20)
util.add_ingredient("se-thuster-suit-2", "graphene", 50)
util.add_ingredient_raw("se-ballistic-shielding-data", {type="item", name="graphene", amount=10, ignored_by_stats=9, ignored_by_productivity=9})
util.add_product("se-ballistic-shielding-data", {type="item", name="graphene", amount_min=9, amount_max=10, ignored_by_stats=10, ignored_by_productivity=10})
util.add_ingredient("se-space-radiator-2", "diamond", 16)
-- Add diamonds to some SE Data, and boost output
util.add_ingredient("se-rigidity-data", "diamond", 1)
util.add_to_product("se-rigidity-data", "se-rigidity-data", 1)
util.add_to_ingredient("se-rigidity-data", "se-empty-data", 1)
util.add_ingredient("se-hot-thermodynamics-data", "diamond", 1)
util.add_to_product("se-hot-thermodynamics-data", "se-hot-thermodynamics-data", 1)
util.add_to_ingredient("se-hot-thermodynamics-data", "se-empty-data", 1)
util.add_ingredient("se-compressive-strength-data", "diamond", 1)
util.add_to_product("se-compressive-strength-data", "se-compressive-strength-data", 1)
util.add_to_ingredient("se-compressive-strength-data", "se-empty-data", 1)
-- Realistic Reactors
util.add_ingredient("realistic-reactor", "graphite", 100)
util.add_ingredient("breeder-reactor", "graphite", 100)
-- Plutonium Energy
util.add_ingredient("MOX-reactor", "graphite", 400)
-- RFP
util.add_ingredient("rfp-reactor", "graphite", 1000)
util.add_ingredient("rfp-aneutronic-reactor", "graphite", 5000)
-- vortik's deep core mining
util.add_ingredient("vtk-deepcore-mining-moho", "diamond", 10)
util.add_ingredient("vtk-deepcore-mining-drone", "diamond", 1)
util.add_ingredient("vtk-deepcore-mining-drill", "diamond", 20)
util.add_ingredient("vtk-deepcore-mining-drill-advanced", "diamond", 50)
-- Advanced Mining Drills
util.add_ingredient("elite-mining-drill", "diamond", 5)
util.add_ingredient("ultimate-mining-drill", "diamond", 10)
-- Skandragon
util.add_ingredient("skan-elite-mining-drill", "diamond", 4)
util.add_ingredient("skan-ultimate-mining-drill", "diamond", 4)
-- Hiladdar
util.add_ingredient("hsmd-electric-mining-drill-mk3", "diamond", 3)
util.add_ingredient("hsmd-electric-mining-drill-mk4", "diamond", 3)
util.add_ingredient("hsmd-electric-mining-drill-mk5", "diamond", 3)
util.add_ingredient("hsmd-electric-mining-drill-mk6", "diamond", 3)
-- Zombies
util.add_ingredient("electric-mining-drill-mk2", "diamond", 2)
util.add_ingredient("edrill-1to2", "diamond", 2)
util.add_ingredient("electric-mining-drill-mk3", "diamond", 2)
util.add_ingredient("electric-mining-drill-mk4", "diamond", 2)
util.add_ingredient("electric-mining-drill-mk5", "diamond", 2)
util.add_ingredient("electric-mining-drill-mk6", "diamond", 2)
if not mods["zombiesextended-core"] then
util.add_ingredient("electric-mining-drill-mk1", "tungsten-carbide", 5)
end
-- Tiny
util.add_ingredient("tiny-electric-mining-drill-3", "diamond", 2)
util.add_ingredient("tiny-electric-mining-drill-5", "diamond", 3)
-- TA Miners
util.add_ingredient("moho_extractor", "diamond", 50)
util.add_ingredient("mantle_extractor", "diamond", 100)
-- other mining drills
util.add_ingredient("electric-mining-drill-lv2", "diamond", 5)
util.add_ingredient("advanced-electric-mining-drill", "diamond", 5)
util.add_ingredient("omega-drill", "diamond", 15)
util.add_ingredient("omega-drill-mk2", "diamond", 30)
util.add_ingredient("passive-furnace", "diamond", 2)
util.add_ingredient("quarry-mk3", "diamond", 10)
-- FastFurnaces
util.add_ingredient("reika-fast-electric-mining-drill", "diamond", 1)
-- Power Armor Mk3
util.add_ingredient("pamk3-pamk3", "graphene", 60)
-- Orbital ion cannon
util.add_ingredient("orbital-ion-cannon", "graphene", 100)
-- FE+
util.add_ingredient("pump-mk2", "graphite", 4)
util.add_ingredient("offshore-pump-mk2", "graphite", 2)
util.add_ingredient("pumpjack-mk2", "graphite", 2)
util.add_ingredient("fusion-reactor-mk2-equipment", "graphene", 2)
util.add_shiftite_recipe("graphite", {"alpha"}, 1)
util.add_shiftite_recipe("diamond", {"beta", "epsilon"}, 1)

684
bzcarbon2/carbon-recipe.lua Normal file
View file

@ -0,0 +1,684 @@
local util = require("data-util");
local item_sounds = require('__base__.prototypes.item_sounds')
local graphite_category = "crafting"
if mods["space-exploration"] then
graphite_category = "pulverising"
end
if mods["space-age"] then
graphite_category = "basic-crushing"
end
if util.k2() then
graphite_category = "kr-crushing"
end
data:extend({
{ type = "recipe-category", name = "diamond-synthesis"},
})
data:extend({
{
type = "item",
name = "graphite",
icon = "__bzcarbon__/graphics/icons/graphite.png",
icon_size = 128,
pictures = {
{filename="__bzcarbon__/graphics/icons/graphite.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/graphite-1.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/graphite-2.png", size=128, scale=0.25},
},
inventory_move_sound = item_sounds.sulfur_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.sulfur_inventory_move,
subgroup = "raw-material",
order = "g[graphite]",
weight = 1*kg,
stack_size = util.get_stack_size(100)
},
{
type = "recipe",
name = "graphite",
category = graphite_category,
order = "d[graphite]",
icons = (util.k2() and
{
{ icon = "__bzcarbon__/graphics/icons/graphite.png", icon_size = 128},
{ icon = "__bzcarbon__/graphics/icons/flake-graphite.png", icon_size = 128, icon_mipmaps = 3, scale=0.25, shift= {-8, -8}},
} or nil),
-- normal = (util.k2() and
-- {
-- enabled = false,
-- energy_required = 5,
-- ingredients = {util.item("flake-graphite", 10)},
-- results = {{type="item", name= "graphite", amount=10}},
-- } or
enabled = false,
allow_productivity=true,
energy_required = 0.5,
ingredients = {util.item("flake-graphite", 1)},
results = {util.item("graphite")},
-- expensive =
-- {
-- enabled = false,
-- energy_required = 1,
-- ingredients = {util.item("flake-graphite", 2)},
-- result = "graphite"
-- }
},
{
type = "technology",
name = "graphite-processing",
icon_size = 128,
icon = "__bzcarbon__/graphics/icons/graphite.png",
effects = {},
unit =
{
count = 30,
ingredients =
{
{"automation-science-pack", 1},
},
time = 10,
},
prerequisites = {},
order = "b-b"
},
})
-- If no graphite ore, make it from coal or coke
if not util.me.use_flake_graphite() then
if data.raw.item[mods["Krastorio2"] and "kr-coke" or "coke"] then
data:extend({
{
type = "recipe",
name = "graphite",
icon = "__bzcarbon__/graphics/icons/graphite.png", icon_size=128,
category = mods.bzfoundry2 and "founding" or "crafting",
order = "d[graphite]",
enabled = false,
energy_required = 0.5,
ingredients = {util.item(mods["Krastorio2"] and "kr-coke" or "coke", 1)},
results = {util.item("graphite", 2)},
}
})
else
data:extend({
{
type = "recipe",
name = "graphite",
icon = "__bzcarbon__/graphics/icons/graphite.png", icon_size=128,
category = mods.bzfoundry2 and "founding" or "crafting",
subgroup = data.raw.item.graphite.subgroup,
order = "d[graphite]",
enabled = false,
energy_required = 0.5,
ingredients = {util.item("coal", 1)},
results = {util.item("graphite", 1), {type="item", name="stone", amount=1, probability=0.05}},
}
})
end
util.add_prerequisite("graphite-processing", "foundry")
-- Increase richness of coal a bit
data.raw.resource["coal"].autoplace.richness_expression = data.raw.resource["coal"].autoplace.richness_expression.." * 1.5"
end
if util.k2() then
util.add_prerequisite("graphite-processing", "kr-crusher")
else
-- util.add_prerequisite("graphite-processing", "automation")
end
if mods["space-exploration"] and not util.k2() then
data:extend({
{
type = "recipe",
name = "graphite-se",
category = "advanced-crafting",
order = "d[graphite]",
enabled = false,
energy_required = 0.5,
ingredients = {util.item("flake-graphite", 2)},
results = {util.item("graphite")},
}
})
util.add_effect("graphite-processing", { type = "unlock-recipe", recipe = "graphite-se" })
util.add_effect("se-pulveriser", { type = "unlock-recipe", recipe = "graphite" })
else
util.add_effect("graphite-processing", { type = "unlock-recipe", recipe = "graphite" })
end
if mods["5dim_resources"] then
data:extend({
{
type = "recipe",
name = "graphite-5d",
category = "mashering",
order = "d[graphite]",
enabled = true,
energy_required = 0.5,
ingredients = {util.item("flake-graphite", 1)},
results = {util.item("graphite", 2)},
}
})
end
-- diamonds
data:extend({
{
type = "item",
name = "diamond",
icon = "__bzcarbon__/graphics/icons/diamond.png",
inventory_move_sound = item_sounds.brick_inventory_move,
pick_sound = item_sounds.brick_inventory_pickup,
drop_sound = item_sounds.brick_inventory_move,
icon_size = 128,
subgroup = "raw-material",
order = "g[diamond]",
weight = 4*kg,
stack_size = util.get_stack_size(100)
},
{
type = "recipe",
name = "synthetic-diamond",
category = "diamond-synthesis",
order = "d[diamond]",
icons = (util.me.use_rough_diamond() and
{
{ icon = "__bzcarbon__/graphics/icons/diamond.png", icon_size = 128},
{ icon = "__bzcarbon__/graphics/icons/graphite-2.png", icon_size = 128, scale=0.125, shift= {-8, -8}},
} or nil),
allow_productivity=true,
enabled = false,
energy_required = 20,
ingredients = {util.item("graphite", mods["space-age"] and 20 or 10)},
results = {util.item("diamond")},
-- expensive =
-- {
-- enabled = false,
-- energy_required = 30,
-- ingredients = {util.item("graphite", 20)},
-- result = "diamond"
-- }
},
util.me.use_rough_diamond() and {
type = "recipe",
name = "diamond-processing",
category = "advanced-crafting",
subgroup = "raw-material",
order = "d[diamond]",
icons = (util.k2() and
{
{ icon = "__bzcarbon__/graphics/icons/diamond.png", icon_size = 128},
{ icon = "__bzcarbon__/graphics/icons/rough-diamond.png", icon_size = 64, scale=0.25, shift= {-8, -8}},
} or {{ icon = "__bzcarbon__/graphics/icons/diamond.png", icon_size = 128}}),
-- normal = (util.k2() and
-- {
-- enabled = false,
-- energy_required = 20,
-- ingredients = {util.item("rough-diamond", 1)},
-- results = {
-- {type="item", name= "diamond", amount=1, probability=0.8},
-- {type="item", name= "stone", amount=1, probability=0.2}
-- },
-- } or
enabled = false,
allow_productivity=true,
energy_required = 20,
ingredients = {util.item("rough-diamond", 1)},
results = {
{type="item", name= "diamond", amount=1, probability=0.8},
{type="item", name= "stone", amount=1, probability=0.2}
},
-- expensive =
-- {
-- enabled = false,
-- energy_required = 40,
-- ingredients = {util.item("rough-diamond", 1)},
-- result = "diamond"
-- }
} or nil,
})
data:extend({
{
type = "technology",
name = "diamond-processing",
icon_size = 128,
icon = "__bzcarbon__/graphics/icons/diamond.png",
effects =
{
{
type = "unlock-recipe",
recipe = "synthetic-diamond"
},
util.me.use_rough_diamond() and not mods["space-age"] and {
type = "unlock-recipe",
recipe = "diamond-processing"
} or nil,
},
unit =
{
count = 100,
ingredients =
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
},
time = 15,
},
prerequisites = {"advanced-material-processing-2"},
order = "b-b"
},
})
data:extend({
-- graphene
{
type = "item",
name = "graphene",
icon = "__bzcarbon__/graphics/icons/graphene.png",
icon_size = 128,
inventory_move_sound = item_sounds.plastic_inventory_move,
pick_sound = item_sounds.plastic_inventory_pickup,
drop_sound = item_sounds.plastic_inventory_move,
subgroup = "intermediate-product",
order = "g[graphite]",
weight = 2*kg,
stack_size = util.get_stack_size(200)
},
{
type = "recipe",
name = "graphene",
category = "chemistry",
order = "d[graphite]",
enabled = false,
allow_productivity=true,
energy_required = 5,
ingredients = (mods["space-age"] or util.k2()) and {
{type="item", name="graphite", amount=1},
{type="fluid", name=util.k2() and "kr-ammonia" or "ammonia", amount=5},
{type="fluid", name="sulfuric-acid", amount=5},
} or {
{type="item", name="graphite", amount=1},
{type="fluid", name="water", amount=10},
{type="fluid", name="sulfuric-acid", amount=10},
},
results = {util.item("graphene")},
},
{
type = "technology",
name = "graphene",
icon_size = 128,
icon = "__bzcarbon__/graphics/icons/graphene.png",
effects =
{
{
type = "unlock-recipe",
recipe = "graphene"
},
},
unit =
{
count = 400,
ingredients = mods["space-exploration"] and {
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
} or
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"production-science-pack", 1},
{"utility-science-pack", 1},
},
time = 60,
},
prerequisites = mods["space-exploration"] and {"chemical-science-pack"} or {"utility-science-pack"},
order = "b-b"
},
})
if mods["space-age"] then
util.set_prerequisite("graphene", {"agricultural-science-pack"})
util.set_tech_recipe("graphene", {
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"agricultural-science-pack", 1},
})
end
-- fullerenes
if util.me.use_fullerenes() then
data:extend({
{
type = "item",
name = "fullerenes",
icon = "__bzcarbon__/graphics/icons/Fullerene.png",
icon_size = 128,
inventory_move_sound = item_sounds.plastic_inventory_move,
pick_sound = item_sounds.plastic_inventory_pickup,
drop_sound = item_sounds.plastic_inventory_move,
subgroup = "intermediate-product",
order = "g[graphite-fullerenes]",
weight = 2*kg,
stack_size = util.get_stack_size(200),
},
{
type = "recipe",
name = "fullerenes",
category = mods["space-age"] and "electronics-or-assembling" or "advanced-crafting",
order = "d[graphite-fullerenes]",
enabled = false,
allow_productivity=true,
energy_required = 1,
ingredients = util.k2() and
{
{type="item", name="graphite", amount=2},
{type="fluid", name="kr-nitrogen", amount=2},
} or
{
{type="item", name="graphite", amount=2},
},
results = {util.item("fullerenes", 20)},
},
{
type = "technology",
name = "fullerenes",
icon_size = 128,
icon = "__bzcarbon__/graphics/icons/Fullerene.png",
effects =
{
{
type = "unlock-recipe",
recipe = "fullerenes",
},
},
unit =
{
count = 100,
ingredients = {
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
},
time = 60,
},
prerequisites = {"oil-processing", "chemical-science-pack"},
order = "b-b"
},
-- nanotubes
{
type = "item",
name = "nanotubes",
icon = "__bzcarbon__/graphics/icons/nanotube.png",
icon_size = 128,
inventory_move_sound = item_sounds.plastic_inventory_move,
pick_sound = item_sounds.plastic_inventory_pickup,
drop_sound = item_sounds.plastic_inventory_move,
subgroup = "intermediate-product",
order = "g[graphite-nanotubes]",
weight = 2*kg,
stack_size = util.get_stack_size(200),
},
{
type = "recipe",
name = "nanotubes",
main_product = "nanotubes",
icon = "__bzcarbon__/graphics/icons/nanotube.png",
icon_size = 128,
category = "chemistry",
subgroup = "intermediate-product",
order = "d[graphite-nanotubes]",
enabled = false,
allow_productivity=true,
energy_required = 20,
ingredients = {
{type="item", name="fullerenes", amount=1},
{type="item", name="iron-plate", amount=1, ignored_by_stats=1, ignored_by_productivity=1},
{type="fluid", name="sulfuric-acid", amount=10, ignored_by_stats=10, ignored_by_productivity=10},
},
results = {
{type="item", name="nanotubes", amount=1},
{type="item", name="iron-plate", amount=1, probability=0.95, ignored_by_stats=1, ignored_by_productivity=1},
{type="fluid", name="sulfuric-acid", amount=9, ignored_by_stats=9, ignored_by_productivity=9},
util.k2() and {type="fluid", name="kr-dirty-water", amount=1, ignored_by_stats=1, ignored_by_productivity=1} or nil,
},
},
{
type = "technology",
name = "nanotubes",
icon_size = 128,
icon = "__bzcarbon__/graphics/icons/nanotube.png",
effects =
{
{
type = "unlock-recipe",
recipe = "nanotubes",
},
},
unit =
{
count = 1000,
ingredients =
(util.k2() and not mods["space-exploration"] and
{
{"production-science-pack", 1},
{"utility-science-pack", 1},
{"space-science-pack", 1},
{"kr-matter-tech-card", 1},
{"kr-advanced-tech-card", 1},
}) or
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"production-science-pack", 1},
{"utility-science-pack", 1},
{"space-science-pack", 1},
},
time = 60,
},
prerequisites = {"space-science-pack"},
order = "b-b"
},
})
end
-- carbon black
if util.me.use_carbon_black() then
data:extend({
{
type = "item",
name = "carbon-black",
icon = "__bzcarbon__/graphics/icons/carbon-black.png",
icon_size = 64,
inventory_move_sound = item_sounds.sulfur_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.sulfur_inventory_move,
subgroup = "intermediate-product",
order = "g[graphite-carbon-black]",
weight = 1*kg,
stack_size = util.get_stack_size(100),
},
{
type = "recipe",
name = "carbon-black",
icon = "__bzcarbon__/graphics/icons/carbon-black.png",
icon_size = 64, icon_mipmaps = 3,
category = "chemistry",
order = "d[graphite-carbon-black]",
enabled = false,
allow_productivity=true,
energy_required = 1,
ingredients = {
{type="item", name="coal", amount=1},
},
results = {
{type="item", name= "carbon-black", amount=1},
}
},
{
type = "recipe",
name = "graphite-carbon-black",
icons = {
{ icon = "__bzcarbon__/graphics/icons/carbon-black.png", icon_size = 64, icon_mipmaps = 3},
{ icon = "__bzcarbon__/graphics/icons/graphite.png", icon_size = 128},
},
category = "chemistry",
order = "d[graphite]",
enabled = false,
allow_productivity=true,
energy_required = 1,
ingredients = {
{type="item", name="carbon-black", amount=10},
},
results = {util.item("graphite", 1)},
},
})
end
-- crucible
data:extend({
{
type = "item",
name = "crucible",
icon = "__bzcarbon__/graphics/icons/crucible.png", icon_size = 128,
inventory_move_sound = item_sounds.brick_inventory_move,
pick_sound = item_sounds.brick_inventory_pickup,
drop_sound = item_sounds.brick_inventory_move,
subgroup = "intermediate-product",
order = "g[crucible]",
weight = 4*kg,
stack_size = 50,
},
{
type = "recipe",
name = "crucible",
category = "crafting",
order = "d[graphite]",
enabled = false,
allow_productivity=true,
energy_required = 3,
ingredients = {
{type="item", name="graphite", amount=5},
},
results = {util.item("crucible", 1)},
},
})
if util.me.get_setting("aps-planet") == "vulcanus" then
util.add_unlock("foundry", "crucible")
util.remove_recipe_effect("advanced-material-processing-2", "crucible")
end
-- Space exploration subgroups
if mods["space-exploration"] then
data:extend({
{
type = "item-subgroup",
name = "carbon",
group = "resources",
order = "a-h-z-0",
}
})
util.set_item_subgroup("graphite", "carbon")
util.set_item_subgroup("diamond", "carbon")
util.set_item_subgroup("graphene", "carbon")
util.set_item_subgroup("carbon-black", "carbon")
util.set_item_subgroup("fullerenes", "carbon")
util.set_item_subgroup("nanotubes", "carbon")
end
-- Set early tech tree
if util.me.use_flake_graphite() then
util.set_tech_trigger("graphite-processing", {type = "mine-entity", entity = "graphite"})
else
util.set_tech_trigger("graphite-processing", {type = "mine-entity", entity = "coal"})
end
util.add_prerequisite("graphite-processing", "steam-power")
if mods["space-age"] then
data:extend({
{
type = "surface-property",
name = "kr-oxygen",
default_value = 19,
},
-- make graphite from diamonds on some surfaces
{
type = "recipe",
name = "graphitization",
icons = {
{icon = "__bzcarbon__/graphics/icons/graphite.png", icon_size = 128},
{icon = "__bzcarbon__/graphics/icons/rough-diamond.png", icon_size = 128, scale = 0.125, shift={-8,-8}},
},
category = "smelting",
order = "d[graphite]",
enabled = false,
allow_productivity=true,
energy_required = 16,
surface_conditions = {
{property = "kr-oxygen", max = 20},
},
ingredients = {
{type="item", name="rough-diamond", amount=1},
},
show_amount_in_title = false,
results = {util.item("graphite", 10)},
},
{
type = "technology",
name = "diamond-processing-2",
icon_size = 128,
icon = "__bzcarbon__/graphics/icons/diamond.png",
effects =
{
{
type = "unlock-recipe",
recipe = "graphitization"
},
{
type = "unlock-recipe",
recipe = "diamond-processing"
},
},
research_trigger = {
type = "mine-entity",
entity = "diamond",
},
prerequisites = {"planet-discovery-vulcanus"},
order = "b-b"
},
-- Graphite from spoilage via carbon
{
type = "recipe",
name = "graphite-synthesis",
category = "organic-or-chemistry",
order = "d[graphite]",
enabled = false,
allow_productivity=true,
energy_required = 8/3,
ingredients = {
{type="item", name="carbon", amount=1},
},
results = {util.item("graphite", 1)},
},
})
util.add_unlock("biochamber", "graphite-synthesis")
util.set_recipe_time("burnt-spoilage", 4)
util.set_surface_property("nauvis", "kr-oxygen", 21)
util.set_surface_property("gleba", "kr-oxygen", 30)
util.set_surface_property("fulgora", "kr-oxygen", 15)
util.set_surface_property("vulcanus", "kr-oxygen", 12)
util.set_surface_property("aquilo", "kr-oxygen", 10)
util.set_surface_property("space-platform", "kr-oxygen", 0)
end

49
bzcarbon2/carbon-util.lua Normal file
View file

@ -0,0 +1,49 @@
local futil = require("util")
local util = require("data-util");
local cutil = {}
function cutil.nanotube_recipe(recipe_name, item_name, tech)
if not tech then tech = "nanotubes" end
if not item_name then item_name = recipe_name end
if not data.raw.recipe[recipe_name] or not data.raw.item[item_name] then return end
-- local normal = get_normal(recipe_name)
local new_recipe = futil.table.deepcopy(data.raw.recipe[recipe_name])
new_recipe.name = recipe_name.."-nanotubes"
if new_recipe.subgroup == "vulcanus-processes" then
new_recipe.localised_name = {"recipe-name."..recipe_name}
new_recipe.icons = {
{ icon = data.raw.recipe[recipe_name].icon, icon_size = data.raw.recipe[recipe_name].icon_size},
{ icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}},
}
else
new_recipe.localised_name = {"item-name."..item_name}
if new_recipe.icons and #new_recipe.icons > 1 then
table.insert(new_recipe.icons,
{ icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}}
)
else
new_recipe.icons = {
{ icon = data.raw.item[item_name].icon, icon_size = data.raw.item[item_name].icon_size},
{ icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}},
}
end
end
new_recipe.icon = nil
new_recipe.icon_size = nil
new_recipe.icon_mipmaps = nil
new_recipe.hide_from_signal_gui = false
data:extend({new_recipe})
local amt = 2 * util.get_amount(recipe_name, item_name)
if amt == 0 and mods["hot-metals"] then
amt = 2 * util.get_amount(recipe_name, "hot-"..item_name)
util.set_product_amount(new_recipe.name, "hot-"..item_name, amt, {force=true})
end
util.add_ingredient(new_recipe.name, "nanotubes", amt, {force=true})
util.set_product_amount(new_recipe.name, item_name, amt, {force=true})
util.add_unlock(tech, new_recipe.name)
return new_recipe.name
end
return cutil

515
bzcarbon2/changelog.txt Normal file
View file

@ -0,0 +1,515 @@
---------------------------------------------------------------------------------------------------
Version: 2.0.20
Date: 2025-06-15
Fixes:
- Fix load error in certain mod loadouts, especially with K2SO
- Address possible soft lock on Cerys by adding a small amount of furnaces to huge ruins
---------------------------------------------------------------------------------------------------
Version: 2.0.19
Date: 2025-05-07
Fixes:
- Fix soft lock with K2 on graphene
- Fix some locale issues with K2
---------------------------------------------------------------------------------------------------
Version: 2.0.18
Date: 2025-05-04
Changes:
- Support for K2 spaced out
- Minor k2 2 tweaks
---------------------------------------------------------------------------------------------------
Version: 2.0.17
Date: 2025-05-03
Changes:
- K2: Compatbility updates (with thanks to autechr3 and pla)
---------------------------------------------------------------------------------------------------
Version: 2.0.16
Date: 2025-04-20
Changes:
- Any planet start on Vulcanus: Unlock crucible with foundry tech.
---------------------------------------------------------------------------------------------------
Version: 2.0.15
Date: 2025-04-19
Fixes:
- Crushing Industry: Plastic uses carbon black instead of crushed coal
- Diamonds returned from LDS recipe are not affected by productivity
Changes:
- Space Age & Muluna: Can process rough diamonds earlier in tech tree
---------------------------------------------------------------------------------------------------
Version: 2.0.14
Date: 2025-04-08
Changes:
- Space Age: Crusher recipe requires diamonds.
- Carbon black recipe uses crushed coal if available
- Further improved compatibility with Crushing Industry recipes
- Space Age: Asteroid crushing recipe now affected by productivity research
- Space Age: Low Density Structure recipes now affected by productivity reseearch
---------------------------------------------------------------------------------------------------
Version: 2.0.13
Date: 2025-03-22
Changes:
- Set inventory sounds for some items
- Muluna: Nanotube recipe for alternate LDS
Fixes:
- Loads with Crafting Efficiency
- Improved compatibility with Muluna
---------------------------------------------------------------------------------------------------
Version: 2.0.12
Date: 2025-03-22
Fixes:
- Fix startup crash introduced in factorio 2.0.42
---------------------------------------------------------------------------------------------------
Version: 2.0.11
Date: 2025-03-04
Changes:
- Align various electronic circuit recipes to all use graphite
---------------------------------------------------------------------------------------------------
Version: 2.0.10
Date: 2025-03-03
Fixes:
- Better avoidance of possible infinite loop across mods.
---------------------------------------------------------------------------------------------------
Version: 2.0.9
Date: 2025-03-03
Fixes:
- Nanotubes byproducts no longer affected by productivity
- Avoid possible infinite loop in certain mod loadouts, mostly when developing other mods.
Changes:
- Compatibility tweaks for Tungsten mod
---------------------------------------------------------------------------------------------------
Version: 2.0.8
Date: 2025-02-13
Fixes:
- Space Age: With Hot metals, fix new LDS casting nanotube recipe.
---------------------------------------------------------------------------------------------------
Version: 2.0.7
Date: 2025-02-13
Fixes:
- Space Age: Fix LDS recipes, plastic was not supposed to be removed.
Changes:
- Space Age: Add nanotubes recipe for casting LDS.
- Space Age: Show asteroid crushing recipe in signal GUI
- Space Age: Show alternative nanotube recipes in signal GUI
---------------------------------------------------------------------------------------------------
Version: 2.0.6
Date: 2025-02-05
Fixes:
- Fix issues when flake graphite is disabled
---------------------------------------------------------------------------------------------------
Version: 2.0.5
Date: 2025-02-05
Changes:
- Fix softlock in vanilla
---------------------------------------------------------------------------------------------------
Version: 2.0.4
Date: 2025-02-04
Changes:
- Fix softlock with Muluna
---------------------------------------------------------------------------------------------------
Version: 2.0.3
Date: 2025-01-31
Changes:
- Add shiftite recipes for Janus mod.
---------------------------------------------------------------------------------------------------
Version: 2.0.2
Date: 2025-01-31
Fixes:
- Fix compatibility issue with RCU Restored mod.
RCUs do not require graphene in Space Age, but still do in Vanilla.
Changes:
- In space age, Power Armor mk2 no longer requires graphene. Still requires in Vanilla.
---------------------------------------------------------------------------------------------------
Version: 2.0.1
Date: 2025-01-30
Fixes:
- Space Age: With Titanium or Zirconium, unlock vacuum recipe earlier.
- Space Age: Fix unlock for polyacrylonitrile
- Space Age: Fix alternate ammonia recipe menu location
- Fix LDS localization
---------------------------------------------------------------------------------------------------
Version: 2.0.0
Date: 2025-01-29
Changes:
- Update to Factorio 2.0 and Space Age, can be added to existing games.
Use /bz-regenerate to see help on regenerating ore patches (especially useful on Vulcanus)
- Space Age: Diamond ore patches are only on Vulcanus. Graphite is on Nauvis
- Updates to Space Age carbon fiber (Note: 2.0 vanilla carbon fiber is not yet available)
- New graphics for flake graphite, rough diamonds and some other items.
- Improved graphics for graphite and diamond ore patches.
---------------------------------------------------------------------------------------------------
Version: 0.5.9
Date: 2024-02-17
Fixes:
- Fix possible soft lock on Warptorio 2 Expnasion
---------------------------------------------------------------------------------------------------
Version: 0.5.8
Date: 2023-12-24
Localization:
- ja updates thanks to Sakuro
---------------------------------------------------------------------------------------------------
Version: 0.5.7
Date: 2023-02-12
Changes:
- Minor reordering of mod startup settings
- Improved support for Crafting Efficieny mod, thanks to nihilistzsche
---------------------------------------------------------------------------------------------------
Version: 0.5.6
Date: 2023-01-17
Features:
- Support for Crafting Efficieny mod (note: technology icon cropping issues)
Changes:
- Carbon fiber, polyacrylonitrile, and rough diamond processing can benefit from productivity
Localization:
- ru updates thanks to CV514
---------------------------------------------------------------------------------------------------
Version: 0.5.5
Date: 2022-12-28
Changes:
- Less graphite needed for electronic circuits
---------------------------------------------------------------------------------------------------
Version: 0.5.4
Date: 2022-12-25
Fixes:
- SE: Fix some data recipes that were not requiring enough blank data cards
---------------------------------------------------------------------------------------------------
Version: 0.5.3
Date: 2022-12-24
Localization:
- Chinese (simplified) thanks to sunnytan53
- ru updates thanks to Pergamum663
- ja updates thanks to sakuro
---------------------------------------------------------------------------------------------------
Version: 0.5.2
Date: 2022-12-08
Changes:
- Enable rough diamond stacking, stacked mining.
- SE: Landfill from graphite
- Compatibility fix for ModMash Splinter Subspace Logistics
---------------------------------------------------------------------------------------------------
Version: 0.5.1
Date: 2022-12-05
Fixes:
- Add missing locale string for new setting
- LDS recipe only shows once in nanotube tech now, instead of twice.
- When carbon fiber is enabled, it should now fully replace plastic in all LDS recipes.
---------------------------------------------------------------------------------------------------
Version: 0.5.0
Date: 2022-12-04
Features:
- When used with Salt & Chlorine mod, option for carbon fiber (default on).
---------------------------------------------------------------------------------------------------
Version: 0.4.7
Date: 2022-09-25
Changes:
- Updated some nanotube recipes to more closely mirror their counterparts in all mod loadouts.
Fixes:
- Attempt to fix issue with K2, S3, Omni mods, 248k, when used with nanotubes.
---------------------------------------------------------------------------------------------------
Version: 0.4.6
Date: 2022-08-23
Changes:
- Balance some Deep Core Mining outputs for focused recipes and sorting recipes
---------------------------------------------------------------------------------------------------
Version: 0.4.5
Date: 2022-08-18
Fixes:
- Fix multiple prerequisite issue
---------------------------------------------------------------------------------------------------
Version: 0.4.4
Date: 2022-08-17
Fixes:
- SE: Disable matter recipes at start
Changes:
- Minor tech tree tweak for nanobots
---------------------------------------------------------------------------------------------------
Version: 0.4.3
Date: 2022-08-16
Features:
- Support for SE matter fusion and SE+K2 matter liberation
---------------------------------------------------------------------------------------------------
Version: 0.4.2
Date: 2022-08-12
Changes:
- When using AAI miner vehicles, enable barreling of steam for mining graphite
---------------------------------------------------------------------------------------------------
Version: 0.4.1
Date: 2022-08-08
Changes:
- Compatibility with updates to Tungsten mod
Fixes:
- SE + K2: Enriched graphite recipe in correct subgroup.
---------------------------------------------------------------------------------------------------
Version: 0.4.0
Date: 2022-08-07
Changes:
- All mods that have early recipes requiring electronic circuits should be more compatible now.
---------------------------------------------------------------------------------------------------
Version: 0.3.10
Date: 2022-08-06
Fixes:
- Steam is now properly required in vtk deepcore mining
- Bypass setting fixed for added products
---------------------------------------------------------------------------------------------------
Version: 0.3.9
Date: 2022-08-03
Fixes:
- Balance no-uranium vtk deepcore mining recipe.
- Add some missing vtk deepcore mining strings
---------------------------------------------------------------------------------------------------
Version: 0.3.8
Date: 2022-08-02
Changes:
- Tech tree tweak to smooth unlocks.
- Asteroid Mining compatibility
---------------------------------------------------------------------------------------------------
Version: 0.3.7
Date: 2022-07-23
Changes:
- Made compatible with Fluidless_Mining_and_Ore_Washing by allowing fluid recipes in aseembling
machine 1 when enabled. May change if a better solution is found later.
---------------------------------------------------------------------------------------------------
Version: 0.3.6
Date: 2022-07-22
Fixes:
- Fix bob's electronic's basic electronic components recipe changes
---------------------------------------------------------------------------------------------------
Version: 0.3.5
Date: 2022-07-20
Features:
- K2: Add an enriched graphite recipe with improved graphite ratio and corresponding tech.
Changes:
- Fix basic splitter recipe to be pre-electronics friendly.
If this breaks your mall, use bypass recipe setting.
- Tech tree tweak: laser (instead of laser-turret) depends on diamond processing
---------------------------------------------------------------------------------------------------
Version: 0.3.4
Date: 2022-07-14
Localization:
- ru locale thanks to Pergamum663
---------------------------------------------------------------------------------------------------
Version: 0.3.3
Date: 2022-07-13
Changes:
- VTK Deep Core Ore Chunk refining and sorting outputs less diamond and more graphite.
---------------------------------------------------------------------------------------------------
Version: 0.3.2
Date: 2022-07-09
Changes:
- Temporary en locale strings for procedural deep core mining recipes
---------------------------------------------------------------------------------------------------
Version: 0.3.1
Date: 2022-07-01
Changes:
- SE 0.6: Subgroup for carbon items
---------------------------------------------------------------------------------------------------
Version: 0.3.0
Date: 2022-07-01
Changes:
- Support for Space Exploration 0.6
---------------------------------------------------------------------------------------------------
Version: 0.2.0
Date: 2022-06-26
Features:
- Beta support for 248k. Carbon fiber uses graphite. More changes to come.
---------------------------------------------------------------------------------------------------
Version: 0.1.10
Date: 2022-06-09
Changes:
- SE: Diamond synthesis with vulcanite can use prod modules.
---------------------------------------------------------------------------------------------------
Version: 0.1.9
Date: 2022-06-05
Localization:
- de l10n thanks to NathaU
---------------------------------------------------------------------------------------------------
Version: 0.1.8
Date: 2022-05-30
Changes:
- AAI: Improve AAI tech tree when Graphite enabled: steam power after basic fluid handling.
- K2: Do not unlock electric mining drill with automation core.
- K2: Fullerenes no longer required for slowdown capsules, due to earlier unlock in K2.
---------------------------------------------------------------------------------------------------
Version: 0.1.7
Date: 2022-04-25
Fixes:
- Move K2 electric mining drill unlock behind automation core tech.
---------------------------------------------------------------------------------------------------
Version: 0.1.6
Date: 2022-04-22
Fixes:
- Fix a minimal mode steel production deadlock.
---------------------------------------------------------------------------------------------------
Version: 0.1.5
Date: 2022-02-22
Localization:
- ko l10n thanks to x2605
Fixes:
- Returned diamonds no longer affected by prod modules
- K2: "smelting crafting" recipes are hidden from player crafting, as in K2 base.
---------------------------------------------------------------------------------------------------
Version: 0.1.3
Date: 2022-02-12
Localization:
- ja l10n thanks to sakuro
Changes:
- More tech tree tweaks (K2+AAI)
---------------------------------------------------------------------------------------------------
Version: 0.1.2
Date: 2022-01-30
Changes:
- More minor tech tree tweaks
- More compatibility tweaks
---------------------------------------------------------------------------------------------------
Version: 0.1.1
Date: 2022-01-29
Changes:
- SE ballistic shielding data recipe
- Minor rough diamond icon tweak
- Minor description tweaks
- Minor tech tree tweaks
---------------------------------------------------------------------------------------------------
Version: 0.1.0
Date: 2022-01-27
Changes:
- This is feeling more like beta than alpha now.
Fixes:
- SE rough-diamond ore should be properly rare.
- SE without flake graphite should now work
---------------------------------------------------------------------------------------------------
Version: 0.0.21
Date: 2022-01-25
Changes:
- SE core mining omni - no diamonds, fix graphite balance
- Minor compatibility tweaks
---------------------------------------------------------------------------------------------------
Version: 0.0.20
Date: 2022-01-19
Features:
- New setting to remove flake graphite
Changes:
- Minor tech tree tweaks
- Repair pack recipe tweak
- Minor 5d compatibility improvements
- Minor FE+ compatibility improvements
---------------------------------------------------------------------------------------------------
Version: 0.0.19
Date: 2022-01-18
Fixes:
- Prod modules work with Schall Recipe Scaling recipes
---------------------------------------------------------------------------------------------------
Version: 0.0.18
Date: 2022-01-17
Changes:
- Minor modded tech tree tweaks
Fixes:
- Fix Schall Recipe Scaling issue with diamonds in furnaces
- Attempted to fix an issue when low density structure has no expensive recipe
---------------------------------------------------------------------------------------------------
Version: 0.0.17
Date: 2022-01-15
Fixes:
- LDS recipe string fixes with new option
- Schall RS fixes with new option
---------------------------------------------------------------------------------------------------
Version: 0.0.16
Date: 2022-01-14
Changes:
- LDS Nanotube recipe now uses 2xN pattern.
---------------------------------------------------------------------------------------------------
Version: 0.0.15
Date: 2022-01-13
Features:
- Setting to enable reusing diamond grinding grit for LDS recipes
---------------------------------------------------------------------------------------------------
Version: 0.0.14
Date: 2022-01-12
Changes:
- Safe compatibility check for Bob's Electronics SE KR thanks to MdRuz
- Crucibles work with Deadlock stacking/crating
---------------------------------------------------------------------------------------------------
Version: 0.0.13
Date: 2022-01-12
Changes:
- Move electric drill back before electronics to avoid deadlock.
---------------------------------------------------------------------------------------------------
Version: 0.0.12
Date: 2022-01-08
Changes:
- Change burner phase vanilla recipes a bit to avoid possible deadlocks
---------------------------------------------------------------------------------------------------
Version: 0.0.11
Date: 2022-01-06
Changes:
- Tweak icons for visibility, especially graphene
Localization:
- pl l10n, thanks to S3BA
---------------------------------------------------------------------------------------------------
Version: 0.0.10
Date: 2022-01-05
Features:
- Add setting to dump modified recipes to file
---------------------------------------------------------------------------------------------------
Version: 0.0.9
Date: 2022-01-04
Changes:
- K2: Advanced crafting steel recipes
Features:
- Strange matter compatibility
Fixes:
- Locale string
---------------------------------------------------------------------------------------------------
Version: 0.0.8
Date: 2022-01-04
Changes:
- Minor tech tree tweaks
Features:
- K2: Matter conversion
- SE: Delivery capsule recipes
---------------------------------------------------------------------------------------------------
Version: 0.0.7
Date: 2022-01-04
Changes:
- SE - non-pulverizer recipe for graphite to fix deadlock
---------------------------------------------------------------------------------------------------
Version: 0.0.6
Date: 2022-01-03
Changes:
- Tungsten sets basic rocket-engine-nozzle recipe, this mod updates it with graphite
- More minor compatibility
---------------------------------------------------------------------------------------------------
Version: 0.0.5
Date: 2022-01-02
Fixes:
- Fix issue with crucible if certain mods were not enabled
- Deadlock: Fix crating of diamonds
---------------------------------------------------------------------------------------------------
Version: 0.0.4
Date: 2022-01-01
Changes:
- SE: More facility recipes, Nutrient gel, LDS diamonds, alt lube, unlocks
- K2 green circuit fix
- AAI green circuit fix
---------------------------------------------------------------------------------------------------
Version: 0.0.3
Date: 2021-12-31
Changes:
- Diamonds no longer used in centrifuge
- Diamonds now used in laser turrets
- Module 2s require 1 diamond now.
- If tier 5 or 4 modules exist, use more diamonds there instead of tier 2
- Some minor SE recipe updates
- Other minor compatibility tweaks
Fixes:
- Now loads with FE+ (loose compatibility)
---------------------------------------------------------------------------------------------------
Version: 0.0.2
Date: 2021-12-31
Fixes:
- Works with Deadlock's Stacked Mining now.
---------------------------------------------------------------------------------------------------
Version: 0.0.1
Date: 2021-12-30
Features:
- Alpha version (things might change, possibly a lot)
- Adds Flake Graphite, Graphite, Diamonds, Graphene
- Optionally adds Fullerenes (default on), Carbon black (default off)
- Initial compatibility with Krastorio 2, Space Exploration

View file

@ -0,0 +1,4 @@
local util = require("data-util");
util.remove_ingredient("fu_carbon_fiber_recipe", "fi_crushed_coal_item")
util.add_ingredient("fu_carbon_fiber_recipe", "graphite", 3)

View file

@ -0,0 +1,15 @@
local util = require("data-util");
if mods["any-planet-start"] and util.me.get_setting("aps-planet") ~= "nauvis" then
util.set_prerequisite("graphite-processing", {})
end
if mods["any-planet-start"] and util.me.get_setting("aps-planet") == "vulcanus" then
util.set_tech_trigger("graphite-processing", {type="mine-entity", entity="huge-volcanic-rock"})
elseif mods["any-planet-start"] and util.me.get_setting("aps-planet") == "fulgora" then
util.set_tech_trigger("graphite-processing", {type="craft-item", item="graphite", count=5})
util.remove_prerequisite("electronics", "graphite-processing")
util.set_prerequisite("electric-mining-drill", {})
util.set_tech_trigger("electric-mining-drill", {type="craft-item", item="medium-electric-pole", count=5})
elseif mods["any-planet-start"] and util.me.get_setting("aps-planet") == "gleba" then
util.set_tech_trigger("graphite-processing", {type="mine-entity", entity="gleba-rock"})
end

View file

@ -0,0 +1,7 @@
local util = require("data-util");
if mods.Fluidless_Mining_and_Ore_Washing then
-- Note: want to find a better solution, but for now, make assembler 1 handle fluid
data.raw["assembling-machine"]["assembling-machine-1"].fluid_boxes = data.raw["assembling-machine"]["assembling-machine-2"].fluid_boxes
util.add_crafting_category("assembling-machine", "assembling-machine-1", "crafting-with-fluid")
end

View file

@ -0,0 +1,58 @@
local util = require("data-util");
if mods["vtk-deep-core-mining"] then
-- fewer diamonds, more graphite in the ore chunk refining recipes
if util.me.use_rough_diamond() then
local amt = 0
if data.raw.recipe["vtk-deepcore-mining-ore-chunk-refining"] then
for i, product in pairs(data.raw.recipe["vtk-deepcore-mining-ore-chunk-refining"].results) do
if product.name == "vtk-deepcore-mining-rough-diamond-chunk" then
amt = product.amount - 1
end
if product[1] == "vtk-deepcore-mining-rough-diamond-chunk" then
amt = product[2] - 1
end
end
util.add_to_product("vtk-deepcore-mining-ore-chunk-refining",
"vtk-deepcore-mining-rough-diamond-chunk", 0-amt)
util.add_to_product("vtk-deepcore-mining-ore-chunk-refining",
"vtk-deepcore-mining-flake-graphite-chunk", amt+6)
end
amt = 0
if data.raw.recipe["vtk-deepcore-mining-ore-chunk-refining-no-uranium"] then
for i, product in pairs(data.raw.recipe["vtk-deepcore-mining-ore-chunk-refining-no-uranium"].results) do
if product.name == "vtk-deepcore-mining-rough-diamond-chunk" then
amt = product.amount - 1
end
if product[1] == "vtk-deepcore-mining-rough-diamond-chunk" then
amt = product[2] - 1
end
end
util.add_to_product("vtk-deepcore-mining-ore-chunk-refining-no-uranium",
"vtk-deepcore-mining-rough-diamond-chunk", 0-amt)
util.add_to_product("vtk-deepcore-mining-ore-chunk-refining-no-uranium",
"vtk-deepcore-mining-flake-graphite-chunk", amt+6)
end
end
-- fewer diamonds, more graphite from focused processing
util.set_product_amount("vtk-deepcore-mining-ore-chunk-refining-diamond-focus", "vtk-deepcore-mining-rough-diamond-chunk", 2)
util.add_to_product("vtk-deepcore-mining-ore-chunk-refining-graphite-focus", "vtk-deepcore-mining-flake-graphite-chunk", 15)
-- balance input amount for sorting
util.set_vtk_dcm_ingredients()
-- deepcore mining was not adding required fluid, add if it doesn't have
for i, resource in pairs({"flake-graphite-patch", "flake-graphite-patch-chunk", "flake-graphite-patch-ore"}) do
if data.raw.resource[resource] and
data.raw.resource[resource].minable and
not data.raw.resource[resource].minable.required_fluid then
data.raw.resource[resource].minable.required_fluid = "steam"
data.raw.resource[resource].minable.fluid_amount = 1
end
end
end

298
bzcarbon2/control-util.lua Normal file
View file

@ -0,0 +1,298 @@
local me = require("me")
local util = {}
util.me = me
local regenerate_command = "bz-regenerate"
local list_command = "bz-list"
function decode(data)
if type(data) == "string" then return data end
local str = {}
for i = 2, #data do
str[i-1] = decode(data[i])
end
return table.concat(str, "")
end
function util.check_fluid_mining()
if me.fluid_mining then
for i, force in pairs(game.forces) do
if (
(force.technologies["uranium-processing"] and force.technologies["uranium-processing"].researched) or
(force.technologies["titanium-processing"] and force.technologies["titanium-processing"].researched) or
false
) then
force.technologies["fluid-mining"].researched = true
end
end
end
end
function get_list()
local p = prototypes.item[me.name.."-list"]
if p then
data = p.localised_description
return decode(data)
end
end
function util.force_enable_recipe(event, recipe_name)
if game.players[event.player_index].force.recipes[recipe_name] then
game.players[event.player_index].force.recipes[recipe_name].enabled=true
end
end
function list(event)
if event.command and string.lower(event.command) == "bz-list" then
local player = game.players[event.player_index]
if player and player.connected then
local list = get_list()
if list and #list>0 then
local filename = util.me.name..".txt"
helpers.write_file(filename, list, false, event.player_index)
player.print("Wrote recipes to script-output/"..filename)
else
player.print("Please change your mod startup setting for this mod's modified recipes list.")
end
end
end
end
function util.add_command_handler()
script.on_event(defines.events.on_console_command, route)
end
function route(event)
if event.command == regenerate_command then regenerate_ore(event) end
if event.command == list_command then list(event) end
end
function util.add_list_command_handler()
util.add_command_handler()
if not commands.commands[list_command] then
commands.add_command(list_command, "", function() end)
end
end
function util.warptorio2_expansion_helper()
if script.active_mods["warptorio2_expansion"] then
function check_container_for_items(container,items)
local has_all =true
for k=1,#items do
if container.get_item_count(items[k].name)<items[k].count then has_all=false break end
end
return has_all
end
function remove_items_from_container(container,items)
for k=1,#items do
container.remove_item(items[k])
end
end
script.on_nth_tick(60, function (event)
if global.done then return end
local fix_items={
{name='iron-plate',count=100},
{name='iron-gear-wheel',count=100},
{name='repair-pack',count=50},
}
local entities = {}
for i=1,100 do
if game.surfaces[i] then
local lentities= game.surfaces[i].find_entities_filtered{area = {{-100, -100}, {100, 100}}, name = "wpe_broken_lab"}
for j, entity in pairs(lentities) do
table.insert(entities, entity)
end
end
end
if #entities == 0 then
if global.checking then
-- The lab has already been fixed
global.done = true
else
-- Check that the lab doesn't reappear due to a warp
global.checking = true
end
return
end
if check_container_for_items(entities[1],fix_items) then
remove_items_from_container(entities[1],fix_items)
local lab = entities[1].surface.create_entity({name='wpe_repaired_lab', position=entities[1].position, force = game.forces.player})
lab.destructible=false
lab.minable=false
entities[1].destroy()
global.done = true
end
end)
end
end
local usage_regenerate = [[
Recommend saving the game before running this command.
Usage: /bz-regenerate all
or /bz-regenerate <planet> <resource> [<frequency> <size> <richness>]
planet must be an internal name like nauvis
resource must be an internal name like lead-ore or titanium-ore
frequency, size, and richness are optional, but all or none must be provided, and each should be a number between 0.166 and 6, where 1 is default setting.
Regenerates ore patches. If frequency/size/richness are provided, the planet will use those settings from now on, as well.
- Separate arguments with spaces, do not use < >, [ ], quotes or other symbols
- This action can take a while for larger maps!
- Ores can sometimes overlap on regeneration. This can sometimes hide ore patches. If none seem to be made for a resource, regenerate just that resource and tweak frequency/size.
]]
function util.add_regenerate_command_handler()
util.add_command_handler()
if not commands.commands[regenerate_command] then
commands.add_command( regenerate_command, usage_regenerate, function() end)
end
end
function regenerate_ore(event)
if event.command == regenerate_command then
local params = {}
for w in event.parameters:gmatch("%S+") do table.insert(params, w) end
if #params == 1 and params[1] == "all" then
for _, resource in pairs(me.resources) do
if prototypes.entity[resource[1]] then
game.print("Regenerating "..resource[1])
game.regenerate_entity(resource[1])
end
end
return
end
if not (#params == 2 or #params == 5) then
game.print(usage_regenerate)
return
end
local planet = params[1]
for _, resource in pairs(me.resources) do
if not game.surfaces[planet] then
game.print("Could not find surface for "..planet..". May not exist, or may not yet be explored.")
return
end
if resource[1] == params[2] and (resource[2] == planet or "tenebris" == planet) then
if #params == 5 then
local settings = {frequency=params[3], size=params[4], richness=params[5]}
local map_gen_settings = game.surfaces[planet].map_gen_settings
map_gen_settings.autoplace_controls[resource[1]] = settings
map_gen_settings.autoplace_settings.entity.settings[resource[1]] = settings
game.surfaces[planet].map_gen_settings = map_gen_settings
game.print("Set "..resource[1].." on "..planet.." to "..serpent.line(settings))
end
game.print("Regenerating "..resource[1])
game.surfaces[planet].regenerate_entity(resource[1])
end
end
end
end
function util.ore_fix()
ore_fix("nauvis")
ore_fix("vulcanus")
if game.surfaces.tenebris then
ore_fix("tenebris")
end
end
function ore_fix(surface_name)
for _, resource in pairs(me.resources) do
if resource[2] == surface_name then
if game.surfaces[resource[2]] then
local map_gen_settings = game.surfaces[surface_name].map_gen_settings
if map_gen_settings.autoplace_controls[resource[1]] == nil then
map_gen_settings.autoplace_controls[resource[1]] = {}
end
if map_gen_settings.autoplace_settings.entity.settings[resource[1]] == nil then
map_gen_settings.autoplace_settings.entity.settings[resource[1]] = {}
end
game.surfaces[surface_name].map_gen_settings = map_gen_settings
end
end
end
end
-- A workaround for generating ores until this bug is fixed:
-- https://forums.factorio.com/viewtopic.php?f=7&t=124996&p=655013#p655013
function util.ore_workaround(event)
for i, ore in pairs(util.me.ores_for_workaround) do
if (
event.surface and
event.surface.map_gen_settings and
event.surface.map_gen_settings.autoplace_controls and
event.surface.map_gen_settings.autoplace_controls["titanium-ore"]
) then
return
end
if event.surface.name ~= "nauvis" then return end
if math.random() < settings.global[util.me.name.."-ore-workaround-probability"].value then
util.generate_ore(event, ore.name, ore.amount, ore.tiles)
end
end
end
-- The majority of this function was written by Eradicator, see https://forums.factorio.com/viewtopic.php?t=72723
function util.generate_ore(event, name, amount, tiles)
local biases = {[0] = {[0] = 1}}
local t = 1
repeat
t = t + util.grow(biases,t,tiles)
until t >= tiles
local pos = {x=event.position.x*32, y=event.position.y*32}
local multiplier = math.max(math.abs(event.position.x), math.abs(event.position.y))
if multiplier < 10 then return end -- don't generate too close to start
local total_bias = 0
for x,_ in pairs(biases) do for y,bias in pairs(_) do
total_bias = total_bias + bias
end end
for x,_ in pairs(biases) do for y,bias in pairs(_) do
local entity = {
name = name,
amount = amount * (bias/total_bias) * multiplier,
force = 'neutral',
position = {pos.x+x,pos.y+y},
}
if event.surface.can_place_entity(entity) then
event.surface.create_entity(entity)
end
end end
end
-- The majority of this function was written by Eradicator, see https://forums.factorio.com/viewtopic.php?t=72723
function util.grow(grid,t,tiles)
local w_max = 256
local h_max = 256
local abs = math.abs
local old = {}
local new_count = 0
for x,_ in pairs(grid) do for y,__ in pairs(_) do
table.insert(old,{x,y})
end end
for _,pos in pairs(old) do
local x,y = pos[1],pos[2]
local bias = grid[x][y]
for dx=-1,1,1 do for dy=-1,1,1 do
local a,b = x+dx, y+dy
if (math.random() > 0.9) and (abs(a) < w_max) and (abs(b) < h_max) then
grid[a] = grid[a] or {}
if not grid[a][b] then
grid[a][b] = 1 - (t/tiles)
new_count = new_count + 1
if (new_count+t) == tiles then return new_count end
end
end
end end
end
return new_count
end
return util

9
bzcarbon2/control.lua Normal file
View file

@ -0,0 +1,9 @@
local util = require("control-util")
script.on_init(util.check_fluid_mining)
script.on_event(defines.events.on_console_command, util.list)
script.on_configuration_changed(util.ore_fix)
util.add_list_command_handler()
util.add_regenerate_command_handler()
util.warptorio2_expansion_helper()

View file

@ -0,0 +1,207 @@
require("carbon-recipe-final-stacking")
require("carbon-recipe-final-k2")
require("carbon-recipe-final-se")
require("carbon-recipe-final-rrr")
require("nanotubes-final")
require("compatibility.vtkdeepcoremining")
require("compatibility.any-planet-start")
local futil = require("util")
local util = require("data-util");
util.add_minable_result("simple-entity", "huge-volcanic-rock", {type="item", name="flake-graphite", amount_min=10, amount_max=24})
util.add_minable_result("simple-entity", "big-volcanic-rock", {type="item", name="rough-diamond", amount_min=5, amount_max=10})
util.set_localised_name("low-density-structure", {"item-name.low-density-structure"})
-- supercapacitors with graphene cloned from supercapacitors with activated carbon
if data.raw.recipe["supercapacitor"] then
local new_recipe = futil.table.deepcopy(data.raw.recipe["supercapacitor"])
new_recipe.name = new_recipe.name.."-graphene"
new_recipe.localised_name = {"item-name.supercapacitor"}
new_recipe.icons = {
{ icon = data.raw.item["supercapacitor"].icon, icon_size = data.raw.item["supercapacitor"].icon_size},
{ icon = "__bzcarbon__/graphics/icons/graphene.png", icon_size = 128, scale=0.125, shift= {-8, -8}, tint={1,1,1}},
}
new_recipe.icon = nil
new_recipe.icon_size = nil
data:extend({new_recipe})
util.replace_ingredient(new_recipe.name, "activated-carbon", "graphene", 1)
util.add_unlock("electromagnetic-plant", new_recipe.name)
end
-- Green circuits in final fixes due to K2 shenanigans
if mods.MDbobelectronics or mods.MDbobelectronics2 or mods.bobelectronics then
util.replace_ingredient("basic-electronic-components", "coal", "graphite")
util.replace_ingredient("basic-electronic-components", mods["Krastorio2"] and "kr-coke" or "coke", "graphite")
else
-- Electronic circuits need final fixes
function modify_ec(recipe_name, to_replace)
if not to_replace then
to_replace = "copper-cable"
end
local amt_ec = util.get_amount(recipe_name, "electronic-circuit")
if amt_ec == 1 then
util.multiply_recipe(recipe_name, 2)
util.set_recipe_time(recipe_name, 0.5) -- faster but more complex
end
util.replace_some_ingredient(recipe_name, to_replace, 2, "graphite", 1)
end
modify_ec("electronic-circuit")
modify_ec("electronic-circuit-stone")
modify_ec("electronic-circuit-wood")
modify_ec("electronic-circuit-aluminum", "aluminum-cable")
end
if data.raw.recipe["low-density-structure"] and
not data.raw.recipe["low-density-structure"].icon and
not data.raw.recipe["low-density-structure"].icons
then
-- final failsafe check, might no longer be necessary, needs testing with a lot of varied mod loadouts
util.set_subgroup("low-density-structure", data.raw.item["low-density-structure"].subgroup)
util.set_icons("low-density-structure", {
{ icon = "__base__/graphics/icons/low-density-structure.png", icon_size = 64, icon_mipmaps = 4},
})
util.set_subgroup("se-low-density-structure-beryllium", data.raw.item["low-density-structure"].subgroup)
util.set_icons("se-low-density-structure-beryllium", {
{ icon = "__base__/graphics/icons/low-density-structure.png", icon_size = 64, icon_mipmaps = 4},
})
util.set_subgroup("low-density-structure-RS", data.raw.item["low-density-structure"].subgroup)
util.set_icons("low-density-structure-RS", {
{ icon = "__base__/graphics/icons/low-density-structure.png", icon_size = 64, icon_mipmaps = 4},
})
end
if util.me.use_fiber() then
if not mods["space-age"] then
util.remove_ingredient("low-density-structure", "plastic-bar")
util.remove_ingredient("low-density-structure-nanotubes", "plastic-bar")
util.remove_ingredient("se-low-density-structure-beryllium", "plastic-bar")
end
end
-- Only electric smelters can make Diamonds
function diamondsInElectricSmelter(entity)
if entity.energy_source.type == "electric" then
local isSmelter = false
local isSmelterRS = false
for j, category in pairs(entity.crafting_categories) do
if category == "smelting" then
isSmelter = true
end
if category == "smelting-RS" then
isSmelterRS = true
end
end
if isSmelter then
table.insert(entity.crafting_categories,"diamond-synthesis")
end
if isSmelterRS then
table.insert(entity.crafting_categories,"diamond-synthesis-RS")
end
end
end
for i, entity in pairs(data.raw.furnace) do
diamondsInElectricSmelter(entity)
end
for i, entity in pairs(data.raw["assembling-machine"]) do
diamondsInElectricSmelter(entity)
end
-- furnace recipe rework, remove crucible ingredients one more time
for i, furnace in pairs(util.me.furnaces) do
for j, ingredient in pairs(util.me.crucible_ingredients) do
util.remove_ingredient(furnace, ingredient)
end
end
util.remove_ingredient("electric-furnace", "cuw") -- support new tungsten
-- Vanilla burner phase tweaks -- green circuits after electronics
if not util.k2() and not mods["aai-industry"] and not mods.bzaluminum2 then
util.replace_ingredient("electric-mining-drill", "electronic-circuit", "copper-cable", 6)
-- Most of this can go post 2.0
-- util.replace_ingredient("offshore-pump", "electronic-circuit", "copper-cable")
-- util.replace_ingredient("lab", "electronic-circuit", "copper-cable")
-- util.replace_ingredient("assembling-machine-1", "electronic-circuit", "copper-plate")
-- util.replace_ingredient("radar", "electronic-circuit", "copper-plate")
-- util.replace_ingredient("splitter", "electronic-circuit", "copper-cable", 20)
-- Keep repair pack raw ingredients the same:
-- util.remove_ingredient("repair-pack", "electronic-circuit")
-- util.add_ingredient("repair-pack", "copper-cable", 6)
-- util.set_ingredient("repair-pack", "iron-gear-wheel", 3)
-- util.add_effect("electronics", { type = "unlock-recipe", recipe = "electronic-circuit" })
-- util.add_effect("electronics", { type = "unlock-recipe", recipe = "inserter" })
-- util.add_effect("electronics", { type = "unlock-recipe", recipe = "long-handed-inserter" })
-- util.remove_recipe_effect("automation", "long-handed-inserter")
-- util.set_enabled("electronic-circuit", false)
-- util.set_enabled("inserter", false)
-- util.add_prerequisite("logistic-science-pack", "electronics")
end
if mods["aai-industry"] then
-- AAI Industry now unlocks steam much later. Move it to an earlier sensible location in the tech tree.
util.set_prerequisite("steam-power", {"basic-fluid-handling"})
util.set_tech_recipe("steam-power", {{"automation-science-pack", 1}})
end
util.add_prerequisite("nanobots", "electronics")
if not mods.bzaluminum2 then
util.replace_ingredients_prior_to("electronics", "electronic-circuit", "copper-cable", 2)
end
if mods.modmashsplintersubspacelogistics then
for i, item in pairs({"graphite", "diamond"}) do
if data.raw.item["super-container-for-"..item] then
for i, icon in pairs(data.raw.item["super-container-for-"..item].icons) do
if string.find(icon.icon, item) then
icon.size = 128
icon.scale = icon.scale / 2
icon.icon_scale = icon.icon_scale / 2
end
end
end
if data.raw.recipe["super-container-for-"..item] then
for i, icon in pairs(data.raw.recipe["super-container-for-"..item].icons) do
if string.find(icon.icon, item) then
icon.size = 128
icon.scale = icon.scale / 4
icon.icon_scale = icon.icon_scale / 4
end
end
end
if data.raw.recipe["empty-super-container-of-"..item] then
for i, icon in pairs(data.raw.recipe["empty-super-container-of-"..item].icons) do
if string.find(icon.icon, item) then
icon.size = 128
icon.scale = icon.scale / 4
icon.icon_scale = icon.icon_scale / 4
end
end
end
for i, technology in pairs(data.raw.technology) do
if string.find(technology.name, "containment") then
if technology.icons then
for j, icon in pairs(technology.icons) do
if string.find(icon.icon, item) then
icon.size = 128
icon.scale = icon.scale / 8
icon.icon_scale = icon.icon_scale / 8
end
end
end
end
end
end
end
util.redo_recycling()
util.size_recycler_output()
util.use_fluid_mining_final()
-- Must be last
util.create_list()

View file

@ -0,0 +1,42 @@
require("prototypes.carbon-asteroid-updates")
require("carbon-recipe-updates")
require("carbon-fiber-recipe-updates")
require("map-gen-preset-updates")
require("carbon-matter")
require("strange-matter")
require("compatibility/248k")
require("compatibility/orewashing")
-- require("omni")
local util = require("data-util");
if util.me.use_flake_graphite() then
if util.k2() then
require("tech-triggers") -- For K2 this has to be in data updates as K2 unsafely access the tech research unit
end
end
util.add_gleba_rock("flake-graphite")
util.add_gleba_rock("rough-diamond", 2, 3)
if mods.Asteroid_Mining then
if util.me.use_flake_graphite() and not data.raw.item["asteroid-flake-graphite"] then
util.addtype("flake-graphite", {a = 0,r = 0.0,g = 0.2,b = 0.5})
end
if util.me.use_rough_diamond() and not data.raw.item["asteroid-rough-diamond"] then
util.addtype("rough-diamond", {a = 0,r = 0.0,g = 0.2,b = 0.8})
end
end
util.redo_recycling()
util.add_shiftite_recipe("graphite", {"alpha"}, 1)
util.add_shiftite_recipe("diamond", {"beta", "epsilon"}, 1)
-- Needed to avoid issues on Cerys
util.add_minable_result("simple-entity", "cerys-ruin-colossal", {type="item", name="electric-furnace", amount_min=1, amount_max=1})
-- Must be last
util.create_list()

2157
bzcarbon2/data-util.lua Normal file

File diff suppressed because it is too large Load diff

41
bzcarbon2/data.lua Normal file
View file

@ -0,0 +1,41 @@
require("prototypes.basic-crusher")
require("prototypes.graphite")
log("1")
require("prototypes.graphite-particle")
log("2")
require("prototypes.diamond")
log("3")
require("prototypes.diamond-particle")
log("4")
require("carbon-recipe")
log("5")
require("carbon-recipe-k2") -- must be after carbon-recipe
require("carbon-recipe-se")
require("prototypes.activated-carbon")
require("prototypes.carbon-fiber")
local util = require("data-util");
if mods["aai-vehicles-miner"] then
-- steam required for graphite mining
data.raw.fluid.steam.auto_barrel = true
end
util.add_fluid_mining()
if util.me.use_flake_graphite() then
if not util.k2() then
require("tech-triggers")
end
else
util.set_prerequisite("graphite-processing", {})
end
util.add_prerequisite("uranium-processing", "sulfur-processing")
util.add_unlock("graphite-processing", "basic-crusher")
-- Must be last
util.create_list()

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

27
bzcarbon2/info.json Normal file
View file

@ -0,0 +1,27 @@
{
"name": "bzcarbon",
"version": "2.0.21",
"factorio_version": "2.0",
"title": "Graphite & Diamonds",
"author": "Brevven",
"contact": "",
"homepage": "",
"dependencies": [
"base >= 2.0.42",
"? space-age",
"? bztitanium",
"? bzsilicon",
"? bzzirconium",
"? bzfoundry2",
"? space-exploration",
"? aai-industry",
"? Krastorio2",
"? Krastorio2-spaced-out",
"? 248k-Redux",
"(?) modmashsplintersubspacelogistics",
"? deadlock-beltboxes-loaders",
"? DeadlockCrating"
],
"description": "Adds elemental carbon items to the game, including graphite, diamonds, graphene, and more.\n\nCompatible with Space Age, and more. A standalone piece of BZ Mods"
}

View file

@ -0,0 +1,83 @@
[entity-name]
graphite=Graphit
diamond=Diamant
[autoplace-control-names]
graphite=[item=flake-graphite] Graphit
diamond=[item=rough-diamond] Diamant
[item-name]
flake-graphite=Flockengraphit
rough-diamond=Rohdiamant
graphite=Graphit
graphite-dust=Graphitstaub
compressed-graphite=Gepresster Graphit
diamond=Diamant
graphene=Graphen
fullerenes=Fullerene
nanotubes=Nanoröhren
carbon-black=Ruß
crucible=Schmelztiegel
[item-description]
flake-graphite=Kann zu Graphit verarbeitet werden
rough-diamond=Kann zu verwendbaren Diamanten verarbeitet werden
crucible=in modernisierter Klassiker für den Kaffeegenuss
[technology-name]
graphite-processing=Graphitverarbeitung
diamond-processing=Diamantverarbeitung
graphene=Graphene
fullerenes=Fullerene
nanotubes=Kohlenstoff-Nanoröhren
flake-graphite-synthesis=Graphit-Synthese
carbon-matter-processing=Umwandlung von elementarem Kohlenstoff
[technology-description]
graphite-processing=Verarbeitung von Flockengraphit zu nutzbarem Graphit
diamond-processing=Verarbeitung oder Herstellung von Diamanten. Verwendung beim Schleifen, Bohren, in der Hightech-Elektronik usw.
graphene=Ein nützliches Nanomaterial aus einfachem Graphit
fullerenes=Isolierung von Fullerenen durch Zappen von Kohlenstoff
nanotubes=Ein nützliches, fortgeschrittenes Material
[recipe-name]
graphite=__ITEM__graphite__
graphite-dust=__ITEM__graphite-dust__
synthetic-diamond=__ITEM__diamond__
graphite-synthesis=Graphit-Synthese
diamond-processing=__ITEM__diamond__
graphene=__ITEM__graphene__
heavy-water-graphene=[fluid=kr-heavy-water] mit __ITEM__graphene__
fullerenes=__ITEM__fullerenes
nanotubes=__ITEM__nanotubes__
carbon-black=__ITEM__carbon-black__
graphite-carbon-black=__ITEM__graphite__ aus __ITEM__carbon-black__
nanomaterial-nanotubes=__ITEM__se-nanomaterial__ aus __ITEM__nanotubes__
se-low-density-structure-beryllium=__ITEM__low-density-structure__
[recipe-description]
graphite-carbon-black=Überschüssiger Ruß wird in einem ungünstigen Verhältnis in Graphit umgewandelt.
# Settings
[mod-setting-name]
bzcarbon-recipe-bypass=Unveränderte Rezepte
bzcarbon-list=Erstelle Liste mit geänderten Rezepten
bzcarbon-enable-fullerenes=Aktiviere Fullerene und Nanoröhren
bzcarbon-enable-carbon-black=Aktiviere Ruß
bzcarbon-enable-rough-diamond=Aktiviere Abbau von Diamanten
bzcarbon-enable-flake-graphite=Aktiviere Flockengraphit
bzcarbon-reuse=Wiederverwendung von Schleifkorn
[mod-setting-description]
bzcarbon-recipe-bypass=Überspringe das Ändern dieser Rezepte (kommagetrennte Liste).
bzcarbon-list=If enabled, the text command [color=orange]BZList[/color] will dump a file to the script-output directory with a full list of recipes modified.\nRecommended to turn this off after you are done configuring your other settings.
bzcarbon-enable-fullerenes=Ermögliche Fullerene & Nanoröhren-Zwischenprodukte.\nFullerene werden in erster Linie in biobezogenen Dingen verwendet. Nanoröhren für Strukturen.
bzcarbon-enable-carbon-black=Ermöglicht Ruß als Nebenprodukt. Wird in erster Linie zur Herstellung von Kunststoffen verwendet.
bzcarbon-enable-rough-diamond=Ermöglicht sehr seltene Diamanterz-Felder für neue Spiele.
bzcarbon-enable-flake-graphite=Ermöglicht Graphit-Erzfelder. Es wird empfohlen, dies eingeschaltet zu lassen. Durch das Ausschalten werden vorhandene Erzfelder entfernt.
bzcarbon-reuse=Eine Möglichkeit zur Wiederverwendung von Diamantkörnern in Rezepten wie dem Leichtbauteil. Das ist komplexer, spart aber Ressourcen.
[string-mod-setting]
bzcarbon-enable-flake-graphite-yes=Ja (empfohlen)

View file

@ -0,0 +1,126 @@
[entity-name]
graphite=Graphite
diamond=Diamond
flake-graphite-patch=__ITEM__flake-graphite__ patch
flake-graphite-patch-chunk=__ENTITY__flake-graphite-patch__ chunk
flake-graphite-patch-ore=__ENTITY__flake-graphite-patch__ ore
rough-diamond-patch=__ITEM__rough-diamond__ patch
rough-diamond-patch-chunk=__ENTITY__rough-diamond-patch__ chunk
rough-diamond-patch-ore=__ENTITY__rough-diamond-patch__ ore
basic-crusher=Basic crusher
[entity-description]
wpe_broken_lab=To repair, insert 100[item=iron-plate], 100[item=iron-gear-wheel], 50[item=repair-pack]
[autoplace-control-names]
graphite=[item=flake-graphite] Graphite
diamond=[item=rough-diamond] Diamond
[item-name]
flake-graphite=Flake graphite
rough-diamond=Rough diamond
graphite=Graphite
graphite-dust=Graphite dust
compressed-graphite=Compressed graphite
basic-crusher=Basic crusher
diamond=Diamond
graphene=Graphene
fullerenes=Fullerenes
nanotubes=Nanotubes
carbon-black=Carbon black
crucible=Crucible
activated-carbon=Activated carbon
carbon-fiber=Carbon fiber
polyacrylonitrile=Polyacrylonitrile
vtk-deepcore-mining-flake-graphite-chunk=__ITEM__flake-graphite__ chunk
vtk-deepcore-mining-rough-diamond-chunk=__ITEM__rough-diamond__ chunk
[item-description]
flake-graphite=Can be processed into graphite
rough-diamond=Can be processed into useful diamonds
crucible=A modernized classic for holding coffee
[technology-name]
graphite-processing=Graphite processing
diamond-processing=Diamond processing
graphene=Graphene
fullerenes=Fullerenes
nanotubes=Carbon nanotubes
flake-graphite-synthesis=Graphite synthesis
carbon-matter-processing=Elemental carbon conversion
enriched-graphite=Graphite enrichment
carbon-fiber=__ITEM__carbon-fiber__
fluid-mining=Fluid mining
[technology-description]
fluid-mining=Allows supply of fluids to mining drills to enable mining of certain resources.
graphite-processing=Process flake graphite into usable graphite
diamond-processing=Process or create diamonds. Used for grinding, drilling, high tech electronics, etc.
graphene=A useful nanomaterial made from simple graphite
fullerenes=Isolate fullerenes by zapping carbon
nanotubes=A useful advanced material
carbon-fiber=Created with the oils from the jellynut, polyacrylonitrile can be spun, strengthened and then woven to provide the basis for strong materials.
[recipe-name]
graphite=__ITEM__graphite__
graphite-dust=__ITEM__graphite-dust__
synthetic-diamond=__ITEM__diamond__
graphite-synthesis=Graphite synthesis
diamond-processing=__ITEM__diamond__
graphene=__ITEM__graphene__
heavy-water-graphene=[fluid=kr-heavy-water] with __ITEM__graphene__
fullerenes=__ITEM__fullerenes
nanotubes=__ITEM__nanotubes__
carbon-black=__ITEM__carbon-black__
graphite-carbon-black=Graphitization of carbon black
graphitization=Graphitization of diamonds
nanomaterial-nanotubes=__ITEM__se-nanomaterial__ from __ITEM__nanotubes__
se-low-density-structure-beryllium=__ITEM__low-density-structure__
dirty-water-filtration-graphite=Filter dirty water [item=flake-graphite]
ammonia-from-spoilage=Ammonia from spoilage
alternative-carbonic-asteroid-crushing=Elemental carbon asteroid crushing
vtk-deepcore-mining-ore-chunk-refining-graphite-focus=__ITEM__graphite__ focused ore chunk refining
vtk-deepcore-mining-ore-chunk-refining-diamond-focus=__ITEM__diamond__ focused ore chunk refining
vtk-deepcore-mining-graphite-chunk-refining=__ITEM__flake-graphite__ chunk refining
vtk-deepcore-mining-diamond-chunk-refining=__ITEM__rough-diamond__ chunk refining
[recipe-description]
graphite-carbon-black=Convert excess carbon black to graphite at an unfavorable ratio.
graphite-synthesis=Synthesize graphite from expired biomatter and other hydrocarbons
alternative-carbonic-asteroid-crushing=Focus on elemental carbon when crushing carbonic asteroids
[surface-property-name]
oxygen=Atmospheric oxygen
[surface-property-unit]
oxygen=__1__ %
# Settings
[mod-setting-name]
bzcarbon-recipe-bypass=Bypass recipes
bzcarbon-list=Make a list of modified recipes
bzcarbon-enable-fullerenes=Enable fullerenes & nanotubes
bzcarbon-enable-carbon-black=Enable carbon black
bzcarbon-enable-rough-diamond=Enable diamond mining
bzcarbon-enable-flake-graphite=Enable flake graphite
bzcarbon-reuse=Reuse grinding grit
bzcarbon-enable-carbon-fiber=Enable carbon fiber
[mod-setting-description]
bzcarbon-recipe-bypass=Skip modifying these recipes (comma-separated list).
bzcarbon-list=If enabled, the text command [color=orange]BZList[/color] will dump a file to the script-output directory with a full list of recipes modified.\nRecommended to turn this off after you are done configuring your other settings.
bzcarbon-enable-fullerenes=Enable the fullerenes & nanotubes intermediate products.\nFullerenes are used primarily in bio-related things. Nanotubes for structures.
bzcarbon-enable-carbon-black=Enable carbon black byproduct. Primarily used to make plastics.
bzcarbon-enable-rough-diamond=Enables very rare diamond ore patches for new games.
bzcarbon-enable-flake-graphite=Enables graphite ore patches. Recommended to leave this on. Turning off will remove existing ore patches.
bzcarbon-reuse=A chance to reuse diamond grinding grit in recipes like LDS. More complex, but saves resources.
bzcarbon-enable-carbon-fiber=Only available when Salt & Chlorine is active
[string-mod-setting]
bzcarbon-enable-flake-graphite-yes=yes - recommended

View file

@ -0,0 +1,117 @@
[entity-name]
graphite=グラファイト
diamond=ダイヤモンド
flake-graphite-patch=__ITEM__flake-graphite__ patch
flake-graphite-patch-chunk=__ENTITY__flake-graphite-patch__ chunk
flake-graphite-patch-ore=__ENTITY__flake-graphite-patch__ ore
rough-diamond-patch=__ITEM__rough-diamond__ patch
rough-diamond-patch-chunk=__ENTITY__rough-diamond-patch__ chunk
rough-diamond-patch-ore=__ENTITY__rough-diamond-patch__ ore
[autoplace-control-names]
graphite=[item=flake-graphite] グラファイト
diamond=[item=rough-diamond] ダイヤモンド
[item-name]
flake-graphite=グラファイト薄片
rough-diamond=ダイヤモンド原石
graphite=グラファイト
graphite-dust=Graphite dust
compressed-graphite=Compressed graphite
diamond=ダイヤモンド
graphene=グラフェン
fullerenes=フラーレン
nanotubes=ナノチューブ
carbon-black=カーボンブラック
crucible=るつぼ
carbon-fiber=カーボンファイバー
polyacrylonitrile=ポリアクリロニトリル
vtk-deepcore-mining-flake-graphite-chunk=__ITEM__flake-graphite__ chunk
vtk-deepcore-mining-rough-diamond-chunk=__ITEM__rough-diamond__ chunk
[item-description]
flake-graphite=加工してグラファイトを得ることができます
rough-diamond=加工して有用なダイヤモンドを得ることができます
crucible=昔ながらのコーヒー容器が現代風に生まれ変わりました
[technology-name]
graphite-processing=グラファイト処理
diamond-processing=ダイヤモンド処理
graphene=グラフェン
fullerenes=フラーレン
nanotubes=ナノチューブ
flake-graphite-synthesis=グラファイト合成
carbon-matter-processing=炭素変換
enriched-graphite=グラファイト純化
carbon-fiber=__ITEM__carbon-fiber__
[technology-description]
graphite-processing=グラファイト薄片を利用可能なグラファイトに加工します
diamond-processing=ダイヤモンドを加工・生成します。研磨・穿孔・切削・ハイテク電子工学などに利用されます。
graphene=単純なグラファイトから作られた有用なナノテク素材
fullerenes=レーザー昇華により炭素からフラーレンを分離します
nanotubes=有用な先進素材
[recipe-name]
graphite=__ITEM__graphite__
graphite-dust=__ITEM__graphite-dust__
synthetic-diamond=__ITEM__diamond__
graphite-synthesis=グラファイト合成
diamond-processing=__ITEM__diamond__
graphene=__ITEM__graphene__
heavy-water-graphene=[fluid=kr-heavy-water] (__ITEM__graphene__ を使用)
fullerenes=__ITEM__fullerenes
nanotubes=__ITEM__nanotubes__
carbon-black=__ITEM__carbon-black__
graphite-carbon-black=__ITEM__graphite__ (__ITEM__carbon-black__ から)
nanomaterial-nanotubes=__ITEM__se-nanomaterial__ (__ITEM__nanotubes__ から)
se-low-density-structure-beryllium=__ITEM__low-density-structure__
dirty-water-filtration-graphite=汚水をろ過 [item=flake-graphite]
vtk-deepcore-mining-ore-chunk-refining-graphite-focus=__ITEM__graphite__ focused ore chunk refining
vtk-deepcore-mining-ore-chunk-refining-diamond-focus=__ITEM__diamond__ focused ore chunk refining
vtk-deepcore-mining-graphite-chunk-refining=__ITEM__flake-graphite__ chunk refining
vtk-deepcore-mining-diamond-chunk-refining=__ITEM__rough-diamond__ chunk refining
[recipe-description]
graphite-carbon-black=余剰のカーボンブラックを非効率的にグラファイトに変換します。
# Settings
[mod-setting-name]
bzcarbon-recipe-bypass=改変しないレシピ
bzcarbon-list=変更したレシピのリストを作成
bzcarbon-enable-fullerenes=フラーレンとナノチューブを有効にする
bzcarbon-enable-carbon-black=カーボンブラックを有効にする
bzcarbon-enable-rough-diamond=ダイヤモンド鉱床を有効にする
bzcarbon-enable-flake-graphite=グラファイト薄片鉱床を有効にする
bzcarbon-reuse=研磨くずを再利用
bzcarbon-enable-carbon-fiber=カーボンファイバーを有効にする
[mod-setting-description]
bzcarbon-recipe-bypass==指定したレシピの改変を行わない。(コンマ区切り)
bzcarbon-list=有効にすると、テキストコマンド [color=orange]BZList[/color] で script-output ディレクトリに改変されたレシピの完全なリストを出力します。\n他の設定を済ませたあとは無効にするのを推奨。
bzcarbon-enable-fullerenes=中間生産物のフラーレンとナノチューブを有効にします。\nフラーレンは主にバイオ関連に、ナチューブは構造物に使用されます。
bzcarbon-enable-carbon-black=副産物としてカーボンブラックを有効にします。主にプラスチックの製造に使用されます。
bzcarbon-enable-rough-diamond=新たなゲームで極めて希少なダイヤモンド鉱床を有効にします。
bzcarbon-enable-flake-graphite=グラファイト薄片鉱床を有効にします。有効なままにしておくことを推奨。無効にすると既存の鉱床は削除されます。
bzcarbon-reuse=__ITEM__low-density-structure__などのレシピにおいてダイヤモンドの研磨くずを再利用。複雑になりますが資源を節約できます。
bzcarbon-enable-carbon-fiber=Salt & Chlorineがアクティブなときのみ利用可能
[string-mod-setting]
bzcarbon-enable-fullerenes-yes=はい
bzcarbon-enable-fullerenes-no=いいえ
bzcarbon-enable-carbon-black-yes=はい
bzcarbon-enable-carbon-black-no=いいえ
bzcarbon-enable-rough-diamond-yes=はい
bzcarbon-enable-rough-diamond-no=いいえ
bzcarbon-enable-flake-graphite-yes=はい: 推奨
bzcarbon-enable-flake-graphite-no=いいえ
bzcarbon-reuse-yes=はい
bzcarbon-reuse-no=いいえ
bzcarbon-enable-carbon-fiber-yes=はい
bzcarbon-enable-carbon-fiber-no=いいえ

View file

@ -0,0 +1,83 @@
[entity-name]
graphite=흑연
diamond=다이아몬드
[autoplace-control-names]
graphite=[item=flake-graphite] 흑연
diamond=[item=rough-diamond] 다이아몬드
[item-name]
flake-graphite=흑연 조각
rough-diamond=거친 다이아몬드
graphite=흑연
graphite-dust=흑연 분진
compressed-graphite=압축 흑연
diamond=다이아몬드
graphene=그래핀
fullerenes=풀러렌
nanotubes=나노튜브
carbon-black=카본 블랙
crucible=도가니
[item-description]
flake-graphite=흑연으로 가공 가능
rough-diamond=유용한 다이아몬드로 가공할 수 있음
crucible=커피를 보관할 수 있는 현대화된 클래식
[technology-name]
graphite-processing=흑연 가공
diamond-processing=다이아몬드 가공
graphene=그래핀
fullerenes=풀러렌
nanotubes=탄소 나노튜브
flake-graphite-synthesis=흑연 합성
carbon-matter-processing=탄소 원소 변환
[technology-description]
graphite-processing=흑연 조각을 사용 가능한 흑연으로 가공
diamond-processing=다이아몬드를 가공 또는 생성합니다. 그라인딩, 드릴링, 첨단 전자제품 등에 사용됩니다.
graphene=단순한 흑연으로 만든 유용한 나노 물질
fullerenes=탄소를 쪼개서 풀러렌을 분리한다.
nanotubes=유용한 고급 재료
[recipe-name]
graphite=__ITEM__graphite__
graphite-dust=__ITEM__graphite-dust__
synthetic-diamond=__ITEM__diamond__
graphite-synthesis=흑연 합성
diamond-processing=__ITEM__diamond__
graphene=__ITEM__graphene__
heavy-water-graphene=__ITEM__graphene__을 포함한 [fluid=kr-heavy-water]
fullerenes=__ITEM__fullerenes__
nanotubes=__ITEM__nanotubes__
carbon-black=__ITEM__carbon-black__
graphite-carbon-black=__ITEM__carbon-black__으로부터 __ITEM__graphite__
nanomaterial-nanotubes=__ITEM__nanotubes__으로부터 __ITEM__se-nanomaterial__
se-low-density-structure-beryllium=__ITEM__low-density-structure__
[recipe-description]
graphite-carbon-black=과도한 카본 블랙을 불리한 비율로 흑연으로 변환합니다.
# 설정
[mod-setting-name]
bzcarbon-recipe-bypass=우회 제작법
bzcarbon-list=수정된 제작법 목록 작성
bzcarbon-enable-fullerenes=풀러렌 및 나노튜브 활성화
bzcarbon-enable-carbon-black=카본 블랙 활성화
bzcarbon-enable-rough-diamond=다이아몬드 채굴 사용
bzcarbon-enable-flake-graphite=흑연 조각 활성화
bzcarbon-reuse=그라인딩 그리트 재사용
[mod-setting-description]
bzcarbon-recipe-bypass=이러한 제작법 수정을 건너뜁니다(콤마로 구분된 목록).
bzcarbon-list=활성화된 경우 텍스트 명령 [color=orange]BZList[/color]가 전체 레시피 목록이 수정된 스크립트 출력 디렉토리에 파일을 덤프합니다.\n다른 설정을 구성한 후 이 설정을 해제하는 것이 좋습니다.
bzcarbon-enable-fullerenes=중간제품 풀러렌 및 나노튜브 활성화.\n풀러렌은 주로 생물과 관련된 것에 사용됩니다. 구조용 나노튜브.
bzcarbon-enable-carbon-black=카본 블랙 부산물 활성화. 주로 플라스틱을 만드는 데 사용됩니다.
bzcarbon-enable-rough-diamond=매우 희귀한 다이아몬드 광석 패치를 새 게임에 사용할 수 있습니다.
bzcarbon-enable-flake-graphite=흑연 광석 패치를 활성화합니다. 이 기능을 켜두는 것이 좋습니다. 해제하면 기존 광석 패치가 제거됩니다.
bzcarbon-reuse=다이아몬드 그라인딩 그리트를 저밀도 구조물과 같은 레시피에서 재사용할 수 있는 기회. 더 복잡하지만 자원이 절약됩니다.
[string-mod-setting]
bzcarbon-enable-flake-graphite-yes=예 - 권장

View file

@ -0,0 +1,75 @@
[entity-name]
graphite=Grafit
diamond=Diament
[autoplace-control-names]
graphite=[item=flake-graphite] Grafit
diamond=[item=rough-diamond] Diament
[item-name]
flake-graphite=Płatki grafitu
rough-diamond=Nieoszlifowany diament
graphite=Grafit
graphite-dust=Pył grafitowy
compressed-graphite=Skompresowany grafit
diamond=Diament
graphene=Grafen
fullerenes=Fullereny
nanotubes=Nanorurki
carbon-black=Sadza węglowa
crucible=Tygiel
[item-description]
flake-graphite=Można przetworzyć na grafit
rough-diamond=Można przetworzyć na użyteczne diamenty
crucible=Zmodernizowany klasyk do przechowywania kawy
[technology-name]
graphite-processing=Obróbka grafitu
diamond-processing=Obróbka diamentów
graphene=Grafen
fullerenes=Fullereny
nanotubes=Nanorurki węglowe
flake-graphite-synthesis=Synteza grafitu
carbon-matter-processing=Przetwarzanie węgla pierwiastkowego
[technology-description]
graphite-processing=Przetwarzanie płatków grafitu w grafit użytkowy
diamond-processing=Obróbka lub tworzenie diamentów. Używane do szlifowania, wiercenia, elektroniki high-tech, itp.
graphene=Przydatny nanomateriał wykonany z prostego grafitu
fullerenes=Izolacja fulerenów poprzez wygrzewanie węgla
nanotubes=Przydatny zaawansowany materiał
[recipe-name]
graphite=Grafit
graphite-dust=Pył grafitowy
synthetic-diamond=Syntetyczny diament
graphite-synthesis=Synteza grafitu
diamond-processing=Przetwarzanie diamentów
graphene=Grafen
heavy-water-graphene=[fluid=kr-heavy-water] z grafenem
fullerenes=Fullereny
nanotubes=Nanorurki
carbon-black=Sadza węglowa
graphite-carbon-black=Grafit z sadzy węglowej
nanomaterial-nanotubes=Nanomateriał z nanorurek
[recipe-description]
graphite-carbon-black=Zamienia nadmiar sadzy na grafit w niskim stosunku.
# Settings
[mod-setting-name]
bzcarbon-recipe-bypass=Ominięcie receptur
bzcarbon-list=Utwórz listę zmodyfikowanych receptur
bzcarbon-enable-fullerenes=Włącz fullereny i nanorurki
bzcarbon-enable-carbon-black=Włącz sadzę węglową
bzcarbon-enable-rough-diamond=Włącz wydobycie diamentów
[mod-setting-description]
bzcarbon-recipe-bypass=Pomiń modyfikację tych receptur (lista oddzielona przecinkami).
bzcarbon-list=Jeśli włączone, komenda tekstowa [color=orange]BZList[/color] zrzuci plik do katalogu script-output z pełną listą zmodyfikowanych receptur. \nZaleca się wyłączenie tego po zakończeniu konfiguracji innych ustawień.
bzcarbon-enable=Włącz półprodukty fullerenów i nanorurek.\nFullereny są używane głównie w rzeczach związanych z biologią. Nanorurki do budowy struktur.
bzcarbon-enable-carbon-black=Uaktywnij produkt uboczny sadzę. Głównie używany do produkcji tworzyw sztucznych.
bzcarbon-enable-rough-diamond=Włącza rudy diamentu dla nowych gier.

View file

@ -0,0 +1,106 @@
[entity-name]
graphite=Графит
diamond=Алмаз
flake-graphite-patch=Месторождение графита
flake-graphite-patch-chunk=Фрагмент графита
flake-graphite-patch-ore=Графитовая руда
rough-diamond-patch=Месторождение алмазов
rough-diamond-patch-chunk=Кусок алмаза
rough-diamond-patch-ore=Алмазосодержащая руда
[autoplace-control-names]
graphite=[item=flake-graphite] Графит
diamond=[item=rough-diamond] Алмаз
[item-name]
flake-graphite=Чешуйчатый графит
rough-diamond=Необработанный алмаз
graphite=Графит
graphite-dust=Графитовая пыль
compressed-graphite=Прессованный графит
diamond=Алмаз
graphene=Графен
fullerenes=Фуллерены
nanotubes=Нанотрубки
carbon-black=Технический углерод
crucible=Тигель
carbon-fiber=Углеродное волокно
polyacrylonitrile=Полиакрилонитрил
vtk-deepcore-mining-flake-graphite-chunk=Фрагмент графита
vtk-deepcore-mining-rough-diamond-chunk=Кусок алмаза
[item-description]
flake-graphite=Может быть переработан в графит.
rough-diamond=Может быть переработан в пригодный для использования алмаз.
crucible=Емкость для нагрева, высушивания, сжигания, обжига или плавления различных материалов.
[technology-name]
graphite-processing=Переработка графита
diamond-processing=Обработка алмазов
graphene=Графен
fullerenes=Фуллерены
nanotubes=Углеродные нанотрубки
flake-graphite-synthesis=Синтез графита
carbon-matter-processing=Преобразование графита в материю
enriched-graphite=Обогащение графита
carbon-fiber=__ITEM__carbon-fiber__
[technology-description]
graphite-processing=Переработка чешуйчатого графита в пригодный для использования графит.
diamond-processing=Обработка или создание алмазов. Используется для шлифования, сверления, высокотехнологичной электроники и т.д.
graphene=Пригодный для использования наноматериал из простого графита.
fullerenes=Выделение фуллеренов с помощью углеродных стержней.
nanotubes=Полезный продвинутый материал.
[recipe-name]
graphite=__ITEM__graphite__
graphite-dust=__ITEM__graphite-dust__
synthetic-diamond=__ITEM__diamond__
graphite-synthesis=Синтез графита
diamond-processing=__ITEM__diamond__
graphene=__ITEM__graphene__
heavy-water-graphene=[fluid=kr-heavy-water] с примесью графена
fullerenes=__ITEM__fullerenes
nanotubes=__ITEM__nanotubes__
carbon-black=__ITEM__carbon-black__
graphite-carbon-black=Переработка технического углерода для получения графита
nanomaterial-nanotubes=Переработка нанотрубок для получения __ITEM__se-nanomaterial__
se-low-density-structure-beryllium=__ITEM__low-density-structure__
dirty-water-filtration-graphite=Фильтрация грязной воды [item=flake-graphite]
vtk-deepcore-mining-ore-chunk-refining-graphite-focus=Переработка фрагментов с фокусом на __ITEM__graphite__
vtk-deepcore-mining-ore-chunk-refining-diamond-focus=Переработка фрагментов с фокусом на __ITEM__diamond__
vtk-deepcore-mining-graphite-chunk-refining=Переработка фрагментов с фокусом на __ITEM__flake-graphite__
vtk-deepcore-mining-diamond-chunk-refining=Переработка фрагментов с фокусом на __ITEM__rough-diamond__
[recipe-description]
graphite-carbon-black=Преобразование избытка технического углерода в графит в невыгодном соотношении.
# Settings
[mod-setting-name]
bzcarbon-recipe-bypass=Обходные рецепты
bzcarbon-list=Список измененных рецептов
bzcarbon-enable-fullerenes=Включение фуллеренов и нанотрубок
bzcarbon-enable-carbon-black=Включить технический углерод
bzcarbon-enable-rough-diamond=Включить добычу алмазов
bzcarbon-enable-flake-graphite=Включить чешуйчатый графит
bzcarbon-reuse=Повторное использование шлифовальной крошки
bzcarbon-enable-carbon-fiber=Включить углеродное волокно
[mod-setting-description]
bzcarbon-recipe-bypass=Пропустить изменение этих рецептов (список, разделенный запятыми).
bzcarbon-list=Если эта функция включена, текстовая команда [color=orange]BZList[/color] будет сохранять файл в каталог script-output с полным списком измененных рецептов.\nРекомендуется выключить эту функцию после того, как вы закончите настройку других параметров.
bzcarbon-enable-fullerenes=Включить промежуточные продукты фуллеренов и нанотрубок.\nФуллерены используются в основном в биологии. Нанотрубки - для конструкций.
bzcarbon-enable-carbon-black=Включает побочный продукт в виде технического углерода. В основном используется для производства пластмасс.
bzcarbon-enable-rough-diamond=Включение очень редкой алмазной руды для новых игр.
bzcarbon-enable-flake-graphite=Включает графитовую руду. Рекомендуется оставить этот параметр включенным. Выключение удалит существующие пятна руды.
bzcarbon-reuse=Возможность повторного использования алмазной шлифовальной крошки в рецептах типа КМП. Это сложнее, но экономит ресурсы.
bzcarbon-enable-carbon-fiber=Доступно только при активном моде "Salt & Chlorine" (Соль и хлор)
[string-mod-setting]
bzcarbon-enable-flake-graphite-yes=Да - Рекомендуется

View file

@ -0,0 +1,112 @@
[entity-name]
graphite=石墨
diamond=金刚石
flake-graphite-patch=__ITEM__flake-graphite__
flake-graphite-patch-chunk=深岩__ENTITY__flake-graphite-patch__
flake-graphite-patch-ore=__ENTITY__flake-graphite-patch__矿
rough-diamond-patch=__ITEM__rough-diamond__
rough-diamond-patch-chunk=深岩__ENTITY__rough-diamond-patch__
rough-diamond-patch-ore=__ENTITY__rough-diamond-patch__矿
[autoplace-control-names]
graphite=[item=flake-graphite]石墨
diamond=[item=rough-diamond]金刚石
[item-name]
flake-graphite=片状石墨
rough-diamond=金刚石原石
graphite=石墨
graphite-dust=石墨粉尘
compressed-graphite=压缩石墨
diamond=金刚石
graphene=石墨烯
fullerenes=富勒烯
nanotubes=纳米管
carbon-black=碳黑
crucible=坩埚
carbon-fiber=碳纤维
polyacrylonitrile=聚丙烯腈
vtk-deepcore-mining-flake-graphite-chunk=深岩__ITEM__flake-graphite__
vtk-deepcore-mining-rough-diamond-chunk=深岩__ITEM__rough-diamond__
[item-description]
flake-graphite=可以加工成石墨。
rough-diamond=可以加工成有用的金刚石。
crucible=存放咖啡的现代和经典的容器。
[technology-name]
graphite-processing=石墨处理
diamond-processing=金刚石处理
graphene=石墨烯
fullerenes=富勒烯
nanotubes=碳纳米管
flake-graphite-synthesis=石墨合成
carbon-matter-processing=碳转化
enriched-graphite=富化石墨
carbon-fiber=__ITEM__carbon-fiber__
[technology-description]
graphite-processing=将片状石墨加工成可用的石墨。
diamond-processing=加工或者合成金刚石,可用于研磨、钻孔、高科技电子产品等等。
graphene=一种由简单石墨制作而成的有用的纳米材料。
fullerenes=通过破坏碳分离出富勒烯。
nanotubes=一种有用的高级材料
[recipe-name]
graphite=__ITEM__graphite__
graphite-dust=__ITEM__graphite-dust__
synthetic-diamond=__ITEM__diamond__
graphite-synthesis=石墨合成
diamond-processing=__ITEM__diamond__
graphene=__ITEM__graphene__
heavy-water-graphene=[fluid=kr-heavy-water]__ITEM__graphene__
fullerenes=__ITEM__fullerenes
nanotubes=__ITEM__nanotubes__
carbon-black=__ITEM__carbon-black__
graphite-carbon-black=__ITEM__graphite____ITEM__carbon-black__
nanomaterial-nanotubes=__ITEM__se-nanomaterial____ITEM__nanotubes__
se-low-density-structure-beryllium=__ITEM__low-density-structure__
dirty-water-filtration-graphite=过滤脏水[item=flake-graphite]
vtk-deepcore-mining-ore-chunk-refining-graphite-focus=聚集深岩__ITEM__graphite__精炼
vtk-deepcore-mining-ore-chunk-refining-diamond-focus=聚集深岩__ITEM__diamond__金刚石精炼
vtk-deepcore-mining-graphite-chunk-refining=深岩__ITEM__flake-graphite__精炼
vtk-deepcore-mining-diamond-chunk-refining=深岩__ITEM__rough-diamond__精炼
[recipe-description]
graphite-carbon-black=以一个不利的比例将过量的碳黑转化为石墨。
# Settings
[mod-setting-name]
bzcarbon-recipe-bypass=跳过合成
bzcarbon-list=列出修改过的合成配方
bzcarbon-enable-fullerenes=启用富勒烯和纳米管
bzcarbon-enable-carbon-black=启用碳黑
bzcarbon-enable-rough-diamond=启用金刚石开采
bzcarbon-enable-flake-graphite=启用片状石墨
bzcarbon-reuse=重复利用磨砂
[mod-setting-description]
bzcarbon-recipe-bypass=跳过修改这些合成(用逗号分开)。
bzcarbon-list=如果启用,在控制台中打[color=orange]BZList[/color]会在script-output文件夹中导出一个全部修改过的合成配方的文件。\n推荐在你调整好其他配置后关闭。
bzcarbon-enable-fullerenes=启用中间产品:富勒烯和纳米管。\n富勒烯用于生物相关的东西纳米管用于结构。
bzcarbon-enable-carbon-black=启用副产品:碳黑。\n主要用于制作塑料。
bzcarbon-enable-rough-diamond=为新游戏启用非常稀有的金刚石矿。
bzcarbon-enable-flake-graphite=启用石墨矿,推荐保持打开。关闭会将已存在的矿床删除掉。
bzcarbon-reuse=有几率重复利用磨砂,例如轻质框架的合成。会复杂一点,但是节省材料。
[string-mod-setting]
bzcarbon-enable-fullerenes-yes=启用
bzcarbon-enable-fullerenes-no=不启用
bzcarbon-enable-carbon-black-yes=启用
bzcarbon-enable-carbon-black-no=不启用
bzcarbon-enable-rough-diamond-yes=启用
bzcarbon-enable-rough-diamond-no=不启用
bzcarbon-enable-flake-graphite-yes=启用(推荐)
bzcarbon-enable-flake-graphite-no=不启用
bzcarbon-reuse-yes=启用
bzcarbon-reuse-no=不启用
[mod-name]
bzcarbon=BZ-石墨和金刚石

View file

@ -0,0 +1,25 @@
local util = require("data-util");
if util.me.use_flake_graphite() then
if data.raw["map-gen-presets"] and data.raw["map-gen-presets"].default then
for name, preset in pairs(data.raw["map-gen-presets"].default) do
if type(preset) == "table" and
preset.basic_settings and
preset.basic_settings.autoplace_controls and
preset.basic_settings.autoplace_controls["iron-ore"] then
preset.basic_settings.autoplace_controls["graphite"] = preset.basic_settings.autoplace_controls["iron-ore"]
end
end
end
end
if util.me.use_rough_diamond() then
if data.raw["map-gen-presets"] and data.raw["map-gen-presets"].default then
for name, preset in pairs(data.raw["map-gen-presets"].default) do
if type(preset) == "table" and
preset.basic_settings and
preset.basic_settings.autoplace_controls and
preset.basic_settings.autoplace_controls["iron-ore"] then
preset.basic_settings.autoplace_controls["diamond"] = preset.basic_settings.autoplace_controls["iron-ore"]
end
end
end
end

120
bzcarbon2/me.lua Normal file
View file

@ -0,0 +1,120 @@
local me = {}
me.name = "bzcarbon"
me.resources = {} -- see end of file
me.list = {}
me.recipes = { -- recipes that allow productivity
"graphite",
"synthetic-diamond",
"diamond-processing",
"graphene",
"heavy-water-graphene",
"enriched-graphite",
"fullerenes",
"nanotubes",
"carbon-fiber",
"polyacrylonitrile",
"diamond-synthesis-vulcanite",
-- NOTE: Carbon black recipes do not allow prod modules
}
function has_mod(name)
if mods then return mods[name] end
if script.active_mods then return script.active_mods[name] end
end
function me.use_fiber()
return mods["space-age"] or me.get_setting("bzcarbon-enable-carbon-fiber") == "yes"
end
function me.use_fullerenes()
if me.get_setting("bz-all-intermediates") then return true end
return me.get_setting("bzcarbon-enable-fullerenes") == "yes"
end
function me.reuse()
return me.get_setting("bzcarbon-reuse") == "yes"
end
function me.use_carbon_black()
if me.get_setting("bz-all-intermediates") then return true end
return me.get_setting("bzcarbon-enable-carbon-black") == "yes"
end
function me.use_rough_diamond()
return has_mod("rso-mod") or has_mod("space-age") or me.get_setting("bzcarbon-enable-rough-diamond") == "yes"
end
function me.use_flake_graphite()
return has_mod("rso-mod") or me.get_setting("bzcarbon-enable-flake-graphite") == "yes"
end
function me.foundry_enable()
return not me.get_setting("bzfoundry-minimal")
end
function me.get_setting(name)
if settings.startup[name] == nil then
return nil
end
return settings.startup[name].value
end
me.bypass = {}
if me.get_setting(me.name.."-recipe-bypass") then
for recipe in string.gmatch(me.get_setting(me.name.."-recipe-bypass"), '[^",%s]+') do
me.bypass[recipe] = true
end
end
function me.add_modified(name)
if me.get_setting(me.name.."-list") then
table.insert(me.list, name)
end
end
me.crucible_ingredients = {"zirconia", "silica", "stone-brick"}
me.furnaces = {
"electric-furnace",
"foundry", -- Space Age
"basic-foundry", -- BZ Tin
"electric-foundry", -- BZ
"industrial-furnace", -- AAI
"se-casting-machine", -- SE
"kr-advanced-furnace", -- K2
"electric-furnace-mk2", -- FE+
"electric-furnace-mk3", -- FE+
"mega-furnace", -- Mega furnace
"advanced-electric-furnace-rampant-industrial",
"5d-electric-furnace-02",
"5d-electric-furnace-03",
"5d-electric-furnace-04",
"5d-electric-furnace-05",
"5d-electric-furnace-06",
"5d-electric-furnace-07",
"5d-electric-furnace-08",
"5d-electric-furnace-09",
"5d-electric-furnace-10",
"5d-industrial-furnace",
}
if me.use_flake_graphite() then
table.insert(me.resources, {"graphite", "nauvis"})
end
if me.use_rough_diamond() then
if has_mod("space-age") then
table.insert(me.resources, {"diamond", "vulcanus"})
else
table.insert(me.resources, {"diamond", "nauvis"})
end
end
return me

View file

@ -0,0 +1,8 @@
{
"recipe": [
["imersium-gear-wheel-nanotubes", "kr-s-c-imersium-gear-wheel-nanotubes"],
["imersium-beam-nanotubes", "kr-s-c-imersium-beam-nanotubes"],
["aeroframe-scaffold-nanotubes", "se-aeroframe-scaffold-nanotubes"],
["nanomaterial-nanotubes", "se-nanomaterial-nanotubes"]
]
}

View file

@ -0,0 +1,13 @@
local util = require("data-util");
local cutil = require("carbon-util")
if util.me.use_fullerenes() then
cutil.nanotube_recipe("low-density-structure")
cutil.nanotube_recipe("casting-low-density-structure", "low-density-structure")
cutil.nanotube_recipe("space-platform-foundation")
cutil.nanotube_recipe("low-density-structure-from-aluminum", "low-density-structure")
util.add_to_productivity_research("low-density-structure-productivity", "low-density-structure-nanotubes")
util.add_to_productivity_research("low-density-structure-productivity", "casting-low-density-structure-nanotubes")
util.add_to_productivity_research("low-density-structure-productivity", "low-density-structure-from-aluminum-nanotubes")
end

View file

@ -0,0 +1,65 @@
local util = require("data-util");
if mods["space-age"] then
local precursor = "solid-fuel"
if mods["wood-industry"] then precursor = "charcoal" end
data:extend({
{
type = "item",
name = "activated-carbon",
icon = "__bzcarbon__/graphics/icons/activated-carbon.png",
icon_size = 128,
subgroup = "intermediate-product",
order = "g[activated-carbon]",
stack_size = util.get_stack_size(100),
},
{
type = "recipe",
name = "activated-carbon",
category = "chemistry",
order = "d[graphite-carbon-fiber]",
enabled = false,
energy_required = 2.5,
ingredients = data.raw.fluid["ammonia"] and
{
util.item(precursor),
util.fluid("steam"),
(mods.bztitanium or mods.bzzirconium) and util.fluid("vacuum") or nil
},
results = {
{type="item", name= "activated-carbon", amount=1},
},
},
})
if util.me.use_carbon_black() then
data:extend({
{
type = "recipe",
name = "activated-carbon-black",
localised_name = {"item-name.activated-carbon"},
icons = {
{ icon = "__bzcarbon__/graphics/icons/activated-carbon.png", icon_size = 128},
{ icon = "__bzcarbon__/graphics/icons/carbon-black.png", icon_size = 64, scale = 0.25, shift = {-8, -8}},
},
category = "chemistry",
order = "d[graphite-carbon-fiber]",
enabled = false,
energy_required = 2.5,
ingredients = data.raw.fluid["ammonia"] and
{
util.item("carbon-black", 5),
util.fluid("steam"),
(mods.bztitanium or mods.bzzirconium) and util.fluid("vacuum") or nil
},
results = {
{type="item", name= "activated-carbon", amount=1},
},
},
})
end
util.add_unlock("advanced-oil-processing", "activated-carbon")
util.add_unlock("advanced-oil-processing", "activated-carbon-black")
util.add_ingredient("supercapacitor", "activated-carbon", 10)
util.add_unlock("advanced-oil-processing", "titanium-sublimation")
util.add_unlock("advanced-oil-processing", "zirconium-gettering")
end

View file

@ -0,0 +1,184 @@
local futil = require("util")
local util = require("data-util");
local item_sounds = require("__base__.prototypes.item_sounds")
local sounds = require("__base__.prototypes.entity.sounds")
local hit_effects = require("__base__.prototypes.entity.hit-effects")
if mods["space-age"] and not data.raw.furnace["basic-crusher"] and not mods["crushing-industry"] then
-- note that crusher is a space age asset and as such can only be used with space age
local graphics = require("__space-age__.prototypes.entity.crusher-pictures")
graphics.integration_patch.north.scale = graphics.integration_patch.north.scale * 0.5
graphics.integration_patch.east.scale = graphics.integration_patch.east.scale * 0.5
graphics.integration_patch.south.scale = graphics.integration_patch.south.scale * 0.5
graphics.integration_patch.west.scale = graphics.integration_patch.west.scale * 0.5
graphics.animation.north.layers[1].scale = graphics.animation.north.layers[1].scale * 0.5
graphics.animation.north.layers[2].scale = graphics.animation.north.layers[2].scale * 0.5
graphics.animation.south.layers[1].scale = graphics.animation.south.layers[1].scale * 0.5
graphics.animation.south.layers[2].scale = graphics.animation.south.layers[2].scale * 0.5
graphics.animation.east.layers[1].scale = graphics.animation.east.layers[1].scale * 0.5
graphics.animation.east.layers[2].scale = graphics.animation.east.layers[2].scale * 0.5
graphics.animation.west.layers[1].scale = graphics.animation.west.layers[1].scale * 0.5
graphics.animation.west.layers[2].scale = graphics.animation.west.layers[2].scale * 0.5
graphics.working_visualisations[1].north_animation.scale = graphics.working_visualisations[1].north_animation.scale * 0.5
graphics.working_visualisations[1].east_animation.scale = graphics.working_visualisations[1].east_animation.scale * 0.5
graphics.working_visualisations[1].south_animation.scale = graphics.working_visualisations[1].south_animation.scale * 0.5
graphics.working_visualisations[1].west_animation.scale = graphics.working_visualisations[1].west_animation.scale * 0.5
graphics.integration_patch.north.shift[1] = graphics.integration_patch.north.shift[1] * 0.5
graphics.integration_patch.north.shift[2] = graphics.integration_patch.north.shift[2] * 0.5
graphics.integration_patch.south.shift[1] = graphics.integration_patch.south.shift[1] * 0.5
graphics.integration_patch.south.shift[2] = graphics.integration_patch.south.shift[2] * 0.5
graphics.integration_patch.east.shift[1] = graphics.integration_patch.east.shift[1] * 0.5
graphics.integration_patch.east.shift[2] = graphics.integration_patch.east.shift[2] * 0.5
graphics.integration_patch.west.shift[1] = graphics.integration_patch.west.shift[1] * 0.5
graphics.integration_patch.west.shift[2] = graphics.integration_patch.west.shift[2] * 0.5
graphics.animation.north.layers[1].shift[1] = graphics.animation.north.layers[1].shift[1] * 0.5
graphics.animation.north.layers[1].shift[2] = graphics.animation.north.layers[1].shift[2] * 0.5
graphics.animation.north.layers[2].shift[1] = graphics.animation.north.layers[2].shift[1] * 0.5
graphics.animation.north.layers[2].shift[2] = graphics.animation.north.layers[2].shift[2] * 0.5
graphics.animation.south.layers[1].shift[1] = graphics.animation.south.layers[1].shift[1] * 0.5
graphics.animation.south.layers[1].shift[2] = graphics.animation.south.layers[1].shift[2] * 0.5
graphics.animation.south.layers[2].shift[1] = graphics.animation.south.layers[2].shift[1] * 0.5
graphics.animation.south.layers[2].shift[2] = graphics.animation.south.layers[2].shift[2] * 0.5
graphics.animation.east.layers[1].shift[1] = graphics.animation.east.layers[1].shift[1] * 0.5
graphics.animation.east.layers[1].shift[2] = graphics.animation.east.layers[1].shift[2] * 0.5
graphics.animation.east.layers[2].shift[1] = graphics.animation.east.layers[2].shift[1] * 0.5
graphics.animation.east.layers[2].shift[2] = graphics.animation.east.layers[2].shift[2] * 0.5
graphics.animation.west.layers[1].shift[1] = graphics.animation.west.layers[1].shift[1] * 0.5
graphics.animation.west.layers[1].shift[2] = graphics.animation.west.layers[1].shift[2] * 0.5
graphics.animation.west.layers[2].shift[1] = graphics.animation.west.layers[2].shift[1] * 0.5
graphics.animation.west.layers[2].shift[2] = graphics.animation.west.layers[2].shift[2] * 0.5
graphics.working_visualisations[1].north_animation.shift[1] = graphics.working_visualisations[1].north_animation.shift[1] * 0.5
graphics.working_visualisations[1].north_animation.shift[2] = graphics.working_visualisations[1].north_animation.shift[2] * 0.5
graphics.working_visualisations[1].south_animation.shift[1] = graphics.working_visualisations[1].south_animation.shift[1] * 0.5
graphics.working_visualisations[1].south_animation.shift[2] = graphics.working_visualisations[1].south_animation.shift[2] * 0.5
graphics.working_visualisations[1].east_animation.shift[1] = graphics.working_visualisations[1].east_animation.shift[1] * 0.5
graphics.working_visualisations[1].east_animation.shift[2] = graphics.working_visualisations[1].east_animation.shift[2] * 0.5
graphics.working_visualisations[1].west_animation.shift[1] = graphics.working_visualisations[1].west_animation.shift[1] * 0.5
graphics.working_visualisations[1].west_animation.shift[2] = graphics.working_visualisations[1].west_animation.shift[2] * 0.5
util.add_new_crafting_category("basic-crushing", true)
data:extend({
{
type = "item",
name = "basic-crusher",
icons = {{icon = "__space-age__/graphics/icons/crusher.png", icon_size=64, scale=0.8, tint={.7,.7,.7}}},
subgroup = "production-machine",
order = "s[crusher]",
inventory_move_sound = item_sounds.drill_inventory_move,
pick_sound = item_sounds.drill_inventory_pickup,
drop_sound = item_sounds.drill_inventory_move,
place_result = "basic-crusher",
stack_size = 10,
weight = 50*kg
},
{
type = "furnace",
name = "basic-crusher",
icons = {{icon = "__space-age__/graphics/icons/crusher.png", icon_size=64, scale=0.8, tint={.7,.7,.7}}},
source_inventory_size = 1,
result_inventory_size = 1,
icon = "__space-age__/graphics/icons/crusher.png",
flags = {"placeable-neutral", "placeable-player", "player-creation"},
minable = {mining_time = 0.5, result = "basic-crusher"},
-- fast_replaceable_group = "",
max_health = 350,
corpse = "electric-furnace-remnants",
dying_explosion = "electric-furnace-explosion",
circuit_wire_max_distance = 9,
circuit_connector = circuit_connector_definitions["crusher"],
resistances =
{
{
type = "fire",
percent = 80
}
},
collision_box = {{-0.4, -0.8}, {0.4, 0.8}},
-- collision_box = {{-0.7, -1.2}, {0.7, 1.2}},
surface_conditions =
{
{
property = "gravity",
min = 0.1,
-- max =
}
},
selection_box = {{-.5, -1}, {.5, 1}},
damaged_trigger_effect = hit_effects.entity(),
module_slots = 0,
icons_positioning =
{
{inventory_index = defines.inventory.furnace_modules, shift = {0, 0.3}}
},
icon_draw_specification = { scale=0.5},
allowed_effects = {"consumption", "speed", "productivity", "pollution", "quality"},
crafting_categories = {"basic-crushing"},
crafting_speed = 2,
energy_usage = "100kW",
heating_energy = "200kW",
energy_source =
{
type = "electric",
usage_priority = "secondary-input",
emissions_per_minute = { pollution = 1 }
},
open_sound = sounds.electric_large_open,
close_sound = sounds.electric_large_close,
working_sound =
{
sound =
{
filename = "__space-age__/sound/entity/crusher/crusher-loop.ogg",
volume = 0.8
},
audible_distance_modifier = 0.6,
fade_in_ticks = 4,
fade_out_ticks = 20,
max_sounds_per_type = 3
},
graphics_set = graphics,
water_reflection =
{
pictures =
{
filename = "__space-age__/graphics/entity/crusher/crusher-reflection.png",
priority = "extra-high",
width = 24,
height = 24,
shift = futil.by_pixel(5, 40-32),
variation_count = 1,
scale = 5
},
rotate = false,
orientation_to_variation = false
}
},
{
type = "recipe",
name = "basic-crusher",
enabled = false,
ingredients =
{
{type = "item", name = "steel-plate", amount = 10},
{type = "item", name = "iron-plate", amount = 10},
{type = "item", name = "iron-gear-wheel", amount = 10},
},
energy_required = 2.5,
results = {{type="item", name="basic-crusher", amount=1}}
},
})
if mods["aai-industry"] then
util.add_unlock("sand-processing", "basic-crusher")
util.add_prerequisite("sand-processing", "steel-processing")
else
util.add_unlock("automation-2", "basic-crusher")
end
util.add_prerequisite("silica-processing", "automation-2")
end
-- For graphite we can't have steel as an ingredient.
util.remove_ingredient("basic-crusher", "steel-plate")
util.add_to_ingredient("basic-crusher", "iron-plate", 20)

View file

@ -0,0 +1,42 @@
local util = require("data-util");
if mods["space-age"] then
local results = {
{type = "item", name = "carbonic-asteroid-chunk", amount = 1, probability = 0.1},
{type = "item", name = "rough-diamond", amount = 1, probability=0.5},
}
if util.me.use_flake_graphite() then
table.insert(results, {type = "item", name = "flake-graphite", amount = 10})
else
table.insert(results, {type = "item", name = "graphite", amount = 10})
end
data:extend({
{
type = "recipe",
name = "alternative-carbonic-asteroid-crushing",
icons =
{
{icon="__space-age__/graphics/icons/carbonic-asteroid-crushing.png", size=64},
{icon="__bzcarbon__/graphics/icons/flake-graphite.png", icon_size=128, scale=0.125, shift={8,0}},
{icon="__bzcarbon__/graphics/icons/rough-diamond.png", icon_size=128, scale=0.125, shift={-8,0}},
},
category = "crushing",
subgroup="space-crushing",
order = "b-a-z-b",
auto_recycle = false,
enabled = false,
ingredients =
{
{type = "item", name = "carbonic-asteroid-chunk", amount = 1}
},
energy_required = 5,
results = results,
hide_from_signal_gui = false,
allow_productivity = true,
allow_decomposition = false
},
})
util.add_unlock("space-platform-thruster", "alternative-carbonic-asteroid-crushing")
util.add_to_productivity_research("asteroid-productivity", "alternative-carbonic-asteroid-crushing")
end

View file

@ -0,0 +1,125 @@
local util = require("data-util");
if util.me.use_fiber() then
if mods["space-age"] then
-- ammonia from spoilage for polyacrylonitrile and for graphene
data:extend({
{
type = "recipe",
name = "ammonia-from-spoilage",
category = "organic",
subgroup = "agriculture-processes",
icons = {
{icon = "__space-age__/graphics/icons/fluid/ammonia.png", icon_size = 64},
{icon = "__space-age__/graphics/icons/spoilage.png", icon_size = 64, scale= 0.25, shift = {-8,-8}},
},
enabled = false,
energy_required = 5,
ingredients = {
util.item("spoilage", 1),
},
results = {
util.fluid("ammonia", 10),
},
}
})
end
data:extend({
{
type = "item",
name = "polyacrylonitrile",
icon = "__bzcarbon__/graphics/icons/pan.png",
icon_size = 128,
subgroup = "intermediate-product",
order = "g[graphite-acrylic-fiber]",
stack_size = util.get_stack_size(100),
},
{
type = "recipe",
name = "polyacrylonitrile",
category = "chemistry",
order = "d[graphite-carbon-fiber]",
enabled = false,
energy_required = 1,
ingredients = data.raw.fluid["kr-ammonia"] and
{
{type="fluid", name="petroleum-gas", amount=5},
{type="fluid", name="kr-ammonia", amount=5},
} or {
{type="fluid", name="petroleum-gas", amount=10},
},
results = {
{type="item", name= "polyacrylonitrile", amount=1},
},
},
})
if mods["space-age"] then
util.set_category("polyacrylonitrile", "organic")
util.remove_ingredient("polyacrylonitrile", "petroleum-gas")
util.add_ingredient("polyacrylonitrile", "jelly", 10)
util.add_ingredient("polyacrylonitrile", "jelly", 10)
util.add_ingredient("polyacrylonitrile", "ammonia", 10)
util.add_ingredient("carbon-fiber", "ammonia", 10)
util.replace_ingredient("carbon-fiber", "carbon", "polyacrylonitrile")
util.set_item_icons("carbon-fiber", { {icon = "__bzcarbon__/graphics/icons/carbon-fiber.png", icon_size = 128,} })
util.add_unlock("biochamber", "ammonia-from-spoilage")
util.add_unlock("carbon-fiber", "polyacrylonitrile")
else
data:extend({
{
type = "item",
name = "carbon-fiber",
icon = "__bzcarbon__/graphics/icons/carbon-fiber.png",
icon_size = 128,
subgroup = "intermediate-product",
order = "g[graphite-carbon-fiber]",
stack_size = util.get_stack_size(100),
},
{
type = "recipe",
name = "carbon-fiber",
category = "advanced-crafting",
order = "d[graphite-carbon-fiber]",
enabled = false,
energy_required = 24,
ingredients = {
{type="fluid", name="epoxy", amount = 20},
{ type = "item", name = "plastic-bar", amount = 2 },
{ type = "item", name = "polyacrylonitrile", amount = 4 },
},
results = {
{type="item", name= "carbon-fiber", amount=8},
},
},
})
data:extend({
{
type = "technology",
name = "carbon-fiber",
icon_size = 256,
icon = "__bzcarbon__/graphics/technology/carbon-fiber.png",
effects = {
{type="unlock-recipe", recipe="polyacrylonitrile"},
{type="unlock-recipe", recipe="carbon-fiber"},
},
unit =
{
count = 30,
ingredients =
{
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
},
time = 10,
},
prerequisites = {"chemical-science-pack", "plastics"},
order = "b-b"
},
})
util.replace_some_ingredient("carbon-fiber", "plastic", 1, "silica", 2, {force=true})
util.add_prerequisite("low-density-structure", "carbon-fiber")
util.add_prerequisite("exoskeleton-equipment", "carbon-fiber")
util.add_prerequisite("military-3", "carbon-fiber")
end
end

View file

@ -0,0 +1,80 @@
data:extend(
{
{
type = "optimized-particle",
name = "diamond-particle",
flags = {"not-on-map"},
life_time = 180,
pictures =
{
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-1.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-2.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-3.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-4.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
}
},
shadows =
{
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-1.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-2.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-3.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-4.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
}
}
}
}
)

View file

@ -0,0 +1,88 @@
local resource_autoplace = require('resource-autoplace');
local item_sounds = require('__base__.prototypes.item_sounds')
local util = require("data-util");
if util.me.use_rough_diamond() then
local planet = mods["space-age"] and "vulcanus" or "nauvis"
resource_autoplace.initialize_patch_set("diamond", true)
data.raw.planet[planet].map_gen_settings.autoplace_controls["diamond"] = {}
data.raw.planet[planet].map_gen_settings.autoplace_settings.entity.settings["diamond"] = {}
if mods.tenebris then
data.raw.planet.tenebris.map_gen_settings.autoplace_controls["diamond"] = {}
data.raw.planet.tenebris.map_gen_settings.autoplace_settings.entity.settings["diamond"] = {}
end
data:extend({
{
type = "autoplace-control",
category = "resource",
name = "diamond",
richness = true,
order = mods["space-age"] and "b-d-a" or "a-g",
},
-- {
-- type = "noise-layer",
-- name = "diamond"
-- },
{
type = "resource",
name = "diamond",
icon = "__bzcarbon__/graphics/icons/rough-diamond.png",
icon_size = 128,
flags = {"placeable-neutral"},
order="a-b-a",
map_color = {r=0.30, g=0.54, b=0.92},
minable =
{
mining_particle = "diamond-particle",
mining_time = 15,
result = "rough-diamond"
},
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 = "diamond",
order = mods["space-age"] and "b-d-a" or "a-g",
base_density = mods["space-age"] and 6 or 0.5,
base_spots_per_km2 = mods["space-age"] and 1.3 or 0.5,
has_starting_area_placement = not not mods["space-age"],
regular_rq_factor_multiplier = mods["space-age"] and 1 or 0.6,
},
stage_counts = {15000, 9500, 5500, 2900, 1300, 400, 150, 80},
stages =
{
sheet =
{
filename = "__bzcarbon__/graphics/entity/ores/hr-diamond.png",
priority = "extra-high",
size = 128,
frame_count = 8,
variation_count = 8,
scale = 0.5
}
},
},
{
type = "item",
name = "rough-diamond",
icon_size = 128,
icon = "__bzcarbon__/graphics/icons/rough-diamond.png",
pictures = {
{filename="__bzcarbon__/graphics/icons/rough-diamond.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/rough-diamond-1.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/rough-diamond-2.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/rough-diamond-3.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/rough-diamond-4.png", size=128, scale=0.25},
},
inventory_move_sound = item_sounds.resource_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.resource_inventory_move,
subgroup = "raw-resource",
order = "t-c-a",
stack_size = util.get_stack_size(50)
},
})
end

View file

@ -0,0 +1,80 @@
data:extend(
{
{
type = "optimized-particle",
name = "graphite-particle",
flags = {"not-on-map"},
life_time = 180,
pictures =
{
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-1.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-2.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-3.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-4.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
}
},
shadows =
{
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-1.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-2.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-3.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
},
{
filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-4.png",
priority = "extra-high",
width = 32,
height = 32,
frame_count = 1,
scale = 0.5
}
}
}
}
)

View file

@ -0,0 +1,93 @@
local resource_autoplace = require('resource-autoplace');
local item_sounds = require('__base__.prototypes.item_sounds')
local util = require("data-util");
if util.me.use_flake_graphite() then
resource_autoplace.initialize_patch_set("graphite", true)
data.raw.planet.nauvis.map_gen_settings.autoplace_controls["graphite"] = {}
data.raw.planet.nauvis.map_gen_settings.autoplace_settings.entity.settings["graphite"] = {}
if mods.tenebris then
data.raw.planet.tenebris.map_gen_settings.autoplace_controls["graphite"] = {}
data.raw.planet.tenebris.map_gen_settings.autoplace_settings.entity.settings["graphite"] = {}
end
log("B")
data:extend({
{
type = "autoplace-control",
category = "resource",
name = "graphite",
richness = true,
order = "a-g"
},
-- {
-- type = "noise-layer",
-- name = "graphite"
-- },
{
type = "resource",
name = "graphite",
icon = "__bzcarbon__/graphics/icons/flake-graphite.png",
icon_size = 128,
flags = {"placeable-neutral"},
order="a-b-a",
map_color = {r=0.18, g=0.17, b=0.30},
minable =
{
hardness = 1,
mining_particle = "graphite-particle",
mining_time = 1,
fluid_amount = 1,
required_fluid = "steam",
result = "flake-graphite"
},
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 = "graphite",
order = "a-g",
base_density = 6,
base_spots_per_km2 = 1,
has_starting_area_placement = true,
regular_rq_factor_multiplier = 1.2,
starting_rq_factor_multiplier = 1.4,
},
stage_counts = {15000, 9500, 5500, 2900, 1300, 400, 150, 80},
stages =
{
sheet =
{
filename = "__bzcarbon__/graphics/entity/ores/hr-graphite.png",
priority = "extra-high",
size = 128,
frame_count = 8,
variation_count = 8,
scale = 0.5
}
},
},
{
type = "item",
name = "flake-graphite",
icon_size = 128,
icon = "__bzcarbon__/graphics/icons/flake-graphite.png",
pictures = {
{filename="__bzcarbon__/graphics/icons/flake-graphite.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/flake-graphite-1.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/flake-graphite-2.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/flake-graphite-3.png", size=128, scale=0.25},
{filename="__bzcarbon__/graphics/icons/flake-graphite-4.png", size=128, scale=0.25},
},
inventory_move_sound = item_sounds.resource_inventory_move,
pick_sound = item_sounds.resource_inventory_pickup,
drop_sound = item_sounds.resource_inventory_move,
subgroup = "raw-resource",
order = "t-c-a",
stack_size = util.get_stack_size(50)
},
})
end
log("A")

View file

@ -0,0 +1,13 @@
-- WARNING WARNING WARNING
-- This file will be overwritten in mod zipfiles, edit bzlib/settings-util.lua
-- WARNING WARNING WARNING
local util = {}
function util.set_default_value(t, name, default)
if data.raw[t] and data.raw[t][name] then
data.raw[t][name].default_value = default
end
end
return util

76
bzcarbon2/settings.lua Normal file
View file

@ -0,0 +1,76 @@
data:extend({
{
type = "string-setting",
name = "bzcarbon-recipe-bypass",
setting_type = "startup",
default_value = "",
allow_blank = true,
order = "a",
},
{
type = "string-setting",
name = "bzcarbon-enable-fullerenes",
setting_type = "startup",
default_value = "yes",
allowed_values = {"no", "yes"},
order = "b1",
},
{
type = "string-setting",
name = "bzcarbon-enable-carbon-black",
setting_type = "startup",
default_value = "no",
allowed_values = {"no", "yes"},
order = "b2",
},
{
type = "string-setting",
name = "bzcarbon-enable-flake-graphite",
setting_type = "startup",
hidden = not not mods["rso-mod"],
default_value = "yes",
allowed_values = {"no", "yes"},
order = "d2",
},
{
type = "string-setting",
name = "bzcarbon-reuse",
setting_type = "startup",
default_value = "no",
allowed_values = {"no", "yes"},
order = "e",
},
{
type = "bool-setting",
name = "bzcarbon-list",
setting_type = "startup",
default_value = false,
order = "f",
},
})
if not mods["space-age"] and not mods["rso-mod"] then
data:extend({
{
type = "string-setting",
name = "bzcarbon-enable-rough-diamond",
setting_type = "startup",
hidden = not not mods["rso-mod"],
default_value = mods["rso-mod"] and "yes" or "no",
allowed_values = {"no", "yes"},
order = "d1",
},
})
end
if mods.bzchlorine2 then
data:extend({
{
type = "string-setting",
name = "bzcarbon-enable-carbon-fiber",
setting_type = "startup",
default_value = "yes",
allowed_values = {"no", "yes"},
order = "b3",
},
})
end

View file

@ -0,0 +1,48 @@
local util = require("data-util");
local ore = "flake-graphite"
local ore_icon = "__bzcarbon__/graphics/icons/flake-graphite.png"
if util.me.use_flake_graphite() and mods["StrangeMatter"] then
data:extend({
{
type = "recipe",
name = ore.."-synthesis",
icons = {
{ icon = ore_icon, icon_size = 64 },
{ icon = "__StrangeMatter__/graphics/icons/fluid/matter.png", icon_size = 32, scale=0.5, shift= {-8, -8}},
},
enabled = false,
energy_required = 1,
ingredients = {{type="fluid", name="strange-matter", amount = 2}},
result = ore,
category = "crafting-with-fluid",
subgroup = "synthesis",
},
{
type = "technology",
name = ore.."-synthesis",
icons = {
{ icon = "__StrangeMatter__/graphics/icons/fluid/matter.png", icon_size = 32, shift= {-6, 0}},
{ icon = ore_icon, icon_size = 64, scale=0.25, shift={8, 8}},
},
prerequisites = {"stone-synthesis"},
effects = {
{
type = "unlock-recipe",
recipe = ore.."-synthesis",
},
},
unit = {
count = 800,
time = 30,
ingredients = {
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
{"production-science-pack", 1},
}
}
}
})
end

View file

@ -0,0 +1,9 @@
local util = require("data-util");
util.set_tech_trigger("fluid-mining", {type="craft-fluid", fluid="steam", amount=500})
util.set_prerequisite("fluid-mining", {"steam-power"})
util.add_unlock("steam-power", "copper-cable")
util.add_unlock("steam-power", "small-electric-pole")
util.set_prerequisite("electric-mining-drill", {"steam-power"})
util.set_tech_trigger("electric-mining-drill", {type="craft-item", item="small-electric-pole", count=10})
util.set_prerequisite("graphite-processing", {"fluid-mining", "electric-mining-drill"})

BIN
bzcarbon2/thumbnail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB