This commit is contained in:
caes 2020-05-21 07:36:04 -04:00
commit a281ebad76
44 changed files with 2202 additions and 0 deletions

214
changelog.txt Normal file
View File

@ -0,0 +1,214 @@
---------------------------------------------------------------------------------------------------
Version: 0.1.10
Date: 2020-02-22
Fixes:
- Fixed concrete recipe icons.
---------------------------------------------------------------------------------------------------
Version: 0.1.9
Date: 2020-02-03
Changes:
- Incremented to version 18.
---------------------------------------------------------------------------------------------------
Version: 0.1.8
Date: 2019-12-24
Recipes:
- Reduced solid-fuel cost of calcite recipe from 5 to 1.
---------------------------------------------------------------------------------------------------
Version: 0.1.7
Date: 2019-10-04
Changes:
- Code improvements from library integration.
- Moved all remaining recipe generation code
to data-final-fixes.lua for better cross-mod
integration.
Graphics:
- Added dynamic colorization of recognized recipes
that don't originate as chemistry recipes.
- Fixed escape pressure on process vessel to run at
constant speed.
Recipes:
- Removed electronic-circuit from blast furnace recipe.
- Reduced blast furnace recipe to take 2 pipes.
- Added electronic-circuit to process vessel recipe.
---------------------------------------------------------------------------------------------------
Version: 0.1.6
Date: 2019-10-01
Balancing:
- Made sulfur burnable for energy in many
vanilla entities and some mod entities
with a 12-fold pollution multiplier.
---------------------------------------------------------------------------------------------------
Version: 0.1.5
Date: 2019-09-30
Balancing:
- Reduced calcite input count for flux smelting.
---------------------------------------------------------------------------------------------------
Version: 0.1.4
Date: 2019-09-30
Graphics:
- Updated chemistry recipe tints for new
chemical plant graphic.
---------------------------------------------------------------------------------------------------
Version: 0.1.3
Date: 2019-09-29
Fixes:
- Fixed catalyst_amount on gypsum output from
HF: I forgot to set it to 5 instead of 1.
---------------------------------------------------------------------------------------------------
Version: 0.1.2
Date: 2019-09-28
Balancing:
- Added catalyst_amount to gypsum output in
HF recipe, so productivity modules will not
violate conservation of calcium and sulfur.
- Increased science pack yield from 2 to 3
in fluorite science pack recipe, since
fluorite is already more valuable than sulfur.
---------------------------------------------------------------------------------------------------
Version: 0.1.1
Date: 2019-09-28
Recipes:
- Changed fluorite battery recipe to require
solid-fuel instead of plastic-bar, and calcite
instead of stone. Note calcite can be sourced
from HF production. Reduced input and output
numbers from 2 to 1 (20->10 for HF).
---------------------------------------------------------------------------------------------------
Version: 0.1.0
Date: 2019-09-27
Balancing:
- Changed fluorite battery recipe to be
easier.
Fixes:
- Fixed changelog.
---------------------------------------------------------------------------------------------------
Version: 0.0.11
Date: 2019-09-27
Balancing:
- Drastically reduced the amount of minerals from
smelting. Now you should get just enough clinker
to cover the gypsum from advanced stone separation
when making concrete, and 5% of the ore count goes
to the probability of finding other minerals,
divided by their geological constants.
---------------------------------------------------------------------------------------------------
Version: 0.0.10
Date: 2019-09-26
Balancing:
- Removed gypsum result from chemical science pack.
- Moved gypsum ratio component from fluorite to
sulfur in smelting recipes. This makes fluorite
slightly more rare while still providing the same
potential amount of gypsum.
---------------------------------------------------------------------------------------------------
Version: 0.0.9
Date: 2019-09-26
Fixes:
- Fixed typo in flourite battery technology
assignment.
Balancing:
- Balanced flux smelting recipes against
geological globals to improve overall
balance relative to fluorite-consuming
recipes.
---------------------------------------------------------------------------------------------------
Version: 0.0.8
Date: 2019-09-25
Graphics:
- Updated blast furnace graphics.
Balancing:
- Reduced blast furnace footprint to 2x2.
- Balanced blast furnace smelting ratios to
optimize output ratios with their associated
production chains.
- Changed prerequisite tech for fluorite
processing to chemical science pack.
Recipes:
- Added fluorite-based recipe for chemical
science pack, which also gives gypsum, so
fluorite can be processed toward concrete
in the early game.
- Changed blast furnace recipe.
---------------------------------------------------------------------------------------------------
Version: 0.0.7
Date: 2019-09-15
Fixes:
- Added exception for assembler mk3 and centrifuge
in assembler pipe passthrough mod. You can already use
the assembler as a passthrough device under this mod's
changes.
---------------------------------------------------------------------------------------------------
Version: 0.0.6
Date: 2019-09-14
Updates:
- Compability update with Adamo Nuclear due to
changes in centrifuge fluid boxes.
---------------------------------------------------------------------------------------------------
Version: 0.0.5
Date: 2019-09-06
Order:
- Reordered a few items to better match vanilla
ordering.
Recipes:
- Added Gold Mining recipe categories to scan.
---------------------------------------------------------------------------------------------------
Version: 0.0.4
Date: 2019-09-06
Entities:
- Adjusted assembler pipes to attempt to match with pipe
passthrough.
---------------------------------------------------------------------------------------------------
Version: 0.0.3
Date: 2019-09-06
Balancing:
- Adjusted blast furnace smelting recipes to
lower input counts, because there seems to be
an inserter bug with very high ingredient
amounts.
- Moved process vessel further back in tech tree.

616
data-final-fixes.lua Normal file
View File

@ -0,0 +1,616 @@
require("factsheet")
local binding_time_mult = 1
local binding_prod_mult = 5
local separation_time_mult = 1/2
local separation_prod_mult = 2
local vapor_time_mult = 2
local vapor_prod_mult = 5
local screening_efficiency = 0.8
chem_category_list = {
"crafting-with-fluid",
"chemistry",
"drugs",
"drugs-et-et",
"drugs-to-et",
"drugs-et-to",
"drugs-to-to",
"drugs-tre-tre",
"agitation",
"advanced-agitation",
"drugged-science",
"gold-mining",
"super-gold-mining"
}
function is_chem_category(category)
if type(category) ~= "string" then return false end
for _,category_name in pairs(chem_category_list) do
if category == category_name then return true end
end
return false
end
smelting_category_list = {
"smelting"
}
function is_smelting_category(category)
if type(category) ~= "string" then return false end
for _,category_name in pairs(smelting_category_list) do
if category == category_name then return true end
end
return false
end
manufacturing_names = {
"steel-plate",
"belt",
"inserter",
"rounds",
"barrel"
}
manufacturing_subgroups = {
"intermediate-product",
"science-pack",
}
catalyst_names = {
"iron-plate",
"copper-plate",
}
function manufacturing_needed_for(ingredient)
if type(ingredient) ~= "table" then return false end
local itemname = ingredient.name or ingredient[1]
for _,matchname in pairs(manufacturing_names) do
if itemname:match(matchname)
or itemname == matchname then
return true
end
end
if type(data.raw.item[itemname]) == "table" then
if data.raw.item[itemname].normal
or data.raw.item[itemname].expensive then
for _,subgroup in pairs(manufacturing_subgroups) do
if (
data.raw.item[itemname].normal.subgroup
or data.raw.item[itemname].expensive.subgroup
) == subgroup then
return true
end
end
end
for _,subgroup in pairs(manufacturing_subgroups) do
if data.raw.item[itemname].subgroup == subgroup then
return true
end
end
end
return false
end
function is_plate(io_type)
local io_type = io_prototype_or_bust(io_type)
if not io_type then return end
return (io_type.name or io_type[1]):match("plate")
end
function is_catalyst(io_type)
local io_type = io_prototype_or_bust(io_type)
if not io_type then return end
if io_type.catalyst_amount then
if io_type.catalyst_amount > 0 then
return true
else
return false
end
end
local itemname = io_type.name or io_type[1]
for _,matchname in pairs(catalyst_names) do
if itemname:match(matchname)
or itemname == matchname then
return true
end
end
return false
end
function chemical_category(
name,
solid_input_count,
solid_output_count,
fluid_input_count,
fluid_output_count,
catalyst_inputs,
catalyst_outputs,
takes_water,
outputs_water,
uses_carbonation
)
local solid_output_count = solid_output_count - catalyst_outputs
local solid_input_count = solid_input_count - catalyst_inputs
if uses_carbonation then
solid_input_count = solid_input_count - 1
end
if fluid_input_count == 0
and fluid_output_count == 0 then
if solid_input_count < solid_output_count then
return "adamo-chemical-separation"
elseif solid_input_count == solid_output_count then
return "adamo-chemical-manufacturing"
elseif solid_output_count == 1
and solid_input_count > 1 then
return "adamo-chemical-firing"
else
return "adamo-chemical-manufacturing"
end
end
if solid_output_count == 0
and solid_input_count == 0 then
return "adamo-chemical-vaporworks"
end
-- from this point everything has fluids and solids
if takes_water
and fluid_input_count == 1
and solid_input_count == 0
then
return "adamo-chemical-vaporworks"
end
if solid_input_count > solid_output_count
and fluid_input_count > 0
and fluid_output_count > 0
and fluid_input_count >= solid_input_count
then
return "adamo-chemical-disassociation"
end
if takes_water then
fluid_input_count = fluid_input_count - 1
end
-- water is incidental for these
if fluid_input_count == 0
and fluid_output_count == 0 then
if solid_input_count < solid_output_count then
return "adamo-chemical-separation"
end
end
if solid_input_count == solid_output_count then
if fluid_input_count < fluid_output_count then
return "adamo-chemical-recovery"
elseif fluid_input_count == fluid_output_count then
if fluid_input_count > 0 then
return "adamo-chemical-displacement"
end
return "adamo-chemical-binding"
elseif fluid_input_count > fluid_output_count then
return "adamo-chemical-activation"
end
end
if takes_water then
fluid_input_count = fluid_input_count + 1
end
if fluid_input_count > 0
--and fluid_output_count >= 0 implied
and solid_output_count > 0
and solid_output_count < (fluid_output_count + 2)
then
if solid_input_count < solid_output_count
or (
(
solid_input_count
- fluid_input_count
+ fluid_output_count
) < solid_output_count
) then
return "adamo-chemical-deposition"
end
if solid_input_count > solid_output_count
and fluid_output_count == 0 then
return "adamo-chemical-binding"
end
end
return "adamo-chemical-manufacturing"
end
-- Calcination smelting should give back some resources.
-- at time_norm 5 and 150kW, ~10-25 ore_norm is the range
-- between stone and steel furnace power use
local ore_norm = 10
local time_norm = 4
local calcinate_recipe = function(recipe,mult)
local recipe = recipe_or_bust(recipe)
if not recipe then return nil end
if type(mult) ~= "number"
or mult <= 0 then mult = ore_norm end
local calcined_recipe = util.table.deepcopy(recipe)
mult_recipe_energy(
calcined_recipe,mult*time_norm/ore_norm
)
mult_recipe_io(calcined_recipe,mult)
calcined_recipe.name = calcined_recipe.name.."-calcined"
calcined_recipe.category = "adamo-chemical-firing"
calcined_recipe.subgroup = "adamo-chemical-firing"
if uses_ingredient(recipe,"iron-plate") then
replace_in_recipe_io(
calcined_recipe,
"iron-plate",
"iron-ore"
)
end
if uses_ingredient(recipe,"copper-plate") then
replace_in_recipe_io(
calcined_recipe,
"copper-plate",
"copper-ore"
)
end
local toss,ore_count,toss =
get_ingredient(calcined_recipe,"iron-ore")
if ore_count == 0 then
toss,ore_count,toss =
get_ingredient(calcined_recipe,"copper-ore")
end
if ore_count == 0 then
toss,stone_count,toss =
get_ingredient(calcined_recipe,"stone")
if stone_count > 0 then
replace_in_recipe_io(
calcined_recipe,
"stone",
"adamo-chemical-clinker",
1/2
)
add_ingredient(
calcined_recipe,"adamo-chemical-calcite",
math.ceil(stone_count/2)
)
return calcined_recipe
else
return nil
end
end
local mineral_count = ore_count/20
local flux_input = math.ceil(mineral_count*2)
local clinker_ratio = 1/3 -- to match gypsum
local clinker_output = clinker_ratio*flux_input
local clinker_count = clinker_ratio*flux_input
local clinker_prob = nil
if clinker_output > 1 then
clinker_count = math.ceil(clinker_output)
clinker_prob = clinker_count/clinker_output
end
add_ingredient(
calcined_recipe,"adamo-chemical-calcite",
flux_input
)
add_result(
calcined_recipe,"adamo-chemical-fluorite",
mineral_count,
(fluorite_ratio)
)
if data.raw.item["SiSi-quartz"] then
add_result(
calcined_recipe,"SiSi-quartz",
mineral_count,
quartz_ratio
)
end
if data.raw.item["adamo-chemical-quartz"] then
add_result(
calcined_recipe,"adamo-chemical-quartz",
mineral_count,
quartz_ratio
)
end
add_result(
calcined_recipe,"sulfur",
mineral_count,
(1 - fluorite_ratio - quartz_ratio)
)
add_result(
calcined_recipe,"adamo-chemical-clinker",
clinker_count,
clinker_prob
)
return calcined_recipe
end
-- Generate chemical engineering recipes.
-- Should be able to use hydrofluoric acid to clean chips, make batteries, do science.
local processing_unit_from_hf_recipe =
util.table.deepcopy(data.raw.recipe["processing-unit"])
processing_unit_from_hf_recipe.name = "adamo-chemical-processing-unit"
for _,ingredient in pairs(processing_unit_from_hf_recipe.normal.ingredients) do
if ingredient.type and ingredient.name == "sulfuric-acid" then
ingredient.name = "adamo-chemical-hydrofluoric-acid"
end
end
for _,ingredient in pairs(processing_unit_from_hf_recipe.expensive.ingredients) do
if ingredient.type and ingredient.name == "sulfuric-acid" then
ingredient.name = "adamo-chemical-hydrofluoric-acid"
end
end
local fluoride_battery_recipe =
util.table.deepcopy(data.raw.recipe["battery"])
fluoride_battery_recipe.name =
"adamo-chemical-fluoride-battery"
fluoride_battery_recipe.normal.result_count = 1
fluoride_battery_recipe.normal.ingredients = {{
name = "copper-plate", type = "item",
amount = 1, catalyst_amount = 0
},{
"adamo-chemical-calcite",1
},{
"solid-fuel",1
},{
name = "adamo-chemical-hydrofluoric-acid",
type = "fluid",
amount = 10
}}
fluoride_battery_recipe.expensive.result_count = 1
fluoride_battery_recipe.expensive.ingredients = {{
name = "copper-plate", type = "item",
amount = 2, catalyst_amount = 0
},{
"adamo-chemical-calcite",2
},{
"solid-fuel",2
},{
name = "adamo-chemical-hydrofluoric-acid",
type = "fluid",
amount = 20
}}
local fluorite_science_pack = util.table.deepcopy(
data.raw.recipe["chemical-science-pack"]
)
fluorite_science_pack
.name = "chemical-science-pack-from-fluorite"
mult_recipe_energy(fluorite_science_pack,1/2)
replace_recipe_io(
fluorite_science_pack,
"sulfur",
"adamo-chemical-fluorite",
1
)
mult_recipe_io(
fluorite_science_pack,
1.5,
"chemical-science-pack"
)
mult_recipe_io(
fluorite_science_pack,
1.5,
"engine-unit"
)
data:extend({
processing_unit_from_hf_recipe,
fluoride_battery_recipe,
fluorite_science_pack
})
add_recipe_to_tech(
"advanced-electronics-2",
processing_unit_from_hf_recipe.name
)
add_recipe_to_tech(
"adamo-chemical-fluorine-processing",
fluoride_battery_recipe.name
)
add_recipe_to_tech(
"chemical-science-pack",
fluorite_science_pack.name
)
set_productivity_recipes({
fluoride_battery_recipe.name,
processing_unit_from_hf_recipe.name,
fluorite_science_pack.name
})
-- Now make copies of everything.
for _,recipe in pairs(data.raw.recipe) do
local category = get_recipe_category(recipe)
local main_result = get_main_result(recipe)
local new_category
local solid_input_count = 0
local fluid_input_count = 0
local solid_output_count = 0
local fluid_output_count = 0
local uses_plates = false
local catalyst_inputs = 0
local catalyst_outputs = 0
local takes_water = false
local outputs_water = false
local uses_carbonation = false
local uses_manufacturing = false
if is_smelting_category(category)
and has_ingredients(recipe) and has_results(recipe) then
local calcined_recipe = calcinate_recipe(recipe)
if calcined_recipe then
mirror_recipe_in_techs(
recipe,
calcined_recipe
)
if is_productivity_recipe(recipe) then
set_productivity_recipe(calcined_recipe)
end
data:extend({calcined_recipe})
end
end
if is_chem_category(category)
and has_ingredients(recipe) and has_results(recipe) then
for k,ingredient
in pairs(
recipe.ingredients
or recipe.expensive.ingredients
or recipe.normal.ingredients
) do
if ingredient.type ~= "fluid" then
if manufacturing_needed_for(ingredient) then
uses_manufacturing = true
end
if is_plate(ingredient) then
uses_plates = true
end
if is_catalyst(ingredient) then
catalyst_inputs = catalyst_inputs + 1
end
if (ingredient.name or ingredient[1])
== "solid-fuel" then
uses_carbonation = true
end
solid_input_count = solid_input_count + 1
elseif ingredient.name == "water" then
takes_water = true
fluid_input_count = fluid_input_count + 1
else
fluid_input_count = fluid_input_count + 1
end
end
if type(recipe.results) == "table"
or (
recipe.expensive
and type(recipe.expensive.results) == "table"
) or (
recipe.normal
and type(recipe.normal.results) == "table"
) then
for k,result
in pairs(
recipe.results
or recipe.expensive.results
or recipe.normal.results
) do
if result.type ~= "fluid" then
solid_output_count = solid_output_count + 1
if is_catalyst(result) then
catalyst_outputs = catalyst_outputs + 1
end
else
if result.name == "water" then
outputs_water = true
end
fluid_output_count = fluid_output_count + 1
end
end
elseif recipe.result then
solid_output_count = 1
elseif recipe.normal.result then
solid_output_count = 1
elseif recipe.expensive.result then
solid_output_count = 1
end
-- Assign new recipe type.
if uses_manufacturing then
new_category = "adamo-chemical-manufacturing"
elseif 2*catalyst_inputs
> (fluid_input_count + solid_input_count) then
new_category = "adamo-chemical-manufacturing"
else
new_category = chemical_category(
recipe.name,
solid_input_count,
solid_output_count,
fluid_input_count,
fluid_output_count,
catalyst_inputs,
catalyst_outputs,
takes_water,
outputs_water,
uses_carbonation
)
if new_category == "adamo-chemical-binding"
and not adamochemical.mixer then
new_category = "adamo-chemical-manufacturing"
end
end
if not (
new_category == "adamo-chemical-manufacturing"
and category == "crafting-with-fluid"
) then
local new_recipe = util.table.deepcopy(recipe)
format_ingredients(new_recipe)
format_results(new_recipe)
new_recipe.name = "adamo-cc-"..recipe.name
if main_result then
set_main_product(new_recipe,main_result)
end
new_recipe.category = new_category
new_recipe.subgroup = new_category
if new_category == "adamo-chemical-binding" then
mult_recipe_energy(new_recipe,binding_time_mult)
mult_recipe_io(new_recipe,binding_prod_mult)
elseif new_category == "adamo-chemical-separation" then
mult_recipe_energy(new_recipe,separation_time_mult)
mult_recipe_io(new_recipe,separation_prod_mult)
elseif new_category == "adamo-chemical-vaporworks" then
mult_recipe_energy(new_recipe,vapor_time_mult)
mult_recipe_io(new_recipe,vapor_prod_mult)
end
fill_recipe_tint(new_recipe)
new_recipe.always_show_products = true
new_recipe.show_amount_in_title = true
data:extend({new_recipe})
if is_productivity_recipe(recipe) then
set_productivity_recipe(new_recipe)
end
mirror_recipe_in_techs(recipe,new_recipe)
end
end
end
-- Screeners should screen.
if data.raw["recipe-category"]["screening"] then
for _,recipe in pairs(data.raw.recipe) do
if recipe.category == "adamo-chemical-separation" then
local screen_recipe =
util.table.deepcopy(recipe)
screen_recipe.name =
screen_recipe.name
.."-by-screening"
screen_recipe.category = "screening"
screen_recipe.hide_from_player_crafting = true
screen_recipe.order = screen_recipe.order
if uses_ingredient(screen_recipe,"water") then
remove_ingredient(screen_recipe,"water")
for _,ingred_name in pairs(
get_io_names(screen_recipe)
) do
mult_recipe_io(
screen_recipe,
1/screening_efficiency,
ingred_name
)
mult_recipe_io(
screen_recipe,
separation_time_mult
)
mult_recipe_energy(
screen_recipe,
separation_time_mult
)
end
end
data:extend({screen_recipe})
mirror_recipe_in_techs(recipe,screen_recipe)
if is_productivity_recipe(recipe) then
set_productivity_recipe(screen_recipe)
end
end
end
end

103
data-updates.lua Normal file
View File

@ -0,0 +1,103 @@
require("factsheet")
apply_sulfur_fuel_stats(data.raw.item.sulfur)
if appmod and type(appmod) == "table" then
appmod
.blacklist["assembling-machine-3"] = true
end
if appmod and type(appmod) == "table" then
appmod
.blacklist["centrifuge"] = true
end
local still_name =
settings.startup["adamo-chemical-still"].value
local reactor_name =
settings.startup["adamo-chemical-reactor"].value
local mixer_name =
settings.startup["adamo-chemical-mixer"].value
local kiln_name =
settings.startup["adamo-chemical-kiln"].value
local screener_name =
settings.startup["adamo-chemical-screener"].value
add_string_to_table(
data.raw["assembling-machine"]["oil-refinery"]
.crafting_categories,
"adamo-chemical-vaporworks"
)
data.raw["assembling-machine"]["assembling-machine-3"]
.fluid_boxes = chem_assembling_machine_fluid_boxes()
table.insert(
data.raw["assembling-machine"]["assembling-machine-3"]
.crafting_categories,
"adamo-chemical-manufacturing"
)
data.raw["assembling-machine"].centrifuge.fluid_boxes =
centrifuge_fluid_boxes()
add_string_to_table(
data.raw["assembling-machine"].centrifuge
.crafting_categories,
"adamo-chemical-separation"
)
if data.raw["assembling-machine"][still_name] then
add_string_to_table(
data.raw["assembling-machine"][still_name]
.crafting_categories,
"adamo-chemical-vaporworks"
)
end
if data.raw["assembling-machine"][reactor_name] then
add_strings_to_table(
data.raw["assembling-machine"][reactor_name]
.crafting_categories,
{
"adamo-chemical-disassociation",
"adamo-chemical-recovery",
"adamo-chemical-displacement",
"adamo-chemical-activation",
"adamo-chemical-deposition"
}
)
end
if data.raw["assembling-machine"][mixer_name] then
add_strings_to_table(
data.raw["assembling-machine"][mixer_name]
.crafting_categories,
{
"adamo-chemical-binding",
"adamo-chemical-disassociation",
"adamo-chemical-recovery",
"adamo-chemical-displacement",
"adamo-chemical-activation"
}
)
adamochemical.mixer = true
else
for _,name in pairs({
"assembling-machine-1",
"assembling-machine-2",
"assembling-machine-3"
}) do
add_string_to_table(
data.raw["assembling-machine"][name]
.crafting_categories,
"adamo-chemical-binding"
)
end
end
if data.raw["assembling-machine"][kiln_name] then
add_string_to_table(
data.raw["assembling-machine"][kiln_name]
.crafting_categories,
"adamo-chemical-firing"
)
end

679
data.lua Normal file
View File

@ -0,0 +1,679 @@
require("factsheet")
require("facilities")
adamochemical = {}
adamochemical.mixer = false
data:extend({{
type = "item-group",
name = "adamo-chemical-group",
order = "m",
icon = "__adamo-chemical__/graphics/flask.png",
icon_size = 64
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-production-machine",
order = "0"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-manufacturing",
order = "1"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-vaporworks",
order = "a"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-disassociation",
order = "g"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-recovery",
order = "h"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-displacement",
order = "i"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-activation",
order = "j"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-deposition",
order = "k"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-binding",
order = "n"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-firing",
order = "o"
},{
type = "item-subgroup",
group = "adamo-chemical-group",
name = "adamo-chemical-separation",
order = "p"
},{
type = "recipe-category",
name = "adamo-chemical-separation"
},{
type = "recipe-category",
name = "adamo-chemical-firing"
},{
type = "recipe-category",
name = "adamo-chemical-binding"
},{
type = "recipe-category",
name = "adamo-chemical-vaporworks"
},{
type = "recipe-category",
name = "adamo-chemical-hydrolysis"
},{
type = "recipe-category",
name = "adamo-chemical-displacement"
},{
type = "recipe-category",
name = "adamo-chemical-heating"
},{
type = "recipe-category",
name = "adamo-chemical-deposition"
},{
type = "recipe-category",
name = "adamo-chemical-decomposition"
},{
type = "recipe-category",
name = "adamo-chemical-recovery"
},{
type = "recipe-category",
name = "adamo-chemical-manufacturing"
},{
type = "recipe-category",
name = "adamo-chemical-activation"
},{
type = "recipe-category",
name = "adamo-chemical-disassociation"
}})
local fluorine_processing_tech = {
type = "technology",
name = "adamo-chemical-fluorine-processing",
icon = "__adamo-chemical__/graphics/icons/fluorite.png",
icon_size = 64,
effects =
{
{
type = "unlock-recipe",
recipe = "adamo-chemical-hydrofluoric-acid"
},
},
prerequisites = {"chemical-science-pack"},
unit =
{
count = 150,
ingredients = {
{"automation-science-pack", 1},
{"logistic-science-pack", 1},
{"chemical-science-pack", 1},
},
time = 30
},
order = "c-c-c",
}
data:extend({
fluorine_processing_tech,
})
local calcite_item = {
type = "item",
name = "adamo-chemical-calcite",
icon = "__adamo-chemical__/graphics/icons/calcite.png",
icon_size = 32,
subgroup = "raw-material",
order = "g1[adamo-chemical-calcite]",
stack_size = 50
}
local clinker_item = {
type = "item",
name = "adamo-chemical-clinker",
icon = "__adamo-chemical__/graphics/icons/clinker.png",
icon_size = 32,
subgroup = "raw-material",
order = "g1[adamo-chemical-clinker]",
stack_size = 50
}
local gypsum_item = {
type = "item",
name = "adamo-chemical-gypsum",
icon = "__adamo-chemical__/graphics/icons/gypsum.png",
icon_size = 32,
subgroup = "raw-material",
order = "g1[adamo-chemical-gypsum]",
stack_size = 50
}
local fluorite_item = {
type = "item",
name = "adamo-chemical-fluorite",
icon = "__adamo-chemical__/graphics/icons/fluorite.png",
icon_size = 64,
subgroup = "raw-material",
order = "h1[adamo-chemical-fluorite]",
stack_size = 50
}
local cement_item = {
type = "item",
name = "adamo-chemical-cement",
icon = "__adamo-chemical__/graphics/icons/cement.png",
icon_size = 32,
subgroup = "intermediate-product",
order = "i1[adamo-chemical-cement]",
stack_size = 50
}
data:extend({
calcite_item,
clinker_item,
gypsum_item,
fluorite_item,
cement_item
})
local found_sisiquartz = false
if data.raw.item["SiSi-quartz"] then
data.raw.item["SiSi-quartz"]
.order = "g[adamo-chemical-quartz]"
data.raw.item["SiSi-quartz"]
.subgroup = "raw-material"
--data.raw.item["SiSi-quartz"]
--.icon = "__adamo-chemical__/graphics/icons/quartz.png"
--data.raw.item["SiSi-quartz"]
--.icon_size = 64
found_sisiquartz = true
if data.raw.recipe["SiSi-quartz"] then
data.raw.recipe["SiSi-quartz"]
.normal.hidden = true
data.raw.recipe["SiSi-quartz"]
.expensive.hidden = true
data.raw.recipe["SiSi-quartz"]
.icon = nil
data.raw.recipe["SiSi-quartz"]
.icon_size = nil
end
else
local quartz_item = {
type = "item",
name = "adamo-chemical-quartz",
icon = "__adamo-chemical__/graphics/icons/quartz.png",
icon_size = 32,
flags = {},
subgroup = "raw-material",
order = "g1[adamo-chemical-quartz]",
stack_size = 50
}
data:extend({quartz_item})
end
local hydrofluoric_acid_fluid = {
type = "fluid",
name = "adamo-chemical-hydrofluoric-acid",
order = "a[fluid]-g1[adamo-chemical-hydrofluoric-acid]",
icon = "__adamo-chemical__/graphics/icons/hydrofluoride.png",
icon_size = 32,
base_color = colors.hf_base,
flow_color = colors.hf_flow,
default_temperature = 25,
max_temperature = 100,
heat_capacity = "0.1KJ",
}
data:extend({
hydrofluoric_acid_fluid
})
local calcite_recipe = {
type = "recipe",
name = "adamo-chemical-calcite",
category = "chemistry",
enabled = false,
energy_required = 1,
show_amount_in_title = true,
main_product = "adamo-chemical-calcite",
ingredients = {{
type = "item",
name = "solid-fuel",
amount = 1
},{
type = "fluid",
name = "water",
amount = 100
},{
type = "item",
name = "adamo-chemical-gypsum",
amount = 5
}},
results = {{
type = "item",
name = "adamo-chemical-calcite",
amount = 5,
},{
type = "fluid",
name = "sulfuric-acid",
amount = 50
}},
crafting_machine_tint = {
primary = data.raw.fluid["sulfuric-acid"].base_color,
secondary = colors.highgrey,
tertiary = data.raw.fluid.water.flow_color,
quaternary = colors.midgrey
},
}
local gypsum_recipe = {
type = "recipe",
name = "adamo-chemical-gypsum",
category = "chemistry",
enabled = false,
energy_required = 1,
show_amount_in_title = true,
main_product = "adamo-chemical-gypsum",
ingredients = {{
type = "item",
name = "adamo-chemical-calcite",
amount = 5,
},{
type = "fluid",
name = "sulfuric-acid",
amount = 50
},{
type = "fluid",
name = "water",
amount = 50
}},
results = {{
type = "item",
name = "adamo-chemical-gypsum",
amount = 5
}},
crafting_machine_tint = {
primary = colors.midgrey,
secondary = data.raw.fluid["sulfuric-acid"].base_color,
tertiary = data.raw.fluid["sulfuric-acid"].flow_color,
quaternary = data.raw.fluid.water.flow_color
},
}
local hydrofluoric_acid_recipe = {
type = "recipe",
name = "adamo-chemical-hydrofluoric-acid",
category = "chemistry",
subgroup = "fluid-recipes",
enabled = false,
energy_required = 1, -- same as sulfuric-acid
ingredients = {{
type = "item",
name = "adamo-chemical-fluorite",
amount = 5
},{
type = "fluid",
name = "sulfuric-acid",
amount = 50
},{
type = "fluid",
name = "water",
amount = 100
}},
results = {{
type='fluid',
name = "adamo-chemical-hydrofluoric-acid",
amount = 100
},{
type = "item",
name = "adamo-chemical-gypsum",
amount = 5,
catalyst_amount = 5
}},
main_product = "adamo-chemical-hydrofluoric-acid",
requester_paste_multiplier = 4,
crafting_machine_tint = {
primary = colors.hf_base,
secondary = colors.midgrey,
tertiary = data.raw.fluid["sulfuric-acid"].flow_color,
quaternary = data.raw.fluid.water.flow_color,
},
}
local water_recipe = {
type = "recipe",
name = "adamo-chemical-water-condensation",
category = "chemistry",
subgroup = "fluid-recipes",
enabled = true,
energy_required = 1,
ingredients = {{
type = "fluid",
name = "steam",
amount = 10
}},
results = {{
type = "fluid",
name = "water",
amount = 10
}},
main_product = "water",
emissions_multiplier = 0,
crafting_machine_tint = {
primary = data.raw.fluid["water"].base_color,
secondary = data.raw.fluid["steam"].base_color,
tertiary = data.raw.fluid["steam"].flow_color,
quaternary = data.raw.fluid["water"].flow_color
},
}
local clinker_recipe = {
type = "recipe",
name = "adamo-chemical-clinker",
category = "adamo-chemical-firing",
subgroup = "adamo-chemical-firing",
order = "0",
enabled = false,
energy_required = 6.4,
ingredients = {
{"adamo-chemical-calcite",5},
{"stone",5},
},
results = {
{"adamo-chemical-clinker",10}
}
}
local clinker_recipe_with_fluorite = {
type = "recipe",
name = "adamo-chemical-clinker-with-fluorite",
category = "adamo-chemical-firing",
subgroup = "adamo-chemical-firing",
order = "1",
enabled = false,
energy_required = 25.6,
ingredients = {
{"adamo-chemical-calcite",44},
{"adamo-chemical-fluorite",1},
{"adamo-chemical-gypsum",5},
{"stone",50},
},
results = {
{"adamo-chemical-clinker",100}
}
}
local brick_recipe = util.table.deepcopy(
data.raw.recipe["stone-brick"]
)
if brick_recipe then
replace_in_recipe_io(
brick_recipe,"stone","adamo-chemical-calcite"
)
brick_recipe.name = "adamo-chemical-limestone-brick"
end
local cement_recipe = {
type = "recipe",
name = "adamo-chemical-cement",
category = "advanced-crafting",
enabled = false,
energy_required = 3.2,
icon = "__adamo-chemical__/graphics/icons/cement.png",
icon_size = 32,
ingredients = {
{"adamo-chemical-clinker",10},
{"adamo-chemical-gypsum",1}
},
results = {
{"adamo-chemical-cement",1}
}
}
local concrete_recipe = {
type = "recipe",
name = "adamo-chemical-concrete",
category = "adamo-chemical-binding",
subgroup = "adamo-chemical-binding",
order = "00[adamo-chemical-concrete]",
enabled = false,
energy_required = 8,
icon = "__base__/graphics/icons/concrete.png",
icon_size = 64,
ingredients = {
{"adamo-chemical-cement",5},
{"stone",50},
{type="fluid",name="water",amount=200}
},
results = {
{"concrete",50}
}
}
local refined_concrete_recipe = {
type = "recipe",
name = "adamo-chemical-refined-concrete",
category = "adamo-chemical-binding",
subgroup = "adamo-chemical-binding",
order = "00[adamo-chemical-refined-concrete]",
enabled = false,
energy_required = 8,
icon = "__base__/graphics/icons/refined-concrete.png",
icon_size = 64,
ingredients = {
{"adamo-chemical-cement",5},
{"stone",50},
{"SiSi-quartz",10},
{type="fluid",name="water",amount=200},
},
results = {
{"refined-concrete",50}
}
}
local stone_input = 40
local basic_loss = 3/4
local basic_froth_flotation_recipe = {
type = "recipe",
name = "adamo-chemical-basic-mineral-processing",
category = "chemistry",
subgroup = "raw-material",
order = "h1[adamo-chemical-basic-mineral-processing]",
icon =
"__adamo-chemical__/graphics/icons/"
.."basic-mineral-processing.png",
icon_size = 32,
enabled = false,
always_show_made_in = true,
energy_required = 20,
ingredients = {{
type = "item",
name = "stone",
amount = stone_input*basic_loss,
},{
type = "fluid",
name = "water",
amount = stone_input
}},
crafting_machine_tint = {
primary = colors.softgreen,
secondary = data.raw.fluid.water.base_color,
tertiary = data.raw.fluid.water.flow_color,
quaternary = colors.highbrown,
},
}
local advanced_froth_flotation_recipe = {
type = "recipe",
name = "adamo-chemical-advanced-mineral-processing",
category = "chemistry",
subgroup = "raw-material",
order = "h0[adamo-chemical-advanced-mineral-processing]",
icon =
"__adamo-chemical__/graphics/icons/"
.."advanced-mineral-processing.png",
icon_size = 32,
enabled = false,
always_show_made_in = true,
energy_required = 20,
ingredients = {{
type = "item",
name = "stone",
amount = stone_input,
},{
type = "fluid",
name = "water",
amount = stone_input
}},
crafting_machine_tint = {
primary = colors.softgreen,
secondary = data.raw.fluid.water.base_color,
tertiary = data.raw.fluid.water.flow_color,
quaternary = colors.highbrown,
},
}
if found_sisiquartz then
basic_froth_flotation_recipe.results = {{
type = "item",
name = "SiSi-quartz",
probability = quartz_ratio,
amount = stone_input/2.5*basic_loss
},{
type = "item",
name = "adamo-chemical-calcite",
probability = calcite_ratio,
amount = stone_input/2.5*basic_loss
},{
type = "item",
name = "adamo-chemical-gypsum",
probability = gypsum_ratio,
amount = stone_input/2.5*basic_loss
},{
type = "item",
name = "landfill",
probability = 0.5,
amount = math.ceil(stone_input/50)
}}
advanced_froth_flotation_recipe.results = {{
type = "item",
name = "SiSi-quartz",
probability = quartz_ratio,
amount = stone_input/2.5
},{
type = "item",
name = "adamo-chemical-fluorite",
probability = fluorite_ratio,
amount = stone_input/2.5
},{
type = "item",
name = "adamo-chemical-calcite",
probability = calcite_ratio,
amount = stone_input/2.5
},{
type = "item",
name = "adamo-chemical-gypsum",
probability = gypsum_ratio,
amount = stone_input/2.5
},{
type = "item",
name = "landfill",
amount = math.ceil(stone_input/50)
}}
else
basic_froth_flotation_recipe.results = {{
type = "item",
name = "adamo-chemical-quartz",
probability = quartz_ratio,
amount = stone_input/2.5*basic_loss
},{
type = "item",
name = "adamo-chemical-calcite",
probability = calcite_ratio,
amount = stone_input/2.5*basic_loss
},{
type = "item",
name = "adamo-chemical-gypsum",
probability = gypsum_ratio,
amount = stone_input/2.5*basic_loss
},{
type = "item",
name = "landfill",
probability = 0.5,
amount = math.ceil(stone_input/50)
}}
advanced_froth_flotation_recipe.results = {{
type = "item",
name = "adamo-chemical-quartz",
probability = quartz_ratio,
amount = stone_input/2.5
},{
type = "item",
name = "adamo-chemical-fluorite",
probability = fluorite_ratio,
amount = stone_input/2.5
},{
type = "item",
name = "adamo-chemical-calcite",
probability = calcite_ratio,
amount = stone_input/2.5
},{
type = "item",
name = "adamo-chemical-gypsum",
probability = gypsum_ratio,
amount = stone_input/2.5
},{
type = "item",
name = "landfill",
amount = math.ceil(stone_input/50)
}}
end
data:extend({
calcite_recipe,
gypsum_recipe,
hydrofluoric_acid_recipe,
water_recipe,
clinker_recipe,
clinker_recipe_with_fluorite,
brick_recipe,
cement_recipe,
concrete_recipe,
refined_concrete_recipe,
basic_froth_flotation_recipe,
advanced_froth_flotation_recipe,
})
add_recipes_to_tech(
"advanced-material-processing",
{
"adamo-chemical-basic-mineral-processing"
}
)
add_recipes_to_tech(
"advanced-material-processing-2",
{
"adamo-chemical-gypsum",
"adamo-chemical-calcite",
"adamo-chemical-advanced-mineral-processing",
}
)
add_recipes_to_tech(
"concrete",
{
"adamo-chemical-clinker",
"adamo-chemical-clinker-with-fluorite",
"adamo-chemical-cement",
"adamo-chemical-concrete",
"adamo-chemical-refined-concrete",
}
)
set_productivity_recipes({
"adamo-chemical-clinker",
"adamo-chemical-clinker-with-fluorite",
"adamo-chemical-limestone-brick",
"adamo-chemical-cement",
"adamo-chemical-basic-mineral-processing",
"adamo-chemical-advanced-mineral-processing",
"adamo-chemical-hydrofluoric-acid",
})

430
facilities.lua Normal file
View File

@ -0,0 +1,430 @@
local vesselpipecovers = function()
return {
east = {
filename =
"__adamo-chemical__/graphics/"
.."connections/pipe-cover-east-medium.png",
priority = "extra-high",
width = 128,
height = 128,
scale = 0.5
},
west = {
filename =
"__adamo-chemical__/graphics/"
.."connections/pipe-cover-west-medium.png",
priority = "extra-high",
width = 128,
height = 128,
scale = 0.5
},
north = {
filename =
"__adamo-chemical__/graphics/"
.."connections/pipe-cover-north-medium.png",
priority = "extra-high",
width = 128,
height = 128,
scale = 0.5,
},
south = {
filename =
"__adamo-chemical__/graphics/"
.."connections/pipe-cover-south-medium.png",
priority = "extra-high",
width = 128,
height = 128,
scale = 0.5,
},
}
end
local vessel_layers = function()
return {{
filename =
"__adamo-chemical__/graphics/entity/"
.."process-vessel.png",
width = 160,
height = 220,
frame_count = 1,
shift = util.by_pixel(0, -23)
},{
filename =
"__adamo-chemical__/graphics/entity/"
.."process-vessel-shadow.png",
width = 274,
height = 220,
frame_count = 1,
draw_as_shadow = true,
shift = util.by_pixel(58, -26)
}}
end
local vessel_escaping_pressure_layer = function ()
return {
north_position = util.by_pixel(16, 11),
west_position = util.by_pixel(16, 11),
south_position = util.by_pixel(16, 11),
east_position = util.by_pixel(16, 11),
constant_speed = true,
animation = {
filename =
"__adamo-chemical__/graphics/entity/"
.."process-vessel-anim.png",
frame_count = 40,
line_length = 10,
width = 128,
height = 96,
animation_speed = 0.8
}
}
end
local blast_furnace_layers = function(size,speed)
local size = number_or_one(size)
local speed = number_or_one(speed)
return {{
filename =
"__adamo-chemical__/graphics/entity/"
.."hr-blast-furnace.png",
priority = "extra-high",
width = 200,
height = 221,
scale = 0.5*size,
shift = util.by_pixel(
size*0,
size*0
),
},{
filename =
"__base__/graphics/entity/stone-furnace/"
.."hr-stone-furnace-shadow.png",
priority = "extra-high",
line_length = 8,
width = 164,
height = 74,
scale = 0.5*size,
frame_count = 1,
shift = util.by_pixel(
size*42,
size*16
),
draw_as_shadow = true,
},{
filename =
"__base__/graphics/entity/boiler/"
.."hr-boiler-N-shadow.png",
priority = "extra-high",
width = 274,
height = 164,
scale = 0.3*size,
shift = util.by_pixel(
size*26,
size*6
),
draw_as_shadow = true
}}
end
local blast_furnace_fire = function(size,speed)
local size = number_or_one(size)
local speed = number_or_one(speed)
local depth_scale = 0.85
return {
filename =
"__base__/graphics/entity/"
.."stone-furnace/hr-stone-furnace-fire.png",
priority = "extra-high",
animation_speed = speed,
scale = 0.5*depth_scale*size,
line_length = 8,
width = 41,
height = 100,
frame_count = 48,
axially_symmetrical = false,
direction_count = 1,
shift = util.by_pixel(
0/size,
-10/size
),
}
end
local furnace_recipe = {
type = "recipe",
name = "adamo-blast-furnace",
energy_required = 2,
enabled = false,
ingredients = {
{"stone-furnace", 1},
{"pipe", 2},
{"pump", 1},
},
results = {
{"adamo-blast-furnace", 1}
}
}
local furnace_item = {
type = "item",
name = "adamo-blast-furnace",
icon =
"__adamo-chemical__/graphics/icons/"
.."blast-furnace.png",
icon_size = 32,
flags = {},
subgroup = "adamo-chemical-production-machine",
order = "c[adamo-blast-furnace]",
place_result = "adamo-blast-furnace",
stack_size = 25
}
local furnace_entity = {
type = "assembling-machine",
name = "adamo-blast-furnace",
gui_title_key = "adamo-blast-furnace",
has_backer_name = true,
icon =
"__adamo-chemical__/graphics/icons/"
.."blast-furnace.png",
icon_size = 32,
flags = {"placeable-neutral", "player-creation"},
minable = {
hardness = 0.2,
mining_time = 1,
result = "adamo-blast-furnace"
},
module_specification = {
module_slots = 1
},
allowed_effects = {
"consumption",
"speed",
"productivity",
"pollution"
},
max_health = 250,
corpse = "medium-remnants",
vehicle_impact_sound = {
filename = "__base__/sound/car-metal-impact.ogg",
volume = 0.65
},
resistances = {
{ type = "fire", percent = 100 },
{ type = "explosion", percent = 30 },
{ type = "impact", percent = 50 }
},
selection_box = {{-1,-1}, {1,1}},
collision_box = {{-0.99, -0.99}, {0.99, 0.99}},
crafting_speed = 1,
crafting_categories = {"adamo-chemical-firing"},
energy_usage = "150kW",
energy_source = {
type = "burner",
fuel_category = "chemical",
fuel_inventory_size = 1,
emissions_per_minute = 6,
smoke = {{
name = "smoke",
position = {-0.725,-1.275},
frequency = 10,
starting_vertical_speed = 0.12,
deviation = {0.025,0.05}
}}
},
animation = {
layers = blast_furnace_layers()
},
working_visualisations = {{
animation = blast_furnace_fire()
}},
working_sound = {
sound = {
filename = "__base__/sound/furnace.ogg",
volume = 1.6
},
max_sounds_per_type = 3
}
}
data:extend({
furnace_recipe,
furnace_item,
furnace_entity
})
add_recipe_to_tech(
"advanced-material-processing",
"adamo-blast-furnace"
)
local process_vessel_recipe = {
type = "recipe",
name = "adamo-chemical-process-vessel",
energy_required = 5,
enabled = false,
ingredients = {
{"concrete", 50},
{"pump",10},
{"electronic-circuit",20},
{"advanced-circuit",20},
{"pipe", 20},
{"steel-plate", 50}
},
results = {{"adamo-chemical-process-vessel", 1}},
}
local process_vessel_item = {
type = "item",
name = "adamo-chemical-process-vessel",
icon = "__adamo-chemical__/graphics/icons/process-vessel.png",
icon_size = 32,
flags = {},
subgroup = "adamo-chemical-production-machine",
order = "g[adamo-chemical-process-vessel]",
place_result = "adamo-chemical-process-vessel",
stack_size = 10
}
local process_vessel_entity = {
type = "assembling-machine",
name = "adamo-chemical-process-vessel",
gui_title_key = "adamo-chemical-process-vessel",
has_backer_name = true,
scale_entity_info_icon = true,
icon = "__adamo-chemical__/graphics/icons/process-vessel.png",
icon_size = 32,
flags = {"placeable-neutral", "player-creation"},
minable = {
mining_time = 3,
result = "adamo-chemical-process-vessel"
},
fast_replaceable_group = "assembling-machine",
max_health = 750,
corpse = "medium-remnants",
dying_explosion = "big-explosion",
collision_box = {{-2.4, -2.4}, {2.4, 2.4}},
selection_box = {{-2.5, -2.5}, {2.5, 2.5}},
module_specification = {
module_slots = 5
},
allowed_effects = {
"consumption",
"speed",
"productivity",
"pollution"
},
crafting_categories = {
"adamo-chemical-hydrolysis",
"adamo-chemical-displacement",
"adamo-chemical-heating",
"adamo-chemical-deposition",
"adamo-chemical-decomposition",
"adamo-chemical-recovery",
"adamo-chemical-activation",
"adamo-chemical-disassociation"
},
result_inventory_size = 0,
crafting_speed = 3,
energy_source = {
type = "electric",
usage_priority = "secondary-input",
emissions_per_minute = 0.06,
},
energy_usage = "750kW",
ingredient_count = 4,
animation = {
layers = vessel_layers()
},
working_visualisations = {
vessel_escaping_pressure_layer()
},
fluid_boxes = {{
production_type = "input",
base_level = -1,
height = 1,
pipe_covers = vesselpipecovers(),
pipe_connections = {
{position = {-1.0,3.0}},
}
},{
production_type = "input",
base_level = -1,
height = 1,
pipe_covers = vesselpipecovers(),
pipe_connections = {
{position = {1.0,-3.0}},
}
},{
production_type = "input",
base_level = -1,
height = 1,
pipe_covers = vesselpipecovers(),
pipe_connections = {
{position = {3.0, 1.0}},
}
},{
production_type = "input",
base_level = -1,
height = 1,
pipe_covers = vesselpipecovers(),
pipe_connections = {
{position = {-3.0,-1.0}},
}
},{
production_type = "output",
base_level = 1,
pipe_covers = vesselpipecovers(),
pipe_connections = {
{position = {-3.0, 2.0}},
}
},{
production_type = "output",
base_level = 1,
pipe_covers = vesselpipecovers(),
pipe_connections = {
{position = {3.0, -2.0}},
}
},{
production_type = "output",
base_level = 1,
pipe_covers = vesselpipecovers(),
pipe_connections = {
{position = {2.0, 3.0}},
}
},{
production_type = "output",
base_level = 1,
pipe_covers = vesselpipecovers(),
pipe_connections = {
{position = {-2.0, -3.0}},
}
}
},
vehicle_impact_sound = {
filename = "__base__/sound/car-metal-impact.ogg",
volume = 0.65
},
working_sound = {
sound = {
filename =
"__adamo-chemical__/sounds/process-vessel.ogg",
volume = 0.6
},
idle_sound = {
filename =
"__adamo-chemical__/sounds/process-vessel.ogg",
volume = 0.1
},
apparent_volume = 2.5
}
}
data:extend({
process_vessel_recipe,
process_vessel_item,
process_vessel_entity
})
if data.raw.technology["advanced-material-processing-3"] then
add_recipe_to_tech(
"advanced-material-processing-3",
"adamo-chemical-process-vessel"
)
else
add_recipe_to_tech(
"logistics-3",
"adamo-chemical-process-vessel"
)
end

1
factsheet.lua Symbolic link
View File

@ -0,0 +1 @@
../factsheet.lua

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
graphics/flask.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
graphics/icons/calcite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
graphics/icons/cement.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
graphics/icons/clinker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
graphics/icons/fluorite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
graphics/icons/gypsum.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
graphics/icons/quartz.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

12
info.json Normal file
View File

@ -0,0 +1,12 @@
{
"name": "adamo-chemical",
"version": "1.0.0",
"title": "Adamo Chemical",
"author": "adamo",
"dependencies": [
"base",
"SimpleSilicon"
],
"description": "Chemical reverse engineering.",
"factorio_version": "0.18"
}

10
license Normal file
View File

@ -0,0 +1,10 @@
Copyright 2019 MadClown01 for icons
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.
Copyright 2019 Pyanodon for chemical reactor, screener (Coal Processing), process vessel (HighTech) graphics

42
locale/en/base.cfg Normal file
View File

@ -0,0 +1,42 @@
adamo-chemical-process-vessel=Process vessel
adamo-blast-furnace=Blast furnace
[entity-name]
adamo-chemical-process-vessel=Process vessel
adamo-blast-furnace=Blast furnace
[technology-name]
adamo-chemical-fluorine-processing=Fluorine processing
concrete=Material binding
[item-group-name]
adamo-chemical-group=Chemical engineering
[fluid-name]
adamo-chemical-hydrofluoric-acid=Hydrofluoric acid
[item-name]
adamo-chemical-fluorite=Fluorite
adamo-chemical-calcite=Limestone
adamo-chemical-gypsum=Gypsum
adamo-chemical-clinker=Clinker
adamo-chemical-cement=Cement
[recipe-name]
adamo-chemical-hydrofluoric-acid=Hydrofluoric acid
adamo-chemical-basic-mineral-processing=Basic mineral processing
adamo-chemical-advanced-mineral-processing=Advanced mineral processing
adamo-chemical-basic-mineral-processing-by-screening=Basic mineral processing
adamo-chemical-advanced-mineral-processing-by-screening=Advanced mineral processing
adamo-chemical-fluoride-battery=Battery from fluoride
[technology-description]
advanced-materials-processing=Better furnaces and stone processing.
concrete=Use binders to make stronger materials.
[mod-setting-name]
adamo-chemical-screener=Name of screener entity
adamo-chemical-still=Name of still entity
adamo-chemical-kiln=Name of kiln entity
adamo-chemical-reactor=Name of reactor entity
adamo-chemical-mixer=Name of mixer entity

View File

@ -0,0 +1,11 @@
{
"recipe":
[
["adamo-chemical-anhydrite","adamo-chemical-gypsum"]
],
"item":
[
["adamo-chemical-anhydrite","adamo-chemical-gypsum"]
]
}

View File

@ -0,0 +1,15 @@
{
"recipe":
[
["adamo-chemical-pressure-reactor","adamo-chemical-process-vessel"]
],
"item":
[
["adamo-chemical-pressure-reactor","adamo-chemical-process-vessel"]
],
"entity":
[
["adamo-chemical-pressure-reactor","adamo-chemical-process-vessel"]
]
}

View File

@ -0,0 +1,15 @@
{
"recipe":
[
["adamo-chemical-mixer","adamo-chemical-reactor"]
],
"item":
[
["adamo-chemical-mixer","adamo-chemical-reactor"]
],
"entity":
[
["adamo-chemical-mixer","adamo-chemical-reactor"]
]
}

View File

@ -0,0 +1,15 @@
{
"recipe":
[
["adamo-chemical-oven","adamo-blast-furnace"]
],
"item":
[
["adamo-chemical-oven","adamo-blast-furnace"]
],
"entity":
[
["adamo-chemical-oven","adamo-blast-furnace"]
]
}

39
settings.lua Normal file
View File

@ -0,0 +1,39 @@
data:extend({
{
name = "adamo-chemical-screener",
type = "string-setting",
setting_type = "startup",
default_value = "community-screener",
order = "a"
},
{
name = "adamo-chemical-still",
type = "string-setting",
setting_type = "startup",
default_value = "adamo-cinefaction-still",
order = "c"
},
{
name = "adamo-chemical-kiln",
type = "string-setting",
setting_type = "startup",
default_value = "community-kiln",
order = "e"
},
{
name = "adamo-chemical-reactor",
type = "string-setting",
setting_type = "startup",
default_value = "adamo-cinefaction-reaction-kettle",
order = "g"
},
{
name = "adamo-chemical-mixer",
type = "string-setting",
setting_type = "startup",
default_value = "community-mixer",
order = "j"
},
})

BIN
sounds/process-vessel.ogg Normal file

Binary file not shown.

BIN
thumbnail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB