From 01d64fea858ec121e330873dfe8a28aacef1be06 Mon Sep 17 00:00:00 2001 From: Brevven Date: Tue, 31 Dec 2024 00:48:29 -0800 Subject: [PATCH] big update to 2.0/SA --- changelog.txt | 12 ++ control.lua | 19 +- graphics/icons/jellyskin.png | Bin 0 -> 8407 bytes graphics/icons/jellyskin.xcf | Bin 0 -> 8397 bytes graphics/icons/molten-tin-sa.png | Bin 0 -> 13228 bytes graphics/molten-tin-sa.xcf | Bin 0 -> 18637 bytes info.json | 2 +- locale/cs/tin.cfg | 2 +- locale/en/tin.cfg | 13 +- locale/ja/tin.cfg | 2 +- locale/ru/tin.cfg | 2 +- locale/zh-CN/bztin.cfg | 2 +- me.lua | 1 + tin-ore.lua | 47 +++-- tin-recipe-updates.lua | 23 ++- tin-recipe.lua | 294 +++++++++++++++++++++++++++---- 16 files changed, 341 insertions(+), 78 deletions(-) create mode 100644 graphics/icons/jellyskin.png create mode 100644 graphics/icons/jellyskin.xcf create mode 100644 graphics/icons/molten-tin-sa.png create mode 100644 graphics/molten-tin-sa.xcf diff --git a/changelog.txt b/changelog.txt index 0286a19..fb92455 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,16 @@ --------------------------------------------------------------------------------------------------- +Version: 2.0.0 +Date: 2024-12-31 + Changes: + - Updated to Factorio 2.0 and Space Age + Can be added to existing savegame. Will generate ore patches on newly explored chunks on Nauvis. + To add ore patches to previously explored chunks, use /bz-regenerate console command. + - bzlist chat command is now a proper console command: /bz-list + - Alternate processes for creating tin on Vulcanus and Gleba, and recycling on Fulgora + - A small number of new uses for tin in Spage Age. (More may come later) + - Confirmed compatible with many modded planets. + - Compatibility with other mods is not confirmed, but many will still work +--------------------------------------------------------------------------------------------------- Version: 0.1.13 Date: 2024-02-10 Changes: diff --git a/control.lua b/control.lua index 4c5d275..6379685 100644 --- a/control.lua +++ b/control.lua @@ -1,18 +1,9 @@ local util = require("control-util") -function on_console_chat(event) - if event.message and string.lower(event.message) == "bzlist" then - local player = game.players[event.player_index] - if player and player.connected then - local list = util.get_list() - if list and #list>0 then - local filename = util.me.name..".txt" - game.write_file(filename, list, false, event.player_index) - player.print("Wrote recipes to script-output/"..filename) - end - end - end -end -script.on_event(defines.events.on_console_chat, on_console_chat) +script.on_event(defines.events.on_console_command, util.list) + +script.on_configuration_changed(util.ore_fix) +util.add_regenerate_command_handler() +util.add_list_command_handler() util.warptorio2_expansion_helper() diff --git a/graphics/icons/jellyskin.png b/graphics/icons/jellyskin.png new file mode 100644 index 0000000000000000000000000000000000000000..b268a341d6b49222fc9ab6b9848f6cd20d74ef85 GIT binary patch literal 8407 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 literal 0 HcmV?d00001 diff --git a/graphics/icons/jellyskin.xcf b/graphics/icons/jellyskin.xcf new file mode 100644 index 0000000000000000000000000000000000000000..908bd8fecbc866531eb121273c9daff6030beb58 GIT binary patch literal 8397 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 literal 0 HcmV?d00001 diff --git a/graphics/icons/molten-tin-sa.png b/graphics/icons/molten-tin-sa.png new file mode 100644 index 0000000000000000000000000000000000000000..179a9952653dd657ebf1421e31413b1b9aff1020 GIT binary patch literal 13228 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 Fe*laAReb;e literal 0 HcmV?d00001 diff --git a/graphics/molten-tin-sa.xcf b/graphics/molten-tin-sa.xcf new file mode 100644 index 0000000000000000000000000000000000000000..2828b13832acb04efdae8ae93f51e85eaeea4e7c GIT binary patch literal 18637 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 K-v3H!_rC#{MuM6E literal 0 HcmV?d00001 diff --git a/info.json b/info.json index 4579c00..8acade6 100644 --- a/info.json +++ b/info.json @@ -25,6 +25,6 @@ "? space-age", "(?) RenaiTransportation" ], - "description": "Adds tin, solder and more to the base game.\n\nCompatible with Krastorio 2 and Space Exploration. A standalone piece of BZ Mods." + "description": "Adds tin, solder and more to the base game.\n\nCompatible with Space Age.\n\nA standalone piece of BZ Mods." } diff --git a/locale/cs/tin.cfg b/locale/cs/tin.cfg index 9723a7d..6313767 100644 --- a/locale/cs/tin.cfg +++ b/locale/cs/tin.cfg @@ -53,7 +53,7 @@ bztin-more-intermediates=Povolit výrobu více meziproduktů [mod-setting-description] bztin-recipe-bypass=Modifikace originálních receptů uvedených v seznamu nebudou povoleny. Jednotlivé recepty oddělte čárkami. -bztin-list=Pokud je povoleno, textový příkaz [color=orange]BZList[/color] vypíše soubor do adresáře s výstupem skriptu s úplným seznamem upravených receptů. Doporučuje se toto vypnout, jakmile dokončíte konfiguraci ostatních nastavení. +bztin-list=Pokud je povoleno, textový příkaz [color=orange]/bz-list[/color] vypíše soubor do adresáře s výstupem skriptu s úplným seznamem upravených receptů. Doporučuje se toto vypnout, jakmile dokončíte konfiguraci ostatních nastavení. [string-mod-setting] bztin-more-intermediates-no=Žádné meziprodukty diff --git a/locale/en/tin.cfg b/locale/en/tin.cfg index 21d7017..3fb9c85 100644 --- a/locale/en/tin.cfg +++ b/locale/en/tin.cfg @@ -14,6 +14,7 @@ tinned-cable=Tinned cable enriched-tin=Enriched tin compressed-tin-ore=Compressed tin ore bronze-plate=Bronze plate +jellyskin=Jellyskin [item-description] tin-ore=Can be smelted into tin plates @@ -22,6 +23,7 @@ enriched-tin=Can be efficiently smelted into tin plates [fluid-name] molten-tin=Molten tin organotins=Organotins +tin-sulfides=Tin sulfides [technology-name] tinned-cable=Tinned cable @@ -42,8 +44,17 @@ smelt-compressed-tin-ore=__ITEM__tin-plate__ tin-dust=__ITEM__tin-dust__ dirty-water-filtration-tin=Filter dirty water [item=tin-ore] bz-tin-ingot=Tin ingot +tin-sulfide-processing=Tin sulfide processing +casting-tin=Casting tin +jellyskin-processing=Jellyskin processing +tin-from-organotins=Tin from organotins +metallic-asteroid-crushing-tin=Metallic asteroid crushing for tin [recipe-description] +tin-sulfides=Only possible on Vulcanus, extract tin from the released acidic gases. +jellyskin-processing=The skin of the jellynut is delicate, but has a coating of organotins to protect the plant from pentapods. +tin-from-organotins=A focused dose of organotins in a pentapod egg kills the egg but extracts the tin. + # Settings @@ -54,7 +65,7 @@ bztin-more-intermediates=Enable more intermediates [mod-setting-description] bztin-recipe-bypass=Skip modifying these recipes (comma-separated list). -bztin-list=If enabled, the text command [color=orange]BZList[/color] will dump a file to the script-output directory with a full list of recipes modified.\nRecommended to turn this off after you are done configuring your other settings. +bztin-list=If enabled, the text command [color=orange]/bz-list[/color] will dump a file to the script-output directory with a full list of recipes modified.\nRecommended to turn this off after you are done configuring your other settings. [string-mod-setting] bztin-more-intermediates-no=No diff --git a/locale/ja/tin.cfg b/locale/ja/tin.cfg index c94a3e9..37505eb 100644 --- a/locale/ja/tin.cfg +++ b/locale/ja/tin.cfg @@ -54,7 +54,7 @@ bztin-more-intermediates=中間生産物を追加 [mod-setting-description] bztin-recipe-bypass=指定したレシピの改変を行わない。(コンマ区切り) -bztin-list=有効にすると、テキストコマンド [color=orange]BZList[/color] で script-output ディレクトリに改変されたレシピの完全なリストを出力します。\n他の設定を済ませたあとは無効にするのを推奨。 +bztin-list=有効にすると、テキストコマンド [color=orange]/bz-list[/color] で script-output ディレクトリに改変されたレシピの完全なリストを出力します。\n他の設定を済ませたあとは無効にするのを推奨。 [string-mod-setting] bztin-more-intermediates-no=いいえ diff --git a/locale/ru/tin.cfg b/locale/ru/tin.cfg index 1d136b7..0bf6294 100644 --- a/locale/ru/tin.cfg +++ b/locale/ru/tin.cfg @@ -54,7 +54,7 @@ bztin-more-intermediates=Включить больше промежуточны [mod-setting-description] bztin-recipe-bypass=Пропустить изменение этих рецептов (список, разделенный запятыми). -bztin-list=Если эта функция включена, текстовая команда [color=orange]BZList[/color] будет сохранять файл в каталог script-output с полным списком измененных рецептов.\nРекомендуется выключить эту функцию после того, как вы закончите настройку других параметров. +bztin-list=Если эта функция включена, текстовая команда [color=orange]/bz-list[/color] будет сохранять файл в каталог script-output с полным списком измененных рецептов.\nРекомендуется выключить эту функцию после того, как вы закончите настройку других параметров. [string-mod-setting] bztin-more-intermediates-no=Нет diff --git a/locale/zh-CN/bztin.cfg b/locale/zh-CN/bztin.cfg index 8c52c94..19eff61 100644 --- a/locale/zh-CN/bztin.cfg +++ b/locale/zh-CN/bztin.cfg @@ -54,7 +54,7 @@ bztin-more-intermediates=启用更多的中间产品 [mod-setting-description] bztin-recipe-bypass=跳过修改这些合成(用逗号分开)。 -bztin-list=如果启用,在控制台中打[color=orange]BZList[/color]会在script-output文件夹中导出一个全部修改过的合成配方的文件。\n推荐在你调整好其他配置后关闭。 +bztin-list=如果启用,在控制台中打[color=orange]/bz-list[/color]会在script-output文件夹中导出一个全部修改过的合成配方的文件。\n推荐在你调整好其他配置后关闭。 [string-mod-setting] bztin-more-intermediates-no=不启用 diff --git a/me.lua b/me.lua index d6f6da1..061b958 100644 --- a/me.lua +++ b/me.lua @@ -1,6 +1,7 @@ local me = {} me.name = "bztin" +me.resources = {"tin-ore"} me.list = {} me.recipes = {"tin-plate", "solder", "organotins", "enriched-tin", diff --git a/tin-ore.lua b/tin-ore.lua index b3f1357..afff781 100644 --- a/tin-ore.lua +++ b/tin-ore.lua @@ -1,20 +1,27 @@ local resource_autoplace = require('resource-autoplace'); -local noise = require('noise'); local util = require("data-util"); +resource_autoplace.initialize_patch_set("tin-ore", true) +data.raw.planet.nauvis.map_gen_settings.autoplace_controls["tin-ore"] = {} +data.raw.planet.nauvis.map_gen_settings.autoplace_settings.entity.settings["tin-ore"] = {} +if mods.tenebris then + data.raw.planet.tenebris.map_gen_settings.autoplace_controls["tin-ore"] = {} + data.raw.planet.tenebris.map_gen_settings.autoplace_settings.entity.settings["tin-ore"] = {} +end + data:extend({ { type = "autoplace-control", category = "resource", name = "tin-ore", richness = true, - order = "b-e" - }, - { - type = "noise-layer", - name = "tin-ore" + order = "a-t" }, + -- { + -- type = "noise-layer", + -- name = "tin-ore" + -- }, { type = "resource", icon_size = 64, icon_mipmaps = 3, @@ -27,7 +34,7 @@ data:extend({ { hardness = 1, mining_particle = "copper-ore-particle", - mining_time = 1, + mining_time = .75, result = "tin-ore" }, collision_box = {{ -0.1, -0.1}, {0.1, 0.1}}, @@ -35,7 +42,7 @@ data:extend({ autoplace = resource_autoplace.resource_autoplace_settings{ name = "tin-ore", - order = "b-z", + order = "a-t", base_density = 3, base_spots_per_km2 = 1, has_starting_area_placement = true, @@ -44,25 +51,15 @@ data:extend({ }, stage_counts = {15000, 9500, 5500, 2900, 1300, 400, 150, 80}, - stages = - { - sheet = - { - filename = "__bztin__/graphics/entity/ores/tin-ore.png", - priority = "extra-high", - size = 64, - frame_count = 8, - variation_count = 8, - hr_version = - { - filename = "__bztin__/graphics/entity/ores/hr-tin-ore.png", + stages = { + sheet = { + filename = "__bztin__/graphics/entity/ores/hr-tin-ore.png", priority = "extra-high", size = 128, frame_count = 8, variation_count = 8, scale = 0.5 } - } }, }, { @@ -71,10 +68,10 @@ data:extend({ icon_size = 64, icon_mipmaps = 3, icon = "__bztin__/graphics/icons/tin-ore.png", pictures = { - {filename="__bztin__/graphics/icons/tin-ore.png", size=64, scale=0.25}, - {filename="__bztin__/graphics/icons/tin-ore-1.png", size=64, scale=0.25}, - {filename="__bztin__/graphics/icons/tin-ore-2.png", size=64, scale=0.25}, - {filename="__bztin__/graphics/icons/tin-ore-3.png", size=64, scale=0.25}, + {filename="__bztin__/graphics/icons/tin-ore.png", size=64, scale=0.5}, + {filename="__bztin__/graphics/icons/tin-ore-1.png", size=64, scale=0.5}, + {filename="__bztin__/graphics/icons/tin-ore-2.png", size=64, scale=0.5}, + {filename="__bztin__/graphics/icons/tin-ore-3.png", size=64, scale=0.5}, }, subgroup = "raw-resource", order = "t-c-a", diff --git a/tin-recipe-updates.lua b/tin-recipe-updates.lua index 035d1d3..d8572dd 100644 --- a/tin-recipe-updates.lua +++ b/tin-recipe-updates.lua @@ -1,6 +1,21 @@ local util = require("data-util"); +-- Space Age + +if mods.bzlead and data.raw.item["lead-expansion-bolt"] then + util.replace_product("scrap-recycling", "lead-expansion-bolt", "solder") +else + util.add_product("scrap-recycling", util.item("solder", 1, .01)) +end + +if mods.bztitanium then + util.replace_ingredient("superconductor", "titanium-plate", "tin-plate") +else + util.add_ingredient("superconductor", "tin-plate", 1) +end + + -- Main vanilla changes local organotins_quant = mods.Krastorio2 and 10 or 5 @@ -106,7 +121,7 @@ util.add_ingredient("lab", "tin-plate", 5) if util.me.use_cable() then - util.add_prerequisite("oil-processing", "tinned-cable") + util.add_prerequisite("oil-gathering", "tinned-cable") util.add_ingredient("pumpjack", "tinned-cable", 5) util.remove_ingredient("se-delivery-cannon-capsule", "copper-cable") --10 @@ -119,6 +134,7 @@ if util.me.use_cable() then util.replace_ingredient("constant-combinator", "copper-cable", "tinned-cable") util.replace_ingredient("power-switch", "copper-cable", "tinned-cable") util.replace_ingredient("programmable-speaker", "copper-cable", "tinned-cable") + util.replace_ingredient("beacon", "copper-cable", "tinned-cable") local modded_combinators = {"timer-combinator", "counting-combinator", "random-combinator", "power-combinator", "max-combinator", "min-combinator", "and-gate-combinator", @@ -144,6 +160,11 @@ if util.me.use_cable() then end if util.me.use_bronze() then + util.add_ingredient("recycler", "bronze-plate", 10) + util.add_ingredient("maraxsis-diesel-submarine", "bronze-plate", 10) + util.add_ingredient("maraxsis-nuclear-submarine", "bronze-plate", 10) + util.add_ingredient("maraxsis-salt-reactor", "bronze-plate", 10) + util.add_ingredient("maraxsis-hydro-plant", "bronze-plate", 10) local fast_i = mods.bzaluminum and "aluminum-plate" or "iron-plate" util.replace_some_ingredient("fast-inserter", fast_i, 1, "bronze-plate", 1) if mods.Krastorio2 then diff --git a/tin-recipe.lua b/tin-recipe.lua index 664a68b..31b1e75 100644 --- a/tin-recipe.lua +++ b/tin-recipe.lua @@ -18,35 +18,33 @@ data:extend({ { icon = "__bztin__/graphics/icons/tin-plate.png", icon_size = 128}, } ), - normal = (mods["Krastorio2"] and - { - main_product = "tin-plate", - enabled = true, - energy_required = 12, - ingredients = {{"tin-ore", 10}}, - results = { - {type="item", name = "tin-plate", amount=5} - } - } or - { + -- (mods["Krastorio2"] and + -- { + -- main_product = "tin-plate", + -- enabled = true, + -- energy_required = 12, + -- ingredients = {{"tin-ore", 10}}, + -- results = { + -- {type="item", name = "tin-plate", amount=5} + -- } + -- } or main_product = "tin-plate", enabled = true, energy_required = 2.4, - ingredients = {{"tin-ore", 1}}, + ingredients = {util.item("tin-ore", 1)}, results = { {type="item", name = "tin-plate", amount=1} - } - }), - expensive = - { - main_product = "tin-plate", - enabled = true, - energy_required = 4.8, - ingredients = {{"tin-ore", 1}}, - results = { - {type="item", name = "tin-plate", amount=1}, - } - } + }, + -- expensive = + -- { + -- main_product = "tin-plate", + -- enabled = true, + -- energy_required = 4.8, + -- ingredients = {{"tin-ore", 1}}, + -- results = { + -- {type="item", name = "tin-plate", amount=1}, + -- } + -- } }, { type = "item", @@ -59,9 +57,9 @@ data:extend({ }, }) -local solder_ingredients = {{"tin-plate", 4}, {"copper-plate", 1}} +local solder_ingredients = {util.item("tin-plate", 4), util.item("copper-plate", 1)} if mods.bzlead then - solder_ingredients = {{"tin-plate", 3}, {"lead-plate", 2}} + solder_ingredients = {util.item("tin-plate", 3), util.item("lead-plate", 2)} end data:extend({ { @@ -81,7 +79,7 @@ data:extend({ enabled = true, energy_required = 1, ingredients = solder_ingredients, - results = {{"solder", 4}}, + results = {util.item("solder", 4)}, } }) @@ -120,7 +118,7 @@ data:extend({ type = "fluid", name = "organotins", default_temperature = 25, - heat_capacity = "0.1KJ", + heat_capacity = "0.1kJ", base_color = {r=0.75, g=0.65, b=0.1}, flow_color = {r=0.7, g=1, b=0.1}, icon = "__bztin__/graphics/icons/organotins.png", @@ -135,7 +133,7 @@ data:extend({ order = "h[organotins]", enabled = false, energy_required = 5, - ingredients = {{"tin-plate", 3}, {type="fluid", name="petroleum-gas", amount=20}}, + ingredients = {util.item("tin-plate", 3), {type="fluid", name="petroleum-gas", amount=20}}, results = {{type="fluid", name="organotins", amount=50}}, crafting_machine_tint = { primary = {r = 1.000, g = 0.995, b = 0.089, a = 1.000}, @@ -181,8 +179,8 @@ data:extend({ order = "d[tinned-cable]", enabled = false, energy_required = 1.5, - ingredients = {{"tin-plate", 1}, {"copper-cable", 8}}, - results = {{"tinned-cable", 8}}, + ingredients = {util.item("tin-plate", 1), util.item("copper-cable", 8)}, + results = {util.item("tinned-cable", 8)}, }, { type = "technology", @@ -226,7 +224,7 @@ data:extend({ enabled = false, energy_required = 60, ingredients = {}, - results = {{"bronze-plate", 20}}, + results = {util.item("bronze-plate", 20)}, }, }) for item, count in pairs(bronze_i) do @@ -240,4 +238,236 @@ else util.add_effect("automation", { type = "unlock-recipe", recipe = "bronze-plate" }) end end +if mods["space-age"] then +data:extend({ + { + type = "fluid", + name = "tin-sulfides", + icons = {{ icon="__base__/graphics/icons/fluid/steam.png", icon_size=64, tint={r=.9, g=.9, b=.1, a=.7}}}, + subgroup = "fluid", + order = "b[new-fluid]-b[vulcanus]-t[tin-sulfides]", + default_temperature = 315, + max_temperature = 2000, + gas_temperature = 300, + heat_capacity = ".1kJ", + base_color = {1,1,0}, + flow_color = {.95,.99,.1}, + }, + { + type = "recipe", + name = "tin-sulfides", + subgroup = "vulcanus-processes", + category = "chemistry", + main_product = "tin-sulfides", + allow_productivity = true, + energy_required = 1, + ingredients = { + util.fluid("steam", 10), + util.fluid("sulfuric-acid", 20), + }, + results = { + util.fluid("tin-sulfides", 20), + util.fluid("sulfuric-acid", 10), + }, + surface_conditions = + { + { + property = "pressure", + min = 4000, + max = 4000 + } + }, + }, + { + type = "recipe", + name = "tin-sulfide-processing", + subgroup = "vulcanus-processes", + category = "chemistry", + main_product = "tin-ore", + allow_productivity = true, + energy_required = 2, + icons = { + { icon="__bztin__/graphics/icons/tin-ore.png", icon_size=64}, + { icon="__base__/graphics/icons/fluid/steam.png", icon_size=64, tint={r=.9, g=.9, b=.1, a=.7}, scale=0.5, shift={-8,-8}}, + }, + ingredients = mods.bztitanium and { + util.fluid("tin-sulfides", 40), + util.fluid("vacuum", 1), + } or { + util.fluid("tin-sulfides", 40), + }, + results = { + util.item("tin-ore", 2), + util.item("sulfur", 1), + } + }, + { + type = "fluid", + name = "molten-tin", + icon = "__bztin__/graphics/icons/molten-tin-sa.png", + subgroup = "fluid", + order = "b[new-fluid]-b[vulcanus]-d[molten-tin]", + default_temperature = 1500, + max_temperature = 2000, + heat_capacity = "0.01kJ", + base_color = {.6, 0.4, 0.23}, + flow_color = {0.6, 0.4, 0.23}, + auto_barrel = false + }, + { + type = "recipe", + name = "molten-tin", + category = "metallurgy", + subgroup = "vulcanus-processes", + order = "a[melting]-d[molten-tin]", + auto_recycle = false, + enabled = false, + ingredients = + { + {type = "item", name = "tin-ore", amount = 100}, + {type = "item", name = "calcite", amount = 1}, + }, + energy_required = 48, + results = {{type = "fluid", name = "molten-tin", amount = 1000}}, + allow_productivity = true, + hide_from_signal_gui = false, + main_product = "molten-tin", + }, + { + type = "recipe", + name = "casting-tin", + category = "metallurgy", + subgroup = "vulcanus-processes", + order = "b[casting]-d[casting-tin]", + icons = { + {icon = "__bztin__/graphics/icons/tin-plate.png", icon_size = 128, shift={-4,4}}, + {icon = "__bztin__/graphics/icons/molten-tin-sa.png", icon_size = 64, shift={4,-4}}, + }, + enabled = false, + ingredients = + { + {type = "fluid", name = "molten-tin", amount = 20, fluidbox_multiplier = 10}, + }, + energy_required = 2.4, + allow_decomposition = false, + results = {{type = "item", name = "tin-plate", amount = 2}}, + allow_productivity = true + }, + +}) +util.add_unlock("foundry", "casting-tin") +util.add_unlock("foundry", "molten-tin") +util.add_unlock("foundry", "tin-sulfides") +util.add_unlock("foundry", "tin-sulfide-processing") +local space_age_item_sounds = require("__space-age__.prototypes.item_sounds") + +data:extend({ + { + type = "item", + name = "jellyskin", + icon = "__bztin__/graphics/icons/jellyskin.png", + icon_size = 64, + subgroup = "agriculture-processes", + order = "b[agriulture]-d[tin]", + stack_size = util.get_stack_size(100), + spoil_result = "spoilage", + spoil_ticks = 54000, + fuel_category = "chemical", + fuel_value = "1MJ", + inventory_move_sound = space_age_item_sounds.agriculture_inventory_move, + pick_sound = space_age_item_sounds.agriculture_inventory_pickup, + drop_sound = space_age_item_sounds.agriculture_inventory_move, + stack_size = 100, + default_import_location = "gleba", + }, + { + type = "recipe", + name = "jellyskin-processing", + category = "organic", + subgroup = "agriculture-processes", + order = "e[agriculture]-a[tin]", + icons = { + {icon = "__bztin__/graphics/icons/organotins.png", icon_size = 64}, + {icon = "__bztin__/graphics/icons/jellyskin.png", icon_size=64, shift={0,-8}}, + }, + enabled = false, + allow_productivity = true, + ingredients = + { + util.item("jellyskin", 1), + }, + energy_required = 8/3, + allow_decomposition = false, + results = { + util.fluid("organotins", 100), + }, + main_product="organotins", + }, + { + type = "recipe", + name = "tin-from-organotins", + category = "organic", + subgroup = "agriculture-processes", + order = "e[agriculture]-a[tin]", + icons = { + {icon = "__bztin__/graphics/icons/organotins.png", icon_size = 64}, + {icon = "__bztin__/graphics/icons/tin-ore.png", icon_size=64, scale=0.333, shift={0,8}}, + }, + enabled = false, + allow_productivity = true, + ingredients = + { + util.fluid("organotins", 100), + util.item("pentapod-egg"), + }, + energy_required = 16/3, + allow_decomposition = false, + results = { + util.item("tin-ore", 6), + }, + main_product="tin-ore", + }, + +}) +util.add_product("jellynut-processing", util.item("jellyskin", 1, .25)) +util.add_ingredient("bioplastic", "organotins", 7.5) +util.set_icons("bioplastic", { + {icon = "__space-age__/graphics/icons/bioplastic.png", icon_size = 64}, + {icon = "__bztin__/graphics/icons/organotins.png", icon_size = 64, scale=.25, shift={0,-8}}, +}) +util.add_unlock("biochamber", "jellyskin-processing") +util.add_unlock("biochamber", "tin-from-organotins") end + +if mods["planet-muluna"] then -- moon where you get resources from crushing on the surface +data:extend({ + { + type = "recipe", + name = "metallic-asteroid-crushing-tin", + icons = { + {icon = "__space-age__/graphics/icons/metallic-asteroid-crushing.png", icon_size=64}, + {icon="__bztin__/graphics/icons/tin-ore.png", icon_size=64, scale =0.25, shift = {0,4}}, + }, + category = "crushing", + subgroup="space-crushing", + order = "b-a-a", + auto_recycle = false, + enabled = false, + ingredients = + { + {type = "item", name = "metallic-asteroid-chunk", amount = 1}, + }, + energy_required = 2, + results = + { + {type = "item", name = "tin-ore", amount = 15}, + {type = "item", name = "metallic-asteroid-chunk", amount = 1, probability = 0.2} + }, + allow_productivity = true, + allow_decomposition = false + }, +}) +util.add_unlock("space-platform-thruster", "metallic-asteroid-crushing-tin") +end +end +