diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..72c1b51 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.bak +*.blend* diff --git a/README.md b/README.md index e78556c..6779e2c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# Mod +# Graphite & Diamonds -[factorio mod page](https://mods.factorio.com/mod/bzmod) +[factorio mod page](https://mods.factorio.com/mod/bzcarbon) -Adds ... to the base game +Adds elemental carbon resources and intermediates to the base game ## Version History See changelog.txt @@ -13,5 +13,127 @@ See changelog.txt ## Thanks to - [snouz](https://github.com/snouz) (logo inspiration, ore graphics templates) +- [YassineMrabet](https://commons.wikimedia.org/wiki/File:Fullerene.png) (initial fullerene image, CC license, see link) ### Localization + + + + +## FAQ + +#### Why is X used in this recipe? +I try to stick to the vanilla factorio spirit, with a slight edge towards more realistic. For this mod: + +- Graphite used for resistors, lubricant, refractory, batteries, gaskets, nuclear reactors, etc. +- Diamonds used for grinding grit, drilling, bearings, high-tech electronics, etc. +- Graphene used for high-tech circuits, armor, satellites, filters, batteries, etc. +- Fullerenes used for biological things and making nanotubes +- Nanotubes used as an advanced material for alternative recipes +- Carbon black used for plastics, as a conductor and as a pigment + + +## Main + +“We celebrate the tree that stretches to the sky, but it is the ground we should ultimately thank.” - *Becky Chambers* + +---- + + +**CAVEAT** This mod is still an alpha version. Large balance changes, breaking changes, and many other changes may happen until it is in beta. This is my most ambitious "resource" mod to date, so it may take a little time to settle. + +---- + + +Adds elemental carbon items to the game, including flake graphite, graphite, diamonds, graphene, and optionally fullerenes, nanotubes, and carbon black. Modifies several recipes to use these new intermediates. + +If you enjoy vanilla Factorio, Krastorio 2, or Space Exploration, and would like to add a new resource, this mod might be what you're looking for. + +If you use this alongside the other [Very BZ mods](https://mods.factorio.com/mod/bzvery), the game will become quite a bit more complex. While still less than Angelbob/Pyanodon, it's a big step up from vanilla. + +If you want a vanilla-esque game with a few tweaks, try with just this mod, or a simpler one like [Titanium](https://mods.factorio.com/mod/bztitanium) or [Lead](https://mods.factorio.com/mod/bzlead). + +---- + +Flake graphite is a mineable resource that is processed into graphite. Graphite can be used in certain recipes, and can be further processed into diamonds and graphene. Optionally (default on), graphite can be processed into fullerenes and then nanotubes. Also optionally (default off), carbon black is available as a byproduct of oil processing, used to make plastic. + + +Supported compatible mods: +- Space Exploration & AAI +- Krastorio 2 & Rich Rocks Requiem +- Several smaller mods like Deadlock Stacking, Deadlock Crating, mining drill mods, etc + +Planned but not yet supported: RSO (see faq), Omnimatter, FE+, 5Dim's, Simple Compress, and much more. + +Many other mods are compatible, but not yet fully supported. Compatibility suggestions always appreciated. + + +---- +Special thanks to + +- The community, for all the suggestions, feedback, and bug reports! +- [snouz](https://mods.factorio.com/user/snouz) (recolored ore graphics, thumbnail style) +- [YassineMrabet](https://commons.wikimedia.org/wiki/File:Fullerene.png) (initial fullerene image, CC license, see link) + +---- + +### Detailed list of changes (incomplete) + +#### Vanilla + + +- Electronic circuit (graphite replaces some copper) +- Battery (graphite added) +- Lubricant (some oil changed to graphite) +- Module 2s (diamond added) +- Assembler 3 (diamond added) +- Low density structure (diamond added) + +- Centrifuge (diamond added) +- Nuclear reactor (graphite added) + +- Power Armor Mk2 (graphene added) +- Rocket control unit (graphene added) +- Satellite (graphene added) + +If fullerenes and nanotubes enabled + +- Capsules (fullerenes) +- Alternate recipe for LDS (nanotubes) + +If carbon black enabled + +- Carbon black byproduct of oil processing +- Plastic (coal changed to carbon black) + + +#### Krastorio 2 +- Lithium sulfur battery (graphene) +- Reactors (graphite) +- Drills (diamonds) +- Improved pollution filter (graphene) +- Matter research data (graphene) +- Advanced solar panel (graphene) + +If fullerenes and nanotubes enabled + +- Viruses (fullerenes) +- Biomass (fullerenes) +- Alternate imersite recipes (nanotubes) + +#### Space Exploration + +- Material testing pack (graphite) +- Particle accelerator/collider (graphite) +- Secure canister (graphite) + +- Naquium (graphene & graphite) +- Various data (various, with improved outputs) +- Nanomaterial (graphene) + +If fullerenes and nanotubes enabled + +- Vitalic reagent (fullerenes) +- Medpack 2 +- Nanomaterial (alternate recipe) +- Aeroframe scaffold (alternate recipe) diff --git a/carbon-recipe-final-k2.lua b/carbon-recipe-final-k2.lua new file mode 100644 index 0000000..80ebb54 --- /dev/null +++ b/carbon-recipe-final-k2.lua @@ -0,0 +1,71 @@ +local bzutil = require("__bzcarbon__.data-util"); +local util = require("util") +if mods.Krastorio2 then + if bzutil.me.use_fullerenes() then + -- Add extra nanotube recipes. + -- This could be moved to data-updates in future if necessary + data:extend({ + { + type = "recipe", + name = "imersium-plate-nanotubes", + icons = { + { icon = data.raw.item["imersium-plate"].icon, icon_size = data.raw.item["imersium-plate"].icon_size}, + { icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}}, + }, + category = "smelting", + subgroup = "raw-material", + order = "e00-a2[imersium-plate]", + enabled = false, + energy_required = 32, + ingredients = { + {"nanotubes", 6}, + table.unpack(util.table.deepcopy(data.raw.recipe["imersium-plate"].ingredients)), + }, + result = "imersium-plate", + result_count = 6, + }, + { + type = "recipe", + name = "imersium-beam-nanotubes", + icons = { + { icon = data.raw.item["imersium-beam"].icon, icon_size = data.raw.item["imersium-beam"].icon_size}, + { icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}}, + }, + category = "smelting-crafting", + subgroup = "smelting-crafting", + order = data.raw.item["imersium-beam"].order.."z", + enabled = false, + energy_required = 12, + ingredients = { + {"nanotubes", 4}, + table.unpack(util.table.deepcopy(data.raw.recipe["kr-s-c-imersium-beam"].ingredients)), + }, + result = "imersium-beam", + result_count = 2, + }, + { + type = "recipe", + name = "imersium-gear-wheel-nanotubes", + icons = { + { icon = data.raw.item["imersium-gear-wheel"].icon, icon_size = data.raw.item["imersium-gear-wheel"].icon_size}, + { icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}}, + }, + category = "smelting-crafting", + subgroup = "smelting-crafting", + order = data.raw.item["imersium-gear-wheel"].order.."z", + enabled = false, + energy_required = 12, + ingredients = { + {"nanotubes", 2}, + table.unpack(util.table.deepcopy(data.raw.recipe["kr-s-c-imersium-gear-wheel"].ingredients)), + }, + result = "imersium-gear-wheel", + result_count = 2, + }, + }) + + bzutil.add_effect("nanotubes", {type="unlock-recipe", recipe="imersium-plate-nanotubes"}) + bzutil.add_effect("nanotubes", {type="unlock-recipe", recipe="imersium-beam-nanotubes"}) + bzutil.add_effect("nanotubes", {type="unlock-recipe", recipe="imersium-gear-wheel-nanotubes"}) + end +end diff --git a/lead-recipe-final-rrr.lua b/carbon-recipe-final-rrr.lua similarity index 63% rename from lead-recipe-final-rrr.lua rename to carbon-recipe-final-rrr.lua index 6e57a43..401815c 100644 --- a/lead-recipe-final-rrr.lua +++ b/carbon-recipe-final-rrr.lua @@ -1,15 +1,15 @@ -local util = require("__bzlead__.data-util"); +local util = require("__bzcarbon__.data-util"); if mods["Rich-Rocks-Requiem"] then if data.raw.recipe["rrr-stone-processing"] then table.insert(data.raw.recipe["rrr-stone-processing"].results, - {name = "lead-ore", probability = 0.25, amount = 1} + {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 = "lead-ore", probability = 0.75, amount = 10} + {name = "flake-graphite", probability = 0.65, amount = 10} ) end diff --git a/carbon-recipe-final-se.lua b/carbon-recipe-final-se.lua new file mode 100644 index 0000000..c16dfcc --- /dev/null +++ b/carbon-recipe-final-se.lua @@ -0,0 +1,55 @@ +local util = require("util") +local bzutil = require("__bzcarbon__.data-util"); + +if mods["space-exploration"] then +if bzutil.me.use_fullerenes() then + -- Add an extra nanotube aeroframe scaffold recipe. + -- This could be moved to data-updates in future if necessary + data:extend({ + { + type = "recipe", + name = "aeroframe-scaffold-nanotubes", + icons = { + { icon = data.raw.item["se-aeroframe-scaffold"].icon, icon_size = data.raw.item["se-aeroframe-scaffold"].icon_size}, + { icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}}, + }, + category = "crafting", + order = data.raw.item["se-aeroframe-scaffold"].order.."z", + enabled = false, + energy_required = 2, + ingredients = { + {"nanotubes", 2}, + table.unpack(util.table.deepcopy(data.raw.recipe["se-aeroframe-scaffold"].ingredients)), + }, + result = "se-aeroframe-scaffold", + result_count = 2, + }, + { + type = "recipe", + name = "nanomaterial-nanotubes", + icons = { + { icon = data.raw.item["se-nanomaterial"].icon, icon_size = data.raw.item["se-nanomaterial"].icon_size}, + { icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}}, + }, + category = data.raw.recipe["se-nanomaterial"].category, + order = data.raw.item["se-nanomaterial"].order.."z", + subgroup = data.raw.item["se-nanomaterial"].subgroup, + enabled = false, + energy_required = data.raw.recipe["se-nanomaterial"].energy_required, + ingredients = { + {"nanotubes", 2}, + table.unpack(util.table.deepcopy(data.raw.recipe["se-nanomaterial"].ingredients)), + }, + results = { + table.unpack(util.table.deepcopy(data.raw.recipe["se-nanomaterial"].results)), + } + } + }) + bzutil.add_to_product("nanomaterial-nanotubes", "se-nanomaterial", 16) + bzutil.add_effect("nanotubes", {type="unlock-recipe", recipe="aeroframe-scaffold-nanotubes"}) + bzutil.add_effect("se-nanomaterial", {type="unlock-recipe", recipe="nanomaterial-nanotubes"}) + + -- core mining balancing + bzutil.add_to_product("se-core-fragment-omni", "graphite", -3) + end +end diff --git a/carbon-recipe-final-stacking.lua b/carbon-recipe-final-stacking.lua new file mode 100644 index 0000000..7b2cb66 --- /dev/null +++ b/carbon-recipe-final-stacking.lua @@ -0,0 +1,33 @@ +-- Deadlock stacking recipes + +local util = require("__bzcarbon__.data-util"); + +if deadlock then + deadlock.add_stack("flake-graphite", "__bzcarbon__/graphics/icons/stacked/flake-graphite-stacked.png", "deadlock-stacking-2", 64) + deadlock.add_stack("graphite", "__bzcarbon__/graphics/icons/stacked/graphite-stacked.png", "deadlock-stacking-2", 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) + 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 +end + +-- Deadlock crating recipes +if deadlock_crating then + deadlock_crating.add_crate("flake-graphite", "deadlock-crating-2") + deadlock_crating.add_crate("graphite", "deadlock-crating-2") + deadlock_crating.add_crate("diamonds", "deadlock-crating-2") + deadlock_crating.add_crate("graphene", "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 + diff --git a/carbon-recipe-k2.lua b/carbon-recipe-k2.lua new file mode 100644 index 0000000..2777976 --- /dev/null +++ b/carbon-recipe-k2.lua @@ -0,0 +1,29 @@ +local util = require("__bzcarbon__.data-util"); + +if mods.Krastorio2 then +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 = "electrolysis", + subgroup = "fluid-recipes", + order = "y06[heavy-water]", + enabled = false, + energy_required = 60, + ingredients = { + {type="item", name="graphene", amount=1, catalyst_amount=1}, + {type="fluid", name="water", amount=500}, + }, + results = { + {type="item", name="graphene", amount=1, probability=.8, catalyst_amount=1}, + {type="fluid", name="heavy-water", amount=40}, + }, + } +}) +util.add_effect("graphene", {type="unlock-recipe", recipe="heavy-water-graphene"}) +util.add_prerequisite("fullerenes", "kr-atmosphere-condensation") +end diff --git a/carbon-recipe-modules.lua b/carbon-recipe-modules.lua new file mode 100644 index 0000000..d3fc8df --- /dev/null +++ b/carbon-recipe-modules.lua @@ -0,0 +1,34 @@ +-- Enable prod modules for all recipes +local util = require("__bzcarbon__.data-util"); + +recipes = { + "graphite", + "synthetic-diamond", + + "graphene", + "heavy-water-graphene", + + "fullerenes", + "nanotubes", + "low-density-structure-nanotubes", + "imersium-plate-nanotubes", + "imersium-beam-nanotubes", + "imersium-gear-wheel-nanotubes", + "aeroframe-scaffold-nanotubes", + "nanomaterial-nanotubes", + -- NOTE: Carbon black recipes do not allow prod modules +} + +for i, recipe in pairs(recipes) do + if data.raw.recipe[recipe] then + for j, module in pairs(data.raw.module) do + if module.effect then + for effect_name, effect in pairs(module.effect) do + if effect_name == "productivity" and effect.bonus > 0 and module.limitation and #module.limitation > 0 then + table.insert(module.limitation, recipe) + end + end + end + end + end +end diff --git a/carbon-recipe-se.lua b/carbon-recipe-se.lua new file mode 100644 index 0000000..78e9fb0 --- /dev/null +++ b/carbon-recipe-se.lua @@ -0,0 +1,28 @@ +local util = require("__bzcarbon__.data-util"); +if mods["space-exploration"] then +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 = { + {name = "graphite", amount = 20}, + {name = "se-vulcanite-block", amount = 1}, + }, + results = { + {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 diff --git a/carbon-recipe-updates.lua b/carbon-recipe-updates.lua new file mode 100644 index 0000000..e72bfdc --- /dev/null +++ b/carbon-recipe-updates.lua @@ -0,0 +1,225 @@ +local util = require("__bzcarbon__.data-util"); + +-- TECHS +util.add_prerequisite("steel-processing", "graphite-processing") + +util.add_prerequisite("low-density-structure", "synthetic-diamond-processing") +util.add_prerequisite("advanced-electronics-2", "synthetic-diamond-processing") +util.add_prerequisite("production-science-pack", "synthetic-diamond-processing") +util.add_prerequisite("uranium-processing", "synthetic-diamond-processing") + +util.add_prerequisite("power-armor-mk2", "graphene") +util.add_prerequisite("rocket-control-unit", "graphene") + + +-- 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) + util.replace_some_ingredient("slowdown-capsule", "coal", 4, "fullerenes", 40) + -- K2 + util.add_ingredient("kr-biter-virus", "fullerenes", 100) + util.add_ingredient("kr-creep-virus", "fullerenes", 100) + util.replace_some_ingredient("kr-biomass-growing", "petroleum-gas", 25, "fullerenes", 25) + -- SE + util.add_ingredient("se-vitalic-reagent", "fullerenes", 4) + util.add_ingredient("se-medpack-2", "fullerenes", 100) +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.add_product("basic-oil-processing", {"carbon-black", 1}) + util.add_product("advanced-oil-processing", {"carbon-black", 1}) + util.add_product("light-oil-cracking", {"carbon-black", 1}) + util.add_product("heavy-oil-cracking", {"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("plastics", {type="unlock-recipe", recipe="graphite-carbon-black"}) + +end + + +util.replace_some_ingredient("electronic-circuit", "copper-cable", 1, "graphite", 1) +util.add_ingredient("battery", "graphite", 1) +util.add_ingredient("pump", "graphite", 2) +if mods.bzzirconium then +-- TODO CRUCIBLE RECIPE HERE +else + util.add_ingredient("electric-furnace", "graphite", 5) +end + +util.add_ingredient("speed-module-2", "diamond", 4) +util.add_ingredient("effectivity-module-2", "diamond", 4) +util.add_ingredient("productivity-module-2", "diamond", 4) +util.add_ingredient("assembling-machine-3", "diamond", 4) +util.add_ingredient("low-density-structure", "diamond", 1) +util.add_ingredient("centrifuge", "diamond", 10) + +if mods.Krastorio2 then + util.replace_some_ingredient("steel-plate", "iron-plate", 2, "graphite", 4) + util.add_ingredient("tungsten-carbide", "graphite", 4) +elseif mods.bzfoundry 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.multiply_recipe("lubricant", 2) +util.replace_some_ingredient("lubricant", "heavy-oil", 10, "graphite", 1) + +util.add_ingredient("nuclear-reactor", "graphite", 500) + +util.add_ingredient("power-armor-mk2", "graphene", 30) +util.add_ingredient("rocket-control-unit", "graphene", 1) +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) + +-- 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.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-facility", "graphene", 4) +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-space-radiator-2", "diamond", 16) +util.add_ingredient("se-rigidity-data", "diamond", 1) +util.add_to_product("se-rigidity-data", "se-rigidity-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_ingredient("se-compressive-strength-data", "diamond", 1) +util.add_to_product("se-compressive-strength-data", "se-compressive-strength-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) diff --git a/carbon-recipe.lua b/carbon-recipe.lua new file mode 100644 index 0000000..326f51c --- /dev/null +++ b/carbon-recipe.lua @@ -0,0 +1,449 @@ +-- Graphite etc + +local util = require("__bzcarbon__.data-util"); + +local graphite_category = "advanced-crafting" +if mods["space-exploration"] then + graphite_category = "pulverising" +end +if mods.Krastorio2 then + graphite_category = "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.125}, + {filename="__bzcarbon__/graphics/icons/graphite-1.png", size=128, scale=0.125}, + {filename="__bzcarbon__/graphics/icons/graphite-2.png", size=128, scale=0.125}, + }, + subgroup = "raw-material", + order = "g[graphite]", + stack_size = util.get_stack_size(100) + }, + { + type = "recipe", + name = "graphite", + category = graphite_category, + order = "d[graphite]", + icons = (mods["Krastorio2"] and + { + { icon = "__bzcarbon__/graphics/icons/graphite.png", icon_size = 128}, + { icon = "__bzcarbon__/graphics/icons/flake-graphite.png", icon_size = 64, icon_mipmaps = 3, scale=0.25, shift= {-8, -8}}, + } or nil), + normal = (mods["Krastorio2"] and + { + enabled = false, + energy_required = 5, + ingredients = {{"flake-graphite", 10}}, + results = {{type="item", name= "graphite", amount=10}}, + } or + { + enabled = false, + --energy_required = 128/45, + energy_required = 0.5, + ingredients = {{"flake-graphite", 1}}, + result = "graphite" + }), + expensive = + { + enabled = false, + --energy_required = 256/45, + energy_required = 1, + ingredients = {{"flake-graphite", 2}}, + result = "graphite" + } + }, + { + type = "technology", + name = "graphite-processing", + icon_size = 128, + -- icon = "__bzcarbon__/graphics/technology/graphite-processing.png", + icon = "__bzcarbon__/graphics/icons/graphite.png", + effects = + { + { + type = "unlock-recipe", + recipe = "graphite" + }, + }, + unit = + { + count = 30, + ingredients = + { + {"automation-science-pack", 1}, + }, + time = 10, + }, + prerequisites = {"automation"}, + order = "b-b" + }, + + +-- diamonds + { + type = "item", + name = "diamond", + icon = "__bzcarbon__/graphics/icons/diamond.png", + icon_size = 128, + subgroup = "raw-material", + order = "g[diamond]", + stack_size = util.get_stack_size(100) + }, + { + type = "recipe", + name = "synthetic-diamond", + category = "diamond-synthesis", + order = "d[diamond]", + icons = (mods["Krastorio2"] 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), + normal = (mods["Krastorio2"] and + { + enabled = false, + energy_required = 20, + ingredients = {{"graphite", 10}}, + results = {{type="item", name= "diamond", amount=1}}, + } or + { + enabled = false, + energy_required = 20, + ingredients = {{"graphite", 10}}, + result = "diamond" + }), + expensive = + { + enabled = false, + energy_required = 30, + ingredients = {{"graphite", 20}}, + result = "diamond" + } + }, + { + type = "technology", + name = "synthetic-diamond-processing", + icon_size = 128, + icon = "__bzcarbon__/graphics/icons/diamond.png", + effects = + { + { + type = "unlock-recipe", + recipe = "synthetic-diamond" + }, + }, + unit = + { + count = 100, + ingredients = + { + {"automation-science-pack", 1}, + {"logistic-science-pack", 1}, + {"chemical-science-pack", 1}, + }, + time = 15, + }, + prerequisites = {"chemical-science-pack"}, + order = "b-b" + }, + +-- graphene + { + type = "item", + name = "graphene", + icon = "__bzcarbon__/graphics/icons/graphene.png", + icon_size = 128, + subgroup = "intermediate-product", + order = "g[graphite]", + stack_size = util.get_stack_size(200) + }, + { + type = "recipe", + name = "graphene", + category = "chemistry", + order = "d[graphite]", + enabled = false, + energy_required = 6, + ingredients = mods.Krastorio2 and { + {type="item", name="graphite", amount=1}, + {type="fluid", name="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}, + }, + result = "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" + }, +}) + +-- fullerenes +if util.me.use_fullerenes() then +function lds_recipe() + if mods.bztitanium then + if mods.bzzirconium then + return { + {type="item", name="titanium-plate", amount=2}, + {type="item", name="nanotubes", amount=2}, + {type="item", name="plastic-bar", amount=2}, + {type="item", name="zirconia", amount=2}, + {type="item", name="diamond", amount=1}, + } + end + return { + {type="item", name="titanium-plate", amount=2}, + {type="item", name="nanotubes", amount=5}, + {type="item", name="plastic-bar", amount=5}, + {type="item", name="diamond", amount=1}, + } + elseif mods.bzzirconium then + return { + {type="item", name="zirconia", amount=5}, + {type="item", name="copper-plate", amount=5}, + {type="item", name="nanotubes", amount=5}, + {type="item", name="plastic-bar", amount=2}, + {type="item", name="diamond", amount=1}, + } + else + return { + {type="item", name="copper-plate", amount=10}, + {type="item", name="nanotubes", amount=5}, + {type="item", name="plastic-bar", amount=5}, + {type="item", name="diamond", amount=1}, + } + end +end + +data:extend({ + { + type = "item", + name = "fullerenes", + icon = "__bzcarbon__/graphics/icons/Fullerene.png", + icon_size = 128, + subgroup = "intermediate-product", + order = "g[graphite-fullerenes]", + stack_size = util.get_stack_size(200), + }, + { + type = "recipe", + name = "fullerenes", + category = "chemistry", + order = "d[graphite-fullerenes]", + enabled = false, + energy_required = 1, + ingredients = mods.Krastorio2 and + { + {type="item", name="graphite", amount=2}, + {type="fluid", name="nitrogen", amount=2}, + } or + { + {type="item", name="graphite", amount=2}, + }, + result = "fullerenes", + result_count = 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, + subgroup = "intermediate-product", + order = "g[graphite-nanotubes]", + stack_size = util.get_stack_size(200), + }, + { + type = "recipe", + name = "nanotubes", + icon = "__bzcarbon__/graphics/icons/nanotube.png", + icon_size = 128, + category = "chemistry", + subgroup = "intermediate-product", + order = "d[graphite-nanotubes]", + enabled = false, + energy_required = 20, + ingredients = { + {type="item", name="fullerenes", amount=1}, + {type="item", name="iron-plate", amount=1, catalyst_amount=1}, + {type="fluid", name="sulfuric-acid", amount=10, catalyst_amount=10}, + }, + results = { + {type="item", name="nanotubes", amount=1}, + {type="item", name="iron-plate", amount=1, probability=0.95, catalyst_amount=1}, + {type="fluid", name="sulfuric-acid", amount=9, catalyst_amount=9}, + mods.Krastorio2 and {type="fluid", name="dirty-water", amount=1, catalyst_amount=1} or nil, + }, + }, + { + type = "recipe", + name = "low-density-structure-nanotubes", + icons = { + { icon = "__base__/graphics/icons/low-density-structure.png", icon_size = 64, icon_mipmaps = 4}, + { icon = "__bzcarbon__/graphics/icons/nanotube.png", icon_size = 128, scale=0.125, shift= {-8, -8}}, + }, + category = "advanced-crafting", + order = "o[low-density-structure-nanotubes]", + enabled = false, + energy_required = 20, + ingredients = lds_recipe(), + result = "low-density-structure", + result_count = 1, + }, + { + type = "technology", + name = "nanotubes", + icon_size = 128, + icon = "__bzcarbon__/graphics/icons/nanotube.png", + effects = + { + { + type = "unlock-recipe", + recipe = "nanotubes", + }, + { + type = "unlock-recipe", + recipe = "low-density-structure-nanotubes", + }, + }, + unit = + { + count = 1000, + ingredients = + (mods.Krastorio2 and not mods["space-exploration"] and + { + {"production-science-pack", 1}, + {"utility-science-pack", 1}, + {"space-science-pack", 1}, + {"matter-tech-card", 1}, + {"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, + icon_mipmaps = 3, + subgroup = "intermediate-product", + order = "g[graphite-carbon-black]", + stack_size = util.get_stack_size(100), + }, + { + type = "recipe", + name = "carbon-black", + category = "chemistry", + order = "d[graphite-carbon-black]", + enabled = false, + energy_required = 1, + ingredients = { + {type="item", name="coal", amount=1}, + }, + result = "carbon-black", + result_count = 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, + energy_required = 1, + ingredients = { + {type="item", name="carbon-black", amount=10}, + }, + result = "graphite", + result_count = 1, + }, +}) +end + + diff --git a/changelog.txt b/changelog.txt index 66ebe40..5fe15dd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,4 +2,7 @@ Version: 0.0.1 Date: 2021-11-29 Features: - - Alpha version + - 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 diff --git a/data-final-fixes.lua b/data-final-fixes.lua index 9ae9778..00803f2 100644 --- a/data-final-fixes.lua +++ b/data-final-fixes.lua @@ -1,46 +1,29 @@ -require("lead-recipe-final-stacking") -require("lead-recipe-modules") -require("lead-recipe-colors") -require("lead-recipe-final-5d") -require("lead-recipe-final-rrr") +require("carbon-recipe-final-stacking") +require("carbon-recipe-final-k2") +require("carbon-recipe-final-se") +require("carbon-recipe-final-rrr") +require("carbon-recipe-modules") -- Should be last import ----- +local util = require("__bzcarbon__.data-util"); -local util = require("__bzlead__.data-util"); - -if (not mods["pyrawores"] and not mods["bobplates"] and not mods["angelssmelting"]) then --- If furnaces are treated as furnaces, we need 2 outputs +-- Only electric smelters can make Diamonds +function diamondsInElectricSmelter(entity) + if entity.energy_source.type == "electric" then + local isSmelter = false + for j, category in pairs(entity.crafting_categories) do + if category == "smelting" then + isSmelter = true + end + end + if isSmelter then + table.insert(entity.crafting_categories,"diamond-synthesis") + end + end +end for i, entity in pairs(data.raw.furnace) do - if entity.result_inventory_size ~= nil and entity.result_inventory_size < 2 and util.contains(entity.crafting_categories, "smelting") then - entity.result_inventory_size = 2 - end + diamondsInElectricSmelter(entity) end +for i, entity in pairs(data.raw["assembling-machine"]) do + diamondsInElectricSmelter(entity) end - -if mods["Krastorio2"] then - util.replace_ingredient("rifle-magazine", "iron-plate", "lead-plate") - util.replace_ingredient("anti-material-rifle-magazine", "iron-plate", "lead-plate") - util.replace_some_ingredient("kr-crusher", "iron-beam", 5, "lead-plate", 5) - util.replace_ingredient("kr-shelter", "iron-plate", "lead-plate") - util.add_ingredient("kr-advanced-furnace", "lead-plate", 20) - util.replace_ingredient("uranium-fuel-cell", "steel-plate", "lead-plate") - util.replace_some_ingredient("kr-fluid-storage-1", "steel-plate", 10, "lead-plate", 10) - util.replace_some_ingredient("kr-fluid-storage-2", "steel-plate", 30, "lead-plate", 30) -end - -if mods["modmashsplintergold"] then - if mods["Krastorio2"] then - util.replace_ingredient("rifle-magazine-with-gold", "iron-plate", "lead-plate") - util.replace_ingredient("anti-material-rifle-magazine-with-gold", "iron-plate", "lead-plate") - end -end - -if mods["space-exploration"] then - -- Organization - data.raw.item["lead-plate"].subgroup = "plates" - data.raw.recipe["lead-plate"].subgroup = "plates" - - -- core mining balancing - util.add_to_product("se-core-fragment-omni", "lead-ore", -4) -end diff --git a/data-updates.lua b/data-updates.lua index d28c4b0..ee1399d 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -1,5 +1,6 @@ -require("lead-recipe-updates") -require("lead-matter") -require("omni") +require("carbon-recipe-updates") require("map-gen-preset-updates") -require("strange-matter") + +-- require("carbon-matter") +-- require("omni") +-- require("strange-matter") diff --git a/data-util.lua b/data-util.lua index 03359d2..a416efc 100644 --- a/data-util.lua +++ b/data-util.lua @@ -109,7 +109,7 @@ end -- Add a given quantity of product to a given recipe. -- Only works for recipes with multiple products function util.add_product(recipe_name, product) - if data.raw.recipe[recipe_name] and data.raw.item[product] then + if data.raw.recipe[recipe_name] and (data.raw.item[product[1]] or data.raw.item[product.name]) then add_product(data.raw.recipe[recipe_name], product) add_product(data.raw.recipe[recipe_name].normal, product) add_product(data.raw.recipe[recipe_name].expensive, product) @@ -274,6 +274,31 @@ function has_ingredient(recipe, ingredient) return false end +-- Remove a product from a recipe, WILL NOT remove the only product +function util.remove_product(recipe_name, old) + if me.bypass[recipe_name] then return end + if data.raw.recipe[recipe_name] then + remove_product(data.raw.recipe[recipe_name], old) + remove_product(data.raw.recipe[recipe_name].normal, old) + remove_product(data.raw.recipe[recipe_name].expensive, old) + end +end + +function remove_product(recipe, old) + index = -1 + if recipe ~= nil and recipe.results ~= nil then + for i, result in pairs(recipe.results) do + if result.name == old or result[1] == old then + index = i + break + end + end + if index > -1 then + table.remove(recipe.results, index) + end + end +end + -- Replace one product with another in a recipe function util.replace_product(recipe_name, old, new) if data.raw.recipe[recipe_name] then diff --git a/data.lua b/data.lua index 164915b..e7d5239 100644 --- a/data.lua +++ b/data.lua @@ -1,9 +1,7 @@ -require("lead-ore") -require("lead-ore-particle") -require("lead-recipe") -require("other-entities") -require("lead-enriched") -- Enriched Ti for Krastorio 2 -require("lead-recipe-se") -- Space Exploration special recipes (depends on K2 if present) -require("lead-compressed") -require("lead-sim") +require("graphite") +require("graphite-particle") + +require("carbon-recipe") +require("carbon-recipe-k2") -- must be after carbon-recipe +require("carbon-recipe-se") diff --git a/graphics/entity/ores/graphite.png b/graphics/entity/ores/graphite.png new file mode 100644 index 0000000..a869375 Binary files /dev/null and b/graphics/entity/ores/graphite.png differ diff --git a/graphics/entity/ores/hr-graphite.png b/graphics/entity/ores/hr-graphite.png new file mode 100644 index 0000000..65311b2 Binary files /dev/null and b/graphics/entity/ores/hr-graphite.png differ diff --git a/graphics/entity/ores/hr-graphite.xcf b/graphics/entity/ores/hr-graphite.xcf new file mode 100644 index 0000000..7ab3db7 Binary files /dev/null and b/graphics/entity/ores/hr-graphite.xcf differ diff --git a/graphics/entity/ores/hr-zircon.png b/graphics/entity/ores/hr-zircon.png deleted file mode 100644 index 27579a9..0000000 Binary files a/graphics/entity/ores/hr-zircon.png and /dev/null differ diff --git a/graphics/entity/ores/hr-zircon.xcf b/graphics/entity/ores/hr-zircon.xcf deleted file mode 100644 index 75c42f7..0000000 Binary files a/graphics/entity/ores/hr-zircon.xcf and /dev/null differ diff --git a/graphics/entity/ores/zircon.png b/graphics/entity/ores/zircon.png deleted file mode 100644 index a529067..0000000 Binary files a/graphics/entity/ores/zircon.png and /dev/null differ diff --git a/graphics/entity/ores/zircon.xcf b/graphics/entity/ores/zircon.xcf deleted file mode 100644 index 0a0ac0b..0000000 Binary files a/graphics/entity/ores/zircon.xcf and /dev/null differ diff --git a/graphics/entity/zircon-particle/zircon-particle-1.png b/graphics/entity/particle/graphite-particle-1.png similarity index 100% rename from graphics/entity/zircon-particle/zircon-particle-1.png rename to graphics/entity/particle/graphite-particle-1.png diff --git a/graphics/entity/zircon-particle/zircon-particle-2.png b/graphics/entity/particle/graphite-particle-2.png similarity index 100% rename from graphics/entity/zircon-particle/zircon-particle-2.png rename to graphics/entity/particle/graphite-particle-2.png diff --git a/graphics/entity/zircon-particle/zircon-particle-3.png b/graphics/entity/particle/graphite-particle-3.png similarity index 100% rename from graphics/entity/zircon-particle/zircon-particle-3.png rename to graphics/entity/particle/graphite-particle-3.png diff --git a/graphics/entity/zircon-particle/zircon-particle-4.png b/graphics/entity/particle/graphite-particle-4.png similarity index 100% rename from graphics/entity/zircon-particle/zircon-particle-4.png rename to graphics/entity/particle/graphite-particle-4.png diff --git a/graphics/entity/zircon-particle/zircon-particle-shadow-1.png b/graphics/entity/particle/graphite-particle-shadow-1.png similarity index 100% rename from graphics/entity/zircon-particle/zircon-particle-shadow-1.png rename to graphics/entity/particle/graphite-particle-shadow-1.png diff --git a/graphics/entity/zircon-particle/zircon-particle-shadow-2.png b/graphics/entity/particle/graphite-particle-shadow-2.png similarity index 100% rename from graphics/entity/zircon-particle/zircon-particle-shadow-2.png rename to graphics/entity/particle/graphite-particle-shadow-2.png diff --git a/graphics/entity/zircon-particle/zircon-particle-shadow-3.png b/graphics/entity/particle/graphite-particle-shadow-3.png similarity index 100% rename from graphics/entity/zircon-particle/zircon-particle-shadow-3.png rename to graphics/entity/particle/graphite-particle-shadow-3.png diff --git a/graphics/entity/zircon-particle/zircon-particle-shadow-4.png b/graphics/entity/particle/graphite-particle-shadow-4.png similarity index 100% rename from graphics/entity/zircon-particle/zircon-particle-shadow-4.png rename to graphics/entity/particle/graphite-particle-shadow-4.png diff --git a/graphics/entity/zircon-particle/hr-zircon-particle-1.png b/graphics/entity/particle/hr-graphite-particle-1.png similarity index 100% rename from graphics/entity/zircon-particle/hr-zircon-particle-1.png rename to graphics/entity/particle/hr-graphite-particle-1.png diff --git a/graphics/entity/zircon-particle/hr-zircon-particle-2.png b/graphics/entity/particle/hr-graphite-particle-2.png similarity index 100% rename from graphics/entity/zircon-particle/hr-zircon-particle-2.png rename to graphics/entity/particle/hr-graphite-particle-2.png diff --git a/graphics/entity/zircon-particle/hr-zircon-particle-3.png b/graphics/entity/particle/hr-graphite-particle-3.png similarity index 100% rename from graphics/entity/zircon-particle/hr-zircon-particle-3.png rename to graphics/entity/particle/hr-graphite-particle-3.png diff --git a/graphics/entity/zircon-particle/hr-zircon-particle-4.png b/graphics/entity/particle/hr-graphite-particle-4.png similarity index 100% rename from graphics/entity/zircon-particle/hr-zircon-particle-4.png rename to graphics/entity/particle/hr-graphite-particle-4.png diff --git a/graphics/entity/zircon-particle/hr-zircon-particle-shadow-1.png b/graphics/entity/particle/hr-graphite-particle-shadow-1.png similarity index 100% rename from graphics/entity/zircon-particle/hr-zircon-particle-shadow-1.png rename to graphics/entity/particle/hr-graphite-particle-shadow-1.png diff --git a/graphics/entity/zircon-particle/hr-zircon-particle-shadow-2.png b/graphics/entity/particle/hr-graphite-particle-shadow-2.png similarity index 100% rename from graphics/entity/zircon-particle/hr-zircon-particle-shadow-2.png rename to graphics/entity/particle/hr-graphite-particle-shadow-2.png diff --git a/graphics/entity/zircon-particle/hr-zircon-particle-shadow-3.png b/graphics/entity/particle/hr-graphite-particle-shadow-3.png similarity index 100% rename from graphics/entity/zircon-particle/hr-zircon-particle-shadow-3.png rename to graphics/entity/particle/hr-graphite-particle-shadow-3.png diff --git a/graphics/entity/zircon-particle/hr-zircon-particle-shadow-4.png b/graphics/entity/particle/hr-graphite-particle-shadow-4.png similarity index 100% rename from graphics/entity/zircon-particle/hr-zircon-particle-shadow-4.png rename to graphics/entity/particle/hr-graphite-particle-shadow-4.png diff --git a/graphics/icons/Fullerene.png b/graphics/icons/Fullerene.png new file mode 100644 index 0000000..7d1d82d Binary files /dev/null and b/graphics/icons/Fullerene.png differ diff --git a/graphics/icons/Fullerene.xcf b/graphics/icons/Fullerene.xcf new file mode 100644 index 0000000..ba5f29a Binary files /dev/null and b/graphics/icons/Fullerene.xcf differ diff --git a/graphics/icons/carbon-black.png b/graphics/icons/carbon-black.png new file mode 100644 index 0000000..bdc15e2 Binary files /dev/null and b/graphics/icons/carbon-black.png differ diff --git a/graphics/icons/carbon-black.xcf b/graphics/icons/carbon-black.xcf new file mode 100644 index 0000000..1ca044b Binary files /dev/null and b/graphics/icons/carbon-black.xcf differ diff --git a/graphics/icons/cermet.blend b/graphics/icons/cermet.blend deleted file mode 100644 index 268b4ea..0000000 Binary files a/graphics/icons/cermet.blend and /dev/null differ diff --git a/graphics/icons/cermet.blend1 b/graphics/icons/cermet.blend1 deleted file mode 100644 index 5aed875..0000000 Binary files a/graphics/icons/cermet.blend1 and /dev/null differ diff --git a/graphics/icons/cermet.png b/graphics/icons/cermet.png deleted file mode 100644 index a6e6649..0000000 Binary files a/graphics/icons/cermet.png and /dev/null differ diff --git a/graphics/icons/cermet.xcf b/graphics/icons/cermet.xcf deleted file mode 100644 index 4874ad7..0000000 Binary files a/graphics/icons/cermet.xcf and /dev/null differ diff --git a/graphics/icons/diamond.png b/graphics/icons/diamond.png new file mode 100644 index 0000000..000c9bb Binary files /dev/null and b/graphics/icons/diamond.png differ diff --git a/graphics/icons/diamond.xcf b/graphics/icons/diamond.xcf new file mode 100644 index 0000000..b4bb4b9 Binary files /dev/null and b/graphics/icons/diamond.xcf differ diff --git a/graphics/icons/enriched-zircon-2.png b/graphics/icons/enriched-zircon-2.png deleted file mode 100644 index c3a5cb4..0000000 Binary files a/graphics/icons/enriched-zircon-2.png and /dev/null differ diff --git a/graphics/icons/enriched-zircon-2.xcf b/graphics/icons/enriched-zircon-2.xcf deleted file mode 100644 index ef4beda..0000000 Binary files a/graphics/icons/enriched-zircon-2.xcf and /dev/null differ diff --git a/graphics/icons/enriched-zircon-3.png b/graphics/icons/enriched-zircon-3.png deleted file mode 100644 index 71d273f..0000000 Binary files a/graphics/icons/enriched-zircon-3.png and /dev/null differ diff --git a/graphics/icons/enriched-zircon-3.xcf b/graphics/icons/enriched-zircon-3.xcf deleted file mode 100644 index 14fc891..0000000 Binary files a/graphics/icons/enriched-zircon-3.xcf and /dev/null differ diff --git a/graphics/icons/enriched-zircon-4.png b/graphics/icons/enriched-zircon-4.png deleted file mode 100644 index 612533c..0000000 Binary files a/graphics/icons/enriched-zircon-4.png and /dev/null differ diff --git a/graphics/icons/enriched-zircon-4.xcf b/graphics/icons/enriched-zircon-4.xcf deleted file mode 100644 index f11f290..0000000 Binary files a/graphics/icons/enriched-zircon-4.xcf and /dev/null differ diff --git a/graphics/icons/enriched-zircon.png b/graphics/icons/enriched-zircon.png deleted file mode 100644 index f14aee7..0000000 Binary files a/graphics/icons/enriched-zircon.png and /dev/null differ diff --git a/graphics/icons/enriched-zircon.xcf b/graphics/icons/enriched-zircon.xcf deleted file mode 100644 index 8db8f8d..0000000 Binary files a/graphics/icons/enriched-zircon.xcf and /dev/null differ diff --git a/graphics/icons/flake-graphite-1.png b/graphics/icons/flake-graphite-1.png new file mode 100644 index 0000000..14252aa Binary files /dev/null and b/graphics/icons/flake-graphite-1.png differ diff --git a/graphics/icons/flake-graphite-1.xcf b/graphics/icons/flake-graphite-1.xcf new file mode 100644 index 0000000..658f8c6 Binary files /dev/null and b/graphics/icons/flake-graphite-1.xcf differ diff --git a/graphics/icons/flake-graphite-2.png b/graphics/icons/flake-graphite-2.png new file mode 100644 index 0000000..30d7886 Binary files /dev/null and b/graphics/icons/flake-graphite-2.png differ diff --git a/graphics/icons/flake-graphite-2.xcf b/graphics/icons/flake-graphite-2.xcf new file mode 100644 index 0000000..5ca8717 Binary files /dev/null and b/graphics/icons/flake-graphite-2.xcf differ diff --git a/graphics/icons/flake-graphite-3.png b/graphics/icons/flake-graphite-3.png new file mode 100644 index 0000000..4a7bc75 Binary files /dev/null and b/graphics/icons/flake-graphite-3.png differ diff --git a/graphics/icons/flake-graphite-3.xcf b/graphics/icons/flake-graphite-3.xcf new file mode 100644 index 0000000..7c5dd6b Binary files /dev/null and b/graphics/icons/flake-graphite-3.xcf differ diff --git a/graphics/icons/flake-graphite.png b/graphics/icons/flake-graphite.png new file mode 100644 index 0000000..ab6659c Binary files /dev/null and b/graphics/icons/flake-graphite.png differ diff --git a/graphics/icons/flake-graphite.xcf b/graphics/icons/flake-graphite.xcf new file mode 100644 index 0000000..3340943 Binary files /dev/null and b/graphics/icons/flake-graphite.xcf differ diff --git a/graphics/icons/graphene.png b/graphics/icons/graphene.png new file mode 100644 index 0000000..f97ea1c Binary files /dev/null and b/graphics/icons/graphene.png differ diff --git a/graphics/icons/graphene.xcf b/graphics/icons/graphene.xcf new file mode 100644 index 0000000..641c248 Binary files /dev/null and b/graphics/icons/graphene.xcf differ diff --git a/graphics/icons/graphite-1.png b/graphics/icons/graphite-1.png new file mode 100644 index 0000000..1ece5dd Binary files /dev/null and b/graphics/icons/graphite-1.png differ diff --git a/graphics/icons/graphite-1.xcf b/graphics/icons/graphite-1.xcf new file mode 100644 index 0000000..f0cbdf0 Binary files /dev/null and b/graphics/icons/graphite-1.xcf differ diff --git a/graphics/icons/graphite-2.png b/graphics/icons/graphite-2.png new file mode 100644 index 0000000..657f5f8 Binary files /dev/null and b/graphics/icons/graphite-2.png differ diff --git a/graphics/icons/graphite-2.xcf b/graphics/icons/graphite-2.xcf new file mode 100644 index 0000000..6180811 Binary files /dev/null and b/graphics/icons/graphite-2.xcf differ diff --git a/graphics/icons/graphite.png b/graphics/icons/graphite.png new file mode 100644 index 0000000..12cef42 Binary files /dev/null and b/graphics/icons/graphite.png differ diff --git a/graphics/icons/graphite.xcf b/graphics/icons/graphite.xcf new file mode 100644 index 0000000..b7ac778 Binary files /dev/null and b/graphics/icons/graphite.xcf differ diff --git a/graphics/icons/nanotube.png b/graphics/icons/nanotube.png new file mode 100644 index 0000000..c584c54 Binary files /dev/null and b/graphics/icons/nanotube.png differ diff --git a/graphics/icons/nanotube.xcf b/graphics/icons/nanotube.xcf new file mode 100644 index 0000000..6f60b5d Binary files /dev/null and b/graphics/icons/nanotube.xcf differ diff --git a/graphics/icons/stacked/carbon-black-stacked.png b/graphics/icons/stacked/carbon-black-stacked.png new file mode 100644 index 0000000..4745640 Binary files /dev/null and b/graphics/icons/stacked/carbon-black-stacked.png differ diff --git a/graphics/icons/stacked/carbon-black-stacked.xcf b/graphics/icons/stacked/carbon-black-stacked.xcf new file mode 100644 index 0000000..dc5e934 Binary files /dev/null and b/graphics/icons/stacked/carbon-black-stacked.xcf differ diff --git a/graphics/icons/stacked/cermet-stacked.png b/graphics/icons/stacked/cermet-stacked.png deleted file mode 100644 index 672af04..0000000 Binary files a/graphics/icons/stacked/cermet-stacked.png and /dev/null differ diff --git a/graphics/icons/stacked/cermet-stacked.xcf b/graphics/icons/stacked/cermet-stacked.xcf deleted file mode 100644 index 85b1d46..0000000 Binary files a/graphics/icons/stacked/cermet-stacked.xcf and /dev/null differ diff --git a/graphics/icons/stacked/diamond-stacked.png b/graphics/icons/stacked/diamond-stacked.png new file mode 100644 index 0000000..5def0d8 Binary files /dev/null and b/graphics/icons/stacked/diamond-stacked.png differ diff --git a/graphics/icons/stacked/diamond-stacked.xcf b/graphics/icons/stacked/diamond-stacked.xcf new file mode 100644 index 0000000..0757489 Binary files /dev/null and b/graphics/icons/stacked/diamond-stacked.xcf differ diff --git a/graphics/icons/stacked/enriched-zircon-stacked.png b/graphics/icons/stacked/enriched-zircon-stacked.png deleted file mode 100644 index 7e75086..0000000 Binary files a/graphics/icons/stacked/enriched-zircon-stacked.png and /dev/null differ diff --git a/graphics/icons/stacked/enriched-zircon-stacked.xcf b/graphics/icons/stacked/enriched-zircon-stacked.xcf deleted file mode 100644 index 5b01a71..0000000 Binary files a/graphics/icons/stacked/enriched-zircon-stacked.xcf and /dev/null differ diff --git a/graphics/icons/stacked/flake-graphite-stacked.png b/graphics/icons/stacked/flake-graphite-stacked.png new file mode 100644 index 0000000..701840c Binary files /dev/null and b/graphics/icons/stacked/flake-graphite-stacked.png differ diff --git a/graphics/icons/stacked/flake-graphite-stacked.xcf b/graphics/icons/stacked/flake-graphite-stacked.xcf new file mode 100644 index 0000000..81a78e9 Binary files /dev/null and b/graphics/icons/stacked/flake-graphite-stacked.xcf differ diff --git a/graphics/icons/stacked/fullerene-stacked.png b/graphics/icons/stacked/fullerene-stacked.png new file mode 100644 index 0000000..032fc93 Binary files /dev/null and b/graphics/icons/stacked/fullerene-stacked.png differ diff --git a/graphics/icons/stacked/fullerene-stacked.xcf b/graphics/icons/stacked/fullerene-stacked.xcf new file mode 100644 index 0000000..de58112 Binary files /dev/null and b/graphics/icons/stacked/fullerene-stacked.xcf differ diff --git a/graphics/icons/stacked/graphene-stacked.png b/graphics/icons/stacked/graphene-stacked.png new file mode 100644 index 0000000..1829166 Binary files /dev/null and b/graphics/icons/stacked/graphene-stacked.png differ diff --git a/graphics/icons/stacked/graphene-stacked.xcf b/graphics/icons/stacked/graphene-stacked.xcf new file mode 100644 index 0000000..75d65fa Binary files /dev/null and b/graphics/icons/stacked/graphene-stacked.xcf differ diff --git a/graphics/icons/stacked/graphite-stacked.png b/graphics/icons/stacked/graphite-stacked.png new file mode 100644 index 0000000..8205e14 Binary files /dev/null and b/graphics/icons/stacked/graphite-stacked.png differ diff --git a/graphics/icons/stacked/graphite-stacked.xcf b/graphics/icons/stacked/graphite-stacked.xcf new file mode 100644 index 0000000..0927184 Binary files /dev/null and b/graphics/icons/stacked/graphite-stacked.xcf differ diff --git a/graphics/icons/stacked/nanotube-stacked.png b/graphics/icons/stacked/nanotube-stacked.png new file mode 100644 index 0000000..7c65274 Binary files /dev/null and b/graphics/icons/stacked/nanotube-stacked.png differ diff --git a/graphics/icons/stacked/nanotube-stacked.xcf b/graphics/icons/stacked/nanotube-stacked.xcf new file mode 100644 index 0000000..70a3146 Binary files /dev/null and b/graphics/icons/stacked/nanotube-stacked.xcf differ diff --git a/graphics/icons/stacked/zircon-stacked.png b/graphics/icons/stacked/zircon-stacked.png deleted file mode 100644 index ee23352..0000000 Binary files a/graphics/icons/stacked/zircon-stacked.png and /dev/null differ diff --git a/graphics/icons/stacked/zircon-stacked.xcf b/graphics/icons/stacked/zircon-stacked.xcf deleted file mode 100644 index a353fa8..0000000 Binary files a/graphics/icons/stacked/zircon-stacked.xcf and /dev/null differ diff --git a/graphics/icons/stacked/zirconia-stacked.png b/graphics/icons/stacked/zirconia-stacked.png deleted file mode 100644 index ef97eed..0000000 Binary files a/graphics/icons/stacked/zirconia-stacked.png and /dev/null differ diff --git a/graphics/icons/stacked/zirconia-stacked.xcf b/graphics/icons/stacked/zirconia-stacked.xcf deleted file mode 100644 index dcb6af7..0000000 Binary files a/graphics/icons/stacked/zirconia-stacked.xcf and /dev/null differ diff --git a/graphics/icons/stacked/zirconium-plate-stacked.png b/graphics/icons/stacked/zirconium-plate-stacked.png deleted file mode 100644 index aeec2be..0000000 Binary files a/graphics/icons/stacked/zirconium-plate-stacked.png and /dev/null differ diff --git a/graphics/icons/stacked/zirconium-plate-stacked.xcf b/graphics/icons/stacked/zirconium-plate-stacked.xcf deleted file mode 100644 index 812b430..0000000 Binary files a/graphics/icons/stacked/zirconium-plate-stacked.xcf and /dev/null differ diff --git a/graphics/icons/zircon-2.png b/graphics/icons/zircon-2.png deleted file mode 100644 index 19dd7cc..0000000 Binary files a/graphics/icons/zircon-2.png and /dev/null differ diff --git a/graphics/icons/zircon-2.xcf b/graphics/icons/zircon-2.xcf deleted file mode 100644 index 576ad8e..0000000 Binary files a/graphics/icons/zircon-2.xcf and /dev/null differ diff --git a/graphics/icons/zircon-3.png b/graphics/icons/zircon-3.png deleted file mode 100644 index 1e542fd..0000000 Binary files a/graphics/icons/zircon-3.png and /dev/null differ diff --git a/graphics/icons/zircon-3.xcf b/graphics/icons/zircon-3.xcf deleted file mode 100644 index 7464e55..0000000 Binary files a/graphics/icons/zircon-3.xcf and /dev/null differ diff --git a/graphics/icons/zircon-4.png b/graphics/icons/zircon-4.png deleted file mode 100644 index 152fc55..0000000 Binary files a/graphics/icons/zircon-4.png and /dev/null differ diff --git a/graphics/icons/zircon-4.xcf b/graphics/icons/zircon-4.xcf deleted file mode 100644 index 8a7388c..0000000 Binary files a/graphics/icons/zircon-4.xcf and /dev/null differ diff --git a/graphics/icons/zircon-powder.png b/graphics/icons/zircon-powder.png deleted file mode 100644 index 59b3153..0000000 Binary files a/graphics/icons/zircon-powder.png and /dev/null differ diff --git a/graphics/icons/zircon-powder.xcf b/graphics/icons/zircon-powder.xcf deleted file mode 100644 index a38e73a..0000000 Binary files a/graphics/icons/zircon-powder.xcf and /dev/null differ diff --git a/graphics/icons/zircon-stacked-new.xcf b/graphics/icons/zircon-stacked-new.xcf deleted file mode 100644 index 924e57a..0000000 Binary files a/graphics/icons/zircon-stacked-new.xcf and /dev/null differ diff --git a/graphics/icons/zircon.png b/graphics/icons/zircon.png deleted file mode 100644 index b1e423d..0000000 Binary files a/graphics/icons/zircon.png and /dev/null differ diff --git a/graphics/icons/zircon.xcf b/graphics/icons/zircon.xcf deleted file mode 100644 index f5cd511..0000000 Binary files a/graphics/icons/zircon.xcf and /dev/null differ diff --git a/graphics/icons/zirconia.blend b/graphics/icons/zirconia.blend deleted file mode 100644 index d1ee506..0000000 Binary files a/graphics/icons/zirconia.blend and /dev/null differ diff --git a/graphics/icons/zirconia.blend.png b/graphics/icons/zirconia.blend.png deleted file mode 100644 index 4faf9db..0000000 Binary files a/graphics/icons/zirconia.blend.png and /dev/null differ diff --git a/graphics/icons/zirconia.blend1 b/graphics/icons/zirconia.blend1 deleted file mode 100644 index 124a576..0000000 Binary files a/graphics/icons/zirconia.blend1 and /dev/null differ diff --git a/graphics/icons/zirconia.png b/graphics/icons/zirconia.png deleted file mode 100644 index 1ae8200..0000000 Binary files a/graphics/icons/zirconia.png and /dev/null differ diff --git a/graphics/icons/zirconia.xcf b/graphics/icons/zirconia.xcf deleted file mode 100644 index 9161cf1..0000000 Binary files a/graphics/icons/zirconia.xcf and /dev/null differ diff --git a/graphics/icons/zirconium-plate-2.xcf b/graphics/icons/zirconium-plate-2.xcf deleted file mode 100644 index b8f17d1..0000000 Binary files a/graphics/icons/zirconium-plate-2.xcf and /dev/null differ diff --git a/graphics/icons/zirconium-plate-new.xcf b/graphics/icons/zirconium-plate-new.xcf deleted file mode 100644 index 80d9a5a..0000000 Binary files a/graphics/icons/zirconium-plate-new.xcf and /dev/null differ diff --git a/graphics/icons/zirconium-plate-old.png b/graphics/icons/zirconium-plate-old.png deleted file mode 100644 index 1303083..0000000 Binary files a/graphics/icons/zirconium-plate-old.png and /dev/null differ diff --git a/graphics/icons/zirconium-plate-old.xcf b/graphics/icons/zirconium-plate-old.xcf deleted file mode 100644 index 1e8db90..0000000 Binary files a/graphics/icons/zirconium-plate-old.xcf and /dev/null differ diff --git a/graphics/icons/zirconium-plate.blend b/graphics/icons/zirconium-plate.blend deleted file mode 100644 index ae245d5..0000000 Binary files a/graphics/icons/zirconium-plate.blend and /dev/null differ diff --git a/graphics/icons/zirconium-plate.blend1 b/graphics/icons/zirconium-plate.blend1 deleted file mode 100644 index e6cc43a..0000000 Binary files a/graphics/icons/zirconium-plate.blend1 and /dev/null differ diff --git a/graphics/icons/zirconium-plate.png b/graphics/icons/zirconium-plate.png deleted file mode 100644 index fd6f353..0000000 Binary files a/graphics/icons/zirconium-plate.png and /dev/null differ diff --git a/graphics/icons/zirconium-plate.xcf b/graphics/icons/zirconium-plate.xcf deleted file mode 100644 index e33405f..0000000 Binary files a/graphics/icons/zirconium-plate.xcf and /dev/null differ diff --git a/graphics/technology/cermet.png b/graphics/technology/cermet.png deleted file mode 100644 index f032e04..0000000 Binary files a/graphics/technology/cermet.png and /dev/null differ diff --git a/graphics/technology/zirconium-processing.png b/graphics/technology/diamond-processing.png similarity index 100% rename from graphics/technology/zirconium-processing.png rename to graphics/technology/diamond-processing.png diff --git a/graphics/technology/zirconia-processing.png b/graphics/technology/graphite-processing.png similarity index 100% rename from graphics/technology/zirconia-processing.png rename to graphics/technology/graphite-processing.png diff --git a/graphics/technology/zirconium-processing.xcf b/graphics/technology/zirconium-processing.xcf deleted file mode 100644 index a3cf7c2..0000000 Binary files a/graphics/technology/zirconium-processing.xcf and /dev/null differ diff --git a/lead-ore-particle.lua b/graphite-particle.lua similarity index 60% rename from lead-ore-particle.lua rename to graphite-particle.lua index 556a29a..ea8a9df 100644 --- a/lead-ore-particle.lua +++ b/graphite-particle.lua @@ -2,20 +2,20 @@ data:extend( { { type = "optimized-particle", - name = "lead-ore-particle", + name = "graphite-particle", flags = {"not-on-map"}, life_time = 180, pictures = { { - filename = "__bzlead__/graphics/entity/lead-ore-particle/lead-ore-particle-1.png", + filename = "__bzcarbon__/graphics/entity/particle/graphite-particle-1.png", priority = "extra-high", width = 16, height = 16, frame_count = 1, hr_version = { - filename = "__bzlead__/graphics/entity/lead-ore-particle/hr-lead-ore-particle-1.png", + filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-1.png", priority = "extra-high", width = 32, height = 32, @@ -24,14 +24,14 @@ data:extend( } }, { - filename = "__bzlead__/graphics/entity/lead-ore-particle/lead-ore-particle-2.png", + filename = "__bzcarbon__/graphics/entity/particle/graphite-particle-2.png", priority = "extra-high", width = 16, height = 16, frame_count = 1, hr_version = { - filename = "__bzlead__/graphics/entity/lead-ore-particle/hr-lead-ore-particle-2.png", + filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-2.png", priority = "extra-high", width = 32, height = 32, @@ -40,14 +40,14 @@ data:extend( } }, { - filename = "__bzlead__/graphics/entity/lead-ore-particle/lead-ore-particle-3.png", + filename = "__bzcarbon__/graphics/entity/particle/graphite-particle-3.png", priority = "extra-high", width = 16, height = 16, frame_count = 1, hr_version = { - filename = "__bzlead__/graphics/entity/lead-ore-particle/hr-lead-ore-particle-3.png", + filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-3.png", priority = "extra-high", width = 32, height = 32, @@ -56,14 +56,14 @@ data:extend( } }, { - filename = "__bzlead__/graphics/entity/lead-ore-particle/lead-ore-particle-4.png", + filename = "__bzcarbon__/graphics/entity/particle/graphite-particle-4.png", priority = "extra-high", width = 16, height = 16, frame_count = 1, hr_version = { - filename = "__bzlead__/graphics/entity/lead-ore-particle/hr-lead-ore-particle-4.png", + filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-4.png", priority = "extra-high", width = 32, height = 32, @@ -75,14 +75,14 @@ data:extend( shadows = { { - filename = "__bzlead__/graphics/entity/lead-ore-particle/lead-ore-particle-shadow-1.png", + filename = "__bzcarbon__/graphics/entity/particle/graphite-particle-shadow-1.png", priority = "extra-high", width = 16, height = 16, frame_count = 1, hr_version = { - filename = "__bzlead__/graphics/entity/lead-ore-particle/hr-lead-ore-particle-shadow-1.png", + filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-1.png", priority = "extra-high", width = 32, height = 32, @@ -91,14 +91,14 @@ data:extend( } }, { - filename = "__bzlead__/graphics/entity/lead-ore-particle/lead-ore-particle-shadow-2.png", + filename = "__bzcarbon__/graphics/entity/particle/graphite-particle-shadow-2.png", priority = "extra-high", width = 16, height = 16, frame_count = 1, hr_version = { - filename = "__bzlead__/graphics/entity/lead-ore-particle/hr-lead-ore-particle-shadow-2.png", + filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-2.png", priority = "extra-high", width = 32, height = 32, @@ -107,14 +107,14 @@ data:extend( } }, { - filename = "__bzlead__/graphics/entity/lead-ore-particle/lead-ore-particle-shadow-3.png", + filename = "__bzcarbon__/graphics/entity/particle/graphite-particle-shadow-3.png", priority = "extra-high", width = 16, height = 16, frame_count = 1, hr_version = { - filename = "__bzlead__/graphics/entity/lead-ore-particle/hr-lead-ore-particle-shadow-3.png", + filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-3.png", priority = "extra-high", width = 32, height = 32, @@ -123,14 +123,14 @@ data:extend( } }, { - filename = "__bzlead__/graphics/entity/lead-ore-particle/lead-ore-particle-shadow-4.png", + filename = "__bzcarbon__/graphics/entity/particle/graphite-particle-shadow-4.png", priority = "extra-high", width = 16, height = 16, frame_count = 1, hr_version = { - filename = "__bzlead__/graphics/entity/lead-ore-particle/hr-lead-ore-particle-shadow-4.png", + filename = "__bzcarbon__/graphics/entity/particle/hr-graphite-particle-shadow-4.png", priority = "extra-high", width = 32, height = 32, diff --git a/graphite.lua b/graphite.lua new file mode 100644 index 0000000..7a57203 --- /dev/null +++ b/graphite.lua @@ -0,0 +1,85 @@ +local resource_autoplace = require('resource-autoplace'); +local noise = require('noise'); + +local util = require("__bzcarbon__.data-util"); + +data:extend({ + { + type = "autoplace-control", + category = "resource", + name = "graphite", + richness = true, + order = "b-e" + }, + { + type = "noise-layer", + name = "graphite" + }, + { + type = "resource", + icon_size = 64, icon_mipmaps = 3, + name = "graphite", + icon = "__bzcarbon__/graphics/icons/flake-graphite.png", + 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 = "b-z", + 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/graphite.png", + priority = "extra-high", + size = 64, + frame_count = 8, + variation_count = 8, + hr_version = + { + 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 = 64, icon_mipmaps = 3, + icon = "__bzcarbon__/graphics/icons/flake-graphite.png", + pictures = { + {filename="__bzcarbon__/graphics/icons/flake-graphite.png", size=64, scale=0.25}, + {filename="__bzcarbon__/graphics/icons/flake-graphite-1.png", size=64, scale=0.25}, + {filename="__bzcarbon__/graphics/icons/flake-graphite-2.png", size=64, scale=0.25}, + {filename="__bzcarbon__/graphics/icons/flake-graphite-3.png", size=64, scale=0.25}, + }, + subgroup = "raw-resource", + order = "t-c-a", + stack_size = util.get_stack_size(50) + }, +}) diff --git a/info.json b/info.json index 5a31ed5..d359f63 100644 --- a/info.json +++ b/info.json @@ -1,18 +1,19 @@ { - "name": "bzmod", + "name": "bzcarbon", "version": "0.0.1", "factorio_version": "1.1", - "title": "Mod", + "title": "Graphite & Diamonds", "author": "Brevven", "contact": "", "homepage": "", "dependencies": [ "base >= 1.1.0", "? space-exploration", + "? aai-industry", "? Krastorio2", "? deadlock-beltboxes-loaders", "? DeadlockCrating" ], - "description": "Adds ... to the game" + "description": "Adds elemental carbon items to the game, including graphite, diamonds, graphene, and optionally fullerenes, nanotubes, etc.\n\nCompatible with Krastorio 2, Space Exploration, and more. Part of BZ Mods" } diff --git a/lead-ore.lua b/lead-ore.lua deleted file mode 100644 index 9737b5a..0000000 --- a/lead-ore.lua +++ /dev/null @@ -1,96 +0,0 @@ -local resource_autoplace = require('resource-autoplace'); -local noise = require('noise'); - -local util = require("__bzlead__.data-util"); - -data:extend({ - { - type = "autoplace-control", - category = "resource", - name = "lead-ore", - richness = true, - order = "b-e" - }, - { - type = "noise-layer", - name = "lead-ore" - }, - { - type = "resource", - icon_size = 64, icon_mipmaps = 3, - name = "lead-ore", - icon = "__bzlead__/graphics/icons/lead-ore.png", - flags = {"placeable-neutral"}, - order="a-b-a", - map_color = {r=0.35, g=0.10, b=0.10}, - minable = - { - hardness = 1, - mining_particle = "lead-ore-particle", - mining_time = 1, - result = "lead-ore" - }, - collision_box = {{ -0.1, -0.1}, {0.1, 0.1}}, - selection_box = {{ -0.5, -0.5}, {0.5, 0.5}}, - - autoplace = resource_autoplace.resource_autoplace_settings{ - name = "lead-ore", - order = "b-z", - base_density = 6, - base_spots_per_km2 = 1, - has_starting_area_placement = true, - regular_rq_factor_multiplier = 1.2, - starting_rq_factor_multiplier = 1.7, - }, - - stage_counts = {15000, 9500, 5500, 2900, 1300, 400, 150, 80}, - stages = - { - sheet = - { - filename = "__bzlead__/graphics/entity/ores/lead-ore.png", - priority = "extra-high", - size = 64, - frame_count = 8, - variation_count = 8, - hr_version = - { - filename = "__bzlead__/graphics/entity/ores/hr-lead-ore.png", - priority = "extra-high", - size = 128, - frame_count = 8, - variation_count = 8, - scale = 0.5 - } - } - }, - }, - { - type = "item", - name = "lead-ore", - icon_size = 64, icon_mipmaps = 3, - icon = "__bzlead__/graphics/icons/lead-ore.png", - pictures = { - {filename="__bzlead__/graphics/icons/lead-ore.png", size=64, scale=0.25}, - {filename="__bzlead__/graphics/icons/lead-ore-1.png", size=64, scale=0.25}, - {filename="__bzlead__/graphics/icons/lead-ore-2.png", size=64, scale=0.25}, - {filename="__bzlead__/graphics/icons/lead-ore-3.png", size=64, scale=0.25}, - }, - subgroup = "raw-resource", - order = "t-c-a", - stack_size = util.get_stack_size(50) - }, -}) - -local richness = data.raw.resource["lead-ore"].autoplace.richness_expression - --- Modify lead autoplace richness: --- Up to 200 tiles it's standard --- From 200 to 700 tiles, richness scales linearly down, until --- From 700 tiles onward, it's about 1/6th the richness. -data.raw.resource["lead-ore"].autoplace.richness_expression = - richness * noise.if_else_chain( - noise.less_than(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")), noise.to_noise_expression(200)), 1, - noise.less_than(noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")), noise.to_noise_expression(700)), - 100 / (noise.distance_from(noise.var("x"), noise.var("y"), noise.var("starting_positions")) - 100), - 0.17) diff --git a/lead-recipe-modules.lua b/lead-recipe-modules.lua deleted file mode 100644 index d8cf8e6..0000000 --- a/lead-recipe-modules.lua +++ /dev/null @@ -1,27 +0,0 @@ --- Enable prod modules for all lead plate and ore recipes - -recipes = {"lead-plate"} -if mods["Krastorio2"] then - table.insert(recipes, "enriched-lead-plate") - table.insert(recipes, "enriched-lead") -end -if mods["space-exploration"] then - table.insert(recipes, "lead-smelting-vulcanite") - if mods["Krastorio2"] then - table.insert(recipes, "enriched-lead-smelting-vulcanite") - end -end - -for i, recipe in pairs(recipes) do - if data.raw.recipe[recipe] then - for j, module in pairs(data.raw.module) do - if module.effect then - for effect_name, effect in pairs(module.effect) do - if effect_name == "productivity" and effect.bonus > 0 and module.limitation and #module.limitation > 0 then - table.insert(module.limitation, recipe) - end - end - end - end - end -end diff --git a/locale/en/carbon.cfg b/locale/en/carbon.cfg new file mode 100644 index 0000000..4f740f4 --- /dev/null +++ b/locale/en/carbon.cfg @@ -0,0 +1,62 @@ +[entity-name] +graphite=Graphite + +[autoplace-control-names] +graphite=[item=flake-graphite] Graphite + +[item-name] +flake-graphite=Flake graphite +graphite=Graphite +graphite-dust=Graphite dust +enriched-lead=Enriched lead +compressed-graphite=Compressed lead ore + +diamond=Diamond +graphene=Graphene +fullerenes=Fullerenes +nanotubes=Nanotubes +carbon-black=Carbon black + +[item-description] +flake-graphite=Can be processed into graphite + +[technology-name] +graphite-processing=Graphite processing +synthetic-diamond-processing=Synthetic diamond processing +graphene=Graphene +fullerenes=Fullerenes +nanotubes=Carbon nanotubes + +[technology-description] +graphite-processing=Process flake graphite into usable graphite +synthetic-diamond-processing=Process graphite into synthetic 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 + +[recipe-name] +graphite=__ITEM__graphite__ +graphite-dust=__ITEM__graphite-dust__ +synthetic-diamond=__ITEM__diamond__ +graphene=__ITEM__graphene__ +heavy-water-graphene=[fluid=heavy-water] with __ITEM__graphene__ +fullerenes=__ITEM__fullerenes +nanotubes=__ITEM__nanotubes__ +carbon-black=__ITEM__carbon-black__ +graphite-carbon-black=__ITEM__graphite__ from __ITEM__carbon-black__ +nanomaterial-nanotubes=__ITEM__se-nanomaterial__ from __ITEM__nanotubes__ + +[recipe-description] +graphite-carbon-black=Convert excess carbon black to graphite at a low ratio. + +# Settings + +[mod-setting-name] +bzcarbon-recipe-bypass=Bypass recipes +bzcarbon-enable-fullerenes=Enable fullerenes & nanotubes +bzcarbon-enable-carbon-black=Enable carbon black + +[mod-setting-description] +bzcarbon-recipe-bypass=Skip modifying these recipes (comma-separated list). +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. diff --git a/locale/en/lead.cfg b/locale/en/lead.cfg deleted file mode 100644 index 3ba4775..0000000 --- a/locale/en/lead.cfg +++ /dev/null @@ -1,51 +0,0 @@ -[entity-name] -lead-ore=Lead -lead-chest=Lead chest - -[autoplace-control-names] -lead-ore=[item=lead-ore] Lead ore - -[item-name] -lead-ore=Lead ore -lead-dust=Lead dust -lead-plate=Lead plate -lead-alloy=__ITEM__lead-plate__ -enriched-lead=Enriched lead -lead-chest=Lead chest -compressed-lead-ore=Compressed lead ore - -[item-description] -lead-ore=Can be smelted into lead plates -enriched-lead=Can be efficiently smelted into lead plates - -[technology-name] -enriched-lead=Enriched Lead -lead-matter-processing=Lead conversion - -[technology-description] -enriched-lead=Enrich lead ore, purifying with sulfuric acid [fluid=sulfuric-acid] and water [fluid=water], improving the final yield. Produce dirty water [fluid=dirty-water] as a byproduct. - -[recipe-name] -enriched-lead=__ITEM__enriched-lead__ -lead-plate=__ITEM__lead-plate__ -smelt-compressed-lead-ore=__ITEM__lead-plate__ -lead-dust=__ITEM__lead-dust__ -dirty-water-filtration-lead=Filter dirty water [item=lead-ore] -bz-lead-ingot=Lead ingot - -[recipe-description] -enriched-lead=Enrich lead ore, purifying with sulfuric acid [fluid=sulfuric-acid] and water [fluid=water], improving the final yield. Produce dirty water [fluid=dirty-water] as a byproduct. - -dirty-water-filtration-lead=Filter dirty water, giving lead ore [item=lead-ore], copper ore [item=coppper-ore] and stone [item=stone] (probabilistically). - -# Settings - -[mod-setting-name] -bzlead-recipe-bypass=Bypass recipes -bzlead-more-entities=Lead entities -bzlead-sulfuric=Use lead in sulfuric acid. Default "yes". Use with care. - -[mod-setting-description] -bzlead-recipe-bypass=Skip modifying these recipes (comma-separated list). -bzlead-more-entities=Adds lead entities (currently just a lead chest). -bzlead-sulfuric=Adds compatibility for old saves. Do NOT change to "no" for new saves. Will be removed (and always "yes") in 2022. diff --git a/map-gen-preset-updates.lua b/map-gen-preset-updates.lua index b3256ff..571a500 100644 --- a/map-gen-preset-updates.lua +++ b/map-gen-preset-updates.lua @@ -4,7 +4,7 @@ if data.raw["map-gen-presets"] and data.raw["map-gen-presets"].default then preset.basic_settings and preset.basic_settings.autoplace_controls and preset.basic_settings.autoplace_controls["iron-ore"] then - preset.basic_settings.autoplace_controls["lead-ore"] = preset.basic_settings.autoplace_controls["iron-ore"] + preset.basic_settings.autoplace_controls["graphite"] = preset.basic_settings.autoplace_controls["iron-ore"] end end end diff --git a/me.lua b/me.lua index 5bd08b4..08adde5 100644 --- a/me.lua +++ b/me.lua @@ -1,9 +1,13 @@ local me = {} -me.name = "bzmod" +me.name = "bzcarbon" -function me.mod_setting() - return me.get_setting("bzmod-setting") == "yes" +function me.use_fullerenes() + return me.get_setting("bzcarbon-enable-fullerenes") == "yes" +end + +function me.use_carbon_black() + return me.get_setting("bzcarbon-enable-carbon-black") == "yes" end function me.get_setting(name) diff --git a/settings.lua b/settings.lua index 2936f59..2755605 100644 --- a/settings.lua +++ b/settings.lua @@ -1,23 +1,23 @@ data:extend({ { type = "string-setting", - name = "bzlead-recipe-bypass", + name = "bzcarbon-recipe-bypass", setting_type = "startup", default_value = "", allow_blank = true, }, { type = "string-setting", - name = "bzlead-more-entities", - setting_type = "startup", - default_value = "no", - allowed_values = {"yes", "no"}, - }, - { -- TODO remove this in 2022 - type = "string-setting", - name = "bzlead-sulfuric", + name = "bzcarbon-enable-fullerenes", setting_type = "startup", default_value = "yes", - allowed_values = {"yes", "no"}, + allowed_values = {"no", "yes"}, + }, + { + type = "string-setting", + name = "bzcarbon-enable-carbon-black", + setting_type = "startup", + default_value = "no", + allowed_values = {"no", "yes"}, }, }) diff --git a/thumbnail.png b/thumbnail.png index 9531a24..25be720 100644 Binary files a/thumbnail.png and b/thumbnail.png differ diff --git a/thumbnail.xcf b/thumbnail.xcf index 1ac0079..24ec2b3 100644 Binary files a/thumbnail.xcf and b/thumbnail.xcf differ