diff --git a/changelog.txt b/changelog.txt index 7f172cf..e53375e 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,7 +2,7 @@ Version: 0.4.0 Date: 2021-02-27 Features: - - New optional intermediates: Silicon wafer + - New optional intermediates: Silicon wafer & Solar cell. --------------------------------------------------------------------------------------------------- Version: 0.3.7 Date: 2021-02-15 diff --git a/control.lua b/control.lua index 8b13789..0a1ac5f 100644 --- a/control.lua +++ b/control.lua @@ -1 +1,12 @@ +script.on_event( defines.events.on_console_chat, function(event) + -- refresh recipes, in case of settings change + if event.message and event.message == "SiliconRecipes" and (not event.player_index or not game.players[event.player_index] or game.players[event.player_index].admin) then + if game.players[event.player_index].force.recipes["silicon-wafer"] then + game.players[event.player_index].force.recipes["silicon-wafer"].enabled=true + end + if game.players[event.player_index].force.recipes["solar-cell"] then + game.players[event.player_index].force.recipes["solar-cell"].enabled=true + end + end +end) diff --git a/graphics/icons/solar-cell.png b/graphics/icons/solar-cell.png new file mode 100644 index 0000000..29cc8ff Binary files /dev/null and b/graphics/icons/solar-cell.png differ diff --git a/locale/en/silicon.cfg b/locale/en/silicon.cfg index c681e48..0090387 100644 --- a/locale/en/silicon.cfg +++ b/locale/en/silicon.cfg @@ -2,18 +2,21 @@ silica=Silica silicon=Silicon silicon-wafer=Silicon wafer +solar-cell=Solar cell optical-fiber=Optical Fiber [item-name] silica=Silica silicon=Silicon silicon-wafer=Silicon wafer +solar-cell=Solar cell optical-fiber=Optical Fiber [item-description] silica=Can be used directly or processed further. silicon=Needed for various electrical and electronic applications -silicon-wafer=Use silicon in circuits +silicon-wafer=Use silicon in circuits. +solar-cell=Use the photovoltaic effect to harness solar energy. optical-fiber=Cable used for fiber optics, including circuit network. [technology-name] @@ -35,7 +38,8 @@ optical-fiber=__ITEM__optical-fiber__ # Settings [mod-setting-name] -bzsilicon-more-intermediates=Enable more intermediate recipes such as silicon wafers. More complex production chains. +bzsilicon-more-intermediates=Enable more intermediate recipes such as silicon wafers. [mod-setting-description] -bzsilicon-more-intermediates=Optional in vanilla, Krastorio 2, etc. Requried for Bio Industries. +bzsilicon-more-intermediates= More complex production chains. Optional in vanilla, Krastorio 2, etc. [color=red]Required for Bio Industries.[/color] + diff --git a/prototypes/silicon-recipe.lua b/prototypes/silicon-recipe.lua index 6afba17..60287a0 100644 --- a/prototypes/silicon-recipe.lua +++ b/prototypes/silicon-recipe.lua @@ -67,7 +67,6 @@ data:extend( type = "unlock-recipe", recipe = "silicon-wafer", } or nil, - }, unit = { @@ -93,6 +92,7 @@ data:extend({ icon_size = "64", subgroup = "intermediate-product", stack_size = util.get_stack_size(100), + order = "s[silicon]-silicon-wafer", }, { type = "recipe", @@ -111,5 +111,32 @@ data:extend({ result = "silicon-wafer", result_count = 10, }, + { + type = "item", + name = "solar-cell", + icon = "__bzsilicon__/graphics/icons/solar-cell.png", + icon_size = "128", + subgroup = "intermediate-product", + stack_size = util.get_stack_size(100), + order = "s[silicon]-solar-cell", + }, + { + type = "recipe", + name = "solar-cell", + category = "crafting-with-fluid", + subgroup = "intermediate-product", + enabled = false, + energy_required = 2, + ingredients = (mods["bzlead"] and { + {type= "item", name="silicon", amount=2}, + {type= "item", name="electronic-circuit", amount=1}, + {type= "item", name="lead-plate", amount=1}, + } or { + {type= "item", name="silicon", amount=2}, + {type= "item", name="electronic-circuit", amount=1}, + }), + result = "solar-cell", + result_count = 2, + }, }) end diff --git a/recipe-updates.lua b/recipe-updates.lua index 4039671..6b17564 100644 --- a/recipe-updates.lua +++ b/recipe-updates.lua @@ -5,15 +5,26 @@ if not mods["Krastorio2"] then util.add_ingredient("concrete", "silica", 25); util.add_prerequisite("concrete", "silica-processing") - util.replace_some_ingredient("processing-unit", "electronic-circuit", 10, "silicon-wafer", 5) - util.add_prerequisite("advanced-electronics-2", util.silicon_processing) + if util.more_intermediates() then + util.replace_some_ingredient("processing-unit", "electronic-circuit", 10, "silicon-wafer", 5) + util.replace_ingredient("effectivity-module", "electronic-circuit", "silicon-wafer") + util.replace_ingredient("productivity-module", "electronic-circuit", "silicon-wafer") + util.replace_ingredient("speed-module", "electronic-circuit", "silicon-wafer") + + util.replace_ingredient("solar-panel", "electronic-circuit", "solar-cell") + util.replace_ingredient("solar-panel-equipment", "solar-panel", "solar-cell") + util.add_effect("solar-energy", {type = "unlock-recipe", recipe="solar-cell"}) + else + util.replace_some_ingredient("solar-panel", "electronic-circuit", 10, "silicon", 10) + + util.replace_some_ingredient("processing-unit", "electronic-circuit", 10, "silicon", 10) + util.replace_ingredient("effectivity-module", "electronic-circuit", "silicon") + util.replace_ingredient("productivity-module", "electronic-circuit", "silicon") + util.replace_ingredient("speed-module", "electronic-circuit", "silicon") + end - util.replace_some_ingredient("solar-panel", "electronic-circuit", 10, "silicon", 10) util.add_prerequisite("solar-energy", "silicon-processing") - - util.replace_ingredient("effectivity-module", "electronic-circuit", "silicon-wafer") - util.replace_ingredient("productivity-module", "electronic-circuit", "silicon-wafer") - util.replace_ingredient("speed-module", "electronic-circuit", "silicon-wafer") + util.add_prerequisite("advanced-electronics-2", util.silicon_processing) util.add_prerequisite("modules", util.silicon_processing) else util.add_ingredient("concrete", "silica", 15); @@ -52,10 +63,16 @@ if mods["Krastorio2"] then util.add_ingredient("ai-core", "optical-fiber", 2) util.add_prerequisite(util.silicon_processing, "silica-processing") + if util.more_intermediates() then util.add_effect(util.silicon_processing, {type = "unlock-recipe", recipe="silicon-wafer"}) util.remove_ingredient("electronic-components", "silicon") util.add_ingredient("electronic-components", "silicon-wafer", 1) + + util.replace_ingredient("solar-panel", "electronic-circuit", "solar-cell") + util.remove_ingredient("solar-panel", "silicon") + util.replace_ingredient("solar-panel-equipment", "solar-panel", "solar-cell") + util.add_effect("solar-energy", {type = "unlock-recipe", recipe="solar-cell"}) end end