From 131be989c2d2d95a563e0911f4c0659d7507788b Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 11 Sep 2024 18:01:40 -0700 Subject: [PATCH 001/110] make driftwood functional --- data-updates.lua | 54 ++++++++++++++++++++++++++------------------ locale/en/locale.cfg | 1 + 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/data-updates.lua b/data-updates.lua index 178168d..b54c074 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -53,38 +53,48 @@ require("prototypes/updates/pyalternativeenergy-updates") --add driftwood for closer logs and saps local noise = require("noise") - -local driftwood = table.deepcopy(data.raw.tree["seaweed"]) -driftwood.name = "driftwood" -driftwood.icon = "__PyBlock__/graphics/icons/driftwood.png" -driftwood.minable = { -mining_time = driftwood.minable.mining_time, -results = - { - {type = "item", name = "log", amount = 1}, - {type = "item", name = "saps", amount = 1, probability = 0.1} - } -} -driftwood.pictures = { - { +data:extend({ + { + type = "tree", + name = "driftwood", + icon = "__PyBlock__/graphics/icons/driftwood.png", + icon_size = 64, + flags = {"placeable-neutral", "not-on-map"}, + minable = { + mining_time = 0.4, + results = { + { type = "item", name = "log", amount = 1 }, + { type = "item", name = "saps", amount = 1, probability = 0.1 } + } + }, + max_health = 20, + subgroup = "creatures", + order = "b-a", + collision_box = {{-0.75, -0.75}, {0.75, 0.75}}, + selection_box = {{-0.5, -0.3}, {0.5, 0.3}}, + collision_mask = {"ground-tile", "colliding-with-tiles-only"}, + pictures = { + { filename = '__PyBlock__/graphics/icons/driftwood.png', priority = 'extra-high', blend_mode = 'additive', width = 64, height = 64, scale = 0.5 - } -} -driftwood.autoplace = { - probabiltity_expression = noise.define_noise_function( function(x, y, tile, map) + } + }, + autoplace = { + probability_expression = noise.define_noise_function( function(x, y, tile, map) -- equiv to: limited_water < 0 and 0 or 1 local limited_water = noise.clamp(noise.var("wlc_elevation_minimum"), 0, 1) -- 0.4% or 1.4% return 0.002 + (0.01 * limited_water) - end), - order = 'driftwood' -} -data:extend({driftwood}) + end), + order = "driftwood" + } + } +}) + --adjust landfill cost for landfill painter if mods['LandfillPainting'] then diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 5919be9..e306d03 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -61,6 +61,7 @@ tributyl-phosphate=Tributyl Phosphate ree-from-ash=Rare Earth Elements from Ash [entity-name] +driftwood=Driftwood cheap-iron-mine=Early Iron Mine basic-ddc=Crude Distructive Distilation Column starter-botanical-nursery=Crude Nursery From d3920214c737daa1b0c72cf03506865333622b26 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 11 Sep 2024 18:52:59 -0700 Subject: [PATCH 002/110] updated changelog --- changelog.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.txt b/changelog.txt index e9165e3..8420534 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 2.0.4 +Date: ???? + Changes: + - Added driftwood for simpler and easier collection of wood and sap +--------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 Changes: From 47a260c096a4410655ed70cc799128c0b78ed77c Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 17 Sep 2024 12:17:15 -0700 Subject: [PATCH 003/110] moving seaweed and inserter-fish interaction --- changelog.txt | 2 ++ data-updates.lua | 23 ++++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/changelog.txt b/changelog.txt index 8420534..9215ab6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,8 @@ Version: 2.0.4 Date: ???? Changes: - Added driftwood for simpler and easier collection of wood and sap + - Make seaweed float around + - Allow inserters to pick up seaweed and fish --------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 diff --git a/data-updates.lua b/data-updates.lua index b54c074..2a2f217 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -55,7 +55,7 @@ require("prototypes/updates/pyalternativeenergy-updates") local noise = require("noise") data:extend({ { - type = "tree", + type = "fish", name = "driftwood", icon = "__PyBlock__/graphics/icons/driftwood.png", icon_size = 64, @@ -63,8 +63,7 @@ data:extend({ minable = { mining_time = 0.4, results = { - { type = "item", name = "log", amount = 1 }, - { type = "item", name = "saps", amount = 1, probability = 0.1 } + { type = "item", name = "log", amount = 1 } } }, max_health = 20, @@ -95,6 +94,24 @@ data:extend({ } }) +-- create "floating" seaweed that moves +local seaweed = table.deepcopy(data.raw.tree.seaweed) +data.raw.tree.seaweed = nil +seaweed.type = "fish" +seaweed.autoplace = { + probability_expression = noise.define_noise_function( function(x, y, tile, map) + -- equiv to: limited_water < 0 and 0 or 1 + local limited_water = noise.clamp(noise.var("wlc_elevation_minimum"), 0, 1) + -- 0.2% or 1.2% + return 0.001 + (0.01 * limited_water) + end) +} +data.raw.fish.seaweed = seaweed + +-- allow all inserters to fish +for i, inserter in pairs(data.raw.inserter) do + inserter.use_easter_egg = true +end --adjust landfill cost for landfill painter if mods['LandfillPainting'] then From 4d221e98d9ef08333633df8ad39d92390190fee5 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 17 Sep 2024 12:48:34 -0700 Subject: [PATCH 004/110] fixed geothermal plant issues --- changelog.txt | 3 + .../buildings/geothermal-plant-mk01.lua | 152 ++++++++---------- 2 files changed, 73 insertions(+), 82 deletions(-) diff --git a/changelog.txt b/changelog.txt index 9215ab6..452c81d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,6 +5,9 @@ Date: ???? - Added driftwood for simpler and easier collection of wood and sap - Make seaweed float around - Allow inserters to pick up seaweed and fish + Bugfixes: + - Re-added the geothermal plant animation + - Changed geothermal plant to a fixed recipe --------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 diff --git a/prototypes/buildings/geothermal-plant-mk01.lua b/prototypes/buildings/geothermal-plant-mk01.lua index e7e1f23..c196478 100644 --- a/prototypes/buildings/geothermal-plant-mk01.lua +++ b/prototypes/buildings/geothermal-plant-mk01.lua @@ -1,82 +1,70 @@ data.raw["mining-drill"]["geothermal-plant-mk01"] = nil ENTITY { - type = "assembling-machine", - name = "geothermal-plant-mk01", - icon = "__pyalternativeenergygraphics__/graphics/icons/geothermal-plant-mk01.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "geothermal-plant-mk01"}, - resource_categories = {"geothermal-crack"}, - max_health = 200, - corpse = "big-remnants", - dying_explosion = "big-explosion", - collision_box = {{ -5.2, -5.2}, {5.2, 5.2}}, - selection_box = {{ -5.5, -5.5}, {5.5, 5.5}}, - --drawing_box = {{-1.6, -2.5}, {1.5, 1.6}}, - energy_source = - { - type = "electric", - emissions_per_second_per_watt = 0, - usage_priority = "secondary-input" - }, - fluid_boxes = { - { - production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), - pipe_covers = DATA.Pipes.covers(true, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {-6, 0}}}, - }, - { - production_type = "output", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), - base_level = 1, - pipe_connections = - { - {position = {0, -6}, type = 'output'} - }, - }, - }, - energy_usage = "1MW", - crafting_speed = 1, - crafting_categories = {"geowater"}, - allowed_effects = {"consumption", "speed", "productivity"}, - module_specification = + type = "assembling-machine", + name = "geothermal-plant-mk01", + icon = "__pyalternativeenergygraphics__/graphics/icons/geothermal-plant-mk01.png", + icon_size = 64, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "geothermal-plant-mk01"}, + max_health = 200, + corpse = "big-remnants", + dying_explosion = "big-explosion", + collision_box = {{ -5.2, -5.2}, {5.2, 5.2}}, + selection_box = {{ -5.5, -5.5}, {5.5, 5.5}}, + --drawing_box = {{-1.6, -2.5}, {1.5, 1.6}}, + energy_source = { + type = "electric", + usage_priority = "secondary-input" + }, + fluid_boxes = { { - module_slots = 4 + production_type = "input", + pipe_picture = DATA.Pipes.pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), + pipe_covers = DATA.Pipes.covers(true, true, true, true), + base_area = 10, + base_level = -1, + pipe_connections = {{ type = "input", position = {-6, 0} }}, }, - radius_visualisation_picture = { - filename = "__base__/graphics/entity/pumpjack/pumpjack-radius-visualization.png", - width = 12, - height = 12 + production_type = "output", + pipe_covers = DATA.Pipes.covers(true, true, true, true), + pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), + base_level = 1, + pipe_connections = {{ position = {0, -6}, type = 'output' }}, }, - monitor_visualization_tint = {r=78, g=173, b=255}, - --base_render_layer = "lower-object-above-shadow", - animations = { + }, + fixed_recipe = "geothermal-water", + energy_usage = "1MW", + crafting_speed = 1, + crafting_categories = {"geowater"}, + allowed_effects = {"consumption", "speed", "productivity"}, + module_specification = { + module_slots = 4 + }, + --base_render_layer = "lower-object-above-shadow", + animation = { + north = { layers = { - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/left-raw.png", - width = 128, - height = 512, - repeat_count = 50, - line_length = 1, - frame_count = 1, - animation_speed = 0.25, - shift = util.by_pixel(-112, -80) - }, - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/left-l.png", - width = 128, - height = 512, - repeat_count = 50, - line_length = 1, - frame_count = 1, - animation_speed = 0.25, - draw_as_glow = true, - shift = util.by_pixel(-112, -80) + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/left-raw.png", + width = 128, + height = 512, + repeat_count = 50, + line_length = 1, + frame_count = 1, + animation_speed = 0.25, + shift = util.by_pixel(-112, -80) + }, + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/left-l.png", + width = 128, + height = 512, + repeat_count = 50, + line_length = 1, + frame_count = 1, + animation_speed = 0.25, + draw_as_glow = true, + shift = util.by_pixel(-112, -80) }, { filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/mid-raw.png", @@ -126,14 +114,14 @@ ENTITY { animation_speed = 0.25, draw_as_shadow = true, shift = util.by_pixel(32, 16) - }, + } + } + } }, -}, - vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, - working_sound = - { - sound = { filename = "__pyalternativeenergygraphics__/sounds/geothermal-plant.ogg", volume = 0.5 }, - apparent_volume = 0.5 - }, - fast_replaceable_group = "geothermal-plant", - } + vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, + working_sound = { + sound = { filename = "__pyalternativeenergygraphics__/sounds/geothermal-plant.ogg", volume = 0.5 }, + apparent_volume = 0.5 + }, + fast_replaceable_group = "geothermal-plant", +} From f13560b3e76e0c9cfe03dc15bf4b7ac2ca832267 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 17 Sep 2024 13:09:36 -0700 Subject: [PATCH 005/110] moss and sap bootstrapping recipes --- changelog.txt | 3 +++ prototypes/recipes/recipes.lua | 37 +++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 452c81d..067a1a9 100644 --- a/changelog.txt +++ b/changelog.txt @@ -8,6 +8,9 @@ Date: ???? Bugfixes: - Re-added the geothermal plant animation - Changed geothermal plant to a fixed recipe + Alienlife: + - Added a moss bootstrapping recipe + - Added a sap bootstrapping recipe --------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index 4742329..2acb879 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -60,7 +60,6 @@ RECIPE { }, results = { { type = "item", name = "bio-sample", amount = 10 }, - }, main_product = "bio-sample", icon = "__pyalienlifegraphics__/graphics/icons/biosample.png", @@ -85,6 +84,42 @@ RECIPE { main_product = "geothermal-water", }:add_unlock('geothermal-power-mk01') +-- bootstrapping stone to moss +RECIPE { + type = "recipe", + name = "moss-cultivation", + category = "nursery", + enabled = true, + energy_required = 160, + ingredients = { + { type = "item", name = "stone", amount = 24 }, + { type = "fluid", name = "water", amount = 1200 }, + }, + results = { + { type = "item", name = "stone", amount_min = 6, amount_max = 12, probability = 0.5 }, + { type = "fluid", name = "dirty-water-light", amount = 1200 }, + { type = "item", name = "moss", amount = 1, probability = 0.08 }, + }, + main_product = "moss" +} + +-- bootstrapping wood to sap +RECIPE { + type = "recipe", + name = "sap-cultivation", + category = "fwf", + enabled = true, + energy_required = 160, + ingredients = { + { type = "item", name = "wood-seedling", amount = 12 }, + { type = "fluid", name = "water", amount = 800 }, + }, + results = { + { type = "item", name = "saps", amount = 1, probability = 0.1 } + }, + main_product = "saps" +} + --UNUSED --[[ From a858c90d80b3cba68e836d7c6d7109270e7bb10d Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 17 Sep 2024 13:31:47 -0700 Subject: [PATCH 006/110] revert fish mk01 changes --- changelog.txt | 3 +++ prototypes/updates/pyalienlife-updates.lua | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/changelog.txt b/changelog.txt index 067a1a9..302cb6e 100644 --- a/changelog.txt +++ b/changelog.txt @@ -11,6 +11,9 @@ Date: ???? Alienlife: - Added a moss bootstrapping recipe - Added a sap bootstrapping recipe + Fish: + - Added phytoplankton back to fish egg mk01 recipe + - Added biomass back to fish mk01 recipe --------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index ff911db..f960181 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -36,7 +36,7 @@ data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = {type = " RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") -RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) +-- RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"} @@ -164,9 +164,9 @@ RECIPE("fish-to-tin"):remove_unlock("molecular-decohesion-mk02"):add_unlock("fis RECIPE("fish-food-01"):remove_unlock("fish-mk01"):add_unlock("fish-mk02") -RECIPE("breed-fish-egg-1"):remove_ingredient("phytoplankton"):add_ingredient({type = "item", name = "seaweed", amount = 2}) +-- RECIPE("breed-fish-egg-1"):remove_ingredient("phytoplankton"):add_ingredient({type = "item", name = "seaweed", amount = 2}) -RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen") +-- RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen") --Lead From 598021f107c51ef37c2133449628ed6169e332c4 Mon Sep 17 00:00:00 2001 From: protocol-1903 <67478786+protocol-1903@users.noreply.github.com> Date: Wed, 18 Sep 2024 10:39:36 -0700 Subject: [PATCH 007/110] put seaweed back into auto sci my bad, was working on another part and forgot to undo this --- prototypes/updates/pyalienlife-updates.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index f960181..d1afce8 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -36,7 +36,7 @@ data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = {type = " RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") --- RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) +RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"} @@ -232,4 +232,4 @@ RECIPE("phadai-pup-1"):remove_ingredient("bedding") RECIPE("phadai-pup-2"):remove_ingredient("bedding") -RECIPE("carapace-to-re"):remove_unlock("molecular-decohesion-mk03"):add_unlock("rare-earth-tech") \ No newline at end of file +RECIPE("carapace-to-re"):remove_unlock("molecular-decohesion-mk03"):add_unlock("rare-earth-tech") From e10d92655da907f39ba6909d9c2ad08bdc0def55 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 18 Sep 2024 10:42:47 -0700 Subject: [PATCH 008/110] update changelog again --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 302cb6e..28edf10 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,9 +5,9 @@ Date: ???? - Added driftwood for simpler and easier collection of wood and sap - Make seaweed float around - Allow inserters to pick up seaweed and fish + - Changed geothermal plant to a fixed recipe Bugfixes: - Re-added the geothermal plant animation - - Changed geothermal plant to a fixed recipe Alienlife: - Added a moss bootstrapping recipe - Added a sap bootstrapping recipe From e5526e31aebac35eaecf69d4d6e9d0dea3336ed0 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 18 Sep 2024 10:47:03 -0700 Subject: [PATCH 009/110] update changelog --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 28edf10..c1ce0a1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,7 +2,7 @@ Version: 2.0.4 Date: ???? Changes: - - Added driftwood for simpler and easier collection of wood and sap + - Added driftwood for simpler and easier collection of wood - Make seaweed float around - Allow inserters to pick up seaweed and fish - Changed geothermal plant to a fixed recipe From 9c8776f90b7db42f566be76421f8f6eaa88d37fb Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 23 Sep 2024 15:30:41 -0700 Subject: [PATCH 010/110] allow steampowered washers to be placed adjacent --- changelog.txt | 1 + prototypes/buildings/burner-washer.lua | 174 ++++++++++++++----------- 2 files changed, 102 insertions(+), 73 deletions(-) diff --git a/changelog.txt b/changelog.txt index c1ce0a1..732a42a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -8,6 +8,7 @@ Date: ???? - Changed geothermal plant to a fixed recipe Bugfixes: - Re-added the geothermal plant animation + - Allow steampowered washers to be placed adjacent Alienlife: - Added a moss bootstrapping recipe - Added a sap bootstrapping recipe diff --git a/prototypes/buildings/burner-washer.lua b/prototypes/buildings/burner-washer.lua index a483a27..832fefc 100644 --- a/prototypes/buildings/burner-washer.lua +++ b/prototypes/buildings/burner-washer.lua @@ -26,78 +26,106 @@ ITEM { stack_size = 10 } -ENTITY { - type = "assembling-machine", - name = "burner-washer", - icon = "__PyBlock__/graphics/icons/washer-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "burner-washer"}, - fast_replaceable_group = "washer", - max_health = 250, - corpse = "big-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-3.0, -3.0}, {3.0, 3.0}}, - selection_box = {{-3.1, -3.1}, {3.1, 3.1}}, - module_specification = { - module_slots = 0 - }, - allowed_effects = {"consumption", "speed", "pollution"}, - crafting_categories = {"washer"}, - crafting_speed = 0.5, - energy_source = - { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = - { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "input-output", position = {-3.5,0.5}}, - {type = "input-output", position = {3.5, 0.5} } - }, - filter = "steam", - production_type = "input-output", - }, - scale_fluid_usage = true, - }, - energy_usage = "100kW", - animation = { - filename = "__pycoalprocessinggraphics__/graphics/entity/washer/washer.png", - width = 204, - height = 204, - frame_count = 80, - line_length = 10, - animation_speed = 0.9, - shift = {0.17, -0.17} - }, - fluid_boxes = { - { - production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), - pipe_covers = DATA.Pipes.covers(true, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {0.5, 3.5}}} - }, - { - production_type = "output", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), - base_level = 1, - pipe_connections = {{position = {0.5, -3.5}}} - }, - off_when_no_fluid_recipe = true +burner_washer = table.deepcopy(data.raw["assembling-machine"].washer) + +burner_washer.name = "burner-washer" +burner_washer.icon = "__PyBlock__/graphics/icons/washer-mk00.png" +burner_washer.minable = {mining_time = 1, result = "burner-washer"} +burner_washer.module_specification = { module_slots = 0 } +burner_washer.crafting_speed = 0.5 +burner_washer.energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + { type = "input-output", position = {-3.5, 0.5} }, + { type = "input-output", position = {3.5, 0.5} } }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pycoalprocessinggraphics__/sounds/washer.ogg", volume = 1.8}, - idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/washer.ogg", volume = 1.5}, - apparent_volume = 1.8 - } + filter = "steam", + production_type = "input-output" + }, + scale_fluid_usage = true } +burner_washer.energy_usage = "100kW" +data.raw["assembling-machine"]["burner-washer"] = burner_washer + +-- ENTITY { +-- type = "assembling-machine", +-- name = "burner-washer", +-- icon = "__PyBlock__/graphics/icons/washer-mk00.png", +-- icon_size = 64, +-- flags = {"placeable-neutral", "player-creation"}, +-- minable = {mining_time = 1, result = "burner-washer"}, +-- fast_replaceable_group = "washer", +-- max_health = 250, +-- corpse = "big-remnants", +-- dying_explosion = "medium-explosion", +-- collision_box = {{-3.0, -3.0}, {3.0, 3.0}}, +-- selection_box = {{-3.1, -3.1}, {3.1, 3.1}}, +-- module_specification = { +-- module_slots = 0 +-- }, +-- allowed_effects = {"consumption", "speed", "pollution"}, +-- crafting_categories = {"washer"}, +-- crafting_speed = 0.5, +-- energy_source = +-- { +-- type = "fluid", +-- effectivity = 1, +-- emissions = 1, +-- fluid_box = +-- { +-- base_area = 1, +-- height = 2, +-- base_level = -1, +-- pipe_covers = pipecoverspictures(), +-- pipe_connections = +-- { +-- {type = "input-output", position = {-3.5,0.5}}, +-- {type = "input-output", position = {3.5, 0.5} } +-- }, +-- filter = "steam", +-- production_type = "input-output", +-- }, +-- scale_fluid_usage = true, +-- }, +-- energy_usage = "100kW", +-- animation = { +-- filename = "__pycoalprocessinggraphics__/graphics/entity/washer/washer.png", +-- width = 204, +-- height = 204, +-- frame_count = 80, +-- line_length = 10, +-- animation_speed = 0.9, +-- shift = {0.17, -0.17} +-- }, +-- fluid_boxes = { +-- { +-- production_type = "input", +-- pipe_picture = DATA.Pipes.pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), +-- pipe_covers = DATA.Pipes.covers(true, true, true, true), +-- base_area = 10, +-- base_level = -1, +-- pipe_connections = {{type = "input", position = {0.5, 3.5}}} +-- }, +-- { +-- production_type = "output", +-- pipe_covers = DATA.Pipes.covers(true, true, true, true), +-- pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), +-- base_level = 1, +-- pipe_connections = {{position = {0.5, -3.5}}} +-- }, +-- off_when_no_fluid_recipe = true +-- }, +-- vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, +-- working_sound = { +-- sound = {filename = "__pycoalprocessinggraphics__/sounds/washer.ogg", volume = 1.8}, +-- idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/washer.ogg", volume = 1.5}, +-- apparent_volume = 1.8 +-- } +-- } From c19d60452fb78a7d5e4ab473d7efc44900d99c04 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 23 Sep 2024 16:11:37 -0700 Subject: [PATCH 011/110] re-added power to faw plant and spore collector --- changelog.txt | 3 +++ prototypes/updates/pyalienlife-updates.lua | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/changelog.txt b/changelog.txt index 732a42a..266594c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -15,6 +15,9 @@ Date: ???? Fish: - Added phytoplankton back to fish egg mk01 recipe - Added biomass back to fish mk01 recipe + Fawogae: + - Re-added power cost to fawogae plantation and spore collector, but it is less than half of the normal amount + - --------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index d1afce8..e270173 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -1,3 +1,5 @@ +-- fawogae for iron +-- reduce cost of buildings RECIPE("spore-collector-mk01"):remove_ingredient("gasifier"):remove_ingredient("electronic-circuit"):remove_ingredient("steel-plate"):remove_ingredient("intermetallics"):set_fields{enabled = true}:remove_unlock("mycology-mk01") RECIPE("fawogae-plantation-mk01"):remove_ingredient("electronic-circuit"):remove_ingredient("tinned-cable"):remove_ingredient("intermetallics"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):remove_ingredient("wood"):add_ingredient({type= "item", name = "wood", amount = 10}):remove_ingredient("iron-plate"):add_ingredient({type= "item", name = "iron-plate", amount = 5}):remove_ingredient("pipe"):add_ingredient({type= "item", name = "pipe", amount = 2}):add_ingredient({type= "item", name = "copper-plate", amount = 4}) @@ -6,6 +8,7 @@ RECIPE("fawogae-spore"):set_fields{enabled = true}:remove_unlock("fawogae-mk01") RECIPE("fawogae-1"):set_fields{enabled = true}:remove_unlock("fawogae-mk01") +-- early fawogae recipe RECIPE { type = "recipe", name = "fawogae-start", @@ -30,16 +33,19 @@ RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("navens") RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-decohesion") -data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_source = {type = "void"} +-- reduce power cost +data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "330kW" + +data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "72kW" + +-- fawogae to raw coal +RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"} -data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = {type = "void"} RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) -RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"} - RECIPE("botanical-nursery"):remove_ingredient("fluid-drill-mk01") RECIPE("moss-farm-mk01"):remove_ingredient("aluminium-plate") @@ -232,4 +238,4 @@ RECIPE("phadai-pup-1"):remove_ingredient("bedding") RECIPE("phadai-pup-2"):remove_ingredient("bedding") -RECIPE("carapace-to-re"):remove_unlock("molecular-decohesion-mk03"):add_unlock("rare-earth-tech") +RECIPE("carapace-to-re"):remove_unlock("molecular-decohesion-mk03"):add_unlock("rare-earth-tech") \ No newline at end of file From 52f1085250b43f880733559cf1b85316332cc143 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 23 Sep 2024 16:12:26 -0700 Subject: [PATCH 012/110] add power draw to faw plantation and spore collector --- changelog.txt | 1 - prototypes/updates/pyalienlife-updates.lua | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/changelog.txt b/changelog.txt index 266594c..70af868 100644 --- a/changelog.txt +++ b/changelog.txt @@ -17,7 +17,6 @@ Date: ???? - Added biomass back to fish mk01 recipe Fawogae: - Re-added power cost to fawogae plantation and spore collector, but it is less than half of the normal amount - - --------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index e270173..3e2c8ba 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -34,14 +34,13 @@ RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("navens") RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-decohesion") -- reduce power cost -data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "330kW" +data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "60kW" -data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "72kW" +data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" -- fawogae to raw coal RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"} - RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) From bb6fb8d592d4f6fbce38f3bfbfd4f60a5bd1ada7 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 00:01:05 -0700 Subject: [PATCH 013/110] make fawogae power a more viable option for early game --- prototypes/updates/pyalienlife-updates.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 3e2c8ba..c52a2ed 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -34,12 +34,12 @@ RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("navens") RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-decohesion") -- reduce power cost -data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "60kW" +data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "30kW" data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" -- fawogae to raw coal -RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"} +RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:remove_ingredient("fawogae"):add_ingredient({name = "fawogae", amount = 3}):set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") From dc140244cd2d933261464cf164d6c8cd36dd5788 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 00:07:21 -0700 Subject: [PATCH 014/110] formatting, re-enable native flora in automation science pack --- prototypes/updates/pyalienlife-updates.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index c52a2ed..64064e8 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -41,13 +41,18 @@ data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" -- fawogae to raw coal RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:remove_ingredient("fawogae"):add_ingredient({name = "fawogae", amount = 3}):set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} +-- seaweed RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") -RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) +-- auto science +-- RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) +-- botanical nursery RECIPE("botanical-nursery"):remove_ingredient("fluid-drill-mk01") +-- moss farm RECIPE("moss-farm-mk01"):remove_ingredient("aluminium-plate") + TECHNOLOGY("moss-mk01"):remove_prereq("botany-mk01") --cadaveric for copper @@ -64,7 +69,6 @@ RECIPE("stone-wool"):remove_unlock("zipir"):add_unlock("cadaveric-arum") RECIPE("cadaveric-arum-mk01"):remove_ingredient("hydrocyclone-mk01"):remove_ingredient("electronic-circuit"):remove_ingredient("plastic-bar"):remove_ingredient("intermetallics"):remove_ingredient("steel-plate"):add_ingredient({name = "steel-plate", amount = 5}):add_ingredient({name = "pipe", amount = 4}):add_ingredient({name = "soil", amount = 20}):remove_ingredient("botanical-nursery") --move foodless auogs to auog zero - RECIPE("auog-paddock-mk01"):remove_unlock("auog"):add_unlock("auog-mk00"):remove_ingredient("intermetallics") RECIPE("auog"):remove_unlock("auog"):add_unlock("auog-mk00"):remove_ingredient("cdna") @@ -80,7 +84,6 @@ RECIPE("auog-maturing-1"):remove_unlock("auog"):add_unlock("auog-mk00") RECIPE("auog-pooping-1"):remove_unlock("auog"):add_unlock("auog-mk00") --move fawogae with manure up - TECHNOLOGY("fawogae-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} RECIPE("fawogae with manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae-mk01") @@ -88,7 +91,6 @@ RECIPE("fawogae with manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae- RECIPE("fungal-substrate"):remove_unlock("mycology-mk02"):add_unlock("fawogae-mk01") --moss to kerogen - RECIPE { type = "recipe", name = "mossogen", @@ -104,7 +106,6 @@ RECIPE { }:add_unlock("moss-mk01") --PY SCI 1 TWEAKS - RECIPE("biofactory-mk01"):remove_unlock("plastics"):add_unlock("biotech-mk01") RECIPE("flavonoids"):remove_unlock("yaedols"):add_unlock("biotech-mk01") From 4a42f41fbde7430fbb16a933c03c54eb35e022f5 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 18:00:22 -0700 Subject: [PATCH 015/110] update faw to coal recipe for new power options --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 70af868..ecaf586 100644 --- a/changelog.txt +++ b/changelog.txt @@ -17,6 +17,7 @@ Date: ???? - Added biomass back to fish mk01 recipe Fawogae: - Re-added power cost to fawogae plantation and spore collector, but it is less than half of the normal amount + - Increased productivity of fawogae -> coal from 2 to 3 -> 3 to 5 --------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 From a9253ad31f8f12f4543059ec5a5f3b2f3b5ea5aa Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 18:19:04 -0700 Subject: [PATCH 016/110] notes --- prototypes/updates/ddc-coal-updates.lua | 2 ++ prototypes/updates/pyfusionenergy-updates.lua | 2 ++ prototypes/updates/pyhightech-updates.lua | 2 ++ 3 files changed, 6 insertions(+) diff --git a/prototypes/updates/ddc-coal-updates.lua b/prototypes/updates/ddc-coal-updates.lua index b42c723..ebff1f3 100644 --- a/prototypes/updates/ddc-coal-updates.lua +++ b/prototypes/updates/ddc-coal-updates.lua @@ -1,3 +1,5 @@ +-- unused, any changes here will not affect the game + --update the ddc recipes to give flat iron oxide output amounts. no probability crap --[[ data.raw.recipe['coal-gas-from-wood'].results = { diff --git a/prototypes/updates/pyfusionenergy-updates.lua b/prototypes/updates/pyfusionenergy-updates.lua index 25a8fc2..8dd9a87 100644 --- a/prototypes/updates/pyfusionenergy-updates.lua +++ b/prototypes/updates/pyfusionenergy-updates.lua @@ -1 +1,3 @@ +-- unused, any changes here will not affect the game + RECIPE("automated-screener-mk01"):remove_unlock("copper-mk01"):add_unlock("glass"):remove_ingredient("electronic-circuit") \ No newline at end of file diff --git a/prototypes/updates/pyhightech-updates.lua b/prototypes/updates/pyhightech-updates.lua index e69de29..2bdd109 100644 --- a/prototypes/updates/pyhightech-updates.lua +++ b/prototypes/updates/pyhightech-updates.lua @@ -0,0 +1,2 @@ +-- unused, any changes here will not affect the game + From 78d5490fcd0110ba5075d08465e65db5126c2722 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 18:47:33 -0700 Subject: [PATCH 017/110] added cultivator mk1, a way to produce native flora --- changelog.txt | 4 + prototypes/buildings/cultivator-mk01.lua | 1080 ++++++++++++++++++++++ prototypes/recipe-categories.lua | 4 + prototypes/recipes/recipes.lua | 45 +- 4 files changed, 1132 insertions(+), 1 deletion(-) create mode 100644 prototypes/buildings/cultivator-mk01.lua diff --git a/changelog.txt b/changelog.txt index ecaf586..0779a59 100644 --- a/changelog.txt +++ b/changelog.txt @@ -9,6 +9,10 @@ Date: ???? Bugfixes: - Re-added the geothermal plant animation - Allow steampowered washers to be placed adjacent + Native Flora: + - Added cultivator, a copy of the collector with the express purpose of creating native flora from nothing + - Added recipe to get the first native flora + - Added recipe to duplicate native flora Alienlife: - Added a moss bootstrapping recipe - Added a sap bootstrapping recipe diff --git a/prototypes/buildings/cultivator-mk01.lua b/prototypes/buildings/cultivator-mk01.lua new file mode 100644 index 0000000..4d5be9f --- /dev/null +++ b/prototypes/buildings/cultivator-mk01.lua @@ -0,0 +1,1080 @@ +RECIPE { + type = "recipe", + name = "cultivator-mk01", + energy_required = 0.5, + enabled = true, + ingredients = { + {type = "item", name = "burner-mining-drill", amount = 2}, + {type = "item", name = "iron-gear-wheel", amount = 10}, + {type = "item", name = "iron-plate", amount = 20}, + {type = "item", name = "steam-engine", amount = 1} + }, + results = { + {"cultivator-mk01", 1} + } +} + +ITEM { + type = "item", + name = "cultivator-mk01", + icons = { + { + icon = "__pyalienlifegraphics__/graphics/icons/collector.png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {10, -10}, + scale = 0.5 + } + }, + flags = {}, + subgroup = "py-alienlife-buildings-mk01", + order = "x", + place_result = "cultivator-mk01", + stack_size = 10 +} + +ENTITY { + type = "assembling-machine", + name = "cultivator-mk01", + icons = { + { + icon = "__pyalienlifegraphics__/graphics/icons/collector.png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {8, -8}, + scale = 0.5 + } + }, + icon_size = 64, + crafting_speed = 1, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "cultivator-mk01"}, + max_health = 200, + crafting_categories = {"cultivation"}, + corpse = "big-remnants", + dying_explosion = "big-explosion", + collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + match_animation_speed_to_activity = false, + fluid_boxes = { + { + production_type = "input", + -- pipe_picture = { + -- north = { + -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height} + -- }, + -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right, + -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down, + -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left + -- }, + pipe_covers = DATA.Pipes.covers(true, true, true, true), + base_area = 10, + base_level = -1, + pipe_connections = { + { position = {-4, 0}, type = 'input' }, + { position = {0, 4}, type = 'input' }, + { position = {4, 0}, type = 'input' }, + { position = {0, -4}, type = 'input' }, + }, + }, + -- { + -- production_type = "output", + -- pipe_covers = DATA.Pipes.covers(true, true, true, true), + -- pipe_picture = DATA.Pipes.pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), + -- base_level = 1, + -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, + -- }, + }, + module_specification = { + module_slots = 1 + }, + allowed_effects = {"consumption", "speed"}, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = 1, + }, + energy_usage = "80kW", + collision_mask = {"item-layer", "object-layer", "water-tile"}, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, + idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, + apparent_volume = 2.5 + }, + animation = { + north = { + layers = { + { + -- count: 0, variation: 60, richness: 1 + -- max_x = 3811 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -112), + position = {3840, 800} + }, + { + -- count: 1, variation: 22, richness: 1 + -- max_x = 1411 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -112), + position = {1408, 800} + }, + { + -- count: 2, variation: 47, richness: 1 + -- max_x = 3043 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -112), + position = {3008, 800} + }, + { + -- count: 3, variation: 14, richness: 1 + -- max_x = 963 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -112), + position = {896, 800} + }, + { + -- count: 4, variation: 56, richness: 1 + -- max_x = 3683 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -112), + position = {3584, 800} + }, + { + -- count: 5, variation: 41, richness: 1 + -- max_x = 2755 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -112), + position = {2624, 800} + }, + { + -- count: 6, variation: 21, richness: 1 + -- max_x = 1507 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -112), + position = {1344, 800} + }, + { + -- count: 7, variation: 24, richness: 1 + -- max_x = 1507 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -80), + position = {1536, 800} + }, + { + -- count: 8, variation: 46, richness: 3 + -- max_x = 2947 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -80), + position = {2944, 640} + }, + { + -- count: 9, variation: 24, richness: 3 + -- max_x = 1571 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -80), + position = {1536, 640} + }, + { + -- count: 10, variation: 42, richness: 4 + -- max_x = 2755 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -80), + position = {2688, 560} + }, + { + -- count: 11, variation: 14, richness: 3 + -- max_x = 995 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -80), + position = {896, 640} + }, + { + -- count: 12, variation: 38, richness: 4 + -- max_x = 2563 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -80), + position = {2432, 560} + }, + { + -- count: 13, variation: 4, richness: 1 + -- max_x = 419 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -80), + position = {256, 800} + }, + { + -- count: 14, variation: 35, richness: 1 + -- max_x = 2211 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -48), + position = {2240, 800} + }, + { + -- count: 15, variation: 59, richness: 3 + -- max_x = 3779 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -48), + position = {3776, 640} + }, + { + -- count: 16, variation: 22, richness: 6 + -- max_x = 1443 max_y = 432 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -48), + position = {1408, 400} + }, + { + -- count: 17, variation: 25, richness: 5 + -- max_x = 1667 max_y = 512 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -48), + position = {1600, 480} + }, + { + -- count: 18, variation: 18, richness: 7 + -- max_x = 1251 max_y = 352 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -48), + position = {1152, 320} + }, + { + -- count: 19, variation: 0, richness: 3 + -- max_x = 131 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -48), + position = {0, 640} + }, + { + -- count: 20, variation: 51, richness: 1 + -- max_x = 3427 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -48), + position = {3264, 800} + }, + { + -- count: 21, variation: 10, richness: 2 + -- max_x = 611 max_y = 784 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -16), + position = {640, 720} + }, + { + -- count: 22, variation: 26, richness: 4 + -- max_x = 1667 max_y = 624 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -16), + position = {1664, 560} + }, + { + -- count: 23, variation: 52, richness: 7 + -- max_x = 3363 max_y = 384 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -16), + position = {3328, 320} + }, + { + -- count: 24, variation: 58, richness: 5 + -- max_x = 3779 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -16), + position = {3712, 480} + }, + { + -- count: 25, variation: 62, richness: 6 + -- max_x = 4067 max_y = 464 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -16), + position = {3968, 400} + }, + { + -- count: 26, variation: 46, richness: 5 + -- max_x = 3075 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -16), + position = {2944, 480} + }, + { + -- count: 27, variation: 23, richness: 1 + -- max_x = 1635 max_y = 864 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -16), + position = {1472, 800} + }, + { + -- count: 28, variation: 14, richness: 2 + -- max_x = 867 max_y = 816 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 16), + position = {896, 720} + }, + { + -- count: 29, variation: 9, richness: 3 + -- max_x = 579 max_y = 736 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 16), + position = {576, 640} + }, + { + -- count: 30, variation: 60, richness: 5 + -- max_x = 3875 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 16), + position = {3840, 480} + }, + { + -- count: 31, variation: 45, richness: 5 + -- max_x = 2947 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 16), + position = {2880, 480} + }, + { + -- count: 32, variation: 52, richness: 6 + -- max_x = 3427 max_y = 496 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 16), + position = {3328, 400} + }, + { + -- count: 33, variation: 56, richness: 4 + -- max_x = 3715 max_y = 656 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 16), + position = {3584, 560} + }, + { + -- count: 34, variation: 54, richness: 1 + -- max_x = 3619 max_y = 896 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 16), + position = {3456, 800} + }, + { + -- count: 35, variation: 34, richness: 1 + -- max_x = 2147 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 48), + position = {2176, 800} + }, + { + -- count: 36, variation: 16, richness: 3 + -- max_x = 1027 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 48), + position = {1024, 640} + }, + { + -- count: 37, variation: 29, richness: 3 + -- max_x = 1891 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 48), + position = {1856, 640} + }, + { + -- count: 38, variation: 39, richness: 3 + -- max_x = 2563 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 48), + position = {2496, 640} + }, + { + -- count: 39, variation: 52, richness: 5 + -- max_x = 3427 max_y = 608 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 48), + position = {3328, 480} + }, + { + -- count: 40, variation: 43, richness: 4 + -- max_x = 2883 max_y = 688 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 48), + position = {2752, 560} + }, + { + -- count: 41, variation: 12, richness: 1 + -- max_x = 931 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 48), + position = {768, 800} + }, + { + -- count: 42, variation: 36, richness: 1 + -- max_x = 2275 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 80), + position = {2304, 800} + }, + { + -- count: 43, variation: 21, richness: 1 + -- max_x = 1347 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 80), + position = {1344, 800} + }, + { + -- count: 44, variation: 33, richness: 1 + -- max_x = 2147 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 80), + position = {2112, 800} + }, + { + -- count: 45, variation: 38, richness: 1 + -- max_x = 2499 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 80), + position = {2432, 800} + }, + { + -- count: 46, variation: 25, richness: 1 + -- max_x = 1699 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 80), + position = {1600, 800} + }, + { + -- count: 47, variation: 2, richness: 1 + -- max_x = 259 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 80), + position = {128, 800} + }, + { + -- count: 48, variation: 56, richness: 1 + -- max_x = 3747 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 80), + position = {3584, 800} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(128, 0) + }, +--MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(96, 0) + }, + } + } + }, + idle_animation = { + north = { + layers = { + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(128, 0) + }, +--MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + shift = util.by_pixel(96, 0) + }, + } + } + }, +} \ No newline at end of file diff --git a/prototypes/recipe-categories.lua b/prototypes/recipe-categories.lua index 4213f7c..ace3715 100644 --- a/prototypes/recipe-categories.lua +++ b/prototypes/recipe-categories.lua @@ -14,4 +14,8 @@ data:extend type = "recipe-category", name = "geowater", }, + { + type = "recipe-category", + name = "cultivation" + }, } diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index 2acb879..004c843 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -1,4 +1,5 @@ +-- soil to stone RECIPE { type = "recipe", name = "soil-to-stone", @@ -22,6 +23,7 @@ RECIPE { order = "c" } +-- early quartz RECIPE { type = "recipe", name = "sand-quartz-sifting", @@ -43,7 +45,7 @@ RECIPE { energy_required = 4 }:add_unlock("glass") - +-- biosample recipe RECIPE { type = "recipe", name = "biosample", @@ -68,6 +70,7 @@ RECIPE { order = "a" }:add_unlock('xenobiology') +-- geothermal water fake mining recipe RECIPE { type = "recipe", name = "geothermal-water", @@ -89,6 +92,7 @@ RECIPE { type = "recipe", name = "moss-cultivation", category = "nursery", + subgroup = "py-alienlife-moss", enabled = true, energy_required = 160, ingredients = { @@ -108,6 +112,7 @@ RECIPE { type = "recipe", name = "sap-cultivation", category = "fwf", + subgroup = "py-alienlife-sap", enabled = true, energy_required = 160, ingredients = { @@ -120,6 +125,44 @@ RECIPE { main_product = "saps" } +-- native flora recipes +RECIPE { + type = "recipe", + name = "synthesize-flora", + category = "cultivation", + subgroup = "py-alienlife-genetics", + enabled = true, + energy_required = 12, + ingredients = { + { type = "item", name = "soil", amount = 8 }, + { type = "fluid", name = "water", amount = 500 }, + { type = "item", name = "seaweed", amount = 4 }, + { type = "item", name = "fawogae", amount = 4 } + }, + results = { + { type = "item", name = "native-flora", amount = 1, probability = 0.02 } + }, +} + +RECIPE { + type = "recipe", + name = "flora-cultivation", + category = "cultivation", + subgroup = "py-alienlife-genetics", + enabled = true, + energy_required = 15, + ingredients = { + { type = "item", name = "soil", amount = 20 }, + { type = "fluid", name = "water", amount = 1800 }, + { type = "item", name = "native-flora", amount = 5 }, + }, + results = { + { type = "item", name = "native-flora", amount = 20 }, + { type = "item", name = "soil", amount_min = 0, amount_max = 8, probability = 0.5 } + }, + main_product = "native-flora" +} + --UNUSED --[[ From 1f8e79105d868561fe6c566f023da4b77894d470 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 20:42:59 -0700 Subject: [PATCH 018/110] actually enable the cultivator lol --- data.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/data.lua b/data.lua index 5326fd1..b361a3b 100644 --- a/data.lua +++ b/data.lua @@ -12,6 +12,7 @@ require('prototypes/buildings/basic-ddc') require('prototypes/buildings/burner-washer') require('prototypes/buildings/automated-screener-mk00') require("prototypes/buildings/geothermal-plant-mk01") +require("prototypes/buildings/cultivator-mk01") --UNUSED --require('prototypes/buildings/burner-wpu') From 5e54f9faca0c31702145f6c0cfaa0e54e4534a88 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 21:43:30 -0700 Subject: [PATCH 019/110] bootstrapping sap produces some wood --- prototypes/recipes/recipes.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index 004c843..cf438f2 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -120,7 +120,8 @@ RECIPE { { type = "fluid", name = "water", amount = 800 }, }, results = { - { type = "item", name = "saps", amount = 1, probability = 0.1 } + { type = "item", name = "saps", amount = 1, probability = 0.1 }, + { type = "item", name = "log", amount = 8 } }, main_product = "saps" } From ae55d28495706ebc2657d4d1da2ae1fd80e24964 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 22:08:59 -0700 Subject: [PATCH 020/110] add fish recipe that does not take lamps --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/changelog.txt b/changelog.txt index 0779a59..eac09dc 100644 --- a/changelog.txt +++ b/changelog.txt @@ -19,6 +19,7 @@ Date: ???? Fish: - Added phytoplankton back to fish egg mk01 recipe - Added biomass back to fish mk01 recipe + - Added fish breeding recipe that does not take lamps, but is slower Fawogae: - Re-added power cost to fawogae plantation and spore collector, but it is less than half of the normal amount - Increased productivity of fawogae -> coal from 2 to 3 -> 3 to 5 diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 64064e8..bd9df01 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -170,6 +170,17 @@ RECIPE("fish-to-tin"):remove_unlock("molecular-decohesion-mk02"):add_unlock("fis RECIPE("fish-food-01"):remove_unlock("fish-mk01"):add_unlock("fish-mk02") +local breed_fish = table.deepcopy(data.raw["recipe"]["breed-fish-1"]) +breed_fish.name = "breed-fish-simple" +breed_fish.energy_required = 270 +breed_fish.results = { + {type = "item", name = "fish", amount = 10}, + {type = "fluid", name = "waste-water", amount = 100} +} +data.raw.recipe["breed-fish-simple"] = breed_fish + +RECIPE("breed-fish-simple"):remove_ingredient("small-lamp") + -- RECIPE("breed-fish-egg-1"):remove_ingredient("phytoplankton"):add_ingredient({type = "item", name = "seaweed", amount = 2}) -- RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen") From cf3f052592763856d064485517342a76382b5d79 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 22:14:46 -0700 Subject: [PATCH 021/110] yaedols are more difficult to set up --- changelog.txt | 5 ++++ prototypes/recipes/recipes.lua | 46 +++++++++++++++++----------------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/changelog.txt b/changelog.txt index eac09dc..c04b517 100644 --- a/changelog.txt +++ b/changelog.txt @@ -6,6 +6,7 @@ Date: ???? - Make seaweed float around - Allow inserters to pick up seaweed and fish - Changed geothermal plant to a fixed recipe + - Removed biosample from seaweed recipe Bugfixes: - Re-added the geothermal plant animation - Allow steampowered washers to be placed adjacent @@ -23,6 +24,10 @@ Date: ???? Fawogae: - Re-added power cost to fawogae plantation and spore collector, but it is less than half of the normal amount - Increased productivity of fawogae -> coal from 2 to 3 -> 3 to 5 + - Moved fawogae codex from navens mk01 to fawogae mk01 for yaedols + Yaedols: + - Added storage tank and duralumin to yaedols culture mk01 + - Yaedols sample now takes some ingredients from the normal recipe --------------------------------------------------------------------------------------------------- Version: 2.0.3 Date: 2023-9-15 diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index cf438f2..6f41d3d 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -46,29 +46,29 @@ RECIPE { }:add_unlock("glass") -- biosample recipe -RECIPE { - type = "recipe", - name = "biosample", - category = "biofactory", - enabled = false, - energy_required = 5, - ingredients = { - { type = "item", name = "bio-container", amount = 10 }, - { type = "item", name = "seaweed", amount = 4 }, - { type = "item", name = "moss", amount = 2 }, - --{ type = 'fluid', name = 'waste-water', amount = 20 }, - --{ type = 'fluid', name = 'phytoplankton', amount = 25 }, - --{ type = 'fluid', name = 'zogna-bacteria', amount = 5 }, - }, - results = { - { type = "item", name = "bio-sample", amount = 10 }, - }, - main_product = "bio-sample", - icon = "__pyalienlifegraphics__/graphics/icons/biosample.png", - icon_size = 64, - subgroup = "py-alienlife-genetics", - order = "a" -}:add_unlock('xenobiology') +-- RECIPE { +-- type = "recipe", +-- name = "biosample", +-- category = "biofactory", +-- enabled = false, +-- energy_required = 5, +-- ingredients = { +-- { type = "item", name = "bio-container", amount = 10 }, +-- { type = "item", name = "seaweed", amount = 4 }, +-- { type = "item", name = "moss", amount = 2 }, +-- --{ type = 'fluid', name = 'waste-water', amount = 20 }, +-- --{ type = 'fluid', name = 'phytoplankton', amount = 25 }, +-- --{ type = 'fluid', name = 'zogna-bacteria', amount = 5 }, +-- }, +-- results = { +-- { type = "item", name = "bio-sample", amount = 10 }, +-- }, +-- main_product = "bio-sample", +-- icon = "__pyalienlifegraphics__/graphics/icons/biosample.png", +-- icon_size = 64, +-- subgroup = "py-alienlife-genetics", +-- order = "a" +-- }:add_unlock('xenobiology') -- geothermal water fake mining recipe RECIPE { From 4dbadfe48b55d748885f462a9e0598eadd2ccd1e Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 22:18:25 -0700 Subject: [PATCH 022/110] yaedol sample now takes some ingredients from the normal recipe --- prototypes/updates/pyalienlife-updates.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index bd9df01..d6fd063 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -27,9 +27,9 @@ RECIPE { --remove unused materials from fawogae mk01 RECIPE("fawogae-sample"):remove_unlock("fawogae-mk01")--:add_unlock("navens") -RECIPE("fawogae-codex"):remove_unlock("fawogae-mk01"):add_unlock("navens") +-- RECIPE("fawogae-codex"):remove_unlock("fawogae-mk01"):add_unlock("navens") -RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("navens") +-- RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("navens") RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-decohesion") @@ -119,7 +119,7 @@ TECHNOLOGY("compost"):remove_pack("py-science-pack-1"):set_fields{prerequisites RECIPE("compost-plant-mk01"):remove_ingredient("duralumin") -RECIPE("yaedols-culture-mk01"):remove_ingredient("intermetallics"):remove_ingredient("titanium-plate"):remove_ingredient("storage-tank"):remove_ingredient("duralumin") +RECIPE("yaedols-culture-mk01"):remove_ingredient("intermetallics"):remove_ingredient("titanium-plate") RECIPE("fungal-substrate"):remove_unlock("mycology-mk02"):add_unlock("yaedols") @@ -127,7 +127,7 @@ RECIPE("yaedols-codex"):remove_ingredient("red-wire") RECIPE("smelter-mk01"):remove_ingredient("titanium-plate") -RECIPE("yaedols-sample"):set_fields{ingredients = {}} +RECIPE("yaedols-sample"):remove_ingredient("cdna"):remove_ingredient("alien-sample01"):remove_ingredient("bio-sample"):remove_ingredient("moss-gen") RECIPE("yaedols-1"):remove_ingredient("fertilizer") From 18e242fafc139387a27be85db53204080c285d93 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 22:22:31 -0700 Subject: [PATCH 023/110] first vrauks now require native flora --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index c04b517..34a081f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -17,6 +17,7 @@ Date: ???? Alienlife: - Added a moss bootstrapping recipe - Added a sap bootstrapping recipe + - Reintroduce native flora to vrauk bootstrapping recipe Fish: - Added phytoplankton back to fish egg mk01 recipe - Added biomass back to fish mk01 recipe diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index d6fd063..ca2a71f 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -206,7 +206,7 @@ RECIPE("kicalk-zn"):remove_unlock("phytomining-mk02"):add_unlock("phytomining") RECIPE("zn-biomass-extraction"):remove_ingredient("steam"):add_ingredient({type = 'fluid', name = 'steam', amount = 100, minimum_temperature = 250}):remove_unlock("phytomining-mk02"):add_unlock("phytomining") --Vrauks -RECIPE("vrauks"):remove_ingredient("native-flora") +-- RECIPE("vrauks"):remove_ingredient("native-flora") --moly ore TECHNOLOGY("molecular-decohesion-mk02"):remove_pack("py-science-pack-2") From 5a6b2994d5231c400c031b6b57629c787e8b8019 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 22:26:47 -0700 Subject: [PATCH 024/110] removed fake bioreserve recipe --- changelog.txt | 1 + data-updates.lua | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/changelog.txt b/changelog.txt index 34a081f..92253e2 100644 --- a/changelog.txt +++ b/changelog.txt @@ -7,6 +7,7 @@ Date: ???? - Allow inserters to pick up seaweed and fish - Changed geothermal plant to a fixed recipe - Removed biosample from seaweed recipe + - Removed fake bioreserve recipe Bugfixes: - Re-added the geothermal plant animation - Allow steampowered washers to be placed adjacent diff --git a/data-updates.lua b/data-updates.lua index 2a2f217..c0a4c38 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -159,17 +159,17 @@ RECIPE("soot-separation"):set_fields{unlock_results = true} --fake recipes to make ores from nothing to fake tech tree with pypp -RECIPE { - type = "recipe", - name = "fake-bioreserve-ore", - category = "crafting", - enabled = false, - energy_required = 1, - ingredients = {}, - results = { - {type = "item", name = "native-flora", amount = 1} - } -} +-- RECIPE { +-- type = "recipe", +-- name = "fake-bioreserve-ore", +-- category = "crafting", +-- enabled = false, +-- energy_required = 1, +-- ingredients = {}, +-- results = { +-- {type = "item", name = "native-flora", amount = 1} +-- } +-- } --[[ RECIPE { From c6695b7159b69dfad8c41723db4822ae77fddba0 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 24 Sep 2024 22:42:11 -0700 Subject: [PATCH 025/110] undo bioreserve removal cause it breaks pypp for now --- data-updates.lua | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/data-updates.lua b/data-updates.lua index c0a4c38..2a2f217 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -159,17 +159,17 @@ RECIPE("soot-separation"):set_fields{unlock_results = true} --fake recipes to make ores from nothing to fake tech tree with pypp --- RECIPE { --- type = "recipe", --- name = "fake-bioreserve-ore", --- category = "crafting", --- enabled = false, --- energy_required = 1, --- ingredients = {}, --- results = { --- {type = "item", name = "native-flora", amount = 1} --- } --- } +RECIPE { + type = "recipe", + name = "fake-bioreserve-ore", + category = "crafting", + enabled = false, + energy_required = 1, + ingredients = {}, + results = { + {type = "item", name = "native-flora", amount = 1} + } +} --[[ RECIPE { From c1dcdbf3018ce79ceaa2c836d2a91050d3b9960b Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Thu, 26 Sep 2024 11:44:43 -0700 Subject: [PATCH 026/110] general changes --- changelog.txt | 1 + data-updates.lua | 8 ++++++ graphics/icons/manual-gear.png | Bin 0 -> 1166 bytes prototypes/recipes/recipes.lua | 29 +++------------------ prototypes/updates/pyalienlife-updates.lua | 2 ++ 5 files changed, 14 insertions(+), 26 deletions(-) create mode 100644 graphics/icons/manual-gear.png diff --git a/changelog.txt b/changelog.txt index 92253e2..6d0ca02 100644 --- a/changelog.txt +++ b/changelog.txt @@ -11,6 +11,7 @@ Date: ???? Bugfixes: - Re-added the geothermal plant animation - Allow steampowered washers to be placed adjacent + - Shift xenobiology and biotech recipes around for continuity and ordering Native Flora: - Added cultivator, a copy of the collector with the express purpose of creating native flora from nothing - Added recipe to get the first native flora diff --git a/data-updates.lua b/data-updates.lua index 2a2f217..4596656 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -157,6 +157,14 @@ table.insert(RECIPE("soot-separation").results, {type = "item", name = "ore-nick RECIPE("soot-separation"):set_fields{unlock_results = true} +RECIPE("titanium-plate-1"):remove_unlock("alloys-mk01"):add_unlock("yaedols") + +RECIPE("earth-generic-sample"):remove_unlock("xenobiology"):add_unlock("biotech-mk01") + +RECIPE("data-array"):remove_ingredient("titanium-plate") + +TECHNOLOGY("xenobiology"):set_fields{prerequisites = {"yaedols"}} + --fake recipes to make ores from nothing to fake tech tree with pypp RECIPE { diff --git a/graphics/icons/manual-gear.png b/graphics/icons/manual-gear.png new file mode 100644 index 0000000000000000000000000000000000000000..10c48c3fa3563eb8780e6d63c610119dbad21846 GIT binary patch literal 1166 zcmV;91abR`P)EX>4Tx04R}tkv&MmKpe$iTcs*3igplj2vVKwq9Tr^ibb$c+6t{Ym|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfc5qU3krMxx6k5c1aNLh~_a1le0B@th6r(E&D5|Na z;xQqcTNV7T=*1ug5X6|s3@wpf%)oVg-NVDzy9m#6KlkSd%6WqU9)UQ@G~FcLAfDYc zHO~9QAyyJ);&b9joi0fH$aTr#H_k4=GxZDATpEOYyZOKQ|TPOhUXY@@uVCWX;TXTAA?c?+T$WT|yH^9Lm zFj1uJb(eSdboTb|nO1*4p1g9nm{NQ%00006VoOIv0Du610Dwd&lT82s010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=m`=KDF~N%dV>G}02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00L%7L_t(o!|j%_ZW=)lhQ9;aC`V8vS2o}xrNNfcqzg)6 zKR}3*Jj}d|5zY&^i0m$<6B>8MKq^ZSa3pPjH2+GY6AG6`%?%fq}-Vwuc(4`rgRQCfhnt+VWf#cq79X(zP}Ebp&*QzwW?N&tsqg zJONtLeUssrz!bPNvodf16oH|cjsMhvfg)`HFMuXc2Nu9vpaARxpEa)ouQl%i*&JBG z`A=XD#4_G+$NfA8j(|k-MDJy$AkFz)>sN|yoz#JMKo9t&ag@h_H0QC5A8UUmWCFAm zpym()xCP2U)68bTU{!ULGIAc|9ykYXv_4Vf!FWx%ai%=!0i9LVu?Yc`?Vj_Qj9&p) zX4X^AB*31dAr@K*(07Pt%7L~@t)4>WTn_Y|zAya)@ZLH675Jd@!#riU6of&>z)gtU zRm~5eXJ#>Q>b4f^A`ennqaP{RC1eZqkVO_<%&O{jhtt4Kz}l0x1I@!rCt<8 literal 0 HcmV?d00001 diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index 6f41d3d..098299e 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -91,7 +91,7 @@ RECIPE { RECIPE { type = "recipe", name = "moss-cultivation", - category = "nursery", + category = "washer", subgroup = "py-alienlife-moss", enabled = true, energy_required = 160, @@ -105,7 +105,7 @@ RECIPE { { type = "item", name = "moss", amount = 1, probability = 0.08 }, }, main_product = "moss" -} +}:add_unlock("moss-mk01") -- bootstrapping wood to sap RECIPE { @@ -124,7 +124,7 @@ RECIPE { { type = "item", name = "log", amount = 8 } }, main_product = "saps" -} +}:add_unlock("wood-processing") -- native flora recipes RECIPE { @@ -290,29 +290,6 @@ RECIPE { ]]-- --nickel from clay ---[[ -RECIPE { - type = "recipe", - name = "nickel-alum-from-clay", - category = "hpf", - enabled = true, - energy_required = 6, - ingredients = - { - { type = "item", name = "clay", amount = 6 }, - { type = "fluid", name = "sulfuric-acid", amount = 20 } - }, - results = - { - { type = "item", name = "ore-nickel", amount = 2 }, - { type = "item", name = "ore-aluminium", amount = 1, probability = 0.2 } - }, - main_product = "ore-nickel", - subgroup = "py-quenching-ores", - order = "tailings-e" -} -]] - --new fluids for ree from ash --[[ RECIPE { diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index ca2a71f..d3ebeb7 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -181,6 +181,8 @@ data.raw.recipe["breed-fish-simple"] = breed_fish RECIPE("breed-fish-simple"):remove_ingredient("small-lamp") +RECIPE("tin-plate-1"):add_unlock("fish-mk01") + -- RECIPE("breed-fish-egg-1"):remove_ingredient("phytoplankton"):add_ingredient({type = "item", name = "seaweed", amount = 2}) -- RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen") From bd8c886e0f241f96115c50198e408168c9212108 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Thu, 26 Sep 2024 11:50:01 -0700 Subject: [PATCH 027/110] info.json --- .gitignore | 1 + info.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..18f1e40 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +useful.dat diff --git a/info.json b/info.json index 43af99a..bcb945a 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "PyBlock", - "version": "2.0.3", + "version": "2.0.4", "factorio_version": "1.1", "title": "PyBlock", "author": "KingArthur", From a93a7689fc56fa8f9eb9e92f7b01e6ad217a9574 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 2 Oct 2024 18:47:41 -0700 Subject: [PATCH 028/110] rebuilt tech tree, moved phytomining --- .gitignore | 1 - ...industry+pypetroleumhandling+pyrawores.lua | 1181 +++++++++++++---- changelog.txt | 2 + data-updates.lua | 150 ++- prototypes/recipes/recipes.lua | 164 +-- prototypes/updates/pyalienlife-updates.lua | 122 +- 6 files changed, 1079 insertions(+), 541 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 18f1e40..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -useful.dat diff --git a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua index c9ec889..b960597 100644 --- a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua +++ b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua @@ -1,246 +1,945 @@  -science_pack_order("automation-science-pack","001-000028") -science_pack_order("logistic-science-pack","002-000065") -science_pack_order("military-science-pack","003-000112") -science_pack_order("chemical-science-pack","003-000112") -science_pack_order("utility-science-pack","005-000148") -science_pack_order("production-science-pack","004-000137") -science_pack_order("space-science-pack","006-000162") -fix_tech("physical-projectile-damage-1",{order="000007",prerequisites={"military"},unit={count=275,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("physical-projectile-damage-2",{order="000008",prerequisites={"physical-projectile-damage-1","logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("weapon-shooting-speed-1",{order="000007",prerequisites={"military"},unit={count=275,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("weapon-shooting-speed-2",{order="000008",prerequisites={"weapon-shooting-speed-1","logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("stronger-explosives-1",{order="000009",prerequisites={"military-2"},unit={count=130,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("physical-projectile-damage-3",{order="000010",prerequisites={"physical-projectile-damage-2","military-science-pack"},unit={count=40,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("physical-projectile-damage-4",{order="000011",prerequisites={"physical-projectile-damage-3"},unit={count=65,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("physical-projectile-damage-5",{order="000014",prerequisites={"physical-projectile-damage-4","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("physical-projectile-damage-6",{order="000022",prerequisites={"physical-projectile-damage-5","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("physical-projectile-damage-7",{order="000025",prerequisites={"physical-projectile-damage-6","space-science-pack"},unit={ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"}},time=1200}}) -fix_tech("stronger-explosives-2",{order="000010",prerequisites={"stronger-explosives-1","military-science-pack"},unit={count=40,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("stronger-explosives-3",{order="000014",prerequisites={"stronger-explosives-2","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("stronger-explosives-4",{order="000022",prerequisites={"stronger-explosives-3","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("stronger-explosives-5",{order="000023",prerequisites={"stronger-explosives-4"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("stronger-explosives-6",{order="000024",prerequisites={"stronger-explosives-5"},unit={count=1750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("stronger-explosives-7",{order="000025",prerequisites={"stronger-explosives-6","space-science-pack"},unit={ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"}},time=1200}}) -fix_tech("refined-flammables-1",{order="000011",prerequisites={"flamethrower"},unit={count=65,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("refined-flammables-2",{order="000012",prerequisites={"refined-flammables-1"},unit={count=110,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("refined-flammables-3",{order="000014",prerequisites={"refined-flammables-2","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("refined-flammables-4",{order="000022",prerequisites={"refined-flammables-3","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("refined-flammables-5",{order="000023",prerequisites={"refined-flammables-4"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("refined-flammables-6",{order="000024",prerequisites={"refined-flammables-5"},unit={count=1750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("refined-flammables-7",{order="000025",prerequisites={"refined-flammables-6","space-science-pack"},unit={ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"}},time=1200}}) -fix_tech("energy-weapons-damage-1",{order="000014",prerequisites={"military-science-pack","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("energy-weapons-damage-2",{order="000015",prerequisites={"energy-weapons-damage-1"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("energy-weapons-damage-3",{order="000016",prerequisites={"energy-weapons-damage-2"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("energy-weapons-damage-4",{order="000017",prerequisites={"energy-weapons-damage-3"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("energy-weapons-damage-5",{order="000022",prerequisites={"energy-weapons-damage-4","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("energy-weapons-damage-6",{order="000023",prerequisites={"energy-weapons-damage-5"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("energy-weapons-damage-7",{order="000025",prerequisites={"energy-weapons-damage-6","space-science-pack"},unit={ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"}},time=1200}}) -fix_tech("weapon-shooting-speed-3",{order="000010",prerequisites={"weapon-shooting-speed-2","military-science-pack"},unit={count=40,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("weapon-shooting-speed-4",{order="000011",prerequisites={"weapon-shooting-speed-3"},unit={count=65,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("weapon-shooting-speed-5",{order="000014",prerequisites={"weapon-shooting-speed-4","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("weapon-shooting-speed-6",{order="000022",prerequisites={"weapon-shooting-speed-5","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("laser-shooting-speed-1",{order="000014",prerequisites={"military-science-pack","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("laser-shooting-speed-2",{order="000015",prerequisites={"laser-shooting-speed-1"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("laser-shooting-speed-3",{order="000016",prerequisites={"laser-shooting-speed-2"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("laser-shooting-speed-4",{order="000017",prerequisites={"laser-shooting-speed-3"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("laser-shooting-speed-5",{order="000022",prerequisites={"laser-shooting-speed-4","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("laser-shooting-speed-6",{order="000023",prerequisites={"laser-shooting-speed-5"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("laser-shooting-speed-7",{order="000024",prerequisites={"laser-shooting-speed-6"},unit={count=1750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("artillery-shell-range-1",{order="000019",prerequisites={"artillery"},unit={count=4000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("artillery-shell-speed-1",{order="000019",prerequisites={"artillery"},unit={ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("follower-robot-count-1",{order="000011",prerequisites={"defender"},unit={count=65,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("follower-robot-count-2",{order="000012",prerequisites={"follower-robot-count-1"},unit={count=110,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("follower-robot-count-3",{order="000014",prerequisites={"follower-robot-count-2","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("follower-robot-count-4",{order="000015",prerequisites={"follower-robot-count-3"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("follower-robot-count-5",{order="000022",prerequisites={"follower-robot-count-4","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("follower-robot-count-6",{order="000023",prerequisites={"follower-robot-count-5"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("follower-robot-count-7",{order="000025",prerequisites={"follower-robot-count-6","space-science-pack"},unit={ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"}},time=1200}}) -fix_tech("stack-inserter",{order="000013",prerequisites={"logistics-2"},unit={count=1100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("inserter-capacity-bonus-1",{order="000014",prerequisites={"stack-inserter"},unit={count=1750,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("inserter-capacity-bonus-2",{order="000015",prerequisites={"inserter-capacity-bonus-1"},unit={count=3000,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("inserter-capacity-bonus-3",{order="000016",prerequisites={"inserter-capacity-bonus-2","chemical-science-pack"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("inserter-capacity-bonus-4",{order="000019",prerequisites={"inserter-capacity-bonus-3","production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("inserter-capacity-bonus-5",{order="000020",prerequisites={"inserter-capacity-bonus-4"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("inserter-capacity-bonus-6",{order="000021",prerequisites={"inserter-capacity-bonus-5"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("inserter-capacity-bonus-7",{order="000022",prerequisites={"inserter-capacity-bonus-6","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) +science_pack_order("automation-science-pack","001-000030") +science_pack_order("py-science-pack-1","002-000143") +science_pack_order("logistic-science-pack","003-000226") +science_pack_order("military-science-pack","004-000230") +science_pack_order("chemical-science-pack","005-000438") +science_pack_order("py-science-pack-2","004-000359") +science_pack_order("utility-science-pack","009-000617") +science_pack_order("production-science-pack","007-000544") +science_pack_order("py-science-pack-4","008-000592") +science_pack_order("py-science-pack-3","006-000496") +science_pack_order("space-science-pack","010-000650") +fix_tech("physical-projectile-damage-1",{order="000020",prerequisites={"military","py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("physical-projectile-damage-2",{order="000036",prerequisites={"physical-projectile-damage-1","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("weapon-shooting-speed-1",{order="000020",prerequisites={"military","py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("weapon-shooting-speed-2",{order="000036",prerequisites={"weapon-shooting-speed-1","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("stronger-explosives-1",{order="000036",prerequisites={"military-2","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("physical-projectile-damage-3",{order="000037",prerequisites={"physical-projectile-damage-2","military-science-pack"},unit={count=75,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("physical-projectile-damage-4",{order="000038",prerequisites={"physical-projectile-damage-3"},unit={count=80,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("physical-projectile-damage-5",{order="000068",prerequisites={"physical-projectile-damage-4","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("physical-projectile-damage-6",{order="000096",prerequisites={"physical-projectile-damage-5","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("physical-projectile-damage-7",{order="000100",prerequisites={"physical-projectile-damage-6","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("stronger-explosives-2",{order="000037",prerequisites={"stronger-explosives-1","military-science-pack"},unit={count=75,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("stronger-explosives-3",{order="000068",prerequisites={"stronger-explosives-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("stronger-explosives-4",{order="000096",prerequisites={"stronger-explosives-3","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("stronger-explosives-5",{order="000097",prerequisites={"stronger-explosives-4"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("stronger-explosives-6",{order="000098",prerequisites={"stronger-explosives-5"},unit={count=900,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("stronger-explosives-7",{order="000100",prerequisites={"stronger-explosives-6","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("refined-flammables-1",{order="000038",prerequisites={"flamethrower"},unit={count=80,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("refined-flammables-2",{order="000039",prerequisites={"refined-flammables-1"},unit={count=90,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("refined-flammables-3",{order="000068",prerequisites={"refined-flammables-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("refined-flammables-4",{order="000096",prerequisites={"refined-flammables-3","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("refined-flammables-5",{order="000097",prerequisites={"refined-flammables-4"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("refined-flammables-6",{order="000098",prerequisites={"refined-flammables-5"},unit={count=900,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("refined-flammables-7",{order="000100",prerequisites={"refined-flammables-6","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("energy-weapons-damage-1",{order="000068",prerequisites={"chemical-science-pack","military-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("energy-weapons-damage-2",{order="000069",prerequisites={"energy-weapons-damage-1"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("energy-weapons-damage-3",{order="000070",prerequisites={"energy-weapons-damage-2"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("energy-weapons-damage-4",{order="000071",prerequisites={"energy-weapons-damage-3"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("energy-weapons-damage-5",{order="000096",prerequisites={"energy-weapons-damage-4","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("energy-weapons-damage-6",{order="000097",prerequisites={"energy-weapons-damage-5"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("energy-weapons-damage-7",{order="000100",prerequisites={"energy-weapons-damage-6","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("weapon-shooting-speed-3",{order="000037",prerequisites={"weapon-shooting-speed-2","military-science-pack"},unit={count=75,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("weapon-shooting-speed-4",{order="000038",prerequisites={"weapon-shooting-speed-3"},unit={count=80,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("weapon-shooting-speed-5",{order="000068",prerequisites={"weapon-shooting-speed-4","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("weapon-shooting-speed-6",{order="000096",prerequisites={"weapon-shooting-speed-5","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("laser-shooting-speed-1",{order="000068",prerequisites={"chemical-science-pack","military-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("laser-shooting-speed-2",{order="000069",prerequisites={"laser-shooting-speed-1"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("laser-shooting-speed-3",{order="000070",prerequisites={"laser-shooting-speed-2"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("laser-shooting-speed-4",{order="000071",prerequisites={"laser-shooting-speed-3"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("laser-shooting-speed-5",{order="000096",prerequisites={"laser-shooting-speed-4","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("laser-shooting-speed-6",{order="000097",prerequisites={"laser-shooting-speed-5"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("laser-shooting-speed-7",{order="000098",prerequisites={"laser-shooting-speed-6"},unit={count=900,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("artillery-shell-range-1",{order="000070",prerequisites={"artillery"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("artillery-shell-speed-1",{order="000070",prerequisites={"artillery"},unit={ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("follower-robot-count-1",{order="000038",prerequisites={"defender"},unit={count=80,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("follower-robot-count-2",{order="000039",prerequisites={"follower-robot-count-1"},unit={count=90,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("follower-robot-count-3",{order="000068",prerequisites={"follower-robot-count-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("follower-robot-count-4",{order="000069",prerequisites={"follower-robot-count-3"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("follower-robot-count-5",{order="000096",prerequisites={"follower-robot-count-4","destroyer","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("follower-robot-count-6",{order="000097",prerequisites={"follower-robot-count-5"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("follower-robot-count-7",{order="000100",prerequisites={"follower-robot-count-6","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("stack-inserter",{order="000067",prerequisites={"electric-engine","intermetallics-mk02"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("inserter-capacity-bonus-1",{order="000068",prerequisites={"stack-inserter"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("inserter-capacity-bonus-2",{order="000069",prerequisites={"inserter-capacity-bonus-1"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("inserter-capacity-bonus-3",{order="000070",prerequisites={"inserter-capacity-bonus-2","chemical-science-pack"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("inserter-capacity-bonus-4",{order="000082",prerequisites={"inserter-capacity-bonus-3","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("inserter-capacity-bonus-5",{order="000083",prerequisites={"inserter-capacity-bonus-4"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("inserter-capacity-bonus-6",{order="000084",prerequisites={"inserter-capacity-bonus-5"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("inserter-capacity-bonus-7",{order="000096",prerequisites={"inserter-capacity-bonus-6","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("automation",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("automation-2",{order="000008",prerequisites={"logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("logistic-science-pack",{order="000007",prerequisites={"lab-instrument","ulric"},unit={count=275,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("steel-processing",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("steel-axe",{order="000003",prerequisites={"steel-processing"},unit={count=33,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("military",{order="000006",prerequisites={"fluid-processing-machines-1"},unit={count=160,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("military-2",{order="000008",prerequisites={"military","logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("fast-inserter",{order="000003",prerequisites={"automation"},unit={count=33,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("logistics",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("railway",{order="000013",prerequisites={"logistics-2"},unit={count=1100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("automated-rail-transportation",{order="000014",prerequisites={"railway"},unit={count=1750,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("rail-signals",{order="000015",prerequisites={"automated-rail-transportation"},unit={count=3000,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("automobilism",{order="000004",prerequisites={"engine"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("optics",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("solar-energy",{order="000008",prerequisites={"logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("heavy-armor",{order="000007",prerequisites={"military"},unit={count=275,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("automation-2",{order="000024",prerequisites={"intermetallics-mk01","logistics"},unit={count=100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("logistic-science-pack",{order="000035",prerequisites={"cottongut-science-mk01","mycology-mk01"},unit={count=330,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("steel-processing",{order="000003",prerequisites={"coal-processing-1"},unit={count=22,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("steel-axe",{order="000004",prerequisites={"steel-processing"},unit={count=25,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("military",{order="000008",prerequisites={"solder-mk01","fluid-processing-machines-1"},unit={count=40,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("military-2",{order="000020",prerequisites={"military","py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("fast-inserter",{order="000042",prerequisites={"alloys-mk02"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("logistics",{order="000010",prerequisites={"alloys-mk01"},unit={count=50,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("automated-rail-transportation",{order="000026",prerequisites={"railway-mk01"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("rail-signals",{order="000027",prerequisites={"automated-rail-transportation"},unit={count=140,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("automobilism",{order="000006",prerequisites={"steel-axe","engine"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("optics",{order="000006",prerequisites={"glass"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("heavy-armor",{order="000024",prerequisites={"military","intermetallics-mk01"},unit={count=100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("gun-turret",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("research-speed-1",{order="000009",prerequisites={"automation-2"},unit={count=130,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("research-speed-2",{order="000010",prerequisites={"research-speed-1"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("electric-energy-distribution-1",{order="000012",prerequisites={"niobium"},unit={count=650,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("advanced-material-processing",{order="000010",prerequisites={"concrete","crusher","filtration"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("concrete",{order="000008",prerequisites={"logistic-science-pack","separation"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("engine",{order="000003",prerequisites={"automation","steel-processing"},unit={count=33,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("landfill",{order="000005",prerequisites={"separation"},unit={count=90,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("logistics-2",{order="000012",prerequisites={"logistics","niobium","lubricant"},unit={count=650,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("toolbelt",{order="000008",prerequisites={"logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("research-speed-1",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("research-speed-2",{order="000037",prerequisites={"research-speed-1"},unit={count=175,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("electric-energy-distribution-1",{order="000026",prerequisites={"chromium-mk01"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("advanced-material-processing",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("concrete",{order="000005",prerequisites={"automation","crusher"},unit={count=27,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("engine",{order="000005",prerequisites={"automation","mining-with-fluid"},unit={count=27,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("logistics-2",{order="000065",prerequisites={"small-parts-mk02","basic-electronics"},unit={count=1750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("toolbelt",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("stone-wall",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("gate",{order="000003",prerequisites={"stone-wall","steel-processing"},unit={count=33,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("chemical-science-pack",{order="000013",prerequisites={"advanced-electronics","fine-electronics","nexelit"},unit={count=1100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("military-science-pack",{order="000009",prerequisites={"military-2","stone-wall"},unit={count=130,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("production-science-pack",{order="000018",prerequisites={"energy-3","filtration-mk02","speed-module-2","effectivity-module-2","uranium-processing","electric-engine"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("utility-science-pack",{order="000021",prerequisites={"kovarex-enrichment-process","automation-3","destroyer","fusion-reactor-equipment"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"}},time=300}}) -fix_tech("space-science-pack",{order="000024",prerequisites={"rocket-silo","solar-energy","electric-energy-accumulators"},unit={count=1750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) -fix_tech("military-3",{order="000014",prerequisites={"military-science-pack","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("military-4",{order="000019",prerequisites={"military-3","explosives","production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("uranium-ammo",{order="000018",prerequisites={"uranium-processing","tank"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("atomic-bomb",{order="000023",prerequisites={"rocket-control-unit","rocketry"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) -fix_tech("automation-3",{order="000019",prerequisites={"production-science-pack","stack-inserter"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("explosives",{order="000016",prerequisites={"sulfur-processing","mukmoux"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("cliff-explosives",{order="000017",prerequisites={"explosives","military-2"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("land-mine",{order="000017",prerequisites={"explosives","military-science-pack"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("flamethrower",{order="000010",prerequisites={"military-science-pack","coal-processing-2","filtration"},unit={count=40,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("advanced-electronics",{order="000009",prerequisites={"plastics","fast-inserter"},unit={count=130,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("advanced-electronics-2",{order="000016",prerequisites={"sulfur-processing"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("fluid-wagon",{order="000014",prerequisites={"railway"},unit={count=1750,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("braking-force-1",{order="000014",prerequisites={"railway","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("braking-force-2",{order="000015",prerequisites={"braking-force-1"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("braking-force-3",{order="000019",prerequisites={"braking-force-2","production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("braking-force-4",{order="000020",prerequisites={"braking-force-3"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("braking-force-5",{order="000021",prerequisites={"braking-force-4"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("braking-force-6",{order="000022",prerequisites={"braking-force-5","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) -fix_tech("braking-force-7",{order="000023",prerequisites={"braking-force-6"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) -fix_tech("tank",{order="000017",prerequisites={"military-science-pack","explosives"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("logistics-3",{order="000019",prerequisites={"production-science-pack","logistics-2"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("rocketry",{order="000017",prerequisites={"explosives","military-science-pack"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("explosive-rocketry",{order="000018",prerequisites={"rocketry","military-3"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("modular-armor",{order="000010",prerequisites={"heavy-armor","advanced-electronics"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("power-armor",{order="000017",prerequisites={"modular-armor","electric-engine","advanced-electronics-2"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("power-armor-mk2",{order="000022",prerequisites={"utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("laser-turret",{order="000017",prerequisites={"military-science-pack","battery"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("robotics",{order="000017",prerequisites={"electric-engine","battery"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("rocket-fuel",{order="000016",prerequisites={"military-science-pack","sulfur-processing"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("low-density-structure",{order="000014",prerequisites={"advanced-material-processing","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("rocket-control-unit",{order="000022",prerequisites={"utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("rocket-silo",{order="000023",prerequisites={"speed-module-3","productivity-module-3","rocket-control-unit"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) -fix_tech("research-speed-3",{order="000014",prerequisites={"research-speed-2","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("research-speed-4",{order="000015",prerequisites={"research-speed-3"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("research-speed-5",{order="000019",prerequisites={"research-speed-4","production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("research-speed-6",{order="000022",prerequisites={"research-speed-5","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) -fix_tech("electric-energy-distribution-2",{order="000014",prerequisites={"electric-energy-distribution-1","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("electric-energy-accumulators",{order="000017",prerequisites={"electric-energy-distribution-1","battery"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("advanced-material-processing-2",{order="000014",prerequisites={"advanced-material-processing","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("effect-transmission",{order="000019",prerequisites={"production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("lubricant",{order="000011",prerequisites={"mukmoux","filtration"},unit={count=360,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("electric-engine",{order="000014",prerequisites={"lubricant","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("battery",{order="000016",prerequisites={"sulfur-processing"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("construction-robotics",{order="000018",prerequisites={"robotics"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("logistic-robotics",{order="000018",prerequisites={"robotics"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("logistic-system",{order="000022",prerequisites={"logistic-robotics","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("worker-robots-speed-1",{order="000018",prerequisites={"robotics"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("worker-robots-speed-2",{order="000019",prerequisites={"worker-robots-speed-1"},unit={count=4000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("worker-robots-speed-3",{order="000020",prerequisites={"worker-robots-speed-2","production-science-pack"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("worker-robots-speed-4",{order="000021",prerequisites={"worker-robots-speed-3"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("worker-robots-speed-5",{order="000022",prerequisites={"worker-robots-speed-4","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) -fix_tech("worker-robots-speed-6",{order="000025",prerequisites={"worker-robots-speed-5","space-science-pack"},unit={ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=1200}}) -fix_tech("worker-robots-storage-1",{order="000018",prerequisites={"robotics"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("worker-robots-storage-2",{order="000019",prerequisites={"worker-robots-storage-1","production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("worker-robots-storage-3",{order="000022",prerequisites={"worker-robots-storage-2","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) -fix_tech("energy-shield-equipment",{order="000012",prerequisites={"solar-panel-equipment","military-science-pack"},unit={count=110,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("night-vision-equipment",{order="000012",prerequisites={"solar-panel-equipment"},unit={count=650,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("belt-immunity-equipment",{order="000012",prerequisites={"solar-panel-equipment"},unit={count=650,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("energy-shield-mk2-equipment",{order="000018",prerequisites={"energy-shield-equipment","military-3","low-density-structure","power-armor"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("battery-equipment",{order="000017",prerequisites={"battery","solar-panel-equipment"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("battery-mk2-equipment",{order="000018",prerequisites={"battery-equipment","low-density-structure","power-armor"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("solar-panel-equipment",{order="000011",prerequisites={"modular-armor","solar-energy"},unit={count=360,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("personal-laser-defense-equipment",{order="000018",prerequisites={"laser-turret","military-3","low-density-structure","power-armor","solar-panel-equipment"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("discharge-defense-equipment",{order="000018",prerequisites={"laser-turret","military-3","power-armor","solar-panel-equipment"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("fusion-reactor-equipment",{order="000019",prerequisites={"power-armor","military-science-pack","production-science-pack","low-density-structure"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("exoskeleton-equipment",{order="000017",prerequisites={"advanced-electronics-2","electric-engine","solar-panel-equipment"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("personal-roboport-equipment",{order="000019",prerequisites={"construction-robotics","solar-panel-equipment"},unit={count=4000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("personal-roboport-mk2-equipment",{order="000022",prerequisites={"personal-roboport-equipment","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"}},time=600}}) -fix_tech("fluid-handling",{order="000003",prerequisites={"steel-processing"},unit={count=33,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("oil-processing",{order="000014",prerequisites={"chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("advanced-oil-processing",{order="000019",prerequisites={"production-science-pack","wood-processing"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("sulfur-processing",{order="000015",prerequisites={"oil-processing"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("plastics",{order="000008",prerequisites={"logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("speed-module",{order="000010",prerequisites={"advanced-electronics"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("speed-module-2",{order="000017",prerequisites={"speed-module","advanced-electronics-2"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("speed-module-3",{order="000019",prerequisites={"production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("productivity-module",{order="000010",prerequisites={"advanced-electronics"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("productivity-module-2",{order="000017",prerequisites={"productivity-module","advanced-electronics-2"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("productivity-module-3",{order="000019",prerequisites={"productivity-module-2","production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("effectivity-module",{order="000010",prerequisites={"advanced-electronics"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("effectivity-module-2",{order="000017",prerequisites={"effectivity-module","advanced-electronics-2"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("effectivity-module-3",{order="000019",prerequisites={"production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("defender",{order="000010",prerequisites={"military-science-pack"},unit={count=40,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) -fix_tech("distractor",{order="000014",prerequisites={"chemical-science-pack","defender"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("destroyer",{order="000020",prerequisites={"military-4","distractor"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("uranium-processing",{order="000016",prerequisites={"concrete","sulfur-processing"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("nuclear-power",{order="000017",prerequisites={"uranium-processing"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("kovarex-enrichment-process",{order="000019",prerequisites={"rocket-fuel","production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"}},time=300}}) -fix_tech("nuclear-fuel-reprocessing",{order="000019",prerequisites={"nuclear-power","production-science-pack"},unit={count=750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("mining-productivity-1",{order="000010",prerequisites={"advanced-electronics"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("mining-productivity-2",{order="000014",prerequisites={"mining-productivity-1","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("mining-productivity-3",{order="000022",prerequisites={"mining-productivity-2","utility-science-pack"},unit={count=600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"}},time=600}}) -fix_tech("mining-productivity-4",{order="000025",prerequisites={"mining-productivity-3","space-science-pack"},unit={ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=1200}}) -fix_tech("artillery",{order="000018",prerequisites={"tank"},unit={count=2500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("spidertron",{order="000023",prerequisites={"exoskeleton-equipment","rocketry","rocket-control-unit","effectivity-module-3"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) -fix_tech("circuit-network",{order="000008",prerequisites={"logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("gate",{order="000009",prerequisites={"stone-wall","vacuum-tube-electronics"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("chemical-science-pack",{order="000067",prerequisites={"intermetallics-mk02","uranium-processing"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("military-science-pack",{order="000036",prerequisites={"logistic-science-pack","military-2","stone-wall"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("production-science-pack",{order="000081",prerequisites={"tholin-mk01","pharmagenomics","gadolinium","intermetallics-mk03","filtration-mk02","nuclear-power"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("utility-science-pack",{order="000095",prerequisites={"fusion-reactor-equipment","laika","biofluid-mk03","solar-mk03"},unit={count=1600,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) +fix_tech("space-science-pack",{order="000098",prerequisites={"nuclear-power-mk03","solar-mk04"},unit={count=900,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("military-3",{order="000068",prerequisites={"chemical-science-pack","military-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("military-4",{order="000092",prerequisites={"military-3","explosives","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) +fix_tech("uranium-ammo",{order="000069",prerequisites={"tank"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("atomic-bomb",{order="000068",prerequisites={"explosives","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("automation-3",{order="000068",prerequisites={"stack-inserter","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("explosives",{order="000046",prerequisites={"sulfur-processing"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("cliff-explosives",{order="000047",prerequisites={"explosives","military-2"},unit={count=550,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("land-mine",{order="000047",prerequisites={"explosives","military-science-pack"},unit={count=225,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("flamethrower",{order="000037",prerequisites={"military-science-pack"},unit={count=75,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("advanced-electronics",{order="000078",prerequisites={"integrated-circuits-2","neuro-electronics-mk02","rubber-3"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("fluid-wagon",{order="000026",prerequisites={"railway-mk01"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("braking-force-1",{order="000068",prerequisites={"railway-mk01","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("braking-force-2",{order="000069",prerequisites={"braking-force-1"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("braking-force-3",{order="000082",prerequisites={"braking-force-2","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("braking-force-4",{order="000083",prerequisites={"braking-force-3"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("braking-force-5",{order="000084",prerequisites={"braking-force-4"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("braking-force-6",{order="000096",prerequisites={"braking-force-5","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("braking-force-7",{order="000097",prerequisites={"braking-force-6"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("tank",{order="000068",prerequisites={"chemical-science-pack","military-science-pack","explosives"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("logistics-3",{order="000083",prerequisites={"super-alloy"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("rocketry",{order="000047",prerequisites={"explosives","military-science-pack"},unit={count=225,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("explosive-rocketry",{order="000069",prerequisites={"rocketry","military-3"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("modular-armor",{order="000068",prerequisites={"heavy-armor","titanium-mk02","intermetallics-mk02","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("power-armor",{order="000082",prerequisites={"modular-armor","nexelit-mk02","cooling-tower-2","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("power-armor-mk2",{order="000101",prerequisites={"military-4","speed-module-2","effect-transmission","machines-mk05","nexelit-mk04","coal-processing-3"},unit={count=1300,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("laser-turret",{order="000068",prerequisites={"chemical-science-pack","military-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("robotics",{order="000070",prerequisites={"logistic-robotics","wind-mk02","super-steel-mk01"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("rocket-fuel",{order="000076",prerequisites={"military-science-pack","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("low-density-structure",{order="000078",prerequisites={"carbon-fiber"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("rocket-control-unit",{order="000076",prerequisites={"py-science-pack-mk03","speed-module"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("rocket-silo",{order="000079",prerequisites={"rocket-fuel","rocket-control-unit","low-density-structure"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("research-speed-3",{order="000068",prerequisites={"research-speed-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("research-speed-4",{order="000069",prerequisites={"research-speed-3"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("research-speed-5",{order="000082",prerequisites={"research-speed-4","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("research-speed-6",{order="000096",prerequisites={"research-speed-5","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("electric-energy-distribution-2",{order="000041",prerequisites={"electric-energy-distribution-1","niobium"},unit={count=275,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("electric-energy-accumulators",{order="000027",prerequisites={"battery-mk01"},unit={count=140,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("advanced-material-processing-2",{order="000066",prerequisites={"uranium-processing"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("effect-transmission",{order="000096",prerequisites={"wind-mk04"},unit={count=4000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("lubricant",{order="000039",prerequisites={"coal-processing-2"},unit={count=225,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("electric-engine",{order="000064",prerequisites={"lubricant","small-parts-mk02"},unit={count=1600,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("construction-robotics",{order="000028",prerequisites={"battery-mk01","rubber"},unit={count=150,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("logistic-robotics",{order="000041",prerequisites={"construction-robotics","niobium"},unit={count=275,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("logistic-system",{order="000042",prerequisites={"logistic-robotics"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("worker-robots-speed-1",{order="000056",prerequisites={"logistic-robotics","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("worker-robots-speed-2",{order="000068",prerequisites={"worker-robots-speed-1","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("worker-robots-speed-3",{order="000076",prerequisites={"worker-robots-speed-2","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("worker-robots-speed-4",{order="000082",prerequisites={"worker-robots-speed-3","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("worker-robots-speed-5",{order="000096",prerequisites={"worker-robots-speed-4","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("worker-robots-speed-6",{order="000100",prerequisites={"worker-robots-speed-5","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("worker-robots-storage-1",{order="000076",prerequisites={"robotics","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("worker-robots-storage-2",{order="000082",prerequisites={"worker-robots-storage-1","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("worker-robots-storage-3",{order="000096",prerequisites={"worker-robots-storage-2","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("energy-shield-equipment",{order="000077",prerequisites={"solar-panel-equipment","military-science-pack"},unit={count=2750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("night-vision-equipment",{order="000056",prerequisites={"personal-roboport-equipment","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("belt-immunity-equipment",{order="000056",prerequisites={"personal-roboport-equipment","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("energy-shield-mk2-equipment",{order="000083",prerequisites={"energy-shield-equipment","military-3","low-density-structure","power-armor"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("solar-panel-equipment",{order="000076",prerequisites={"solar-mk01","modular-armor","electric-energy-distribution-1","lithium-processing"},unit={count=2500,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("personal-laser-defense-equipment",{order="000083",prerequisites={"laser-turret","military-3","low-density-structure","power-armor","solar-panel-equipment"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("discharge-defense-equipment",{order="000083",prerequisites={"laser-turret","military-3","power-armor","solar-panel-equipment"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("fusion-reactor-equipment",{order="000094",prerequisites={"power-armor","fusion-mk02","domestication-mk03","effectivity-module-3"},unit={count=3300,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("exoskeleton-equipment",{order="000093",prerequisites={"power-armor","machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("personal-roboport-equipment",{order="000029",prerequisites={"construction-robotics"},unit={count=175,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("personal-roboport-mk2-equipment",{order="000077",prerequisites={"solar-panel-equipment","personal-roboport-equipment"},unit={count=2750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("fluid-handling",{order="000009",prerequisites={"vacuum-tube-electronics"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("oil-processing",{order="000043",prerequisites={"petroleum-gas-mk01"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("advanced-oil-processing",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("sulfur-processing",{order="000045",prerequisites={"vanadium-processing"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("plastics",{order="000013",prerequisites={"syngas","biotech-mk01"},unit={count=70,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("speed-module",{order="000068",prerequisites={"machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("speed-module-2",{order="000082",prerequisites={"speed-module","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("speed-module-3",{order="000093",prerequisites={"speed-module-2","machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("productivity-module",{order="000068",prerequisites={"machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("productivity-module-2",{order="000082",prerequisites={"productivity-module","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("productivity-module-3",{order="000093",prerequisites={"productivity-module-2","machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("effectivity-module",{order="000068",prerequisites={"machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("effectivity-module-2",{order="000082",prerequisites={"effectivity-module","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("effectivity-module-3",{order="000093",prerequisites={"effectivity-module-2","machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("defender",{order="000037",prerequisites={"military-science-pack"},unit={count=75,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("distractor",{order="000068",prerequisites={"chemical-science-pack","defender"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("destroyer",{order="000093",prerequisites={"military-4","distractor"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) +fix_tech("uranium-processing",{order="000065",prerequisites={"basic-electronics","electric-engine"},unit={count=1750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("nuclear-power",{order="000076",prerequisites={"uranium-mk01","boron-mk02","lithium-processing","aluminium-mk03"},unit={count=2500,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("mining-productivity-1",{order="000025",prerequisites={"machines-mk01"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("mining-productivity-2",{order="000026",prerequisites={"mining-productivity-1"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("mining-productivity-3",{order="000037",prerequisites={"machines-mk02","mining-productivity-2"},unit={count=175,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("mining-productivity-4",{order="000038",prerequisites={"mining-productivity-3"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("artillery",{order="000069",prerequisites={"tank"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("spidertron",{order="000084",prerequisites={"zungror","energy-shield-mk2-equipment","py-warehouse-research","lead-mk03"},unit={count=2500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("circuit-network",{order="000029",prerequisites={"machine-components-mk01"},unit={count=175,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("coal-processing-1",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("coal-processing-2",{order="000009",prerequisites={"chromium","methanol-processing-1"},unit={count=130,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("coal-processing-3",{order="000014",prerequisites={"chemical-science-pack","wood-processing","mukmoux"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("syngas",{order="000004",prerequisites={"tar-processing"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("tar-processing",{order="000003",prerequisites={"steel-processing"},unit={count=33,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("energy-1",{order="000005",prerequisites={"syngas","coal-processing-1"},unit={count=90,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("energy-2",{order="000010",prerequisites={"coal-processing-2","advanced-electronics"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("energy-3",{order="000017",prerequisites={"energy-2","desulfurization","mukmoux","advanced-electronics-2"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("methanol-processing-1",{order="000008",prerequisites={"logistic-science-pack","engine"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("methanol-processing-2",{order="000014",prerequisites={"chemical-science-pack","mukmoux"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("cooling-tower-1",{order="000006",prerequisites={"energy-1"},unit={count=160,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("cooling-tower-2",{order="000011",prerequisites={"cooling-tower-1","energy-2"},unit={count=360,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("excavation-1",{order="000012",prerequisites={"lubricant","niobium"},unit={count=650,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("excavation-2",{order="000014",prerequisites={"excavation-1","chemical-science-pack"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("biofilm",{order="000014",prerequisites={"chemical-science-pack","wood-processing"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("filtration",{order="000009",prerequisites={"separation","automation-2"},unit={count=130,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("filtration-mk02",{order="000016",prerequisites={"sulfur-processing"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("desulfurization",{order="000015",prerequisites={"oil-processing"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("crusher",{order="000008",prerequisites={"logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("separation",{order="000004",prerequisites={"coal-processing-1","engine"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("fluid-separation",{order="000016",prerequisites={"sulfur-processing","mukmoux"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("fuel-production",{order="000017",prerequisites={"cooling-tower-1","lubricant","fluid-separation"},unit={count=1500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) -fix_tech("fine-electronics",{order="000012",prerequisites={"fluid-processing-machines-1","niobium","kevlar","plastics"},unit={count=650,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("fluid-processing-machines-1",{order="000005",prerequisites={"separation"},unit={count=90,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("ralesia",{order="000005",prerequisites={"creosote","optics"},unit={count=90,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("ulric",{order="000006",prerequisites={"ralesia","automation","fluid-handling"},unit={count=160,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("wood-processing",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("wood-processing-2",{order="000008",prerequisites={"wood-processing","logistic-science-pack"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("lab-instrument",{order="000006",prerequisites={"energy-1"},unit={count=160,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("niobium",{order="000011",prerequisites={"crusher","organic-solvent"},unit={count=360,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("nexelit",{order="000010",prerequisites={"fluid-processing-machines-1","coal-processing-2"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("chromium",{order="000008",prerequisites={"logistic-science-pack","separation"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("organic-solvent",{order="000010",prerequisites={"coal-processing-2","filtration"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("mukmoux",{order="000010",prerequisites={"coal-processing-2","advanced-electronics"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("kevlar",{order="000011",prerequisites={"organic-solvent"},unit={count=360,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("creosote",{order="000004",prerequisites={"tar-processing"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) -fix_tech("pyrrhic",{order="000025",prerequisites={"space-science-pack"},unit={count=3000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"}},time=1200}}) -fix_tech("artillery-2",{order="000019",prerequisites={"artillery","railway","advanced-electronics-2"},unit={count=4000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("artillery-shell-range-2",{order="000020",prerequisites={"artillery-shell-range-1"},unit={count=7000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=120}}) -fix_tech("artillery-shell-range-3",{order="000021",prerequisites={"artillery-shell-range-2"},unit={count=12000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("artillery-shell-range-4",{order="000022",prerequisites={"artillery-shell-range-3"},unit={count=20000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("artillery-shell-range-5",{order="000023",prerequisites={"artillery-shell-range-4"},unit={count=33000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=90}}) -fix_tech("artillery-shell-range-6",{order="000024",prerequisites={"artillery-shell-range-5","production-science-pack"},unit={count=10000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("artillery-shell-range-7",{order="000025",prerequisites={"artillery-shell-range-6"},unit={count=16000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("artillery-shell-range-8",{order="000026",prerequisites={"artillery-shell-range-7"},unit={count=27500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) -fix_tech("artillery-shell-range-9",{order="000027",prerequisites={"artillery-shell-range-8","utility-science-pack"},unit={count=8000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) -fix_tech("artillery-shell-range-10",{order="000028",prerequisites={"artillery-shell-range-9"},unit={count=14000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) -fix_tech("artillery-shell-range-11",{order="000029",prerequisites={"artillery-shell-range-10"},unit={count=22500,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) -fix_tech("artillery-shell-range-12",{order="000030",prerequisites={"artillery-shell-range-11"},unit={count=40000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) -fix_tech("artillery-shell-range-13",{order="000031",prerequisites={"artillery-shell-range-12","space-science-pack"},unit={count=11000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"}},time=1200}}) -fix_tech("diet-beacon",{order="000015",prerequisites={"speed-module","productivity-module","effectivity-module","electric-engine"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("coal-processing-2",{order="000038",prerequisites={"nichrome","filtration"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("coal-processing-3",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("syngas",{order="000009",prerequisites={"vacuum-tube-electronics","acetylene"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("tar-processing",{order="000006",prerequisites={"concrete","engine"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("energy-1",{order="000029",prerequisites={"boron","machine-components-mk01"},unit={count=175,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("energy-2",{order="000065",prerequisites={"basic-electronics"},unit={count=1750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("energy-3",{order="000068",prerequisites={"energy-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("methanol-processing-1",{order="000042",prerequisites={"alloys-mk02"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("methanol-processing-2",{order="000076",prerequisites={"py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("cooling-tower-1",{order="000030",prerequisites={"energy-1"},unit={count=200,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("cooling-tower-2",{order="000068",prerequisites={"cooling-tower-1","energy-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("excavation-1",{order="000021",prerequisites={"electric-mining-drill","water-animals-mk01"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("excavation-2",{order="000083",prerequisites={"drilling-fluid-mk03"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("excavation-3",{order="000100",prerequisites={"excavation-2","quantum","drilling-fluid-mk04"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("biofilm",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("filtration",{order="000037",prerequisites={"nitrogen-mk01"},unit={count=175,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("filtration-mk02",{order="000079",prerequisites={"lithium-processing","small-parts-mk03"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("desulfurization",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("crusher",{order="000004",prerequisites={"steel-processing"},unit={count=25,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("separation",{order="000024",prerequisites={"intermetallics-mk01"},unit={count=100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("fluid-separation",{order="000040",prerequisites={"organic-solvent"},unit={count=250,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("fuel-production",{order="000041",prerequisites={"microbiology-mk02","fluid-separation"},unit={count=275,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("fine-electronics",{order="000062",prerequisites={"aramid","trits"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("fluid-processing-machines-1",{order="000007",prerequisites={"tar-processing"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("fluid-processing-machines-2",{order="000041",prerequisites={"niobium"},unit={count=275,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("ralesia",{order="000030",prerequisites={"genetics-mk02"},unit={count=200,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("ulric",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("wood-processing",{order="000007",prerequisites={"moss-mk01","botany-mk01"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("wood-processing-2",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("lab-instrument",{order="000028",prerequisites={"rubber","boron","hot-air-mk01"},unit={count=150,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("niobium",{order="000040",prerequisites={"guar","organic-solvent"},unit={count=250,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("organic-solvent",{order="000039",prerequisites={"coal-processing-2"},unit={count=225,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("mukmoux",{order="000058",prerequisites={"grod"},unit={count=800,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("kevlar",{order="000060",prerequisites={"nitrobenzene","nylon"},unit={count=1000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("kevlar-mk02",{order="000069",prerequisites={"cadaveric-arum-mk02"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) +fix_tech("creosote",{order="000007",prerequisites={"tar-processing"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("pyrrhic",{order="000100",prerequisites={"quantum"},unit={count=3000,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("artillery-2",{order="000079",prerequisites={"artillery","railway-mk01","super-steel-mk01","advanced-electronics","atomic-bomb"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("artillery-shell-range-2",{order="000071",prerequisites={"artillery-shell-range-1"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("artillery-shell-range-3",{order="000072",prerequisites={"artillery-shell-range-2"},unit={count=1600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("artillery-shell-range-4",{order="000073",prerequisites={"artillery-shell-range-3"},unit={count=1750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("artillery-shell-range-5",{order="000074",prerequisites={"artillery-shell-range-4"},unit={count=2000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("artillery-shell-range-6",{order="000082",prerequisites={"artillery-shell-range-5","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("artillery-shell-range-7",{order="000083",prerequisites={"artillery-shell-range-6"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("artillery-shell-range-8",{order="000084",prerequisites={"artillery-shell-range-7"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("artillery-shell-range-9",{order="000096",prerequisites={"artillery-shell-range-8","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("artillery-shell-range-10",{order="000097",prerequisites={"artillery-shell-range-9"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("artillery-shell-range-11",{order="000098",prerequisites={"artillery-shell-range-10"},unit={count=900,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("artillery-shell-range-12",{order="000099",prerequisites={"artillery-shell-range-11"},unit={count=1100,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("artillery-shell-range-13",{order="000100",prerequisites={"artillery-shell-range-12","quantum"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("diet-beacon",{order="000070",prerequisites={"speed-module","productivity-module","effectivity-module","chemical-science-pack","wind-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) +fix_tech("advanced-mining-facilities",{order="000045",prerequisites={"vanadium-processing"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("sc-unit",{order="000082",prerequisites={"production-science-pack","machine-components-mk03"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("fusion-mk01",{order="000083",prerequisites={"super-alloy","sc-unit","cooling-tower-2"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("fusion-mk02",{order="000093",prerequisites={"machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("fusion-mk03",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("fusion-mk04",{order="000097",prerequisites={"fusion-mk03","nucleo-mk03"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("diamond-mining",{order="000069",prerequisites={"heavy-oil-mk02","machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("regolite-mining",{order="000083",prerequisites={"super-alloy","machine-components-mk03"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("molybdenum-processing",{order="000045",prerequisites={"vanadium-processing","iron-mk02","molecular-decohesion-mk02"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("nenbit-matrix",{order="000071",prerequisites={"neuro-electronics-mk01","alloys-mk03","cellulose-mk03"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("vanadium-processing",{order="000044",prerequisites={"cadaveric-arum","arqad"},unit={count=400,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("helium-processing",{order="000069",prerequisites={"biofilm"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("helium-processing-mk02",{order="000084",prerequisites={"liquid-petroleum-processing","regolite-mining","ethanolamine","petroleum-gas-mk02"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("super-alloy",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("kmauts",{order="000076",prerequisites={"land-animals-mk02","py-science-pack-mk03","super-steel-mk01"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("ethanolamine",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("liquid-petroleum-processing",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("wood-processing-3",{order="000070",prerequisites={"wood-processing-2","chemical-science-pack","phytomining-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("boron",{order="000022",prerequisites={"excavation-1","electrolysis"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("boron-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("fluid-pressurization",{order="000004",prerequisites={"steel-processing"},unit={count=25,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("coated-container",{order="000074",prerequisites={"diamond-mining","chitin"},unit={count=2000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) +fix_tech("acetylene",{order="000006",prerequisites={"concrete"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("py-storage-tanks",{order="000010",prerequisites={"alloys-mk01"},unit={count=50,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("py-asphalt",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("py-asphalt-mk02",{order="000048",prerequisites={"steel-mk02","quartz-mk02"},unit={count=600,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("py-asphalt-mk03",{order="000049",prerequisites={"py-asphalt-mk02","military-science-pack","methanol-processing-1"},unit={count=300,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"}},time=90}}) +fix_tech("py-warehouse-research",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("py-warehouse-logistics-research",{order="000068",prerequisites={"py-warehouse-research","logistic-system","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("railway-mk01",{order="000025",prerequisites={"automation-2"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("railway-mk02",{order="000068",prerequisites={"railway-mk01","intermetallics-mk02","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("railway-mk03",{order="000082",prerequisites={"railway-mk02","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("railway-mk04",{order="000093",prerequisites={"railway-mk03","py-science-pack-mk04","machine-components-mk04"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) +fix_tech("py-accumulator-mk01",{order="000068",prerequisites={"electric-energy-accumulators","chemical-science-pack","battery-mk02"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("py-accumulator-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("py-accumulator-mk03",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("radars-mk01",{order="000009",prerequisites={"vacuum-tube-electronics"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("radars-mk02",{order="000065",prerequisites={"basic-electronics","electric-engine"},unit={count=1750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("py-burner",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("machines-mk01",{order="000024",prerequisites={"intermetallics-mk01","radars-mk01","soil-washing"},unit={count=100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("machines-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("machines-mk03",{order="000068",prerequisites={"chemical-science-pack","machine-components-mk02","neuro-electronics-mk01","logistics-2","titanium-mk02"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("machines-mk04",{order="000089",prerequisites={"sc-engine","stack-inserter","logistics-3","desulfurization","biotech-machines-mk02"},unit={count=2000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("machines-mk05",{order="000100",prerequisites={"quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("quartz-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("quartz-mk02",{order="000047",prerequisites={"quartz-mk01","rare-earth-tech"},unit={count=550,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("quartz-mk03",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("quartz-mk04",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("quartz-mk05",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("aluminium-mk01",{order="000025",prerequisites={"casting-mk01","machines-mk01","boron","hot-air-mk01"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("aluminium-mk02",{order="000045",prerequisites={"phosphorous-processing","vanadium-processing"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("aluminium-mk03",{order="000069",prerequisites={"additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("aluminium-mk04",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("aluminium-mk05",{order="000096",prerequisites={"aluminium-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("chromium-mk01",{order="000025",prerequisites={"separation","casting-mk01"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("chromium-mk02",{order="000045",prerequisites={"iron-mk02","molecular-decohesion-mk02"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("chromium-mk03",{order="000069",prerequisites={"chromium-mk02","additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("chromium-mk04",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("chromium-mk05",{order="000096",prerequisites={"chromium-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("copper-mk01",{order="000009",prerequisites={"vacuum-tube-electronics"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("copper-mk02",{order="000036",prerequisites={"copper-mk01","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("copper-mk03",{order="000069",prerequisites={"heavy-oil-mk02","additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("copper-mk04",{order="000082",prerequisites={"copper-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("copper-mk05",{order="000096",prerequisites={"copper-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("iron-mk01",{order="000025",prerequisites={"boron","casting-mk01","hot-air-mk01"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("iron-mk02",{order="000041",prerequisites={"iron-mk01","niobium"},unit={count=275,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("iron-mk03",{order="000069",prerequisites={"additives","heavy-oil-mk02","titanium-mk02"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("iron-mk04",{order="000082",prerequisites={"iron-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("iron-mk05",{order="000096",prerequisites={"iron-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("gold",{order="000070",prerequisites={"chromium-mk03"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("coke-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("coke-mk02",{order="000040",prerequisites={"organic-solvent"},unit={count=250,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("coke-mk03",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("coal-mk01",{order="000021",prerequisites={"crusher-2"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("coal-mk02",{order="000036",prerequisites={"coal-mk01","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("coal-mk03",{order="000068",prerequisites={"coal-mk02","chemical-science-pack","titanium-mk02","pyrite"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("coal-mk04",{order="000096",prerequisites={"coal-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("lead-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("lead-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("lead-mk03",{order="000069",prerequisites={"additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("lead-mk04",{order="000082",prerequisites={"lead-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("lead-mk05",{order="000096",prerequisites={"lead-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("nexelit-mk01",{order="000022",prerequisites={"titanium-mk01","lead-mk01","fluid-processing-machines-1"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("nexelit-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("nexelit-mk03",{order="000087",prerequisites={"nexelit-mk02","drill-head-mk03","anabolic-rna"},unit={count=1500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("nexelit-mk04",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("nexelit-mk05",{order="000100",prerequisites={"nexelit-mk04","quantum"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("nickel-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("nickel-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("nickel-mk03",{order="000069",prerequisites={"nickel-mk02","additives","heavy-oil-mk02","biofilm"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("nickel-mk04",{order="000082",prerequisites={"nickel-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("nickel-mk05",{order="000096",prerequisites={"nickel-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("tin-mk01",{order="000006",prerequisites={"glass","crusher"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("tin-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("tin-mk03",{order="000069",prerequisites={"tin-mk02","biofilm","heavy-oil-mk02","machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("tin-mk04",{order="000082",prerequisites={"tin-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("tin-mk05",{order="000096",prerequisites={"tin-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("titanium-mk01",{order="000021",prerequisites={"crusher-2"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("titanium-mk02",{order="000063",prerequisites={"mibc","stainless-steel-mk01"},unit={count=1400,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("titanium-mk03",{order="000069",prerequisites={"heavy-oil-mk02","machines-mk03","biofilm","additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("titanium-mk04",{order="000082",prerequisites={"titanium-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("titanium-mk05",{order="000096",prerequisites={"titanium-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("uranium-mk01",{order="000069",prerequisites={"quartz-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("uranium-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("uranium-mk03",{order="000096",prerequisites={"uranium-mk02","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("uranium-mk04",{order="000100",prerequisites={"quantum"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("zinc-mk01",{order="000025",prerequisites={"machines-mk01"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("zinc-mk02",{order="000036",prerequisites={"zinc-mk01","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("zinc-mk03",{order="000069",prerequisites={"zinc-mk02","additives","heavy-oil-mk02","machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("zinc-mk04",{order="000082",prerequisites={"zinc-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("zinc-mk05",{order="000096",prerequisites={"zinc-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("smelters-mk01",{order="000021",prerequisites={"advanced-material-processing"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("smelters-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("smelters-mk03",{order="000084",prerequisites={"smelters-mk02","alloys-mk04","superconductor"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("smelters-mk04",{order="000100",prerequisites={"quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("solder-mk01",{order="000005",prerequisites={"mining-with-fluid"},unit={count=27,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("solder-mk02",{order="000037",prerequisites={"lead-mk02","tin-mk02"},unit={count=175,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("solder-mk03",{order="000071",prerequisites={"solder-mk02","silver-mk02"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("solder-mk04",{order="000082",prerequisites={"solder-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("casting-mk01",{order="000024",prerequisites={"radars-mk01","intermetallics-mk01"},unit={count=100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("casting-mk02",{order="000068",prerequisites={"chemical-science-pack","tin-mk02"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("casting-mk03",{order="000087",prerequisites={"nems"},unit={count=1500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("casting-mk04",{order="000096",prerequisites={"casting-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("electrolysis",{order="000009",prerequisites={"vacuum-tube-electronics"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("nichrome",{order="000037",prerequisites={"nitrogen-mk01"},unit={count=175,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("pyrite",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("big-mines",{order="000071",prerequisites={"construction-robotics","graphene","alloys-mk03","machines-mk03"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("salts",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("aramid",{order="000061",prerequisites={"kevlar","molybdenum-processing"},unit={count=1100,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("nitrogen-mk01",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("nitrogen-mk02",{order="000042",prerequisites={"fluid-processing-machines-2"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("nitrogen-mk03",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("alloys-mk01",{order="000009",prerequisites={"vacuum-tube-electronics"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("alloys-mk02",{order="000041",prerequisites={"aluminium-mk01","copper-mk02","lead-mk02","niobium"},unit={count=275,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("alloys-mk03",{order="000070",prerequisites={"chromium-mk03","nickel-mk02","tin-mk02","cobalt-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("alloys-mk04",{order="000082",prerequisites={"production-science-pack","erbium"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("alloys-mk05",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("steel-mk02",{order="000036",prerequisites={"logistic-science-pack","iron-mk01"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("steel-mk03",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("stainless-steel-mk01",{order="000062",prerequisites={"steel-mk02","phosphorous-processing","aramid"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("stainless-steel-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("super-steel-mk01",{order="000069",prerequisites={"cobalt-mk02"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("super-steel-mk02",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("silver-mk01",{order="000037",prerequisites={"lead-mk02"},unit={count=175,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("silver-mk02",{order="000070",prerequisites={"lead-mk03"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("silver-mk03",{order="000082",prerequisites={"silver-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("silver-mk04",{order="000096",prerequisites={"silver-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("silver-mk05",{order="000100",prerequisites={"silver-mk04","quantum"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("additives",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("fuel-production-mk02",{order="000068",prerequisites={"fuel-production","chemical-science-pack","cooling-tower-1"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("mibc",{order="000039",prerequisites={"coal-processing-2"},unit={count=225,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("drill-head-mk01",{order="000026",prerequisites={"chromium-mk01"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("drill-head-mk02",{order="000068",prerequisites={"drill-head-mk01","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("drill-head-mk03",{order="000083",prerequisites={"drill-head-mk02","super-alloy","casting-mk02"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("aerogel",{order="000069",prerequisites={"epoxy","quartz-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("auog",{order="000031",prerequisites={"ralesia","auog-mk00"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("basic-electronics",{order="000064",prerequisites={"integrated-circuits-1","stainless-steel-mk01","aluminium-mk02","fine-electronics"},unit={count=1600,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("biopolymer",{order="000083",prerequisites={"microbiology-mk04"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("cadaveric-arum",{order="000007",prerequisites={"botany-mk01","optics"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("carbon-nanotube",{order="000084",prerequisites={"biopolymer"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("ceramic",{order="000005",prerequisites={"mining-with-fluid"},unit={count=27,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("collagen",{order="000068",prerequisites={"chemical-science-pack","epoxy"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("colloidal-silica",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("earnshaw-theorem",{order="000087",prerequisites={"nano-mesh","nems","super-alloy"},unit={count=1500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("electronics-machines-1",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("electronics-machines-2",{order="000082",prerequisites={"electronics-machines-1","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("electronics-machines-3",{order="000096",prerequisites={"electronics-machines-2","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("electronics-machines-4",{order="000100",prerequisites={"electronics-machines-3","quantum"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=100,name="py-science-pack-1",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"}},time=1200}}) +fix_tech("epoxy",{order="000059",prerequisites={"phenol"},unit={count=900,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("ethylene",{order="000057",prerequisites={"yotoi"},unit={count=700,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("fiberboard",{order="000026",prerequisites={"melamine"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("fiberboard-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("fiberglass",{order="000068",prerequisites={"chemical-science-pack","epoxy"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("graphene",{order="000069",prerequisites={"biofilm"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("ht-robotics",{order="000096",prerequisites={"advanced-robotics","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("integrated-circuits-1",{order="000063",prerequisites={"semiconductor-doping"},unit={count=1400,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("integrated-circuits-2",{order="000077",prerequisites={"semiconductor-doping-mk02","gold","cadaveric-arum-mk02"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("integrated-circuits-3",{order="000087",prerequisites={"colloidal-silica","nems"},unit={count=1500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("kicalk",{order="000013",prerequisites={"biotech-mk01"},unit={count=70,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("magnetic-core",{order="000072",prerequisites={"boron-mk02","nenbit-matrix"},unit={count=1600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("melamine",{order="000025",prerequisites={"machines-mk01","auog-mk00"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("microfibers",{order="000070",prerequisites={"aerogel"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("moondrop",{order="000007",prerequisites={"botany-mk01","petri-dish"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("nano-tech",{order="000091",prerequisites={"photonics","biofet"},unit={count=2500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("nems",{order="000086",prerequisites={"zno-nanoparticles","biotech-mk04","carbon-nanotube","nanozymes"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("nitrobenzene",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("nucleo",{order="000069",prerequisites={"boron-mk02"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("nucleo-mk02",{order="000082",prerequisites={"nucleo","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("nucleo-mk03",{order="000096",prerequisites={"nucleo-mk02","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("nylon",{order="000059",prerequisites={"phenol"},unit={count=900,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("paramagnetic-material",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("parametric-oscilator",{order="000088",prerequisites={"integrated-circuits-3"},unit={count=1750,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("phenol",{order="000058",prerequisites={"cellulose-mk02","rennea"},unit={count=800,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("phosphorous-processing",{order="000038",prerequisites={"filtration"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("plastics-mk02",{order="000053",prerequisites={"korlex"},unit={count=1100,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("plastics-mk03",{order="000069",prerequisites={"plastics-mk02","additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("plastics-mk04",{order="000082",prerequisites={"plastics-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("propene",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("quantum",{order="000099",prerequisites={"space-science-pack"},unit={count=1100,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("rare-earth-tech",{order="000046",prerequisites={"sulfur-processing","fast-inserter","fluid-separation","phadai"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("rayon",{order="000057",prerequisites={"salts"},unit={count=700,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("re-magnet",{order="000073",prerequisites={"magnetic-core"},unit={count=1750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("semiconductor-doping",{order="000062",prerequisites={"aramid","silicon-mk01","phosphorous-processing","antimony-mk02"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("semiconductor-doping-mk02",{order="000076",prerequisites={"py-science-pack-mk03","helium-processing","lithium-processing"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("supercapacitor",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("superconductor",{order="000083",prerequisites={"sc-unit"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("vacuum-tube-electronics",{order="000008",prerequisites={"sap-mk01","ceramic","fluid-pressurization","wood-processing","creosote","solder-mk01","moondrop"},unit={count=40,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("zipir",{order="000053",prerequisites={"water-invertebrates-mk01"},unit={count=1100,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("zno-nanoparticles",{order="000085",prerequisites={"ralesia-mk03","smelters-mk03","thorium"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("oil-sands",{order="000043",prerequisites={"petroleum-gas-mk01","propene","machines-mk02"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("scrude",{order="000011",prerequisites={"kerogen","py-storage-tanks","electrolysis"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("rubber",{order="000027",prerequisites={"oil-machines-mk01"},unit={count=140,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("rubber-2",{order="000040",prerequisites={"organic-solvent"},unit={count=250,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("rubber-3",{order="000068",prerequisites={"rubber-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("fast-inserter-2",{order="000064",prerequisites={"small-parts-mk02"},unit={count=1600,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("stack-inserter-2",{order="000079",prerequisites={"stack-inserter","small-parts-mk03"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("oil-machines-mk01",{order="000026",prerequisites={"automation-2","chromium-mk01","soil-washing"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("oil-machines-mk02",{order="000069",prerequisites={"machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("oil-machines-mk03",{order="000090",prerequisites={"oil-machines-mk02","coalbed-mk02","machines-mk04","bio-implants"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("oil-machines-mk04",{order="000101",prerequisites={"oil-machines-mk03","machines-mk05"},unit={count=1300,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("tholin-mk01",{order="000080",prerequisites={"py-accumulator-mk01","solar-mk01","rocket-silo"},unit={count=1600,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("tholin-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("tholin-mk03",{order="000096",prerequisites={"tholin-mk02","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("tholin-mk04",{order="000100",prerequisites={"tholin-mk03","quantum"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("light-oil-mk01",{order="000043",prerequisites={"petroleum-gas-mk01"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("light-oil-mk02",{order="000050",prerequisites={"light-oil-mk01","bioprocessing"},unit={count=750,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("light-oil-mk03",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("heavy-oil-mk01",{order="000044",prerequisites={"arqad"},unit={count=400,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("heavy-oil-mk02",{order="000068",prerequisites={"heavy-oil-mk01","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("petroleum-gas-mk01",{order="000042",prerequisites={"drilling-fluid-mk01","coalbed-mk01","fluid-processing-machines-2","alloys-mk02"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("petroleum-gas-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("coalbed-mk01",{order="000038",prerequisites={"filtration"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("coalbed-mk02",{order="000068",prerequisites={"chemical-science-pack","machine-components-mk02"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("fracking",{order="000097",prerequisites={"oil-machines-mk03","explosives","drilling-fluid-mk04"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("kerogen",{order="000004",prerequisites={"steel-processing","moss-mk01"},unit={count=25,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("guar",{order="000038",prerequisites={"tuuphra","geothermal-power-mk01"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("small-parts-mk02",{order="000063",prerequisites={"stainless-steel-mk01"},unit={count=1400,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("small-parts-mk03",{order="000078",prerequisites={"super-steel-mk01","carbon-fiber"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("drilling-fluid-mk01",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("drilling-fluid-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("drilling-fluid-mk03",{order="000082",prerequisites={"drilling-fluid-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("drilling-fluid-mk04",{order="000096",prerequisites={"drilling-fluid-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("hot-air-mk01",{order="000021",prerequisites={"coke-mk01"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("hot-air-mk02",{order="000036",prerequisites={"logistic-science-pack","coalplant-mk01"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("hot-air-mk03",{order="000070",prerequisites={"coalplant-mk02","coke-mk03","hot-air-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("oil-distillation",{order="000043",prerequisites={"petroleum-gas-mk01"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("vanadium-processing-2",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("xenobiology",{order="000010",prerequisites={"alloys-mk01"},unit={count=50,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("kmauts-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("kmauts-mk03",{order="000092",prerequisites={"kmauts-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("kmauts-mk04",{order="000096",prerequisites={"kmauts-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("mycology-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("mycology-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("mycology-mk03",{order="000067",prerequisites={"neuro-electronics-mk01","intermetallics-mk02","bhoddos"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("mycology-mk04",{order="000085",prerequisites={"mycology-mk03","carbon-nanotube","bio-implants","superconductor","super-alloy"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("mycology-mk05",{order="000100",prerequisites={"mycology-mk04","quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) +fix_tech("microbiology-mk01",{order="000007",prerequisites={"tin-mk01"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("microbiology-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("microbiology-mk03",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("microbiology-mk04",{order="000082",prerequisites={"microbiology-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("botany-mk01",{order="000006",prerequisites={"glass"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("botany-mk02",{order="000068",prerequisites={"intermetallics-mk02","neuro-electronics-mk01","grod","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("botany-mk03",{order="000085",prerequisites={"alloys-mk04","superconductor","bio-implants","super-alloy","carbon-nanotube"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("botany-mk04",{order="000100",prerequisites={"quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("biotech-mk01",{order="000012",prerequisites={"xenobiology","yaedols"},unit={count=60,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("biotech-mk02",{order="000051",prerequisites={"cobalt-mk01","silver-mk01","light-oil-mk02"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("biotech-mk03",{order="000077",prerequisites={"water-animals-mk02","kmauts"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("biotech-mk04",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("genetics-mk01",{order="000014",prerequisites={"plastics"},unit={count=75,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("genetics-mk02",{order="000029",prerequisites={"lab-instrument"},unit={count=175,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("genetics-mk03",{order="000053",prerequisites={"water-invertebrates-mk01","nitrogen-mk02","korlex"},unit={count=1100,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("genetics-mk04",{order="000070",prerequisites={"arthurian","graphene"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("genetics-mk05",{order="000084",prerequisites={"ethanolamine","cottongut-science-mk05","microbiology-mk04","bio-implants"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("zoology",{order="000018",prerequisites={"rendering"},unit={count=120,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("land-animals-mk01",{order="000012",prerequisites={"yaedols"},unit={count=60,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("land-animals-mk02",{order="000072",prerequisites={"botany-mk02","mukmoux","scrondrix","phagnot"},unit={count=1600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("land-animals-mk03",{order="000086",prerequisites={"botany-mk03","xeno"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("land-animals-mk04",{order="000100",prerequisites={"land-animals-mk03","quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) +fix_tech("land-animals-mk05",{order="000103",prerequisites={"schrodinger-antelope-upgrade","dingrits-upgrade"},unit={count=700,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=100,name="py-science-pack-1",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"}},time=1200}}) +fix_tech("water-animals-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("water-animals-mk02",{order="000071",prerequisites={"botany-mk02","alloys-mk03","machines-mk03"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("water-animals-mk03",{order="000086",prerequisites={"botany-mk03","dhilmos-mk02"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("water-animals-mk04",{order="000096",prerequisites={"water-animals-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) +fix_tech("water-invertebrates-mk01",{order="000052",prerequisites={"biotech-mk02","fish-mk02"},unit={count=1000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("water-invertebrates-mk02",{order="000067",prerequisites={"small-parts-mk02","neuro-electronics-mk01","intermetallics-mk02","fish-mk03","fawogae-mk02"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("water-invertebrates-mk03",{order="000081",prerequisites={"water-invertebrates-mk02","advanced-electronics","low-density-structure","intermetallics-mk03","fawogae-mk03"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("water-invertebrates-mk04",{order="000093",prerequisites={"water-invertebrates-mk03","water-animals-mk03","machine-components-mk04","fawogae-mk04","fish-mk04"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("molecular-decohesion",{order="000032",prerequisites={"auog"},unit={count=550,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("molecular-decohesion-mk02",{order="000044",prerequisites={"molecular-decohesion","arqad"},unit={count=400,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("molecular-decohesion-mk03",{order="000078",prerequisites={"numal-mk01"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("molecular-decohesion-mk04",{order="000092",prerequisites={"molecular-decohesion-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("ulric-mk02",{order="000059",prerequisites={"energy-drink"},unit={count=900,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("ulric-mk03",{order="000076",prerequisites={"ulric-mk02","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("ulric-mk04",{order="000092",prerequisites={"ulric-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("ralesia-mk02",{order="000057",prerequisites={"fawogae-mk02"},unit={count=700,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("ralesia-mk03",{order="000077",prerequisites={"ralesia-mk02","fawogae-mk03"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("ralesia-mk04",{order="000093",prerequisites={"fawogae-mk04"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("mukmoux-mk02",{order="000068",prerequisites={"mukmoux","chemical-science-pack","organ-printing","neuro-electronics-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("mukmoux-mk03",{order="000077",prerequisites={"mukmoux-mk02","neuro-electronics-mk02"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("mukmoux-mk04",{order="000092",prerequisites={"mukmoux-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("tuuphra",{order="000037",prerequisites={"microbiology-mk02"},unit={count=175,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("tuuphra-mk02",{order="000056",prerequisites={"py-science-pack-mk02","phosphorous-processing"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("tuuphra-mk03",{order="000079",prerequisites={"tuuphra-mk02","pesticides-mk01","energy-drink"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("tuuphra-mk04",{order="000092",prerequisites={"tuuphra-mk03","py-science-pack-mk04","pesticides-mk02","phytomining-mk03"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("arthurian",{order="000068",prerequisites={"chemical-science-pack","grod"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) +fix_tech("arthurian-mk02",{order="000085",prerequisites={"genetics-mk05","energy-drink"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("arthurian-mk03",{order="000092",prerequisites={"arthurian-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("arthurian-mk04",{order="000096",prerequisites={"arthurian-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("navens",{order="000065",prerequisites={"basic-electronics"},unit={count=1750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("navens-mk02",{order="000068",prerequisites={"chemical-science-pack","mycology-mk03","water-invertebrates-mk02"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("navens-mk03",{order="000082",prerequisites={"navens-mk02","water-invertebrates-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("navens-mk04",{order="000094",prerequisites={"navens-mk03","water-invertebrates-mk04"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("yotoi",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("yotoi-mk02",{order="000076",prerequisites={"military-science-pack","py-science-pack-mk03","helium-processing"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) +fix_tech("yotoi-mk03",{order="000082",prerequisites={"yotoi-mk02","production-science-pack","pesticides-mk01"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("yotoi-mk04",{order="000092",prerequisites={"yotoi-mk03","py-science-pack-mk04","pesticides-mk02","phytomining-mk03"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("xeno",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) +fix_tech("xeno-mk02",{order="000083",prerequisites={"xeno"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("xeno-mk03",{order="000092",prerequisites={"xeno-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("xeno-mk04",{order="000096",prerequisites={"xeno-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("dhilmos",{order="000071",prerequisites={"genetics-mk04","alloys-mk03","fiberglass","aerogel"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("dhilmos-mk02",{order="000077",prerequisites={"neuro-electronics-mk02"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("dhilmos-mk03",{order="000092",prerequisites={"dhilmos-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("dhilmos-mk04",{order="000096",prerequisites={"dhilmos-mk03","utility-science-pack","organ-printing-mk03"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("assisted-embryology",{order="000087",prerequisites={"land-animals-mk03"},unit={count=1500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("scrondrix",{order="000071",prerequisites={"genetics-mk04","fiberglass"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("scrondrix-mk02",{order="000076",prerequisites={"py-science-pack-mk03","organ-printing"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("scrondrix-mk03",{order="000092",prerequisites={"scrondrix-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("scrondrix-mk04",{order="000096",prerequisites={"scrondrix-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("pharmagenomics",{order="000080",prerequisites={"aluminium-mk03","immunosupressants","zungror","vonix"},unit={count=1600,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) +fix_tech("growth-hormone",{order="000078",prerequisites={"kmauts","cottongut-science-mk04"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("anabolic-rna",{order="000086",prerequisites={"growth-hormone","antiviral","numal-mk01"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("antiviral",{order="000085",prerequisites={"genetics-mk05"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("rennea",{order="000056",prerequisites={"py-science-pack-mk02","microfilters"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("rennea-mk02",{order="000079",prerequisites={"pesticides-mk01"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("rennea-mk03",{order="000082",prerequisites={"rennea-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("rennea-mk04",{order="000092",prerequisites={"rennea-mk03","py-science-pack-mk04","pesticides-mk02"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("mounts-mk01",{order="000036",prerequisites={"logistic-science-pack","heavy-armor","py-warehouse-research"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("mounts-mk02",{order="000074",prerequisites={"modular-armor","py-warehouse-research","chitin"},unit={count=2000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("mounts-mk04",{order="000102",prerequisites={"phadai-upgrade","phadai-mk04","power-armor-mk2","py-warehouse-research","organ-printing-mk03"},unit={count=1500,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("phadai",{order="000040",prerequisites={"circuit-network","guar","domestication","ethanol"},unit={count=250,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("phadai-mk02",{order="000082",prerequisites={"production-science-pack","energy-drink"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("phadai-mk03",{order="000092",prerequisites={"phadai-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("phadai-mk04",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("auog-mk02",{order="000059",prerequisites={"energy-drink"},unit={count=900,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("auog-mk03",{order="000078",prerequisites={"auog-mk02","immunosupressants"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("auog-mk04",{order="000082",prerequisites={"auog-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("yaedols",{order="000011",prerequisites={"py-storage-tanks","optics","compost"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("yaedols-mk02",{order="000068",prerequisites={"mycology-mk03"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("yaedols-mk03",{order="000076",prerequisites={"yaedols-mk02","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("yaedols-mk04",{order="000092",prerequisites={"yaedols-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("dingrits",{order="000072",prerequisites={"alloys-mk03","scrondrix"},unit={count=1600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("dingrits-mk02",{order="000076",prerequisites={"py-science-pack-mk03","organ-printing"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("dingrits-mk03",{order="000092",prerequisites={"dingrits-mk02","py-science-pack-mk04","domestication-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("dingrits-mk04",{order="000096",prerequisites={"dingrits-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("vonix",{order="000079",prerequisites={"biotech-mk03","advanced-electronics","big-mines"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("vonix-mk02",{order="000092",prerequisites={"py-science-pack-mk04","nano-tech"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("vonix-mk03",{order="000096",prerequisites={"vonix-mk02","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("grod",{order="000057",prerequisites={"yotoi"},unit={count=700,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("grod-mk02",{order="000068",prerequisites={"grod","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("grod-mk03",{order="000079",prerequisites={"grod-mk02","pesticides-mk01"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("grod-mk04",{order="000092",prerequisites={"grod-mk03","py-science-pack-mk04","pesticides-mk02"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("phagnot",{order="000067",prerequisites={"bhoddos","grod"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("phagnot-mk02",{order="000068",prerequisites={"phagnot","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("phagnot-mk03",{order="000082",prerequisites={"phagnot-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("phagnot-mk04",{order="000096",prerequisites={"phagnot-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("bhoddos",{order="000066",prerequisites={"uranium-processing"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("bhoddos-mk02",{order="000077",prerequisites={"py-science-pack-mk03","mycology-mk03","nuclear-power"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("bhoddos-mk03",{order="000084",prerequisites={"bhoddos-mk02","nuclear-power-mk02"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("bhoddos-mk04",{order="000098",prerequisites={"bhoddos-mk03","nuclear-power-mk03"},unit={count=900,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("immunosupressants",{order="000077",prerequisites={"kmauts"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("bio-implants",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("nanochondria",{order="000090",prerequisites={"schrodinger-antelope"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("rendering",{order="000017",prerequisites={"vrauks"},unit={count=110,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("bmp",{order="000086",prerequisites={"growth-hormone","antiviral"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("pheromones",{order="000084",prerequisites={"biotech-mk04","biopolymer","bio-implants"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("cridren",{order="000069",prerequisites={"botany-mk02","arthurian"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("cridren-mk02",{order="000077",prerequisites={"neuro-electronics-mk02"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("cridren-mk03",{order="000092",prerequisites={"cridren-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("cridren-mk04",{order="000096",prerequisites={"cridren-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("domestication",{order="000032",prerequisites={"auog"},unit={count=250,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("domestication-mk02",{order="000060",prerequisites={"auog-mk02"},unit={count=1000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("domestication-mk03",{order="000068",prerequisites={"domestication-mk02","chemical-science-pack","military-science-pack","neuro-electronics-mk01","machine-components-mk02"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"}},time=120}}) +fix_tech("domestication-mk04",{order="000081",prerequisites={"domestication-mk03","atomic-bomb","simik-mk01","advanced-electronics","intermetallics-mk03"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) +fix_tech("domestication-mk05",{order="000096",prerequisites={"domestication-mk04","utility-science-pack","oil-machines-mk03"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("zipir-mk02",{order="000071",prerequisites={"organ-printing","genetics-mk04","neuro-electronics-mk01"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("zipir-mk03",{order="000081",prerequisites={"zipir-mk02","tholin-mk01","immunosupressants","neuro-electronics-mk02"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) +fix_tech("zipir-mk04",{order="000092",prerequisites={"zipir-mk03","py-science-pack-mk04","assisted-embryology"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("fawogae-mk01",{order="000017",prerequisites={"auog-mk00"},unit={count=110,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("fawogae-mk02",{order="000056",prerequisites={"fawogae-mk01","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("fawogae-mk03",{order="000076",prerequisites={"fawogae-mk02","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("fawogae-mk04",{order="000092",prerequisites={"py-science-pack-mk04","mycology-mk03"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("fawogae-mk05",{order="000096",prerequisites={"fawogae-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"}},time=600}}) +fix_tech("antitumor",{order="000088",prerequisites={"earnshaw-theorem","antiviral","numal-mk01"},unit={count=1750,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("trits",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("trits-mk02",{order="000071",prerequisites={"organ-printing","genetics-mk04","neuro-electronics-mk01"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("trits-mk03",{order="000078",prerequisites={"trits-mk02","immunosupressants","neuro-electronics-mk02"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("trits-mk04",{order="000092",prerequisites={"trits-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("korlex",{order="000052",prerequisites={"biotech-mk02","oil-sands","kicalk","methanol-processing-1","fertilizer-mk02"},unit={count=1000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("korlex-mk02",{order="000067",prerequisites={"grod","bhoddos","organ-printing","neuro-electronics-mk01","fish-mk03"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("korlex-mk03",{order="000077",prerequisites={"korlex-mk02","neuro-electronics-mk02"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("korlex-mk04",{order="000092",prerequisites={"korlex-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("recombinant-ery",{order="000086",prerequisites={"growth-hormone","antiviral","numal-mk01"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("reca",{order="000086",prerequisites={"growth-hormone","antiviral","numal-mk01"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("orexigenic",{order="000086",prerequisites={"growth-hormone","antiviral"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("mega-farm",{order="000070",prerequisites={"machines-mk03","botany-mk02","aerogel"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("mega-farm-ralesia",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("mega-farm-rennea",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("mega-farm-tuuphra",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("mega-farm-grod",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("mega-farm-yotoi",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("mega-farm-bioreserve",{order="000071",prerequisites={"mega-farm","biofilm"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("vrauks",{order="000016",prerequisites={"land-animals-mk01","basic-substrate","biotech-machines-mk01","fluid-handling"},unit={count=100,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("vrauks-mk02",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("vrauks-mk03",{order="000058",prerequisites={"grod"},unit={count=800,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("vrauks-mk04",{order="000079",prerequisites={"vrauks-mk03","growth-hormone","energy-drink"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("vrauks-mk05",{order="000092",prerequisites={"vrauks-mk04","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("energy-drink",{order="000058",prerequisites={"rennea","grod"},unit={count=800,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("chitin",{order="000073",prerequisites={"dingrits","bhoddos","collagen"},unit={count=1750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("phytomining",{order="000014",prerequisites={"kicalk"},unit={count=75,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("phytomining-mk02",{order="000069",prerequisites={"botany-mk02","phytomining"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("phytomining-mk03",{order="000086",prerequisites={"botany-mk03"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("microfilters",{order="000037",prerequisites={"mycology-mk02"},unit={count=175,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("microfilters-mk02",{order="000068",prerequisites={"mycology-mk03"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("organ-printing",{order="000062",prerequisites={"aramid"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("organ-printing-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("organ-printing-mk03",{order="000092",prerequisites={"organ-printing-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("mass-production",{order="000096",prerequisites={"organ-printing-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("cottongut-mk01",{order="000033",prerequisites={"starch-mk01","fish-mk01"},unit={count=275,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("cottongut-mk02",{order="000067",prerequisites={"grod","bhoddos"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("cottongut-mk03",{order="000081",prerequisites={"cottongut-mk02","pharmagenomics"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) +fix_tech("cottongut-mk04",{order="000092",prerequisites={"cottongut-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("compost",{order="000009",prerequisites={"vacuum-tube-electronics","acetylene"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("arqad",{order="000043",prerequisites={"sugar","ulric","coke-mk02","vrauks-mk02","petroleum-gas-mk01"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("arqad-mk02",{order="000074",prerequisites={"dhilmos","moondrop-mk03","chitin"},unit={count=2000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("arqad-mk03",{order="000080",prerequisites={"moondrop-mk04","energy-drink","korlex-mk03"},unit={count=1600,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("arqad-mk04",{order="000093",prerequisites={"arqad-mk03","moondrop-mk05","phadai-mk03"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("cardial-hypopharynx",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("chromasome-infocrystalization",{order="000082",prerequisites={"arqad-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("laika",{order="000094",prerequisites={"py-science-pack-mk04","exoskeleton-equipment"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("pesticides-mk01",{order="000078",prerequisites={"biotech-mk03"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("pesticides-mk02",{order="000083",prerequisites={"pesticides-mk01","biotech-mk04"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("symbiosis-mk01",{order="000069",prerequisites={"ulric-mk02","heavy-oil-mk02","organ-printing","neuro-electronics-mk01"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("bioprocessing",{order="000049",prerequisites={"silicon-carbide"},unit={count=700,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("simik-mk01",{order="000076",prerequisites={"land-animals-mk02","py-science-pack-mk03","electric-energy-distribution-2","gate"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("simik-mk02",{order="000082",prerequisites={"production-science-pack","domestication-mk04"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("simik-mk03",{order="000092",prerequisites={"simik-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("simik-mk04",{order="000099",prerequisites={"simik-mk03","organ-printing-mk03","space-science-pack"},unit={count=1100,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("fish-mk01",{order="000008",prerequisites={"seaweed-mk01","microbiology-mk01","optics"},unit={count=40,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("fish-mk02",{order="000038",prerequisites={"filtration"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("fish-mk03",{order="000060",prerequisites={"nylon"},unit={count=1000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("fish-mk04",{order="000076",prerequisites={"fish-mk03","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("guar-mk02",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("guar-mk03",{order="000079",prerequisites={"guar-mk02","pesticides-mk01","ralesia-mk03"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("guar-mk04",{order="000092",prerequisites={"guar-mk03","py-science-pack-mk04","pesticides-mk02"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("moss-mk01",{order="000003",prerequisites={"coal-processing-1"},unit={count=22,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("moss-mk02",{order="000063",prerequisites={"organ-printing"},unit={count=1400,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("moss-mk03",{order="000070",prerequisites={"moss-mk02","chemical-science-pack","phytomining-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("moss-mk04",{order="000093",prerequisites={"botany-mk03","moss-mk03","organ-printing-mk03"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("wood-processing-4",{order="000086",prerequisites={"botany-mk03","wood-processing-3"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("cottongut-science-mk01",{order="000034",prerequisites={"nonrenewable-mk01","cottongut-mk01"},unit={count=300,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("cottongut-science-mk02",{order="000054",prerequisites={"genetics-mk03"},unit={count=1200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("cottongut-science-mk03",{order="000070",prerequisites={"graphene","cellulose-mk03","cridren"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("cottongut-science-mk04",{order="000077",prerequisites={"simik-mk01"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("cottongut-science-mk05",{order="000083",prerequisites={"cottongut-science-mk04","super-alloy","biotech-mk04","xeno"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("py-science-pack-mk01",{order="000019",prerequisites={"latex"},unit={count=130,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("py-science-pack-mk02",{order="000055",prerequisites={"zipir","cottongut-science-mk02"},unit={count=1300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("py-science-pack-mk03",{order="000075",prerequisites={"diamond-mining","re-magnet","cottongut-science-mk03","arqad-mk02","acrylic","tbp"},unit={count=2250,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("py-science-pack-mk04",{order="000091",prerequisites={"recombinant-ery","antitumor","bmp","reca","nanochondria","orexigenic","anabolic-rna"},unit={count=2500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) +fix_tech("fertilizer-mk01",{order="000026",prerequisites={"melamine"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("fertilizer-mk02",{order="000046",prerequisites={"fertilizer-mk01","sulfur-processing"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("fertilizer-mk03",{order="000061",prerequisites={"fish-mk03","salts"},unit={count=1100,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("cellulose-mk01",{order="000013",prerequisites={"electrolysis","biotech-mk01"},unit={count=70,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("cellulose-mk02",{order="000057",prerequisites={"cellulose-mk01","yotoi"},unit={count=700,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("cellulose-mk03",{order="000068",prerequisites={"chemical-science-pack","coalplant-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("starch-mk01",{order="000032",prerequisites={"auog","fiberboard"},unit={count=250,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("starch-mk02",{order="000057",prerequisites={"salts"},unit={count=700,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("starch-mk03",{order="000081",prerequisites={"starch-mk02","pharmagenomics"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) +fix_tech("silicon-carbide",{order="000048",prerequisites={"quartz-mk02"},unit={count=600,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("cobalt-mk01",{order="000047",prerequisites={"rare-earth-tech"},unit={count=550,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("cobalt-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("neuro-electronics-mk01",{order="000064",prerequisites={"fine-electronics","integrated-circuits-1","epoxy"},unit={count=1600,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("neuro-electronics-mk02",{order="000076",prerequisites={"py-science-pack-mk03","paramagnetic-material","organ-printing"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("biotech-machines-mk01",{order="000015",prerequisites={"genetics-mk01"},unit={count=90,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("biotech-machines-mk02",{order="000068",prerequisites={"chemical-science-pack","neuro-electronics-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("biotech-machines-mk03",{order="000085",prerequisites={"biotech-machines-mk02","bio-implants","carbon-nanotube","superconductor","super-alloy","alloys-mk04"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("biotech-machines-mk04",{order="000100",prerequisites={"biotech-machines-mk03","quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) +fix_tech("seaweed-mk01",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("seaweed-mk02",{order="000046",prerequisites={"molybdenum-processing","fertilizer-mk01"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("seaweed-mk03",{order="000056",prerequisites={"seaweed-mk02","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("seaweed-mk04",{order="000076",prerequisites={"seaweed-mk03","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("seaweed-mk05",{order="000092",prerequisites={"seaweed-mk04","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("glass",{order="000005",prerequisites={"mining-with-fluid"},unit={count=27,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("petri-dish",{order="000006",prerequisites={"seaweed-mk01","glass"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("latex",{order="000018",prerequisites={"rendering"},unit={count=120,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("sap-mk01",{order="000007",prerequisites={"botany-mk01"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("sap-mk02",{order="000036",prerequisites={"logistic-science-pack","fertilizer-mk01"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("sap-mk03",{order="000056",prerequisites={"sap-mk02","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("sap-mk04",{order="000076",prerequisites={"sap-mk03","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("basic-substrate",{order="000009",prerequisites={"vacuum-tube-electronics"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("soil-washing",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("sugar",{order="000038",prerequisites={"tuuphra"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("ethanol",{order="000039",prerequisites={"sugar","filtration"},unit={count=225,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("ash-separation",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("crusher-2",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("vatbrain-mk01",{order="000067",prerequisites={"intermetallics-mk02"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("vatbrain-mk02",{order="000068",prerequisites={"vatbrain-mk01","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) +fix_tech("vatbrain-mk03",{order="000082",prerequisites={"vatbrain-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("vatbrain-mk04",{order="000096",prerequisites={"vatbrain-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"}},time=600}}) +fix_tech("turd-partial-respec-1",{order="000068",prerequisites={"ulric-upgrade","chemical-science-pack"},unit={count=10000,ingredients={{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("turd-partial-respec-2",{order="000076",prerequisites={"turd-partial-respec-1","py-science-pack-mk03"},unit={count=7000,ingredients={{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("turd-partial-respec-3",{order="000082",prerequisites={"turd-partial-respec-2","production-science-pack"},unit={count=5000,ingredients={{amount=6,name="py-science-pack-2",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) +fix_tech("turd-partial-respec-4",{order="000092",prerequisites={"turd-partial-respec-3","py-science-pack-mk04"},unit={count=3000,ingredients={{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("turd-partial-respec-5",{order="000100",prerequisites={"turd-partial-respec-4","quantum"},unit={ingredients={{amount=20,name="chemical-science-pack",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=30,name="py-science-pack-2",type="item"}},time=1200}}) +fix_tech("biofluid-mk01",{order="000071",prerequisites={"genetics-mk04","radars-mk02"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("biofluid-mk02",{order="000081",prerequisites={"biofluid-mk01","pharmagenomics"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) +fix_tech("biofluid-mk03",{order="000094",prerequisites={"biofluid-mk02","pheromones","nano-tech","cadaveric-arum-mk04","rennea-mk04","wood-processing-4","arqad-mk04","nexelit-mk03"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("mining-with-fluid",{order="000004",prerequisites={"steel-processing","ash-separation"},unit={count=25,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("electric-mining-drill",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("zungror",{order="000079",prerequisites={"biotech-mk03","gun-turret","laser-turret","simik-mk01","advanced-electronics"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("zungror-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) +fix_tech("zungror-mk03",{order="000092",prerequisites={"zungror-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("cadaveric-arum-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("cadaveric-arum-mk03",{order="000079",prerequisites={"cadaveric-arum-mk02","pesticides-mk01","petroleum-gas-mk02"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("cadaveric-arum-mk04",{order="000092",prerequisites={"cadaveric-arum-mk03","py-science-pack-mk04","pesticides-mk02","coke-mk03"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("antimony-mk01",{order="000022",prerequisites={"excavation-1","crusher-2","smelters-mk01","scrude"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("antimony-mk02",{order="000058",prerequisites={"ethylene"},unit={count=800,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("antimony-mk03",{order="000076",prerequisites={"py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("antimony-mk04",{order="000090",prerequisites={"machines-mk04","antimony-mk03"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("silicon-mk01",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("silicon-mk02",{order="000070",prerequisites={"energy-2","diamond-mining"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("silicon-mk03",{order="000083",prerequisites={"quartz-mk04","casting-mk02"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("thermal-mk01",{order="000069",prerequisites={"solar-power-mk01","coalplant-mk01","energy-2","machine-components-mk02"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("thermal-mk02",{order="000083",prerequisites={"thermal-mk01","solar-power-mk02","wind-mk02"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("thermal-mk03",{order="000093",prerequisites={"solar-power-mk03"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) +fix_tech("thermal-mk04",{order="000097",prerequisites={"thermal-mk03","solar-power-mk04"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("eva",{order="000058",prerequisites={"advanced-mining-facilities","ethylene"},unit={count=800,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("renewable-mk01",{order="000030",prerequisites={"energy-1","hot-air-mk01"},unit={count=200,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("renewable-mk02",{order="000068",prerequisites={"renewable-mk01","energy-2","intermetallics-mk02","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("renewable-mk03",{order="000082",prerequisites={"renewable-mk02","energy-3","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("renewable-mk04",{order="000094",prerequisites={"renewable-mk03","fusion-mk02"},unit={count=3300,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("nonrenewable-mk01",{order="000030",prerequisites={"energy-1","py-asphalt"},unit={count=200,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("nonrenewable-mk02",{order="000068",prerequisites={"energy-2","intermetallics-mk02","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("nonrenewable-mk03",{order="000082",prerequisites={"nonrenewable-mk02","energy-3","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("nonrenewable-mk04",{order="000093",prerequisites={"nonrenewable-mk03","py-science-pack-mk04","machine-components-mk04"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("anti-solar",{order="000094",prerequisites={"solar-mk03","machine-components-mk04"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("tidal-mk01",{order="000031",prerequisites={"renewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("tidal-mk02",{order="000069",prerequisites={"tidal-mk01","renewable-mk02"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("tidal-mk03",{order="000083",prerequisites={"tidal-mk02","renewable-mk03","low-density-structure"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("tidal-mk04",{order="000095",prerequisites={"tidal-mk03","renewable-mk04"},unit={count=3600,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("solar-mk01",{order="000071",prerequisites={"solar-power-mk01","silicon-mk02"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("solar-mk02",{order="000084",prerequisites={"solar-power-mk02","silicon-mk03","thermal-mk01"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("solar-mk03",{order="000093",prerequisites={"solar-mk02","solar-power-mk03","silver-mk02"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("solar-mk04",{order="000097",prerequisites={"solar-power-mk04"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("wind-mk01",{order="000031",prerequisites={"renewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("wind-mk02",{order="000069",prerequisites={"wind-mk01","renewable-mk02"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("wind-mk03",{order="000083",prerequisites={"wind-mk02","renewable-mk03","fish-mk03"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("wind-mk04",{order="000095",prerequisites={"wind-mk03","renewable-mk04"},unit={count=3600,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("geothermal-power-mk01",{order="000022",prerequisites={"hot-air-mk01","electric-mining-drill"},unit={count=80,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("geothermal-power-mk02",{order="000069",prerequisites={"renewable-mk02"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("geothermal-power-mk03",{order="000083",prerequisites={"geothermal-power-mk02","renewable-mk03"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("geothermal-power-mk04",{order="000095",prerequisites={"geothermal-power-mk03","renewable-mk04"},unit={count=3600,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("solar-power-mk01",{order="000068",prerequisites={"renewable-mk01","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("solar-power-mk02",{order="000082",prerequisites={"renewable-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("solar-power-mk03",{order="000092",prerequisites={"renewable-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("solar-power-mk04",{order="000096",prerequisites={"renewable-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("thorium",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("coalplant-mk01",{order="000031",prerequisites={"nonrenewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("coalplant-mk02",{order="000069",prerequisites={"nonrenewable-mk02","coalplant-mk01"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("coalplant-mk03",{order="000083",prerequisites={"nonrenewable-mk03","coalplant-mk02","low-density-structure"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("coalplant-mk04",{order="000094",prerequisites={"nonrenewable-mk04","coalplant-mk03"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("oilplant-mk01",{order="000031",prerequisites={"nonrenewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("oilplant-mk02",{order="000071",prerequisites={"nonrenewable-mk02","oilplant-mk01","moondrop-mk03","coalplant-mk01","light-oil-mk03"},unit={count=3300,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("oilplant-mk03",{order="000083",prerequisites={"nonrenewable-mk03","oilplant-mk02","low-density-structure"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("oilplant-mk04",{order="000094",prerequisites={"nonrenewable-mk04","oilplant-mk03"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("gasplant-mk01",{order="000043",prerequisites={"petroleum-gas-mk01"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("gasplant-mk02",{order="000069",prerequisites={"nonrenewable-mk02","gasplant-mk01","chemical-science-pack"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("gasplant-mk03",{order="000084",prerequisites={"nonrenewable-mk03","gasplant-mk02","petroleum-gas-mk02","biopolymer"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("gasplant-mk04",{order="000096",prerequisites={"nonrenewable-mk04","gasplant-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("biomassplant-mk01",{order="000031",prerequisites={"renewable-mk01","nonrenewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("biomassplant-mk02",{order="000069",prerequisites={"renewable-mk02","nonrenewable-mk02","biomassplant-mk01","coalplant-mk01","neuro-electronics-mk01"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("biomassplant-mk03",{order="000083",prerequisites={"renewable-mk03","nonrenewable-mk03","biomassplant-mk02"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("biomassplant-mk04",{order="000095",prerequisites={"renewable-mk04","nonrenewable-mk04","biomassplant-mk03"},unit={count=1600,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("gadolinium",{order="000077",prerequisites={"rare-earth-tech-mk02","ammonium-oxalate","vanadium-processing-2"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("lithium-processing",{order="000075",prerequisites={"sb-silicate","tbp","cellulose-mk03","coated-container"},unit={count=2250,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("mof",{order="000079",prerequisites={"biotech-mk03","small-parts-mk03"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("intermetallics-mk01",{order="000023",prerequisites={"nexelit-mk01","antimony-mk01","nickel-mk01"},unit={count=90,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("intermetallics-mk02",{order="000066",prerequisites={"navens","eva","rayon"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("intermetallics-mk03",{order="000080",prerequisites={"mof","gold","silicon-mk02","lithium-niobate"},unit={count=1600,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("intermetallics-mk04",{order="000090",prerequisites={"machines-mk04","reca","battery-mk04","nexelit-mk02","zinc-mk02","quartz-mk04","biofet"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("battery-mk01",{order="000026",prerequisites={"melamine"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("battery-mk02",{order="000066",prerequisites={"rayon","uranium-processing","pyrite"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("battery-mk03",{order="000077",prerequisites={"kmauts","lithium-niobate"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("battery-mk04",{order="000089",prerequisites={"parametric-oscilator","fusion-mk01","supercapacitor","earnshaw-theorem"},unit={count=2000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("photonics",{order="000090",prerequisites={"solar-mk02","battery-mk04"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("microwave-receiver",{order="000085",prerequisites={"solar-mk02","machine-components-mk03"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("nuclear-power-mk02",{order="000083",prerequisites={"uranium-mk02","nonrenewable-mk02","machine-components-mk03","py-burner"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("nuclear-power-mk03",{order="000097",prerequisites={"uranium-mk03","nonrenewable-mk03","nuclear-power-mk02"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) +fix_tech("nuclear-power-mk04",{order="000101",prerequisites={"uranium-mk04","nonrenewable-mk04","wind-mk04"},unit={count=550,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=100,name="py-science-pack-1",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"}},time=1200}}) +fix_tech("carbon-fiber",{order="000077",prerequisites={"ammonium-oxalate"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("erbium",{order="000077",prerequisites={"rare-earth-tech-mk02","ammonium-oxalate","helium-processing"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("nano-mesh",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("biofet",{order="000085",prerequisites={"smelters-mk03","numal-mk01","genetics-mk05"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("mega-farm-mova",{order="000082",prerequisites={"mega-farm","production-science-pack","growth-hormone"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("nanozymes",{order="000084",prerequisites={"mega-farm-mova","xeno","thermal-mk02"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("advanced-robotics",{order="000085",prerequisites={"robotics","carbon-nanotube","super-alloy","alloys-mk04","superconductor"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("rare-earth-tech-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("numal-mk01",{order="000077",prerequisites={"simik-mk01"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("numal-mk02",{order="000082",prerequisites={"numal-mk01","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("numal-mk03",{order="000092",prerequisites={"water-animals-mk03","numal-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("numal-mk04",{order="000097",prerequisites={"water-animals-mk04","numal-mk03"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"}},time=600}}) +fix_tech("sb-silicate",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("lithium-niobate",{order="000076",prerequisites={"py-science-pack-mk03","lithium-processing","helium-processing"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("sc-engine",{order="000088",prerequisites={"helium-processing-mk02","earnshaw-theorem"},unit={count=1750,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("machine-components-mk01",{order="000028",prerequisites={"rubber","battery-mk01"},unit={count=150,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("machine-components-mk02",{order="000067",prerequisites={"epoxy","battery-mk02","eva"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("machine-components-mk03",{order="000081",prerequisites={"erbium","advanced-electronics","casting-mk02","solar-mk01","intermetallics-mk03","battery-mk03"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("machine-components-mk04",{order="000092",prerequisites={"intermetallics-mk04","nano-tech"},unit={count=2750,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) +fix_tech("tbp",{order="000071",prerequisites={"microfibers"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("acrylic",{order="000071",prerequisites={"microfibers","cobalt-mk02"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("ammonium-oxalate",{order="000076",prerequisites={"py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("electric-energy-distribution-3",{order="000063",prerequisites={"electric-energy-distribution-2","stainless-steel-mk01"},unit={count=1400,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("electric-energy-distribution-4",{order="000070",prerequisites={"electric-energy-distribution-3","super-steel-mk01"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) +fix_tech("electric-energy-distribution-5",{order="000082",prerequisites={"electric-energy-distribution-4","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("auog-mk00",{order="000016",prerequisites={"biotech-machines-mk01","fluid-handling"},unit={count=100,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("kicalk-mk02",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("kicalk-mk03",{order="000076",prerequisites={"kicalk-mk02","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("kicalk-mk04",{order="000092",prerequisites={"kicalk-mk03","py-science-pack-mk04","parametric-oscilator"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("schrodinger-antelope",{order="000089",prerequisites={"sc-engine","nexelit-mk02","antiviral"},unit={count=2000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("mega-farm-kicalk",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("mega-farm-cadaveric-arum",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("moondrop-mk02",{order="000052",prerequisites={"fertilizer-mk01","biotech-mk02"},unit={count=1000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("moondrop-mk03",{order="000070",prerequisites={"moondrop-mk02","phytomining-mk02"},unit={count=3000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("moondrop-mk04",{order="000079",prerequisites={"pesticides-mk01"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("moondrop-mk05",{order="000092",prerequisites={"moondrop-mk04","phytomining-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("mining-productivity-5",{order="000069",prerequisites={"machines-mk03","mining-productivity-4"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("mining-productivity-6",{order="000070",prerequisites={"mining-productivity-5"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("mining-productivity-7",{order="000090",prerequisites={"machines-mk04","mining-productivity-6"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("mining-productivity-8",{order="000091",prerequisites={"mining-productivity-7"},unit={count=2500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("mining-productivity-9",{order="000101",prerequisites={"machines-mk05","mining-productivity-8"},unit={count=1300,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("mining-productivity-10",{order="000102",prerequisites={"mining-productivity-9"},unit={count=1500,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("mining-productivity-11",{order="000103",prerequisites={"mining-productivity-10"},unit={count=700,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("mining-productivity-12",{order="000104",prerequisites={"mining-productivity-11"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("arqad-upgrade",{order="000044",prerequisites={"arqad"},unit={count=5000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("arthurian-upgrade",{order="000086",prerequisites={"arthurian-mk02"},unit={count=5000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("atomizer-upgrade",{order="000101",prerequisites={"molecular-decohesion-mk04","biotech-machines-mk04"},unit={count=2000,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("auog-upgrade",{order="000060",prerequisites={"auog-mk02"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("bhoddos-upgrade",{order="000083",prerequisites={"bhoddos-mk02","effectivity-module-2"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("biofactory-upgrade",{order="000076",prerequisites={"py-science-pack-mk03"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("bioprinting-upgrade",{order="000089",prerequisites={"organ-printing-mk02","parametric-oscilator"},unit={count=5000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("bioreactor-upgrade",{order="000098",prerequisites={"mass-production","thermal-mk04"},unit={count=2000,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("cadaveric-arum-upgrade",{order="000074",prerequisites={"cadaveric-arum-mk02","chitin"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("compost-upgrade",{order="000038",prerequisites={"tuuphra","military-science-pack"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("cottongut-upgrade",{order="000071",prerequisites={"cottongut-science-mk03","lead-mk03"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("creature-chamber-upgrade",{order="000033",prerequisites={"domestication"},unit={count=2000,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("cridren-upgrade",{order="000078",prerequisites={"cridren-mk02"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("data-array-upgrade",{order="000054",prerequisites={"genetics-mk03"},unit={count=5000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("dhilmos-upgrade",{order="000097",prerequisites={"dhilmos-mk04"},unit={count=2000,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("dingrits-upgrade",{order="000101",prerequisites={"dingrits-mk04","land-animals-mk04"},unit={count=2000,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("fast-wood-forestry-upgrade",{order="000008",prerequisites={"wood-processing"},unit={count=500,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("fawogae-upgrade",{order="000057",prerequisites={"fawogae-mk02"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("fish-upgrade",{order="000031",prerequisites={"fish-mk01","cooling-tower-1"},unit={count=2000,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("genlab-upgrade",{order="000086",prerequisites={"biotech-machines-mk03","personal-laser-defense-equipment"},unit={count=5000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) +fix_tech("grod-upgrade",{order="000069",prerequisites={"grod-mk02"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("guar-upgrade",{order="000080",prerequisites={"guar-mk03"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("incubator-upgrade",{order="000047",prerequisites={"fertilizer-mk02"},unit={count=5000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) +fix_tech("kicalk-upgrade",{order="000077",prerequisites={"kicalk-mk03"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("kmauts-upgrade",{order="000093",prerequisites={"kmauts-mk03"},unit={count=3000,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("korlex-upgrade",{order="000080",prerequisites={"korlex-mk03","filtration-mk02"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("micromine-upgrade",{order="000069",prerequisites={"microfilters-mk02"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("moondrop-upgrade",{order="000008",prerequisites={"moondrop"},unit={count=500,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("moss-upgrade",{order="000026",prerequisites={"melamine"},unit={count=2000,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("mukmoux-upgrade",{order="000078",prerequisites={"mukmoux-mk03"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("navens-upgrade",{order="000083",prerequisites={"navens-mk03","vonix","nuclear-power"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("numal-upgrade",{order="000093",prerequisites={"numal-mk03"},unit={count=3000,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) +fix_tech("phadai-upgrade",{order="000076",prerequisites={"py-science-pack-mk03"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("phagnot-upgrade",{order="000069",prerequisites={"phagnot-mk02"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("ralesia-upgrade",{order="000070",prerequisites={"ralesia-mk02","helium-processing","thermal-mk01","military-science-pack"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("rennea-upgrade",{order="000069",prerequisites={"solar-power-mk01"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("research-upgrade",{order="000070",prerequisites={"biotech-machines-mk02","lead-mk03"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("sap-upgrade",{order="000057",prerequisites={"sap-mk03"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("schrodinger-antelope-upgrade",{order="000102",prerequisites={"simik-digestion-mk06","nuclear-power-mk04"},unit={count=1000,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=100,name="py-science-pack-1",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"}},time=1200}}) +fix_tech("scrondrix-upgrade",{order="000072",prerequisites={"scrondrix"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("seaweed-upgrade",{order="000047",prerequisites={"seaweed-mk02"},unit={count=5000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("simik-digestion-mk01",{order="000077",prerequisites={"simik-mk01"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("simik-digestion-mk02",{order="000078",prerequisites={"simik-digestion-mk01"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("simik-digestion-mk03",{order="000083",prerequisites={"simik-mk02","simik-digestion-mk02"},unit={count=5000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("simik-digestion-mk04",{order="000093",prerequisites={"simik-digestion-mk03","simik-mk03"},unit={count=3000,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) +fix_tech("simik-digestion-mk05",{order="000100",prerequisites={"simik-digestion-mk04","simik-mk04"},unit={count=2000,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) +fix_tech("simik-digestion-mk06",{order="000101",prerequisites={"simik-digestion-mk05","land-animals-mk04"},unit={count=1000,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=100,name="py-science-pack-1",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"}},time=1200}}) +fix_tech("slaughterhouse-upgrade",{order="000069",prerequisites={"laser-turret","biotech-machines-mk02"},unit={count=10000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("sponge-upgrade",{order="000068",prerequisites={"water-invertebrates-mk02"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("trits-upgrade",{order="000091",prerequisites={"photonics","nexelit-mk03"},unit={count=5000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) +fix_tech("tuuphra-upgrade",{order="000059",prerequisites={"tuuphra-mk02","phenol"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("ulric-upgrade",{order="000060",prerequisites={"ulric-mk02"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) +fix_tech("vonix-upgrade",{order="000094",prerequisites={"speed-module-3"},unit={count=5000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("vrauks-upgrade",{order="000021",prerequisites={"vrauks-mk02"},unit={count=2000,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("xeno-upgrade",{order="000093",prerequisites={"xeno-mk03"},unit={count=3000,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) +fix_tech("xyhiphoe-upgrade",{order="000053",prerequisites={"water-invertebrates-mk01"},unit={count=5000,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("yaedols-upgrade",{order="000069",prerequisites={"yaedols-mk02"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("yotoi-upgrade",{order="000082",prerequisites={"yotoi-mk02","machine-components-mk03"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("zipir-upgrade",{order="000057",prerequisites={"trits"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("zungror-upgrade",{order="000093",prerequisites={"zungror-mk03"},unit={count=3000,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) diff --git a/changelog.txt b/changelog.txt index 6d0ca02..d308b21 100644 --- a/changelog.txt +++ b/changelog.txt @@ -8,6 +8,8 @@ Date: ???? - Changed geothermal plant to a fixed recipe - Removed biosample from seaweed recipe - Removed fake bioreserve recipe + - Rebuilt tech tree from the ground up + - Moved phytomining 2 to Py2 Bugfixes: - Re-added the geothermal plant animation - Allow steampowered washers to be placed adjacent diff --git a/data-updates.lua b/data-updates.lua index 4596656..7c069e6 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -8,34 +8,80 @@ for _, controller in DATA:pairs('god-controller') do end ]]-- ---[[ -local ores = { - antimonium = true, - borax = true, - ["copper-ore"] = true, - ["molybdenum-ore"] = true, - niobium = true, - ["ore-aluminium"] = true, - ["ore-bioreserve"] = true, - ["ore-chromium"] = true, - ["ore-lead"] = true, - ["ore-nickel"] = true, - ["ore-tin"] = true, - ["ore-titanium"] = true, - ["ore-zinc"] = true, - ["phosphate-rock"] = true, - ree = true, - stone = true, + +local ores_from_nothing = { + ["iron-ore"] = true, + ["copper-ore"] = true, + ["coal"] = true, + ["stone"] = true, + -- ["uranium-ore"] = true, + -- ["crude-oil"] = true, + ["borax"] = true, + ["niobium"] = true, + ["molybdenum-ore"] = true, + ["volcanic-pipe"] = true, + -- ["regolites"] = true, + ["ore-quartz"] = true, + ["raw-coal"] = true, + ["ore-aluminium"] = true, + ["ore-chromium"] = true, + ["ore-lead"] = true, + ["ore-nickel"] = true, + ["ore-tin"] = true, + ["ore-titanium"] = true, + ["ore-zinc"] = true, + ["quartz-rock"] = true, + ["chromium-rock"] = true, + ["aluminium-rock"] = true, + ["copper-rock"] = true, + ["salt-rock"] = true, + ["iron-rock"] = true, + ["coal-rock"] = true, + ["lead-rock"] = true, + ["nexelit-rock"] = true, + ["nickel-rock"] = true, + ["tin-rock"] = true, + ["titanium-rock"] = true, + ["uranium-rock"] = true, + ["zinc-rock"] = true, + -- ["phosphate-rock-02"] = true, + -- ["phosphate-rock"] = true, + -- ["rare-earth-bolide"] = true, + -- ["oil-sand"] = true, + -- ["tar-patch"] = true, + -- ["oil-mk01"] = true, + -- ["oil-mk02"] = true, + -- ["oil-mk03"] = true, + -- ["oil-mk04"] = true, + -- ["sulfur-patch"] = true, + -- ["natural-gas-mk01"] = true, + -- ["natural-gas-mk02"] = true, + -- ["natural-gas-mk03"] = true, + -- ["natural-gas-mk04"] = true, + -- ["bitumen-seep"] = true, + ["ralesia-flowers"] = true, + ["rennea-flowers"] = true, + ["tuuphra-tuber"] = true, + ["grod-flower"] = true, + ["yotoi-tree"] = true, + ["yotoi-tree-fruit"] = true, + ["ore-bioreserve"] = true, + ["ore-nexelit"] = true, + ["geothermal-crack"] = true, + ["ree"] = true, + ["antimonium"] = true, + ["mova"] = true, + ["kicalk-tree"] = true, + ["arum"] = true, } -]]-- + if settings.startup["pypp-dev-mode"].value == true and settings.startup["pypp-create-cache"].value == true then for r, resource in pairs(data.raw.resource) do - resource.autoplace = nil - --if ores[resource.name] ~= true then - --resource.autoplace = nil - --end - --log(resource.name) + -- resource.autoplace = nil + if ores_from_nothing[resource.name] == true then + resource.autoplace = nil + end end end @@ -130,69 +176,29 @@ end data.raw.technology["excavation-1"].unit.ingredients = {{"automation-science-pack", 1},{"py-science-pack-1",1}} data.raw.technology["excavation-1"].prerequisites = nil ---TECHNOLOGY("guar"):remove_pack("logistic-science-pack") +table.insert(RECIPE("soot-separation").results, {type = "item", name = "ore-nickel", amount = 1, probability = 0.1}) + +RECIPE("soot-separation"):set_fields{unlock_results = true, ignore_in_pypp = false} RECIPE("mining-antimony"):remove_unlock("excavation-2"):add_unlock("excavation-1") RECIPE("ground-borer"):remove_ingredient("intermetallics") -RECIPE("guar-gum-plantation"):remove_ingredient("intermetallics") - RECIPE("mining-borax"):replace_ingredient("drilling-fluid-1", "lubricant") -data.raw.technology["mega-farm"].unit.ingredients = {{"automation-science-pack", 1},{"py-science-pack-1",1}} -TECHNOLOGY("mega-farm"):set_fields{prerequisites = {}} - -RECIPE("mega-farm"):set_fields{ingredients = {}}:add_ingredient({"concrete", 200}):add_ingredient({"treated-wood", 50}) - -RECIPE("replicator-bioreserve"):set_fields{ingredients = {}} - -data.raw.technology["mega-farm-bioreserve"].unit.ingredients = {{"automation-science-pack", 1},{"py-science-pack-1",1}} - -RECIPE("arqad-hive-mk01"):remove_ingredient("intermetallics") +-- data.raw.technology["mega-farm"].unit.ingredients = {{"automation-science-pack", 1},{"py-science-pack-1",1}} +-- TECHNOLOGY("mega-farm"):set_fields{prerequisites = {}} -TECHNOLOGY("arqad"):remove_pack("logistic-science-pack") +-- RECIPE("mega-farm"):set_fields{ingredients = {}}:add_ingredient({"concrete", 200}):add_ingredient({"treated-wood", 50}) -table.insert(RECIPE("soot-separation").results, {type = "item", name = "ore-nickel", amount = 1, probability = 0.1}) - -RECIPE("soot-separation"):set_fields{unlock_results = true} +-- RECIPE("replicator-bioreserve"):set_fields{ingredients = {}} -RECIPE("titanium-plate-1"):remove_unlock("alloys-mk01"):add_unlock("yaedols") +-- data.raw.technology["mega-farm-bioreserve"].unit.ingredients = {{"automation-science-pack", 1},{"py-science-pack-1",1}} RECIPE("earth-generic-sample"):remove_unlock("xenobiology"):add_unlock("biotech-mk01") RECIPE("data-array"):remove_ingredient("titanium-plate") -TECHNOLOGY("xenobiology"):set_fields{prerequisites = {"yaedols"}} - ---fake recipes to make ores from nothing to fake tech tree with pypp - -RECIPE { - type = "recipe", - name = "fake-bioreserve-ore", - category = "crafting", - enabled = false, - energy_required = 1, - ingredients = {}, - results = { - {type = "item", name = "native-flora", amount = 1} - } -} - ---[[ -RECIPE { - type = "recipe", - name = "fake-kerogen-ore", - category = "crafting", - enabled = false, - energy_required = 1, - ingredients = {}, - results = { - {type = "item", name = "kerogen", amount = 1} - } -} -]]-- - if register_cache_file ~= nil then register_cache_file({'pycoalprocessing', 'pyfusionenergy', 'pyindustry', 'pyrawores', 'pypetroleumhandling', 'pyalienlife', 'pyhightech', 'pyalternativeenergy', 'PyBlock'}, "__PyBlock__/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores") end diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index 098299e..7f403d6 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -82,7 +82,6 @@ RECIPE { }, results = { { type = "fluid", name = "geothermal-water", amount = 100, temperature = 3000}, - }, main_product = "geothermal-water", }:add_unlock('geothermal-power-mk01') @@ -137,7 +136,6 @@ RECIPE { ingredients = { { type = "item", name = "soil", amount = 8 }, { type = "fluid", name = "water", amount = 500 }, - { type = "item", name = "seaweed", amount = 4 }, { type = "item", name = "fawogae", amount = 4 } }, results = { @@ -166,45 +164,6 @@ RECIPE { --UNUSED ---[[ ---handcraft seaweed to raw coal -RECIPE { - type = "recipe", - name = "handpressed-coal", - ingredients = - { - { type = "item", name = "seaweed", amount = 5 }, - }, - results = - { - { type = "item", name = "raw-coal", amount = 1 } - }, - main_product = "raw-coal", - category = "handcrafting" -} - -RECIPE { - type = "recipe", - name = "coal-gas-from-seaweed", - category = "distilator", - enabled = true, - energy_required = 3, - ingredients = { - { type = "item", name = "seaweed", amount = 10 } - }, - results = { - { type = "fluid", name = "coal-gas", amount = 5 }, - { type = "fluid", name = "tar", amount = 5 }, - { type = "item", name = "raw-coal", amount = 4 } - }, - main_product = "coal-gas", - icon = "__PyBlock__/graphics/icons/coalgas-from-seaweed.png", - icon_size = 64, - subgroup = "py-syngas", - order = "f" -} -]]-- - --new recipes --[[ @@ -233,61 +192,6 @@ RECIPE { } ]]-- ---tit ore from rich dust in classifer ---[[ -RECIPE { - type = "recipe", - name = "titanium-from-rich-dust", - category = "classifier", - enabled = false, - ingredients = - { - { type = "item", name = "rich-dust", amount = 10 } - }, - results = - { - { type = "item", name = "ore-titanium", amount = 2 } - }, - main_product = "ore-titanium", - icon = "__pyraworesgraphics__/graphics/icons/ores/ore-titanium.png", - icon_size = 32, - subgroup = "py-items-class", - order = "b" -} -]]-- - ---[[ -RECIPE { - type = "recipe", - name = "log-to-moss", - category = "wpu", - energy_required = 10, - ingredients = - { - { name = "log", amount = 4 } - }, - results = { - { name = "moss", amount = 1 } - } -} -]]-- ---[[ -RECIPE { - type = "recipe", - name = "sap-from-seamoss", - category = "distilator", - energy_required = 10, - ingredients = - { - { name = "seaweed", amount = 10 }, - { name = "moss", amount = 8 }, - { name = "wood", amount = 5 } - }, - results = { - { name = "saps", amount = 2 } - } -} -]]-- --nickel from clay --new fluids for ree from ash @@ -400,70 +304,4 @@ RECIPE { main_product = "rare-earth-ore", category = "electrolyzer" }:add_unlock('rare-earth-tech') -]] - ---[[ -RECIPE { - type = "recipe", - name = "log0", - category = "fwf-basic", - enabled = true, - energy_required = 60, - ingredients = {}, - results = { - { type = "item", name = "log", amount = 3 } - }, - icon = "__pycoalprocessinggraphics__/graphics/icons/log.png", - icon_size = 32, - subgroup = "py-alienlife-plants", - order = "a1" -} -]]-- - ---RECIPE('log1'):subgroup_order("py-alienlife-plants", "a2") - ---modify pyro recipes to give byproduct ores ---copper gives moly ---fun.results_replacer(data.raw.recipe["grade-1-copper-crush"], "stone", "molybdenum-ore") ---fun.results_replacer(data.raw.recipe["copper-rejects-recrush"], "gravel", "molybdenum-ore") ---[[ -RECIPE { - type = 'recipe', - name = 'fish-start-01', - category = 'fish-farm', - enabled = true, - energy_required = 100, - ingredients = { - { type = 'item', name = "seaweed", amount = 5 }, - { type = 'fluid', name = 'water', amount = 50 }, - }, - results = { - { type = 'item', name = 'fish', amount = 3 }, - }, - main_product = "fish", - subgroup = 'py-alienlife-fish', - order = 'a', -} -]] ---[[ -RECIPE { - type = 'recipe', - name = 'fish-start-02', - category = 'fish-farm', - enabled = true, - energy_required = 85, - ingredients = { - { type = 'item', name = "seaweed", amount = 5 }, - { type = 'fluid', name = 'water-saline', amount = 50 }, - }, - results = { - { type = 'item', name = 'fish', amount = 5 }, - { type = 'fluid', name = 'waste-water', amount = 50 }, - }, - main_product = "fish", - subgroup = 'py-alienlife-fish', - order = 'a', -} -]] - ---RECIPE('blood-to-zinc'):remove_unlock('molecular-decohesion-mk02'):add_unlock('molecular-decohesion') +]] \ No newline at end of file diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index d3ebeb7..4446429 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -27,9 +27,9 @@ RECIPE { --remove unused materials from fawogae mk01 RECIPE("fawogae-sample"):remove_unlock("fawogae-mk01")--:add_unlock("navens") --- RECIPE("fawogae-codex"):remove_unlock("fawogae-mk01"):add_unlock("navens") +RECIPE("fawogae-codex"):remove_unlock("fawogae-mk01"):add_unlock("yaedols-mk01") --- RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("navens") +RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("yaedols-mk01") RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-decohesion") @@ -44,9 +44,6 @@ RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"): -- seaweed RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") --- auto science --- RECIPE("automation-science-pack"):remove_ingredient("native-flora"):add_ingredient({name = "seaweed", amount = 1}) - -- botanical nursery RECIPE("botanical-nursery"):remove_ingredient("fluid-drill-mk01") @@ -105,6 +102,53 @@ RECIPE { } }:add_unlock("moss-mk01") +--Tin from fish +TECHNOLOGY("molecular-decohesion"):set_fields{prerequisites = {}}:remove_pack("py-science-pack-1") + +TECHNOLOGY("fish-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} + +TECHNOLOGY("tin-mk01"):remove_pack("py-science-pack-1") + +TECHNOLOGY("microbiology-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} + +RECIPE("fish-farm-mk01"):set_fields{ingredients = {}}:add_ingredient({type = "item", name = "steel-plate", amount = 25}):add_ingredient({type = "item", name = "glass", amount = 20}):add_ingredient("seaweed-crop-mk01") + +RECIPE("fish-to-tin"):remove_unlock("molecular-decohesion-mk02"):add_unlock("mining-with-fluid"):set_fields{ignore_in_pypp = false} + +RECIPE("fish-food-01"):remove_unlock("fish-mk01"):add_unlock("fish-mk02") + +RECIPE("saline-water"):remove_unlock("vacuum-tube-electronics"):add_unlock("fish-mk01") + +RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen"):set_fields{results = {{type = "item", name = "fish", amount = 15}, {type = "fluid", name = "waste-water", amount = 100}}} + +local breed_fish = table.deepcopy(data.raw["recipe"]["breed-fish-1"]) +breed_fish.name = "breed-fish-simple" +data.raw.recipe["breed-fish-simple"] = breed_fish + +RECIPE("breed-fish-simple"):remove_ingredient("small-lamp"):add_unlock("fish-mk01"):set_fields{energy_required = 270, results = {{type = "item", name = "fish", amount = 12}, {type = "fluid", name = "waste-water", amount = 100}}} + +RECIPE("plankton-farm"):remove_ingredient("storage-tank"):remove_ingredient("electronic-circuit") + +RECIPE("zogna-bacteria"):remove_unlock("microbiology-mk01"):add_unlock("biotech-mk01") + +--Lead + +RECIPE("soot-to-lead"):remove_unlock("oil-sands"):add_unlock("solder-mk01") + +--Zinc + +TECHNOLOGY("kicalk"):remove_pack("py-science-pack-1"):remove_pack("logistic-science-pack") + +RECIPE("kicalk-sample"):remove_ingredient("alien-sample01"):remove_ingredient("cdna") + +RECIPE("kicalk-codex"):remove_ingredient("electronic-circuit") + +RECIPE("kicalk-plantation-mk01"):remove_ingredient("intermetallics") + +RECIPE("kicalk-zn"):remove_unlock("phytomining-mk02"):add_unlock("phytomining") + +RECIPE("zn-biomass-extraction"):remove_ingredient("steam"):add_ingredient({type = 'fluid', name = 'steam', amount = 100, minimum_temperature = 250}):remove_unlock("phytomining-mk02"):add_unlock("phytomining") + --PY SCI 1 TWEAKS RECIPE("biofactory-mk01"):remove_unlock("plastics"):add_unlock("biotech-mk01") @@ -121,7 +165,7 @@ RECIPE("compost-plant-mk01"):remove_ingredient("duralumin") RECIPE("yaedols-culture-mk01"):remove_ingredient("intermetallics"):remove_ingredient("titanium-plate") -RECIPE("fungal-substrate"):remove_unlock("mycology-mk02"):add_unlock("yaedols") +RECIPE("fungal-substrate"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") RECIPE("yaedols-codex"):remove_ingredient("red-wire") @@ -131,6 +175,13 @@ RECIPE("yaedols-sample"):remove_ingredient("cdna"):remove_ingredient("alien-samp RECIPE("yaedols-1"):remove_ingredient("fertilizer") +RECIPE("ti-biomass-extraction"):remove_ingredient("steam"):add_ingredient({type = 'fluid', name = 'steam', amount = 100, minimum_temperature = 250}):remove_unlock("phytomining-mk02"):add_unlock("yaedols") + +RECIPE("yaedols-ti"):remove_unlock("phytomining-mk02"):add_unlock("yaedols") + +RECIPE("titanium-plate-1"):remove_unlock("alloys-mk01"):add_unlock("yaedols") + +-- remove titanium and intermetallics from compost RECIPE("compost-plant-mk01"):remove_ingredient("intermetallics"):remove_ingredient("titanium-plate") RECIPE("flue-gas-1"):set_fields{category = 'gasifier'} @@ -150,63 +201,6 @@ RECIPE("fe-biomass-extraction"):remove_unlock("phytomining"):add_unlock("phytomi RECIPE("cadaveric-pb"):remove_unlock("phytomining"):add_unlock("phytomining-mk02") RECIPE("s-biomass-extraction"):remove_unlock("phytomining"):add_unlock("phytomining-mk02") ---TITANIUM -RECIPE("ti-biomass-extraction"):remove_ingredient("steam"):add_ingredient({type = 'fluid', name = 'steam', amount = 100, minimum_temperature = 250}):remove_unlock("phytomining-mk02"):add_unlock("yaedols") - -RECIPE("yaedols-ti"):remove_unlock("phytomining-mk02"):add_unlock("yaedols") - ---Tin from fish -TECHNOLOGY("molecular-decohesion"):set_fields{prerequisites = {}}:remove_pack("py-science-pack-1") - -TECHNOLOGY("fish-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} - -TECHNOLOGY("tin-mk01"):remove_pack("py-science-pack-1") - -TECHNOLOGY("microbiology-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} - -RECIPE("fish-farm-mk01"):set_fields{ingredients = {}}:add_ingredient({type = "item", name = "steel-plate", amount = 25}):add_ingredient({type = "item", name = "glass", amount = 20}):add_ingredient("seaweed-crop-mk01") - -RECIPE("fish-to-tin"):remove_unlock("molecular-decohesion-mk02"):add_unlock("fish-mk01") - -RECIPE("fish-food-01"):remove_unlock("fish-mk01"):add_unlock("fish-mk02") - -local breed_fish = table.deepcopy(data.raw["recipe"]["breed-fish-1"]) -breed_fish.name = "breed-fish-simple" -breed_fish.energy_required = 270 -breed_fish.results = { - {type = "item", name = "fish", amount = 10}, - {type = "fluid", name = "waste-water", amount = 100} -} -data.raw.recipe["breed-fish-simple"] = breed_fish - -RECIPE("breed-fish-simple"):remove_ingredient("small-lamp") - -RECIPE("tin-plate-1"):add_unlock("fish-mk01") - --- RECIPE("breed-fish-egg-1"):remove_ingredient("phytoplankton"):add_ingredient({type = "item", name = "seaweed", amount = 2}) - --- RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen") - ---Lead - -RECIPE("soot-to-lead"):remove_unlock("oil-sands"):add_unlock("tar-processing") - ---Circuit Tweaks - ---Zinc - -TECHNOLOGY("kicalk"):remove_pack("py-science-pack-1"):remove_pack("logistic-science-pack") - -RECIPE("kicalk-sample"):remove_ingredient("alien-sample01"):remove_ingredient("cdna") - -RECIPE("kicalk-codex"):remove_ingredient("electronic-circuit") - -RECIPE("kicalk-plantation-mk01"):remove_ingredient("intermetallics") - -RECIPE("kicalk-zn"):remove_unlock("phytomining-mk02"):add_unlock("phytomining") - -RECIPE("zn-biomass-extraction"):remove_ingredient("steam"):add_ingredient({type = 'fluid', name = 'steam', amount = 100, minimum_temperature = 250}):remove_unlock("phytomining-mk02"):add_unlock("phytomining") - --Vrauks -- RECIPE("vrauks"):remove_ingredient("native-flora") @@ -226,7 +220,7 @@ RECIPE("yotoi-leaves-to-chromium"):remove_unlock("molecular-decohesion-mk02"):ad RECIPE("yotoi-seed-to-chromium"):remove_unlock("molecular-decohesion-mk02"):add_unlock("molecular-decohesion-mk03") --NIOBIUM ---TECHNOLOGY("phytomining-mk02"):remove_pack("chemical-science-pack"):remove_pack("py-science-pack-2"):remove_prereq("botany-mk02") +TECHNOLOGY("phytomining-mk02"):remove_pack("chemical-science-pack") RECIPE("nb-biomass-extraction"):remove_unlock("phytomining-mk02"):add_unlock("guar") RECIPE("guar-nb"):remove_unlock("phytomining-mk02"):add_unlock("guar") From 872662673d4476b3f1faaf596ce898f2960157b3 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 2 Oct 2024 19:08:09 -0700 Subject: [PATCH 029/110] update changelog --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 6d0ca02..8c5cc51 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ --------------------------------------------------------------------------------------------------- Version: 2.0.4 -Date: ???? +Date: 2024-10-03 Changes: - Added driftwood for simpler and easier collection of wood - Make seaweed float around From 41d9a75ff5e23831dce7b60ace6d5df301b5416e Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 2 Oct 2024 19:10:29 -0700 Subject: [PATCH 030/110] update changelog --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 144ee62..366e4c9 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,7 @@ Date: 2024-10-03 - Removed fake bioreserve recipe - Rebuilt tech tree from the ground up - Moved phytomining 2 to Py2 + - Re-added native flora to automation science pack Bugfixes: - Re-added the geothermal plant animation - Allow steampowered washers to be placed adjacent From 747b41413f45d2e618a224373f6b58a4215124b6 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 4 Oct 2024 23:48:47 -0700 Subject: [PATCH 031/110] automated screener to own subgroup --- changelog.txt | 5 +++++ prototypes/buildings/automated-screener-mk00.lua | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 366e4c9..05d348f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 2.0.5 +Date: ???? + Changes: + - Moved automated screener mk00 to it's own crafting subcategory +--------------------------------------------------------------------------------------------------- Version: 2.0.4 Date: 2024-10-03 Changes: diff --git a/prototypes/buildings/automated-screener-mk00.lua b/prototypes/buildings/automated-screener-mk00.lua index 9004051..bd30beb 100644 --- a/prototypes/buildings/automated-screener-mk00.lua +++ b/prototypes/buildings/automated-screener-mk00.lua @@ -18,7 +18,7 @@ ITEM { icon = "__PyBlock__/graphics/icons/automated-screener-mk00.png", icon_size = 64, flags = {}, - subgroup = "py-fusion-buildings-mk01", + subgroup = "py-fusion-buildings-mk00", order = "d", place_result = "automated-screener-mk00", stack_size = 10 From c23234d992cb8ad4c3d65b4224dc46471a11e408 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 4 Oct 2024 23:49:11 -0700 Subject: [PATCH 032/110] move faw codex and earth shroom sample to yaedols for real --- prototypes/updates/pyalienlife-updates.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 4446429..a780457 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -27,9 +27,9 @@ RECIPE { --remove unused materials from fawogae mk01 RECIPE("fawogae-sample"):remove_unlock("fawogae-mk01")--:add_unlock("navens") -RECIPE("fawogae-codex"):remove_unlock("fawogae-mk01"):add_unlock("yaedols-mk01") +RECIPE("fawogae-codex"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") -RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("yaedols-mk01") +RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-decohesion") From 351d35479b252458f33f2afd6afc71d4d048f422 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 4 Oct 2024 23:49:37 -0700 Subject: [PATCH 033/110] update pypp resource blacklist, not including kimberlite, oil sand, and uranium --- data-updates.lua | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/data-updates.lua b/data-updates.lua index 7c069e6..5ed41df 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -15,12 +15,12 @@ local ores_from_nothing = { ["coal"] = true, ["stone"] = true, -- ["uranium-ore"] = true, - -- ["crude-oil"] = true, + ["crude-oil"] = true, ["borax"] = true, ["niobium"] = true, ["molybdenum-ore"] = true, - ["volcanic-pipe"] = true, - -- ["regolites"] = true, + -- ["volcanic-pipe"] = true, + ["regolites"] = true, ["ore-quartz"] = true, ["raw-coal"] = true, ["ore-aluminium"] = true, @@ -44,21 +44,21 @@ local ores_from_nothing = { ["titanium-rock"] = true, ["uranium-rock"] = true, ["zinc-rock"] = true, - -- ["phosphate-rock-02"] = true, - -- ["phosphate-rock"] = true, - -- ["rare-earth-bolide"] = true, + ["phosphate-rock-02"] = true, + ["phosphate-rock"] = true, + ["rare-earth-bolide"] = true, -- ["oil-sand"] = true, - -- ["tar-patch"] = true, - -- ["oil-mk01"] = true, - -- ["oil-mk02"] = true, - -- ["oil-mk03"] = true, - -- ["oil-mk04"] = true, - -- ["sulfur-patch"] = true, - -- ["natural-gas-mk01"] = true, - -- ["natural-gas-mk02"] = true, - -- ["natural-gas-mk03"] = true, - -- ["natural-gas-mk04"] = true, - -- ["bitumen-seep"] = true, + ["tar-patch"] = true, + ["oil-mk01"] = true, + ["oil-mk02"] = true, + ["oil-mk03"] = true, + ["oil-mk04"] = true, + ["sulfur-patch"] = true, + ["natural-gas-mk01"] = true, + ["natural-gas-mk02"] = true, + ["natural-gas-mk03"] = true, + ["natural-gas-mk04"] = true, + ["bitumen-seep"] = true, ["ralesia-flowers"] = true, ["rennea-flowers"] = true, ["tuuphra-tuber"] = true, @@ -79,6 +79,7 @@ local ores_from_nothing = { if settings.startup["pypp-dev-mode"].value == true and settings.startup["pypp-create-cache"].value == true then for r, resource in pairs(data.raw.resource) do -- resource.autoplace = nil + log(resource.name .. " has value " .. (ores_from_nothing[resource.name] and "true" or "false")) if ores_from_nothing[resource.name] == true then resource.autoplace = nil end From d20174833d4acaaeb085df224b0e1f30a82026cd Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 4 Oct 2024 23:49:49 -0700 Subject: [PATCH 034/110] increment version --- info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/info.json b/info.json index bcb945a..06c9498 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "PyBlock", - "version": "2.0.4", + "version": "2.0.5", "factorio_version": "1.1", "title": "PyBlock", "author": "KingArthur", From d2da1b2c9c9a9931d25c49ee3c90dd55f8be33bb Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 4 Oct 2024 23:55:46 -0700 Subject: [PATCH 035/110] move to mk00 subcategory --- prototypes/buildings/basic-ddc.lua | 2 +- prototypes/buildings/burner-washer.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/prototypes/buildings/basic-ddc.lua b/prototypes/buildings/basic-ddc.lua index 383ac86..e5f87e2 100644 --- a/prototypes/buildings/basic-ddc.lua +++ b/prototypes/buildings/basic-ddc.lua @@ -69,7 +69,7 @@ ITEM { icon = "__PyBlock__/graphics/icons/distilator-mk00.png", icon_size = 64, flags = {}, - subgroup = "coal-processing", + subgroup = "py-cp-buildings-mk00", order = "k", place_result = "basic-ddc", stack_size = 20 diff --git a/prototypes/buildings/burner-washer.lua b/prototypes/buildings/burner-washer.lua index 832fefc..00d4f61 100644 --- a/prototypes/buildings/burner-washer.lua +++ b/prototypes/buildings/burner-washer.lua @@ -20,7 +20,7 @@ ITEM { icon = "__PyBlock__/graphics/icons/washer-mk00.png", icon_size = 64, flags = {}, - subgroup = "coal-processing", + subgroup = "py-cp-buildings-mk00", order = "z2", place_result = "burner-washer", stack_size = 10 From b92ca1e7577656460558d237ee40d620511f0b13 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 4 Oct 2024 23:57:42 -0700 Subject: [PATCH 036/110] that was bugging me --- prototypes/buildings/basic-ddc.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/prototypes/buildings/basic-ddc.lua b/prototypes/buildings/basic-ddc.lua index e5f87e2..0dff1ba 100644 --- a/prototypes/buildings/basic-ddc.lua +++ b/prototypes/buildings/basic-ddc.lua @@ -200,8 +200,7 @@ ENTITY { frame_count = 1, draw_as_shadow = true, shift = util.by_pixel(29.75, 22.25), - scale = 0.5, - draw_as_shadow = true + scale = 0.5 } } }}), From 352fecc4f30375399af5addb0f641aebf9cdde08 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 5 Oct 2024 01:09:10 -0700 Subject: [PATCH 037/110] update changelog --- changelog.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 05d348f..f68d84a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,7 +2,9 @@ Version: 2.0.5 Date: ???? Changes: - - Moved automated screener mk00 to it's own crafting subcategory + - Moved automated screener mk0 to it's own crafting subcategory + - Moved atomizer mk0 to the mk0 crafting category + - Moved burner destructive distillation column to the mk0 crafting category --------------------------------------------------------------------------------------------------- Version: 2.0.4 Date: 2024-10-03 From feec5c928cc6e783e9aa602bfb34fad0b4c097c3 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 5 Oct 2024 01:11:04 -0700 Subject: [PATCH 038/110] cultivator localization --- changelog.txt | 2 ++ locale/en/locale.cfg | 2 ++ 2 files changed, 4 insertions(+) diff --git a/changelog.txt b/changelog.txt index f68d84a..765e410 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,6 +5,8 @@ Date: ???? - Moved automated screener mk0 to it's own crafting subcategory - Moved atomizer mk0 to the mk0 crafting category - Moved burner destructive distillation column to the mk0 crafting category + Locale: + - Added localization to the cultivator --------------------------------------------------------------------------------------------------- Version: 2.0.4 Date: 2024-10-03 diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index e306d03..3f501ac 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -28,6 +28,7 @@ nylon-rope=Nylon Fibers nylon-rope-coated=Nylon fibers with ethylenediamine nylon-rope-uranyl-soaked=Nylon fibers soaked with uranyl nitrate uranyl-nitrate=Uranyl nitrate +cultivator-mk01=Cultivator [fluid-name] butanol=n-Butanol @@ -78,6 +79,7 @@ fwf-mk00=Slowwood forestry MK 00 fish-farm-mk00=Basic fish farm early-copper-mine=Early Copper Mine compost-plant-mk00=Steampowered Compost plant +cultivator-mk01=Cultivator [technology-name] From 89328cbd5faf923cd7866e1aa08e5092b80a0916 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 5 Oct 2024 12:37:14 -0700 Subject: [PATCH 039/110] add py1 back to molecular decohesion --- changelog.txt | 3 +++ prototypes/updates/pyalienlife-updates.lua | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 765e410..b9beecb 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,10 +1,13 @@ --------------------------------------------------------------------------------------------------- Version: 2.0.5 Date: ???? + Bugfixes: + - Added py1 back to the molecular decohesion technology Changes: - Moved automated screener mk0 to it's own crafting subcategory - Moved atomizer mk0 to the mk0 crafting category - Moved burner destructive distillation column to the mk0 crafting category + - Added recipes for kimberlite rock Locale: - Added localization to the cultivator --------------------------------------------------------------------------------------------------- diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index a780457..a53d900 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -103,7 +103,7 @@ RECIPE { }:add_unlock("moss-mk01") --Tin from fish -TECHNOLOGY("molecular-decohesion"):set_fields{prerequisites = {}}:remove_pack("py-science-pack-1") +TECHNOLOGY("molecular-decohesion"):set_fields{prerequisites = {}} TECHNOLOGY("fish-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} From cc0234b7ab417d8a4c999c21bd337999a871a57d Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 6 Oct 2024 13:33:25 -0700 Subject: [PATCH 040/110] fish breeding modules fix --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index b9beecb..06d6154 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,7 @@ Version: 2.0.5 Date: ???? Bugfixes: - Added py1 back to the molecular decohesion technology + - Fixed simple fish breeding recipe not having fish as allowed modules Changes: - Moved automated screener mk0 to it's own crafting subcategory - Moved atomizer mk0 to the mk0 crafting category diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index a53d900..dce9aff 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -124,7 +124,16 @@ RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen"): local breed_fish = table.deepcopy(data.raw["recipe"]["breed-fish-1"]) breed_fish.name = "breed-fish-simple" data.raw.recipe["breed-fish-simple"] = breed_fish - +table.insert(data.raw.module["fish"].limitation, "breed-fish-simple") +table.insert(data.raw.module["fish-mk02"].limitation, "breed-fish-simple") +table.insert(data.raw.module["fish-mk03"].limitation, "breed-fish-simple") +table.insert(data.raw.module["fish-mk04"].limitation, "breed-fish-simple") +table.insert(data.raw.module["effectivity-module"].limitation_blacklist, "breed-fish-simple") +table.insert(data.raw.module["effectivity-module-2"].limitation_blacklist, "breed-fish-simple") +table.insert(data.raw.module["effectivity-module-3"].limitation_blacklist, "breed-fish-simple") +table.insert(data.raw.module["speed-module"].limitation_blacklist, "breed-fish-simple") +table.insert(data.raw.module["speed-module-2"].limitation_blacklist, "breed-fish-simple") +table.insert(data.raw.module["speed-module-3"].limitation_blacklist, "breed-fish-simple") RECIPE("breed-fish-simple"):remove_ingredient("small-lamp"):add_unlock("fish-mk01"):set_fields{energy_required = 270, results = {{type = "item", name = "fish", amount = 12}, {type = "fluid", name = "waste-water", amount = 100}}} RECIPE("plankton-farm"):remove_ingredient("storage-tank"):remove_ingredient("electronic-circuit") From d47ccaab60c887ff4c08bb21a4684210ad077d20 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 6 Oct 2024 13:33:40 -0700 Subject: [PATCH 041/110] itemgroups for mk00 buildings --- prototypes/itemgroups.lua | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/prototypes/itemgroups.lua b/prototypes/itemgroups.lua index e09c3c6..9389fef 100644 --- a/prototypes/itemgroups.lua +++ b/prototypes/itemgroups.lua @@ -1,17 +1,28 @@ data:extend( + { { - { - type = "item-subgroup", - name = "py-alienlife-buildings-mk00", - group = "py-alienlife", - order = "a-a-a" - }, - { - type = "item-subgroup", - name = "py-alienlife-buildings-mk01", - group = "py-alienlife", - order = "a-a-b" - }, - - } + type = "item-subgroup", + name = "py-alienlife-buildings-mk00", + group = "py-alienlife", + order = "a-a-a" + }, + { + type = "item-subgroup", + name = "py-alienlife-buildings-mk01", + group = "py-alienlife", + order = "a-a-b" + }, + { + type = "item-subgroup", + name = "py-cp-buildings-mk00", + group = "coal-processing", + order = "a-a-a" + }, + { + type = "item-subgroup", + name = "py-fusion-buildings-mk00", + group = "fusion-energy", + order = "a-a-a" + }, + } ) \ No newline at end of file From 25e8ae79d7d6120d557645729469df3e491051e2 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 6 Oct 2024 13:52:43 -0700 Subject: [PATCH 042/110] itemgroups updated again --- prototypes/itemgroups.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/prototypes/itemgroups.lua b/prototypes/itemgroups.lua index 9389fef..3a0e149 100644 --- a/prototypes/itemgroups.lua +++ b/prototypes/itemgroups.lua @@ -18,11 +18,23 @@ data:extend( group = "coal-processing", order = "a-a-a" }, + { + type = "item-subgroup", + name = "py-cp-buildings-mk01", + group = "coal-processing", + order = "a-a-b" + }, { type = "item-subgroup", name = "py-fusion-buildings-mk00", group = "fusion-energy", order = "a-a-a" }, + { + type = "item-subgroup", + name = "py-fusion-buildings-mk01", + group = "fusion-energy", + order = "a-a-b" + }, } ) \ No newline at end of file From dfde2a1c52ecee5f44328d7078c47759a68cda82 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 6 Oct 2024 14:24:45 -0700 Subject: [PATCH 043/110] kimberlite rock from carbon dust --- data-updates.lua | 2 +- data.lua | 1 + prototypes/recipes/recipes-kimberlite.lua | 34 +++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 prototypes/recipes/recipes-kimberlite.lua diff --git a/data-updates.lua b/data-updates.lua index 5ed41df..8dcfe76 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -19,7 +19,7 @@ local ores_from_nothing = { ["borax"] = true, ["niobium"] = true, ["molybdenum-ore"] = true, - -- ["volcanic-pipe"] = true, + ["volcanic-pipe"] = true, ["regolites"] = true, ["ore-quartz"] = true, ["raw-coal"] = true, diff --git a/data.lua b/data.lua index b361a3b..4655d66 100644 --- a/data.lua +++ b/data.lua @@ -33,6 +33,7 @@ require("prototypes/recipe-categories") --Recipes require("prototypes/recipes/recipes") +require("prototypes/recipes/recipes-kimberlite") --require("prototypes/recipes/recipes-uranium") --formula to calulate steam consumption diff --git a/prototypes/recipes/recipes-kimberlite.lua b/prototypes/recipes/recipes-kimberlite.lua new file mode 100644 index 0000000..8bdc936 --- /dev/null +++ b/prototypes/recipes/recipes-kimberlite.lua @@ -0,0 +1,34 @@ +RECIPE{ + type = "recipe", + name = "coal-dust-early", + category = "centrifuging", + enabled = false, + energy_required = 10, + ingredients = { + {type = "fluid", name = "thickened-coal-fines", amount = 1000}, + }, + results = { + {type = "item", name = "carbon-dust", amount = 12}, + }, + main_product = "carbon-dust", + subgroup = "py-fusion-items", + order = "a" +}:add_unlock("diamond-mining") + +RECIPE{ + type = "recipe", + name = "making-dust-into-diamonds", + category = "hpf", + enabled = false, + energy_required = 45, + ingredients = { + {type = "item", name = "carbon-dust", amount = 30}, + {type = 'fluid', name = 'pressured-steam', amount = 2000, minimum_temperature = 2000}, + }, + results = { + {type = "item", name = "kimberlite-rock", amount = 1}, + }, + main_product = "kimberlite-rock", + subgroup = "py-fusion-items", + order = "a" +}:add_unlock("diamond-mining") \ No newline at end of file From 0b43b576a2d3bf809b83fb00779853a0a68e59b9 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 7 Oct 2024 22:41:23 -0700 Subject: [PATCH 044/110] buff faw to coal --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 06d6154..b58852d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -9,6 +9,7 @@ Date: ???? - Moved atomizer mk0 to the mk0 crafting category - Moved burner destructive distillation column to the mk0 crafting category - Added recipes for kimberlite rock + - Buffed fawogae to coal Locale: - Added localization to the cultivator --------------------------------------------------------------------------------------------------- diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index dce9aff..0cefd89 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -39,7 +39,7 @@ data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "30kW" data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" -- fawogae to raw coal -RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:remove_ingredient("fawogae"):add_ingredient({name = "fawogae", amount = 3}):set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} +RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:set_fields{results = {{type = "item", name = "raw-coal", amount = 7}}} -- seaweed RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") From 2d44270c5e22c44bc2f93fca71ac86540cde6960 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 7 Oct 2024 22:44:18 -0700 Subject: [PATCH 045/110] soot separation updates --- changelog.txt | 1 + data-updates.lua | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/changelog.txt b/changelog.txt index b58852d..4923f37 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,7 @@ Date: ???? - Moved burner destructive distillation column to the mk0 crafting category - Added recipes for kimberlite rock - Buffed fawogae to coal + - Modified soot separation recipes, making them produce other ores as byproducts Locale: - Added localization to the cultivator --------------------------------------------------------------------------------------------------- diff --git a/data-updates.lua b/data-updates.lua index 8dcfe76..c553073 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -187,6 +187,89 @@ RECIPE("ground-borer"):remove_ingredient("intermetallics") RECIPE("mining-borax"):replace_ingredient("drilling-fluid-1", "lubricant") +-- create new soot to ore recipes that generalize byproducts +local ores = { + ["iron-ore"] = { + recipe_extension = "iron", + amount = 8, + technology = "oil-sands", + byproduct_probability = 0.2 + }, + ["copper-ore"] = { + recipe_extension = "copper", + amount = 8, + technology = "", + byproduct_probability = 0.2 + }, + ["ore-aluminium"] = { + recipe_extension = "aluminium", + amount = 6, + technology = "mining-with-fluid", + byproduct_probability = 0.1 + }, + ["ore-zinc"] = { + recipe_extension = "zinc", + amount = 6, + technology = "oil-sands", + byproduct_probability = 0.1 + }, + ["ore-lead"] = { + recipe_extension = "lead", + amount = 8, + technology = "solder-mk01", + byproduct_probability = 0.1 + }, + ["ore-nickel"] = { + recipe_extension = "nickel", + amount = 0, + technology = "", + byproduct_probability = 0.1 + } +} +for o, ore in pairs(ores) do + if ore.amount ~= 0 then + RECIPE("soot-to-" .. ore.recipe_extension):set_fields { + energy_required = 15, + ingredients = { + { type = "item", name = "soot", amount = 10 } + }, + results = { + { type = "item", name = o, amount = ore.amount }, + { type = "item", name = "ash", amount = 1, probability = 0.3 } + }, + result = nil, + main_product = o, + ignore_in_pypp = false + } + -- RECIPE("soot-to-" .. ore.recipe_extension):set_fields { + -- type = "recipe", + -- name = "soot-to-" .. ore.recipe_extension, + -- category = "solid-separator", + -- subgroup = "py-items-class", + -- enabled = ore.technology ~= nil and false or true, + -- energy_required = 15, + -- ingredients = { + -- { type = "item", name = "soot", amount = 10 } + -- }, + -- results = { + -- { type = "item", name = o, amount = ore.amount }, + -- { type = "item", name = "ash", amount = 1, probability = 0.3 } + -- }, + -- result = nil, + -- main_product = o, + -- ignore_in_pypp = false + -- }:add_unlock(ore.technology) + for s, secondary_ore in pairs(ores) do + if s ~= o then + table.insert(data.raw.recipe["soot-to-" .. ore.recipe_extension].results, { type = "item", name = s, amount = 1, probability = secondary_ore.byproduct_probability }) + end + end + end +end + +-- soot separation recipes +RECIPE("soot-to-aluminium"):remove_unlock("oil-sands"):add_unlock("mining-with-fluid") + -- data.raw.technology["mega-farm"].unit.ingredients = {{"automation-science-pack", 1},{"py-science-pack-1",1}} -- TECHNOLOGY("mega-farm"):set_fields{prerequisites = {}} From ee6422ccbea81d619528e75be5d41b689efa4034 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 7 Oct 2024 22:52:30 -0700 Subject: [PATCH 046/110] increment version --- changelog.txt | 6 +++++- info.json | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 4923f37..897a655 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,10 @@ --------------------------------------------------------------------------------------------------- -Version: 2.0.5 +Version: 2.0.6 Date: ???? + Changes: +--------------------------------------------------------------------------------------------------- +Version: 2.0.5 +Date: 2024-10-08 Bugfixes: - Added py1 back to the molecular decohesion technology - Fixed simple fish breeding recipe not having fish as allowed modules diff --git a/info.json b/info.json index 06c9498..29b560d 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "PyBlock", - "version": "2.0.5", + "version": "2.0.6", "factorio_version": "1.1", "title": "PyBlock", "author": "KingArthur", From 83da82caa9d42f1196ab1ccad8e17af405239471 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 7 Oct 2024 22:55:42 -0700 Subject: [PATCH 047/110] update cache file --- ...industry+pypetroleumhandling+pyrawores.lua | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua index b960597..365c5fc 100644 --- a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua +++ b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua @@ -138,7 +138,7 @@ fix_tech("electric-energy-accumulators",{order="000027",prerequisites={"battery- fix_tech("advanced-material-processing-2",{order="000066",prerequisites={"uranium-processing"},unit={count=2000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("effect-transmission",{order="000096",prerequisites={"wind-mk04"},unit={count=4000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("lubricant",{order="000039",prerequisites={"coal-processing-2"},unit={count=225,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) -fix_tech("electric-engine",{order="000064",prerequisites={"lubricant","small-parts-mk02"},unit={count=1600,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("electric-engine",{order="000064",prerequisites={"lubricant","small-parts-mk02"},unit={count=1500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("construction-robotics",{order="000028",prerequisites={"battery-mk01","rubber"},unit={count=150,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("logistic-robotics",{order="000041",prerequisites={"construction-robotics","niobium"},unit={count=275,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("logistic-system",{order="000042",prerequisites={"logistic-robotics"},unit={count=300,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) @@ -246,7 +246,7 @@ fix_tech("fusion-mk01",{order="000083",prerequisites={"super-alloy","sc-unit","c fix_tech("fusion-mk02",{order="000093",prerequisites={"machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("fusion-mk03",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("fusion-mk04",{order="000097",prerequisites={"fusion-mk03","nucleo-mk03"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) -fix_tech("diamond-mining",{order="000069",prerequisites={"heavy-oil-mk02","machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("diamond-mining",{order="000070",prerequisites={"heavy-oil-mk02","machines-mk03","coal-mk03","biomassplant-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("regolite-mining",{order="000083",prerequisites={"super-alloy","machine-components-mk03"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("molybdenum-processing",{order="000045",prerequisites={"vanadium-processing","iron-mk02","molecular-decohesion-mk02"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("nenbit-matrix",{order="000071",prerequisites={"neuro-electronics-mk01","alloys-mk03","cellulose-mk03"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) @@ -290,7 +290,7 @@ fix_tech("quartz-mk03",{order="000068",prerequisites={"chemical-science-pack"},u fix_tech("quartz-mk04",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("quartz-mk05",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("aluminium-mk01",{order="000025",prerequisites={"casting-mk01","machines-mk01","boron","hot-air-mk01"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) -fix_tech("aluminium-mk02",{order="000045",prerequisites={"phosphorous-processing","vanadium-processing"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("aluminium-mk02",{order="000046",prerequisites={"phosphorous-processing","vanadium-processing"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("aluminium-mk03",{order="000069",prerequisites={"additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("aluminium-mk04",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("aluminium-mk05",{order="000096",prerequisites={"aluminium-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) @@ -316,7 +316,7 @@ fix_tech("coke-mk03",{order="000068",prerequisites={"chemical-science-pack"},uni fix_tech("coal-mk01",{order="000021",prerequisites={"crusher-2"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("coal-mk02",{order="000036",prerequisites={"coal-mk01","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("coal-mk03",{order="000068",prerequisites={"coal-mk02","chemical-science-pack","titanium-mk02","pyrite"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) -fix_tech("coal-mk04",{order="000096",prerequisites={"coal-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) +fix_tech("coal-mk04",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("lead-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("lead-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("lead-mk03",{order="000069",prerequisites={"additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) @@ -379,7 +379,7 @@ fix_tech("alloys-mk04",{order="000082",prerequisites={"production-science-pack", fix_tech("alloys-mk05",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("steel-mk02",{order="000036",prerequisites={"logistic-science-pack","iron-mk01"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("steel-mk03",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) -fix_tech("stainless-steel-mk01",{order="000062",prerequisites={"steel-mk02","phosphorous-processing","aramid"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("stainless-steel-mk01",{order="000062",prerequisites={"steel-mk02","aramid"},unit={count=1200,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("stainless-steel-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("super-steel-mk01",{order="000069",prerequisites={"cobalt-mk02"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("super-steel-mk02",{order="000096",prerequisites={"utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) @@ -396,7 +396,7 @@ fix_tech("drill-head-mk02",{order="000068",prerequisites={"drill-head-mk01","che fix_tech("drill-head-mk03",{order="000083",prerequisites={"drill-head-mk02","super-alloy","casting-mk02"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("aerogel",{order="000069",prerequisites={"epoxy","quartz-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("auog",{order="000031",prerequisites={"ralesia","auog-mk00"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) -fix_tech("basic-electronics",{order="000064",prerequisites={"integrated-circuits-1","stainless-steel-mk01","aluminium-mk02","fine-electronics"},unit={count=1600,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("basic-electronics",{order="000064",prerequisites={"integrated-circuits-1","stainless-steel-mk01","aluminium-mk02","fine-electronics"},unit={count=1500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("biopolymer",{order="000083",prerequisites={"microbiology-mk04"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("cadaveric-arum",{order="000007",prerequisites={"botany-mk01","optics"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("carbon-nanotube",{order="000084",prerequisites={"biopolymer"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) @@ -433,7 +433,7 @@ fix_tech("nylon",{order="000059",prerequisites={"phenol"},unit={count=900,ingred fix_tech("paramagnetic-material",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("parametric-oscilator",{order="000088",prerequisites={"integrated-circuits-3"},unit={count=1750,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("phenol",{order="000058",prerequisites={"cellulose-mk02","rennea"},unit={count=800,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("phosphorous-processing",{order="000038",prerequisites={"filtration"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("phosphorous-processing",{order="000045",prerequisites={"molecular-decohesion-mk02"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("plastics-mk02",{order="000053",prerequisites={"korlex"},unit={count=1100,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("plastics-mk03",{order="000069",prerequisites={"plastics-mk02","additives"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("plastics-mk04",{order="000082",prerequisites={"plastics-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) @@ -454,7 +454,7 @@ fix_tech("scrude",{order="000011",prerequisites={"kerogen","py-storage-tanks","e fix_tech("rubber",{order="000027",prerequisites={"oil-machines-mk01"},unit={count=140,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("rubber-2",{order="000040",prerequisites={"organic-solvent"},unit={count=250,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("rubber-3",{order="000068",prerequisites={"rubber-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) -fix_tech("fast-inserter-2",{order="000064",prerequisites={"small-parts-mk02"},unit={count=1600,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("fast-inserter-2",{order="000064",prerequisites={"small-parts-mk02"},unit={count=1500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("stack-inserter-2",{order="000079",prerequisites={"stack-inserter","small-parts-mk03"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("oil-machines-mk01",{order="000026",prerequisites={"automation-2","chromium-mk01","soil-washing"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("oil-machines-mk02",{order="000069",prerequisites={"machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) @@ -483,7 +483,7 @@ fix_tech("drilling-fluid-mk02",{order="000068",prerequisites={"chemical-science- fix_tech("drilling-fluid-mk03",{order="000082",prerequisites={"drilling-fluid-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("drilling-fluid-mk04",{order="000096",prerequisites={"drilling-fluid-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("hot-air-mk01",{order="000021",prerequisites={"coke-mk01"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) -fix_tech("hot-air-mk02",{order="000036",prerequisites={"logistic-science-pack","coalplant-mk01"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) +fix_tech("hot-air-mk02",{order="000036",prerequisites={"logistic-science-pack","oilplant-mk01"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("hot-air-mk03",{order="000070",prerequisites={"coalplant-mk02","coke-mk03","hot-air-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("oil-distillation",{order="000043",prerequisites={"petroleum-gas-mk01"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("vanadium-processing-2",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) @@ -504,7 +504,7 @@ fix_tech("botany-mk01",{order="000006",prerequisites={"glass"},unit={count=30,in fix_tech("botany-mk02",{order="000068",prerequisites={"intermetallics-mk02","neuro-electronics-mk01","grod","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("botany-mk03",{order="000085",prerequisites={"alloys-mk04","superconductor","bio-implants","super-alloy","carbon-nanotube"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("botany-mk04",{order="000100",prerequisites={"quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) -fix_tech("biotech-mk01",{order="000012",prerequisites={"xenobiology","yaedols"},unit={count=60,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("biotech-mk01",{order="000012",prerequisites={"yaedols"},unit={count=60,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("biotech-mk02",{order="000051",prerequisites={"cobalt-mk01","silver-mk01","light-oil-mk02"},unit={count=900,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("biotech-mk03",{order="000077",prerequisites={"water-animals-mk02","kmauts"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("biotech-mk04",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) @@ -527,7 +527,7 @@ fix_tech("water-invertebrates-mk01",{order="000052",prerequisites={"biotech-mk02 fix_tech("water-invertebrates-mk02",{order="000067",prerequisites={"small-parts-mk02","neuro-electronics-mk01","intermetallics-mk02","fish-mk03","fawogae-mk02"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("water-invertebrates-mk03",{order="000081",prerequisites={"water-invertebrates-mk02","advanced-electronics","low-density-structure","intermetallics-mk03","fawogae-mk03"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("water-invertebrates-mk04",{order="000093",prerequisites={"water-invertebrates-mk03","water-animals-mk03","machine-components-mk04","fawogae-mk04","fish-mk04"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) -fix_tech("molecular-decohesion",{order="000032",prerequisites={"auog"},unit={count=550,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("molecular-decohesion",{order="000032",prerequisites={"auog"},unit={count=250,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("molecular-decohesion-mk02",{order="000044",prerequisites={"molecular-decohesion","arqad"},unit={count=400,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) fix_tech("molecular-decohesion-mk03",{order="000078",prerequisites={"numal-mk01"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("molecular-decohesion-mk04",{order="000092",prerequisites={"molecular-decohesion-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) @@ -587,7 +587,7 @@ fix_tech("phadai-mk04",{order="000096",prerequisites={"utility-science-pack"},un fix_tech("auog-mk02",{order="000059",prerequisites={"energy-drink"},unit={count=900,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("auog-mk03",{order="000078",prerequisites={"auog-mk02","immunosupressants"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("auog-mk04",{order="000082",prerequisites={"auog-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) -fix_tech("yaedols",{order="000011",prerequisites={"py-storage-tanks","optics","compost"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("yaedols",{order="000011",prerequisites={"py-storage-tanks","optics","xenobiology","compost"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("yaedols-mk02",{order="000068",prerequisites={"mycology-mk03"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("yaedols-mk03",{order="000076",prerequisites={"yaedols-mk02","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("yaedols-mk04",{order="000092",prerequisites={"yaedols-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) @@ -714,14 +714,14 @@ fix_tech("fertilizer-mk02",{order="000046",prerequisites={"fertilizer-mk01","sul fix_tech("fertilizer-mk03",{order="000061",prerequisites={"fish-mk03","salts"},unit={count=1100,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("cellulose-mk01",{order="000013",prerequisites={"electrolysis","biotech-mk01"},unit={count=70,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("cellulose-mk02",{order="000057",prerequisites={"cellulose-mk01","yotoi"},unit={count=700,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) -fix_tech("cellulose-mk03",{order="000068",prerequisites={"chemical-science-pack","coalplant-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) +fix_tech("cellulose-mk03",{order="000068",prerequisites={"chemical-science-pack","oilplant-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) fix_tech("starch-mk01",{order="000032",prerequisites={"auog","fiberboard"},unit={count=250,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("starch-mk02",{order="000057",prerequisites={"salts"},unit={count=700,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("starch-mk03",{order="000081",prerequisites={"starch-mk02","pharmagenomics"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) fix_tech("silicon-carbide",{order="000048",prerequisites={"quartz-mk02"},unit={count=600,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("cobalt-mk01",{order="000047",prerequisites={"rare-earth-tech"},unit={count=550,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("cobalt-mk02",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) -fix_tech("neuro-electronics-mk01",{order="000064",prerequisites={"fine-electronics","integrated-circuits-1","epoxy"},unit={count=1600,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("neuro-electronics-mk01",{order="000064",prerequisites={"fine-electronics","integrated-circuits-1","epoxy"},unit={count=1500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("neuro-electronics-mk02",{order="000076",prerequisites={"py-science-pack-mk03","paramagnetic-material","organ-printing"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("biotech-machines-mk01",{order="000015",prerequisites={"genetics-mk01"},unit={count=90,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("biotech-machines-mk02",{order="000068",prerequisites={"chemical-science-pack","neuro-electronics-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) @@ -746,7 +746,7 @@ fix_tech("ethanol",{order="000039",prerequisites={"sugar","filtration"},unit={co fix_tech("ash-separation",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("crusher-2",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("vatbrain-mk01",{order="000067",prerequisites={"intermetallics-mk02"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) -fix_tech("vatbrain-mk02",{order="000068",prerequisites={"vatbrain-mk01","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) +fix_tech("vatbrain-mk02",{order="000068",prerequisites={"chemical-science-pack","vatbrain-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) fix_tech("vatbrain-mk03",{order="000082",prerequisites={"vatbrain-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("vatbrain-mk04",{order="000096",prerequisites={"vatbrain-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"}},time=600}}) fix_tech("turd-partial-respec-1",{order="000068",prerequisites={"ulric-upgrade","chemical-science-pack"},unit={count=10000,ingredients={{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) @@ -757,7 +757,7 @@ fix_tech("turd-partial-respec-5",{order="000100",prerequisites={"turd-partial-re fix_tech("biofluid-mk01",{order="000071",prerequisites={"genetics-mk04","radars-mk02"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) fix_tech("biofluid-mk02",{order="000081",prerequisites={"biofluid-mk01","pharmagenomics"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) fix_tech("biofluid-mk03",{order="000094",prerequisites={"biofluid-mk02","pheromones","nano-tech","cadaveric-arum-mk04","rennea-mk04","wood-processing-4","arqad-mk04","nexelit-mk03"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) -fix_tech("mining-with-fluid",{order="000004",prerequisites={"steel-processing","ash-separation"},unit={count=25,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("mining-with-fluid",{order="000004",prerequisites={"steel-processing"},unit={count=25,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("electric-mining-drill",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("zungror",{order="000079",prerequisites={"biotech-mk03","gun-turret","laser-turret","simik-mk01","advanced-electronics"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("zungror-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"}},time=300}}) @@ -770,27 +770,27 @@ fix_tech("antimony-mk02",{order="000058",prerequisites={"ethylene"},unit={count= fix_tech("antimony-mk03",{order="000076",prerequisites={"py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("antimony-mk04",{order="000090",prerequisites={"machines-mk04","antimony-mk03"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) fix_tech("silicon-mk01",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("silicon-mk02",{order="000070",prerequisites={"energy-2","diamond-mining"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("silicon-mk02",{order="000071",prerequisites={"diamond-mining"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("silicon-mk03",{order="000083",prerequisites={"quartz-mk04","casting-mk02"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) -fix_tech("thermal-mk01",{order="000069",prerequisites={"solar-power-mk01","coalplant-mk01","energy-2","machine-components-mk02"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("thermal-mk01",{order="000069",prerequisites={"solar-power-mk01","oilplant-mk01","energy-2","machine-components-mk02"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("thermal-mk02",{order="000083",prerequisites={"thermal-mk01","solar-power-mk02","wind-mk02"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) fix_tech("thermal-mk03",{order="000093",prerequisites={"solar-power-mk03"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) fix_tech("thermal-mk04",{order="000097",prerequisites={"thermal-mk03","solar-power-mk04"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("eva",{order="000058",prerequisites={"advanced-mining-facilities","ethylene"},unit={count=800,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("renewable-mk01",{order="000030",prerequisites={"energy-1","hot-air-mk01"},unit={count=200,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("renewable-mk02",{order="000068",prerequisites={"renewable-mk01","energy-2","intermetallics-mk02","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("renewable-mk03",{order="000082",prerequisites={"renewable-mk02","energy-3","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("renewable-mk03",{order="000082",prerequisites={"energy-3","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("renewable-mk04",{order="000094",prerequisites={"renewable-mk03","fusion-mk02"},unit={count=3300,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) fix_tech("nonrenewable-mk01",{order="000030",prerequisites={"energy-1","py-asphalt"},unit={count=200,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("nonrenewable-mk02",{order="000068",prerequisites={"energy-2","intermetallics-mk02","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("nonrenewable-mk03",{order="000082",prerequisites={"nonrenewable-mk02","energy-3","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("nonrenewable-mk03",{order="000082",prerequisites={"energy-3","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("nonrenewable-mk04",{order="000093",prerequisites={"nonrenewable-mk03","py-science-pack-mk04","machine-components-mk04"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) fix_tech("anti-solar",{order="000094",prerequisites={"solar-mk03","machine-components-mk04"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) fix_tech("tidal-mk01",{order="000031",prerequisites={"renewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("tidal-mk02",{order="000069",prerequisites={"tidal-mk01","renewable-mk02"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("tidal-mk03",{order="000083",prerequisites={"tidal-mk02","renewable-mk03","low-density-structure"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("tidal-mk04",{order="000095",prerequisites={"tidal-mk03","renewable-mk04"},unit={count=3600,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) -fix_tech("solar-mk01",{order="000071",prerequisites={"solar-power-mk01","silicon-mk02"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) +fix_tech("solar-mk01",{order="000072",prerequisites={"solar-power-mk01","silicon-mk02"},unit={count=1600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("solar-mk02",{order="000084",prerequisites={"solar-power-mk02","silicon-mk03","thermal-mk01"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("solar-mk03",{order="000093",prerequisites={"solar-mk02","solar-power-mk03","silver-mk02"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) fix_tech("solar-mk04",{order="000097",prerequisites={"solar-power-mk04"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) @@ -803,16 +803,16 @@ fix_tech("geothermal-power-mk02",{order="000069",prerequisites={"renewable-mk02" fix_tech("geothermal-power-mk03",{order="000083",prerequisites={"geothermal-power-mk02","renewable-mk03"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("geothermal-power-mk04",{order="000095",prerequisites={"geothermal-power-mk03","renewable-mk04"},unit={count=3600,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) fix_tech("solar-power-mk01",{order="000068",prerequisites={"renewable-mk01","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) -fix_tech("solar-power-mk02",{order="000082",prerequisites={"renewable-mk02","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("solar-power-mk02",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("solar-power-mk03",{order="000092",prerequisites={"renewable-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) fix_tech("solar-power-mk04",{order="000096",prerequisites={"renewable-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("thorium",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("coalplant-mk01",{order="000031",prerequisites={"nonrenewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) -fix_tech("coalplant-mk02",{order="000069",prerequisites={"nonrenewable-mk02","coalplant-mk01"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("coalplant-mk02",{order="000069",prerequisites={"nonrenewable-mk02","coalplant-mk01","oilplant-mk01"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("coalplant-mk03",{order="000083",prerequisites={"nonrenewable-mk03","coalplant-mk02","low-density-structure"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("coalplant-mk04",{order="000094",prerequisites={"nonrenewable-mk04","coalplant-mk03"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) fix_tech("oilplant-mk01",{order="000031",prerequisites={"nonrenewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) -fix_tech("oilplant-mk02",{order="000071",prerequisites={"nonrenewable-mk02","oilplant-mk01","moondrop-mk03","coalplant-mk01","light-oil-mk03"},unit={count=3300,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("oilplant-mk02",{order="000071",prerequisites={"nonrenewable-mk02","oilplant-mk01","moondrop-mk03","light-oil-mk03"},unit={count=3300,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("oilplant-mk03",{order="000083",prerequisites={"nonrenewable-mk03","oilplant-mk02","low-density-structure"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("oilplant-mk04",{order="000094",prerequisites={"nonrenewable-mk04","oilplant-mk03"},unit={count=1400,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) fix_tech("gasplant-mk01",{order="000043",prerequisites={"petroleum-gas-mk01"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) @@ -820,8 +820,8 @@ fix_tech("gasplant-mk02",{order="000069",prerequisites={"nonrenewable-mk02","gas fix_tech("gasplant-mk03",{order="000084",prerequisites={"nonrenewable-mk03","gasplant-mk02","petroleum-gas-mk02","biopolymer"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("gasplant-mk04",{order="000096",prerequisites={"nonrenewable-mk04","gasplant-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("biomassplant-mk01",{order="000031",prerequisites={"renewable-mk01","nonrenewable-mk01"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) -fix_tech("biomassplant-mk02",{order="000069",prerequisites={"renewable-mk02","nonrenewable-mk02","biomassplant-mk01","coalplant-mk01","neuro-electronics-mk01"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("biomassplant-mk03",{order="000083",prerequisites={"renewable-mk03","nonrenewable-mk03","biomassplant-mk02"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) +fix_tech("biomassplant-mk02",{order="000069",prerequisites={"renewable-mk02","nonrenewable-mk02","biomassplant-mk01","oilplant-mk01","neuro-electronics-mk01"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("biomassplant-mk03",{order="000083",prerequisites={"renewable-mk03","nonrenewable-mk03"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("biomassplant-mk04",{order="000095",prerequisites={"renewable-mk04","nonrenewable-mk04","biomassplant-mk03"},unit={count=1600,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"}},time=450}}) fix_tech("gadolinium",{order="000077",prerequisites={"rare-earth-tech-mk02","ammonium-oxalate","vanadium-processing-2"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("lithium-processing",{order="000075",prerequisites={"sb-silicate","tbp","cellulose-mk03","coated-container"},unit={count=2250,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) @@ -836,7 +836,7 @@ fix_tech("battery-mk03",{order="000077",prerequisites={"kmauts","lithium-niobate fix_tech("battery-mk04",{order="000089",prerequisites={"parametric-oscilator","fusion-mk01","supercapacitor","earnshaw-theorem"},unit={count=2000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) fix_tech("photonics",{order="000090",prerequisites={"solar-mk02","battery-mk04"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) fix_tech("microwave-receiver",{order="000085",prerequisites={"solar-mk02","machine-components-mk03"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) -fix_tech("nuclear-power-mk02",{order="000083",prerequisites={"uranium-mk02","nonrenewable-mk02","machine-components-mk03","py-burner"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) +fix_tech("nuclear-power-mk02",{order="000083",prerequisites={"uranium-mk02","machine-components-mk03","py-burner"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("nuclear-power-mk03",{order="000097",prerequisites={"uranium-mk03","nonrenewable-mk03","nuclear-power-mk02"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) fix_tech("nuclear-power-mk04",{order="000101",prerequisites={"uranium-mk04","nonrenewable-mk04","wind-mk04"},unit={count=550,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=100,name="py-science-pack-1",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"}},time=1200}}) fix_tech("carbon-fiber",{order="000077",prerequisites={"ammonium-oxalate"},unit={count=1200,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) From 1fff99022e200d74fb566e70597aad24b1e91be6 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 7 Oct 2024 23:31:21 -0700 Subject: [PATCH 048/110] cultivator updates --- changelog.txt | 2 + data.lua | 3 + locale/en/locale.cfg | 5 +- prototypes/buildings/cultivator-mk01.lua | 30 +- prototypes/buildings/cultivator-mk02.lua | 1085 ++++++++++++++++++++++ prototypes/buildings/cultivator-mk03.lua | 1084 +++++++++++++++++++++ prototypes/buildings/cultivator-mk04.lua | 1083 +++++++++++++++++++++ 7 files changed, 3277 insertions(+), 15 deletions(-) create mode 100644 prototypes/buildings/cultivator-mk02.lua create mode 100644 prototypes/buildings/cultivator-mk03.lua create mode 100644 prototypes/buildings/cultivator-mk04.lua diff --git a/changelog.txt b/changelog.txt index 897a655..2b0cde6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,8 @@ Version: 2.0.6 Date: ???? Changes: + - Updated cultivator locale + - Added cultivator mk02-mk04, unlocked alongside the respective collector and with the same recipe --------------------------------------------------------------------------------------------------- Version: 2.0.5 Date: 2024-10-08 diff --git a/data.lua b/data.lua index 4655d66..0059160 100644 --- a/data.lua +++ b/data.lua @@ -13,6 +13,9 @@ require('prototypes/buildings/burner-washer') require('prototypes/buildings/automated-screener-mk00') require("prototypes/buildings/geothermal-plant-mk01") require("prototypes/buildings/cultivator-mk01") +require("prototypes/buildings/cultivator-mk02") +require("prototypes/buildings/cultivator-mk03") +require("prototypes/buildings/cultivator-mk04") --UNUSED --require('prototypes/buildings/burner-wpu') diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 3f501ac..64464db 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -79,7 +79,10 @@ fwf-mk00=Slowwood forestry MK 00 fish-farm-mk00=Basic fish farm early-copper-mine=Early Copper Mine compost-plant-mk00=Steampowered Compost plant -cultivator-mk01=Cultivator +cultivator-mk01=Cultivator MK 01 +cultivator-mk02=Cultivator MK 02 +cultivator-mk03=Cultivator MK 03 +cultivator-mk04=Cultivator MK 04 [technology-name] diff --git a/prototypes/buildings/cultivator-mk01.lua b/prototypes/buildings/cultivator-mk01.lua index 4d5be9f..9551be6 100644 --- a/prototypes/buildings/cultivator-mk01.lua +++ b/prototypes/buildings/cultivator-mk01.lua @@ -55,6 +55,7 @@ ENTITY { crafting_speed = 1, flags = {"placeable-neutral", "player-creation"}, minable = {mining_time = 0.5, result = "cultivator-mk01"}, + fast_replaceable_group = "cultivator", max_health = 200, crafting_categories = {"cultivation"}, corpse = "big-remnants", @@ -111,6 +112,7 @@ ENTITY { idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, apparent_volume = 2.5 }, + next_upgrade = "cultivator-mk02", animation = { north = { layers = { @@ -822,7 +824,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(-96, 0) }, { @@ -832,7 +834,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(-64, 0) }, { @@ -842,7 +844,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(-32, 0) }, { @@ -852,7 +854,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(0, 0) }, { @@ -862,7 +864,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(32, 0) }, { @@ -872,7 +874,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(64, 0) }, { @@ -882,7 +884,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(96, 0) }, } @@ -1011,7 +1013,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(-96, 0) }, { @@ -1021,7 +1023,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(-64, 0) }, { @@ -1031,7 +1033,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(-32, 0) }, { @@ -1041,7 +1043,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(0, 0) }, { @@ -1051,7 +1053,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(32, 0) }, { @@ -1061,7 +1063,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(64, 0) }, { @@ -1071,7 +1073,7 @@ ENTITY { line_length = 64, frame_count = 255, animation_speed = 0.4, - tint = {r = 0.52, g = 0.52, b = 0.52, a = 1.0}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, shift = util.by_pixel(96, 0) }, } diff --git a/prototypes/buildings/cultivator-mk02.lua b/prototypes/buildings/cultivator-mk02.lua new file mode 100644 index 0000000..b0dbb59 --- /dev/null +++ b/prototypes/buildings/cultivator-mk02.lua @@ -0,0 +1,1085 @@ +RECIPE { + type = "recipe", + name = "cultivator-mk02", + energy_required = 0.5, + ingredients = { + {"cultivator-mk01", 1}, + {"glass", 30}, + {"nexelit-plate", 15}, + {"duralumin", 10}, + {"advanced-circuit", 10}, + {"engine-unit", 1}, + {"latex", 10}, + {"neuroprocessor", 5}, + }, + results = { + {"cultivator-mk02", 1} + } +}:add_unlock("biotech-machines-mk02"):add_ingredient({type = "item", name = "small-parts-02", amount = 50}) + +ITEM { + type = "item", + name = "cultivator-mk02", + icons = { + { + icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk02.png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {10, -10}, + scale = 0.5 + } + }, + flags = {}, + subgroup = "py-alienlife-buildings-mk02", + order = "x", + place_result = "cultivator-mk02", + stack_size = 10 +} + +ENTITY { + type = "assembling-machine", + name = "cultivator-mk02", + icons = { + { + icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk02.png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {8, -8}, + scale = 0.5 + } + }, + icon_size = 64, + crafting_speed = 2, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "cultivator-mk02"}, + fast_replaceable_group = "cultivator", + max_health = 200, + crafting_categories = {"cultivation"}, + corpse = "big-remnants", + dying_explosion = "big-explosion", + collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + match_animation_speed_to_activity = false, + fluid_boxes = { + { + production_type = "input", + -- pipe_picture = { + -- north = { + -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height} + -- }, + -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right, + -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down, + -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left + -- }, + pipe_covers = DATA.Pipes.covers(true, true, true, true), + base_area = 10, + base_level = -1, + pipe_connections = { + { position = {-4, 0}, type = 'input' }, + { position = {0, 4}, type = 'input' }, + { position = {4, 0}, type = 'input' }, + { position = {0, -4}, type = 'input' }, + }, + }, + -- { + -- production_type = "output", + -- pipe_covers = DATA.Pipes.covers(true, true, true, true), + -- pipe_picture = DATA.Pipes.pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), + -- base_level = 1, + -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, + -- }, + }, + module_specification = { + module_slots = 1 + }, + allowed_effects = {"consumption", "speed"}, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = 1, + }, + energy_usage = "250kW", + collision_mask = {"item-layer", "object-layer", "water-tile"}, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, + idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, + apparent_volume = 2.5 + }, + next_upgrade = "cultivator-mk03", + animation = { + north = { + layers = { + { + -- count: 0, variation: 60, richness: 1 + -- max_x = 3811 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -112), + position = {3840, 800} + }, + { + -- count: 1, variation: 22, richness: 1 + -- max_x = 1411 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -112), + position = {1408, 800} + }, + { + -- count: 2, variation: 47, richness: 1 + -- max_x = 3043 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -112), + position = {3008, 800} + }, + { + -- count: 3, variation: 14, richness: 1 + -- max_x = 963 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -112), + position = {896, 800} + }, + { + -- count: 4, variation: 56, richness: 1 + -- max_x = 3683 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -112), + position = {3584, 800} + }, + { + -- count: 5, variation: 41, richness: 1 + -- max_x = 2755 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -112), + position = {2624, 800} + }, + { + -- count: 6, variation: 21, richness: 1 + -- max_x = 1507 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -112), + position = {1344, 800} + }, + { + -- count: 7, variation: 24, richness: 1 + -- max_x = 1507 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -80), + position = {1536, 800} + }, + { + -- count: 8, variation: 46, richness: 3 + -- max_x = 2947 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -80), + position = {2944, 640} + }, + { + -- count: 9, variation: 24, richness: 3 + -- max_x = 1571 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -80), + position = {1536, 640} + }, + { + -- count: 10, variation: 42, richness: 4 + -- max_x = 2755 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -80), + position = {2688, 560} + }, + { + -- count: 11, variation: 14, richness: 3 + -- max_x = 995 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -80), + position = {896, 640} + }, + { + -- count: 12, variation: 38, richness: 4 + -- max_x = 2563 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -80), + position = {2432, 560} + }, + { + -- count: 13, variation: 4, richness: 1 + -- max_x = 419 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -80), + position = {256, 800} + }, + { + -- count: 14, variation: 35, richness: 1 + -- max_x = 2211 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -48), + position = {2240, 800} + }, + { + -- count: 15, variation: 59, richness: 3 + -- max_x = 3779 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -48), + position = {3776, 640} + }, + { + -- count: 16, variation: 22, richness: 6 + -- max_x = 1443 max_y = 432 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -48), + position = {1408, 400} + }, + { + -- count: 17, variation: 25, richness: 5 + -- max_x = 1667 max_y = 512 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -48), + position = {1600, 480} + }, + { + -- count: 18, variation: 18, richness: 7 + -- max_x = 1251 max_y = 352 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -48), + position = {1152, 320} + }, + { + -- count: 19, variation: 0, richness: 3 + -- max_x = 131 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -48), + position = {0, 640} + }, + { + -- count: 20, variation: 51, richness: 1 + -- max_x = 3427 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -48), + position = {3264, 800} + }, + { + -- count: 21, variation: 10, richness: 2 + -- max_x = 611 max_y = 784 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -16), + position = {640, 720} + }, + { + -- count: 22, variation: 26, richness: 4 + -- max_x = 1667 max_y = 624 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -16), + position = {1664, 560} + }, + { + -- count: 23, variation: 52, richness: 7 + -- max_x = 3363 max_y = 384 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -16), + position = {3328, 320} + }, + { + -- count: 24, variation: 58, richness: 5 + -- max_x = 3779 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -16), + position = {3712, 480} + }, + { + -- count: 25, variation: 62, richness: 6 + -- max_x = 4067 max_y = 464 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -16), + position = {3968, 400} + }, + { + -- count: 26, variation: 46, richness: 5 + -- max_x = 3075 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -16), + position = {2944, 480} + }, + { + -- count: 27, variation: 23, richness: 1 + -- max_x = 1635 max_y = 864 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -16), + position = {1472, 800} + }, + { + -- count: 28, variation: 14, richness: 2 + -- max_x = 867 max_y = 816 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 16), + position = {896, 720} + }, + { + -- count: 29, variation: 9, richness: 3 + -- max_x = 579 max_y = 736 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 16), + position = {576, 640} + }, + { + -- count: 30, variation: 60, richness: 5 + -- max_x = 3875 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 16), + position = {3840, 480} + }, + { + -- count: 31, variation: 45, richness: 5 + -- max_x = 2947 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 16), + position = {2880, 480} + }, + { + -- count: 32, variation: 52, richness: 6 + -- max_x = 3427 max_y = 496 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 16), + position = {3328, 400} + }, + { + -- count: 33, variation: 56, richness: 4 + -- max_x = 3715 max_y = 656 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 16), + position = {3584, 560} + }, + { + -- count: 34, variation: 54, richness: 1 + -- max_x = 3619 max_y = 896 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 16), + position = {3456, 800} + }, + { + -- count: 35, variation: 34, richness: 1 + -- max_x = 2147 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 48), + position = {2176, 800} + }, + { + -- count: 36, variation: 16, richness: 3 + -- max_x = 1027 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 48), + position = {1024, 640} + }, + { + -- count: 37, variation: 29, richness: 3 + -- max_x = 1891 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 48), + position = {1856, 640} + }, + { + -- count: 38, variation: 39, richness: 3 + -- max_x = 2563 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 48), + position = {2496, 640} + }, + { + -- count: 39, variation: 52, richness: 5 + -- max_x = 3427 max_y = 608 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 48), + position = {3328, 480} + }, + { + -- count: 40, variation: 43, richness: 4 + -- max_x = 2883 max_y = 688 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 48), + position = {2752, 560} + }, + { + -- count: 41, variation: 12, richness: 1 + -- max_x = 931 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 48), + position = {768, 800} + }, + { + -- count: 42, variation: 36, richness: 1 + -- max_x = 2275 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 80), + position = {2304, 800} + }, + { + -- count: 43, variation: 21, richness: 1 + -- max_x = 1347 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 80), + position = {1344, 800} + }, + { + -- count: 44, variation: 33, richness: 1 + -- max_x = 2147 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 80), + position = {2112, 800} + }, + { + -- count: 45, variation: 38, richness: 1 + -- max_x = 2499 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 80), + position = {2432, 800} + }, + { + -- count: 46, variation: 25, richness: 1 + -- max_x = 1699 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 80), + position = {1600, 800} + }, + { + -- count: 47, variation: 2, richness: 1 + -- max_x = 259 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 80), + position = {128, 800} + }, + { + -- count: 48, variation: 56, richness: 1 + -- max_x = 3747 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 80), + position = {3584, 800} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(128, 0) + }, +--MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(96, 0) + }, + } + } + }, + idle_animation = { + north = { + layers = { + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(128, 0) + }, +--MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, + shift = util.by_pixel(96, 0) + }, + } + } + }, +} \ No newline at end of file diff --git a/prototypes/buildings/cultivator-mk03.lua b/prototypes/buildings/cultivator-mk03.lua new file mode 100644 index 0000000..32884ae --- /dev/null +++ b/prototypes/buildings/cultivator-mk03.lua @@ -0,0 +1,1084 @@ +RECIPE { + type = "recipe", + name = "cultivator-mk03", + energy_required = 0.5, + ingredients = { + {"cultivator-mk02", 1}, + {"ticocr-alloy", 20}, + {"low-density-structure", 20}, + {"stainless-steel", 30}, + {"processing-unit", 30}, + {"electric-engine-unit", 15}, + {"super-alloy", 30}, + }, + results = { + {"cultivator-mk03", 1} + } +}:add_unlock("biotech-machines-mk03"):add_ingredient({type = "item", name = "small-parts-03", amount = 50}) + +ITEM { + type = "item", + name = "cultivator-mk03", + icons = { + { + icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk03.png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {10, -10}, + scale = 0.5 + } + }, + flags = {}, + subgroup = "py-alienlife-buildings-mk03", + order = "x", + place_result = "cultivator-mk03", + stack_size = 10 +} + +ENTITY { + type = "assembling-machine", + name = "cultivator-mk03", + icons = { + { + icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk03.png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {8, -8}, + scale = 0.5 + } + }, + icon_size = 64, + crafting_speed = 3, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "cultivator-mk03"}, + fast_replaceable_group = "cultivator", + max_health = 200, + crafting_categories = {"cultivation"}, + corpse = "big-remnants", + dying_explosion = "big-explosion", + collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + match_animation_speed_to_activity = false, + fluid_boxes = { + { + production_type = "input", + -- pipe_picture = { + -- north = { + -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height} + -- }, + -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right, + -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down, + -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left + -- }, + pipe_covers = DATA.Pipes.covers(true, true, true, true), + base_area = 10, + base_level = -1, + pipe_connections = { + { position = {-4, 0}, type = 'input' }, + { position = {0, 4}, type = 'input' }, + { position = {4, 0}, type = 'input' }, + { position = {0, -4}, type = 'input' }, + }, + }, + -- { + -- production_type = "output", + -- pipe_covers = DATA.Pipes.covers(true, true, true, true), + -- pipe_picture = DATA.Pipes.pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), + -- base_level = 1, + -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, + -- }, + }, + module_specification = { + module_slots = 1 + }, + allowed_effects = {"consumption", "speed"}, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = 1, + }, + energy_usage = "400kW", + collision_mask = {"item-layer", "object-layer", "water-tile"}, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, + idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, + apparent_volume = 2.5 + }, + next_upgrade = "cultivator-mk04", + animation = { + north = { + layers = { + { + -- count: 0, variation: 60, richness: 1 + -- max_x = 3811 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -112), + position = {3840, 800} + }, + { + -- count: 1, variation: 22, richness: 1 + -- max_x = 1411 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -112), + position = {1408, 800} + }, + { + -- count: 2, variation: 47, richness: 1 + -- max_x = 3043 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -112), + position = {3008, 800} + }, + { + -- count: 3, variation: 14, richness: 1 + -- max_x = 963 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -112), + position = {896, 800} + }, + { + -- count: 4, variation: 56, richness: 1 + -- max_x = 3683 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -112), + position = {3584, 800} + }, + { + -- count: 5, variation: 41, richness: 1 + -- max_x = 2755 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -112), + position = {2624, 800} + }, + { + -- count: 6, variation: 21, richness: 1 + -- max_x = 1507 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -112), + position = {1344, 800} + }, + { + -- count: 7, variation: 24, richness: 1 + -- max_x = 1507 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -80), + position = {1536, 800} + }, + { + -- count: 8, variation: 46, richness: 3 + -- max_x = 2947 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -80), + position = {2944, 640} + }, + { + -- count: 9, variation: 24, richness: 3 + -- max_x = 1571 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -80), + position = {1536, 640} + }, + { + -- count: 10, variation: 42, richness: 4 + -- max_x = 2755 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -80), + position = {2688, 560} + }, + { + -- count: 11, variation: 14, richness: 3 + -- max_x = 995 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -80), + position = {896, 640} + }, + { + -- count: 12, variation: 38, richness: 4 + -- max_x = 2563 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -80), + position = {2432, 560} + }, + { + -- count: 13, variation: 4, richness: 1 + -- max_x = 419 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -80), + position = {256, 800} + }, + { + -- count: 14, variation: 35, richness: 1 + -- max_x = 2211 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -48), + position = {2240, 800} + }, + { + -- count: 15, variation: 59, richness: 3 + -- max_x = 3779 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -48), + position = {3776, 640} + }, + { + -- count: 16, variation: 22, richness: 6 + -- max_x = 1443 max_y = 432 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -48), + position = {1408, 400} + }, + { + -- count: 17, variation: 25, richness: 5 + -- max_x = 1667 max_y = 512 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -48), + position = {1600, 480} + }, + { + -- count: 18, variation: 18, richness: 7 + -- max_x = 1251 max_y = 352 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -48), + position = {1152, 320} + }, + { + -- count: 19, variation: 0, richness: 3 + -- max_x = 131 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -48), + position = {0, 640} + }, + { + -- count: 20, variation: 51, richness: 1 + -- max_x = 3427 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -48), + position = {3264, 800} + }, + { + -- count: 21, variation: 10, richness: 2 + -- max_x = 611 max_y = 784 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -16), + position = {640, 720} + }, + { + -- count: 22, variation: 26, richness: 4 + -- max_x = 1667 max_y = 624 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -16), + position = {1664, 560} + }, + { + -- count: 23, variation: 52, richness: 7 + -- max_x = 3363 max_y = 384 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -16), + position = {3328, 320} + }, + { + -- count: 24, variation: 58, richness: 5 + -- max_x = 3779 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -16), + position = {3712, 480} + }, + { + -- count: 25, variation: 62, richness: 6 + -- max_x = 4067 max_y = 464 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -16), + position = {3968, 400} + }, + { + -- count: 26, variation: 46, richness: 5 + -- max_x = 3075 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -16), + position = {2944, 480} + }, + { + -- count: 27, variation: 23, richness: 1 + -- max_x = 1635 max_y = 864 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -16), + position = {1472, 800} + }, + { + -- count: 28, variation: 14, richness: 2 + -- max_x = 867 max_y = 816 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 16), + position = {896, 720} + }, + { + -- count: 29, variation: 9, richness: 3 + -- max_x = 579 max_y = 736 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 16), + position = {576, 640} + }, + { + -- count: 30, variation: 60, richness: 5 + -- max_x = 3875 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 16), + position = {3840, 480} + }, + { + -- count: 31, variation: 45, richness: 5 + -- max_x = 2947 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 16), + position = {2880, 480} + }, + { + -- count: 32, variation: 52, richness: 6 + -- max_x = 3427 max_y = 496 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 16), + position = {3328, 400} + }, + { + -- count: 33, variation: 56, richness: 4 + -- max_x = 3715 max_y = 656 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 16), + position = {3584, 560} + }, + { + -- count: 34, variation: 54, richness: 1 + -- max_x = 3619 max_y = 896 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 16), + position = {3456, 800} + }, + { + -- count: 35, variation: 34, richness: 1 + -- max_x = 2147 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 48), + position = {2176, 800} + }, + { + -- count: 36, variation: 16, richness: 3 + -- max_x = 1027 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 48), + position = {1024, 640} + }, + { + -- count: 37, variation: 29, richness: 3 + -- max_x = 1891 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 48), + position = {1856, 640} + }, + { + -- count: 38, variation: 39, richness: 3 + -- max_x = 2563 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 48), + position = {2496, 640} + }, + { + -- count: 39, variation: 52, richness: 5 + -- max_x = 3427 max_y = 608 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 48), + position = {3328, 480} + }, + { + -- count: 40, variation: 43, richness: 4 + -- max_x = 2883 max_y = 688 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 48), + position = {2752, 560} + }, + { + -- count: 41, variation: 12, richness: 1 + -- max_x = 931 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 48), + position = {768, 800} + }, + { + -- count: 42, variation: 36, richness: 1 + -- max_x = 2275 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 80), + position = {2304, 800} + }, + { + -- count: 43, variation: 21, richness: 1 + -- max_x = 1347 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 80), + position = {1344, 800} + }, + { + -- count: 44, variation: 33, richness: 1 + -- max_x = 2147 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 80), + position = {2112, 800} + }, + { + -- count: 45, variation: 38, richness: 1 + -- max_x = 2499 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 80), + position = {2432, 800} + }, + { + -- count: 46, variation: 25, richness: 1 + -- max_x = 1699 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 80), + position = {1600, 800} + }, + { + -- count: 47, variation: 2, richness: 1 + -- max_x = 259 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 80), + position = {128, 800} + }, + { + -- count: 48, variation: 56, richness: 1 + -- max_x = 3747 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 80), + position = {3584, 800} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(128, 0) + }, +--MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(96, 0) + }, + } + } + }, + idle_animation = { + north = { + layers = { + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(128, 0) + }, +--MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, + shift = util.by_pixel(96, 0) + }, + } + } + }, +} \ No newline at end of file diff --git a/prototypes/buildings/cultivator-mk04.lua b/prototypes/buildings/cultivator-mk04.lua new file mode 100644 index 0000000..fdbf3fb --- /dev/null +++ b/prototypes/buildings/cultivator-mk04.lua @@ -0,0 +1,1083 @@ +RECIPE { + type = "recipe", + name = "cultivator-mk04", + energy_required = 0.5, + enabled = false, + ingredients = { + {"cultivator-mk03", 1}, + {"science-coating", 20}, + {"divertor", 5}, + {"control-unit", 5}, + {"metallic-glass", 10}, + {"boron-carbide", 30}, + }, + results = { + {"cultivator-mk04", 1} + } +}:add_unlock("biotech-machines-mk04") + +ITEM { + type = "item", + name = "cultivator-mk04", + icons = { + { + icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk04.png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {10, -10}, + scale = 0.5 + } + }, + flags = {}, + subgroup = "py-alienlife-buildings-mk04", + order = "x", + place_result = "cultivator-mk04", + stack_size = 10 +} + +ENTITY { + type = "assembling-machine", + name = "cultivator-mk04", + icons = { + { + icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk04.png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {8, -8}, + scale = 0.5 + } + }, + icon_size = 64, + crafting_speed = 4, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "cultivator-mk04"}, + fast_replaceable_group = "cultivator", + max_health = 200, + crafting_categories = {"cultivation"}, + corpse = "big-remnants", + dying_explosion = "big-explosion", + collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + match_animation_speed_to_activity = false, + fluid_boxes = { + { + production_type = "input", + -- pipe_picture = { + -- north = { + -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height} + -- }, + -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right, + -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down, + -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left + -- }, + pipe_covers = DATA.Pipes.covers(true, true, true, true), + base_area = 10, + base_level = -1, + pipe_connections = { + { position = {-4, 0}, type = 'input' }, + { position = {0, 4}, type = 'input' }, + { position = {4, 0}, type = 'input' }, + { position = {0, -4}, type = 'input' }, + }, + }, + -- { + -- production_type = "output", + -- pipe_covers = DATA.Pipes.covers(true, true, true, true), + -- pipe_picture = DATA.Pipes.pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), + -- base_level = 1, + -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, + -- }, + }, + module_specification = { + module_slots = 1 + }, + allowed_effects = {"consumption", "speed"}, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = 1, + }, + energy_usage = "650kW", + collision_mask = {"item-layer", "object-layer", "water-tile"}, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, + idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, + apparent_volume = 2.5 + }, + animation = { + north = { + layers = { + { + -- count: 0, variation: 60, richness: 1 + -- max_x = 3811 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -112), + position = {3840, 800} + }, + { + -- count: 1, variation: 22, richness: 1 + -- max_x = 1411 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -112), + position = {1408, 800} + }, + { + -- count: 2, variation: 47, richness: 1 + -- max_x = 3043 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -112), + position = {3008, 800} + }, + { + -- count: 3, variation: 14, richness: 1 + -- max_x = 963 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -112), + position = {896, 800} + }, + { + -- count: 4, variation: 56, richness: 1 + -- max_x = 3683 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -112), + position = {3584, 800} + }, + { + -- count: 5, variation: 41, richness: 1 + -- max_x = 2755 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -112), + position = {2624, 800} + }, + { + -- count: 6, variation: 21, richness: 1 + -- max_x = 1507 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -112), + position = {1344, 800} + }, + { + -- count: 7, variation: 24, richness: 1 + -- max_x = 1507 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -80), + position = {1536, 800} + }, + { + -- count: 8, variation: 46, richness: 3 + -- max_x = 2947 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -80), + position = {2944, 640} + }, + { + -- count: 9, variation: 24, richness: 3 + -- max_x = 1571 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -80), + position = {1536, 640} + }, + { + -- count: 10, variation: 42, richness: 4 + -- max_x = 2755 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -80), + position = {2688, 560} + }, + { + -- count: 11, variation: 14, richness: 3 + -- max_x = 995 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -80), + position = {896, 640} + }, + { + -- count: 12, variation: 38, richness: 4 + -- max_x = 2563 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -80), + position = {2432, 560} + }, + { + -- count: 13, variation: 4, richness: 1 + -- max_x = 419 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -80), + position = {256, 800} + }, + { + -- count: 14, variation: 35, richness: 1 + -- max_x = 2211 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -48), + position = {2240, 800} + }, + { + -- count: 15, variation: 59, richness: 3 + -- max_x = 3779 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -48), + position = {3776, 640} + }, + { + -- count: 16, variation: 22, richness: 6 + -- max_x = 1443 max_y = 432 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -48), + position = {1408, 400} + }, + { + -- count: 17, variation: 25, richness: 5 + -- max_x = 1667 max_y = 512 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -48), + position = {1600, 480} + }, + { + -- count: 18, variation: 18, richness: 7 + -- max_x = 1251 max_y = 352 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -48), + position = {1152, 320} + }, + { + -- count: 19, variation: 0, richness: 3 + -- max_x = 131 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -48), + position = {0, 640} + }, + { + -- count: 20, variation: 51, richness: 1 + -- max_x = 3427 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -48), + position = {3264, 800} + }, + { + -- count: 21, variation: 10, richness: 2 + -- max_x = 611 max_y = 784 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, -16), + position = {640, 720} + }, + { + -- count: 22, variation: 26, richness: 4 + -- max_x = 1667 max_y = 624 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, -16), + position = {1664, 560} + }, + { + -- count: 23, variation: 52, richness: 7 + -- max_x = 3363 max_y = 384 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, -16), + position = {3328, 320} + }, + { + -- count: 24, variation: 58, richness: 5 + -- max_x = 3779 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, -16), + position = {3712, 480} + }, + { + -- count: 25, variation: 62, richness: 6 + -- max_x = 4067 max_y = 464 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, -16), + position = {3968, 400} + }, + { + -- count: 26, variation: 46, richness: 5 + -- max_x = 3075 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, -16), + position = {2944, 480} + }, + { + -- count: 27, variation: 23, richness: 1 + -- max_x = 1635 max_y = 864 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, -16), + position = {1472, 800} + }, + { + -- count: 28, variation: 14, richness: 2 + -- max_x = 867 max_y = 816 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 16), + position = {896, 720} + }, + { + -- count: 29, variation: 9, richness: 3 + -- max_x = 579 max_y = 736 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 16), + position = {576, 640} + }, + { + -- count: 30, variation: 60, richness: 5 + -- max_x = 3875 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 16), + position = {3840, 480} + }, + { + -- count: 31, variation: 45, richness: 5 + -- max_x = 2947 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 16), + position = {2880, 480} + }, + { + -- count: 32, variation: 52, richness: 6 + -- max_x = 3427 max_y = 496 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 16), + position = {3328, 400} + }, + { + -- count: 33, variation: 56, richness: 4 + -- max_x = 3715 max_y = 656 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 16), + position = {3584, 560} + }, + { + -- count: 34, variation: 54, richness: 1 + -- max_x = 3619 max_y = 896 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 16), + position = {3456, 800} + }, + { + -- count: 35, variation: 34, richness: 1 + -- max_x = 2147 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 48), + position = {2176, 800} + }, + { + -- count: 36, variation: 16, richness: 3 + -- max_x = 1027 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 48), + position = {1024, 640} + }, + { + -- count: 37, variation: 29, richness: 3 + -- max_x = 1891 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 48), + position = {1856, 640} + }, + { + -- count: 38, variation: 39, richness: 3 + -- max_x = 2563 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 48), + position = {2496, 640} + }, + { + -- count: 39, variation: 52, richness: 5 + -- max_x = 3427 max_y = 608 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 48), + position = {3328, 480} + }, + { + -- count: 40, variation: 43, richness: 4 + -- max_x = 2883 max_y = 688 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 48), + position = {2752, 560} + }, + { + -- count: 41, variation: 12, richness: 1 + -- max_x = 931 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 48), + position = {768, 800} + }, + { + -- count: 42, variation: 36, richness: 1 + -- max_x = 2275 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-93, 80), + position = {2304, 800} + }, + { + -- count: 43, variation: 21, richness: 1 + -- max_x = 1347 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-61, 80), + position = {1344, 800} + }, + { + -- count: 44, variation: 33, richness: 1 + -- max_x = 2147 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-29, 80), + position = {2112, 800} + }, + { + -- count: 45, variation: 38, richness: 1 + -- max_x = 2499 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(3, 80), + position = {2432, 800} + }, + { + -- count: 46, variation: 25, richness: 1 + -- max_x = 1699 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(35, 80), + position = {1600, 800} + }, + { + -- count: 47, variation: 2, richness: 1 + -- max_x = 259 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(67, 80), + position = {128, 800} + }, + { + -- count: 48, variation: 56, richness: 1 + -- max_x = 3747 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(99, 80), + position = {3584, 800} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(128, 0) + }, +--MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(96, 0) + }, + } + } + }, + idle_animation = { + north = { + layers = { + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + shift = util.by_pixel(128, 0) + }, +--MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.4, + tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, + shift = util.by_pixel(96, 0) + }, + } + } + }, +} \ No newline at end of file From 39fe9da7954e6139f3e885b90fe42bfc2b5728ee Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 8 Oct 2024 09:35:36 -0700 Subject: [PATCH 049/110] minor updates, hotfix for 2.0.5 --- changelog.txt | 1 + data.lua | 6 +- prototypes/buildings/atomizer-mk00.lua | 257 +++++++++--------- .../buildings/automated-screener-mk00.lua | 225 +++++++-------- .../buildings/burner-soil-extractor.lua | 141 +++++----- prototypes/buildings/burner-washer.lua | 1 + prototypes/buildings/compost-plant-mk00.lua | 26 +- prototypes/recipes/recipes.lua | 53 ---- prototypes/updates/pyalienlife-updates.lua | 22 +- 9 files changed, 360 insertions(+), 372 deletions(-) diff --git a/changelog.txt b/changelog.txt index 2b0cde6..8761111 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,7 @@ Date: ???? Changes: - Updated cultivator locale - Added cultivator mk02-mk04, unlocked alongside the respective collector and with the same recipe + - Debuffed fawogae to coal for the upcoming burner stage --------------------------------------------------------------------------------------------------- Version: 2.0.5 Date: 2024-10-08 diff --git a/data.lua b/data.lua index 0059160..dd298ec 100644 --- a/data.lua +++ b/data.lua @@ -11,6 +11,9 @@ require('prototypes/buildings/atomizer-mk00') require('prototypes/buildings/basic-ddc') require('prototypes/buildings/burner-washer') require('prototypes/buildings/automated-screener-mk00') +-- require('prototypes/buildings/compost-plant-mk00') +-- require('prototypes/buildings/burner-soil-extractor') +-- require('prototypes/buildings/burner-wpu') require("prototypes/buildings/geothermal-plant-mk01") require("prototypes/buildings/cultivator-mk01") require("prototypes/buildings/cultivator-mk02") @@ -18,14 +21,11 @@ require("prototypes/buildings/cultivator-mk03") require("prototypes/buildings/cultivator-mk04") --UNUSED ---require('prototypes/buildings/burner-wpu') ---require('prototypes/buildings/compost-plant-mk00') --require('prototypes/buildings/fish-farm-mk00') --require('prototypes/buildings/fwf-mk00') --require('prototypes/buildings/slaughterhouse-mk00') --require('prototypes/buildings/seaweed-crop-mk00') --require('prototypes/buildings/bqt') ---require('prototypes/buildings/burner-soil-extractor') require("prototypes/itemgroups") require("prototypes/recipe-categories") diff --git a/prototypes/buildings/atomizer-mk00.lua b/prototypes/buildings/atomizer-mk00.lua index 8390b04..341c455 100644 --- a/prototypes/buildings/atomizer-mk00.lua +++ b/prototypes/buildings/atomizer-mk00.lua @@ -1,142 +1,143 @@ RECIPE { - type = "recipe", - name = "atomizer-mk00", - energy_required = 0.5, - enabled = true, - ingredients = { - --{"burner-washer", 1}, - {"iron-plate", 15}, - {"copper-plate", 20}, - {"pipe", 10} - }, - results = { - {"atomizer-mk00", 1} - } + type = "recipe", + name = "atomizer-mk00", + energy_required = 0.5, + enabled = true, + ingredients = { + --{"burner-washer", 1}, + {"iron-plate", 15}, + {"copper-plate", 20}, + {"pipe", 10} + }, + results = { + {"atomizer-mk00", 1} + } } ITEM { - type = "item", - name = "atomizer-mk00", - icon = "__PyBlock__/graphics/icons/atomizer-mk00.png", - icon_size = 64, - flags = {}, - subgroup = "py-alienlife-buildings-mk00", - order = "a", - place_result = "atomizer-mk00", - stack_size = 10 + type = "item", + name = "atomizer-mk00", + icon = "__PyBlock__/graphics/icons/atomizer-mk00.png", + icon_size = 64, + flags = {}, + subgroup = "py-alienlife-buildings-mk00", + order = "a", + place_result = "atomizer-mk00", + stack_size = 10 } ENTITY { - type = "assembling-machine", - name = "atomizer-mk00", - icon = "__PyBlock__/graphics/icons/atomizer-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "atomizer-mk00"}, - fast_replaceable_group = "atomizer", - max_health = 100, - corpse = "medium-remnants", - dying_explosion = "big-explosion", - collision_box = {{-3.3, -3.3}, {3.3, 3.3}}, - selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, - match_animation_speed_to_activity = false, - module_specification = { - module_slots = 1 + type = "assembling-machine", + name = "atomizer-mk00", + icon = "__PyBlock__/graphics/icons/atomizer-mk00.png", + icon_size = 64, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "atomizer-mk00"}, + fast_replaceable_group = "atomizer", + max_health = 100, + corpse = "medium-remnants", + dying_explosion = "big-explosion", + collision_box = {{-3.3, -3.3}, {3.3, 3.3}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + match_animation_speed_to_activity = false, + module_specification = { + module_slots = 1 + }, + allowed_effects = {"speed","pollution"}, + crafting_categories = {"atomizer"}, + crafting_speed = 0.5, + energy_source = + { + type = "burner", + --fuel_category = "chemical", + fuel_categories = {"chemical", "biomass"}, + effectivity = 1, + fuel_inventory_size = 1, + burnt_inventory_size = 1, + emissions_per_minute = 0.06, + }, + energy_usage = "300kW", + animation = { + layers = { + { + filename = "__pyalienlifegraphics__/graphics/entity/atomizer/off.png", + --priority = "high", + width = 256, + height = 256, + --line_length = 1, + frame_count = 1, + --animation_speed = 2, + shift = util.by_pixel(16, -16) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/atomizer/off-mask.png", + --priority = "high", + width = 256, + height = 256, + --line_length = 1, + frame_count = 1, + --animation_speed = 2, + shift = util.by_pixel(16, -16), + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + }, + } + }, + working_visualisations = { + { + north_position = util.by_pixel(0, -16), + west_position = util.by_pixel(0, -16), + south_position = util.by_pixel(0, -16), + east_position = util.by_pixel(0, -16), + animation = { + filename = "__pyalienlifegraphics__/graphics/entity/atomizer/on.png", + priority = "high", + frame_count = 90, + line_length = 9, + width = 224, + height = 192, + animation_speed = 0.5 + } }, - allowed_effects = {"speed","pollution"}, - crafting_categories = {"atomizer"}, - crafting_speed = 0.5, - energy_source = + }, + fluid_boxes = { + --1 { - type = "burner", - --fuel_category = "chemical", - fuel_categories = {"chemical", "biomass"}, - effectivity = 1, - fuel_inventory_size = 1, - burnt_inventory_size = 1, - emissions_per_minute = 0.06, + production_type = "input", + pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), + pipe_covers = DATA.Pipes.covers(false, true, true, true), + base_area = 10, + base_level = -1, + pipe_connections = {{type = "input", position = {1.0, -4.0}}} }, - energy_usage = "300kW", - animation = { - layers = { - { - filename = "__pyalienlifegraphics__/graphics/entity/atomizer/off.png", - --priority = "high", - width = 256, - height = 256, - --line_length = 1, - frame_count = 1, - --animation_speed = 2, - shift = util.by_pixel(16, -16) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/atomizer/off-mask.png", - --priority = "high", - width = 256, - height = 256, - --line_length = 1, - frame_count = 1, - --animation_speed = 2, - shift = util.by_pixel(16, -16), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - } + { + production_type = "input", + pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), + pipe_covers = DATA.Pipes.covers(false, true, true, true), + base_area = 10, + base_level = -1, + pipe_connections = {{type = "input", position = {-1.0, -4.0}}} }, - working_visualisations = { - { - north_position = util.by_pixel(0, -16), - west_position = util.by_pixel(0, -16), - south_position = util.by_pixel(0, -16), - east_position = util.by_pixel(0, -16), - animation = { - filename = "__pyalienlifegraphics__/graphics/entity/atomizer/on.png", - priority = "high", - frame_count = 90, - line_length = 9, - width = 224, - height = 192, - animation_speed = 0.5 - } - }, + { + production_type = "output", + pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), + pipe_covers = DATA.Pipes.covers(false, true, true, true), + base_level = 1, + pipe_connections = {{type = "output", position = {1.0, 4.0}}} }, - fluid_boxes = { - --1 - { - production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {1.0, -4.0}}} - }, - { - production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {-1.0, -4.0}}} - }, - { - production_type = "output", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_level = 1, - pipe_connections = {{type = "output", position = {1.0, 4.0}}} - }, - { - production_type = "output", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_level = 1, - pipe_connections = {{type = "output", position = {-1.0, 4.0}}} - }, - off_when_no_fluid_recipe = true + { + production_type = "output", + pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), + pipe_covers = DATA.Pipes.covers(false, true, true, true), + base_level = 1, + pipe_connections = {{type = "output", position = {-1.0, 4.0}}} }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics__/sounds/atomizer.ogg", volume = 1.0}, - idle_sound = {filename = "__pyalienlifegraphics__/sounds/atomizer.ogg", volume = 0.50}, - apparent_volume = 2.5 - } + off_when_no_fluid_recipe = true + }, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyalienlifegraphics__/sounds/atomizer.ogg", volume = 1.0}, + idle_sound = {filename = "__pyalienlifegraphics__/sounds/atomizer.ogg", volume = 0.50}, + apparent_volume = 2.5 + }, + _upgrade = "atomizer-mk01" } diff --git a/prototypes/buildings/automated-screener-mk00.lua b/prototypes/buildings/automated-screener-mk00.lua index bd30beb..0e1725e 100644 --- a/prototypes/buildings/automated-screener-mk00.lua +++ b/prototypes/buildings/automated-screener-mk00.lua @@ -1,120 +1,127 @@ RECIPE { - type = "recipe", - name = "automated-screener-mk00", - energy_required = 10, - enabled = false, - ingredients = { - {"iron-plate", 40}, - {"iron-gear-wheel", 10}, - }, - results = { - {"automated-screener-mk00", 1} - } + type = "recipe", + name = "automated-screener-mk00", + energy_required = 10, + enabled = false, + ingredients = { + {"iron-plate", 40}, + {"iron-gear-wheel", 10}, + {"stone-brick", 16} + }, + results = { + {"automated-screener-mk00", 1} + } }:add_unlock("glass") ITEM { - type = "item", - name = "automated-screener-mk00", - icon = "__PyBlock__/graphics/icons/automated-screener-mk00.png", + type = "item", + name = "automated-screener-mk00", + icon = "__PyBlock__/graphics/icons/automated-screener-mk00.png", icon_size = 64, - flags = {}, - subgroup = "py-fusion-buildings-mk00", - order = "d", - place_result = "automated-screener-mk00", - stack_size = 10 + flags = {}, + subgroup = "py-fusion-buildings-mk00", + order = "d", + place_result = "automated-screener-mk00", + stack_size = 10 } ENTITY { - type = "assembling-machine", - name = "automated-screener-mk00", - icon = "__PyBlock__/graphics/icons/automated-screener-mk00.png", + type = "assembling-machine", + name = "automated-screener-mk00", + icon = "__PyBlock__/graphics/icons/automated-screener-mk00.png", icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "automated-screener-mk00"}, - fast_replaceable_group = "automated-screener", - max_health = 700, - corpse = "big-remnants", - dying_explosion = "big-explosion", - collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, - selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, - match_animation_speed_to_activity = false, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, - crafting_categories = {"screener"}, - crafting_speed = 0.5, - energy_source = { - type = "electric", - usage_priority = "secondary-input", - emissions_per_minute = 0.06, - }, - energy_usage = "300kW", - animation = { - layers = { - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/left.png", - width = 96, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {-2.032, -0.5} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/left-mask.png", - width = 96, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {-2.032, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid.png", - width = 96, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {0.968, -0.5} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid-mask.png", - width = 96, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {0.968, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right.png", - width = 38, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {3.032, -0.5} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right-mask.png", - width = 38, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {3.032, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - } - } - }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyfusionenergygraphics__/sounds/automated-screener.ogg", volume = 1.3}, - idle_sound = {filename = "__pyfusionenergygraphics__/sounds/automated-screener.ogg", volume = 0.95}, - apparent_volume = 2.5 + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "automated-screener-mk00"}, + fast_replaceable_group = "automated-screener", + max_health = 700, + corpse = "big-remnants", + dying_explosion = "big-explosion", + collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + match_animation_speed_to_activity = false, + module_specification = { + module_slots = 1 + }, + allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + crafting_categories = {"screener"}, + crafting_speed = 0.5, + energy_source = + { + type = "burner", + --fuel_category = "chemical", + fuel_categories = {"chemical", "biomass"}, + effectivity = 1, + fuel_inventory_size = 1, + burnt_inventory_size = 1, + emissions_per_minute = 0.06, + }, + energy_usage = "80kW", + animation = { + layers = { + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/left.png", + width = 96, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {-2.032, -0.5} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/left-mask.png", + width = 96, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {-2.032, -0.5}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid.png", + width = 96, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {0.968, -0.5} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid-mask.png", + width = 96, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {0.968, -0.5}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right.png", + width = 38, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {3.032, -0.5} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right-mask.png", + width = 38, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {3.032, -0.5}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + } } + }, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyfusionenergygraphics__/sounds/automated-screener.ogg", volume = 1.3}, + idle_sound = {filename = "__pyfusionenergygraphics__/sounds/automated-screener.ogg", volume = 0.95}, + apparent_volume = 2.5 + }, + next_upgrade = "automated-screener-mk01" } diff --git a/prototypes/buildings/burner-soil-extractor.lua b/prototypes/buildings/burner-soil-extractor.lua index fe215bd..dda0dcb 100644 --- a/prototypes/buildings/burner-soil-extractor.lua +++ b/prototypes/buildings/burner-soil-extractor.lua @@ -21,78 +21,91 @@ ITEM { icon = "__PyBlock__/graphics/icons/soil-extractormk00.png", icon_size = 64, flags = {}, - subgroup = "py-extraction", + subgroup = "coal-processing", order = "g", place_result = "burner-soil-extractor", stack_size = 10 } ENTITY { - type = "assembling-machine", - name = "burner-soil-extractor", - icon = "__PyBlock__/graphics/icons/soil-extractormk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "burner-soil-extractor"}, - fast_replaceable_group = "soil-extractormk01", - max_health = 300, - corpse = "big-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-3.48, -3.48}, {3.48, 3.48}}, - selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, - module_specification = { - module_slots = 0 + type = "assembling-machine", + name = "burner-soil-extractor", + icon = "__PyBlock__/graphics/icons/soil-extractormk00.png", + icon_size = 64, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 1, result = "burner-soil-extractor"}, + fast_replaceable_group = "soil-extractormk01", + max_health = 300, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-3.48, -3.48}, {3.48, 3.48}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + module_specification = { + module_slots = 0 + }, + allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + crafting_categories = {"soil-extraction"}, + crafting_speed = 0.3, + energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + {type = "input-output", position = {0, 4}}, + {type = "input-output", position = {0, -4}}, + }, + production_type = "input-output", + filter = "steam", }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, - crafting_categories = {"soil-extraction"}, - crafting_speed = 0.3, - energy_source = + scale_fluid_usage = true, + }, + energy_usage = "200kW", + animation = { + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/soil-extractormk01.png", + width = 235, + height = 266, + frame_count = 30, + line_length = 6, + animation_speed = 0.8, + shift = {0.16, -0.609} + }, + fluid_boxes = { { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = - { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "input-output", position = {-4,0}}, - {type = "input-output", position = {4, 2}}, - {type = "input-output", position = {0, 4}}, - {type = "input-output", position = {0, -4}}, - }, - production_type = "input-output", - filter = "steam", - }, - scale_fluid_usage = true, - }, - energy_usage = "200kW", - animation = { - filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/soil-extractormk01.png", - width = 235, - height = 266, - frame_count = 30, - line_length = 6, - animation_speed = 0.8, - shift = {0.16, -0.609} - }, - fluid_boxes = { - { - production_type = "input", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {0, 1}, {0, -1}, nil, nil, pipes), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {4.0, 0.0}}} + production_type = "input", + pipe_covers = DATA.Pipes.covers(true, true, true, true), + pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {0, 1}, {0, -1}, nil, nil, { + north = { + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/long-pipe-north.png", + priority = "low", + width = 30, + height = 44 + }, + south = { + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/pipe-south.png", + priority = "extra-high", + width = 40, + height = 45 } - }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pycoalprocessinggraphics__/sounds/soil-extractormk01.ogg"}, - idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/soil-extractormk01.ogg", volume = 0.45}, - apparent_volume = 2.5 + }), + base_area = 10, + base_level = -1, + height = 2, + pipe_connections = { + {type = "input-output", position = {4, 0}}, + {type = "input-output", position = {-4, 0}}, + } } + }, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pycoalprocessinggraphics__/sounds/soil-extractormk01.ogg"}, + idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/soil-extractormk01.ogg", volume = 0.45}, + apparent_volume = 2.5 + }, + next_upgrade = "soil-extractormk01" } diff --git a/prototypes/buildings/burner-washer.lua b/prototypes/buildings/burner-washer.lua index 00d4f61..a72ec2f 100644 --- a/prototypes/buildings/burner-washer.lua +++ b/prototypes/buildings/burner-washer.lua @@ -52,6 +52,7 @@ burner_washer.energy_source = { scale_fluid_usage = true } burner_washer.energy_usage = "100kW" +burner_washer.next_upgrade = "washer-mk01" data.raw["assembling-machine"]["burner-washer"] = burner_washer -- ENTITY { diff --git a/prototypes/buildings/compost-plant-mk00.lua b/prototypes/buildings/compost-plant-mk00.lua index 346d1c5..538819b 100644 --- a/prototypes/buildings/compost-plant-mk00.lua +++ b/prototypes/buildings/compost-plant-mk00.lua @@ -1,18 +1,16 @@ RECIPE { - type = "recipe", - name = "compost-plant-mk00", - energy_required = 0.5, - enabled = true, - ingredients = { - {"chromium", 30}, - {"boiler", 10}, - {"steel-plate", 50}, - {"electronic-circuit", 10}, - {"iron-gear-wheel", 50}, - }, - results = { - {"compost-plant-mk00", 1} - } + type = "recipe", + name = "compost-plant-mk00", + energy_required = 0.5, + enabled = true, + ingredients = { + {"boiler", 10}, + {"steel-plate", 50}, + {"iron-gear-wheel", 50}, + }, + results = { + {"compost-plant-mk00", 1} + } } ITEM { diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index 7f403d6..bee0194 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -45,31 +45,6 @@ RECIPE { energy_required = 4 }:add_unlock("glass") --- biosample recipe --- RECIPE { --- type = "recipe", --- name = "biosample", --- category = "biofactory", --- enabled = false, --- energy_required = 5, --- ingredients = { --- { type = "item", name = "bio-container", amount = 10 }, --- { type = "item", name = "seaweed", amount = 4 }, --- { type = "item", name = "moss", amount = 2 }, --- --{ type = 'fluid', name = 'waste-water', amount = 20 }, --- --{ type = 'fluid', name = 'phytoplankton', amount = 25 }, --- --{ type = 'fluid', name = 'zogna-bacteria', amount = 5 }, --- }, --- results = { --- { type = "item", name = "bio-sample", amount = 10 }, --- }, --- main_product = "bio-sample", --- icon = "__pyalienlifegraphics__/graphics/icons/biosample.png", --- icon_size = 64, --- subgroup = "py-alienlife-genetics", --- order = "a" --- }:add_unlock('xenobiology') - -- geothermal water fake mining recipe RECIPE { type = "recipe", @@ -164,34 +139,6 @@ RECIPE { --UNUSED ---new recipes - ---[[ -RECIPE { - type = "recipe", - name = "coaldust-to-diamond", - category = "hpf", - enabled = false, - energy_required = 10, - ingredients = - { - { - type = "item", name = "coal-dust", amount = 20 - } - }, - results = - { - { - type = "item", name = "kimberlite-rock", amount = 1 - } - }, - icon = "__pyfusionenergygraphics__/graphics/icons/ores/kimberlite-rock.png", - icon_size = 32, - subgroup = "py-fusion-recipes", - order = "h" -} -]]-- - --nickel from clay --new fluids for ree from ash diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 0cefd89..cba9d3e 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -39,7 +39,7 @@ data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "30kW" data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" -- fawogae to raw coal -RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:set_fields{results = {{type = "item", name = "raw-coal", amount = 7}}} +RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} -- seaweed RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") @@ -121,6 +121,26 @@ RECIPE("saline-water"):remove_unlock("vacuum-tube-electronics"):add_unlock("fish RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen"):set_fields{results = {{type = "item", name = "fish", amount = 15}, {type = "fluid", name = "waste-water", amount = 100}}} +-- RECIPE{ +-- name = "breed-fish-simple", +-- type = "recipe", +-- category = "fish-farm", +-- enabled = false, +-- energy_required = 270, +-- ingredients = { +-- { type = "item", name = "fish-egg", amount = 10 }, +-- { type = "fluid", name = "water-saline", amount = 100 }, +-- }, +-- results = { +-- { type = "item", name = "fish", amount = 12 }, +-- { type = "fluid", name = "waste-water", amount = 100 }, +-- }, +-- main_product = "fish", +-- subgroup = "py-alienlife-fish", +-- order = "b", +-- allowed_module_categories = { "fish" } +-- }:add_unlock("fish-mk01") + local breed_fish = table.deepcopy(data.raw["recipe"]["breed-fish-1"]) breed_fish.name = "breed-fish-simple" data.raw.recipe["breed-fish-simple"] = breed_fish From cf8e9879d14216ff65bcf343b0c2e81efe59503c Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 8 Oct 2024 09:35:52 -0700 Subject: [PATCH 050/110] date --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 8761111..7465c6e 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ --------------------------------------------------------------------------------------------------- Version: 2.0.6 -Date: ???? +Date: 2024-10-08 Changes: - Updated cultivator locale - Added cultivator mk02-mk04, unlocked alongside the respective collector and with the same recipe From cd8fe042f993fa5f2d849dfe6297f20564d51f8f Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 8 Oct 2024 09:36:35 -0700 Subject: [PATCH 051/110] ignore zip files --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4c4ffc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.zip From 8122885dd37496f7dddde4c430058bc250e5bdf4 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 8 Oct 2024 10:04:07 -0700 Subject: [PATCH 052/110] hotfix for burner washer --- changelog.txt | 5 +++++ info.json | 2 +- prototypes/buildings/burner-washer.lua | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 7465c6e..3a070c5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 2.0.7 +Date: ???? + Bugfixes: + - Fixed the game not loading because of stupid naming conventions +--------------------------------------------------------------------------------------------------- Version: 2.0.6 Date: 2024-10-08 Changes: diff --git a/info.json b/info.json index 29b560d..a4f6d7d 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "PyBlock", - "version": "2.0.6", + "version": "2.0.7", "factorio_version": "1.1", "title": "PyBlock", "author": "KingArthur", diff --git a/prototypes/buildings/burner-washer.lua b/prototypes/buildings/burner-washer.lua index a72ec2f..99b06b0 100644 --- a/prototypes/buildings/burner-washer.lua +++ b/prototypes/buildings/burner-washer.lua @@ -52,7 +52,7 @@ burner_washer.energy_source = { scale_fluid_usage = true } burner_washer.energy_usage = "100kW" -burner_washer.next_upgrade = "washer-mk01" +burner_washer.next_upgrade = "washer" data.raw["assembling-machine"]["burner-washer"] = burner_washer -- ENTITY { From 343f2265d6745c74bffdab27b635d870b7bb921b Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 19 Oct 2024 20:50:56 -0700 Subject: [PATCH 053/110] ddc shows fluid connections always --- changelog.txt | 1 + prototypes/buildings/basic-ddc.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 3a070c5..397b478 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,7 @@ Version: 2.0.7 Date: ???? Bugfixes: + - Crude DDC shows pipes when no fluid recipe is selected - Fixed the game not loading because of stupid naming conventions --------------------------------------------------------------------------------------------------- Version: 2.0.6 diff --git a/prototypes/buildings/basic-ddc.lua b/prototypes/buildings/basic-ddc.lua index 0dff1ba..e9ed49f 100644 --- a/prototypes/buildings/basic-ddc.lua +++ b/prototypes/buildings/basic-ddc.lua @@ -134,7 +134,7 @@ ENTITY { --{ position = {-2, -1} } } }, - off_when_no_fluid_recipe = true + off_when_no_fluid_recipe = false }, crafting_categories = {"distilator"}, crafting_speed = 0.5, From edcfbd583b3cf29f7578996964a55e2770a15336 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 19 Oct 2024 20:51:06 -0700 Subject: [PATCH 054/110] burner and steampowered entities etc --- ...industry+pypetroleumhandling+pyrawores.lua | 32 ++-- changelog.txt | 18 ++ data-updates.lua | 15 +- data.lua | 6 +- prototypes/buildings/basic-ddc.lua | 2 + .../buildings/burner-soil-extractor.lua | 20 +- prototypes/buildings/burner-washer.lua | 26 +-- prototypes/buildings/burner-wpu.lua | 180 +++++++++--------- prototypes/buildings/compost-plant-mk00.lua | 6 +- prototypes/updates/pyalienlife-updates.lua | 47 +++-- 10 files changed, 205 insertions(+), 147 deletions(-) diff --git a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua index 365c5fc..dc273f2 100644 --- a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua +++ b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua @@ -1,15 +1,15 @@  -science_pack_order("automation-science-pack","001-000030") -science_pack_order("py-science-pack-1","002-000143") -science_pack_order("logistic-science-pack","003-000226") -science_pack_order("military-science-pack","004-000230") -science_pack_order("chemical-science-pack","005-000438") -science_pack_order("py-science-pack-2","004-000359") -science_pack_order("utility-science-pack","009-000617") -science_pack_order("production-science-pack","007-000544") -science_pack_order("py-science-pack-4","008-000592") -science_pack_order("py-science-pack-3","006-000496") -science_pack_order("space-science-pack","010-000650") +science_pack_order("automation-science-pack","001-000028") +science_pack_order("py-science-pack-1","002-000141") +science_pack_order("logistic-science-pack","003-000224") +science_pack_order("military-science-pack","004-000228") +science_pack_order("chemical-science-pack","005-000436") +science_pack_order("py-science-pack-2","004-000357") +science_pack_order("utility-science-pack","009-000615") +science_pack_order("production-science-pack","007-000542") +science_pack_order("py-science-pack-4","008-000590") +science_pack_order("py-science-pack-3","006-000494") +science_pack_order("space-science-pack","010-000648") fix_tech("physical-projectile-damage-1",{order="000020",prerequisites={"military","py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("physical-projectile-damage-2",{order="000036",prerequisites={"physical-projectile-damage-1","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("weapon-shooting-speed-1",{order="000020",prerequisites={"military","py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) @@ -279,7 +279,7 @@ fix_tech("py-accumulator-mk03",{order="000096",prerequisites={"utility-science-p fix_tech("radars-mk01",{order="000009",prerequisites={"vacuum-tube-electronics"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("radars-mk02",{order="000065",prerequisites={"basic-electronics","electric-engine"},unit={count=1750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("py-burner",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) -fix_tech("machines-mk01",{order="000024",prerequisites={"intermetallics-mk01","radars-mk01","soil-washing"},unit={count=100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("machines-mk01",{order="000024",prerequisites={"intermetallics-mk01","radars-mk01"},unit={count=100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("machines-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("machines-mk03",{order="000068",prerequisites={"chemical-science-pack","machine-components-mk02","neuro-electronics-mk01","logistics-2","titanium-mk02"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("machines-mk04",{order="000089",prerequisites={"sc-engine","stack-inserter","logistics-3","desulfurization","biotech-machines-mk02"},unit={count=2000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) @@ -400,7 +400,7 @@ fix_tech("basic-electronics",{order="000064",prerequisites={"integrated-circuits fix_tech("biopolymer",{order="000083",prerequisites={"microbiology-mk04"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("cadaveric-arum",{order="000007",prerequisites={"botany-mk01","optics"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("carbon-nanotube",{order="000084",prerequisites={"biopolymer"},unit={count=1100,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) -fix_tech("ceramic",{order="000005",prerequisites={"mining-with-fluid"},unit={count=27,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("ceramic",{order="000007",prerequisites={"tar-processing"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("collagen",{order="000068",prerequisites={"chemical-science-pack","epoxy"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("colloidal-silica",{order="000082",prerequisites={"production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("earnshaw-theorem",{order="000087",prerequisites={"nano-mesh","nems","super-alloy"},unit={count=1500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) @@ -456,7 +456,7 @@ fix_tech("rubber-2",{order="000040",prerequisites={"organic-solvent"},unit={coun fix_tech("rubber-3",{order="000068",prerequisites={"rubber-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("fast-inserter-2",{order="000064",prerequisites={"small-parts-mk02"},unit={count=1500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("stack-inserter-2",{order="000079",prerequisites={"stack-inserter","small-parts-mk03"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) -fix_tech("oil-machines-mk01",{order="000026",prerequisites={"automation-2","chromium-mk01","soil-washing"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("oil-machines-mk01",{order="000026",prerequisites={"automation-2","chromium-mk01"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("oil-machines-mk02",{order="000069",prerequisites={"machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("oil-machines-mk03",{order="000090",prerequisites={"oil-machines-mk02","coalbed-mk02","machines-mk04","bio-implants"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) fix_tech("oil-machines-mk04",{order="000101",prerequisites={"oil-machines-mk03","machines-mk05"},unit={count=1300,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) @@ -672,7 +672,7 @@ fix_tech("cottongut-mk01",{order="000033",prerequisites={"starch-mk01","fish-mk0 fix_tech("cottongut-mk02",{order="000067",prerequisites={"grod","bhoddos"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("cottongut-mk03",{order="000081",prerequisites={"cottongut-mk02","pharmagenomics"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) fix_tech("cottongut-mk04",{order="000092",prerequisites={"cottongut-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) -fix_tech("compost",{order="000009",prerequisites={"vacuum-tube-electronics","acetylene"},unit={count=45,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("compost",{order="000007",prerequisites={"acetylene"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("arqad",{order="000043",prerequisites={"sugar","ulric","coke-mk02","vrauks-mk02","petroleum-gas-mk01"},unit={count=360,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("arqad-mk02",{order="000074",prerequisites={"dhilmos","moondrop-mk03","chitin"},unit={count=2000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) fix_tech("arqad-mk03",{order="000080",prerequisites={"moondrop-mk04","energy-drink","korlex-mk03"},unit={count=1600,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) @@ -732,7 +732,7 @@ fix_tech("seaweed-mk02",{order="000046",prerequisites={"molybdenum-processing"," fix_tech("seaweed-mk03",{order="000056",prerequisites={"seaweed-mk02","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("seaweed-mk04",{order="000076",prerequisites={"seaweed-mk03","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("seaweed-mk05",{order="000092",prerequisites={"seaweed-mk04","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) -fix_tech("glass",{order="000005",prerequisites={"mining-with-fluid"},unit={count=27,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("glass",{order="000005",prerequisites={"soil-washing","mining-with-fluid"},unit={count=27,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("petri-dish",{order="000006",prerequisites={"seaweed-mk01","glass"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("latex",{order="000018",prerequisites={"rendering"},unit={count=120,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("sap-mk01",{order="000007",prerequisites={"botany-mk01"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) diff --git a/changelog.txt b/changelog.txt index 397b478..05c41e6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,24 @@ Date: ???? Bugfixes: - Crude DDC shows pipes when no fluid recipe is selected - Fixed the game not loading because of stupid naming conventions + Features: + - Added steampowered compost plant to composting + - Added steampowered soil extractor + - Added steampowered wood processing unit to soil washing + Changes: + - Added new fluid connections to crude DDC + - Moved wood processing unit mk01 to wood processing + - Moved soil extractor mk01 to soil washing + - Moved washer mk01 from soil washing to latex + - Moved compost plant mk01 from composting to fertilizer mk01 + - Reverted compost plant mk01 to original recipe + - Added air core inductor (12) and steampowered wood processing unit (1) to wood processing unit mk01 recipe + - Changed burner mining drill to steampowered soil extractor in soil extractor mk01 recipe + - Changed steam engine to steampowered washer in washer mk01 recipe + - Added simple circuit board (3) to washer mk01 recipe + - Moved ddc mk01 from coal processing 1 to tar processing + - Added crude ddc to ddc mk01 recipe + - Changed spore collector from electrical to steam powered --------------------------------------------------------------------------------------------------- Version: 2.0.6 Date: 2024-10-08 diff --git a/data-updates.lua b/data-updates.lua index c553073..602f530 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -267,8 +267,19 @@ for o, ore in pairs(ores) do end end --- soot separation recipes -RECIPE("soot-to-aluminium"):remove_unlock("oil-sands"):add_unlock("mining-with-fluid") +-- burner/steam mk00 recipe adjustments +RECIPE("wpu"):add_ingredient("inductor1", 12):add_ingredient("burner-wpu", 1):add_unlock("wood-processing"):set_fields{enabled = false} + +RECIPE("soil-extractormk01"):remove_ingredient("burner-mining-drill"):add_ingredient("burner-soil-extractor", 1):add_unlock("soil-washing"):set_fields{enabled = false} + +RECIPE("washer"):remove_ingredient("steam-engine"):add_ingredient("burner-washer", 1):add_ingredient("electronic-circuit"):add_unlock("latex"):remove_unlock("soil-washing") + +RECIPE("distilator"):add_ingredient("basic-ddc"):remove_unlock("coal-processing-1"):add_unlock("tar-processing") + +RECIPE("collector"):remove_ingredient("soil-extractormk01"):add_ingredient("burner-soil-extractor", 1) +RECIPE("cultivator-mk01"):remove_ingredient("soil-extractormk01"):add_ingredient("burner-soil-extractor", 1) + +RECIPE("compost-plant-mk01"):add_ingredient("compost-plant-mk00", 1):remove_unlock("compost"):add_unlock("fertilizer-mk01") -- data.raw.technology["mega-farm"].unit.ingredients = {{"automation-science-pack", 1},{"py-science-pack-1",1}} -- TECHNOLOGY("mega-farm"):set_fields{prerequisites = {}} diff --git a/data.lua b/data.lua index dd298ec..9ba5449 100644 --- a/data.lua +++ b/data.lua @@ -11,9 +11,9 @@ require('prototypes/buildings/atomizer-mk00') require('prototypes/buildings/basic-ddc') require('prototypes/buildings/burner-washer') require('prototypes/buildings/automated-screener-mk00') --- require('prototypes/buildings/compost-plant-mk00') --- require('prototypes/buildings/burner-soil-extractor') --- require('prototypes/buildings/burner-wpu') +require('prototypes/buildings/compost-plant-mk00') +require('prototypes/buildings/burner-soil-extractor') +require('prototypes/buildings/burner-wpu') require("prototypes/buildings/geothermal-plant-mk01") require("prototypes/buildings/cultivator-mk01") require("prototypes/buildings/cultivator-mk02") diff --git a/prototypes/buildings/basic-ddc.lua b/prototypes/buildings/basic-ddc.lua index e9ed49f..a72d8a2 100644 --- a/prototypes/buildings/basic-ddc.lua +++ b/prototypes/buildings/basic-ddc.lua @@ -120,6 +120,7 @@ ENTITY { pipe_connections = { {type = "output", position = {-1, -2} }, + {type = "output", position = {-2, -1} }, --{ position = {2, 1} }, } }, @@ -131,6 +132,7 @@ ENTITY { pipe_connections = { {type = "output", position = {1, 2} }, + {type = "output", position = {2, 1} }, --{ position = {-2, -1} } } }, diff --git a/prototypes/buildings/burner-soil-extractor.lua b/prototypes/buildings/burner-soil-extractor.lua index dda0dcb..40c771a 100644 --- a/prototypes/buildings/burner-soil-extractor.lua +++ b/prototypes/buildings/burner-soil-extractor.lua @@ -21,7 +21,7 @@ ITEM { icon = "__PyBlock__/graphics/icons/soil-extractormk00.png", icon_size = 64, flags = {}, - subgroup = "coal-processing", + subgroup = "py-cp-buildings-mk00", order = "g", place_result = "burner-soil-extractor", stack_size = 10 @@ -45,7 +45,7 @@ ENTITY { }, allowed_effects = {"consumption", "speed", "productivity", "pollution"}, crafting_categories = {"soil-extraction"}, - crafting_speed = 0.3, + crafting_speed = 0.5, energy_source = { type = "fluid", effectivity = 1, @@ -54,7 +54,21 @@ ENTITY { base_area = 1, height = 2, base_level = -1, - pipe_covers = pipecoverspictures(), + pipe_covers = DATA.Pipes.covers(true, true, true, true), + pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {0, 1}, {0, -1}, nil, nil, { + north = { + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/long-pipe-north.png", + priority = "low", + width = 30, + height = 44 + }, + south = { + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/pipe-south.png", + priority = "extra-high", + width = 40, + height = 45 + } + }), pipe_connections = { {type = "input-output", position = {0, 4}}, {type = "input-output", position = {0, -4}}, diff --git a/prototypes/buildings/burner-washer.lua b/prototypes/buildings/burner-washer.lua index 99b06b0..9ae4f1e 100644 --- a/prototypes/buildings/burner-washer.lua +++ b/prototypes/buildings/burner-washer.lua @@ -1,17 +1,19 @@ RECIPE { - type = "recipe", - name = "burner-washer", - energy_required = 4, - enabled = true, - ingredients = { - {"iron-plate", 10}, - {"pipe", 25}, - {"stone-brick", 30} - }, - results = { - {"burner-washer", 1} - } + type = "recipe", + name = "burner-washer", + energy_required = 4, + enabled = true, + ingredients = { + {"steam-engine", 2}, + {"iron-plate", 10}, + {"pipe", 25}, + {"iron-gear-wheel", 10}, + {"stone-brick", 20} + }, + results = { + {"burner-washer", 1} + } } ITEM { diff --git a/prototypes/buildings/burner-wpu.lua b/prototypes/buildings/burner-wpu.lua index 08a0ecc..03ba13c 100644 --- a/prototypes/buildings/burner-wpu.lua +++ b/prototypes/buildings/burner-wpu.lua @@ -1,101 +1,99 @@ RECIPE { - type = "recipe", - name = "burner-wpu", - energy_required = 5, - enabled = true, - ingredients = { - --{"wood", 20}, - {"iron-plate", 20}, - {"iron-gear-wheel", 15}, - {"burner-mining-drill", 2}, - {"copper-cable", 5} - }, - results = { - {"burner-wpu", 1} - } + type = "recipe", + name = "burner-wpu", + energy_required = 5, + enabled = true, + ingredients = { + {"log", 12}, + {"iron-plate", 20}, + {"iron-gear-wheel", 15}, + {"steam-engine", 1}, + {"stone-furnace", 1}, + {"copper-cable", 30} + }, + results = { + {"burner-wpu", 1} + } } ITEM { - type = "item", - name = "burner-wpu", - icon = "__PyBlock__/graphics/icons/wpu-mk00.png", - icon_size = 64, - flags = {}, - subgroup = "coal-processing", - order = "c", - place_result = "burner-wpu", - stack_size = 10 - } + type = "item", + name = "burner-wpu", + icon = "__PyBlock__/graphics/icons/wpu-mk00.png", + icon_size = 64, + flags = {}, + subgroup = "py-cp-buildings-mk00", + order = "c", + place_result = "burner-wpu", + stack_size = 10 +} ENTITY { - type = "assembling-machine", - name = "burner-wpu", - icon = "__PyBlock__/graphics/icons/wpu-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "burner-wpu"}, - fast_replaceable_group = "wpu", - max_health = 800, - corpse = "medium-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, - selection_box = {{-3.0, -3.0}, {3.0, 3.0}}, - module_specification = { - module_slots = 0 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, - crafting_categories = {"wpu"}, - crafting_speed = 1, - energy_source = - { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = - { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "input-output", position = {-3.5,0.5}}, - {type = "input-output", position = {3.5, 0.5} }, - {type = "input-output", position = {0.5, 3.5} }, - }, - filter = "steam", - production_type = "input-output", - }, - scale_fluid_usage = true, - }, - energy_usage = "150kW", - animation = { - layers = { - { - filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/left.png", - width = 96, - height = 277, - line_length = 21, - frame_count = 130, - shift = {-1.5, -1.328}, - animation_speed = 0.4 - }, - { - filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/right.png", - width = 96, - height = 277, - line_length = 21, - frame_count = 130, - shift = {1.5, -1.328}, - animation_speed = 0.4 - } - } + type = "assembling-machine", + name = "burner-wpu", + icon = "__PyBlock__/graphics/icons/wpu-mk00.png", + icon_size = 64, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 1, result = "burner-wpu"}, + fast_replaceable_group = "wpu", + max_health = 800, + corpse = "medium-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, + selection_box = {{-3.0, -3.0}, {3.0, 3.0}}, + module_specification = { + module_slots = 0 + }, + allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + crafting_categories = {"wpu", "wpu-handcrafting"}, + crafting_speed = 0.5, + energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + {type = "input-output", position = {-3.5,0.5}}, + {type = "input-output", position = {3.5, 0.5}} + }, + filter = "steam", + production_type = "input-output", }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pycoalprocessinggraphics__/sounds/wpu.ogg", volume = 1.0}, - idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/wpu.ogg", volume = 0.6}, - apparent_volume = 2.5 + scale_fluid_usage = true, + }, + energy_usage = "150kW", + animation = { + layers = { + { + filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/left.png", + width = 96, + height = 277, + line_length = 21, + frame_count = 130, + shift = {-1.5, -1.328}, + animation_speed = 0.4 + }, + { + filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/right.png", + width = 96, + height = 277, + line_length = 21, + frame_count = 130, + shift = {1.5, -1.328}, + animation_speed = 0.4 + } } + }, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pycoalprocessinggraphics__/sounds/wpu.ogg", volume = 1.0}, + idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/wpu.ogg", volume = 0.6}, + apparent_volume = 2.5 + }, + next_upgrade = "wpu" } diff --git a/prototypes/buildings/compost-plant-mk00.lua b/prototypes/buildings/compost-plant-mk00.lua index 538819b..842cfa6 100644 --- a/prototypes/buildings/compost-plant-mk00.lua +++ b/prototypes/buildings/compost-plant-mk00.lua @@ -2,7 +2,7 @@ RECIPE { type = "recipe", name = "compost-plant-mk00", energy_required = 0.5, - enabled = true, + enabled = false, ingredients = { {"boiler", 10}, {"steel-plate", 50}, @@ -11,7 +11,7 @@ RECIPE { results = { {"compost-plant-mk00", 1} } -} +}:add_unlock("compost") ITEM { type = "item", @@ -69,7 +69,7 @@ ENTITY { }, scale_fluid_usage = true, }, - energy_usage = "400kW", + energy_usage = "300kW", animation = { layers = { { diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index cba9d3e..cf9182e 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -10,18 +10,18 @@ RECIPE("fawogae-1"):set_fields{enabled = true}:remove_unlock("fawogae-mk01") -- early fawogae recipe RECIPE { - type = "recipe", - name = "fawogae-start", - category = "handcrafting", - enabled = true, - energy_required = 5, - ingredients = { - {type = "item", name = "fawogae-spore", amount = 5}, - {type = "item", name = "planter-box", amount = 1} - }, - results = { - {type = "item", name = "fawogae", amount = 1} - } + type = "recipe", + name = "fawogae-start", + category = "handcrafting", + enabled = true, + energy_required = 5, + ingredients = { + {type = "item", name = "fawogae-spore", amount = 5}, + {type = "item", name = "planter-box", amount = 1} + }, + results = { + {type = "item", name = "fawogae", amount = 1} + } } --remove unused materials from fawogae mk01 @@ -37,6 +37,24 @@ RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-de data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "30kW" data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" +data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + { type = "input-output", position = {-4, 0} }, + { type = "input-output", position = {4, 0} }, + }, + filter = "steam", + production_type = "input-output", + }, + scale_fluid_usage = true +} -- fawogae to raw coal RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} @@ -190,8 +208,6 @@ TECHNOLOGY("phytomining"):remove_pack("py-science-pack-1"):remove_pack("logistic TECHNOLOGY("compost"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} -RECIPE("compost-plant-mk01"):remove_ingredient("duralumin") - RECIPE("yaedols-culture-mk01"):remove_ingredient("intermetallics"):remove_ingredient("titanium-plate") RECIPE("fungal-substrate"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") @@ -210,9 +226,6 @@ RECIPE("yaedols-ti"):remove_unlock("phytomining-mk02"):add_unlock("yaedols") RECIPE("titanium-plate-1"):remove_unlock("alloys-mk01"):add_unlock("yaedols") --- remove titanium and intermetallics from compost -RECIPE("compost-plant-mk01"):remove_ingredient("intermetallics"):remove_ingredient("titanium-plate") - RECIPE("flue-gas-1"):set_fields{category = 'gasifier'} RECIPE("flue-gas-3"):remove_unlock("compost") From 6d9fd7fcb6fb8d50e594e4452645cdff719d4dec Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 20 Oct 2024 14:08:33 -0700 Subject: [PATCH 055/110] new mapgen --- changelog.txt | 2 + data-updates.lua | 4 +- data.lua | 5 -- locale/en/locale.cfg | 8 ++ prototypes/mapgen.lua | 168 +++++++++++++++++++++++++++++++++++++ prototypes/tiles/tiles.lua | 58 ++----------- 6 files changed, 189 insertions(+), 56 deletions(-) create mode 100644 prototypes/mapgen.lua diff --git a/changelog.txt b/changelog.txt index 05c41e6..100a120 100644 --- a/changelog.txt +++ b/changelog.txt @@ -8,6 +8,8 @@ Date: ???? - Added steampowered compost plant to composting - Added steampowered soil extractor - Added steampowered wood processing unit to soil washing + - New map generation, all normal land is replaced with landfill + - New world preset with no resources, rocks, or trees, only fish, seaweed, driftwood, and landfill. Changes: - Added new fluid connections to crude DDC - Moved wood processing unit mk01 to wood processing diff --git a/data-updates.lua b/data-updates.lua index 602f530..44b6d69 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -86,13 +86,15 @@ if settings.startup["pypp-dev-mode"].value == true and settings.startup["pypp-cr end end - require("prototypes/updates/pycoalprocessing-updates") require("prototypes/updates/pypetroleumhandling-updates") require("prototypes/updates/pyrawores-updates") require('prototypes/updates/pyalienlife-updates') require("prototypes/updates/pyalternativeenergy-updates") +--mapgen-- +require("prototypes/mapgen") + --UNUSED --require('prototypes/updates/ddc-coal-updates') --require("prototypes/updates/pyfusionenergy-updates") diff --git a/data.lua b/data.lua index 9ba5449..d85bc6c 100644 --- a/data.lua +++ b/data.lua @@ -1,8 +1,3 @@ - -for _, t in pairs(data.raw.tile) do - t.autoplace = nil -end - --tiles require('prototypes/tiles/tiles') diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 64464db..0c64e35 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -92,3 +92,11 @@ alloying-mk02=Alloying 2 [controls] recipe-selector=Recipe Selector + + + +[map-gen-preset-name] +pyblock-recommended=PyBlock Recommended + +[map-gen-preset-description] +pyblock-recommended=These are the recommend settings for playing PyBlock. Resources, trees, rocks, cliffs, and most land are disabled.\nIf you want to play with more land, increase the island size or switch to normal terrain generation. \ No newline at end of file diff --git a/prototypes/mapgen.lua b/prototypes/mapgen.lua new file mode 100644 index 0000000..0d1f03a --- /dev/null +++ b/prototypes/mapgen.lua @@ -0,0 +1,168 @@ +data.raw["map-gen-presets"].default["pyblock-recommended"] = { + order = "i", + basic_settings = { + property_expression_names = { + elevation = "0_17-island" + }, + terrain_segmentation = 0, + -- default_enable_all_autoplace_controls = false, + autoplace_settings = { + ["entity"] = { + treat_missing_as_default = false, + settings = { + fish = { + frequency = 1 + }, + driftwood = { + frequency = 1 + }, + seaweed = { + frequency = 1 + } + } + } + }, + autoplace_controls = { + ["enemy-base"] = { + frequency = 0 + }, + ["trees"] = { + frequency = 0 + }, + ["iron-ore"] = { + frequency = 0 + }, + ["copper-ore"] = { + frequency = 0 + }, + ["stone"] = { + frequency = 0 + }, + ["uranium-ore"] = { + frequency = 0 + }, + ["borax"] = { + frequency = 0 + }, + ["niobium"] = { + frequency = 0 + }, + ["molybdenum-ore"] = { + frequency = 0 + }, + ["volcanic-pipe"] = { + frequency = 0 + }, + ["regolites"] = { + frequency = 0 + }, + ["ore-quartz"] = { + frequency = 0 + }, + ["raw-coal"] = { + frequency = 0 + }, + ["ore-aluminium"] = { + frequency = 0 + }, + ["ore-chromium"] = { + frequency = 0 + }, + ["ore-lead"] = { + frequency = 0 + }, + ["ore-nickel"] = { + frequency = 0 + }, + ["ore-tin"] = { + frequency = 0 + }, + ["ore-titanium"] = { + frequency = 0 + }, + ["ore-zinc"] = { + frequency = 0 + }, + ["quartz-rock"] = { + frequency = 0 + }, + ["chromium-rock"] = { + frequency = 0 + }, + ["aluminium-rock"] = { + frequency = 0 + }, + ["copper-rock"] = { + frequency = 0 + }, + ["salt-rock"] = { + frequency = 0 + }, + ["iron-rock"] = { + frequency = 0 + }, + ["coal-rock"] = { + frequency = 0 + }, + ["lead-rock"] = { + frequency = 0 + }, + ["nickel-rock"] = { + frequency = 0 + }, + ["tin-rock"] = { + frequency = 0 + }, + ["titanium-rock"] = { + frequency = 0 + }, + ["uranium-rock"] = { + frequency = 0 + }, + ["zinc-rock"] = { + frequency = 0 + }, + ["phosphate-rock-02"] = { + frequency = 0 + }, + ["phosphate-rock"] = { + frequency = 0 + }, + ["rare-earth-bolide"] = { + frequency = 0 + }, + ["oil-sand"] = { + frequency = 0 + }, + ["sulfur-patch"] = { + frequency = 0 + }, + ["bitumen-seep"] = { + frequency = 0 + }, + ["ore-bioreserve"] = { + frequency = 0 + }, + ["ore-nexelit"] = { + frequency = 0 + }, + ["geothermal-crack"] = { + frequency = 0 + }, + ["ree"] = { + frequency = 0 + }, + ["antimonium"] = { + frequency = 0 + }, + }, + cliff_settings = { + richness = 0 + }, + }, + advanced_settings = { + pollution = { + enabled = false + } + } +} \ No newline at end of file diff --git a/prototypes/tiles/tiles.lua b/prototypes/tiles/tiles.lua index 1294055..c590cda 100644 --- a/prototypes/tiles/tiles.lua +++ b/prototypes/tiles/tiles.lua @@ -1,44 +1,18 @@ -local octaves = -3 -local persistence = 0.2 -local waterline = 9.4 +local waterline = 40 local elevation_scale = 5 -local function scale_elevation(x) - return (x - waterline) * elevation_scale + waterline + +for _, t in pairs(data.raw.tile) do + t.autoplace = nil end + -- low lying sand -data.raw.tile['sand-1'].autoplace = { +data.raw.tile['landfill'].autoplace = { peaks = { { -- Around cliff islands influence = 5, elevation_optimal = 0.3 * elevation_scale + waterline, elevation_range = 0.3 * elevation_scale, - elevation_max_range = 0.3 * elevation_scale - }, - { - influence = 0.77 * 8, -- Worm islands - min_influence = 0, - noise_layer = 'enemy-base', - noise_octaves_difference = octaves, - noise_persistence = persistence, - tier_from_start_optimal = 8, - tier_from_start_max_range = 40, - tier_from_start_top_property_limit = 8 - }, - { -- Not in starting area - influence = -5, - starting_area_weight_optimal = 1, - starting_area_weight_range = 0, - starting_area_weight_max_range = 0 - }, - { - influence = 100, -- ... except for starting tile - min_influence = 0, - distance_optimal = 0, - distance_range = 0.1, - distance_max_range = 0.1 - }, - { - influence = -5 + elevation_max_range = 0.3 * elevation_scale + 100 } }} @@ -51,21 +25,6 @@ data.raw.tile['water'].autoplace = { elevation_optimal = -2 * elevation_scale + waterline, elevation_range = 2.5 * elevation_scale, elevation_max_range = 2.5 * elevation_scale - }, - { - influence = 0.77 * 2, -- around worm islands - min_influence = 0, - max_influence = 1, - noise_layer = 'enemy-base', - noise_octaves_difference = octaves, - noise_persistence = persistence, - }, - { - influence = 5, -- around starting tile - min_influence = 0, - distance_optimal = 0, - distance_range = 5, - distance_max_range = 5 } }} @@ -74,5 +33,4 @@ data.raw.tile['water'].autoplace = { { influence = 0.01 } - }} - \ No newline at end of file + }} \ No newline at end of file From 5c02424d9f7d81de0ddc00e33870ae46103c31eb Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 26 Oct 2024 17:51:18 -0700 Subject: [PATCH 056/110] too many things to count, but it works --- changelog.txt | 15 +- control.lua | 205 +-- data-final-fixes.lua | 19 - data-updates.lua | 75 +- data.lua | 63 +- ...ractormk00.png => soil-extractor-mk00.png} | Bin graphics_set for animation.py | 77 ++ info.json | 8 +- locale/en/locale.cfg | 13 +- migrations/PyBlock_3.0.0.json | 14 + prototypes/buildings/atomizer-mk00.lua | 126 +- .../buildings/automated-screener-mk00.lua | 123 +- prototypes/buildings/basic-ddc.lua | 284 ++--- prototypes/buildings/bqt.lua | 121 +- .../buildings/burner-soil-extractor.lua | 64 +- prototypes/buildings/burner-washer.lua | 16 +- prototypes/buildings/burner-wpu.lua | 52 +- prototypes/buildings/compost-plant-mk00.lua | 328 +++-- prototypes/buildings/cultivator-mk01.lua | 90 +- prototypes/buildings/cultivator-mk02.lua | 86 +- prototypes/buildings/cultivator-mk03.lua | 86 +- prototypes/buildings/cultivator-mk04.lua | 90 +- prototypes/buildings/cultivator.lua | 1121 +++++++++++++++++ .../buildings/geothermal-plant-mk01.lua | 163 +-- prototypes/mapgen.lua | 194 ++- prototypes/recipes/recipes.lua | 4 +- prototypes/tiles/tiles.lua | 61 +- prototypes/updates/pyalienlife-updates.lua | 59 +- 28 files changed, 2370 insertions(+), 1187 deletions(-) rename graphics/icons/{soil-extractormk00.png => soil-extractor-mk00.png} (100%) create mode 100644 graphics_set for animation.py create mode 100644 migrations/PyBlock_3.0.0.json create mode 100644 prototypes/buildings/cultivator.lua diff --git a/changelog.txt b/changelog.txt index 100a120..ab52b5a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,16 +1,20 @@ --------------------------------------------------------------------------------------------------- -Version: 2.0.7 +Version: 3.0.0 Date: ???? Bugfixes: - Crude DDC shows pipes when no fluid recipe is selected - Fixed the game not loading because of stupid naming conventions + - Removed the steam power technology, as it completely breaks progression + - Reworked trigger technologies to rebalance progression Features: - Added steampowered compost plant to composting - Added steampowered soil extractor - - Added steampowered wood processing unit to soil washing - - New map generation, all normal land is replaced with landfill - - New world preset with no resources, rocks, or trees, only fish, seaweed, driftwood, and landfill. + - Added steampowered wood processing unit to automation science pack + - Moved ash separation to a trigger tech + - Moved early molecular decohesion to trigger tech + - Added belts and mechanical inserters to starter items Changes: + - Reduced count of some starter items - Added new fluid connections to crude DDC - Moved wood processing unit mk01 to wood processing - Moved soil extractor mk01 to soil washing @@ -24,6 +28,9 @@ Date: ???? - Moved ddc mk01 from coal processing 1 to tar processing - Added crude ddc to ddc mk01 recipe - Changed spore collector from electrical to steam powered + - Reduced copper plate, log, and stone count in starting inventory + - Moved native flora recipes to new automation science pack recipe + - Changed cultivator to be consistent with the changes to the flora collector --------------------------------------------------------------------------------------------------- Version: 2.0.6 Date: 2024-10-08 diff --git a/control.lua b/control.lua index baf987e..1f4ed86 100644 --- a/control.lua +++ b/control.lua @@ -1,15 +1,14 @@ if not script.active_mods['pylandblock'] then - script.on_init(function(event) - if remote.interfaces['freeplay'] then - local created_items = remote.call('freeplay', 'get_created_items') created_items['landfill'] = 1000 - created_items['stone'] = 400 - created_items['log'] = 500 + created_items['stone'] = 250 + created_items['log'] = 100 created_items["iron-plate"] = 1000 - created_items["copper-plate"] = 1000 + created_items["copper-plate"] = 500 + created_items["transport-belt"] = 100 + created_items["burner-inserter"] = 50 created_items['py-tank-1000'] = 1 created_items['py-tank-3000'] = 1 created_items['py-tank-5000'] = 1 @@ -18,198 +17,6 @@ if not script.active_mods['pylandblock'] then created_items["py-sinkhole"] = 2 created_items["py-gas-vent"] = 2 remote.call('freeplay', 'set_created_items', created_items) - - --local debris_items = remote.call("freeplay", "get_debris_items") - --debris_items["stone-furnace"] = 1 - --debris_items["py-sinkhole"] = 2 - --debris_items["py-gas-vent"] = 2 - --debris_items["scrap-iron"] = 400 - --remote.call("freeplay", "set_debris_items", debris_items) - - end - end) - ---[[ - local Rocks = { - 'iron-rock', 'copper-rock', 'uranium-rock', 'zinc-rock', 'aluminium-rock', 'chromium-rock', 'coal-rock', - 'lead-rock', 'nexelit-rock', 'nickel-rock', 'phosphate-rock-02', 'quartz-rock', 'salt-rock', 'tin-rock', - 'titanium-rock', 'volcanic-pipe', 'regolites', 'rare-earth-bolide', 'phosphate-rock', 'sulfur-patch', - 'bitumen-seep' - } - - -- local firstrock = true - - local loot_table_fuelrod = {'fuelrod-mk01', 'fuelrod-mk02', 'fuelrod-mk03', 'fuelrod-mk04', 'fuelrod-mk05'} - - local loot_table_plates = { - 'iron-plate', 'copper-plate', 'duralumin', 'steel-plate', 'pb-wrought-iron-plate', 'chromium', 'super-steel', - 'landfill' - } - - local loot_table_basic_mats = { - 'stone', 'wood', 'stone-brick', 'iron-ore', 'ore-aluminium', 'ore-nickel', 'ore-quartz', 'ore-zinc', - 'ore-titanium', 'ore-chromium', 'raw-coal' - } - ]]-- ---[[ - script.on_event(defines.events.on_chunk_generated, function(event) - - -- getting chunk bounds - - local tx = event.area.left_top.x - local ty = event.area.left_top.y - local bx = event.area.right_bottom.x - local by = event.area.right_bottom.y - - -- log(serpent.block(event.area)) - -- do first delete everything in the chunk + set it to water only - if tx == -32 and ty == -32 then - -- log("was start chunk") - -- log(serpent.block(event.area)) - elseif tx == -32 and ty == 0 then - -- log("was start chunk") - -- log(serpent.block(event.area)) - elseif tx == 0 and ty == -32 then - -- log("was start chunk") - -- log(serpent.block(event.area)) - elseif tx == 0 and ty == 0 then - -- log("was start chunk") - -- log(serpent.block(event.area)) - else - - local crap = game.surfaces['nauvis'].find_entities({{tx, ty}, {bx, by}}) - - for _, c in pairs(crap) do - - -- log(serpent.block(c)) - -- log(serpent.block(c.name)) - -- log(serpent.block(c.position)) - - if c.valid == true and c.name ~= 'iron-rock' and c.name ~= 'seaweed' and c.name ~= 'fish' then - -- log('destroying') - c.destroy() - - end - - end - - local oldtiles = {} - - local waters = { - 'water', 'deepwater' - -- "deepwater-green", - -- "water-green", - -- "water-shallow", - -- "water-mud", - } - - local fx = tx - local fy = ty - - for i = 0, 1024 do - - -- check for landfill from another chunk and dont replace - if game.surfaces['nauvis'].get_tile(fx, fy).name == 'landfill' then - - else - -- local ent = game.surfaces["nauvis"].find_entities({{fx,fy},{fx,fy}}) - -- for _, e in pairs(ent) do - -- log(e.name) - -- if e.name == "iron-rock" then - -- else - table.insert(oldtiles, {name = waters[math.random(1, 2)], position = {fx, fy}}) - -- end - -- end - end - fx = fx + 1 - if fx == tx + 32 then - fx = tx - fy = fy + 1 - end - end - game.surfaces['nauvis'].set_tiles(oldtiles) - local crap = game.surfaces['nauvis'].find_entities({{tx, ty}, {bx, by}}) - for _, c in pairs(crap) do - -- log(serpent.block(c.name)) - if c.name ~= 'fish' and c.name ~= 'seaweed' then c.destroy() end - end - -- end - end - -- setting stuff in chunk - local SelectedRock = math.random(1, 21) - - local Randx = math.random(tx + 7, bx - 7) - local Randy = math.random(ty + 7, by - 7) - - local tiles = {} - - local x = Randx - 7 - local y = Randy - 7 - - local a = 0 - local b = 0 - - local RandChance - - if global.firstrock == true then - SelectedRock = 1 - RandChance = math.random(0, 30) - elseif global.secondrock == true and global.firstrock == false then - SelectedRock = 2 - RandChance = math.random(0, 30) - else - RandChance = math.random(0, 240) - end - if RandChance == 5 then - for i = 0, 169 do - table.insert(tiles, {name = 'landfill', position = {x, y}}) - x = x + 1 - a = a + 1 - if a == 13 then - x = x - 13 - y = y + 1 - b = b + 1 - a = 0 - if b == 13 then - y = y - 13 - b = 0 - end - end - end - game.surfaces['nauvis'].set_tiles(tiles) - local rock = Rocks[SelectedRock] - if rock == 'bitumen-seep' then - amount = math.random(1000, 2500) - else - amount = math.random(250000, 1000000) - end - game.surfaces['nauvis'].create_entity{name = rock, position = {Randx, Randy}, amount = amount} - if global.firstrock == true then - global.firstrock = false - elseif global.firstrock == false and global.secondrock == true then - global.secondrock = false - end - end - if RandChance == 6 then - local ship = game.surfaces['nauvis'].create_entity{ - name = crashedshipparts[math.random(1, 3)], - position = {math.random(tx + 3, bx - 3), math.random(ty + 3, by - 3)}, - force = game.forces.player - } - local loot_rand_pick = math.random(1, 25) - if loot_rand_pick > 20 and loot_rand_pick <= 25 then - local rand = math.random(1, 5) - ship.insert({name = loot_table_fuelrod[rand], count = math.random(1, 6)}) - elseif loot_rand_pick > 10 and loot_rand_pick < 20 then - local rand = math.random(1, 8) - ship.insert({name = loot_table_plates[rand], count = math.random(25, 100)}) - elseif loot_rand_pick > 0 and loot_rand_pick < 10 then - local rand = math.random(1, 11) - ship.insert({name = loot_table_basic_mats[rand], count = math.random(100, 500)}) - end - end - end) -]]-- -end +end \ No newline at end of file diff --git a/data-final-fixes.lua b/data-final-fixes.lua index 1cffbae..e69de29 100644 --- a/data-final-fixes.lua +++ b/data-final-fixes.lua @@ -1,19 +0,0 @@ -local FUN = require("__pycoalprocessing__/prototypes/functions/functions") ---[[ -local recipes_list = - { - "sodium-acetate", - "ethane", - "dichloroethane", - "fecl2", - "fecl3", - "ethylenediamine", - "nylon-rope", - "nylon-rope-coated", - "nylon-rope-uranyl-soaked", - "uranyl-nitrate", - } - ---adding to module limitation list -FUN.productivity(recipes_list) -]]-- diff --git a/data-updates.lua b/data-updates.lua index 44b6d69..89e3de4 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -100,8 +100,7 @@ require("prototypes/mapgen") --require("prototypes/updates/pyfusionenergy-updates") --require('prototypes/updates/pyhightech-updates') ---add driftwood for closer logs and saps -local noise = require("noise") +--add driftwood for closer logs data:extend({ { type = "fish", @@ -120,7 +119,7 @@ data:extend({ order = "b-a", collision_box = {{-0.75, -0.75}, {0.75, 0.75}}, selection_box = {{-0.5, -0.3}, {0.5, 0.3}}, - collision_mask = {"ground-tile", "colliding-with-tiles-only"}, + collision_mask = { layers = { ground_tile = true }, colliding_with_tiles_only = true }, pictures = { { filename = '__PyBlock__/graphics/icons/driftwood.png', @@ -130,15 +129,10 @@ data:extend({ height = 64, scale = 0.5 } - }, + }, autoplace = { - probability_expression = noise.define_noise_function( function(x, y, tile, map) - -- equiv to: limited_water < 0 and 0 or 1 - local limited_water = noise.clamp(noise.var("wlc_elevation_minimum"), 0, 1) - -- 0.4% or 1.4% - return 0.002 + (0.01 * limited_water) - end), - order = "driftwood" + probability_expression = data.raw.tree.seaweed.autoplace.probability_expression, + order = "driftwood" } } }) @@ -147,14 +141,14 @@ data:extend({ local seaweed = table.deepcopy(data.raw.tree.seaweed) data.raw.tree.seaweed = nil seaweed.type = "fish" -seaweed.autoplace = { - probability_expression = noise.define_noise_function( function(x, y, tile, map) - -- equiv to: limited_water < 0 and 0 or 1 - local limited_water = noise.clamp(noise.var("wlc_elevation_minimum"), 0, 1) - -- 0.2% or 1.2% - return 0.001 + (0.01 * limited_water) - end) -} +-- seaweed.autoplace = { +-- probability_expression = noise.define_noise_function( function(x, y, tile, map) +-- -- equiv to: limited_water < 0 and 0 or 1 +-- local limited_water = noise.clamp(noise.var("wlc_elevation_minimum"), 0, 1) +-- -- 0.2% or 1.2% +-- return 0.001 + (0.01 * limited_water) +-- end) +-- } data.raw.fish.seaweed = seaweed -- allow all inserters to fish @@ -200,7 +194,7 @@ local ores = { ["copper-ore"] = { recipe_extension = "copper", amount = 8, - technology = "", + technology = "ash-separation", byproduct_probability = 0.2 }, ["ore-aluminium"] = { @@ -269,20 +263,49 @@ for o, ore in pairs(ores) do end end +-- get rid of the steam power tech +TECHNOLOGY("steam-power"):set_fields{hidden = true} +for e, effect in pairs(data.raw["technology"]["steam-power"].effects) do + if effect.type == "unlock-recipe" then + RECIPE(effect.recipe):remove_unlock("steam-power"):set_fields{enabled = true} + end +end + +-- remove required recipes from automation science pack +RECIPE("empty-planter-box"):remove_unlock("automation-science-pack"):set_fields{enabled = true} +RECIPE("soil"):remove_unlock("automation-science-pack"):set_fields{enabled = true} + +-- remove wpu mk01 from auto sci +RECIPE("wpu"):remove_unlock("automation-science-pack") + +-- move starter ash separation recipes to ash-separation and set trigger tech +RECIPE("ash-separation"):add_unlock("ash-separation"):set_fields{enabled = false} +RECIPE("solid-separator"):add_unlock("ash-separation"):set_fields{enabled = false} +TECHNOLOGY("ash-separation"):set_fields{unit = nil, research_trigger = { type = "craft-item", item = "ash", count = 200 }}:set_fields{prerequisites = {"atomizer-mk00"}} +RECIPE("copper-plate"):add_unlock("ash-separation"):set_fields{enabled = false} +RECIPE("inductor1"):add_unlock("ash-separation"):set_fields{enabled = false} + +-- set automation science pack to require 50 copper plates cause you gonna need them +TECHNOLOGY("automation-science-pack"):set_fields{research_trigger = { type = "craft-item", item = "copper-plate", count = 50 }}:set_fields{prerequisites = {"ash-separation"}} + -- burner/steam mk00 recipe adjustments RECIPE("wpu"):add_ingredient("inductor1", 12):add_ingredient("burner-wpu", 1):add_unlock("wood-processing"):set_fields{enabled = false} -RECIPE("soil-extractormk01"):remove_ingredient("burner-mining-drill"):add_ingredient("burner-soil-extractor", 1):add_unlock("soil-washing"):set_fields{enabled = false} +RECIPE("soil-extractor-mk01"):remove_ingredient("burner-mining-drill"):add_ingredient("burner-soil-extractor", 1) -RECIPE("washer"):remove_ingredient("steam-engine"):add_ingredient("burner-washer", 1):add_ingredient("electronic-circuit"):add_unlock("latex"):remove_unlock("soil-washing") +RECIPE("washer"):remove_ingredient("steam-engine"):add_ingredient("burner-washer", 1) -RECIPE("distilator"):add_ingredient("basic-ddc"):remove_unlock("coal-processing-1"):add_unlock("tar-processing") - -RECIPE("collector"):remove_ingredient("soil-extractormk01"):add_ingredient("burner-soil-extractor", 1) -RECIPE("cultivator-mk01"):remove_ingredient("soil-extractormk01"):add_ingredient("burner-soil-extractor", 1) +RECIPE("flora-collector-mk01"):remove_ingredient("soil-extractor-mk01"):add_ingredient("burner-soil-extractor", 1) RECIPE("compost-plant-mk01"):add_ingredient("compost-plant-mk00", 1):remove_unlock("compost"):add_unlock("fertilizer-mk01") +-- move atomizer recipes to new trigger tech +RECIPE("fawogae-to-iron"):add_unlock("atomizer-mk00"):set_fields{enabled = false} +RECIPE("iron-plate"):add_unlock("atomizer-mk00"):set_fields{enabled = false} + +-- add burner atomizer to atomizer mk01 recipe +RECIPE("atomizer-mk01"):remove_ingredient("washer"):add_ingredient("atomizer-mk00") + -- data.raw.technology["mega-farm"].unit.ingredients = {{"automation-science-pack", 1},{"py-science-pack-1",1}} -- TECHNOLOGY("mega-farm"):set_fields{prerequisites = {}} diff --git a/data.lua b/data.lua index d85bc6c..f4b7be4 100644 --- a/data.lua +++ b/data.lua @@ -1,3 +1,37 @@ +TECHNOLOGY { + type = "technology", + name = "auog-mk00", + icon = "__pyalienlifegraphics__/graphics/technology/auog.png", + icon_size = 128, + order = "c-a", + prerequisites = {}, + effects = {}, + unit = { + count = 100, + ingredients = { + {"automation-science-pack", 1}, + }, + time = 50 + } +} + + +TECHNOLOGY { + type = "technology", + name = "atomizer-mk00", + icon = "__PyBlock__/graphics/icons/atomizer-mk00.png", + icon_size = 128, + order = "c-a", + prerequisites = {}, + effects = {}, + research_trigger = { + type = "craft-item", + item = "raw-coal", + count = 50 + } +} + + --tiles require('prototypes/tiles/tiles') @@ -10,10 +44,11 @@ require('prototypes/buildings/compost-plant-mk00') require('prototypes/buildings/burner-soil-extractor') require('prototypes/buildings/burner-wpu') require("prototypes/buildings/geothermal-plant-mk01") -require("prototypes/buildings/cultivator-mk01") -require("prototypes/buildings/cultivator-mk02") -require("prototypes/buildings/cultivator-mk03") -require("prototypes/buildings/cultivator-mk04") +require("prototypes/buildings/cultivator") +-- require("prototypes/buildings/cultivator-mk01") +-- require("prototypes/buildings/cultivator-mk02") +-- require("prototypes/buildings/cultivator-mk03") +-- require("prototypes/buildings/cultivator-mk04") --UNUSED --require('prototypes/buildings/fish-farm-mk00') @@ -40,22 +75,4 @@ require("prototypes/recipes/recipes-kimberlite") --x * 200 * (165 - 15) = 500,000 -- x = 500kw / ( 200 * (165 - 15)) ---x = 16.67/s steam - - -TECHNOLOGY { - type = "technology", - name = "auog-mk00", - icon = "__pyalienlifegraphics__/graphics/technology/auog.png", - icon_size = 128, - order = "c-a", - prerequisites = {}, - effects = {}, - unit = { - count = 100, - ingredients = { - {"automation-science-pack", 1}, - }, - time = 50 - } -} +--x = 16.67/s steam \ No newline at end of file diff --git a/graphics/icons/soil-extractormk00.png b/graphics/icons/soil-extractor-mk00.png similarity index 100% rename from graphics/icons/soil-extractormk00.png rename to graphics/icons/soil-extractor-mk00.png diff --git a/graphics_set for animation.py b/graphics_set for animation.py new file mode 100644 index 0000000..f3c46ff --- /dev/null +++ b/graphics_set for animation.py @@ -0,0 +1,77 @@ +from glob import glob +import re + +def process_entity(start_i: int, data: list[str]) -> bool: + i = start_i + start = 0 + end = 0 + animation_exists = 0 + working_visualisations_exists = 0 + graphics_set_line = 0 + main_leading_whitespace = re.match(r'^\s+', data[i+1])[0] + replaced = False + while True: + line = data[i] + start += line.count('{') + end += line.count('}') + if re.match('^' + main_leading_whitespace + 'animation[^{]*\{', line): animation_exists = i + i += 1 + if start <= end and start > 0: break + if animation_exists: + replaced = True + leading_whitespace = re.match(r'^\s+', data[animation_exists])[0] + data.insert(animation_exists, leading_whitespace + 'graphics_set = {\n') + j = animation_exists + 1 + while True: + line = data[j] + start += line.count('{') + end += line.count('}') + data[j] = ' ' + line + j += 1 + if start <= end and start > 0: break + data.insert(j, leading_whitespace + '},\n') + i = start_i + while True: + line = data[i] + start += line.count('{') + end += line.count('}') + if re.match('^' + main_leading_whitespace + 'working_visualisations[^{]*\{', line): working_visualisations_exists = i + if re.match('^' + main_leading_whitespace + 'graphics_set[^{]*\{', line): graphics_set_line = i + i += 1 + if start <= end and start > 0: break + if working_visualisations_exists: + replaced = True + j = working_visualisations_exists + while True: + line = data[j] + start += line.count('{') + end += line.count('}') + j += 1 + if start <= end and start > 0: break + temp_data = [] + for x in range(working_visualisations_exists, j): + temp_data.append(data.pop(working_visualisations_exists)) + temp_data[-1] = ' ' + temp_data[-1] + out_data = data[:graphics_set_line+1].copy() + out_data.extend(temp_data) + out_data.extend(data[graphics_set_line+1:]) + else: out_data = data + return replaced, out_data + +for filename in glob('**/*.lua', recursive=True): + breaking = False + replaced = False + with open(filename, 'r', encoding='utf-8') as file: + data = file.readlines() + for i, line in enumerate(data): + if re.search('ENTITY ?\{[^\}]', line): + try: + replaced, data = process_entity(i, data) + except (NotImplementedError, AttributeError): + print(f'wrong entity definition in {filename} at line {i}') + breaking = True + if replaced and not breaking: + print(filename) + with open(filename, 'w', encoding='utf-8') as file: + for line in data: + file.write(line) \ No newline at end of file diff --git a/info.json b/info.json index a4f6d7d..763e4ca 100644 --- a/info.json +++ b/info.json @@ -1,14 +1,14 @@ { "name": "PyBlock", - "version": "2.0.7", - "factorio_version": "1.1", + "version": "3.0.0", + "factorio_version": "2.0", "title": "PyBlock", "author": "KingArthur", "contact": "PM on the Factorio Forums", "homepage": "", "description": "Pymod edition of a Sea Block style game", "dependencies": [ - "base >= 1.1.0", - "pyalternativeenergy >= 1.2.0" + "base >= 2.0", + "pyalternativeenergy >= 3.0.0" ] } diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 0c64e35..7271f60 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -60,6 +60,8 @@ phosphorus-tricloride=Phosphorus Tricloride phosphoryl-chloride=Phosphroyl Chloride tributyl-phosphate=Tributyl Phosphate ree-from-ash=Rare Earth Elements from Ash +flora-cultivation=Native Flora Cultivation +synthesize-flora=Native Flora Synthesization [entity-name] driftwood=Driftwood @@ -79,22 +81,21 @@ fwf-mk00=Slowwood forestry MK 00 fish-farm-mk00=Basic fish farm early-copper-mine=Early Copper Mine compost-plant-mk00=Steampowered Compost plant -cultivator-mk01=Cultivator MK 01 -cultivator-mk02=Cultivator MK 02 -cultivator-mk03=Cultivator MK 03 -cultivator-mk04=Cultivator MK 04 +flora-cultivator-mk01=Flora Cultivator MK 01 +flora-cultivator-mk02=Flora Cultivator MK 02 +flora-cultivator-mk03=Flora Cultivator MK 03 +flora-cultivator-mk04=Flora Cultivator MK 04 [technology-name] early-concrete=Basic Concrete alloying-mk01=Alloying 1 alloying-mk02=Alloying 2 +atomizer-mk00=Early Molecular Decohesion [controls] recipe-selector=Recipe Selector - - [map-gen-preset-name] pyblock-recommended=PyBlock Recommended diff --git a/migrations/PyBlock_3.0.0.json b/migrations/PyBlock_3.0.0.json new file mode 100644 index 0000000..0d7050f --- /dev/null +++ b/migrations/PyBlock_3.0.0.json @@ -0,0 +1,14 @@ +{ + "entity":[ + ["cultivator-mk01", "flora-cultivator-mk01"], + ["cultivator-mk02", "flora-cultivator-mk02"], + ["cultivator-mk03", "flora-cultivator-mk03"], + ["cultivator-mk04", "flora-cultivator-mk04"] + ], + "item":[ + ["cultivator-mk01", "flora-cultivator-mk01"], + ["cultivator-mk02", "flora-cultivator-mk02"], + ["cultivator-mk03", "flora-cultivator-mk03"], + ["cultivator-mk04", "flora-cultivator-mk04"] + ] +} \ No newline at end of file diff --git a/prototypes/buildings/atomizer-mk00.lua b/prototypes/buildings/atomizer-mk00.lua index 341c455..9c5dd36 100644 --- a/prototypes/buildings/atomizer-mk00.lua +++ b/prototypes/buildings/atomizer-mk00.lua @@ -2,9 +2,9 @@ RECIPE { type = "recipe", name = "atomizer-mk00", energy_required = 0.5, - enabled = true, + enabled = false, ingredients = { - --{"burner-washer", 1}, + {"burner-washer", 1}, {"iron-plate", 15}, {"copper-plate", 20}, {"pipe", 10} @@ -12,7 +12,7 @@ RECIPE { results = { {"atomizer-mk00", 1} } -} +}:add_unlock("atomizer-mk00") ITEM { type = "item", @@ -49,90 +49,88 @@ ENTITY { energy_source = { type = "burner", - --fuel_category = "chemical", fuel_categories = {"chemical", "biomass"}, effectivity = 1, fuel_inventory_size = 1, burnt_inventory_size = 1, - emissions_per_minute = 0.06, + emissions_per_minute = { pollution = 0.06 } }, energy_usage = "300kW", - animation = { - layers = { - { - filename = "__pyalienlifegraphics__/graphics/entity/atomizer/off.png", - --priority = "high", - width = 256, - height = 256, - --line_length = 1, - frame_count = 1, - --animation_speed = 2, - shift = util.by_pixel(16, -16) - }, + graphics_set = { + working_visualisations = { { - filename = "__pyalienlifegraphics__/graphics/entity/atomizer/off-mask.png", - --priority = "high", - width = 256, - height = 256, - --line_length = 1, - frame_count = 1, - --animation_speed = 2, - shift = util.by_pixel(16, -16), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + north_position = util.by_pixel(0, -16), + west_position = util.by_pixel(0, -16), + south_position = util.by_pixel(0, -16), + east_position = util.by_pixel(0, -16), + animation = { + filename = "__pyalienlifegraphics__/graphics/entity/atomizer/on.png", + priority = "high", + frame_count = 90, + line_length = 9, + width = 224, + height = 192, + animation_speed = 0.5 + } }, - } - }, - working_visualisations = { - { - north_position = util.by_pixel(0, -16), - west_position = util.by_pixel(0, -16), - south_position = util.by_pixel(0, -16), - east_position = util.by_pixel(0, -16), - animation = { - filename = "__pyalienlifegraphics__/graphics/entity/atomizer/on.png", - priority = "high", - frame_count = 90, - line_length = 9, - width = 224, - height = 192, - animation_speed = 0.5 + }, + animation = { + layers = { + { + filename = "__pyalienlifegraphics__/graphics/entity/atomizer/off.png", + --priority = "high", + width = 256, + height = 256, + --line_length = 1, + frame_count = 1, + --animation_speed = 2, + shift = util.by_pixel(16, -16) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/atomizer/off-mask.png", + --priority = "high", + width = 256, + height = 256, + --line_length = 1, + frame_count = 1, + --animation_speed = 2, + shift = util.by_pixel(16, -16), + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + }, } }, }, fluid_boxes = { - --1 { production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {1.0, -4.0}}} + pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 10, + pipe_connections = {{ flow_direction = "input", position = {1.0, -3.3}, direction = 0 }} }, { production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {-1.0, -4.0}}} + pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 10, + pipe_connections = {{ flow_direction = "input", position = {-1.0, 3.3}, direction = 8 }} }, { production_type = "output", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_level = 1, - pipe_connections = {{type = "output", position = {1.0, 4.0}}} + pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 1, + pipe_connections = {{ flow_direction = "input", position = {1.0, 3.3}, direction = 8 }} }, { production_type = "output", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_level = 1, - pipe_connections = {{type = "output", position = {-1.0, 4.0}}} - }, - off_when_no_fluid_recipe = true + pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 1, + pipe_connections = {{ flow_direction = "input", position = {-1.0, -3.3}, direction = 0 }} + } }, + fluid_boxes_off_when_no_fluid_recipe = true, vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, working_sound = { sound = {filename = "__pyalienlifegraphics__/sounds/atomizer.ogg", volume = 1.0}, @@ -140,4 +138,4 @@ ENTITY { apparent_volume = 2.5 }, _upgrade = "atomizer-mk01" -} +} \ No newline at end of file diff --git a/prototypes/buildings/automated-screener-mk00.lua b/prototypes/buildings/automated-screener-mk00.lua index 0e1725e..c96f7ec 100644 --- a/prototypes/buildings/automated-screener-mk00.lua +++ b/prototypes/buildings/automated-screener-mk00.lua @@ -48,74 +48,75 @@ ENTITY { energy_source = { type = "burner", - --fuel_category = "chemical", fuel_categories = {"chemical", "biomass"}, effectivity = 1, fuel_inventory_size = 1, burnt_inventory_size = 1, - emissions_per_minute = 0.06, + emissions_per_minute = { pollution = 0.06 } }, energy_usage = "80kW", - animation = { - layers = { - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/left.png", - width = 96, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {-2.032, -0.5} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/left-mask.png", - width = 96, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {-2.032, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid.png", - width = 96, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {0.968, -0.5} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid-mask.png", - width = 96, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {0.968, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right.png", - width = 38, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {3.032, -0.5} - }, - { - filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right-mask.png", - width = 38, - height = 256, - line_length = 21, - frame_count = 150, - animation_speed = 0.4, - shift = {3.032, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + graphics_set = { + animation = { + layers = { + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/left.png", + width = 96, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {-2.032, -0.5} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/left-mask.png", + width = 96, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {-2.032, -0.5}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid.png", + width = 96, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {0.968, -0.5} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid-mask.png", + width = 96, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {0.968, -0.5}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right.png", + width = 38, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {3.032, -0.5} + }, + { + filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right-mask.png", + width = 38, + height = 256, + line_length = 21, + frame_count = 150, + animation_speed = 0.4, + shift = {3.032, -0.5}, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + } } - } + }, }, vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, working_sound = { diff --git a/prototypes/buildings/basic-ddc.lua b/prototypes/buildings/basic-ddc.lua index a72d8a2..ec5c42a 100644 --- a/prototypes/buildings/basic-ddc.lua +++ b/prototypes/buildings/basic-ddc.lua @@ -76,170 +76,144 @@ ITEM { } ENTITY { - type = "assembling-machine", - name = "basic-ddc", - icon = "__PyBlock__/graphics/icons/distilator-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "placeable-player", "player-creation"}, - minable = {mining_time = 1, result = "basic-ddc"}, - max_health = 200, - corpse = "medium-remnants", - repair_sound = { filename = "__base__/sound/manual-repair-simple.ogg" }, - mined_sound = { filename = "__base__/sound/deconstruct-bricks.ogg" }, - open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, - close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - vehicle_impact_sound = { filename = "__base__/sound/car-stone-impact.ogg", volume = 1.0 }, - working_sound = + type = "assembling-machine", + name = "basic-ddc", + icon = "__PyBlock__/graphics/icons/distilator-mk00.png", + icon_size = 64, + flags = {"placeable-neutral", "placeable-player", "player-creation"}, + minable = {mining_time = 1, result = "basic-ddc"}, + max_health = 200, + corpse = "medium-remnants", + repair_sound = { filename = "__base__/sound/manual-repair-simple.ogg" }, + mined_sound = { filename = "__base__/sound/deconstruct-bricks.ogg" }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + vehicle_impact_sound = { filename = "__base__/sound/car-stone-impact.ogg", volume = 1.0 }, + working_sound = { sound = { filename = "__base__/sound/furnace.ogg" }}, + resistances = { + { type = "fire", percent = 90 }, + { type = "explosion", percent = 30 }, + { type = "impact", percent = 30 } + }, + collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, + selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, + fluid_boxes = { + { + production_type = "output", + volume = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + { flow_direction = "output", position = {-1, -1.2}, direction = 0 }, + { flow_direction = "output", position = {-1.2, -1}, direction = 12 } + } + }, + { + production_type = "output", + volume = 1, + pipe_covers = pipecoverspictures(), + pipe_connections = { + { flow_direction = "output", position = {1.2, 1}, direction = 4 }, + { flow_direction = "output", position = {1, 1.2}, direction = 8 } + } + } + }, + fluid_boxes_off_when_no_fluid_recipe = true, + crafting_categories = {"distilator"}, + crafting_speed = 0.5, + result_inventory_size = 2, + energy_usage = "200kW", + source_inventory_size = 1, + energy_source = { + type = "burner", + fuel_categories = {"chemical", "biomass"}, + effectivity = 1, + fuel_inventory_size = 1, + burnt_inventory_size = 1, + emissions = 0.01, + smoke = { { - sound = { filename = "__base__/sound/furnace.ogg", } - }, - resistances = + name = "smoke", + deviation = {0.1, 0.1}, + frequency = 5, + position = {0.0, -0.8}, + starting_vertical_speed = 0.08, + starting_frame_deviation = 60 + } + } + }, + graphics_set = { + animation = make_2way_animation_from_spritesheet({ layers = { { + filename = "__PyBlock__/graphics/hr-basic-ddc.png", + priority = "extra-high", + width = 219, + height = 215, + frame_count = 1, + shift = util.by_pixel(0, 4), + scale = 0.5, + hr_version = { - type = "fire", - percent = 90 - }, - { - type = "explosion", - percent = 30 - }, - { - type = "impact", - percent = 30 + filename = "__PyBlock__/graphics/hr-basic-ddc.png", + priority = "extra-high", + width = 219, + height = 215, + frame_count = 1, + shift = util.by_pixel(-0.25, 3.75), + scale = 0.5 } }, - collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - fluid_boxes = - { - { - production_type = "output", - --base_area = 10, - base_level = 1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "output", position = {-1, -2} }, - {type = "output", position = {-2, -1} }, - --{ position = {2, 1} }, - } - }, - { - production_type = "output", - --base_area = 10, - base_level = 1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "output", position = {1, 2} }, - {type = "output", position = {2, 1} }, - --{ position = {-2, -1} } - } - }, - off_when_no_fluid_recipe = false - }, - crafting_categories = {"distilator"}, - crafting_speed = 0.5, - result_inventory_size = 2, - energy_usage = "200kW", - source_inventory_size = 1, - energy_source = { - type = "burner", - --fuel_category = "chemical", - fuel_categories = {"chemical", "biomass"}, - effectivity = 1, - fuel_inventory_size = 1, - burnt_inventory_size = 1, - emissions = 0.01, - smoke = + filename = "__base__/graphics/entity/storage-tank/storage-tank-shadow.png", + priority = "extra-high", + width = 146, + height = 77, + frame_count = 1, + shift = util.by_pixel(30, 22.5), + draw_as_shadow = true, + hr_version = { - { - name = "smoke", - deviation = {0.1, 0.1}, - frequency = 5, - position = {0.0, -0.8}, - starting_vertical_speed = 0.08, - starting_frame_deviation = 60 - } + filename = "__base__/graphics/entity/storage-tank/hr-storage-tank-shadow.png", + priority = "extra-high", + width = 291, + height = 153, + frame_count = 1, + draw_as_shadow = true, + shift = util.by_pixel(29.75, 22.25), + scale = 0.5 } - }, - animation = make_2way_animation_from_spritesheet({ layers = - { - { - filename = "__PyBlock__/graphics/hr-basic-ddc.png", - priority = "extra-high", - width = 219, - height = 215, - frame_count = 1, - shift = util.by_pixel(0, 4), - scale = 0.5, - hr_version = - { - filename = "__PyBlock__/graphics/hr-basic-ddc.png", - priority = "extra-high", - width = 219, - height = 215, - frame_count = 1, - shift = util.by_pixel(-0.25, 3.75), - scale = 0.5 - } - }, - { - filename = "__base__/graphics/entity/storage-tank/storage-tank-shadow.png", + } + }}), + working_visualisations = { + { + north_position = {0.0, 0.0}, + east_position = {0.0, 0.0}, + south_position = {0.0, 0.0}, + west_position = {0.0, 0.0}, + animation = { + filename = "__base__/graphics/entity/stone-furnace/stone-furnace-fire.png", + priority = "extra-high", + line_length = 8, + width = 20, + height = 49, + frame_count = 48, + axially_symmetrical = false, + direction_count = 1, + shift = util.by_pixel(2, 21.5), + hr_version = { + filename = "__base__/graphics/entity/stone-furnace/hr-stone-furnace-fire.png", priority = "extra-high", - width = 146, - height = 77, - frame_count = 1, - shift = util.by_pixel(30, 22.5), - draw_as_shadow = true, - hr_version = - { - filename = "__base__/graphics/entity/storage-tank/hr-storage-tank-shadow.png", - priority = "extra-high", - width = 291, - height = 153, - frame_count = 1, - draw_as_shadow = true, - shift = util.by_pixel(29.75, 22.25), - scale = 0.5 - } - } - }}), - working_visualisations = - { - { - north_position = {0.0, 0.0}, - east_position = {0.0, 0.0}, - south_position = {0.0, 0.0}, - west_position = {0.0, 0.0}, - animation = - { - filename = "__base__/graphics/entity/stone-furnace/stone-furnace-fire.png", - priority = "extra-high", - line_length = 8, - width = 20, - height = 49, - frame_count = 48, - axially_symmetrical = false, - direction_count = 1, - shift = util.by_pixel(2, 21.5), - hr_version = - { - filename = "__base__/graphics/entity/stone-furnace/hr-stone-furnace-fire.png", - priority = "extra-high", - line_length = 8, - width = 41, - height = 100, - frame_count = 48, - axially_symmetrical = false, - direction_count = 1, - shift = util.by_pixel(-0.75, 21.5), - scale = 0.5 - } - }, - light = {intensity = 1, size = 1, color = {r=1.0, g=1.0, b=1.0}} + line_length = 8, + width = 41, + height = 100, + frame_count = 48, + axially_symmetrical = false, + direction_count = 1, + shift = util.by_pixel(-0.75, 21.5), + scale = 0.5 } }, - --fast_replaceable_group = "furnace" + light = {intensity = 1, size = 1, color = {r=1.0, g=1.0, b=1.0}} + } + } + } } diff --git a/prototypes/buildings/bqt.lua b/prototypes/buildings/bqt.lua index 703ac9e..e46e312 100644 --- a/prototypes/buildings/bqt.lua +++ b/prototypes/buildings/bqt.lua @@ -41,81 +41,76 @@ ENTITY { collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, module_specification = { - module_slots = 0 + module_slots = 0 }, allowed_effects = {"consumption", "speed", "productivity", "pollution"}, crafting_categories = {"quenching-tower"}, crafting_speed = 1, - energy_source = - { + energy_source = { type = "fluid", effectivity = 1, emissions = 1, - fluid_box = - { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "input", position = {-1,-4}} - }, - filter = "steam", - production_type = "input-output", - }, - scale_fluid_usage = true, + fluid_box = { + base_area = 1, + height = 2, + base_level = -1, + pipe_covers = pipecoverspictures(), + pipe_connections = { flow_direction = "input", position = {-1, -3.4} }, + filter = "steam", + production_type = "input-output", + }, + scale_fluid_usage = true, }, energy_usage = "300kW", - animation = { - filename = "__pycoalprocessinggraphics__/graphics/entity/quenching-tower/quenching-tower-anim.png", - width = 232, - height = 252, - frame_count = 60, - line_length = 8, - animation_speed = 0.7, - shift = {0.08, 0.0} + graphics_set = { + animation = { + filename = "__pycoalprocessinggraphics__/graphics/entity/quenching-tower/quenching-tower-anim.png", + width = 232, + height = 252, + frame_count = 60, + line_length = 8, + animation_speed = 0.7, + shift = {0.08, 0.0} + }, }, fluid_boxes = { - { - production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {1.08, 4.0}, {-0.82, -4.0}, nil, nil, pipes2), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {4.0, -1.0}}} - }, - { - production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {4.0, 1.0}}} - }, - { - production_type = "output", - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_level = 1, - pipe_connections = {{type = "output", position = {-4.0, -1.0}}} - }, - { - production_type = "output", - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {1.08, 4.0}, {-0.82, -4.0}, nil, nil, pipes2), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_level = 1, - pipe_connections = {{type = "output", position = {-4.0, 1.0}}} - }, - { - production_type = "output", - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), - pipe_covers = DATA.Pipes.covers(false, true, true, true), - base_level = 1, - pipe_connections = {{type = "output", position = {-1.0, 4.0}}} - }, - off_when_no_fluid_recipe = true + { + production_type = "input", + pipe_picture = py.pipe_pictures("assembling-machine-3", {1.08, 4.0}, {-0.82, -4.0}, nil, nil, pipes2), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 10, + pipe_connections = {{ flow_direction = "input", position = {3.4, -1.0}, direction = 0 }} + }, + { + production_type = "input", + pipe_picture = py.pipe_pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 10, + pipe_connections = {{ flow_direction = "input", position = {3.4, 1.0}, direction = 0 }} + }, + { + production_type = "output", + pipe_picture = py.pipe_pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 1, + pipe_connections = {{ flow_direction = "input", position = {-3.4, -1.0}, direction = 0 }} + }, + { + production_type = "output", + pipe_picture = py.pipe_pictures("assembling-machine-3", {1.08, 4.0}, {-0.82, -4.0}, nil, nil, pipes2), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 1, + pipe_connections = {{ flow_direction = "input", position = {-3.4, 1.0}, direction = 0 }} + }, + { + production_type = "output", + pipe_picture = py.pipe_pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), + pipe_covers = py.pipe_covers(false, true, true, true), + volume = 1, + pipe_connections = {{ flow_direction = "input", position = {-1.0, 3.4}, direction = 0 }} + } }, + fluid_boxes_off_when_no_fluid_recipe = true, vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, working_sound = { sound = {filename = "__pycoalprocessinggraphics__/sounds/quenching-tower.ogg", volume = 0.42}, diff --git a/prototypes/buildings/burner-soil-extractor.lua b/prototypes/buildings/burner-soil-extractor.lua index 40c771a..ade0c5a 100644 --- a/prototypes/buildings/burner-soil-extractor.lua +++ b/prototypes/buildings/burner-soil-extractor.lua @@ -18,7 +18,7 @@ RECIPE { ITEM { type = "item", name = "burner-soil-extractor", - icon = "__PyBlock__/graphics/icons/soil-extractormk00.png", + icon = "__PyBlock__/graphics/icons/soil-extractor-mk00.png", icon_size = 64, flags = {}, subgroup = "py-cp-buildings-mk00", @@ -30,15 +30,15 @@ ITEM { ENTITY { type = "assembling-machine", name = "burner-soil-extractor", - icon = "__PyBlock__/graphics/icons/soil-extractormk00.png", + icon = "__PyBlock__/graphics/icons/soil-extractor-mk00.png", icon_size = 64, flags = {"placeable-neutral", "player-creation"}, minable = {mining_time = 1, result = "burner-soil-extractor"}, - fast_replaceable_group = "soil-extractormk01", + fast_replaceable_group = "soil-extractor", max_health = 300, corpse = "big-remnants", dying_explosion = "medium-explosion", - collision_box = {{-3.48, -3.48}, {3.48, 3.48}}, + collision_box = data.raw["assembling-machine"]["soil-extractor-mk01"].collision_box, selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, module_specification = { module_slots = 0 @@ -51,27 +51,25 @@ ENTITY { effectivity = 1, emissions = 1, fluid_box = { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {0, 1}, {0, -1}, nil, nil, { + volume = 2, + pipe_covers = py.pipe_covers(true, true, true, true), + pipe_picture = py.pipe_pictures("assembling-machine-3", {0, 1}, {0, -1}, nil, nil, { north = { - filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/long-pipe-north.png", + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractor/long-pipe-north.png", priority = "low", width = 30, height = 44 }, south = { - filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/pipe-south.png", + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractor/pipe-south.png", priority = "extra-high", width = 40, height = 45 } }), pipe_connections = { - {type = "input-output", position = {0, 4}}, - {type = "input-output", position = {0, -4}}, + { flow_direction = "input-output", position = {0, 3.398}, direction = 8 }, + { flow_direction = "input-output", position = {0, -3.398}, direction = 0 }, }, production_type = "input-output", filter = "steam", @@ -79,47 +77,47 @@ ENTITY { scale_fluid_usage = true, }, energy_usage = "200kW", - animation = { - filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/soil-extractormk01.png", - width = 235, - height = 266, - frame_count = 30, - line_length = 6, - animation_speed = 0.8, - shift = {0.16, -0.609} + graphics_set = { + animation = { + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractor/soil-extractor.png", + width = 235, + height = 266, + frame_count = 30, + line_length = 6, + animation_speed = 0.8, + shift = {0.16, -0.609} + }, }, fluid_boxes = { { production_type = "input", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", {0, 1}, {0, -1}, nil, nil, { + pipe_covers = py.pipe_covers(true, true, true, true), + pipe_picture = py.pipe_pictures("assembling-machine-3", {0, 1}, {0, -1}, nil, nil, { north = { - filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/long-pipe-north.png", + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractor/long-pipe-north.png", priority = "low", width = 30, height = 44 }, south = { - filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractormk01/pipe-south.png", + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractor/pipe-south.png", priority = "extra-high", width = 40, height = 45 } }), - base_area = 10, - base_level = -1, - height = 2, + volume = 20, pipe_connections = { - {type = "input-output", position = {4, 0}}, - {type = "input-output", position = {-4, 0}}, + { flow_direction = "input-output", position = {3.398, 0}, direction = 4 }, + { flow_direction = "input-output", position = {-3.398, 0}, direction = 12 }, } } }, vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, working_sound = { - sound = {filename = "__pycoalprocessinggraphics__/sounds/soil-extractormk01.ogg"}, - idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/soil-extractormk01.ogg", volume = 0.45}, + sound = {filename = "__pycoalprocessinggraphics__/sounds/soil-extractor.ogg"}, + idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/soil-extractor.ogg", volume = 0.45}, apparent_volume = 2.5 }, - next_upgrade = "soil-extractormk01" + next_upgrade = "soil-extractor-mk01" } diff --git a/prototypes/buildings/burner-washer.lua b/prototypes/buildings/burner-washer.lua index 9ae4f1e..a56b429 100644 --- a/prototypes/buildings/burner-washer.lua +++ b/prototypes/buildings/burner-washer.lua @@ -40,13 +40,11 @@ burner_washer.energy_source = { effectivity = 1, emissions = 1, fluid_box = { - base_area = 1, - height = 2, - base_level = -1, + volume = 2, pipe_covers = pipecoverspictures(), pipe_connections = { - { type = "input-output", position = {-3.5, 0.5} }, - { type = "input-output", position = {3.5, 0.5} } + { flow_direction = "input-output", position = {-2.797, 0.5}, direction = 12 }, + { flow_direction = "input-output", position = {2.797, 0.5}, direction = 4 } }, filter = "steam", production_type = "input-output" @@ -110,16 +108,16 @@ data.raw["assembling-machine"]["burner-washer"] = burner_washer -- fluid_boxes = { -- { -- production_type = "input", --- pipe_picture = DATA.Pipes.pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), --- pipe_covers = DATA.Pipes.covers(true, true, true, true), +-- pipe_picture = py.pipe_pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), +-- pipe_covers = py.pipe_covers(true, true, true, true), -- base_area = 10, -- base_level = -1, -- pipe_connections = {{type = "input", position = {0.5, 3.5}}} -- }, -- { -- production_type = "output", --- pipe_covers = DATA.Pipes.covers(true, true, true, true), --- pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), +-- pipe_covers = py.pipe_covers(true, true, true, true), +-- pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), -- base_level = 1, -- pipe_connections = {{position = {0.5, -3.5}}} -- }, diff --git a/prototypes/buildings/burner-wpu.lua b/prototypes/buildings/burner-wpu.lua index 03ba13c..99f24ff 100644 --- a/prototypes/buildings/burner-wpu.lua +++ b/prototypes/buildings/burner-wpu.lua @@ -15,7 +15,7 @@ RECIPE { results = { {"burner-wpu", 1} } -} +}:add_unlock("automation-science-pack") ITEM { type = "item", @@ -53,13 +53,11 @@ ENTITY { effectivity = 1, emissions = 1, fluid_box = { - base_area = 1, - height = 2, - base_level = -1, + volume = 2, pipe_covers = pipecoverspictures(), pipe_connections = { - {type = "input-output", position = {-3.5,0.5}}, - {type = "input-output", position = {3.5, 0.5}} + { flow_direction = "input-output", position = {-2.8, 0.5}, direction = 12 }, + { flow_direction = "input-output", position = {2.8, 0.5}, direction = 4 } }, filter = "steam", production_type = "input-output", @@ -67,25 +65,27 @@ ENTITY { scale_fluid_usage = true, }, energy_usage = "150kW", - animation = { - layers = { - { - filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/left.png", - width = 96, - height = 277, - line_length = 21, - frame_count = 130, - shift = {-1.5, -1.328}, - animation_speed = 0.4 - }, - { - filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/right.png", - width = 96, - height = 277, - line_length = 21, - frame_count = 130, - shift = {1.5, -1.328}, - animation_speed = 0.4 + graphics_set = { + animation = { + layers = { + { + filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/left.png", + width = 96, + height = 277, + line_length = 21, + frame_count = 130, + shift = {-1.5, -1.328}, + animation_speed = 0.4 + }, + { + filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/right.png", + width = 96, + height = 277, + line_length = 21, + frame_count = 130, + shift = {1.5, -1.328}, + animation_speed = 0.4 + } } } }, @@ -96,4 +96,4 @@ ENTITY { apparent_volume = 2.5 }, next_upgrade = "wpu" -} +} \ No newline at end of file diff --git a/prototypes/buildings/compost-plant-mk00.lua b/prototypes/buildings/compost-plant-mk00.lua index 842cfa6..cec9e99 100644 --- a/prototypes/buildings/compost-plant-mk00.lua +++ b/prototypes/buildings/compost-plant-mk00.lua @@ -14,242 +14,240 @@ RECIPE { }:add_unlock("compost") ITEM { - type = "item", - name = "compost-plant-mk00", - icon = "__PyBlock__/graphics/icons/compost-plant-mk00.png", - icon_size = 64, - flags = {}, - subgroup = "py-alienlife-buildings-mk00", - order = "d", - place_result = "compost-plant-mk00", - stack_size = 10 + type = "item", + name = "compost-plant-mk00", + icon = "__PyBlock__/graphics/icons/compost-plant-mk00.png", + icon_size = 64, + flags = {}, + subgroup = "py-alienlife-buildings-mk00", + order = "d", + place_result = "compost-plant-mk00", + stack_size = 10 } ENTITY { - type = "furnace", - name = "compost-plant-mk00", - icon = "__PyBlock__/graphics/icons/compost-plant-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "compost-plant-mk00"}, - fast_replaceable_group = "compost-plant", - max_health = 300, - corpse = "big-remnants", - dying_explosion = "big-explosion", - collision_box = {{-5.2, -5.2}, {5.2, 5.2}}, - selection_box = {{-5.5, -5.5}, {5.5, 5.5}}, - draw_entity_info_icon_background = false, - match_animation_speed_to_activity = false, - module_specification = { - module_slots = 1 + type = "furnace", + name = "compost-plant-mk00", + icon = "__PyBlock__/graphics/icons/compost-plant-mk00.png", + icon_size = 64, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "compost-plant-mk00"}, + fast_replaceable_group = "compost-plant", + max_health = 300, + corpse = "big-remnants", + dying_explosion = "big-explosion", + collision_box = {{-5.2, -5.2}, {5.2, 5.2}}, + selection_box = {{-5.5, -5.5}, {5.5, 5.5}}, + draw_entity_info_icon_background = false, + match_animation_speed_to_activity = false, + module_specification = { + module_slots = 1 + }, + allowed_effects = {"speed","consumption"}, + crafting_categories = {"compost"}, + crafting_speed = 0.5, + source_inventory_size = 1, + result_inventory_size = 1, + energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + volume = 2, + pipe_covers = pipecoverspictures(), + pipe_connections = { + { flow_direction = "input-output", position = {-5.2,1}, direction = 12 }, + { flow_direction = "input-output", position = {5.2, 1}, direction = 4 }, + -- direction = 0, + }, + filter = "steam", + production_type = "input-output", }, - allowed_effects = {"speed","consumption"}, - crafting_categories = {"compost"}, - crafting_speed = 0.5, - source_inventory_size = 1, - result_inventory_size = 1, - energy_source = - { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = - { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "input-output", position = {-6,1}}, - {type = "input-output", position = {6, 1} }, - }, - filter = "steam", - production_type = "input-output", - }, - scale_fluid_usage = true, - }, - energy_usage = "300kW", + scale_fluid_usage = true, + }, + energy_usage = "300kW", + graphics_set = { animation = { - layers = { + layers = { { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/bottom.png", - width = 384, - height = 32, - frame_count = 1, - line_length = 1, - shift = util.by_pixel(16, 160) + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/bottom.png", + width = 384, + height = 32, + frame_count = 1, + line_length = 1, + shift = util.by_pixel(16, 160) }, { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/off.png", - width = 384, - height = 512, - frame_count = 1, - line_length = 1, - shift = util.by_pixel(16, -112) + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/off.png", + width = 384, + height = 512, + frame_count = 1, + line_length = 1, + shift = util.by_pixel(16, -112) }, { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/off-mask.png", - width = 384, - height = 512, - frame_count = 1, - line_length = 1, - shift = util.by_pixel(16, -112), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/off-mask.png", + width = 384, + height = 512, + frame_count = 1, + line_length = 1, + shift = util.by_pixel(16, -112), + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} }, + }, }, -}, -working_visualisations = { - { + working_visualisations = { + { north_position = util.by_pixel(-144, -112), west_position = util.by_pixel(-144, -112), south_position = util.by_pixel(-144, -112), east_position = util.by_pixel(-144, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a1.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4 + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a1.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4 } - }, - { + }, + { north_position = util.by_pixel(-144, -112), west_position = util.by_pixel(-144, -112), south_position = util.by_pixel(-144, -112), east_position = util.by_pixel(-144, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a1-mask.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a1-mask.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} } - }, - { + }, + { north_position = util.by_pixel(-80, -112), west_position = util.by_pixel(-80, -112), south_position = util.by_pixel(-80, -112), east_position = util.by_pixel(-80, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a2.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4 + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a2.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4 } - }, - { + }, + { north_position = util.by_pixel(-80, -112), west_position = util.by_pixel(-80, -112), south_position = util.by_pixel(-80, -112), east_position = util.by_pixel(-80, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a2-mask.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a2-mask.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} } - }, - { + }, + { north_position = util.by_pixel(-16, -112), west_position = util.by_pixel(-16, -112), south_position = util.by_pixel(-16, -112), east_position = util.by_pixel(-16, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a3.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4 + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a3.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4 } - }, - { + }, + { north_position = util.by_pixel(-16, -112), west_position = util.by_pixel(-16, -112), south_position = util.by_pixel(-16, -112), east_position = util.by_pixel(-16, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a3-mask.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a3-mask.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} } - }, - { + }, + { north_position = util.by_pixel(48, -112), west_position = util.by_pixel(48, -112), south_position = util.by_pixel(48, -112), east_position = util.by_pixel(48, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a4.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4 + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a4.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4 } - }, - { + }, + { north_position = util.by_pixel(48, -112), west_position = util.by_pixel(48, -112), south_position = util.by_pixel(48, -112), east_position = util.by_pixel(48, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a4-mask.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a4-mask.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} } - }, - { + }, + { north_position = util.by_pixel(112, -112), west_position = util.by_pixel(112, -112), south_position = util.by_pixel(112, -112), east_position = util.by_pixel(112, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a5.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4 + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a5.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4 } - }, - { + }, + { north_position = util.by_pixel(112, -112), west_position = util.by_pixel(112, -112), south_position = util.by_pixel(112, -112), east_position = util.by_pixel(112, -112), animation = { - filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a5-mask.png", - frame_count = 100, - line_length = 32, - width = 64, - height = 512, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + filename = "__pyalienlifegraphics2__/graphics/entity/compost-plant/a5-mask.png", + frame_count = 100, + line_length = 32, + width = 64, + height = 512, + animation_speed = 0.4, + tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} } - }, -}, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics3__/sounds/compost-plant.ogg", volume = 1.2}, - idle_sound = {filename = "__pyalienlifegraphics3__/sounds/compost-plant.ogg", volume = 0.75}, - apparent_volume = 0.45 + }, } + }, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyalienlifegraphics3__/sounds/compost-plant.ogg", volume = 1.2}, + idle_sound = {filename = "__pyalienlifegraphics3__/sounds/compost-plant.ogg", volume = 0.75}, + apparent_volume = 0.45 + } } diff --git a/prototypes/buildings/cultivator-mk01.lua b/prototypes/buildings/cultivator-mk01.lua index 9551be6..b90ea04 100644 --- a/prototypes/buildings/cultivator-mk01.lua +++ b/prototypes/buildings/cultivator-mk01.lua @@ -65,19 +65,19 @@ ENTITY { match_animation_speed_to_activity = false, fluid_boxes = { { - production_type = "input", + direction = "input", -- pipe_picture = { -- north = { - -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, - -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height} + -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, + -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height} -- }, - -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right, - -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down, - -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left + -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east, + -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south, + -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west -- }, - pipe_covers = DATA.Pipes.covers(true, true, true, true), + pipe_covers = py.pipe_covers(true, true, true, true), base_area = 10, base_level = -1, pipe_connections = { @@ -88,9 +88,9 @@ ENTITY { }, }, -- { - -- production_type = "output", - -- pipe_covers = DATA.Pipes.covers(true, true, true, true), - -- pipe_picture = DATA.Pipes.pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), + -- direction = "output", + -- pipe_covers = py.pipe_covers(true, true, true, true), + -- pipe_picture = py.pipe_pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), -- base_level = 1, -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, -- }, @@ -105,7 +105,7 @@ ENTITY { emissions_per_minute = 1, }, energy_usage = "80kW", - collision_mask = {"item-layer", "object-layer", "water-tile"}, + collision_mask = {layers = {item = true, object = true, water_tile = true}}, vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, working_sound = { sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, @@ -705,43 +705,43 @@ ENTITY { position = {3584, 800} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, -- position = {0, -256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, -- position = {256, 0} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, -- position = {0, 256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, -- position = {-256, 0} }, { @@ -894,43 +894,43 @@ ENTITY { north = { layers = { { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, -- position = {0, -256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, -- position = {256, 0} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, -- position = {0, 256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, -- position = {-256, 0} }, { diff --git a/prototypes/buildings/cultivator-mk02.lua b/prototypes/buildings/cultivator-mk02.lua index b0dbb59..b3fdf9b 100644 --- a/prototypes/buildings/cultivator-mk02.lua +++ b/prototypes/buildings/cultivator-mk02.lua @@ -71,16 +71,16 @@ ENTITY { production_type = "input", -- pipe_picture = { -- north = { - -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, - -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height} + -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, + -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height} -- }, - -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right, - -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down, - -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left + -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east, + -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south, + -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west -- }, - pipe_covers = DATA.Pipes.covers(true, true, true, true), + pipe_covers = py.pipe_covers(true, true, true, true), base_area = 10, base_level = -1, pipe_connections = { @@ -92,8 +92,8 @@ ENTITY { }, -- { -- production_type = "output", - -- pipe_covers = DATA.Pipes.covers(true, true, true, true), - -- pipe_picture = DATA.Pipes.pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), + -- pipe_covers = py.pipe_covers(true, true, true, true), + -- pipe_picture = py.pipe_pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), -- base_level = 1, -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, -- }, @@ -108,7 +108,7 @@ ENTITY { emissions_per_minute = 1, }, energy_usage = "250kW", - collision_mask = {"item-layer", "object-layer", "water-tile"}, + collision_mask = {layers = {item = true, object = true, water_tile = true}}, vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, working_sound = { sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, @@ -708,43 +708,43 @@ ENTITY { position = {3584, 800} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, -- position = {0, -256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, -- position = {256, 0} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, -- position = {0, 256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, -- position = {-256, 0} }, { @@ -897,43 +897,43 @@ ENTITY { north = { layers = { { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, -- position = {0, -256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, -- position = {256, 0} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, -- position = {0, 256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, -- position = {-256, 0} }, { diff --git a/prototypes/buildings/cultivator-mk03.lua b/prototypes/buildings/cultivator-mk03.lua index 32884ae..046561c 100644 --- a/prototypes/buildings/cultivator-mk03.lua +++ b/prototypes/buildings/cultivator-mk03.lua @@ -70,16 +70,16 @@ ENTITY { production_type = "input", -- pipe_picture = { -- north = { - -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, - -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height} + -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, + -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height} -- }, - -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right, - -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down, - -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left + -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east, + -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south, + -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west -- }, - pipe_covers = DATA.Pipes.covers(true, true, true, true), + pipe_covers = py.pipe_covers(true, true, true, true), base_area = 10, base_level = -1, pipe_connections = { @@ -91,8 +91,8 @@ ENTITY { }, -- { -- production_type = "output", - -- pipe_covers = DATA.Pipes.covers(true, true, true, true), - -- pipe_picture = DATA.Pipes.pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), + -- pipe_covers = py.pipe_covers(true, true, true, true), + -- pipe_picture = py.pipe_pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), -- base_level = 1, -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, -- }, @@ -107,7 +107,7 @@ ENTITY { emissions_per_minute = 1, }, energy_usage = "400kW", - collision_mask = {"item-layer", "object-layer", "water-tile"}, + collision_mask = {layers = {item = true, object = true, water_tile = true}}, vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, working_sound = { sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, @@ -707,43 +707,43 @@ ENTITY { position = {3584, 800} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, -- position = {0, -256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, -- position = {256, 0} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, -- position = {0, 256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, -- position = {-256, 0} }, { @@ -896,43 +896,43 @@ ENTITY { north = { layers = { { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, -- position = {0, -256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, -- position = {256, 0} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, -- position = {0, 256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, -- position = {-256, 0} }, { diff --git a/prototypes/buildings/cultivator-mk04.lua b/prototypes/buildings/cultivator-mk04.lua index fdbf3fb..d293660 100644 --- a/prototypes/buildings/cultivator-mk04.lua +++ b/prototypes/buildings/cultivator-mk04.lua @@ -67,19 +67,19 @@ ENTITY { match_animation_speed_to_activity = false, fluid_boxes = { { - production_type = "input", + flow_direction = "input", -- pipe_picture = { -- north = { - -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, - -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height} + -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, + -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height} -- }, - -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right, - -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down, - -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left + -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east, + -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south, + -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west -- }, - pipe_covers = DATA.Pipes.covers(true, true, true, true), + pipe_covers = py.pipe_covers(true, true, true, true), base_area = 10, base_level = -1, pipe_connections = { @@ -90,9 +90,9 @@ ENTITY { }, }, -- { - -- production_type = "output", - -- pipe_covers = DATA.Pipes.covers(true, true, true, true), - -- pipe_picture = DATA.Pipes.pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), + -- flow_direction = "output", + -- pipe_covers = py.pipe_covers(true, true, true, true), + -- pipe_picture = py.pipe_pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), -- base_level = 1, -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, -- }, @@ -107,7 +107,7 @@ ENTITY { emissions_per_minute = 1, }, energy_usage = "650kW", - collision_mask = {"item-layer", "object-layer", "water-tile"}, + collision_mask = {layers = {item = true, object = true, water_tile = true}}, vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, working_sound = { sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, @@ -706,43 +706,43 @@ ENTITY { position = {3584, 800} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, -- position = {0, -256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, -- position = {256, 0} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, -- position = {0, 256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, -- position = {-256, 0} }, { @@ -895,43 +895,43 @@ ENTITY { north = { layers = { { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.up.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, -- position = {0, -256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.right.height}, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, -- position = {256, 0} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.down.height}, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, -- position = {0, 256} }, { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height, + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, frame_count = 1, repeat_count = 255, amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.left.height}, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, -- position = {-256, 0} }, { diff --git a/prototypes/buildings/cultivator.lua b/prototypes/buildings/cultivator.lua new file mode 100644 index 0000000..0800bb0 --- /dev/null +++ b/prototypes/buildings/cultivator.lua @@ -0,0 +1,1121 @@ +RECIPE { + type = "recipe", + name = "flora-cultivator-mk01", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "burner-mining-drill", amount = 2}, + {type = "item", name = "iron-gear-wheel", amount = 10}, + {type = "item", name = "iron-plate", amount = 20}, + {type = "item", name = "steam-engine", amount = 1}, + {type = "item", name = "inductor1", amount = 5}, + {type = "item", name = "burner-soil-extractor", amount = 1}, + }, + results = { + {type = "item", name = "flora-cultivator-mk01", amount = 1} + } +}:add_unlock("automation-science-pack") + +RECIPE { + type = "recipe", + name = "flora-cultivator-mk02", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-cultivator-mk01", amount = 1}, + {type = "item", name = "glass", amount = 30}, + {type = "item", name = "nexelit-plate", amount = 15}, + {type = "item", name = "duralumin", amount = 10}, + {type = "item", name = "advanced-circuit", amount = 10}, + {type = "item", name = "engine-unit", amount = 1}, + {type = "item", name = "latex", amount = 10}, + {type = "item", name = "neuroprocessor", amount = 5}, + }, + results = { + {type = "item", name = "flora-cultivator-mk02", amount = 1} + } +}:add_unlock("biotech-machines-mk02"):add_ingredient {type = "item", name = "small-parts-02", amount = 50} + +RECIPE { + type = "recipe", + name = "flora-cultivator-mk03", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-cultivator-mk02", amount = 1}, + {type = "item", name = "ticocr-alloy", amount = 20}, + {type = "item", name = "low-density-structure", amount = 20}, + {type = "item", name = "stainless-steel", amount = 30}, + {type = "item", name = "processing-unit", amount = 30}, + {type = "item", name = "electric-engine-unit", amount = 15}, + {type = "item", name = "super-alloy", amount = 30}, + }, + results = { + {type = "item", name = "flora-cultivator-mk03", amount = 1} + } +}:add_unlock("biotech-machines-mk03"):add_ingredient {type = "item", name = "small-parts-03", amount = 50} + +RECIPE { + type = "recipe", + name = "flora-cultivator-mk04", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-cultivator-mk03", amount = 1}, + {type = "item", name = "science-coating", amount = 20}, + {type = "item", name = "divertor", amount = 5}, + {type = "item", name = "control-unit", amount = 5}, + {type = "item", name = "metallic-glass", amount = 10}, + {type = "item", name = "boron-carbide", amount = 30}, + }, + results = { + {type = "item", name = "flora-cultivator-mk04", amount = 1} + } +}:add_unlock("biotech-machines-mk04") + +for i = 1, 4 do + local name = "flora-cultivator-mk0" .. i + local icons = { + { + icon = "__pyalienlifegraphics3__/graphics/icons/" .. "flora-collector-mk0" .. i .. ".png", + icon_size = 64, + }, + { + icon = "__PyBlock__/graphics/icons/manual-gear.png", + icon_size = 32, + shift = {10, -10}, + scale = 0.5 + } + } + + ITEM { + type = "item", + name = name, + icons = icons, + flags = {}, + subgroup = "py-alienlife-buildings-mk0" .. i, + order = "x", + place_result = name, + stack_size = 10 + } + + ENTITY { + type = "assembling-machine", + name = name, + icons = icons, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = name}, + fast_replaceable_group = "flora-cultivator", + max_health = 200 * i, + corpse = "big-remnants", + dying_explosion = "big-explosion", + collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + module_slots = i, + allowed_effects = {"consumption", "speed", "productivity", "pollution", "quality"}, + crafting_speed = i, + crafting_categories = {"cultivation"}, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = { + pollution = i * 3 + }, + }, + fluid_boxes = { + { + production_type = "input", + pipe_covers = py.pipe_covers(true, true, true, true), + volume = 10, + pipe_connections = { + { position = {0, -3.398}, flow_direction = "input", direction = 0 }, + { position = {3.398, 0}, flow_direction = "input", direction = 4 }, + { position = {0, 3.398}, flow_direction = "input", direction = 8 }, + { position = {-3.398, 0}, flow_direction = "input", direction = 12 }, + } + } + }, + energy_usage = (100 * (2 ^ (i - 1))) .. "kW", + vector_to_place_result = {0, -3.85}, + match_animation_speed_to_activity = false, + collision_mask = {layers = {item = true, object = true, water_tile = true}}, + circuit_wire_connection_points = circuit_connector_definitions["flora-collector-mkxx"].points, + circuit_connector_sprites = circuit_connector_definitions["flora-collector-mkxx"].sprites, + circuit_wire_max_distance = default_circuit_wire_max_distance, + graphics_set = { + animation = { + north = { + layers = { + { + -- count: 0, variation: 60, richness: 1 + -- max_x = 3811 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-93, -112), + position = {3840, 800} + }, + { + -- count: 1, variation: 22, richness: 1 + -- max_x = 1411 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-61, -112), + position = {1408, 800} + }, + { + -- count: 2, variation: 47, richness: 1 + -- max_x = 3043 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-29, -112), + position = {3008, 800} + }, + { + -- count: 3, variation: 14, richness: 1 + -- max_x = 963 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(3, -112), + position = {896, 800} + }, + { + -- count: 4, variation: 56, richness: 1 + -- max_x = 3683 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(35, -112), + position = {3584, 800} + }, + { + -- count: 5, variation: 41, richness: 1 + -- max_x = 2755 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(67, -112), + position = {2624, 800} + }, + { + -- count: 6, variation: 21, richness: 1 + -- max_x = 1507 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(99, -112), + position = {1344, 800} + }, + { + -- count: 7, variation: 24, richness: 1 + -- max_x = 1507 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-93, -80), + position = {1536, 800} + }, + { + -- count: 8, variation: 46, richness: 3 + -- max_x = 2947 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-61, -80), + position = {2944, 640} + }, + { + -- count: 9, variation: 24, richness: 3 + -- max_x = 1571 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-29, -80), + position = {1536, 640} + }, + { + -- count: 10, variation: 42, richness: 4 + -- max_x = 2755 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(3, -80), + position = {2688, 560} + }, + { + -- count: 11, variation: 14, richness: 3 + -- max_x = 995 max_y = 640 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(35, -80), + position = {896, 640} + }, + { + -- count: 12, variation: 38, richness: 4 + -- max_x = 2563 max_y = 560 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(67, -80), + position = {2432, 560} + }, + { + -- count: 13, variation: 4, richness: 1 + -- max_x = 419 max_y = 800 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(99, -80), + position = {256, 800} + }, + { + -- count: 14, variation: 35, richness: 1 + -- max_x = 2211 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-93, -48), + position = {2240, 800} + }, + { + -- count: 15, variation: 59, richness: 3 + -- max_x = 3779 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-61, -48), + position = {3776, 640} + }, + { + -- count: 16, variation: 22, richness: 6 + -- max_x = 1443 max_y = 432 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-29, -48), + position = {1408, 400} + }, + { + -- count: 17, variation: 25, richness: 5 + -- max_x = 1667 max_y = 512 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(3, -48), + position = {1600, 480} + }, + { + -- count: 18, variation: 18, richness: 7 + -- max_x = 1251 max_y = 352 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(35, -48), + position = {1152, 320} + }, + { + -- count: 19, variation: 0, richness: 3 + -- max_x = 131 max_y = 672 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(67, -48), + position = {0, 640} + }, + { + -- count: 20, variation: 51, richness: 1 + -- max_x = 3427 max_y = 832 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(99, -48), + position = {3264, 800} + }, + { + -- count: 21, variation: 10, richness: 2 + -- max_x = 611 max_y = 784 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-93, -16), + position = {640, 720} + }, + { + -- count: 22, variation: 26, richness: 4 + -- max_x = 1667 max_y = 624 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-61, -16), + position = {1664, 560} + }, + { + -- count: 23, variation: 52, richness: 7 + -- max_x = 3363 max_y = 384 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-29, -16), + position = {3328, 320} + }, + { + -- count: 24, variation: 58, richness: 5 + -- max_x = 3779 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(3, -16), + position = {3712, 480} + }, + { + -- count: 25, variation: 62, richness: 6 + -- max_x = 4067 max_y = 464 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(35, -16), + position = {3968, 400} + }, + { + -- count: 26, variation: 46, richness: 5 + -- max_x = 3075 max_y = 544 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(67, -16), + position = {2944, 480} + }, + { + -- count: 27, variation: 23, richness: 1 + -- max_x = 1635 max_y = 864 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(99, -16), + position = {1472, 800} + }, + { + -- count: 28, variation: 14, richness: 2 + -- max_x = 867 max_y = 816 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-93, 16), + position = {896, 720} + }, + { + -- count: 29, variation: 9, richness: 3 + -- max_x = 579 max_y = 736 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-61, 16), + position = {576, 640} + }, + { + -- count: 30, variation: 60, richness: 5 + -- max_x = 3875 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-29, 16), + position = {3840, 480} + }, + { + -- count: 31, variation: 45, richness: 5 + -- max_x = 2947 max_y = 576 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(3, 16), + position = {2880, 480} + }, + { + -- count: 32, variation: 52, richness: 6 + -- max_x = 3427 max_y = 496 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(35, 16), + position = {3328, 400} + }, + { + -- count: 33, variation: 56, richness: 4 + -- max_x = 3715 max_y = 656 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(67, 16), + position = {3584, 560} + }, + { + -- count: 34, variation: 54, richness: 1 + -- max_x = 3619 max_y = 896 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(99, 16), + position = {3456, 800} + }, + { + -- count: 35, variation: 34, richness: 1 + -- max_x = 2147 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-93, 48), + position = {2176, 800} + }, + { + -- count: 36, variation: 16, richness: 3 + -- max_x = 1027 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-61, 48), + position = {1024, 640} + }, + { + -- count: 37, variation: 29, richness: 3 + -- max_x = 1891 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-29, 48), + position = {1856, 640} + }, + { + -- count: 38, variation: 39, richness: 3 + -- max_x = 2563 max_y = 768 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(3, 48), + position = {2496, 640} + }, + { + -- count: 39, variation: 52, richness: 5 + -- max_x = 3427 max_y = 608 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(35, 48), + position = {3328, 480} + }, + { + -- count: 40, variation: 43, richness: 4 + -- max_x = 2883 max_y = 688 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(67, 48), + position = {2752, 560} + }, + { + -- count: 41, variation: 12, richness: 1 + -- max_x = 931 max_y = 928 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(99, 48), + position = {768, 800} + }, + { + -- count: 42, variation: 36, richness: 1 + -- max_x = 2275 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-93, 80), + position = {2304, 800} + }, + { + -- count: 43, variation: 21, richness: 1 + -- max_x = 1347 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-61, 80), + position = {1344, 800} + }, + { + -- count: 44, variation: 33, richness: 1 + -- max_x = 2147 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-29, 80), + position = {2112, 800} + }, + { + -- count: 45, variation: 38, richness: 1 + -- max_x = 2499 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(3, 80), + position = {2432, 800} + }, + { + -- count: 46, variation: 25, richness: 1 + -- max_x = 1699 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(35, 80), + position = {1600, 800} + }, + { + -- count: 47, variation: 2, richness: 1 + -- max_x = 259 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(67, 80), + position = {128, 800} + }, + { + -- count: 48, variation: 56, richness: 1 + -- max_x = 3747 max_y = 960 + filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", + width = 64, + height = 80, + frame_count = 1, + repeat_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(99, 80), + position = {3584, 800} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(128, 0) + }, + --MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(96, 0) + }, + } + } + }, + idle_animation = { + north = { + layers = { + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, + -- position = {0, -256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, + -- position = {256, 0} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, + -- position = {0, 256} + }, + { + filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, + width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, + height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, + frame_count = 1, + repeat_count = 255, + amimation_speed = 0.4, + shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, + -- position = {-256, 0} + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f1.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f2.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f3.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f4.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f5.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f6.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f7.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f8.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + shift = util.by_pixel(128, 0) + }, + --MASKS + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f1-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(-96, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f2-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(-64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f3-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(-32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f4-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(0, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f5-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(32, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f6-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(64, 0) + }, + { + filename = "__pyalienlifegraphics__/graphics/entity/flora-collector/f7-mask.png", + width = 32, + height = 288, + line_length = 64, + frame_count = 255, + animation_speed = 0.2, + tint = py.tints[i], + shift = util.by_pixel(96, 0) + } + } + } + } + }, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact-1.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyalienlifegraphics__/sounds/flora-collector.ogg", volume = 0.9}, + idle_sound = {filename = "__pyalienlifegraphics__/sounds/flora-collector.ogg", volume = 0.3}, + apparent_volume = 2.5 + }, + next_upgrade = (i ~= 4) and ("flora-cultivator-mk0" .. (i + 1)) or nil + } +end diff --git a/prototypes/buildings/geothermal-plant-mk01.lua b/prototypes/buildings/geothermal-plant-mk01.lua index c196478..1a05ba8 100644 --- a/prototypes/buildings/geothermal-plant-mk01.lua +++ b/prototypes/buildings/geothermal-plant-mk01.lua @@ -19,18 +19,17 @@ ENTITY { fluid_boxes = { { production_type = "input", - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), - pipe_covers = DATA.Pipes.covers(true, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = {{ type = "input", position = {-6, 0} }}, + pipe_picture = py.pipe_pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), + pipe_covers = py.pipe_covers(true, true, true, true), + volume = 10, + pipe_connections = {{ flow_direction = "input", position = {-5.2, 0}, direction = 12 }} }, { production_type = "output", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), - base_level = 1, - pipe_connections = {{ position = {0, -6}, type = 'output' }}, + pipe_covers = py.pipe_covers(true, true, true, true), + pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), + volume = 1, + pipe_connections = {{ flow_direction = 'output', position = {0, -5.2}, direction = 0 }} }, }, fixed_recipe = "geothermal-water", @@ -42,78 +41,80 @@ ENTITY { module_slots = 4 }, --base_render_layer = "lower-object-above-shadow", - animation = { - north = { - layers = { - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/left-raw.png", - width = 128, - height = 512, - repeat_count = 50, - line_length = 1, - frame_count = 1, - animation_speed = 0.25, - shift = util.by_pixel(-112, -80) - }, - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/left-l.png", - width = 128, - height = 512, - repeat_count = 50, - line_length = 1, - frame_count = 1, - animation_speed = 0.25, - draw_as_glow = true, - shift = util.by_pixel(-112, -80) - }, - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/mid-raw.png", - width = 128, - height = 512, - line_length = 16, - frame_count = 50, - animation_speed = 0.25, - shift = util.by_pixel(16, -80) - }, - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/mid-l.png", - width = 128, - height = 512, - line_length = 16, - frame_count = 50, - animation_speed = 0.25, - draw_as_glow = true, - shift = util.by_pixel(16, -80) - }, - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/right-raw.png", - width = 96, - height = 512, - line_length = 16, - frame_count = 50, - animation_speed = 0.25, - shift = util.by_pixel(128, -80) - }, - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/right-l.png", - width = 96, - height = 512, - line_length = 16, - frame_count = 50, - animation_speed = 0.25, - draw_as_glow = true, - shift = util.by_pixel(128, -80) - }, - { - filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/sh.png", - width = 416, - height = 320, - repeat_count = 50, - line_length = 1, - frame_count = 1, - animation_speed = 0.25, - draw_as_shadow = true, - shift = util.by_pixel(32, 16) + graphics_set = { + animation = { + north = { + layers = { + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/left-raw.png", + width = 128, + height = 512, + repeat_count = 50, + line_length = 1, + frame_count = 1, + animation_speed = 0.25, + shift = util.by_pixel(-112, -80) + }, + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/left-l.png", + width = 128, + height = 512, + repeat_count = 50, + line_length = 1, + frame_count = 1, + animation_speed = 0.25, + draw_as_glow = true, + shift = util.by_pixel(-112, -80) + }, + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/mid-raw.png", + width = 128, + height = 512, + line_length = 16, + frame_count = 50, + animation_speed = 0.25, + shift = util.by_pixel(16, -80) + }, + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/mid-l.png", + width = 128, + height = 512, + line_length = 16, + frame_count = 50, + animation_speed = 0.25, + draw_as_glow = true, + shift = util.by_pixel(16, -80) + }, + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/right-raw.png", + width = 96, + height = 512, + line_length = 16, + frame_count = 50, + animation_speed = 0.25, + shift = util.by_pixel(128, -80) + }, + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/right-l.png", + width = 96, + height = 512, + line_length = 16, + frame_count = 50, + animation_speed = 0.25, + draw_as_glow = true, + shift = util.by_pixel(128, -80) + }, + { + filename = "__pyalternativeenergygraphics__/graphics/entity/geothermal-plant/sh.png", + width = 416, + height = 320, + repeat_count = 50, + line_length = 1, + frame_count = 1, + animation_speed = 0.25, + draw_as_shadow = true, + shift = util.by_pixel(32, 16) + } } } } diff --git a/prototypes/mapgen.lua b/prototypes/mapgen.lua index 0d1f03a..3664d0a 100644 --- a/prototypes/mapgen.lua +++ b/prototypes/mapgen.lua @@ -1,13 +1,189 @@ -data.raw["map-gen-presets"].default["pyblock-recommended"] = { +-- data.raw["map-gen-presets"].default["pyblock-recommended"] = { +-- order = "i", +-- basic_settings = { +-- property_expression_names = { +-- elevation = "0_17-island" +-- }, +-- -- terrain_segmentation = 0, +-- -- default_enable_all_autoplace_controls = false, +-- autoplace_settings = { +-- ["entity"] = { +-- treat_missing_as_default = false, +-- settings = { +-- fish = { +-- frequency = 1 +-- }, +-- driftwood = { +-- frequency = 1 +-- }, +-- seaweed = { +-- frequency = 1 +-- } +-- } +-- } +-- }, +-- autoplace_controls = { +-- ["enemy-base"] = { +-- frequency = 0 +-- }, +-- ["trees"] = { +-- frequency = 0 +-- }, +-- ["iron-ore"] = { +-- frequency = 0 +-- }, +-- ["copper-ore"] = { +-- frequency = 0 +-- }, +-- ["stone"] = { +-- frequency = 0 +-- }, +-- ["uranium-ore"] = { +-- frequency = 0 +-- }, +-- ["borax"] = { +-- frequency = 0 +-- }, +-- ["niobium"] = { +-- frequency = 0 +-- }, +-- ["molybdenum-ore"] = { +-- frequency = 0 +-- }, +-- ["volcanic-pipe"] = { +-- frequency = 0 +-- }, +-- ["regolites"] = { +-- frequency = 0 +-- }, +-- ["ore-quartz"] = { +-- frequency = 0 +-- }, +-- ["raw-coal"] = { +-- frequency = 0 +-- }, +-- ["ore-aluminium"] = { +-- frequency = 0 +-- }, +-- ["ore-chromium"] = { +-- frequency = 0 +-- }, +-- ["ore-lead"] = { +-- frequency = 0 +-- }, +-- ["ore-nickel"] = { +-- frequency = 0 +-- }, +-- ["ore-tin"] = { +-- frequency = 0 +-- }, +-- ["ore-titanium"] = { +-- frequency = 0 +-- }, +-- ["ore-zinc"] = { +-- frequency = 0 +-- }, +-- ["quartz-rock"] = { +-- frequency = 0 +-- }, +-- ["chromium-rock"] = { +-- frequency = 0 +-- }, +-- ["aluminium-rock"] = { +-- frequency = 0 +-- }, +-- ["copper-rock"] = { +-- frequency = 0 +-- }, +-- ["salt-rock"] = { +-- frequency = 0 +-- }, +-- ["iron-rock"] = { +-- frequency = 0 +-- }, +-- ["coal-rock"] = { +-- frequency = 0 +-- }, +-- ["lead-rock"] = { +-- frequency = 0 +-- }, +-- ["nickel-rock"] = { +-- frequency = 0 +-- }, +-- ["tin-rock"] = { +-- frequency = 0 +-- }, +-- ["titanium-rock"] = { +-- frequency = 0 +-- }, +-- ["uranium-rock"] = { +-- frequency = 0 +-- }, +-- ["zinc-rock"] = { +-- frequency = 0 +-- }, +-- ["phosphate-rock-02"] = { +-- frequency = 0 +-- }, +-- ["phosphate-rock"] = { +-- frequency = 0 +-- }, +-- ["rare-earth-bolide"] = { +-- frequency = 0 +-- }, +-- ["oil-sand"] = { +-- frequency = 0 +-- }, +-- ["sulfur-patch"] = { +-- frequency = 0 +-- }, +-- ["bitumen-seep"] = { +-- frequency = 0 +-- }, +-- ["ore-bioreserve"] = { +-- frequency = 0 +-- }, +-- ["ore-nexelit"] = { +-- frequency = 0 +-- }, +-- ["geothermal-crack"] = { +-- frequency = 0 +-- }, +-- ["ree"] = { +-- frequency = 0 +-- }, +-- ["antimonium"] = { +-- frequency = 0 +-- }, +-- }, +-- cliff_settings = { +-- richness = 0 +-- }, +-- }, +-- advanced_settings = { +-- pollution = { +-- enabled = false +-- } +-- } +-- } +data.raw["map-gen-presets"]["default"]["pyblock-recommended"] = { order = "i", basic_settings = { property_expression_names = { - elevation = "0_17-island" + elevation = "elevation_island", + moisture = "moisture_basic", + aux = "aux_basic", + cliffiness = "cliffiness_basic", + cliff_elevation = "cliff_elevation_from_elevation", + trees_forest_path_cutout = 1 }, - terrain_segmentation = 0, - -- default_enable_all_autoplace_controls = false, + cliff_settings = { + cliff_smoothing = 1 + }, + no_enemies_mode = true, + default_enable_all_autoplace_controls = false, autoplace_settings = { - ["entity"] = { + entity = { treat_missing_as_default = false, settings = { fish = { @@ -23,9 +199,6 @@ data.raw["map-gen-presets"].default["pyblock-recommended"] = { } }, autoplace_controls = { - ["enemy-base"] = { - frequency = 0 - }, ["trees"] = { frequency = 0 }, @@ -155,10 +328,7 @@ data.raw["map-gen-presets"].default["pyblock-recommended"] = { ["antimonium"] = { frequency = 0 }, - }, - cliff_settings = { - richness = 0 - }, + } }, advanced_settings = { pollution = { diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index bee0194..bbd254e 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -116,7 +116,7 @@ RECIPE { results = { { type = "item", name = "native-flora", amount = 1, probability = 0.02 } }, -} +}:add_unlock("automation-science-pack") RECIPE { type = "recipe", @@ -135,7 +135,7 @@ RECIPE { { type = "item", name = "soil", amount_min = 0, amount_max = 8, probability = 0.5 } }, main_product = "native-flora" -} +}:add_unlock("automation-science-pack") --UNUSED diff --git a/prototypes/tiles/tiles.lua b/prototypes/tiles/tiles.lua index c590cda..244eb57 100644 --- a/prototypes/tiles/tiles.lua +++ b/prototypes/tiles/tiles.lua @@ -1,36 +1,37 @@ -local waterline = 40 +local waterline = 50 local elevation_scale = 5 -for _, t in pairs(data.raw.tile) do - t.autoplace = nil -end +-- for _, t in pairs(data.raw.tile) do +-- t.autoplace = nil +-- end --- low lying sand -data.raw.tile['landfill'].autoplace = { - peaks = { - { -- Around cliff islands - influence = 5, - elevation_optimal = 0.3 * elevation_scale + waterline, - elevation_range = 0.3 * elevation_scale, - elevation_max_range = 0.3 * elevation_scale + 100 - } -}} +-- -- low lying sand +-- data.raw.tile['landfill'].autoplace = { +-- peaks = { +-- { -- Around cliff islands +-- influence = 5, +-- elevation_optimal = 0.3 * elevation_scale + waterline, +-- elevation_range = 0.3 * elevation_scale, +-- elevation_max_range = 0.3 * elevation_scale + 100 +-- } +-- }} +-- data.raw.tile["landfill"].autoplace = { probability_expression = "basis_noise{x = x, y = y, seed0 = map_seed, seed1 = 0} > 0.3 * elevation_scale + waterline" } -data.raw.tile['water'].autoplace = { - peaks = { - { - influence = 0.1, -- shallow water around cliff islands - min_influence = 0, - elevation_optimal = -2 * elevation_scale + waterline, - elevation_range = 2.5 * elevation_scale, - elevation_max_range = 2.5 * elevation_scale - } - }} +-- data.raw.tile['water'].autoplace = { +-- peaks = { +-- { +-- influence = 0.1, -- shallow water around cliff islands +-- min_influence = 0, +-- elevation_optimal = -2 * elevation_scale + waterline, +-- elevation_range = 2.5 * elevation_scale, +-- elevation_max_range = 2.5 * elevation_scale +-- } +-- }} - data.raw.tile['deepwater'].autoplace = { - peaks = { - { - influence = 0.01 - } - }} \ No newline at end of file +-- data.raw.tile['deepwater'].autoplace = { +-- peaks = { +-- { +-- influence = 0.01 +-- } +-- }} \ No newline at end of file diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index cf9182e..06b9c60 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -17,7 +17,8 @@ RECIPE { energy_required = 5, ingredients = { {type = "item", name = "fawogae-spore", amount = 5}, - {type = "item", name = "planter-box", amount = 1} + {type = "item", name = "empty-planter-box", amount = 1}, + {type = "item", name = "soil", amount = 5} }, results = { {type = "item", name = "fawogae", amount = 1} @@ -37,24 +38,24 @@ RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-de data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "30kW" data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" -data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = { - { type = "input-output", position = {-4, 0} }, - { type = "input-output", position = {4, 0} }, - }, - filter = "steam", - production_type = "input-output", - }, - scale_fluid_usage = true -} +-- data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = { +-- type = "fluid", +-- effectivity = 1, +-- emissions = 1, +-- fluid_box = { +-- base_area = 1, +-- height = 2, +-- base_level = -1, +-- pipe_covers = pipecoverspictures(), +-- pipe_connections = { +-- { type = "input-output", position = {-4, 0}, direction = 0 }, +-- { type = "input-output", position = {4, 0}, direction = 0 }, +-- }, +-- filter = "steam", +-- flow_direction = "input-output", +-- }, +-- scale_fluid_usage = true +-- } -- fawogae to raw coal RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} @@ -162,16 +163,16 @@ RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen"): local breed_fish = table.deepcopy(data.raw["recipe"]["breed-fish-1"]) breed_fish.name = "breed-fish-simple" data.raw.recipe["breed-fish-simple"] = breed_fish -table.insert(data.raw.module["fish"].limitation, "breed-fish-simple") -table.insert(data.raw.module["fish-mk02"].limitation, "breed-fish-simple") -table.insert(data.raw.module["fish-mk03"].limitation, "breed-fish-simple") -table.insert(data.raw.module["fish-mk04"].limitation, "breed-fish-simple") -table.insert(data.raw.module["effectivity-module"].limitation_blacklist, "breed-fish-simple") -table.insert(data.raw.module["effectivity-module-2"].limitation_blacklist, "breed-fish-simple") -table.insert(data.raw.module["effectivity-module-3"].limitation_blacklist, "breed-fish-simple") -table.insert(data.raw.module["speed-module"].limitation_blacklist, "breed-fish-simple") -table.insert(data.raw.module["speed-module-2"].limitation_blacklist, "breed-fish-simple") -table.insert(data.raw.module["speed-module-3"].limitation_blacklist, "breed-fish-simple") +-- table.insert(data.raw.module["fish"].limitation, "breed-fish-simple") +-- table.insert(data.raw.module["fish-mk02"].limitation, "breed-fish-simple") +-- table.insert(data.raw.module["fish-mk03"].limitation, "breed-fish-simple") +-- table.insert(data.raw.module["fish-mk04"].limitation, "breed-fish-simple") +-- table.insert(data.raw.module["effectivity-module"].limitation_blacklist, "breed-fish-simple") +-- table.insert(data.raw.module["effectivity-module-2"].limitation_blacklist, "breed-fish-simple") +-- table.insert(data.raw.module["effectivity-module-3"].limitation_blacklist, "breed-fish-simple") +-- table.insert(data.raw.module["speed-module"].limitation_blacklist, "breed-fish-simple") +-- table.insert(data.raw.module["speed-module-2"].limitation_blacklist, "breed-fish-simple") +-- table.insert(data.raw.module["speed-module-3"].limitation_blacklist, "breed-fish-simple") RECIPE("breed-fish-simple"):remove_ingredient("small-lamp"):add_unlock("fish-mk01"):set_fields{energy_required = 270, results = {{type = "item", name = "fish", amount = 12}, {type = "fluid", name = "waste-water", amount = 100}}} RECIPE("plankton-farm"):remove_ingredient("storage-tank"):remove_ingredient("electronic-circuit") From b717a0474b0cb23396ec1f93104f005f74680b89 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 26 Oct 2024 17:52:00 -0700 Subject: [PATCH 057/110] update changelog --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index ab52b5a..6c71f63 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ --------------------------------------------------------------------------------------------------- Version: 3.0.0 -Date: ???? +Date: 2024-10-27 Bugfixes: - Crude DDC shows pipes when no fluid recipe is selected - Fixed the game not loading because of stupid naming conventions From b11f17069533331465f3f11b0545db805aa88cea Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 26 Oct 2024 22:04:04 -0700 Subject: [PATCH 058/110] fawogae with manure fix --- changelog.txt | 5 +++++ prototypes/updates/pyalienlife-updates.lua | 2 ++ 2 files changed, 7 insertions(+) diff --git a/changelog.txt b/changelog.txt index 6c71f63..cd40eca 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 3.0.1 +Date: ???? + Bugfixes: + - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 +--------------------------------------------------------------------------------------------------- Version: 3.0.0 Date: 2024-10-27 Bugfixes: diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 06b9c60..5329230 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -8,6 +8,8 @@ RECIPE("fawogae-spore"):set_fields{enabled = true}:remove_unlock("fawogae-mk01") RECIPE("fawogae-1"):set_fields{enabled = true}:remove_unlock("fawogae-mk01") +RECIPE("fawogae-with-manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae-mk01") + -- early fawogae recipe RECIPE { type = "recipe", From 66b7a474db78d401a39437c43b6de1952e2ca67e Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 26 Oct 2024 22:04:23 -0700 Subject: [PATCH 059/110] reduce compost plant cost --- changelog.txt | 2 ++ prototypes/buildings/compost-plant-mk00.lua | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/changelog.txt b/changelog.txt index cd40eca..560c6e8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,8 @@ Version: 3.0.1 Date: ???? Bugfixes: - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 + Changes: + - Reduced construction cost of steampowered compost plant --------------------------------------------------------------------------------------------------- Version: 3.0.0 Date: 2024-10-27 diff --git a/prototypes/buildings/compost-plant-mk00.lua b/prototypes/buildings/compost-plant-mk00.lua index cec9e99..89c3f3c 100644 --- a/prototypes/buildings/compost-plant-mk00.lua +++ b/prototypes/buildings/compost-plant-mk00.lua @@ -4,9 +4,10 @@ RECIPE { energy_required = 0.5, enabled = false, ingredients = { - {"boiler", 10}, - {"steel-plate", 50}, - {"iron-gear-wheel", 50}, + {"boiler", 2}, + {"steel-plate", 20}, + {"iron-gear-wheel", 10}, + {"steam-engine", 2}, }, results = { {"compost-plant-mk00", 1} From 922c5b1879eda0608a0a2f0acfb31ee0a9b92762 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 26 Oct 2024 22:04:47 -0700 Subject: [PATCH 060/110] reduce copper cost for auto sci --- changelog.txt | 1 + data-updates.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 560c6e8..5ae2a83 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,6 +5,7 @@ Date: ???? - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 Changes: - Reduced construction cost of steampowered compost plant + - Reduced cost of automation science pack technology --------------------------------------------------------------------------------------------------- Version: 3.0.0 Date: 2024-10-27 diff --git a/data-updates.lua b/data-updates.lua index 89e3de4..97e5450 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -286,7 +286,7 @@ RECIPE("copper-plate"):add_unlock("ash-separation"):set_fields{enabled = false} RECIPE("inductor1"):add_unlock("ash-separation"):set_fields{enabled = false} -- set automation science pack to require 50 copper plates cause you gonna need them -TECHNOLOGY("automation-science-pack"):set_fields{research_trigger = { type = "craft-item", item = "copper-plate", count = 50 }}:set_fields{prerequisites = {"ash-separation"}} +TECHNOLOGY("automation-science-pack"):set_fields{research_trigger = { type = "craft-item", item = "copper-plate", count = 10 }}:set_fields{prerequisites = {"ash-separation"}} -- burner/steam mk00 recipe adjustments RECIPE("wpu"):add_ingredient("inductor1", 12):add_ingredient("burner-wpu", 1):add_unlock("wood-processing"):set_fields{enabled = false} From f387756e94d2fc72bb8e56ff261defe72a3dffc3 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 26 Oct 2024 22:05:51 -0700 Subject: [PATCH 061/110] increase fish farm cost --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 33 ++-------------------- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/changelog.txt b/changelog.txt index 5ae2a83..3317d39 100644 --- a/changelog.txt +++ b/changelog.txt @@ -6,6 +6,7 @@ Date: ???? Changes: - Reduced construction cost of steampowered compost plant - Reduced cost of automation science pack technology + - Increased construction cost of fish farm mk01 --------------------------------------------------------------------------------------------------- Version: 3.0.0 Date: 2024-10-27 diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 5329230..96d0e7b 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -132,7 +132,7 @@ TECHNOLOGY("tin-mk01"):remove_pack("py-science-pack-1") TECHNOLOGY("microbiology-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} -RECIPE("fish-farm-mk01"):set_fields{ingredients = {}}:add_ingredient({type = "item", name = "steel-plate", amount = 25}):add_ingredient({type = "item", name = "glass", amount = 20}):add_ingredient("seaweed-crop-mk01") +RECIPE("fish-farm-mk01"):set_fields{ingredients = {}}:add_ingredient({type = "item", name = "steel-plate", amount = 25}):add_ingredient({type = "item", name = "glass", amount = 20}):add_ingredient("seaweed-crop-mk01"):add_ingredient("pump") RECIPE("fish-to-tin"):remove_unlock("molecular-decohesion-mk02"):add_unlock("mining-with-fluid"):set_fields{ignore_in_pypp = false} @@ -142,39 +142,10 @@ RECIPE("saline-water"):remove_unlock("vacuum-tube-electronics"):add_unlock("fish RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen"):set_fields{results = {{type = "item", name = "fish", amount = 15}, {type = "fluid", name = "waste-water", amount = 100}}} --- RECIPE{ --- name = "breed-fish-simple", --- type = "recipe", --- category = "fish-farm", --- enabled = false, --- energy_required = 270, --- ingredients = { --- { type = "item", name = "fish-egg", amount = 10 }, --- { type = "fluid", name = "water-saline", amount = 100 }, --- }, --- results = { --- { type = "item", name = "fish", amount = 12 }, --- { type = "fluid", name = "waste-water", amount = 100 }, --- }, --- main_product = "fish", --- subgroup = "py-alienlife-fish", --- order = "b", --- allowed_module_categories = { "fish" } --- }:add_unlock("fish-mk01") - local breed_fish = table.deepcopy(data.raw["recipe"]["breed-fish-1"]) breed_fish.name = "breed-fish-simple" data.raw.recipe["breed-fish-simple"] = breed_fish --- table.insert(data.raw.module["fish"].limitation, "breed-fish-simple") --- table.insert(data.raw.module["fish-mk02"].limitation, "breed-fish-simple") --- table.insert(data.raw.module["fish-mk03"].limitation, "breed-fish-simple") --- table.insert(data.raw.module["fish-mk04"].limitation, "breed-fish-simple") --- table.insert(data.raw.module["effectivity-module"].limitation_blacklist, "breed-fish-simple") --- table.insert(data.raw.module["effectivity-module-2"].limitation_blacklist, "breed-fish-simple") --- table.insert(data.raw.module["effectivity-module-3"].limitation_blacklist, "breed-fish-simple") --- table.insert(data.raw.module["speed-module"].limitation_blacklist, "breed-fish-simple") --- table.insert(data.raw.module["speed-module-2"].limitation_blacklist, "breed-fish-simple") --- table.insert(data.raw.module["speed-module-3"].limitation_blacklist, "breed-fish-simple") + RECIPE("breed-fish-simple"):remove_ingredient("small-lamp"):add_unlock("fish-mk01"):set_fields{energy_required = 270, results = {{type = "item", name = "fish", amount = 12}, {type = "fluid", name = "waste-water", amount = 100}}} RECIPE("plankton-farm"):remove_ingredient("storage-tank"):remove_ingredient("electronic-circuit") From bb109b0ce31d71e94aad970c2da9a8809a5774f0 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 26 Oct 2024 22:06:38 -0700 Subject: [PATCH 062/110] increase seaweed crop cost --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 3317d39..6ae5358 100644 --- a/changelog.txt +++ b/changelog.txt @@ -7,6 +7,7 @@ Date: ???? - Reduced construction cost of steampowered compost plant - Reduced cost of automation science pack technology - Increased construction cost of fish farm mk01 + - Increased construction cost of seaweed crop facility mk01 --------------------------------------------------------------------------------------------------- Version: 3.0.0 Date: 2024-10-27 diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 96d0e7b..7b8894c 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -63,7 +63,7 @@ data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} -- seaweed -RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate"):remove_ingredient("limestone") +RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate") -- botanical nursery RECIPE("botanical-nursery"):remove_ingredient("fluid-drill-mk01") From c132d89a58d1401ed963bcbea796998c2e3c9781 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 16:39:51 -0700 Subject: [PATCH 063/110] cultivation locale and sap extraction time --- changelog.txt | 2 ++ prototypes/recipes/recipes.lua | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/changelog.txt b/changelog.txt index 6ae5358..04e8156 100644 --- a/changelog.txt +++ b/changelog.txt @@ -4,6 +4,8 @@ Date: ???? Bugfixes: - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 Changes: + - Added locale names for sap extraction, moss cultivation, and native flora cultivation + - Decreased sap extraction time from 160s to 80s - Reduced construction cost of steampowered compost plant - Reduced cost of automation science pack technology - Increased construction cost of fish farm mk01 diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index bbd254e..e49fed3 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -78,7 +78,7 @@ RECIPE { { type = "fluid", name = "dirty-water-light", amount = 1200 }, { type = "item", name = "moss", amount = 1, probability = 0.08 }, }, - main_product = "moss" + main_product = "" }:add_unlock("moss-mk01") -- bootstrapping wood to sap @@ -88,7 +88,7 @@ RECIPE { category = "fwf", subgroup = "py-alienlife-sap", enabled = true, - energy_required = 160, + energy_required = 80, ingredients = { { type = "item", name = "wood-seedling", amount = 12 }, { type = "fluid", name = "water", amount = 800 }, @@ -97,7 +97,7 @@ RECIPE { { type = "item", name = "saps", amount = 1, probability = 0.1 }, { type = "item", name = "log", amount = 8 } }, - main_product = "saps" + main_product = "" }:add_unlock("wood-processing") -- native flora recipes @@ -116,6 +116,7 @@ RECIPE { results = { { type = "item", name = "native-flora", amount = 1, probability = 0.02 } }, + main_product = "" }:add_unlock("automation-science-pack") RECIPE { From dea6387dff24f50c9cdb6777612caf05cbd3bb1a Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 16:40:12 -0700 Subject: [PATCH 064/110] increase starting logs --- changelog.txt | 1 + control.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 04e8156..261fe34 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,7 @@ Version: 3.0.1 Date: ???? Bugfixes: - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 + - Increased log count in starting inventory Changes: - Added locale names for sap extraction, moss cultivation, and native flora cultivation - Decreased sap extraction time from 160s to 80s diff --git a/control.lua b/control.lua index 1f4ed86..8f4dab4 100644 --- a/control.lua +++ b/control.lua @@ -4,7 +4,7 @@ if not script.active_mods['pylandblock'] then local created_items = remote.call('freeplay', 'get_created_items') created_items['landfill'] = 1000 created_items['stone'] = 250 - created_items['log'] = 100 + created_items['log'] = 200 created_items["iron-plate"] = 1000 created_items["copper-plate"] = 500 created_items["transport-belt"] = 100 From 1f91940288002ed77220faa358242dfd87be13ec Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 16:40:31 -0700 Subject: [PATCH 065/110] increment version --- info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/info.json b/info.json index 763e4ca..0f6492b 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "PyBlock", - "version": "3.0.0", + "version": "3.0.1", "factorio_version": "2.0", "title": "PyBlock", "author": "KingArthur", From e8583f61eaad39fb50f485d1f410d5b0a6979478 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 16:40:45 -0700 Subject: [PATCH 066/110] cultivation locale forgot it --- locale/en/locale.cfg | 2 ++ 1 file changed, 2 insertions(+) diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 7271f60..5acc1f7 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -62,6 +62,8 @@ tributyl-phosphate=Tributyl Phosphate ree-from-ash=Rare Earth Elements from Ash flora-cultivation=Native Flora Cultivation synthesize-flora=Native Flora Synthesization +moss-cultivation=Moss Cultivation +sap-cultivation=Sap Extraction [entity-name] driftwood=Driftwood From 1878d45edf2689d0a2da2a9d84eae331eaf64ff7 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 16:41:50 -0700 Subject: [PATCH 067/110] fixed pipe connection alignment --- changelog.txt | 1 + prototypes/buildings/atomizer-mk00.lua | 8 +- prototypes/buildings/basic-ddc.lua | 8 +- .../buildings/burner-soil-extractor.lua | 8 +- prototypes/buildings/cultivator.lua | 166 +++++++++--------- 5 files changed, 96 insertions(+), 95 deletions(-) diff --git a/changelog.txt b/changelog.txt index 261fe34..81bb0bb 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,7 @@ Version: 3.0.1 Date: ???? Bugfixes: - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 + - Fixed pipe connections on multiple entites not being properly aligned - Increased log count in starting inventory Changes: - Added locale names for sap extraction, moss cultivation, and native flora cultivation diff --git a/prototypes/buildings/atomizer-mk00.lua b/prototypes/buildings/atomizer-mk00.lua index 9c5dd36..eaabb2a 100644 --- a/prototypes/buildings/atomizer-mk00.lua +++ b/prototypes/buildings/atomizer-mk00.lua @@ -106,28 +106,28 @@ ENTITY { pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), pipe_covers = py.pipe_covers(false, true, true, true), volume = 10, - pipe_connections = {{ flow_direction = "input", position = {1.0, -3.3}, direction = 0 }} + pipe_connections = {{ flow_direction = "input", position = {1, -3}, direction = 0 }} }, { production_type = "input", pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), pipe_covers = py.pipe_covers(false, true, true, true), volume = 10, - pipe_connections = {{ flow_direction = "input", position = {-1.0, 3.3}, direction = 8 }} + pipe_connections = {{ flow_direction = "input", position = {-1, 3}, direction = 8 }} }, { production_type = "output", pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), pipe_covers = py.pipe_covers(false, true, true, true), volume = 1, - pipe_connections = {{ flow_direction = "input", position = {1.0, 3.3}, direction = 8 }} + pipe_connections = {{ flow_direction = "input", position = {1, 3}, direction = 8 }} }, { production_type = "output", pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), pipe_covers = py.pipe_covers(false, true, true, true), volume = 1, - pipe_connections = {{ flow_direction = "input", position = {-1.0, -3.3}, direction = 0 }} + pipe_connections = {{ flow_direction = "input", position = {-1, -3}, direction = 0 }} } }, fluid_boxes_off_when_no_fluid_recipe = true, diff --git a/prototypes/buildings/basic-ddc.lua b/prototypes/buildings/basic-ddc.lua index ec5c42a..dff5fa6 100644 --- a/prototypes/buildings/basic-ddc.lua +++ b/prototypes/buildings/basic-ddc.lua @@ -103,8 +103,8 @@ ENTITY { volume = 1, pipe_covers = pipecoverspictures(), pipe_connections = { - { flow_direction = "output", position = {-1, -1.2}, direction = 0 }, - { flow_direction = "output", position = {-1.2, -1}, direction = 12 } + { flow_direction = "output", position = {-1, -1}, direction = 0 }, + { flow_direction = "output", position = {-1, -1}, direction = 12 } } }, { @@ -112,8 +112,8 @@ ENTITY { volume = 1, pipe_covers = pipecoverspictures(), pipe_connections = { - { flow_direction = "output", position = {1.2, 1}, direction = 4 }, - { flow_direction = "output", position = {1, 1.2}, direction = 8 } + { flow_direction = "output", position = {1, 1}, direction = 4 }, + { flow_direction = "output", position = {1, 1}, direction = 8 } } } }, diff --git a/prototypes/buildings/burner-soil-extractor.lua b/prototypes/buildings/burner-soil-extractor.lua index ade0c5a..6ef4b2a 100644 --- a/prototypes/buildings/burner-soil-extractor.lua +++ b/prototypes/buildings/burner-soil-extractor.lua @@ -68,8 +68,8 @@ ENTITY { } }), pipe_connections = { - { flow_direction = "input-output", position = {0, 3.398}, direction = 8 }, - { flow_direction = "input-output", position = {0, -3.398}, direction = 0 }, + { flow_direction = "input-output", position = {0, 3}, direction = 8 }, + { flow_direction = "input-output", position = {0, -3}, direction = 0 }, }, production_type = "input-output", filter = "steam", @@ -108,8 +108,8 @@ ENTITY { }), volume = 20, pipe_connections = { - { flow_direction = "input-output", position = {3.398, 0}, direction = 4 }, - { flow_direction = "input-output", position = {-3.398, 0}, direction = 12 }, + { flow_direction = "input-output", position = {3, 0}, direction = 4 }, + { flow_direction = "input-output", position = {-3, 0}, direction = 12 }, } } }, diff --git a/prototypes/buildings/cultivator.lua b/prototypes/buildings/cultivator.lua index 0800bb0..813ac4e 100644 --- a/prototypes/buildings/cultivator.lua +++ b/prototypes/buildings/cultivator.lua @@ -128,10 +128,10 @@ for i = 1, 4 do pipe_covers = py.pipe_covers(true, true, true, true), volume = 10, pipe_connections = { - { position = {0, -3.398}, flow_direction = "input", direction = 0 }, - { position = {3.398, 0}, flow_direction = "input", direction = 4 }, - { position = {0, 3.398}, flow_direction = "input", direction = 8 }, - { position = {-3.398, 0}, flow_direction = "input", direction = 12 }, + { position = {0, -3}, flow_direction = "input", direction = 0 }, + { position = {3, 0}, flow_direction = "input", direction = 4 }, + { position = {0, 3}, flow_direction = "input", direction = 8 }, + { position = {-3, 0}, flow_direction = "input", direction = 12 }, } } }, @@ -154,7 +154,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-93, -112), position = {3840, 800} }, @@ -166,7 +166,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-61, -112), position = {1408, 800} }, @@ -178,7 +178,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-29, -112), position = {3008, 800} }, @@ -190,7 +190,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(3, -112), position = {896, 800} }, @@ -202,7 +202,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(35, -112), position = {3584, 800} }, @@ -214,7 +214,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(67, -112), position = {2624, 800} }, @@ -226,7 +226,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(99, -112), position = {1344, 800} }, @@ -238,7 +238,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-93, -80), position = {1536, 800} }, @@ -250,7 +250,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-61, -80), position = {2944, 640} }, @@ -262,7 +262,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-29, -80), position = {1536, 640} }, @@ -274,7 +274,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(3, -80), position = {2688, 560} }, @@ -286,7 +286,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(35, -80), position = {896, 640} }, @@ -298,7 +298,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(67, -80), position = {2432, 560} }, @@ -310,7 +310,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(99, -80), position = {256, 800} }, @@ -322,7 +322,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-93, -48), position = {2240, 800} }, @@ -334,7 +334,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-61, -48), position = {3776, 640} }, @@ -346,7 +346,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-29, -48), position = {1408, 400} }, @@ -358,7 +358,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(3, -48), position = {1600, 480} }, @@ -370,7 +370,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(35, -48), position = {1152, 320} }, @@ -382,7 +382,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(67, -48), position = {0, 640} }, @@ -394,7 +394,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(99, -48), position = {3264, 800} }, @@ -406,7 +406,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-93, -16), position = {640, 720} }, @@ -418,7 +418,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-61, -16), position = {1664, 560} }, @@ -430,7 +430,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-29, -16), position = {3328, 320} }, @@ -442,7 +442,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(3, -16), position = {3712, 480} }, @@ -454,7 +454,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(35, -16), position = {3968, 400} }, @@ -466,7 +466,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(67, -16), position = {2944, 480} }, @@ -478,7 +478,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(99, -16), position = {1472, 800} }, @@ -490,7 +490,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-93, 16), position = {896, 720} }, @@ -502,7 +502,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-61, 16), position = {576, 640} }, @@ -514,7 +514,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-29, 16), position = {3840, 480} }, @@ -526,7 +526,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(3, 16), position = {2880, 480} }, @@ -538,7 +538,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(35, 16), position = {3328, 400} }, @@ -550,7 +550,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(67, 16), position = {3584, 560} }, @@ -562,7 +562,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(99, 16), position = {3456, 800} }, @@ -574,7 +574,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-93, 48), position = {2176, 800} }, @@ -586,7 +586,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-61, 48), position = {1024, 640} }, @@ -598,7 +598,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-29, 48), position = {1856, 640} }, @@ -610,7 +610,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(3, 48), position = {2496, 640} }, @@ -622,7 +622,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(35, 48), position = {3328, 480} }, @@ -634,7 +634,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(67, 48), position = {2752, 560} }, @@ -646,7 +646,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(99, 48), position = {768, 800} }, @@ -658,7 +658,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-93, 80), position = {2304, 800} }, @@ -670,7 +670,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-61, 80), position = {1344, 800} }, @@ -682,7 +682,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-29, 80), position = {2112, 800} }, @@ -694,7 +694,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(3, 80), position = {2432, 800} }, @@ -706,7 +706,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(35, 80), position = {1600, 800} }, @@ -718,7 +718,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(67, 80), position = {128, 800} }, @@ -730,7 +730,7 @@ for i = 1, 4 do height = 80, frame_count = 1, repeat_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(99, 80), position = {3584, 800} }, @@ -780,7 +780,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-96, 0) }, { @@ -789,7 +789,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-64, 0) }, { @@ -798,7 +798,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-32, 0) }, { @@ -807,7 +807,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(0, 0) }, { @@ -816,7 +816,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(32, 0) }, { @@ -825,7 +825,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(64, 0) }, { @@ -834,7 +834,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(96, 0) }, { @@ -843,7 +843,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(128, 0) }, --MASKS @@ -853,7 +853,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(-96, 0) }, @@ -863,7 +863,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(-64, 0) }, @@ -873,7 +873,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(-32, 0) }, @@ -883,7 +883,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(0, 0) }, @@ -893,7 +893,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(32, 0) }, @@ -903,7 +903,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(64, 0) }, @@ -913,7 +913,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(96, 0) }, @@ -969,7 +969,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-96, 0) }, { @@ -978,7 +978,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-64, 0) }, { @@ -987,7 +987,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(-32, 0) }, { @@ -996,7 +996,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(0, 0) }, { @@ -1005,7 +1005,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(32, 0) }, { @@ -1014,7 +1014,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(64, 0) }, { @@ -1023,7 +1023,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(96, 0) }, { @@ -1032,7 +1032,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, shift = util.by_pixel(128, 0) }, --MASKS @@ -1042,7 +1042,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(-96, 0) }, @@ -1052,7 +1052,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(-64, 0) }, @@ -1062,7 +1062,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(-32, 0) }, @@ -1072,7 +1072,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(0, 0) }, @@ -1082,7 +1082,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(32, 0) }, @@ -1092,7 +1092,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(64, 0) }, @@ -1102,7 +1102,7 @@ for i = 1, 4 do height = 288, line_length = 64, frame_count = 255, - animation_speed = 0.2, + animation_speed = 0.4, tint = py.tints[i], shift = util.by_pixel(96, 0) } From 72f8fed51a9fb8b1dc9abe80fcce22c97c562fc3 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 16:44:40 -0700 Subject: [PATCH 068/110] remove intermetallics from phytoplankton and move waste water void to electrolysis --- changelog.txt | 2 ++ prototypes/updates/pyalienlife-updates.lua | 2 ++ 2 files changed, 4 insertions(+) diff --git a/changelog.txt b/changelog.txt index 81bb0bb..38a59ff 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,7 +5,9 @@ Date: ???? - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 - Fixed pipe connections on multiple entites not being properly aligned - Increased log count in starting inventory + - Removed intermetallics from pyhtoplankton farm Changes: + - Moved waste-water voiding recipe to electrolysis - Added locale names for sap extraction, moss cultivation, and native flora cultivation - Decreased sap extraction time from 160s to 80s - Reduced construction cost of steampowered compost plant diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 7b8894c..1d1901a 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -131,6 +131,8 @@ TECHNOLOGY("fish-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisite TECHNOLOGY("tin-mk01"):remove_pack("py-science-pack-1") TECHNOLOGY("microbiology-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} +RECIPE("plankton-farm"):remove_ingredient("intermetallics") +RECIPE("waste-water-void"):remove_unlock("fish-mk01"):add_unlock("electrolysis") RECIPE("fish-farm-mk01"):set_fields{ingredients = {}}:add_ingredient({type = "item", name = "steel-plate", amount = 25}):add_ingredient({type = "item", name = "glass", amount = 20}):add_ingredient("seaweed-crop-mk01"):add_ingredient("pump") From 4286e43ca1d192ae20bcff58960977cd07ad15a9 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 17:49:56 -0700 Subject: [PATCH 069/110] increased fluidbox sizes and actually made sprites grey --- changelog.txt | 2 ++ prototypes/buildings/atomizer-mk00.lua | 10 +++--- .../buildings/automated-screener-mk00.lua | 6 ++-- prototypes/buildings/basic-ddc.lua | 4 +-- .../buildings/burner-soil-extractor.lua | 32 +++++++++++++------ prototypes/buildings/burner-washer.lua | 3 +- prototypes/buildings/burner-wpu.lua | 28 +++++++++++++--- prototypes/buildings/compost-plant-mk00.lua | 14 ++++---- prototypes/buildings/cultivator.lua | 2 +- .../buildings/geothermal-plant-mk01.lua | 4 +-- 10 files changed, 71 insertions(+), 34 deletions(-) diff --git a/changelog.txt b/changelog.txt index 38a59ff..608a31c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -14,6 +14,8 @@ Date: ???? - Reduced cost of automation science pack technology - Increased construction cost of fish farm mk01 - Increased construction cost of seaweed crop facility mk01 + - Increased fluidbox sizes + - Correct entity color masks --------------------------------------------------------------------------------------------------- Version: 3.0.0 Date: 2024-10-27 diff --git a/prototypes/buildings/atomizer-mk00.lua b/prototypes/buildings/atomizer-mk00.lua index eaabb2a..ee1397a 100644 --- a/prototypes/buildings/atomizer-mk00.lua +++ b/prototypes/buildings/atomizer-mk00.lua @@ -95,7 +95,7 @@ ENTITY { frame_count = 1, --animation_speed = 2, shift = util.by_pixel(16, -16), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} }, } }, @@ -105,28 +105,28 @@ ENTITY { production_type = "input", pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), pipe_covers = py.pipe_covers(false, true, true, true), - volume = 10, + volume = 100, pipe_connections = {{ flow_direction = "input", position = {1, -3}, direction = 0 }} }, { production_type = "input", pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), pipe_covers = py.pipe_covers(false, true, true, true), - volume = 10, + volume = 100, pipe_connections = {{ flow_direction = "input", position = {-1, 3}, direction = 8 }} }, { production_type = "output", pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), pipe_covers = py.pipe_covers(false, true, true, true), - volume = 1, + volume = 100, pipe_connections = {{ flow_direction = "input", position = {1, 3}, direction = 8 }} }, { production_type = "output", pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {0.0, -0.96}, nil, nil), pipe_covers = py.pipe_covers(false, true, true, true), - volume = 1, + volume = 100, pipe_connections = {{ flow_direction = "input", position = {-1, -3}, direction = 0 }} } }, diff --git a/prototypes/buildings/automated-screener-mk00.lua b/prototypes/buildings/automated-screener-mk00.lua index c96f7ec..6e8fe3f 100644 --- a/prototypes/buildings/automated-screener-mk00.lua +++ b/prototypes/buildings/automated-screener-mk00.lua @@ -75,7 +75,7 @@ ENTITY { frame_count = 150, animation_speed = 0.4, shift = {-2.032, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} }, { filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/mid.png", @@ -94,7 +94,7 @@ ENTITY { frame_count = 150, animation_speed = 0.4, shift = {0.968, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} }, { filename = "__pyfusionenergygraphics__/graphics/entity/automated-screener/right.png", @@ -113,7 +113,7 @@ ENTITY { frame_count = 150, animation_speed = 0.4, shift = {3.032, -0.5}, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} } } }, diff --git a/prototypes/buildings/basic-ddc.lua b/prototypes/buildings/basic-ddc.lua index dff5fa6..2c8e7fb 100644 --- a/prototypes/buildings/basic-ddc.lua +++ b/prototypes/buildings/basic-ddc.lua @@ -100,7 +100,7 @@ ENTITY { fluid_boxes = { { production_type = "output", - volume = 1, + volume = 100, pipe_covers = pipecoverspictures(), pipe_connections = { { flow_direction = "output", position = {-1, -1}, direction = 0 }, @@ -109,7 +109,7 @@ ENTITY { }, { production_type = "output", - volume = 1, + volume = 100, pipe_covers = pipecoverspictures(), pipe_connections = { { flow_direction = "output", position = {1, 1}, direction = 4 }, diff --git a/prototypes/buildings/burner-soil-extractor.lua b/prototypes/buildings/burner-soil-extractor.lua index 6ef4b2a..d28a86d 100644 --- a/prototypes/buildings/burner-soil-extractor.lua +++ b/prototypes/buildings/burner-soil-extractor.lua @@ -51,7 +51,7 @@ ENTITY { effectivity = 1, emissions = 1, fluid_box = { - volume = 2, + volume = 200, pipe_covers = py.pipe_covers(true, true, true, true), pipe_picture = py.pipe_pictures("assembling-machine-3", {0, 1}, {0, -1}, nil, nil, { north = { @@ -79,13 +79,27 @@ ENTITY { energy_usage = "200kW", graphics_set = { animation = { - filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractor/soil-extractor.png", - width = 235, - height = 266, - frame_count = 30, - line_length = 6, - animation_speed = 0.8, - shift = {0.16, -0.609} + layers = { + { + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractor/soil-extractor.png", + width = 235, + height = 266, + frame_count = 30, + line_length = 6, + animation_speed = 0.8, + shift = {0.16, -0.609} + }, + { + filename = "__pycoalprocessinggraphics__/graphics/entity/soil-extractor/soil-extractor-mask.png", + width = 235, + height = 266, + frame_count = 30, + line_length = 6, + animation_speed = 0.8, + shift = {0.16, -0.609}, + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} + } + } }, }, fluid_boxes = { @@ -106,7 +120,7 @@ ENTITY { height = 45 } }), - volume = 20, + volume = 100, pipe_connections = { { flow_direction = "input-output", position = {3, 0}, direction = 4 }, { flow_direction = "input-output", position = {-3, 0}, direction = 12 }, diff --git a/prototypes/buildings/burner-washer.lua b/prototypes/buildings/burner-washer.lua index a56b429..3e91c6a 100644 --- a/prototypes/buildings/burner-washer.lua +++ b/prototypes/buildings/burner-washer.lua @@ -40,7 +40,7 @@ burner_washer.energy_source = { effectivity = 1, emissions = 1, fluid_box = { - volume = 2, + volume = 200, pipe_covers = pipecoverspictures(), pipe_connections = { { flow_direction = "input-output", position = {-2.797, 0.5}, direction = 12 }, @@ -53,6 +53,7 @@ burner_washer.energy_source = { } burner_washer.energy_usage = "100kW" burner_washer.next_upgrade = "washer" +burner_washer.graphics_set.animation.layers[2].tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} data.raw["assembling-machine"]["burner-washer"] = burner_washer -- ENTITY { diff --git a/prototypes/buildings/burner-wpu.lua b/prototypes/buildings/burner-wpu.lua index 99f24ff..67d92af 100644 --- a/prototypes/buildings/burner-wpu.lua +++ b/prototypes/buildings/burner-wpu.lua @@ -53,7 +53,7 @@ ENTITY { effectivity = 1, emissions = 1, fluid_box = { - volume = 2, + volume = 200, pipe_covers = pipecoverspictures(), pipe_connections = { { flow_direction = "input-output", position = {-2.8, 0.5}, direction = 12 }, @@ -75,7 +75,7 @@ ENTITY { line_length = 21, frame_count = 130, shift = {-1.5, -1.328}, - animation_speed = 0.4 + animation_speed = 0.42 }, { filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/right.png", @@ -84,8 +84,28 @@ ENTITY { line_length = 21, frame_count = 130, shift = {1.5, -1.328}, - animation_speed = 0.4 - } + animation_speed = 0.42 + }, + { + filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/left-mask.png", + width = 96, + height = 277, + line_length = 21, + frame_count = 130, + shift = {-1.5, -1.328}, + animation_speed = 0.42, + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} + }, + { + filename = "__pycoalprocessinggraphics__/graphics/entity/wpu/right-mask.png", + width = 96, + height = 277, + line_length = 21, + frame_count = 130, + shift = {1.5, -1.328}, + animation_speed = 0.42, + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} + }, } } }, diff --git a/prototypes/buildings/compost-plant-mk00.lua b/prototypes/buildings/compost-plant-mk00.lua index 89c3f3c..00072dc 100644 --- a/prototypes/buildings/compost-plant-mk00.lua +++ b/prototypes/buildings/compost-plant-mk00.lua @@ -54,7 +54,7 @@ ENTITY { effectivity = 1, emissions = 1, fluid_box = { - volume = 2, + volume = 200, pipe_covers = pipecoverspictures(), pipe_connections = { { flow_direction = "input-output", position = {-5.2,1}, direction = 12 }, @@ -93,7 +93,7 @@ ENTITY { frame_count = 1, line_length = 1, shift = util.by_pixel(16, -112), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} }, }, }, @@ -124,7 +124,7 @@ ENTITY { width = 64, height = 512, animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} } }, { @@ -153,7 +153,7 @@ ENTITY { width = 64, height = 512, animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} } }, { @@ -182,7 +182,7 @@ ENTITY { width = 64, height = 512, animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} } }, { @@ -211,7 +211,7 @@ ENTITY { width = 64, height = 512, animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} } }, { @@ -240,7 +240,7 @@ ENTITY { width = 64, height = 512, animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} } }, } diff --git a/prototypes/buildings/cultivator.lua b/prototypes/buildings/cultivator.lua index 813ac4e..0dd09f3 100644 --- a/prototypes/buildings/cultivator.lua +++ b/prototypes/buildings/cultivator.lua @@ -126,7 +126,7 @@ for i = 1, 4 do { production_type = "input", pipe_covers = py.pipe_covers(true, true, true, true), - volume = 10, + volume = 100, pipe_connections = { { position = {0, -3}, flow_direction = "input", direction = 0 }, { position = {3, 0}, flow_direction = "input", direction = 4 }, diff --git a/prototypes/buildings/geothermal-plant-mk01.lua b/prototypes/buildings/geothermal-plant-mk01.lua index 1a05ba8..1e049b6 100644 --- a/prototypes/buildings/geothermal-plant-mk01.lua +++ b/prototypes/buildings/geothermal-plant-mk01.lua @@ -21,14 +21,14 @@ ENTITY { production_type = "input", pipe_picture = py.pipe_pictures("assembling-machine-2", {1.17, 2.78}, {-0.05, -0.8}, nil, nil, pipes2), pipe_covers = py.pipe_covers(true, true, true, true), - volume = 10, + volume = 100, pipe_connections = {{ flow_direction = "input", position = {-5.2, 0}, direction = 12 }} }, { production_type = "output", pipe_covers = py.pipe_covers(true, true, true, true), pipe_picture = py.pipe_pictures("assembling-machine-2", nil, {-0.05, -0.8}, nil, nil, pipes), - volume = 1, + volume = 1000, pipe_connections = {{ flow_direction = 'output', position = {0, -5.2}, direction = 0 }} }, }, From a1f10243adb479128792424abefc2bb2971914d0 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 17:50:19 -0700 Subject: [PATCH 070/110] remove old cultivator files --- prototypes/buildings/cultivator-mk01.lua | 1082 --------------------- prototypes/buildings/cultivator-mk02.lua | 1085 ---------------------- prototypes/buildings/cultivator-mk03.lua | 1084 --------------------- prototypes/buildings/cultivator-mk04.lua | 1083 --------------------- 4 files changed, 4334 deletions(-) delete mode 100644 prototypes/buildings/cultivator-mk01.lua delete mode 100644 prototypes/buildings/cultivator-mk02.lua delete mode 100644 prototypes/buildings/cultivator-mk03.lua delete mode 100644 prototypes/buildings/cultivator-mk04.lua diff --git a/prototypes/buildings/cultivator-mk01.lua b/prototypes/buildings/cultivator-mk01.lua deleted file mode 100644 index b90ea04..0000000 --- a/prototypes/buildings/cultivator-mk01.lua +++ /dev/null @@ -1,1082 +0,0 @@ -RECIPE { - type = "recipe", - name = "cultivator-mk01", - energy_required = 0.5, - enabled = true, - ingredients = { - {type = "item", name = "burner-mining-drill", amount = 2}, - {type = "item", name = "iron-gear-wheel", amount = 10}, - {type = "item", name = "iron-plate", amount = 20}, - {type = "item", name = "steam-engine", amount = 1} - }, - results = { - {"cultivator-mk01", 1} - } -} - -ITEM { - type = "item", - name = "cultivator-mk01", - icons = { - { - icon = "__pyalienlifegraphics__/graphics/icons/collector.png", - icon_size = 64, - }, - { - icon = "__PyBlock__/graphics/icons/manual-gear.png", - icon_size = 32, - shift = {10, -10}, - scale = 0.5 - } - }, - flags = {}, - subgroup = "py-alienlife-buildings-mk01", - order = "x", - place_result = "cultivator-mk01", - stack_size = 10 -} - -ENTITY { - type = "assembling-machine", - name = "cultivator-mk01", - icons = { - { - icon = "__pyalienlifegraphics__/graphics/icons/collector.png", - icon_size = 64, - }, - { - icon = "__PyBlock__/graphics/icons/manual-gear.png", - icon_size = 32, - shift = {8, -8}, - scale = 0.5 - } - }, - icon_size = 64, - crafting_speed = 1, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "cultivator-mk01"}, - fast_replaceable_group = "cultivator", - max_health = 200, - crafting_categories = {"cultivation"}, - corpse = "big-remnants", - dying_explosion = "big-explosion", - collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, - selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, - match_animation_speed_to_activity = false, - fluid_boxes = { - { - direction = "input", - -- pipe_picture = { - -- north = { - -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height} - -- }, - -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east, - -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south, - -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west - -- }, - pipe_covers = py.pipe_covers(true, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = { - { position = {-4, 0}, type = 'input' }, - { position = {0, 4}, type = 'input' }, - { position = {4, 0}, type = 'input' }, - { position = {0, -4}, type = 'input' }, - }, - }, - -- { - -- direction = "output", - -- pipe_covers = py.pipe_covers(true, true, true, true), - -- pipe_picture = py.pipe_pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), - -- base_level = 1, - -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, - -- }, - }, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"consumption", "speed"}, - energy_source = { - type = "electric", - usage_priority = "secondary-input", - emissions_per_minute = 1, - }, - energy_usage = "80kW", - collision_mask = {layers = {item = true, object = true, water_tile = true}}, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, - idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, - apparent_volume = 2.5 - }, - next_upgrade = "cultivator-mk02", - animation = { - north = { - layers = { - { - -- count: 0, variation: 60, richness: 1 - -- max_x = 3811 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -112), - position = {3840, 800} - }, - { - -- count: 1, variation: 22, richness: 1 - -- max_x = 1411 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -112), - position = {1408, 800} - }, - { - -- count: 2, variation: 47, richness: 1 - -- max_x = 3043 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -112), - position = {3008, 800} - }, - { - -- count: 3, variation: 14, richness: 1 - -- max_x = 963 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -112), - position = {896, 800} - }, - { - -- count: 4, variation: 56, richness: 1 - -- max_x = 3683 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -112), - position = {3584, 800} - }, - { - -- count: 5, variation: 41, richness: 1 - -- max_x = 2755 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -112), - position = {2624, 800} - }, - { - -- count: 6, variation: 21, richness: 1 - -- max_x = 1507 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -112), - position = {1344, 800} - }, - { - -- count: 7, variation: 24, richness: 1 - -- max_x = 1507 max_y = 800 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -80), - position = {1536, 800} - }, - { - -- count: 8, variation: 46, richness: 3 - -- max_x = 2947 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -80), - position = {2944, 640} - }, - { - -- count: 9, variation: 24, richness: 3 - -- max_x = 1571 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -80), - position = {1536, 640} - }, - { - -- count: 10, variation: 42, richness: 4 - -- max_x = 2755 max_y = 560 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -80), - position = {2688, 560} - }, - { - -- count: 11, variation: 14, richness: 3 - -- max_x = 995 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -80), - position = {896, 640} - }, - { - -- count: 12, variation: 38, richness: 4 - -- max_x = 2563 max_y = 560 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -80), - position = {2432, 560} - }, - { - -- count: 13, variation: 4, richness: 1 - -- max_x = 419 max_y = 800 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -80), - position = {256, 800} - }, - { - -- count: 14, variation: 35, richness: 1 - -- max_x = 2211 max_y = 832 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -48), - position = {2240, 800} - }, - { - -- count: 15, variation: 59, richness: 3 - -- max_x = 3779 max_y = 672 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -48), - position = {3776, 640} - }, - { - -- count: 16, variation: 22, richness: 6 - -- max_x = 1443 max_y = 432 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -48), - position = {1408, 400} - }, - { - -- count: 17, variation: 25, richness: 5 - -- max_x = 1667 max_y = 512 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -48), - position = {1600, 480} - }, - { - -- count: 18, variation: 18, richness: 7 - -- max_x = 1251 max_y = 352 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -48), - position = {1152, 320} - }, - { - -- count: 19, variation: 0, richness: 3 - -- max_x = 131 max_y = 672 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -48), - position = {0, 640} - }, - { - -- count: 20, variation: 51, richness: 1 - -- max_x = 3427 max_y = 832 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -48), - position = {3264, 800} - }, - { - -- count: 21, variation: 10, richness: 2 - -- max_x = 611 max_y = 784 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -16), - position = {640, 720} - }, - { - -- count: 22, variation: 26, richness: 4 - -- max_x = 1667 max_y = 624 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -16), - position = {1664, 560} - }, - { - -- count: 23, variation: 52, richness: 7 - -- max_x = 3363 max_y = 384 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -16), - position = {3328, 320} - }, - { - -- count: 24, variation: 58, richness: 5 - -- max_x = 3779 max_y = 544 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -16), - position = {3712, 480} - }, - { - -- count: 25, variation: 62, richness: 6 - -- max_x = 4067 max_y = 464 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -16), - position = {3968, 400} - }, - { - -- count: 26, variation: 46, richness: 5 - -- max_x = 3075 max_y = 544 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -16), - position = {2944, 480} - }, - { - -- count: 27, variation: 23, richness: 1 - -- max_x = 1635 max_y = 864 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -16), - position = {1472, 800} - }, - { - -- count: 28, variation: 14, richness: 2 - -- max_x = 867 max_y = 816 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 16), - position = {896, 720} - }, - { - -- count: 29, variation: 9, richness: 3 - -- max_x = 579 max_y = 736 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 16), - position = {576, 640} - }, - { - -- count: 30, variation: 60, richness: 5 - -- max_x = 3875 max_y = 576 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 16), - position = {3840, 480} - }, - { - -- count: 31, variation: 45, richness: 5 - -- max_x = 2947 max_y = 576 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 16), - position = {2880, 480} - }, - { - -- count: 32, variation: 52, richness: 6 - -- max_x = 3427 max_y = 496 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 16), - position = {3328, 400} - }, - { - -- count: 33, variation: 56, richness: 4 - -- max_x = 3715 max_y = 656 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 16), - position = {3584, 560} - }, - { - -- count: 34, variation: 54, richness: 1 - -- max_x = 3619 max_y = 896 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 16), - position = {3456, 800} - }, - { - -- count: 35, variation: 34, richness: 1 - -- max_x = 2147 max_y = 928 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 48), - position = {2176, 800} - }, - { - -- count: 36, variation: 16, richness: 3 - -- max_x = 1027 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 48), - position = {1024, 640} - }, - { - -- count: 37, variation: 29, richness: 3 - -- max_x = 1891 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 48), - position = {1856, 640} - }, - { - -- count: 38, variation: 39, richness: 3 - -- max_x = 2563 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 48), - position = {2496, 640} - }, - { - -- count: 39, variation: 52, richness: 5 - -- max_x = 3427 max_y = 608 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 48), - position = {3328, 480} - }, - { - -- count: 40, variation: 43, richness: 4 - -- max_x = 2883 max_y = 688 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 48), - position = {2752, 560} - }, - { - -- count: 41, variation: 12, richness: 1 - -- max_x = 931 max_y = 928 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 48), - position = {768, 800} - }, - { - -- count: 42, variation: 36, richness: 1 - -- max_x = 2275 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 80), - position = {2304, 800} - }, - { - -- count: 43, variation: 21, richness: 1 - -- max_x = 1347 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 80), - position = {1344, 800} - }, - { - -- count: 44, variation: 33, richness: 1 - -- max_x = 2147 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 80), - position = {2112, 800} - }, - { - -- count: 45, variation: 38, richness: 1 - -- max_x = 2499 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 80), - position = {2432, 800} - }, - { - -- count: 46, variation: 25, richness: 1 - -- max_x = 1699 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 80), - position = {1600, 800} - }, - { - -- count: 47, variation: 2, richness: 1 - -- max_x = 259 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 80), - position = {128, 800} - }, - { - -- count: 48, variation: 56, richness: 1 - -- max_x = 3747 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 80), - position = {3584, 800} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, - -- position = {0, -256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, - -- position = {256, 0} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, - -- position = {0, 256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, - -- position = {-256, 0} - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(128, 0) - }, ---MASKS - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(96, 0) - }, - } - } - }, - idle_animation = { - north = { - layers = { - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, - -- position = {0, -256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, - -- position = {256, 0} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, - -- position = {0, 256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, - -- position = {-256, 0} - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(128, 0) - }, ---MASKS - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(96, 0) - }, - } - } - }, -} \ No newline at end of file diff --git a/prototypes/buildings/cultivator-mk02.lua b/prototypes/buildings/cultivator-mk02.lua deleted file mode 100644 index b3fdf9b..0000000 --- a/prototypes/buildings/cultivator-mk02.lua +++ /dev/null @@ -1,1085 +0,0 @@ -RECIPE { - type = "recipe", - name = "cultivator-mk02", - energy_required = 0.5, - ingredients = { - {"cultivator-mk01", 1}, - {"glass", 30}, - {"nexelit-plate", 15}, - {"duralumin", 10}, - {"advanced-circuit", 10}, - {"engine-unit", 1}, - {"latex", 10}, - {"neuroprocessor", 5}, - }, - results = { - {"cultivator-mk02", 1} - } -}:add_unlock("biotech-machines-mk02"):add_ingredient({type = "item", name = "small-parts-02", amount = 50}) - -ITEM { - type = "item", - name = "cultivator-mk02", - icons = { - { - icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk02.png", - icon_size = 64, - }, - { - icon = "__PyBlock__/graphics/icons/manual-gear.png", - icon_size = 32, - shift = {10, -10}, - scale = 0.5 - } - }, - flags = {}, - subgroup = "py-alienlife-buildings-mk02", - order = "x", - place_result = "cultivator-mk02", - stack_size = 10 -} - -ENTITY { - type = "assembling-machine", - name = "cultivator-mk02", - icons = { - { - icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk02.png", - icon_size = 64, - }, - { - icon = "__PyBlock__/graphics/icons/manual-gear.png", - icon_size = 32, - shift = {8, -8}, - scale = 0.5 - } - }, - icon_size = 64, - crafting_speed = 2, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "cultivator-mk02"}, - fast_replaceable_group = "cultivator", - max_health = 200, - crafting_categories = {"cultivation"}, - corpse = "big-remnants", - dying_explosion = "big-explosion", - collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, - selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, - match_animation_speed_to_activity = false, - fluid_boxes = { - { - production_type = "input", - -- pipe_picture = { - -- north = { - -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height} - -- }, - -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east, - -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south, - -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west - -- }, - pipe_covers = py.pipe_covers(true, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = { - { position = {-4, 0}, type = 'input' }, - { position = {0, 4}, type = 'input' }, - { position = {4, 0}, type = 'input' }, - { position = {0, -4}, type = 'input' }, - }, - }, - -- { - -- production_type = "output", - -- pipe_covers = py.pipe_covers(true, true, true, true), - -- pipe_picture = py.pipe_pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), - -- base_level = 1, - -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, - -- }, - }, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"consumption", "speed"}, - energy_source = { - type = "electric", - usage_priority = "secondary-input", - emissions_per_minute = 1, - }, - energy_usage = "250kW", - collision_mask = {layers = {item = true, object = true, water_tile = true}}, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, - idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, - apparent_volume = 2.5 - }, - next_upgrade = "cultivator-mk03", - animation = { - north = { - layers = { - { - -- count: 0, variation: 60, richness: 1 - -- max_x = 3811 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -112), - position = {3840, 800} - }, - { - -- count: 1, variation: 22, richness: 1 - -- max_x = 1411 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -112), - position = {1408, 800} - }, - { - -- count: 2, variation: 47, richness: 1 - -- max_x = 3043 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -112), - position = {3008, 800} - }, - { - -- count: 3, variation: 14, richness: 1 - -- max_x = 963 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -112), - position = {896, 800} - }, - { - -- count: 4, variation: 56, richness: 1 - -- max_x = 3683 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -112), - position = {3584, 800} - }, - { - -- count: 5, variation: 41, richness: 1 - -- max_x = 2755 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -112), - position = {2624, 800} - }, - { - -- count: 6, variation: 21, richness: 1 - -- max_x = 1507 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -112), - position = {1344, 800} - }, - { - -- count: 7, variation: 24, richness: 1 - -- max_x = 1507 max_y = 800 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -80), - position = {1536, 800} - }, - { - -- count: 8, variation: 46, richness: 3 - -- max_x = 2947 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -80), - position = {2944, 640} - }, - { - -- count: 9, variation: 24, richness: 3 - -- max_x = 1571 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -80), - position = {1536, 640} - }, - { - -- count: 10, variation: 42, richness: 4 - -- max_x = 2755 max_y = 560 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -80), - position = {2688, 560} - }, - { - -- count: 11, variation: 14, richness: 3 - -- max_x = 995 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -80), - position = {896, 640} - }, - { - -- count: 12, variation: 38, richness: 4 - -- max_x = 2563 max_y = 560 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -80), - position = {2432, 560} - }, - { - -- count: 13, variation: 4, richness: 1 - -- max_x = 419 max_y = 800 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -80), - position = {256, 800} - }, - { - -- count: 14, variation: 35, richness: 1 - -- max_x = 2211 max_y = 832 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -48), - position = {2240, 800} - }, - { - -- count: 15, variation: 59, richness: 3 - -- max_x = 3779 max_y = 672 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -48), - position = {3776, 640} - }, - { - -- count: 16, variation: 22, richness: 6 - -- max_x = 1443 max_y = 432 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -48), - position = {1408, 400} - }, - { - -- count: 17, variation: 25, richness: 5 - -- max_x = 1667 max_y = 512 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -48), - position = {1600, 480} - }, - { - -- count: 18, variation: 18, richness: 7 - -- max_x = 1251 max_y = 352 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -48), - position = {1152, 320} - }, - { - -- count: 19, variation: 0, richness: 3 - -- max_x = 131 max_y = 672 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -48), - position = {0, 640} - }, - { - -- count: 20, variation: 51, richness: 1 - -- max_x = 3427 max_y = 832 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -48), - position = {3264, 800} - }, - { - -- count: 21, variation: 10, richness: 2 - -- max_x = 611 max_y = 784 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -16), - position = {640, 720} - }, - { - -- count: 22, variation: 26, richness: 4 - -- max_x = 1667 max_y = 624 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -16), - position = {1664, 560} - }, - { - -- count: 23, variation: 52, richness: 7 - -- max_x = 3363 max_y = 384 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -16), - position = {3328, 320} - }, - { - -- count: 24, variation: 58, richness: 5 - -- max_x = 3779 max_y = 544 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -16), - position = {3712, 480} - }, - { - -- count: 25, variation: 62, richness: 6 - -- max_x = 4067 max_y = 464 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -16), - position = {3968, 400} - }, - { - -- count: 26, variation: 46, richness: 5 - -- max_x = 3075 max_y = 544 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -16), - position = {2944, 480} - }, - { - -- count: 27, variation: 23, richness: 1 - -- max_x = 1635 max_y = 864 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -16), - position = {1472, 800} - }, - { - -- count: 28, variation: 14, richness: 2 - -- max_x = 867 max_y = 816 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 16), - position = {896, 720} - }, - { - -- count: 29, variation: 9, richness: 3 - -- max_x = 579 max_y = 736 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 16), - position = {576, 640} - }, - { - -- count: 30, variation: 60, richness: 5 - -- max_x = 3875 max_y = 576 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 16), - position = {3840, 480} - }, - { - -- count: 31, variation: 45, richness: 5 - -- max_x = 2947 max_y = 576 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 16), - position = {2880, 480} - }, - { - -- count: 32, variation: 52, richness: 6 - -- max_x = 3427 max_y = 496 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 16), - position = {3328, 400} - }, - { - -- count: 33, variation: 56, richness: 4 - -- max_x = 3715 max_y = 656 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 16), - position = {3584, 560} - }, - { - -- count: 34, variation: 54, richness: 1 - -- max_x = 3619 max_y = 896 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 16), - position = {3456, 800} - }, - { - -- count: 35, variation: 34, richness: 1 - -- max_x = 2147 max_y = 928 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 48), - position = {2176, 800} - }, - { - -- count: 36, variation: 16, richness: 3 - -- max_x = 1027 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 48), - position = {1024, 640} - }, - { - -- count: 37, variation: 29, richness: 3 - -- max_x = 1891 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 48), - position = {1856, 640} - }, - { - -- count: 38, variation: 39, richness: 3 - -- max_x = 2563 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 48), - position = {2496, 640} - }, - { - -- count: 39, variation: 52, richness: 5 - -- max_x = 3427 max_y = 608 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 48), - position = {3328, 480} - }, - { - -- count: 40, variation: 43, richness: 4 - -- max_x = 2883 max_y = 688 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 48), - position = {2752, 560} - }, - { - -- count: 41, variation: 12, richness: 1 - -- max_x = 931 max_y = 928 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 48), - position = {768, 800} - }, - { - -- count: 42, variation: 36, richness: 1 - -- max_x = 2275 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 80), - position = {2304, 800} - }, - { - -- count: 43, variation: 21, richness: 1 - -- max_x = 1347 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 80), - position = {1344, 800} - }, - { - -- count: 44, variation: 33, richness: 1 - -- max_x = 2147 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 80), - position = {2112, 800} - }, - { - -- count: 45, variation: 38, richness: 1 - -- max_x = 2499 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 80), - position = {2432, 800} - }, - { - -- count: 46, variation: 25, richness: 1 - -- max_x = 1699 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 80), - position = {1600, 800} - }, - { - -- count: 47, variation: 2, richness: 1 - -- max_x = 259 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 80), - position = {128, 800} - }, - { - -- count: 48, variation: 56, richness: 1 - -- max_x = 3747 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 80), - position = {3584, 800} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, - -- position = {0, -256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, - -- position = {256, 0} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, - -- position = {0, 256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, - -- position = {-256, 0} - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(128, 0) - }, ---MASKS - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(96, 0) - }, - } - } - }, - idle_animation = { - north = { - layers = { - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, - -- position = {0, -256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, - -- position = {256, 0} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, - -- position = {0, 256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, - -- position = {-256, 0} - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(128, 0) - }, ---MASKS - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 0.0, a = 1.0}, - shift = util.by_pixel(96, 0) - }, - } - } - }, -} \ No newline at end of file diff --git a/prototypes/buildings/cultivator-mk03.lua b/prototypes/buildings/cultivator-mk03.lua deleted file mode 100644 index 046561c..0000000 --- a/prototypes/buildings/cultivator-mk03.lua +++ /dev/null @@ -1,1084 +0,0 @@ -RECIPE { - type = "recipe", - name = "cultivator-mk03", - energy_required = 0.5, - ingredients = { - {"cultivator-mk02", 1}, - {"ticocr-alloy", 20}, - {"low-density-structure", 20}, - {"stainless-steel", 30}, - {"processing-unit", 30}, - {"electric-engine-unit", 15}, - {"super-alloy", 30}, - }, - results = { - {"cultivator-mk03", 1} - } -}:add_unlock("biotech-machines-mk03"):add_ingredient({type = "item", name = "small-parts-03", amount = 50}) - -ITEM { - type = "item", - name = "cultivator-mk03", - icons = { - { - icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk03.png", - icon_size = 64, - }, - { - icon = "__PyBlock__/graphics/icons/manual-gear.png", - icon_size = 32, - shift = {10, -10}, - scale = 0.5 - } - }, - flags = {}, - subgroup = "py-alienlife-buildings-mk03", - order = "x", - place_result = "cultivator-mk03", - stack_size = 10 -} - -ENTITY { - type = "assembling-machine", - name = "cultivator-mk03", - icons = { - { - icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk03.png", - icon_size = 64, - }, - { - icon = "__PyBlock__/graphics/icons/manual-gear.png", - icon_size = 32, - shift = {8, -8}, - scale = 0.5 - } - }, - icon_size = 64, - crafting_speed = 3, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "cultivator-mk03"}, - fast_replaceable_group = "cultivator", - max_health = 200, - crafting_categories = {"cultivation"}, - corpse = "big-remnants", - dying_explosion = "big-explosion", - collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, - selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, - match_animation_speed_to_activity = false, - fluid_boxes = { - { - production_type = "input", - -- pipe_picture = { - -- north = { - -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height} - -- }, - -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east, - -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south, - -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west - -- }, - pipe_covers = py.pipe_covers(true, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = { - { position = {-4, 0}, type = 'input' }, - { position = {0, 4}, type = 'input' }, - { position = {4, 0}, type = 'input' }, - { position = {0, -4}, type = 'input' }, - }, - }, - -- { - -- production_type = "output", - -- pipe_covers = py.pipe_covers(true, true, true, true), - -- pipe_picture = py.pipe_pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), - -- base_level = 1, - -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, - -- }, - }, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"consumption", "speed"}, - energy_source = { - type = "electric", - usage_priority = "secondary-input", - emissions_per_minute = 1, - }, - energy_usage = "400kW", - collision_mask = {layers = {item = true, object = true, water_tile = true}}, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, - idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, - apparent_volume = 2.5 - }, - next_upgrade = "cultivator-mk04", - animation = { - north = { - layers = { - { - -- count: 0, variation: 60, richness: 1 - -- max_x = 3811 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -112), - position = {3840, 800} - }, - { - -- count: 1, variation: 22, richness: 1 - -- max_x = 1411 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -112), - position = {1408, 800} - }, - { - -- count: 2, variation: 47, richness: 1 - -- max_x = 3043 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -112), - position = {3008, 800} - }, - { - -- count: 3, variation: 14, richness: 1 - -- max_x = 963 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -112), - position = {896, 800} - }, - { - -- count: 4, variation: 56, richness: 1 - -- max_x = 3683 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -112), - position = {3584, 800} - }, - { - -- count: 5, variation: 41, richness: 1 - -- max_x = 2755 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -112), - position = {2624, 800} - }, - { - -- count: 6, variation: 21, richness: 1 - -- max_x = 1507 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -112), - position = {1344, 800} - }, - { - -- count: 7, variation: 24, richness: 1 - -- max_x = 1507 max_y = 800 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -80), - position = {1536, 800} - }, - { - -- count: 8, variation: 46, richness: 3 - -- max_x = 2947 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -80), - position = {2944, 640} - }, - { - -- count: 9, variation: 24, richness: 3 - -- max_x = 1571 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -80), - position = {1536, 640} - }, - { - -- count: 10, variation: 42, richness: 4 - -- max_x = 2755 max_y = 560 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -80), - position = {2688, 560} - }, - { - -- count: 11, variation: 14, richness: 3 - -- max_x = 995 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -80), - position = {896, 640} - }, - { - -- count: 12, variation: 38, richness: 4 - -- max_x = 2563 max_y = 560 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -80), - position = {2432, 560} - }, - { - -- count: 13, variation: 4, richness: 1 - -- max_x = 419 max_y = 800 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -80), - position = {256, 800} - }, - { - -- count: 14, variation: 35, richness: 1 - -- max_x = 2211 max_y = 832 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -48), - position = {2240, 800} - }, - { - -- count: 15, variation: 59, richness: 3 - -- max_x = 3779 max_y = 672 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -48), - position = {3776, 640} - }, - { - -- count: 16, variation: 22, richness: 6 - -- max_x = 1443 max_y = 432 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -48), - position = {1408, 400} - }, - { - -- count: 17, variation: 25, richness: 5 - -- max_x = 1667 max_y = 512 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -48), - position = {1600, 480} - }, - { - -- count: 18, variation: 18, richness: 7 - -- max_x = 1251 max_y = 352 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -48), - position = {1152, 320} - }, - { - -- count: 19, variation: 0, richness: 3 - -- max_x = 131 max_y = 672 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -48), - position = {0, 640} - }, - { - -- count: 20, variation: 51, richness: 1 - -- max_x = 3427 max_y = 832 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -48), - position = {3264, 800} - }, - { - -- count: 21, variation: 10, richness: 2 - -- max_x = 611 max_y = 784 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -16), - position = {640, 720} - }, - { - -- count: 22, variation: 26, richness: 4 - -- max_x = 1667 max_y = 624 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -16), - position = {1664, 560} - }, - { - -- count: 23, variation: 52, richness: 7 - -- max_x = 3363 max_y = 384 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -16), - position = {3328, 320} - }, - { - -- count: 24, variation: 58, richness: 5 - -- max_x = 3779 max_y = 544 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -16), - position = {3712, 480} - }, - { - -- count: 25, variation: 62, richness: 6 - -- max_x = 4067 max_y = 464 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -16), - position = {3968, 400} - }, - { - -- count: 26, variation: 46, richness: 5 - -- max_x = 3075 max_y = 544 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -16), - position = {2944, 480} - }, - { - -- count: 27, variation: 23, richness: 1 - -- max_x = 1635 max_y = 864 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -16), - position = {1472, 800} - }, - { - -- count: 28, variation: 14, richness: 2 - -- max_x = 867 max_y = 816 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 16), - position = {896, 720} - }, - { - -- count: 29, variation: 9, richness: 3 - -- max_x = 579 max_y = 736 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 16), - position = {576, 640} - }, - { - -- count: 30, variation: 60, richness: 5 - -- max_x = 3875 max_y = 576 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 16), - position = {3840, 480} - }, - { - -- count: 31, variation: 45, richness: 5 - -- max_x = 2947 max_y = 576 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 16), - position = {2880, 480} - }, - { - -- count: 32, variation: 52, richness: 6 - -- max_x = 3427 max_y = 496 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 16), - position = {3328, 400} - }, - { - -- count: 33, variation: 56, richness: 4 - -- max_x = 3715 max_y = 656 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 16), - position = {3584, 560} - }, - { - -- count: 34, variation: 54, richness: 1 - -- max_x = 3619 max_y = 896 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 16), - position = {3456, 800} - }, - { - -- count: 35, variation: 34, richness: 1 - -- max_x = 2147 max_y = 928 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 48), - position = {2176, 800} - }, - { - -- count: 36, variation: 16, richness: 3 - -- max_x = 1027 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 48), - position = {1024, 640} - }, - { - -- count: 37, variation: 29, richness: 3 - -- max_x = 1891 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 48), - position = {1856, 640} - }, - { - -- count: 38, variation: 39, richness: 3 - -- max_x = 2563 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 48), - position = {2496, 640} - }, - { - -- count: 39, variation: 52, richness: 5 - -- max_x = 3427 max_y = 608 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 48), - position = {3328, 480} - }, - { - -- count: 40, variation: 43, richness: 4 - -- max_x = 2883 max_y = 688 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 48), - position = {2752, 560} - }, - { - -- count: 41, variation: 12, richness: 1 - -- max_x = 931 max_y = 928 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 48), - position = {768, 800} - }, - { - -- count: 42, variation: 36, richness: 1 - -- max_x = 2275 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 80), - position = {2304, 800} - }, - { - -- count: 43, variation: 21, richness: 1 - -- max_x = 1347 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 80), - position = {1344, 800} - }, - { - -- count: 44, variation: 33, richness: 1 - -- max_x = 2147 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 80), - position = {2112, 800} - }, - { - -- count: 45, variation: 38, richness: 1 - -- max_x = 2499 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 80), - position = {2432, 800} - }, - { - -- count: 46, variation: 25, richness: 1 - -- max_x = 1699 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 80), - position = {1600, 800} - }, - { - -- count: 47, variation: 2, richness: 1 - -- max_x = 259 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 80), - position = {128, 800} - }, - { - -- count: 48, variation: 56, richness: 1 - -- max_x = 3747 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 80), - position = {3584, 800} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, - -- position = {0, -256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, - -- position = {256, 0} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, - -- position = {0, 256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, - -- position = {-256, 0} - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(128, 0) - }, ---MASKS - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(96, 0) - }, - } - } - }, - idle_animation = { - north = { - layers = { - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, - -- position = {0, -256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, - -- position = {256, 0} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, - -- position = {0, 256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, - -- position = {-256, 0} - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(128, 0) - }, ---MASKS - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 0.223, g = 0.490, b = 0.858, a = 1.0}, - shift = util.by_pixel(96, 0) - }, - } - } - }, -} \ No newline at end of file diff --git a/prototypes/buildings/cultivator-mk04.lua b/prototypes/buildings/cultivator-mk04.lua deleted file mode 100644 index d293660..0000000 --- a/prototypes/buildings/cultivator-mk04.lua +++ /dev/null @@ -1,1083 +0,0 @@ -RECIPE { - type = "recipe", - name = "cultivator-mk04", - energy_required = 0.5, - enabled = false, - ingredients = { - {"cultivator-mk03", 1}, - {"science-coating", 20}, - {"divertor", 5}, - {"control-unit", 5}, - {"metallic-glass", 10}, - {"boron-carbide", 30}, - }, - results = { - {"cultivator-mk04", 1} - } -}:add_unlock("biotech-machines-mk04") - -ITEM { - type = "item", - name = "cultivator-mk04", - icons = { - { - icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk04.png", - icon_size = 64, - }, - { - icon = "__PyBlock__/graphics/icons/manual-gear.png", - icon_size = 32, - shift = {10, -10}, - scale = 0.5 - } - }, - flags = {}, - subgroup = "py-alienlife-buildings-mk04", - order = "x", - place_result = "cultivator-mk04", - stack_size = 10 -} - -ENTITY { - type = "assembling-machine", - name = "cultivator-mk04", - icons = { - { - icon = "__pyalienlifegraphics3__/graphics/icons/collector-mk04.png", - icon_size = 64, - }, - { - icon = "__PyBlock__/graphics/icons/manual-gear.png", - icon_size = 32, - shift = {8, -8}, - scale = 0.5 - } - }, - icon_size = 64, - crafting_speed = 4, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "cultivator-mk04"}, - fast_replaceable_group = "cultivator", - max_health = 200, - crafting_categories = {"cultivation"}, - corpse = "big-remnants", - dying_explosion = "big-explosion", - collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, - selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, - match_animation_speed_to_activity = false, - fluid_boxes = { - { - flow_direction = "input", - -- pipe_picture = { - -- north = { - -- filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - -- width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - -- height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - -- shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height} - -- }, - -- east = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east, - -- south = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south, - -- west = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west - -- }, - pipe_covers = py.pipe_covers(true, true, true, true), - base_area = 10, - base_level = -1, - pipe_connections = { - { position = {-4, 0}, type = 'input' }, - { position = {0, 4}, type = 'input' }, - { position = {4, 0}, type = 'input' }, - { position = {0, -4}, type = 'input' }, - }, - }, - -- { - -- flow_direction = "output", - -- pipe_covers = py.pipe_covers(true, true, true, true), - -- pipe_picture = py.pipe_pictures("pipe-to-ground", nil, {-0.05, -0.8}, nil, nil, pipes), - -- base_level = 1, - -- pipe_connections = {{ position = {0, -4}, type = 'output' }}, - -- }, - }, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"consumption", "speed"}, - energy_source = { - type = "electric", - usage_priority = "secondary-input", - emissions_per_minute = 1, - }, - energy_usage = "650kW", - collision_mask = {layers = {item = true, object = true, water_tile = true}}, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.9}, - idle_sound = {filename = "__pyalienlifegraphics__/sounds/collector.ogg", volume = 0.3}, - apparent_volume = 2.5 - }, - animation = { - north = { - layers = { - { - -- count: 0, variation: 60, richness: 1 - -- max_x = 3811 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -112), - position = {3840, 800} - }, - { - -- count: 1, variation: 22, richness: 1 - -- max_x = 1411 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -112), - position = {1408, 800} - }, - { - -- count: 2, variation: 47, richness: 1 - -- max_x = 3043 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -112), - position = {3008, 800} - }, - { - -- count: 3, variation: 14, richness: 1 - -- max_x = 963 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -112), - position = {896, 800} - }, - { - -- count: 4, variation: 56, richness: 1 - -- max_x = 3683 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -112), - position = {3584, 800} - }, - { - -- count: 5, variation: 41, richness: 1 - -- max_x = 2755 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -112), - position = {2624, 800} - }, - { - -- count: 6, variation: 21, richness: 1 - -- max_x = 1507 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -112), - position = {1344, 800} - }, - { - -- count: 7, variation: 24, richness: 1 - -- max_x = 1507 max_y = 800 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -80), - position = {1536, 800} - }, - { - -- count: 8, variation: 46, richness: 3 - -- max_x = 2947 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -80), - position = {2944, 640} - }, - { - -- count: 9, variation: 24, richness: 3 - -- max_x = 1571 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -80), - position = {1536, 640} - }, - { - -- count: 10, variation: 42, richness: 4 - -- max_x = 2755 max_y = 560 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -80), - position = {2688, 560} - }, - { - -- count: 11, variation: 14, richness: 3 - -- max_x = 995 max_y = 640 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -80), - position = {896, 640} - }, - { - -- count: 12, variation: 38, richness: 4 - -- max_x = 2563 max_y = 560 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -80), - position = {2432, 560} - }, - { - -- count: 13, variation: 4, richness: 1 - -- max_x = 419 max_y = 800 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -80), - position = {256, 800} - }, - { - -- count: 14, variation: 35, richness: 1 - -- max_x = 2211 max_y = 832 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -48), - position = {2240, 800} - }, - { - -- count: 15, variation: 59, richness: 3 - -- max_x = 3779 max_y = 672 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -48), - position = {3776, 640} - }, - { - -- count: 16, variation: 22, richness: 6 - -- max_x = 1443 max_y = 432 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -48), - position = {1408, 400} - }, - { - -- count: 17, variation: 25, richness: 5 - -- max_x = 1667 max_y = 512 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -48), - position = {1600, 480} - }, - { - -- count: 18, variation: 18, richness: 7 - -- max_x = 1251 max_y = 352 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -48), - position = {1152, 320} - }, - { - -- count: 19, variation: 0, richness: 3 - -- max_x = 131 max_y = 672 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -48), - position = {0, 640} - }, - { - -- count: 20, variation: 51, richness: 1 - -- max_x = 3427 max_y = 832 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -48), - position = {3264, 800} - }, - { - -- count: 21, variation: 10, richness: 2 - -- max_x = 611 max_y = 784 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, -16), - position = {640, 720} - }, - { - -- count: 22, variation: 26, richness: 4 - -- max_x = 1667 max_y = 624 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, -16), - position = {1664, 560} - }, - { - -- count: 23, variation: 52, richness: 7 - -- max_x = 3363 max_y = 384 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, -16), - position = {3328, 320} - }, - { - -- count: 24, variation: 58, richness: 5 - -- max_x = 3779 max_y = 544 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, -16), - position = {3712, 480} - }, - { - -- count: 25, variation: 62, richness: 6 - -- max_x = 4067 max_y = 464 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, -16), - position = {3968, 400} - }, - { - -- count: 26, variation: 46, richness: 5 - -- max_x = 3075 max_y = 544 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, -16), - position = {2944, 480} - }, - { - -- count: 27, variation: 23, richness: 1 - -- max_x = 1635 max_y = 864 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, -16), - position = {1472, 800} - }, - { - -- count: 28, variation: 14, richness: 2 - -- max_x = 867 max_y = 816 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 16), - position = {896, 720} - }, - { - -- count: 29, variation: 9, richness: 3 - -- max_x = 579 max_y = 736 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 16), - position = {576, 640} - }, - { - -- count: 30, variation: 60, richness: 5 - -- max_x = 3875 max_y = 576 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 16), - position = {3840, 480} - }, - { - -- count: 31, variation: 45, richness: 5 - -- max_x = 2947 max_y = 576 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 16), - position = {2880, 480} - }, - { - -- count: 32, variation: 52, richness: 6 - -- max_x = 3427 max_y = 496 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 16), - position = {3328, 400} - }, - { - -- count: 33, variation: 56, richness: 4 - -- max_x = 3715 max_y = 656 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 16), - position = {3584, 560} - }, - { - -- count: 34, variation: 54, richness: 1 - -- max_x = 3619 max_y = 896 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 16), - position = {3456, 800} - }, - { - -- count: 35, variation: 34, richness: 1 - -- max_x = 2147 max_y = 928 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 48), - position = {2176, 800} - }, - { - -- count: 36, variation: 16, richness: 3 - -- max_x = 1027 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 48), - position = {1024, 640} - }, - { - -- count: 37, variation: 29, richness: 3 - -- max_x = 1891 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 48), - position = {1856, 640} - }, - { - -- count: 38, variation: 39, richness: 3 - -- max_x = 2563 max_y = 768 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 48), - position = {2496, 640} - }, - { - -- count: 39, variation: 52, richness: 5 - -- max_x = 3427 max_y = 608 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 48), - position = {3328, 480} - }, - { - -- count: 40, variation: 43, richness: 4 - -- max_x = 2883 max_y = 688 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 48), - position = {2752, 560} - }, - { - -- count: 41, variation: 12, richness: 1 - -- max_x = 931 max_y = 928 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 48), - position = {768, 800} - }, - { - -- count: 42, variation: 36, richness: 1 - -- max_x = 2275 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-93, 80), - position = {2304, 800} - }, - { - -- count: 43, variation: 21, richness: 1 - -- max_x = 1347 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-61, 80), - position = {1344, 800} - }, - { - -- count: 44, variation: 33, richness: 1 - -- max_x = 2147 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-29, 80), - position = {2112, 800} - }, - { - -- count: 45, variation: 38, richness: 1 - -- max_x = 2499 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(3, 80), - position = {2432, 800} - }, - { - -- count: 46, variation: 25, richness: 1 - -- max_x = 1699 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(35, 80), - position = {1600, 800} - }, - { - -- count: 47, variation: 2, richness: 1 - -- max_x = 259 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(67, 80), - position = {128, 800} - }, - { - -- count: 48, variation: 56, richness: 1 - -- max_x = 3747 max_y = 960 - filename = "__pyalienlifegraphics__/graphics/entity/bioreserve/rich-1.png", - width = 64, - height = 80, - frame_count = 1, - repeat_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(99, 80), - position = {3584, 800} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, - -- position = {0, -256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, - -- position = {256, 0} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, - -- position = {0, 256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, - -- position = {-256, 0} - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(128, 0) - }, ---MASKS - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(96, 0) - }, - } - } - }, - idle_animation = { - north = { - layers = { - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.width, -256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.north.height}, - -- position = {0, -256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.east.height}, - -- position = {256, 0} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.width, 256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.south.height}, - -- position = {0, 256} - }, - { - filename = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.filename, - width = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, - height = data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height, - frame_count = 1, - repeat_count = 255, - amimation_speed = 0.4, - shift = {-256-data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.width, -data.raw["pipe-to-ground"]["pipe-to-ground"].pictures.west.height}, - -- position = {-256, 0} - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f8.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - shift = util.by_pixel(128, 0) - }, ---MASKS - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f1-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(-96, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f2-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(-64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f3-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(-32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f4-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(0, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f5-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(32, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f6-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(64, 0) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/collector/f7-mask.png", - width = 32, - height = 288, - line_length = 64, - frame_count = 255, - animation_speed = 0.4, - tint = {r = 1.0, g = 0.0, b = 1.0, a = 1.0}, - shift = util.by_pixel(96, 0) - }, - } - } - }, -} \ No newline at end of file From 24bca346ac8f89f671e7d787f9ff24b55e9150d8 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 17:51:41 -0700 Subject: [PATCH 071/110] actually fix cultivation names --- prototypes/recipes/recipes.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index e49fed3..7d151ec 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -78,7 +78,7 @@ RECIPE { { type = "fluid", name = "dirty-water-light", amount = 1200 }, { type = "item", name = "moss", amount = 1, probability = 0.08 }, }, - main_product = "" + main_product = "moss" }:add_unlock("moss-mk01") -- bootstrapping wood to sap @@ -97,7 +97,7 @@ RECIPE { { type = "item", name = "saps", amount = 1, probability = 0.1 }, { type = "item", name = "log", amount = 8 } }, - main_product = "" + main_product = "saps" }:add_unlock("wood-processing") -- native flora recipes @@ -116,7 +116,7 @@ RECIPE { results = { { type = "item", name = "native-flora", amount = 1, probability = 0.02 } }, - main_product = "" + show_amount_in_title = false }:add_unlock("automation-science-pack") RECIPE { From 4691ed3fb90cbb121796c318e15f5cf37baf1931 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 17:52:52 -0700 Subject: [PATCH 072/110] make spore collector mk01 steampowered again --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 34 ++++++++++------------ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/changelog.txt b/changelog.txt index 608a31c..3ce0ff3 100644 --- a/changelog.txt +++ b/changelog.txt @@ -16,6 +16,7 @@ Date: ???? - Increased construction cost of seaweed crop facility mk01 - Increased fluidbox sizes - Correct entity color masks + - Reverted spore collector mk01 to steampowered --------------------------------------------------------------------------------------------------- Version: 3.0.0 Date: 2024-10-27 diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 1d1901a..932b366 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -40,24 +40,22 @@ RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-de data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "30kW" data.raw["assembling-machine"]["spore-collector-mk01"].energy_usage = "12kW" --- data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = { --- type = "fluid", --- effectivity = 1, --- emissions = 1, --- fluid_box = { --- base_area = 1, --- height = 2, --- base_level = -1, --- pipe_covers = pipecoverspictures(), --- pipe_connections = { --- { type = "input-output", position = {-4, 0}, direction = 0 }, --- { type = "input-output", position = {4, 0}, direction = 0 }, --- }, --- filter = "steam", --- flow_direction = "input-output", --- }, --- scale_fluid_usage = true --- } +data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + volume = 2, + pipe_covers = pipecoverspictures(), + pipe_connections = { + { flow_direction = "input-output", position = {-3.199, 0}, direction = 12 }, + { pipe_connections = "input-output", position = {3.199, 0}, direction = 4 }, + }, + filter = "steam", + -- flow_direction = "input-output", + }, + scale_fluid_usage = true +} -- fawogae to raw coal RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} From c4934bff81edc4e24a523bc416a65f4101bd5c6c Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Fri, 1 Nov 2024 23:56:37 -0700 Subject: [PATCH 073/110] re-added biomass to fish recipes --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 3ce0ff3..d7c0550 100644 --- a/changelog.txt +++ b/changelog.txt @@ -7,6 +7,7 @@ Date: ???? - Increased log count in starting inventory - Removed intermetallics from pyhtoplankton farm Changes: + - Re-added biomass to fish recipes - Moved waste-water voiding recipe to electrolysis - Added locale names for sap extraction, moss cultivation, and native flora cultivation - Decreased sap extraction time from 160s to 80s diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 932b366..a1e0593 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -140,7 +140,7 @@ RECIPE("fish-food-01"):remove_unlock("fish-mk01"):add_unlock("fish-mk02") RECIPE("saline-water"):remove_unlock("vacuum-tube-electronics"):add_unlock("fish-mk01") -RECIPE("breed-fish-1"):remove_ingredient("biomass"):remove_ingredient("oxygen"):set_fields{results = {{type = "item", name = "fish", amount = 15}, {type = "fluid", name = "waste-water", amount = 100}}} +RECIPE("breed-fish-1"):remove_ingredient("oxygen"):set_fields{results = {{type = "item", name = "fish", amount = 15}, {type = "fluid", name = "waste-water", amount = 100}}} local breed_fish = table.deepcopy(data.raw["recipe"]["breed-fish-1"]) breed_fish.name = "breed-fish-simple" From 3b9cc1cc502e2b60c3f7e53bc84713a329caa4f3 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 2 Nov 2024 00:00:36 -0700 Subject: [PATCH 074/110] moved water animals stage 1 to auto sci --- changelog.txt | 2 ++ prototypes/updates/pyalienlife-updates.lua | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index d7c0550..76c6caa 100644 --- a/changelog.txt +++ b/changelog.txt @@ -7,6 +7,8 @@ Date: ???? - Increased log count in starting inventory - Removed intermetallics from pyhtoplankton farm Changes: + - Moved Water Animals - Stage 1 to automation science + - Move Tin Processing 1 back to py science 1 - Re-added biomass to fish recipes - Moved waste-water voiding recipe to electrolysis - Added locale names for sap extraction, moss cultivation, and native flora cultivation diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index a1e0593..0fc066c 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -129,7 +129,7 @@ TECHNOLOGY("fish-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisite TECHNOLOGY("tin-mk01"):remove_pack("py-science-pack-1") TECHNOLOGY("microbiology-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} -RECIPE("plankton-farm"):remove_ingredient("intermetallics") +RECIPE("plankton-farm"):remove_ingredient("intermetallics"):remove_ingredient("storage-tank"):remove_ingredient("electronic-circuit") RECIPE("waste-water-void"):remove_unlock("fish-mk01"):add_unlock("electrolysis") RECIPE("fish-farm-mk01"):set_fields{ingredients = {}}:add_ingredient({type = "item", name = "steel-plate", amount = 25}):add_ingredient({type = "item", name = "glass", amount = 20}):add_ingredient("seaweed-crop-mk01"):add_ingredient("pump") @@ -148,7 +148,7 @@ data.raw.recipe["breed-fish-simple"] = breed_fish RECIPE("breed-fish-simple"):remove_ingredient("small-lamp"):add_unlock("fish-mk01"):set_fields{energy_required = 270, results = {{type = "item", name = "fish", amount = 12}, {type = "fluid", name = "waste-water", amount = 100}}} -RECIPE("plankton-farm"):remove_ingredient("storage-tank"):remove_ingredient("electronic-circuit") +TECHNOLOGY("water-animals-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} RECIPE("zogna-bacteria"):remove_unlock("microbiology-mk01"):add_unlock("biotech-mk01") From 9a53e527cd86ac11de5fc2c3ead919dab84ca63c Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 10 Nov 2024 13:52:28 -0700 Subject: [PATCH 075/110] fix crash introduced in recent pY updates --- ...ergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua | 2 +- changelog.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua index dc273f2..a06c924 100644 --- a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua +++ b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua @@ -238,7 +238,7 @@ fix_tech("artillery-shell-range-9",{order="000096",prerequisites={"artillery-she fix_tech("artillery-shell-range-10",{order="000097",prerequisites={"artillery-shell-range-9"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("artillery-shell-range-11",{order="000098",prerequisites={"artillery-shell-range-10"},unit={count=900,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("artillery-shell-range-12",{order="000099",prerequisites={"artillery-shell-range-11"},unit={count=1100,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) -fix_tech("artillery-shell-range-13",{order="000100",prerequisites={"artillery-shell-range-12","quantum"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) +fix_tech("artillery-shell-range-13",{order="000100",prerequisites={"artillery-shell-range-12","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) fix_tech("diet-beacon",{order="000070",prerequisites={"speed-module","productivity-module","effectivity-module","chemical-science-pack","wind-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) fix_tech("advanced-mining-facilities",{order="000045",prerequisites={"vanadium-processing"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("sc-unit",{order="000082",prerequisites={"production-science-pack","machine-components-mk03"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) diff --git a/changelog.txt b/changelog.txt index 76c6caa..7da6373 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,7 @@ Version: 3.0.1 Date: ???? Bugfixes: + - Fixed a crash introduced in recent Pymods updates - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 - Fixed pipe connections on multiple entites not being properly aligned - Increased log count in starting inventory From ea0ce102702686db257388c846ccbd0232fb65f5 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 10 Nov 2024 22:09:54 -0700 Subject: [PATCH 076/110] fixed driftwood and terrain generation (finally!) --- changelog.txt | 2 + data-updates.lua | 39 ++------ prototypes/mapgen.lua | 192 ++++--------------------------------- prototypes/tiles/tiles.lua | 40 ++------ 4 files changed, 34 insertions(+), 239 deletions(-) diff --git a/changelog.txt b/changelog.txt index 7da6373..a0d4500 100644 --- a/changelog.txt +++ b/changelog.txt @@ -7,6 +7,8 @@ Date: ???? - Fixed pipe connections on multiple entites not being properly aligned - Increased log count in starting inventory - Removed intermetallics from pyhtoplankton farm + - Fixed terrain generation + - Fixed driftwood not spawning Changes: - Moved Water Animals - Stage 1 to automation science - Move Tin Processing 1 back to py science 1 diff --git a/data-updates.lua b/data-updates.lua index 97e5450..38aa061 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -1,14 +1,3 @@ ---[[ ---add fail safe raw coal to player and god character -for _, player in DATA:pairs('character') do - player.crafting_categories = player.String_Array(player.crafting_categories or {}) + 'handcrafting-failsafe' -end -for _, controller in DATA:pairs('god-controller') do - controller.crafting_categories = controller.String_Array(controller.crafting_categories or {}) + 'handcrafting-failsafe' -end -]]-- - - local ores_from_nothing = { ["iron-ore"] = true, ["copper-ore"] = true, @@ -101,25 +90,22 @@ require("prototypes/mapgen") --require('prototypes/updates/pyhightech-updates') --add driftwood for closer logs -data:extend({ +data.raw.planet.nauvis.map_gen_settings.autoplace_settings.entity.settings.driftwood = {} + +data:extend { { type = "fish", name = "driftwood", icon = "__PyBlock__/graphics/icons/driftwood.png", icon_size = 64, flags = {"placeable-neutral", "not-on-map"}, - minable = { - mining_time = 0.4, - results = { - { type = "item", name = "log", amount = 1 } - } - }, + minable = {mining_time = 0.4, result = "log", count = 1}, max_health = 20, subgroup = "creatures", order = "b-a", collision_box = {{-0.75, -0.75}, {0.75, 0.75}}, selection_box = {{-0.5, -0.3}, {0.5, 0.3}}, - collision_mask = { layers = { ground_tile = true }, colliding_with_tiles_only = true }, + collision_mask = {layers = {ground_tile = true}, colliding_with_tiles_only = true}, pictures = { { filename = '__PyBlock__/graphics/icons/driftwood.png', @@ -130,25 +116,16 @@ data:extend({ scale = 0.5 } }, - autoplace = { - probability_expression = data.raw.tree.seaweed.autoplace.probability_expression, - order = "driftwood" + autoplace = { probability_expression = 0.008 }, + protected_from_tile_building = false } } -}) + -- create "floating" seaweed that moves local seaweed = table.deepcopy(data.raw.tree.seaweed) data.raw.tree.seaweed = nil seaweed.type = "fish" --- seaweed.autoplace = { --- probability_expression = noise.define_noise_function( function(x, y, tile, map) --- -- equiv to: limited_water < 0 and 0 or 1 --- local limited_water = noise.clamp(noise.var("wlc_elevation_minimum"), 0, 1) --- -- 0.2% or 1.2% --- return 0.001 + (0.01 * limited_water) --- end) --- } data.raw.fish.seaweed = seaweed -- allow all inserters to fish diff --git a/prototypes/mapgen.lua b/prototypes/mapgen.lua index 3664d0a..2173590 100644 --- a/prototypes/mapgen.lua +++ b/prototypes/mapgen.lua @@ -1,187 +1,14 @@ --- data.raw["map-gen-presets"].default["pyblock-recommended"] = { --- order = "i", --- basic_settings = { --- property_expression_names = { --- elevation = "0_17-island" --- }, --- -- terrain_segmentation = 0, --- -- default_enable_all_autoplace_controls = false, --- autoplace_settings = { --- ["entity"] = { --- treat_missing_as_default = false, --- settings = { --- fish = { --- frequency = 1 --- }, --- driftwood = { --- frequency = 1 --- }, --- seaweed = { --- frequency = 1 --- } --- } --- } --- }, --- autoplace_controls = { --- ["enemy-base"] = { --- frequency = 0 --- }, --- ["trees"] = { --- frequency = 0 --- }, --- ["iron-ore"] = { --- frequency = 0 --- }, --- ["copper-ore"] = { --- frequency = 0 --- }, --- ["stone"] = { --- frequency = 0 --- }, --- ["uranium-ore"] = { --- frequency = 0 --- }, --- ["borax"] = { --- frequency = 0 --- }, --- ["niobium"] = { --- frequency = 0 --- }, --- ["molybdenum-ore"] = { --- frequency = 0 --- }, --- ["volcanic-pipe"] = { --- frequency = 0 --- }, --- ["regolites"] = { --- frequency = 0 --- }, --- ["ore-quartz"] = { --- frequency = 0 --- }, --- ["raw-coal"] = { --- frequency = 0 --- }, --- ["ore-aluminium"] = { --- frequency = 0 --- }, --- ["ore-chromium"] = { --- frequency = 0 --- }, --- ["ore-lead"] = { --- frequency = 0 --- }, --- ["ore-nickel"] = { --- frequency = 0 --- }, --- ["ore-tin"] = { --- frequency = 0 --- }, --- ["ore-titanium"] = { --- frequency = 0 --- }, --- ["ore-zinc"] = { --- frequency = 0 --- }, --- ["quartz-rock"] = { --- frequency = 0 --- }, --- ["chromium-rock"] = { --- frequency = 0 --- }, --- ["aluminium-rock"] = { --- frequency = 0 --- }, --- ["copper-rock"] = { --- frequency = 0 --- }, --- ["salt-rock"] = { --- frequency = 0 --- }, --- ["iron-rock"] = { --- frequency = 0 --- }, --- ["coal-rock"] = { --- frequency = 0 --- }, --- ["lead-rock"] = { --- frequency = 0 --- }, --- ["nickel-rock"] = { --- frequency = 0 --- }, --- ["tin-rock"] = { --- frequency = 0 --- }, --- ["titanium-rock"] = { --- frequency = 0 --- }, --- ["uranium-rock"] = { --- frequency = 0 --- }, --- ["zinc-rock"] = { --- frequency = 0 --- }, --- ["phosphate-rock-02"] = { --- frequency = 0 --- }, --- ["phosphate-rock"] = { --- frequency = 0 --- }, --- ["rare-earth-bolide"] = { --- frequency = 0 --- }, --- ["oil-sand"] = { --- frequency = 0 --- }, --- ["sulfur-patch"] = { --- frequency = 0 --- }, --- ["bitumen-seep"] = { --- frequency = 0 --- }, --- ["ore-bioreserve"] = { --- frequency = 0 --- }, --- ["ore-nexelit"] = { --- frequency = 0 --- }, --- ["geothermal-crack"] = { --- frequency = 0 --- }, --- ["ree"] = { --- frequency = 0 --- }, --- ["antimonium"] = { --- frequency = 0 --- }, --- }, --- cliff_settings = { --- richness = 0 --- }, --- }, --- advanced_settings = { --- pollution = { --- enabled = false --- } --- } --- } -data.raw["map-gen-presets"]["default"]["pyblock-recommended"] = { +data.raw["map-gen-presets"].default["pyblock-recommended"] = { order = "i", basic_settings = { property_expression_names = { elevation = "elevation_island", moisture = "moisture_basic", aux = "aux_basic", - cliffiness = "cliffiness_basic", - cliff_elevation = "cliff_elevation_from_elevation", - trees_forest_path_cutout = 1 }, cliff_settings = { - cliff_smoothing = 1 + cliff_elevation_interval = 0 }, - no_enemies_mode = true, - default_enable_all_autoplace_controls = false, autoplace_settings = { entity = { treat_missing_as_default = false, @@ -199,15 +26,30 @@ data.raw["map-gen-presets"]["default"]["pyblock-recommended"] = { } }, autoplace_controls = { + ["water"] = { + frequency = 6 + }, + ["enemy-base"] = { + frequency = 0 + }, ["trees"] = { frequency = 0 }, + ["rocks"] = { + frequency = 0 + }, ["iron-ore"] = { frequency = 0 }, ["copper-ore"] = { frequency = 0 }, + ["coal"] = { + frequency = 0 + }, + ["crude-oil"] = { + frequency = 0 + }, ["stone"] = { frequency = 0 }, diff --git a/prototypes/tiles/tiles.lua b/prototypes/tiles/tiles.lua index 244eb57..d028ffc 100644 --- a/prototypes/tiles/tiles.lua +++ b/prototypes/tiles/tiles.lua @@ -1,37 +1,11 @@ -local waterline = 50 -local elevation_scale = 5 +for _, t in pairs(data.raw.tile) do + t.autoplace = { probability_expression = "0" } +end --- for _, t in pairs(data.raw.tile) do --- t.autoplace = nil --- end +data.raw.planet.nauvis.map_gen_settings.autoplace_settings.tile.settings.landfill = {} --- -- low lying sand --- data.raw.tile['landfill'].autoplace = { --- peaks = { --- { -- Around cliff islands --- influence = 5, --- elevation_optimal = 0.3 * elevation_scale + waterline, --- elevation_range = 0.3 * elevation_scale, --- elevation_max_range = 0.3 * elevation_scale + 100 --- } --- }} --- data.raw.tile["landfill"].autoplace = { probability_expression = "basis_noise{x = x, y = y, seed0 = map_seed, seed1 = 0} > 0.3 * elevation_scale + waterline" } +data.raw.tile["landfill"].autoplace = { probability_expression = "if(elevation > -2, 1, -inf)" } +data.raw.tile["water"].autoplace = { probability_expression = "water_base(3, 0.1)" } --- data.raw.tile['water'].autoplace = { --- peaks = { --- { --- influence = 0.1, -- shallow water around cliff islands --- min_influence = 0, --- elevation_optimal = -2 * elevation_scale + waterline, --- elevation_range = 2.5 * elevation_scale, --- elevation_max_range = 2.5 * elevation_scale --- } --- }} - --- data.raw.tile['deepwater'].autoplace = { --- peaks = { --- { --- influence = 0.01 --- } --- }} \ No newline at end of file +data.raw.tile["deepwater"].autoplace = { probability_expression = "water_base(0, 0.01)" } \ No newline at end of file From ff042218dc7fc7911c2c82a9c09b588665f34530 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 10 Nov 2024 22:16:18 -0700 Subject: [PATCH 077/110] slaughterhouse mk00 --- data-final-fixes.lua | 0 data-updates.lua | 35 +- data.lua | 6 +- prototypes/buildings/slaughterhouse-mk00.lua | 369 ++++++++++--------- prototypes/updates/pyalienlife-updates.lua | 2 - 5 files changed, 197 insertions(+), 215 deletions(-) delete mode 100644 data-final-fixes.lua diff --git a/data-final-fixes.lua b/data-final-fixes.lua deleted file mode 100644 index e69de29..0000000 diff --git a/data-updates.lua b/data-updates.lua index 38aa061..3c2bf0c 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -118,8 +118,8 @@ data:extend { }, autoplace = { probability_expression = 0.008 }, protected_from_tile_building = false - } } +} -- create "floating" seaweed that moves @@ -154,11 +154,12 @@ table.insert(RECIPE("soot-separation").results, {type = "item", name = "ore-nick RECIPE("soot-separation"):set_fields{unlock_results = true, ignore_in_pypp = false} -RECIPE("mining-antimony"):remove_unlock("excavation-2"):add_unlock("excavation-1") +RECIPE("mining-antimony"):remove_unlock("excavation-2"):add_unlock("excavation-1")--:set_fields{results = {{type = "item", name = "antimonium-ore", amount = 20}}} RECIPE("ground-borer"):remove_ingredient("intermetallics") RECIPE("mining-borax"):replace_ingredient("drilling-fluid-1", "lubricant") +RECIPE("fish-oil-to-lube"):replace_ingredient("fish-oil", "fish-oil", 50) -- create new soot to ore recipes that generalize byproducts local ores = { @@ -214,24 +215,6 @@ for o, ore in pairs(ores) do main_product = o, ignore_in_pypp = false } - -- RECIPE("soot-to-" .. ore.recipe_extension):set_fields { - -- type = "recipe", - -- name = "soot-to-" .. ore.recipe_extension, - -- category = "solid-separator", - -- subgroup = "py-items-class", - -- enabled = ore.technology ~= nil and false or true, - -- energy_required = 15, - -- ingredients = { - -- { type = "item", name = "soot", amount = 10 } - -- }, - -- results = { - -- { type = "item", name = o, amount = ore.amount }, - -- { type = "item", name = "ash", amount = 1, probability = 0.3 } - -- }, - -- result = nil, - -- main_product = o, - -- ignore_in_pypp = false - -- }:add_unlock(ore.technology) for s, secondary_ore in pairs(ores) do if s ~= o then table.insert(data.raw.recipe["soot-to-" .. ore.recipe_extension].results, { type = "item", name = s, amount = 1, probability = secondary_ore.byproduct_probability }) @@ -240,6 +223,9 @@ for o, ore in pairs(ores) do end end +RECIPE("soot-to-copper"):add_unlock("ash-separation") +RECIPE("soot-to-aluminium"):add_unlock("mining-with-fluid") + -- get rid of the steam power tech TECHNOLOGY("steam-power"):set_fields{hidden = true} for e, effect in pairs(data.raw["technology"]["steam-power"].effects) do @@ -252,21 +238,18 @@ end RECIPE("empty-planter-box"):remove_unlock("automation-science-pack"):set_fields{enabled = true} RECIPE("soil"):remove_unlock("automation-science-pack"):set_fields{enabled = true} --- remove wpu mk01 from auto sci -RECIPE("wpu"):remove_unlock("automation-science-pack") - -- move starter ash separation recipes to ash-separation and set trigger tech RECIPE("ash-separation"):add_unlock("ash-separation"):set_fields{enabled = false} RECIPE("solid-separator"):add_unlock("ash-separation"):set_fields{enabled = false} TECHNOLOGY("ash-separation"):set_fields{unit = nil, research_trigger = { type = "craft-item", item = "ash", count = 200 }}:set_fields{prerequisites = {"atomizer-mk00"}} RECIPE("copper-plate"):add_unlock("ash-separation"):set_fields{enabled = false} -RECIPE("inductor1"):add_unlock("ash-separation"):set_fields{enabled = false} +RECIPE("inductor1-2"):add_unlock("ash-separation"):set_fields{enabled = false} -- set automation science pack to require 50 copper plates cause you gonna need them TECHNOLOGY("automation-science-pack"):set_fields{research_trigger = { type = "craft-item", item = "copper-plate", count = 10 }}:set_fields{prerequisites = {"ash-separation"}} -- burner/steam mk00 recipe adjustments -RECIPE("wpu"):add_ingredient("inductor1", 12):add_ingredient("burner-wpu", 1):add_unlock("wood-processing"):set_fields{enabled = false} +RECIPE("wpu"):add_ingredient("inductor1", 12):add_ingredient("burner-wpu", 1):remove_unlock("automation-science-pack"):add_unlock("wood-processing"):set_fields{enabled = false} RECIPE("soil-extractor-mk01"):remove_ingredient("burner-mining-drill"):add_ingredient("burner-soil-extractor", 1) @@ -276,6 +259,8 @@ RECIPE("flora-collector-mk01"):remove_ingredient("soil-extractor-mk01"):add_ingr RECIPE("compost-plant-mk01"):add_ingredient("compost-plant-mk00", 1):remove_unlock("compost"):add_unlock("fertilizer-mk01") +RECIPE("slaughterhouse-mk01"):add_ingredient("slaughterhouse-mk00") + -- move atomizer recipes to new trigger tech RECIPE("fawogae-to-iron"):add_unlock("atomizer-mk00"):set_fields{enabled = false} RECIPE("iron-plate"):add_unlock("atomizer-mk00"):set_fields{enabled = false} diff --git a/data.lua b/data.lua index f4b7be4..0b12111 100644 --- a/data.lua +++ b/data.lua @@ -45,15 +45,11 @@ require('prototypes/buildings/burner-soil-extractor') require('prototypes/buildings/burner-wpu') require("prototypes/buildings/geothermal-plant-mk01") require("prototypes/buildings/cultivator") --- require("prototypes/buildings/cultivator-mk01") --- require("prototypes/buildings/cultivator-mk02") --- require("prototypes/buildings/cultivator-mk03") --- require("prototypes/buildings/cultivator-mk04") +require('prototypes/buildings/slaughterhouse-mk00') --UNUSED --require('prototypes/buildings/fish-farm-mk00') --require('prototypes/buildings/fwf-mk00') ---require('prototypes/buildings/slaughterhouse-mk00') --require('prototypes/buildings/seaweed-crop-mk00') --require('prototypes/buildings/bqt') diff --git a/prototypes/buildings/slaughterhouse-mk00.lua b/prototypes/buildings/slaughterhouse-mk00.lua index 468172a..229e063 100644 --- a/prototypes/buildings/slaughterhouse-mk00.lua +++ b/prototypes/buildings/slaughterhouse-mk00.lua @@ -1,197 +1,200 @@ RECIPE { - type = "recipe", - name = "slaughterhouse-mk00", - energy_required = 1, - enabled = true, - ingredients = { - {"stone-brick", 30}, - {"pipe", 20}, - {"electronic-circuit", 1}, - {"iron-gear-wheel", 30}, - {"glass", 5}, - }, - results = { - {"slaughterhouse-mk00", 1} - } -} + type = "recipe", + name = "slaughterhouse-mk00", + energy_required = 1, + enabled = false, + ingredients = { + {"stone-brick", 30 }, + {"pipe", 20 }, + {"inductor1", 1 }, + {"iron-gear-wheel", 30 }, + {"iron-plate", 30 }, + {"steel-plate", 10 }, + {"glass", 10}, + }, + results = { + {"slaughterhouse-mk00", 1} + } +}:add_unlock("water-animals-mk01") ITEM { - type = "item", - name = "slaughterhouse-mk00", - icon = "__PyBlock__/graphics/icons/slaugterhouse-mk00.png", - icon_size = 64, - flags = {}, - subgroup = "py-alienlife-buildings-mk00", - order = "a", - place_result = "slaughterhouse-mk00", - stack_size = 10 + type = "item", + name = "slaughterhouse-mk00", + icon = "__PyBlock__/graphics/icons/slaugterhouse-mk00.png", + icon_size = 64, + flags = {}, + subgroup = "py-alienlife-buildings-mk00", + order = "a", + place_result = "slaughterhouse-mk00", + stack_size = 10 } ENTITY { - type = 'assembling-machine', - name = "slaughterhouse-mk00", - icon = "__PyBlock__/graphics/icons/slaugterhouse-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "slaughterhouse-mk00"}, - fast_replaceable_group = "slaughterhouse", - max_health = 100, - corpse = "medium-remnants", - dying_explosion = "big-explosion", - collision_box = {{-5.1, -5.1}, {5.1, 5.1}}, - selection_box = {{-5.5, -5.5}, {5.5, 5.5}}, - draw_entity_info_icon_background = false, - match_animation_speed_to_activity = false, - module_specification = { - module_slots = 1 + type = "assembling-machine", + name = "slaughterhouse-mk00", + icon = "__PyBlock__/graphics/icons/slaugterhouse-mk00.png", + icon_size = 64, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "slaughterhouse-mk00"}, + fast_replaceable_group = "slaughterhouse", + max_health = 100, + corpse = "medium-remnants", + dying_explosion = "big-explosion", + collision_box = {{-5.1, -5.1}, {5.1, 5.1}}, + selection_box = {{-5.5, -5.5}, {5.5, 5.5}}, + match_animation_speed_to_activity = false, + module_slots = 1, + allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + crafting_categories = {"slaughterhouse"}, + crafting_speed = 1, + energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + volume = 200, + pipe_covers = py.pipe_covers(true, true, true, true), + pipe_connections = { + { flow_direction = "input-output", position = {5, 2}, direction = 4 }, + { flow_direction = "input-output", position = {-5, 2}, direction = 12 }, + }, + production_type = "input-output", + filter = "steam", }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, - crafting_categories = {"slaughterhouse","slaughterhouse-auog","slaughterhouse-ulric","slaughterhouse-mukmoux","slaughterhouse-arthurian","slaughterhouse-dhilmos","slaughterhouse-scrondrix","slaughterhouse-phadai","slaughterhouse-fish","slaughterhouse-phagnot","slaughterhouse-kmauts","slaughterhouse-dingrits","slaughterhouse-xeno","slaughterhouse-cridren","slaughterhouse-antelope","slaughterhouse-zipir","slaughterhouse-trits","slaughterhouse-vonix","slaughterhouse-vrauks","slaughterhouse-xyhiphoe","slaughterhouse-korlex"}, - crafting_speed = 0.5, - energy_source = - { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = + scale_fluid_usage = true, + }, + energy_usage = "150kW", + graphics_set = { + animation = { + layers = { { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "input-output", position = {-6,0}}, - {type = "input-output", position = {6, 0} }, - }, - filter = "steam", - production_type = "input-output", + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/base.png", + width = 384, + height = 32, + line_length = 5, + frame_count = 105, + animation_speed = 0.3, + run_mode = "backward", + shift = util.by_pixel(16, 160) + }, + { + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a1.png", + width = 96, + height = 324, + line_length = 21, + frame_count = 105, + animation_speed = 0.3, + --run_mode = "backward", + shift = util.by_pixel(-128, -18) + }, + { + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a1-mask.png", + width = 96, + height = 324, + line_length = 21, + frame_count = 105, + animation_speed = 0.3, + run_mode = "backward", + shift = util.by_pixel(-128, -18), + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} + }, + { + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a2.png", + width = 96, + height = 324, + line_length = 21, + frame_count = 105, + animation_speed = 0.3, + run_mode = "backward", + shift = util.by_pixel(-32, -18) }, - scale_fluid_usage = true, - }, - energy_usage = "150kW", - animation = { - layers = { - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/base.png", - width = 384, - height = 32, - line_length = 5, - frame_count = 105, - animation_speed = 0.3, - run_mode = "backward", - shift = util.by_pixel(16, 160) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a1.png", - width = 96, - height = 324, - line_length = 21, - frame_count = 105, - animation_speed = 0.3, - --run_mode = "backward", - shift = util.by_pixel(-128, -18) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a1-mask.png", - width = 96, - height = 324, - line_length = 21, - frame_count = 105, - animation_speed = 0.3, - run_mode = "backward", - shift = util.by_pixel(-128, -18), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a2.png", - width = 96, - height = 324, - line_length = 21, - frame_count = 105, - animation_speed = 0.3, - run_mode = "backward", - shift = util.by_pixel(-32, -18) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a2-mask.png", - width = 96, - height = 324, - line_length = 21, - frame_count = 105, - animation_speed = 0.3, - run_mode = "backward", - shift = util.by_pixel(-32, -18), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a3.png", - width = 96, - height = 324, - line_length = 21, - frame_count = 105, - animation_speed = 0.3, - --run_mode = "backward", - shift = util.by_pixel(64, -18) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a3-mask.png", - width = 96, - height = 324, - line_length = 21, - frame_count = 105, - animation_speed = 0.3, - --run_mode = "backward", - shift = util.by_pixel(64, -18), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a4.png", - width = 96, - height = 324, - line_length = 21, - frame_count = 105, - --run_mode = "backward", - animation_speed = 0.3, - shift = util.by_pixel(160, -18) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a4-mask.png", - width = 96, - height = 324, - line_length = 21, - frame_count = 105, - --run_mode = "backward", - animation_speed = 0.3, - shift = util.by_pixel(160, -18), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - } - }, - - fluid_boxes = { - --1 { - production_type = "input", - pipe_covers = DATA.Pipes.covers(false, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {-2.0, 6.0}}} + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a2-mask.png", + width = 96, + height = 324, + line_length = 21, + frame_count = 105, + animation_speed = 0.3, + run_mode = "backward", + shift = util.by_pixel(-32, -18), + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} }, { - production_type = "output", - pipe_covers = DATA.Pipes.covers(false, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_level = 1, - pipe_connections = {{type = "output", position = {0.0, -6.0}}} + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a3.png", + width = 96, + height = 324, + line_length = 21, + frame_count = 105, + animation_speed = 0.3, + --run_mode = "backward", + shift = util.by_pixel(64, -18) }, - off_when_no_fluid_recipe = true + { + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a3-mask.png", + width = 96, + height = 324, + line_length = 21, + frame_count = 105, + animation_speed = 0.3, + --run_mode = "backward", + shift = util.by_pixel(64, -18), + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} + }, + { + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a4.png", + width = 96, + height = 324, + line_length = 21, + frame_count = 105, + --run_mode = "backward", + animation_speed = 0.3, + shift = util.by_pixel(160, -18) + }, + { + filename = "__pyalienlifegraphics2__/graphics/entity/slaughterhouse/a4-mask.png", + width = 96, + height = 324, + line_length = 21, + frame_count = 105, + --run_mode = "backward", + animation_speed = 0.3, + shift = util.by_pixel(160, -18), + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} + }, + } }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics__/sounds/slaughterhouse.ogg", volume = 1.15}, - idle_sound = {filename = "__pyalienlifegraphics__/sounds/slaughterhouse.ogg", volume = 0.75}, - apparent_volume = 2.5 - } -} + }, + fluid_boxes_off_when_no_fluid_recipe = true, + fluid_boxes = { + --1 + { + production_type = "input", + pipe_covers = py.pipe_covers(false, true, true, true), + pipe_picture = py.pipe_pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), + volume = 1000, + base_level = -1, + pipe_connections = {{flow_direction = "input", position = {-2.0, 5.0}, direction = defines.direction.south}} + }, + { + production_type = "output", + pipe_covers = py.pipe_covers(false, true, true, true), + pipe_picture = py.pipe_pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), + volume = 100, + pipe_connections = {{flow_direction = "output", position = {0.0, -5.0}, direction = defines.direction.north}} + }, + { + production_type = "output", + pipe_covers = py.pipe_covers(false, true, true, true), + pipe_picture = py.pipe_pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), + volume = 100, + pipe_connections = {{flow_direction = "output", position = {-2.0, -5.0}, direction = defines.direction.north}} + }, + }, + vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact-1.ogg", volume = 0.65}, + working_sound = { + sound = {filename = "__pyalienlifegraphics__/sounds/slaughterhouse.ogg", volume = 1.15}, + idle_sound = {filename = "__pyalienlifegraphics__/sounds/slaughterhouse.ogg", volume = 0.3}, + apparent_volume = 2.5 + }, + next_upgrade = "slaughterhouse-mk01" +} \ No newline at end of file diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 0fc066c..e7e4153 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -126,8 +126,6 @@ TECHNOLOGY("molecular-decohesion"):set_fields{prerequisites = {}} TECHNOLOGY("fish-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} -TECHNOLOGY("tin-mk01"):remove_pack("py-science-pack-1") - TECHNOLOGY("microbiology-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} RECIPE("plankton-farm"):remove_ingredient("intermetallics"):remove_ingredient("storage-tank"):remove_ingredient("electronic-circuit") RECIPE("waste-water-void"):remove_unlock("fish-mk01"):add_unlock("electrolysis") From e840f042e67bd985827edddd0a6a4bf31ef01930 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 11 Nov 2024 01:04:56 -0700 Subject: [PATCH 078/110] added support for map setting error message --- changelog.txt | 1 + locale/en/locale.cfg | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index a0d4500..2a423e0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,7 @@ Date: ???? - Fixed terrain generation - Fixed driftwood not spawning Changes: + - Added support for a modified Py Recommended map settings error message - Moved Water Animals - Stage 1 to automation science - Move Tin Processing 1 back to py science 1 - Re-added biomass to fish recipes diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 5acc1f7..b72e264 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -94,6 +94,7 @@ early-concrete=Basic Concrete alloying-mk01=Alloying 1 alloying-mk02=Alloying 2 atomizer-mk00=Early Molecular Decohesion +auog-mk00=Auogs - Stage 0 [controls] recipe-selector=Recipe Selector @@ -102,4 +103,8 @@ recipe-selector=Recipe Selector pyblock-recommended=PyBlock Recommended [map-gen-preset-description] -pyblock-recommended=These are the recommend settings for playing PyBlock. Resources, trees, rocks, cliffs, and most land are disabled.\nIf you want to play with more land, increase the island size or switch to normal terrain generation. \ No newline at end of file +pyblock-recommended=These are the recommend settings for playing PyBlock. Resources, trees, rocks, cliffs, and most land are disabled.\nIf you want to play with more land, increase the island size or switch to normal terrain generation. +default=[color=red]This preset is not recommended for PyBlock, consider using the [/color]PyBlock recommended[color=red] preset from the dropdown above.[/color] + +[messages] +pyblock-warning-no-preset=It looks like you are not using the 'PyBlock' map generation preset. PyBlock has been developed and balanced around not mining resources, but it is still playable on a normal map. \ No newline at end of file From 7db030dca05e2e1ffb2a1eed7c311f42c92c71e2 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 11 Nov 2024 01:05:10 -0700 Subject: [PATCH 079/110] update changelog --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 2a423e0..30e2a8a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,7 +10,7 @@ Date: ???? - Fixed terrain generation - Fixed driftwood not spawning Changes: - - Added support for a modified Py Recommended map settings error message + - Added support for a modified Py Recommended map settings error message, courtesy of PyCoal (thanks melon) - Moved Water Animals - Stage 1 to automation science - Move Tin Processing 1 back to py science 1 - Re-added biomass to fish recipes From 7598395eda9c96fa5444b17a4b43972bfa107884 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 11 Nov 2024 11:07:21 -0700 Subject: [PATCH 080/110] fixed certain technologies not having prerequesites --- ...industry+pypetroleumhandling+pyrawores.lua | 37 +++++++++---------- changelog.txt | 3 +- info.json | 2 +- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua index a06c924..4b2719c 100644 --- a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua +++ b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua @@ -10,7 +10,6 @@ science_pack_order("production-science-pack","007-000542") science_pack_order("py-science-pack-4","008-000590") science_pack_order("py-science-pack-3","006-000494") science_pack_order("space-science-pack","010-000648") -fix_tech("physical-projectile-damage-1",{order="000020",prerequisites={"military","py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("physical-projectile-damage-2",{order="000036",prerequisites={"physical-projectile-damage-1","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("weapon-shooting-speed-1",{order="000020",prerequisites={"military","py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("weapon-shooting-speed-2",{order="000036",prerequisites={"weapon-shooting-speed-1","logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) @@ -60,8 +59,8 @@ fix_tech("follower-robot-count-4",{order="000069",prerequisites={"follower-robot fix_tech("follower-robot-count-5",{order="000096",prerequisites={"follower-robot-count-4","destroyer","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("follower-robot-count-6",{order="000097",prerequisites={"follower-robot-count-5"},unit={count=800,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("follower-robot-count-7",{order="000100",prerequisites={"follower-robot-count-6","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) -fix_tech("stack-inserter",{order="000067",prerequisites={"electric-engine","intermetallics-mk02"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("inserter-capacity-bonus-1",{order="000068",prerequisites={"stack-inserter"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("bulk-inserter",{order="000067",prerequisites={"electric-engine","intermetallics-mk02"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("inserter-capacity-bonus-1",{order="000068",prerequisites={"bulk-inserter"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("inserter-capacity-bonus-2",{order="000069",prerequisites={"inserter-capacity-bonus-1"},unit={count=2750,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("inserter-capacity-bonus-3",{order="000070",prerequisites={"inserter-capacity-bonus-2","chemical-science-pack"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("inserter-capacity-bonus-4",{order="000082",prerequisites={"inserter-capacity-bonus-3","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) @@ -102,7 +101,7 @@ fix_tech("military-3",{order="000068",prerequisites={"chemical-science-pack","mi fix_tech("military-4",{order="000092",prerequisites={"military-3","explosives","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) fix_tech("uranium-ammo",{order="000069",prerequisites={"tank"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("atomic-bomb",{order="000068",prerequisites={"explosives","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("automation-3",{order="000068",prerequisites={"stack-inserter","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("automation-3",{order="000068",prerequisites={"bulk-inserter","machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("explosives",{order="000046",prerequisites={"sulfur-processing"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("cliff-explosives",{order="000047",prerequisites={"explosives","military-2"},unit={count=550,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("land-mine",{order="000047",prerequisites={"explosives","military-science-pack"},unit={count=225,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) @@ -158,7 +157,7 @@ fix_tech("energy-shield-mk2-equipment",{order="000083",prerequisites={"energy-sh fix_tech("solar-panel-equipment",{order="000076",prerequisites={"solar-mk01","modular-armor","electric-energy-distribution-1","lithium-processing"},unit={count=2500,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("personal-laser-defense-equipment",{order="000083",prerequisites={"laser-turret","military-3","low-density-structure","power-armor","solar-panel-equipment"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("discharge-defense-equipment",{order="000083",prerequisites={"laser-turret","military-3","power-armor","solar-panel-equipment"},unit={count=2250,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=3,name="military-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) -fix_tech("fusion-reactor-equipment",{order="000094",prerequisites={"power-armor","fusion-mk02","domestication-mk03","effectivity-module-3"},unit={count=3300,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("fusion-reactor-equipment",{order="000094",prerequisites={"power-armor","fusion-mk02","domestication-mk03","efficiency-module-3"},unit={count=3300,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) fix_tech("exoskeleton-equipment",{order="000093",prerequisites={"power-armor","machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("personal-roboport-equipment",{order="000029",prerequisites={"construction-robotics"},unit={count=175,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("personal-roboport-mk2-equipment",{order="000077",prerequisites={"solar-panel-equipment","personal-roboport-equipment"},unit={count=2750,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) @@ -173,9 +172,9 @@ fix_tech("speed-module-3",{order="000093",prerequisites={"speed-module-2","machi fix_tech("productivity-module",{order="000068",prerequisites={"machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("productivity-module-2",{order="000082",prerequisites={"productivity-module","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("productivity-module-3",{order="000093",prerequisites={"productivity-module-2","machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) -fix_tech("effectivity-module",{order="000068",prerequisites={"machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("effectivity-module-2",{order="000082",prerequisites={"effectivity-module","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) -fix_tech("effectivity-module-3",{order="000093",prerequisites={"effectivity-module-2","machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("efficiency-module",{order="000068",prerequisites={"machine-components-mk02"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) +fix_tech("efficiency-module-2",{order="000082",prerequisites={"efficiency-module","machine-components-mk03"},unit={count=2000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("efficiency-module-3",{order="000093",prerequisites={"efficiency-module-2","machine-components-mk04"},unit={count=3000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) fix_tech("defender",{order="000037",prerequisites={"military-science-pack"},unit={count=75,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="military-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("distractor",{order="000068",prerequisites={"chemical-science-pack","defender"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("destroyer",{order="000093",prerequisites={"military-4","distractor"},unit={count=1300,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=10,name="military-science-pack",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=30,name="py-science-pack-1",type="item"}},time=450}}) @@ -200,7 +199,7 @@ fix_tech("methanol-processing-1",{order="000042",prerequisites={"alloys-mk02"},u fix_tech("methanol-processing-2",{order="000076",prerequisites={"py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("cooling-tower-1",{order="000030",prerequisites={"energy-1"},unit={count=200,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("cooling-tower-2",{order="000068",prerequisites={"cooling-tower-1","energy-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) -fix_tech("excavation-1",{order="000021",prerequisites={"electric-mining-drill","water-animals-mk01"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("excavation-1",{order="000021",prerequisites={"electric-mining-drill","py-science-pack-mk01"},unit={count=70,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("excavation-2",{order="000083",prerequisites={"drilling-fluid-mk03"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("excavation-3",{order="000100",prerequisites={"excavation-2","quantum","drilling-fluid-mk04"},unit={count=500,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) fix_tech("biofilm",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) @@ -239,7 +238,7 @@ fix_tech("artillery-shell-range-10",{order="000097",prerequisites={"artillery-sh fix_tech("artillery-shell-range-11",{order="000098",prerequisites={"artillery-shell-range-10"},unit={count=900,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("artillery-shell-range-12",{order="000099",prerequisites={"artillery-shell-range-11"},unit={count=1100,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("artillery-shell-range-13",{order="000100",prerequisites={"artillery-shell-range-12","quantum"},unit={ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=100,name="py-science-pack-1",type="item"}},time=1200}}) -fix_tech("diet-beacon",{order="000070",prerequisites={"speed-module","productivity-module","effectivity-module","chemical-science-pack","wind-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) +fix_tech("diet-beacon",{order="000070",prerequisites={"speed-module","productivity-module","efficiency-module","chemical-science-pack","wind-mk02"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) fix_tech("advanced-mining-facilities",{order="000045",prerequisites={"vanadium-processing"},unit={count=450,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("sc-unit",{order="000082",prerequisites={"production-science-pack","machine-components-mk03"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("fusion-mk01",{order="000083",prerequisites={"super-alloy","sc-unit","cooling-tower-2"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) @@ -282,7 +281,7 @@ fix_tech("py-burner",{order="000020",prerequisites={"py-science-pack-mk01"},unit fix_tech("machines-mk01",{order="000024",prerequisites={"intermetallics-mk01","radars-mk01"},unit={count=100,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("machines-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("machines-mk03",{order="000068",prerequisites={"chemical-science-pack","machine-components-mk02","neuro-electronics-mk01","logistics-2","titanium-mk02"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) -fix_tech("machines-mk04",{order="000089",prerequisites={"sc-engine","stack-inserter","logistics-3","desulfurization","biotech-machines-mk02"},unit={count=2000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) +fix_tech("machines-mk04",{order="000089",prerequisites={"sc-engine","bulk-inserter","logistics-3","desulfurization","biotech-machines-mk02"},unit={count=2000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) fix_tech("machines-mk05",{order="000100",prerequisites={"quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) fix_tech("quartz-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("quartz-mk02",{order="000047",prerequisites={"quartz-mk01","rare-earth-tech"},unit={count=550,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) @@ -332,7 +331,7 @@ fix_tech("nickel-mk02",{order="000036",prerequisites={"logistic-science-pack"},u fix_tech("nickel-mk03",{order="000069",prerequisites={"nickel-mk02","additives","heavy-oil-mk02","biofilm"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("nickel-mk04",{order="000082",prerequisites={"nickel-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("nickel-mk05",{order="000096",prerequisites={"nickel-mk04","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=60,name="py-science-pack-1",type="item"}},time=600}}) -fix_tech("tin-mk01",{order="000006",prerequisites={"glass","crusher"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("tin-mk01",{order="000006",prerequisites={"py-science-pack-mk01","copper-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("tin-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("tin-mk03",{order="000069",prerequisites={"tin-mk02","biofilm","heavy-oil-mk02","machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("tin-mk04",{order="000082",prerequisites={"tin-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) @@ -455,7 +454,7 @@ fix_tech("rubber",{order="000027",prerequisites={"oil-machines-mk01"},unit={coun fix_tech("rubber-2",{order="000040",prerequisites={"organic-solvent"},unit={count=250,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("rubber-3",{order="000068",prerequisites={"rubber-2","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("fast-inserter-2",{order="000064",prerequisites={"small-parts-mk02"},unit={count=1500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) -fix_tech("stack-inserter-2",{order="000079",prerequisites={"stack-inserter","small-parts-mk03"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("bulk-inserter-2",{order="000079",prerequisites={"bulk-inserter","small-parts-mk03"},unit={count=1500,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("oil-machines-mk01",{order="000026",prerequisites={"automation-2","chromium-mk01"},unit={count=120,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("oil-machines-mk02",{order="000069",prerequisites={"machines-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("oil-machines-mk03",{order="000090",prerequisites={"oil-machines-mk02","coalbed-mk02","machines-mk04","bio-implants"},unit={count=2250,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) @@ -496,7 +495,7 @@ fix_tech("mycology-mk02",{order="000036",prerequisites={"logistic-science-pack"} fix_tech("mycology-mk03",{order="000067",prerequisites={"neuro-electronics-mk01","intermetallics-mk02","bhoddos"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("mycology-mk04",{order="000085",prerequisites={"mycology-mk03","carbon-nanotube","bio-implants","superconductor","super-alloy"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("mycology-mk05",{order="000100",prerequisites={"mycology-mk04","quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) -fix_tech("microbiology-mk01",{order="000007",prerequisites={"tin-mk01"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("microbiology-mk01",{order="000007",prerequisites={"water-animals-mk01", "glass"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("microbiology-mk02",{order="000036",prerequisites={"logistic-science-pack"},unit={count=160,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=1,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"}},time=60}}) fix_tech("microbiology-mk03",{order="000068",prerequisites={"chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("microbiology-mk04",{order="000082",prerequisites={"microbiology-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) @@ -519,7 +518,7 @@ fix_tech("land-animals-mk02",{order="000072",prerequisites={"botany-mk02","mukmo fix_tech("land-animals-mk03",{order="000086",prerequisites={"botany-mk03","xeno"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"}},time=300}}) fix_tech("land-animals-mk04",{order="000100",prerequisites={"land-animals-mk03","quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) fix_tech("land-animals-mk05",{order="000103",prerequisites={"schrodinger-antelope-upgrade","dingrits-upgrade"},unit={count=700,ingredients={{amount=200,name="automation-science-pack",type="item"},{amount=100,name="py-science-pack-1",type="item"},{amount=60,name="logistic-science-pack",type="item"},{amount=30,name="py-science-pack-2",type="item"},{amount=30,name="military-science-pack",type="item"},{amount=20,name="chemical-science-pack",type="item"},{amount=10,name="py-science-pack-3",type="item"},{amount=6,name="production-science-pack",type="item"},{amount=3,name="py-science-pack-4",type="item"},{amount=2,name="utility-science-pack",type="item"},{amount=1,name="space-science-pack",type="item"}},time=1200}}) -fix_tech("water-animals-mk01",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("water-animals-mk01",{order="000020",prerequisites={"glass"},unit={count=30,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("water-animals-mk02",{order="000071",prerequisites={"botany-mk02","alloys-mk03","machines-mk03"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) fix_tech("water-animals-mk03",{order="000086",prerequisites={"botany-mk03","dhilmos-mk02"},unit={count=1400,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("water-animals-mk04",{order="000096",prerequisites={"water-animals-mk03","utility-science-pack"},unit={count=750,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) @@ -688,7 +687,7 @@ fix_tech("simik-mk01",{order="000076",prerequisites={"land-animals-mk02","py-sci fix_tech("simik-mk02",{order="000082",prerequisites={"production-science-pack","domestication-mk04"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("simik-mk03",{order="000092",prerequisites={"simik-mk02","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) fix_tech("simik-mk04",{order="000099",prerequisites={"simik-mk03","organ-printing-mk03","space-science-pack"},unit={count=1100,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) -fix_tech("fish-mk01",{order="000008",prerequisites={"seaweed-mk01","microbiology-mk01","optics"},unit={count=40,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("fish-mk01",{order="000008",prerequisites={"seaweed-mk01","microbiology-mk01","lamp","compost"},unit={count=40,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("fish-mk02",{order="000038",prerequisites={"filtration"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) fix_tech("fish-mk03",{order="000060",prerequisites={"nylon"},unit={count=1000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("fish-mk04",{order="000076",prerequisites={"fish-mk03","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) @@ -727,7 +726,7 @@ fix_tech("biotech-machines-mk01",{order="000015",prerequisites={"genetics-mk01"} fix_tech("biotech-machines-mk02",{order="000068",prerequisites={"chemical-science-pack","neuro-electronics-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) fix_tech("biotech-machines-mk03",{order="000085",prerequisites={"biotech-machines-mk02","bio-implants","carbon-nanotube","superconductor","super-alloy","alloys-mk04"},unit={count=1200,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("biotech-machines-mk04",{order="000100",prerequisites={"biotech-machines-mk03","quantum"},unit={count=1200,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=1,name="utility-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=6,name="py-science-pack-3",type="item"}},time=600}}) -fix_tech("seaweed-mk01",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("seaweed-mk01",{order="000002",prerequisites={"automation-science-pack"},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("seaweed-mk02",{order="000046",prerequisites={"molybdenum-processing","fertilizer-mk01"},unit={count=500,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) fix_tech("seaweed-mk03",{order="000056",prerequisites={"seaweed-mk02","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("seaweed-mk04",{order="000076",prerequisites={"seaweed-mk03","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) @@ -743,7 +742,7 @@ fix_tech("basic-substrate",{order="000009",prerequisites={"vacuum-tube-electroni fix_tech("soil-washing",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("sugar",{order="000038",prerequisites={"tuuphra"},unit={count=200,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) fix_tech("ethanol",{order="000039",prerequisites={"sugar","filtration"},unit={count=225,ingredients={{amount=3,name="automation-science-pack",type="item"},{amount=2,name="py-science-pack-1",type="item"},{amount=1,name="logistic-science-pack",type="item"}},time=60}}) -fix_tech("ash-separation",{order="000002",prerequisites={},unit={count=20,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("ash-separation",{order="000002",prerequisites={"atomizer-mk00"}}) fix_tech("crusher-2",{order="000020",prerequisites={"py-science-pack-mk01"},unit={count=65,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("vatbrain-mk01",{order="000067",prerequisites={"intermetallics-mk02"},unit={count=2250,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("vatbrain-mk02",{order="000068",prerequisites={"chemical-science-pack","vatbrain-mk01"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) @@ -887,7 +886,7 @@ fix_tech("arqad-upgrade",{order="000044",prerequisites={"arqad"},unit={count=500 fix_tech("arthurian-upgrade",{order="000086",prerequisites={"arthurian-mk02"},unit={count=5000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) fix_tech("atomizer-upgrade",{order="000101",prerequisites={"molecular-decohesion-mk04","biotech-machines-mk04"},unit={count=2000,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) fix_tech("auog-upgrade",{order="000060",prerequisites={"auog-mk02"},unit={count=7000,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) -fix_tech("bhoddos-upgrade",{order="000083",prerequisites={"bhoddos-mk02","effectivity-module-2"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) +fix_tech("bhoddos-upgrade",{order="000083",prerequisites={"bhoddos-mk02","efficiency-module-2"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("biofactory-upgrade",{order="000076",prerequisites={"py-science-pack-mk03"},unit={count=7000,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=10,name="py-science-pack-1",type="item"}},time=180}}) fix_tech("bioprinting-upgrade",{order="000089",prerequisites={"organ-printing-mk02","parametric-oscilator"},unit={count=5000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("bioreactor-upgrade",{order="000098",prerequisites={"mass-production","thermal-mk04"},unit={count=2000,ingredients={{amount=100,name="automation-science-pack",type="item"},{amount=60,name="py-science-pack-1",type="item"},{amount=30,name="logistic-science-pack",type="item"},{amount=20,name="military-science-pack",type="item"},{amount=20,name="py-science-pack-2",type="item"},{amount=10,name="chemical-science-pack",type="item"},{amount=6,name="py-science-pack-3",type="item"},{amount=3,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-4",type="item"},{amount=1,name="utility-science-pack",type="item"}},time=600}}) diff --git a/changelog.txt b/changelog.txt index 30e2a8a..fd76d5c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,5 @@ --------------------------------------------------------------------------------------------------- -Version: 3.0.1 +Version: 3.1.0 Date: ???? Bugfixes: - Fixed a crash introduced in recent Pymods updates @@ -8,6 +8,7 @@ Date: ???? - Increased log count in starting inventory - Removed intermetallics from pyhtoplankton farm - Fixed terrain generation + - Fixed efficiency modules, bulk inserter, and inserter hand size having no prerequesites - Fixed driftwood not spawning Changes: - Added support for a modified Py Recommended map settings error message, courtesy of PyCoal (thanks melon) diff --git a/info.json b/info.json index 0f6492b..ea00df5 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "PyBlock", - "version": "3.0.1", + "version": "3.1.0", "factorio_version": "2.0", "title": "PyBlock", "author": "KingArthur", From 5903fab368291a6f43b27f0c0f6ae7f4844b42d3 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 11 Nov 2024 11:47:30 -0700 Subject: [PATCH 081/110] update changelog, and push!!! --- changelog.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index fd76d5c..5b60c6e 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ --------------------------------------------------------------------------------------------------- Version: 3.1.0 -Date: ???? +Date: 2024-11-11 Bugfixes: - Fixed a crash introduced in recent Pymods updates - Moved fawogae with manure recipe from fawogae mk02 to fawogae mk01 @@ -10,6 +10,7 @@ Date: ???? - Fixed terrain generation - Fixed efficiency modules, bulk inserter, and inserter hand size having no prerequesites - Fixed driftwood not spawning + - Fixed the first Auog technology not having a name Changes: - Added support for a modified Py Recommended map settings error message, courtesy of PyCoal (thanks melon) - Moved Water Animals - Stage 1 to automation science From 958660c9d8e79813bdd67bbb02f29512af9e33e0 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sun, 17 Nov 2024 13:32:36 -0700 Subject: [PATCH 082/110] fixed jerky being in rendering and not water animals mk01 --- changelog.txt | 5 +++++ info.json | 2 +- prototypes/updates/pyalienlife-updates.lua | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 5b60c6e..ba2ae61 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 3.1.1 +Date: ???? + Bugfixes: + - Fixed an issue where jerky recipe was unlocked in Rendering instead of Water Animals Mk01 +--------------------------------------------------------------------------------------------------- Version: 3.1.0 Date: 2024-11-11 Bugfixes: diff --git a/info.json b/info.json index ea00df5..9b47f16 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "PyBlock", - "version": "3.1.0", + "version": "3.1.1", "factorio_version": "2.0", "title": "PyBlock", "author": "KingArthur", diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index e7e4153..6c85868 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -106,6 +106,8 @@ RECIPE("fawogae with manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae- RECIPE("fungal-substrate"):remove_unlock("mycology-mk02"):add_unlock("fawogae-mk01") +RECIPE("dried-meat"):remove_unlock(*"rendering"):add_unlock("water-animals-mk01") + --moss to kerogen RECIPE { type = "recipe", From d7d255ce32ecdc4ea8704e7c6b79882cfc73946a Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 19 Nov 2024 10:33:31 -0700 Subject: [PATCH 083/110] actually move dried meat --- prototypes/updates/pyalienlife-updates.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 6c85868..1b47cc3 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -106,7 +106,7 @@ RECIPE("fawogae with manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae- RECIPE("fungal-substrate"):remove_unlock("mycology-mk02"):add_unlock("fawogae-mk01") -RECIPE("dried-meat"):remove_unlock(*"rendering"):add_unlock("water-animals-mk01") +RECIPE("dried-meat-01"):remove_unlock("rendering"):add_unlock("water-animals-mk01") --moss to kerogen RECIPE { From 7813aa0f31338e8c695242b1b5837941f657c0e9 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 23 Nov 2024 21:17:24 -0700 Subject: [PATCH 084/110] up driftwood chance --- changelog.txt | 2 ++ data-updates.lua | 9 ++------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/changelog.txt b/changelog.txt index ba2ae61..97a64f2 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,8 @@ Version: 3.1.1 Date: ???? Bugfixes: - Fixed an issue where jerky recipe was unlocked in Rendering instead of Water Animals Mk01 + Changes: + - Increased logs collected from driftwood from 1 -> 4, but halved driftwood spawn chance --------------------------------------------------------------------------------------------------- Version: 3.1.0 Date: 2024-11-11 diff --git a/data-updates.lua b/data-updates.lua index 3c2bf0c..966f083 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -99,7 +99,7 @@ data:extend { icon = "__PyBlock__/graphics/icons/driftwood.png", icon_size = 64, flags = {"placeable-neutral", "not-on-map"}, - minable = {mining_time = 0.4, result = "log", count = 1}, + minable = {mining_time = 0.4, result = "log", count = 4}, max_health = 20, subgroup = "creatures", order = "b-a", @@ -116,7 +116,7 @@ data:extend { scale = 0.5 } }, - autoplace = { probability_expression = 0.008 }, + autoplace = { probability_expression = 0.004 }, protected_from_tile_building = false } } @@ -128,11 +128,6 @@ data.raw.tree.seaweed = nil seaweed.type = "fish" data.raw.fish.seaweed = seaweed --- allow all inserters to fish -for i, inserter in pairs(data.raw.inserter) do - inserter.use_easter_egg = true -end - --adjust landfill cost for landfill painter if mods['LandfillPainting'] then local recipe_list = { From 5f7fa7d8e776c004854842c99c809e32678aafc0 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 25 Nov 2024 14:10:03 -0700 Subject: [PATCH 085/110] move faw mk01 closer to start --- ...gy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua | 4 ++-- changelog.txt | 2 ++ data-updates.lua | 1 - info.json | 2 +- prototypes/updates/pyalienlife-updates.lua | 4 +--- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua index 4b2719c..981311c 100644 --- a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua +++ b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua @@ -586,7 +586,7 @@ fix_tech("phadai-mk04",{order="000096",prerequisites={"utility-science-pack"},un fix_tech("auog-mk02",{order="000059",prerequisites={"energy-drink"},unit={count=900,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("auog-mk03",{order="000078",prerequisites={"auog-mk02","immunosupressants"},unit={count=1300,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("auog-mk04",{order="000082",prerequisites={"auog-mk03","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) -fix_tech("yaedols",{order="000011",prerequisites={"py-storage-tanks","optics","xenobiology","compost"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("yaedols",{order="000011",prerequisites={"py-storage-tanks","optics","xenobiology","compost","fawogae-mk01"},unit={count=55,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("yaedols-mk02",{order="000068",prerequisites={"mycology-mk03"},unit={count=2500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("yaedols-mk03",{order="000076",prerequisites={"yaedols-mk02","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("yaedols-mk04",{order="000092",prerequisites={"yaedols-mk03","py-science-pack-mk04"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) @@ -627,7 +627,7 @@ fix_tech("domestication-mk05",{order="000096",prerequisites={"domestication-mk04 fix_tech("zipir-mk02",{order="000071",prerequisites={"organ-printing","genetics-mk04","neuro-electronics-mk01"},unit={count=1400,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=1,name="chemical-science-pack",type="item"}},time=120}}) fix_tech("zipir-mk03",{order="000081",prerequisites={"zipir-mk02","tholin-mk01","immunosupressants","neuro-electronics-mk02"},unit={count=1750,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"},{amount=3,name="military-science-pack",type="item"}},time=180}}) fix_tech("zipir-mk04",{order="000092",prerequisites={"zipir-mk03","py-science-pack-mk04","assisted-embryology"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) -fix_tech("fawogae-mk01",{order="000017",prerequisites={"auog-mk00"},unit={count=110,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) +fix_tech("fawogae-mk01",{order="000017",prerequisites={"compost","wood-processing"},unit={count=110,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("fawogae-mk02",{order="000056",prerequisites={"fawogae-mk01","py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("fawogae-mk03",{order="000076",prerequisites={"fawogae-mk02","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("fawogae-mk04",{order="000092",prerequisites={"py-science-pack-mk04","mycology-mk03"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) diff --git a/changelog.txt b/changelog.txt index 97a64f2..2e3822a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,6 +5,8 @@ Date: ???? - Fixed an issue where jerky recipe was unlocked in Rendering instead of Water Animals Mk01 Changes: - Increased logs collected from driftwood from 1 -> 4, but halved driftwood spawn chance + - Moved Fawogae Mk01 closer to the beginning of the tech tree, since manure is no longer required + - Moved fungal substrate from Yaedol Mk01 to Fawogae Mk01 --------------------------------------------------------------------------------------------------- Version: 3.1.0 Date: 2024-11-11 diff --git a/data-updates.lua b/data-updates.lua index 966f083..8fa3ede 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -257,7 +257,6 @@ RECIPE("compost-plant-mk01"):add_ingredient("compost-plant-mk00", 1):remove_unlo RECIPE("slaughterhouse-mk01"):add_ingredient("slaughterhouse-mk00") -- move atomizer recipes to new trigger tech -RECIPE("fawogae-to-iron"):add_unlock("atomizer-mk00"):set_fields{enabled = false} RECIPE("iron-plate"):add_unlock("atomizer-mk00"):set_fields{enabled = false} -- add burner atomizer to atomizer mk01 recipe diff --git a/info.json b/info.json index 9b47f16..9277018 100644 --- a/info.json +++ b/info.json @@ -11,4 +11,4 @@ "base >= 2.0", "pyalternativeenergy >= 3.0.0" ] -} +} \ No newline at end of file diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 1b47cc3..f0eecf2 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -34,7 +34,7 @@ RECIPE("fawogae-codex"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") -RECIPE("fawogae-to-iron"):set_fields{enabled = true}:remove_unlock("molecular-decohesion") +RECIPE("fawogae-to-iron"):add_unlock("atomizer-mk00"):remove_unlock("molecular-decohesion") -- reduce power cost data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "30kW" @@ -184,8 +184,6 @@ TECHNOLOGY("compost"):remove_pack("py-science-pack-1"):set_fields{prerequisites RECIPE("yaedols-culture-mk01"):remove_ingredient("intermetallics"):remove_ingredient("titanium-plate") -RECIPE("fungal-substrate"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") - RECIPE("yaedols-codex"):remove_ingredient("red-wire") RECIPE("smelter-mk01"):remove_ingredient("titanium-plate") From 9e31b0647a1de8cc056289e3c2cf58a5fee82ce8 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 25 Nov 2024 16:06:02 -0700 Subject: [PATCH 086/110] fixed terrain gen, finally --- changelog.txt | 4 + control.lua | 53 ++++---- locale/en/locale.cfg | 8 +- prototypes/mapgen.lua | 241 ++++++++++++++++++++++++++++++++++++- prototypes/tiles/tiles.lua | 14 +-- 5 files changed, 288 insertions(+), 32 deletions(-) diff --git a/changelog.txt b/changelog.txt index 2e3822a..f6d4e3d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,9 +1,13 @@ --------------------------------------------------------------------------------------------------- Version: 3.1.1 Date: ???? + Features: + - Added PyBlock Classic mapgen preset + - Added PyBlock Archipeligo mapgen preset Bugfixes: - Fixed an issue where jerky recipe was unlocked in Rendering instead of Water Animals Mk01 Changes: + - Modified worldgen to increase usable land area - Increased logs collected from driftwood from 1 -> 4, but halved driftwood spawn chance - Moved Fawogae Mk01 closer to the beginning of the tech tree, since manure is no longer required - Moved fungal substrate from Yaedol Mk01 to Fawogae Mk01 diff --git a/control.lua b/control.lua index 8f4dab4..23f0309 100644 --- a/control.lua +++ b/control.lua @@ -1,22 +1,31 @@ -if not script.active_mods['pylandblock'] then - script.on_init(function(event) - if remote.interfaces['freeplay'] then - local created_items = remote.call('freeplay', 'get_created_items') - created_items['landfill'] = 1000 - created_items['stone'] = 250 - created_items['log'] = 200 - created_items["iron-plate"] = 1000 - created_items["copper-plate"] = 500 - created_items["transport-belt"] = 100 - created_items["burner-inserter"] = 50 - created_items['py-tank-1000'] = 1 - created_items['py-tank-3000'] = 1 - created_items['py-tank-5000'] = 1 - created_items['py-tank-8000'] = 1 - created_items["stone-furnace"] = 1 - created_items["py-sinkhole"] = 2 - created_items["py-gas-vent"] = 2 - remote.call('freeplay', 'set_created_items', created_items) - end - end) -end \ No newline at end of file +script.on_init(function(event) + if remote.interfaces['freeplay'] then + local created_items = remote.call('freeplay', 'get_created_items') + created_items['landfill'] = 1000 + created_items['stone'] = 250 + created_items['log'] = 200 + created_items["iron-plate"] = 1000 + created_items["copper-plate"] = 500 + created_items["transport-belt"] = 100 + created_items["burner-inserter"] = 50 + created_items['py-tank-1000'] = 1 + created_items['py-tank-3000'] = 1 + created_items['py-tank-5000'] = 1 + created_items['py-tank-8000'] = 1 + created_items["stone-furnace"] = 1 + created_items["py-sinkhole"] = 2 + created_items["py-gas-vent"] = 2 + remote.call('freeplay', 'set_created_items', created_items) + end +end) + +script.on_event(defines.events.on_player_created, function(event) + local player = game.players[event.player_index] + if not player.valid then return end + local nauvis = game.surfaces["nauvis"] + if not nauvis then return end + local elevation = game.surfaces["nauvis"].map_gen_settings.property_expression_names.elevation + if elevation ~= "pyblock_classic" and elevation ~= "pyblock_island" and elevation ~= "pyblock_archipeligo" then + player.print {"messages.pyblock-warning-no-preset"} + end +end) \ No newline at end of file diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index b72e264..83c4ab6 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -101,10 +101,14 @@ recipe-selector=Recipe Selector [map-gen-preset-name] pyblock-recommended=PyBlock Recommended +pyblock-classic=PyBlock Classic +pyblock-archipeligo=PyBlock Archipeligo [map-gen-preset-description] pyblock-recommended=These are the recommend settings for playing PyBlock. Resources, trees, rocks, cliffs, and most land are disabled.\nIf you want to play with more land, increase the island size or switch to normal terrain generation. -default=[color=red]This preset is not recommended for PyBlock, consider using the [/color]PyBlock recommended[color=red] preset from the dropdown above.[/color] +pyblock-classic=This is classic PyBlock. Resources, trees, rocks, cliffs, and most land are disabled. You start on a single tile of landfill and must build the world as you go.\nIf you want to play with more land, switch to PyBlock Recommended preset from the dropdown above. +pyblock-archipeligo=This is a variation of pyblock where small islands generate, occasionally containing useful resources, but must of your production comes from normal PyBlock methods. +default=[color=red]This preset is not recommended for PyBlock, consider using the [/color]PyBlock Recommended[color=red] preset from the dropdown above.[/color] [messages] -pyblock-warning-no-preset=It looks like you are not using the 'PyBlock' map generation preset. PyBlock has been developed and balanced around not mining resources, but it is still playable on a normal map. \ No newline at end of file +pyblock-warning-no-preset=It looks like you are not using a 'PyBlock' map generation preset. PyBlock has been developed and balanced around not mining resources, but it is still playable on a normal map.\nIf you still want to mine some resources while playing PyBlock, then check out the PyBlock Archipeligo preset. \ No newline at end of file diff --git a/prototypes/mapgen.lua b/prototypes/mapgen.lua index 2173590..05dba05 100644 --- a/prototypes/mapgen.lua +++ b/prototypes/mapgen.lua @@ -1,8 +1,203 @@ +data:extend{ + { + type = "noise-expression", + name = "pyblock_classic", + intended_property = "elevation", + expression = "0-abs(x)-abs(y)" + } +} + +data.raw["noise-expression"]["pyblock_island"] = table.deepcopy(data.raw["noise-expression"]["elevation_island"]) +data.raw["noise-expression"]["pyblock_island"].name = "pyblock_island" +data.raw["noise-expression"]["pyblock_archipeligo"] = table.deepcopy(data.raw["noise-expression"]["elevation_nauvis"]) +data.raw["noise-expression"]["pyblock_archipeligo"].name = "pyblock_archipeligo" + data.raw["map-gen-presets"].default["pyblock-recommended"] = { order = "i", basic_settings = { property_expression_names = { - elevation = "elevation_island", + elevation = "pyblock_island", + moisture = "moisture_basic", + aux = "aux_basic", + }, + cliff_settings = { + cliff_elevation_interval = 0 + }, + autoplace_settings = { + entity = { + treat_missing_as_default = false, + settings = { + fish = { + frequency = 1 + }, + driftwood = { + frequency = 1 + }, + seaweed = { + frequency = 1 + } + } + } + }, + autoplace_controls = { + ["water"] = { + frequency = 6 + }, + ["enemy-base"] = { + frequency = 0 + }, + ["trees"] = { + frequency = 0 + }, + ["rocks"] = { + frequency = 0 + }, + ["iron-ore"] = { + frequency = 0 + }, + ["copper-ore"] = { + frequency = 0 + }, + ["coal"] = { + frequency = 0 + }, + ["crude-oil"] = { + frequency = 0 + }, + ["stone"] = { + frequency = 0 + }, + ["uranium-ore"] = { + frequency = 0 + }, + ["borax"] = { + frequency = 0 + }, + ["niobium"] = { + frequency = 0 + }, + ["molybdenum-ore"] = { + frequency = 0 + }, + ["volcanic-pipe"] = { + frequency = 0 + }, + ["regolites"] = { + frequency = 0 + }, + ["ore-quartz"] = { + frequency = 0 + }, + ["raw-coal"] = { + frequency = 0 + }, + ["ore-aluminium"] = { + frequency = 0 + }, + ["ore-chromium"] = { + frequency = 0 + }, + ["ore-lead"] = { + frequency = 0 + }, + ["ore-nickel"] = { + frequency = 0 + }, + ["ore-tin"] = { + frequency = 0 + }, + ["ore-titanium"] = { + frequency = 0 + }, + ["ore-zinc"] = { + frequency = 0 + }, + ["quartz-rock"] = { + frequency = 0 + }, + ["chromium-rock"] = { + frequency = 0 + }, + ["aluminium-rock"] = { + frequency = 0 + }, + ["copper-rock"] = { + frequency = 0 + }, + ["salt-rock"] = { + frequency = 0 + }, + ["iron-rock"] = { + frequency = 0 + }, + ["coal-rock"] = { + frequency = 0 + }, + ["lead-rock"] = { + frequency = 0 + }, + ["nickel-rock"] = { + frequency = 0 + }, + ["tin-rock"] = { + frequency = 0 + }, + ["titanium-rock"] = { + frequency = 0 + }, + ["uranium-rock"] = { + frequency = 0 + }, + ["zinc-rock"] = { + frequency = 0 + }, + ["phosphate-rock-02"] = { + frequency = 0 + }, + ["phosphate-rock"] = { + frequency = 0 + }, + ["rare-earth-bolide"] = { + frequency = 0 + }, + ["oil-sand"] = { + frequency = 0 + }, + ["sulfur-patch"] = { + frequency = 0 + }, + ["bitumen-seep"] = { + frequency = 0 + }, + ["ore-bioreserve"] = { + frequency = 0 + }, + ["ore-nexelit"] = { + frequency = 0 + }, + ["geothermal-crack"] = { + frequency = 0 + }, + ["ree"] = { + frequency = 0 + }, + ["antimonium"] = { + frequency = 0 + }, + } + }, + advanced_settings = { + pollution = { + enabled = false + } + } +} + +data.raw["map-gen-presets"].default["pyblock-classic"] = { + order = "j", + basic_settings = { + property_expression_names = { + elevation = "pyblock_classic", moisture = "moisture_basic", aux = "aux_basic", }, @@ -177,4 +372,48 @@ data.raw["map-gen-presets"].default["pyblock-recommended"] = { enabled = false } } +} + +data.raw["map-gen-presets"].default["pyblock-archipeligo"] = { + order = "k", + basic_settings = { + property_expression_names = { + elevation = "pyblock_archipeligo", + moisture = "moisture_basic", + aux = "aux_basic", + }, + cliff_settings = { + cliff_elevation_interval = 0 + }, + autoplace_settings = { + entity = { + treat_missing_as_default = false, + settings = { + fish = { + frequency = 1 + }, + driftwood = { + frequency = 1 + }, + seaweed = { + frequency = 1 + } + } + } + }, + autoplace_controls = { + ["water"] = { + frequency = 4, + size = 6 + }, + ["enemy-base"] = { + frequency = 0 + }, + } + }, + advanced_settings = { + pollution = { + enabled = false + } + } } \ No newline at end of file diff --git a/prototypes/tiles/tiles.lua b/prototypes/tiles/tiles.lua index d028ffc..d7671cd 100644 --- a/prototypes/tiles/tiles.lua +++ b/prototypes/tiles/tiles.lua @@ -1,11 +1,11 @@ -for _, t in pairs(data.raw.tile) do - t.autoplace = { probability_expression = "0" } -end +-- for _, t in pairs(data.raw.tile) do +-- t.autoplace = { probability_expression = "0" } +-- end -data.raw.planet.nauvis.map_gen_settings.autoplace_settings.tile.settings.landfill = {} +-- data.raw.planet.nauvis.map_gen_settings.autoplace_settings.tile.settings.landfill = {} -data.raw.tile["landfill"].autoplace = { probability_expression = "if(elevation > -2, 1, -inf)" } +-- data.raw.tile["landfill"].autoplace = { probability_expression = "if(elevation > 0, 1, -inf)" } -data.raw.tile["water"].autoplace = { probability_expression = "water_base(3, 0.1)" } +-- data.raw.tile["water"].autoplace = { probability_expression = "if(elevation > -3, 0.1, -inf)" } -data.raw.tile["deepwater"].autoplace = { probability_expression = "water_base(0, 0.01)" } \ No newline at end of file +-- data.raw.tile["deepwater"].autoplace = { probability_expression = "0.001" } \ No newline at end of file From 86b63b384a26d5716fffc666bd4918f8ed8b60ed Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 25 Nov 2024 16:24:51 -0700 Subject: [PATCH 087/110] change burner entites to mk00 internally --- data-updates.lua | 8 +++---- data.lua | 8 +++---- locale/en/locale.cfg | 24 +++++++++---------- migrations/PyBlock_3.1.1.json | 20 ++++++++++++++++ prototypes/buildings/atomizer-mk00.lua | 2 +- .../buildings/{basic-ddc.lua => ddc-mk00.lua} | 16 ++++++------- ...-extractor.lua => soil-extractor-mk00.lua} | 12 +++++----- .../{burner-washer.lua => washer-mk00.lua} | 18 +++++++------- .../{burner-wpu.lua => wpu-mk00.lua} | 12 +++++----- 9 files changed, 70 insertions(+), 50 deletions(-) create mode 100644 migrations/PyBlock_3.1.1.json rename prototypes/buildings/{basic-ddc.lua => ddc-mk00.lua} (95%) rename prototypes/buildings/{burner-soil-extractor.lua => soil-extractor-mk00.lua} (94%) rename prototypes/buildings/{burner-washer.lua => washer-mk00.lua} (91%) rename prototypes/buildings/{burner-wpu.lua => wpu-mk00.lua} (94%) diff --git a/data-updates.lua b/data-updates.lua index 8fa3ede..892f5ff 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -244,13 +244,13 @@ RECIPE("inductor1-2"):add_unlock("ash-separation"):set_fields{enabled = false} TECHNOLOGY("automation-science-pack"):set_fields{research_trigger = { type = "craft-item", item = "copper-plate", count = 10 }}:set_fields{prerequisites = {"ash-separation"}} -- burner/steam mk00 recipe adjustments -RECIPE("wpu"):add_ingredient("inductor1", 12):add_ingredient("burner-wpu", 1):remove_unlock("automation-science-pack"):add_unlock("wood-processing"):set_fields{enabled = false} +RECIPE("wpu"):add_ingredient("inductor1", 12):add_ingredient("wpu-mk00", 1):remove_unlock("automation-science-pack"):add_unlock("wood-processing"):set_fields{enabled = false} -RECIPE("soil-extractor-mk01"):remove_ingredient("burner-mining-drill"):add_ingredient("burner-soil-extractor", 1) +RECIPE("soil-extractor-mk01"):remove_ingredient("burner-mining-drill"):add_ingredient("soil-extractor-mk00", 1) -RECIPE("washer"):remove_ingredient("steam-engine"):add_ingredient("burner-washer", 1) +RECIPE("washer"):remove_ingredient("steam-engine"):add_ingredient("washer-mk00", 1) -RECIPE("flora-collector-mk01"):remove_ingredient("soil-extractor-mk01"):add_ingredient("burner-soil-extractor", 1) +RECIPE("flora-collector-mk01"):remove_ingredient("soil-extractor-mk01"):add_ingredient("soil-extractor-mk00", 1) RECIPE("compost-plant-mk01"):add_ingredient("compost-plant-mk00", 1):remove_unlock("compost"):add_unlock("fertilizer-mk01") diff --git a/data.lua b/data.lua index 0b12111..1b8d596 100644 --- a/data.lua +++ b/data.lua @@ -37,12 +37,12 @@ require('prototypes/tiles/tiles') --buildings-- require('prototypes/buildings/atomizer-mk00') -require('prototypes/buildings/basic-ddc') -require('prototypes/buildings/burner-washer') +require('prototypes/buildings/ddc-mk00') +require('prototypes/buildings/washer-mk00') require('prototypes/buildings/automated-screener-mk00') require('prototypes/buildings/compost-plant-mk00') -require('prototypes/buildings/burner-soil-extractor') -require('prototypes/buildings/burner-wpu') +require('prototypes/buildings/soil-extractor-mk00') +require('prototypes/buildings/wpu-mk00') require("prototypes/buildings/geothermal-plant-mk01") require("prototypes/buildings/cultivator") require('prototypes/buildings/slaughterhouse-mk00') diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 83c4ab6..f7ca5f8 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -5,12 +5,12 @@ pb-wrought-iron-plate=Wrought Iron Plate scrap-iron=Scrap Iron scrap-copper=Scrap Copper cheap-iron-mine=Early Iron Mine -basic-ddc=Crude Distructive Distilation Column +ddc-mk00=Distructive Distilation Column Mk 00 starter-botanical-nursery=Crude Nursery -burner-soil-extractor=Steampowered Soil Extractor +soil-extractor-mk00=Soil Extractor Mk 00 burner-quenching-tower=Steampowered Quenching Tower -burner-washer=Steampowered Washer -burner-wpu=Steampowred Wood Processing Unit +washer-mk00=Washer Mk 00 +wpu-mk00=Wood Processing Unit Mk 00 wrought-iron-pipe=Wrought Iron Pipe wrought-iron-gear-wheel=Wrought Iron Gear Wheel atomizer-mk00=Atomizer MK 00 @@ -42,12 +42,12 @@ ethylenediamine=Ethylenediamine [recipe-name] wrought-iron=Wrought Iron cheap-iron-mine=Early Iron Mine -basic-ddc=Crude Distructive Distilation Column +ddc-mk00=Distructive Distilation Column Mk 00 starter-botanical-nursery=Crude Nursery -burner-soil-extractor=Steampowered Soil Extractor +soil-extractor-mk00=Soil Extractor Mk 00 burner-quenching-tower=Steampowered Quenching Tower -burner-washer=Steampowered Washer -burner-wpu=Steampowered Wood Processing Unit +washer-mk00=Washer Mk 00 +wpu-mk00=Wood Processing Unit Mk 00 wrought-iron-pipe=Wrought Iron Pipe wrought-iron-gear-wheel=Wrought Iron Gear Wheel wrought-to-iron=Smelt Wrought Iron to Higher Grade Iron @@ -68,12 +68,12 @@ sap-cultivation=Sap Extraction [entity-name] driftwood=Driftwood cheap-iron-mine=Early Iron Mine -basic-ddc=Crude Distructive Distilation Column +ddc-mk00=Distructive Distilation Column Mk 00 starter-botanical-nursery=Crude Nursery -burner-soil-extractor=Steampowered Soil Extractor +soil-extractor-mk00=Soil Extractor Mk 00 burner-quenching-tower=Steampowered Quenching Tower -burner-washer=Steampowered Washer -burner-wpu=Steampowered Wood Processing Unit +washer-mk00=Washer Mk 00 +wpu-mk00=Wood Processing Unit Mk 00 wrought-iron-pipe=Wrought Iron Pipe atomizer-mk00=Atomizer MK 00 automated-screener-mk00=Automated screener MK 00 diff --git a/migrations/PyBlock_3.1.1.json b/migrations/PyBlock_3.1.1.json new file mode 100644 index 0000000..e71cda7 --- /dev/null +++ b/migrations/PyBlock_3.1.1.json @@ -0,0 +1,20 @@ +{ + "entity":[ + ["burner-wpu", "wpu-mk00"], + ["burner-washer", "washer-mk00"], + ["basic-ddc", "ddc-mk00"], + ["burner-soil-extractor", "soil-extractor-mk00"] + ], + "item":[ + ["burner-wpu", "wpu-mk00"], + ["burner-washer", "washer-mk00"], + ["basic-ddc", "ddc-mk00"], + ["burner-soil-extractor", "soil-extractor-mk00"] + ], + "recipe":[ + ["burner-wpu", "wpu-mk00"], + ["burner-washer", "washer-mk00"], + ["basic-ddc", "ddc-mk00"], + ["burner-soil-extractor", "soil-extractor-mk00"] + ] +} \ No newline at end of file diff --git a/prototypes/buildings/atomizer-mk00.lua b/prototypes/buildings/atomizer-mk00.lua index ee1397a..5c4b829 100644 --- a/prototypes/buildings/atomizer-mk00.lua +++ b/prototypes/buildings/atomizer-mk00.lua @@ -4,7 +4,7 @@ RECIPE { energy_required = 0.5, enabled = false, ingredients = { - {"burner-washer", 1}, + {"washer-mk00", 1}, {"iron-plate", 15}, {"copper-plate", 20}, {"pipe", 10} diff --git a/prototypes/buildings/basic-ddc.lua b/prototypes/buildings/ddc-mk00.lua similarity index 95% rename from prototypes/buildings/basic-ddc.lua rename to prototypes/buildings/ddc-mk00.lua index 2c8e7fb..40c29ff 100644 --- a/prototypes/buildings/basic-ddc.lua +++ b/prototypes/buildings/ddc-mk00.lua @@ -49,7 +49,7 @@ end RECIPE { type = "recipe", - name = "basic-ddc", + name = "ddc-mk00", energy_required = 8, enabled = true, ingredients = @@ -59,29 +59,29 @@ RECIPE { {name = "pipe", amount = 5} }, results = { - {name = "basic-ddc", amount = 1} + {name = "ddc-mk00", amount = 1} } } ITEM { type = "item", - name = "basic-ddc", + name = "ddc-mk00", icon = "__PyBlock__/graphics/icons/distilator-mk00.png", icon_size = 64, flags = {}, subgroup = "py-cp-buildings-mk00", order = "k", - place_result = "basic-ddc", + place_result = "ddc-mk00", stack_size = 20 } ENTITY { type = "assembling-machine", - name = "basic-ddc", + name = "ddc-mk00", icon = "__PyBlock__/graphics/icons/distilator-mk00.png", icon_size = 64, flags = {"placeable-neutral", "placeable-player", "player-creation"}, - minable = {mining_time = 1, result = "basic-ddc"}, + minable = {mining_time = 1, result = "ddc-mk00"}, max_health = 200, corpse = "medium-remnants", repair_sound = { filename = "__base__/sound/manual-repair-simple.ogg" }, @@ -144,7 +144,7 @@ ENTITY { graphics_set = { animation = make_2way_animation_from_spritesheet({ layers = { { - filename = "__PyBlock__/graphics/hr-basic-ddc.png", + filename = "__PyBlock__/graphics/hr-ddc-mk00.png", priority = "extra-high", width = 219, height = 215, @@ -153,7 +153,7 @@ ENTITY { scale = 0.5, hr_version = { - filename = "__PyBlock__/graphics/hr-basic-ddc.png", + filename = "__PyBlock__/graphics/hr-ddc-mk00.png", priority = "extra-high", width = 219, height = 215, diff --git a/prototypes/buildings/burner-soil-extractor.lua b/prototypes/buildings/soil-extractor-mk00.lua similarity index 94% rename from prototypes/buildings/burner-soil-extractor.lua rename to prototypes/buildings/soil-extractor-mk00.lua index d28a86d..cf8c01c 100644 --- a/prototypes/buildings/burner-soil-extractor.lua +++ b/prototypes/buildings/soil-extractor-mk00.lua @@ -1,7 +1,7 @@ RECIPE { type = "recipe", - name = "burner-soil-extractor", + name = "soil-extractor-mk00", energy_required = 6, enabled = true, ingredients = { @@ -11,29 +11,29 @@ RECIPE { {"iron-gear-wheel", 15} }, results = { - {"burner-soil-extractor", 1} + {"soil-extractor-mk00", 1} } } ITEM { type = "item", - name = "burner-soil-extractor", + name = "soil-extractor-mk00", icon = "__PyBlock__/graphics/icons/soil-extractor-mk00.png", icon_size = 64, flags = {}, subgroup = "py-cp-buildings-mk00", order = "g", - place_result = "burner-soil-extractor", + place_result = "soil-extractor-mk00", stack_size = 10 } ENTITY { type = "assembling-machine", - name = "burner-soil-extractor", + name = "soil-extractor-mk00", icon = "__PyBlock__/graphics/icons/soil-extractor-mk00.png", icon_size = 64, flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "burner-soil-extractor"}, + minable = {mining_time = 1, result = "soil-extractor-mk00"}, fast_replaceable_group = "soil-extractor", max_health = 300, corpse = "big-remnants", diff --git a/prototypes/buildings/burner-washer.lua b/prototypes/buildings/washer-mk00.lua similarity index 91% rename from prototypes/buildings/burner-washer.lua rename to prototypes/buildings/washer-mk00.lua index 3e91c6a..3fa0ae0 100644 --- a/prototypes/buildings/burner-washer.lua +++ b/prototypes/buildings/washer-mk00.lua @@ -1,7 +1,7 @@ RECIPE { type = "recipe", - name = "burner-washer", + name = "washer-mk00", energy_required = 4, enabled = true, ingredients = { @@ -12,27 +12,27 @@ RECIPE { {"stone-brick", 20} }, results = { - {"burner-washer", 1} + {"washer-mk00", 1} } } ITEM { type = "item", - name = "burner-washer", + name = "washer-mk00", icon = "__PyBlock__/graphics/icons/washer-mk00.png", icon_size = 64, flags = {}, subgroup = "py-cp-buildings-mk00", order = "z2", - place_result = "burner-washer", + place_result = "washer-mk00", stack_size = 10 } burner_washer = table.deepcopy(data.raw["assembling-machine"].washer) -burner_washer.name = "burner-washer" +burner_washer.name = "washer-mk00" burner_washer.icon = "__PyBlock__/graphics/icons/washer-mk00.png" -burner_washer.minable = {mining_time = 1, result = "burner-washer"} +burner_washer.minable = {mining_time = 1, result = "washer-mk00"} burner_washer.module_specification = { module_slots = 0 } burner_washer.crafting_speed = 0.5 burner_washer.energy_source = { @@ -54,15 +54,15 @@ burner_washer.energy_source = { burner_washer.energy_usage = "100kW" burner_washer.next_upgrade = "washer" burner_washer.graphics_set.animation.layers[2].tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} -data.raw["assembling-machine"]["burner-washer"] = burner_washer +data.raw["assembling-machine"]["washer-mk00"] = burner_washer -- ENTITY { -- type = "assembling-machine", --- name = "burner-washer", +-- name = "washer-mk00", -- icon = "__PyBlock__/graphics/icons/washer-mk00.png", -- icon_size = 64, -- flags = {"placeable-neutral", "player-creation"}, --- minable = {mining_time = 1, result = "burner-washer"}, +-- minable = {mining_time = 1, result = "washer-mk00"}, -- fast_replaceable_group = "washer", -- max_health = 250, -- corpse = "big-remnants", diff --git a/prototypes/buildings/burner-wpu.lua b/prototypes/buildings/wpu-mk00.lua similarity index 94% rename from prototypes/buildings/burner-wpu.lua rename to prototypes/buildings/wpu-mk00.lua index 67d92af..3c4001a 100644 --- a/prototypes/buildings/burner-wpu.lua +++ b/prototypes/buildings/wpu-mk00.lua @@ -1,7 +1,7 @@ RECIPE { type = "recipe", - name = "burner-wpu", + name = "wpu-mk00", energy_required = 5, enabled = true, ingredients = { @@ -13,29 +13,29 @@ RECIPE { {"copper-cable", 30} }, results = { - {"burner-wpu", 1} + {"wpu-mk00", 1} } }:add_unlock("automation-science-pack") ITEM { type = "item", - name = "burner-wpu", + name = "wpu-mk00", icon = "__PyBlock__/graphics/icons/wpu-mk00.png", icon_size = 64, flags = {}, subgroup = "py-cp-buildings-mk00", order = "c", - place_result = "burner-wpu", + place_result = "wpu-mk00", stack_size = 10 } ENTITY { type = "assembling-machine", - name = "burner-wpu", + name = "wpu-mk00", icon = "__PyBlock__/graphics/icons/wpu-mk00.png", icon_size = 64, flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "burner-wpu"}, + minable = {mining_time = 1, result = "wpu-mk00"}, fast_replaceable_group = "wpu", max_health = 800, corpse = "medium-remnants", From b94f11af1dc52c8f01635bcc7722447a97e0b307 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Mon, 25 Nov 2024 22:01:22 -0700 Subject: [PATCH 088/110] remove early auog tech --- ...industry+pypetroleumhandling+pyrawores.lua | 3 +-- changelog.txt | 2 ++ data.lua | 18 ------------------ graphics/{hr-basic-ddc.png => ddc-mk00.png} | Bin locale/en/locale.cfg | 1 - prototypes/buildings/cultivator.lua | 2 +- prototypes/buildings/ddc-mk00.lua | 4 ++-- prototypes/updates/pyalienlife-updates.lua | 15 --------------- 8 files changed, 6 insertions(+), 39 deletions(-) rename graphics/{hr-basic-ddc.png => ddc-mk00.png} (100%) diff --git a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua index 981311c..178f404 100644 --- a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua +++ b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua @@ -394,7 +394,7 @@ fix_tech("drill-head-mk01",{order="000026",prerequisites={"chromium-mk01"},unit= fix_tech("drill-head-mk02",{order="000068",prerequisites={"drill-head-mk01","chemical-science-pack"},unit={count=1000,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("drill-head-mk03",{order="000083",prerequisites={"drill-head-mk02","super-alloy","casting-mk02"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("aerogel",{order="000069",prerequisites={"epoxy","quartz-mk03"},unit={count=1100,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) -fix_tech("auog",{order="000031",prerequisites={"ralesia","auog-mk00"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("auog",{order="000031",prerequisites={"ralesia"},unit={count=225,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("basic-electronics",{order="000064",prerequisites={"integrated-circuits-1","stainless-steel-mk01","aluminium-mk02","fine-electronics"},unit={count=1500,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"},{amount=3,name="py-science-pack-1",type="item"}},time=90}}) fix_tech("biopolymer",{order="000083",prerequisites={"microbiology-mk04"},unit={count=1000,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("cadaveric-arum",{order="000007",prerequisites={"botany-mk01","optics"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) @@ -863,7 +863,6 @@ fix_tech("ammonium-oxalate",{order="000076",prerequisites={"py-science-pack-mk03 fix_tech("electric-energy-distribution-3",{order="000063",prerequisites={"electric-energy-distribution-2","stainless-steel-mk01"},unit={count=1400,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("electric-energy-distribution-4",{order="000070",prerequisites={"electric-energy-distribution-3","super-steel-mk01"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=6,name="py-science-pack-1",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"}},time=120}}) fix_tech("electric-energy-distribution-5",{order="000082",prerequisites={"electric-energy-distribution-4","production-science-pack"},unit={count=900,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) -fix_tech("auog-mk00",{order="000016",prerequisites={"biotech-machines-mk01","fluid-handling"},unit={count=100,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("kicalk-mk02",{order="000056",prerequisites={"py-science-pack-mk02"},unit={count=650,ingredients={{amount=6,name="automation-science-pack",type="item"},{amount=3,name="py-science-pack-1",type="item"},{amount=2,name="logistic-science-pack",type="item"},{amount=1,name="py-science-pack-2",type="item"}},time=90}}) fix_tech("kicalk-mk03",{order="000076",prerequisites={"kicalk-mk02","py-science-pack-mk03"},unit={count=1100,ingredients={{amount=20,name="automation-science-pack",type="item"},{amount=10,name="py-science-pack-1",type="item"},{amount=6,name="logistic-science-pack",type="item"},{amount=3,name="py-science-pack-2",type="item"},{amount=2,name="chemical-science-pack",type="item"},{amount=1,name="py-science-pack-3",type="item"}},time=180}}) fix_tech("kicalk-mk04",{order="000092",prerequisites={"kicalk-mk03","py-science-pack-mk04","parametric-oscilator"},unit={count=1100,ingredients={{amount=60,name="automation-science-pack",type="item"},{amount=30,name="py-science-pack-1",type="item"},{amount=20,name="logistic-science-pack",type="item"},{amount=10,name="py-science-pack-2",type="item"},{amount=6,name="chemical-science-pack",type="item"},{amount=3,name="py-science-pack-3",type="item"},{amount=2,name="production-science-pack",type="item"},{amount=1,name="py-science-pack-4",type="item"},{amount=10,name="military-science-pack",type="item"}},time=450}}) diff --git a/changelog.txt b/changelog.txt index f6d4e3d..0dc6761 100644 --- a/changelog.txt +++ b/changelog.txt @@ -11,6 +11,8 @@ Date: ???? - Increased logs collected from driftwood from 1 -> 4, but halved driftwood spawn chance - Moved Fawogae Mk01 closer to the beginning of the tech tree, since manure is no longer required - Moved fungal substrate from Yaedol Mk01 to Fawogae Mk01 + - Changed "Burner" and "Steampowered" machines to Mk00 + - Removed unneeded Auog technology, since Fawogae Mk01 doesn't use manure anymore --------------------------------------------------------------------------------------------------- Version: 3.1.0 Date: 2024-11-11 diff --git a/data.lua b/data.lua index 1b8d596..b9b8e7f 100644 --- a/data.lua +++ b/data.lua @@ -1,21 +1,3 @@ -TECHNOLOGY { - type = "technology", - name = "auog-mk00", - icon = "__pyalienlifegraphics__/graphics/technology/auog.png", - icon_size = 128, - order = "c-a", - prerequisites = {}, - effects = {}, - unit = { - count = 100, - ingredients = { - {"automation-science-pack", 1}, - }, - time = 50 - } -} - - TECHNOLOGY { type = "technology", name = "atomizer-mk00", diff --git a/graphics/hr-basic-ddc.png b/graphics/ddc-mk00.png similarity index 100% rename from graphics/hr-basic-ddc.png rename to graphics/ddc-mk00.png diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index f7ca5f8..1ea69fa 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -94,7 +94,6 @@ early-concrete=Basic Concrete alloying-mk01=Alloying 1 alloying-mk02=Alloying 2 atomizer-mk00=Early Molecular Decohesion -auog-mk00=Auogs - Stage 0 [controls] recipe-selector=Recipe Selector diff --git a/prototypes/buildings/cultivator.lua b/prototypes/buildings/cultivator.lua index 0dd09f3..3486597 100644 --- a/prototypes/buildings/cultivator.lua +++ b/prototypes/buildings/cultivator.lua @@ -9,7 +9,7 @@ RECIPE { {type = "item", name = "iron-plate", amount = 20}, {type = "item", name = "steam-engine", amount = 1}, {type = "item", name = "inductor1", amount = 5}, - {type = "item", name = "burner-soil-extractor", amount = 1}, + {type = "item", name = "soil-extractor-mk00", amount = 1}, }, results = { {type = "item", name = "flora-cultivator-mk01", amount = 1} diff --git a/prototypes/buildings/ddc-mk00.lua b/prototypes/buildings/ddc-mk00.lua index 40c29ff..3844a8d 100644 --- a/prototypes/buildings/ddc-mk00.lua +++ b/prototypes/buildings/ddc-mk00.lua @@ -144,7 +144,7 @@ ENTITY { graphics_set = { animation = make_2way_animation_from_spritesheet({ layers = { { - filename = "__PyBlock__/graphics/hr-ddc-mk00.png", + filename = "__PyBlock__/graphics/ddc-mk00.png", priority = "extra-high", width = 219, height = 215, @@ -153,7 +153,7 @@ ENTITY { scale = 0.5, hr_version = { - filename = "__PyBlock__/graphics/hr-ddc-mk00.png", + filename = "__PyBlock__/graphics/ddc-mk00.png", priority = "extra-high", width = 219, height = 215, diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index f0eecf2..5636f6e 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -84,21 +84,6 @@ RECIPE("stone-wool"):remove_unlock("zipir"):add_unlock("cadaveric-arum") RECIPE("cadaveric-arum-mk01"):remove_ingredient("hydrocyclone-mk01"):remove_ingredient("electronic-circuit"):remove_ingredient("plastic-bar"):remove_ingredient("intermetallics"):remove_ingredient("steel-plate"):add_ingredient({name = "steel-plate", amount = 5}):add_ingredient({name = "pipe", amount = 4}):add_ingredient({name = "soil", amount = 20}):remove_ingredient("botanical-nursery") ---move foodless auogs to auog zero -RECIPE("auog-paddock-mk01"):remove_unlock("auog"):add_unlock("auog-mk00"):remove_ingredient("intermetallics") - -RECIPE("auog"):remove_unlock("auog"):add_unlock("auog-mk00"):remove_ingredient("cdna") - -RECIPE("earth-bear-sample"):remove_unlock("auog"):add_unlock("auog-mk00") - -RECIPE("auog-codex"):remove_unlock("auog"):add_unlock("auog-mk00") - -RECIPE("auog-pup-breeding-1"):remove_unlock("auog"):add_unlock("auog-mk00") - -RECIPE("auog-maturing-1"):remove_unlock("auog"):add_unlock("auog-mk00") - -RECIPE("auog-pooping-1"):remove_unlock("auog"):add_unlock("auog-mk00") - --move fawogae with manure up TECHNOLOGY("fawogae-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} From fb26241c6cc66af9bf7fdcedd44d3725e0225e19 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 26 Nov 2024 00:44:59 -0700 Subject: [PATCH 089/110] correct capitalization on mk00 entities --- locale/en/locale.cfg | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 1ea69fa..bdfd83f 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -5,12 +5,12 @@ pb-wrought-iron-plate=Wrought Iron Plate scrap-iron=Scrap Iron scrap-copper=Scrap Copper cheap-iron-mine=Early Iron Mine -ddc-mk00=Distructive Distilation Column Mk 00 +ddc-mk00=Distructive Distilation Column MK 00 starter-botanical-nursery=Crude Nursery -soil-extractor-mk00=Soil Extractor Mk 00 +soil-extractor-mk00=Soil Extractor MK 00 burner-quenching-tower=Steampowered Quenching Tower -washer-mk00=Washer Mk 00 -wpu-mk00=Wood Processing Unit Mk 00 +washer-mk00=Washer MK 00 +wpu-mk00=Wood Processing Unit MK 00 wrought-iron-pipe=Wrought Iron Pipe wrought-iron-gear-wheel=Wrought Iron Gear Wheel atomizer-mk00=Atomizer MK 00 @@ -42,12 +42,12 @@ ethylenediamine=Ethylenediamine [recipe-name] wrought-iron=Wrought Iron cheap-iron-mine=Early Iron Mine -ddc-mk00=Distructive Distilation Column Mk 00 +ddc-mk00=Distructive Distilation Column MK 00 starter-botanical-nursery=Crude Nursery -soil-extractor-mk00=Soil Extractor Mk 00 +soil-extractor-mk00=Soil Extractor MK 00 burner-quenching-tower=Steampowered Quenching Tower -washer-mk00=Washer Mk 00 -wpu-mk00=Wood Processing Unit Mk 00 +washer-mk00=Washer MK 00 +wpu-mk00=Wood Processing Unit MK 00 wrought-iron-pipe=Wrought Iron Pipe wrought-iron-gear-wheel=Wrought Iron Gear Wheel wrought-to-iron=Smelt Wrought Iron to Higher Grade Iron @@ -68,12 +68,12 @@ sap-cultivation=Sap Extraction [entity-name] driftwood=Driftwood cheap-iron-mine=Early Iron Mine -ddc-mk00=Distructive Distilation Column Mk 00 +ddc-mk00=Distructive Distilation Column MK 00 starter-botanical-nursery=Crude Nursery -soil-extractor-mk00=Soil Extractor Mk 00 +soil-extractor-mk00=Soil Extractor MK 00 burner-quenching-tower=Steampowered Quenching Tower -washer-mk00=Washer Mk 00 -wpu-mk00=Wood Processing Unit Mk 00 +washer-mk00=Washer MK 00 +wpu-mk00=Wood Processing Unit MK 00 wrought-iron-pipe=Wrought Iron Pipe atomizer-mk00=Atomizer MK 00 automated-screener-mk00=Automated screener MK 00 From 6b43ab2bf1a4b0c35ca49c4a7c86c4b79b2939c6 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 26 Nov 2024 09:55:46 -0700 Subject: [PATCH 090/110] mostly locale things --- changelog.txt | 16 +- control.lua | 1 + data-updates.lua | 5 +- graphics/icons/fish-farm-mk00.png | Bin 2464 -> 0 bytes graphics/icons/hr-basic-ddc-icon.png | Bin 5790 -> 0 bytes graphics/icons/mega-copper-00.png | Bin 3209 -> 0 bytes graphics/icons/mega-iron-00.png | Bin 3377 -> 0 bytes graphics/icons/seaweed-crop-mk00.png | Bin 2226 -> 0 bytes graphics_set for animation.py | 77 ------- info.json | 2 +- locale/en/locale.cfg | 62 +---- migrations/PyBlock_3.1.12.json | 7 + prototypes/buildings/bqt.lua | 120 ---------- prototypes/buildings/early-copper-mine.lua | 186 --------------- prototypes/buildings/early-iron-mine.lua | 190 --------------- prototypes/buildings/fish-farm-mk00.lua | 183 --------------- prototypes/buildings/seaweed-crop-mk00.lua | 254 --------------------- 17 files changed, 38 insertions(+), 1065 deletions(-) delete mode 100644 graphics/icons/fish-farm-mk00.png delete mode 100644 graphics/icons/hr-basic-ddc-icon.png delete mode 100644 graphics/icons/mega-copper-00.png delete mode 100644 graphics/icons/mega-iron-00.png delete mode 100644 graphics/icons/seaweed-crop-mk00.png delete mode 100644 graphics_set for animation.py create mode 100644 migrations/PyBlock_3.1.12.json delete mode 100644 prototypes/buildings/bqt.lua delete mode 100644 prototypes/buildings/early-copper-mine.lua delete mode 100644 prototypes/buildings/early-iron-mine.lua delete mode 100644 prototypes/buildings/fish-farm-mk00.lua delete mode 100644 prototypes/buildings/seaweed-crop-mk00.lua diff --git a/changelog.txt b/changelog.txt index 0dc6761..2f49f03 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,20 @@ --------------------------------------------------------------------------------------------------- -Version: 3.1.1 +Version: 3.1.2 Date: ???? + Locale: + - Added localization to new noise expressions + - Fixed capitalization with some MK 00 entities + - Removed locale for unused prototypes + - Fixed slaughterhouse mk00 locale + - Fixed compost plant mk00 locale + Changes: + - Removed some old prototypes and code (finally) + - Re-added pyblock intro message + Bugfixes: + - Removed automation science pack from Ash Separation technology requirements on tech icon +--------------------------------------------------------------------------------------------------- +Version: 3.1.1 +Date: 2024-11-26 Features: - Added PyBlock Classic mapgen preset - Added PyBlock Archipeligo mapgen preset diff --git a/control.lua b/control.lua index 23f0309..2bf20f8 100644 --- a/control.lua +++ b/control.lua @@ -28,4 +28,5 @@ script.on_event(defines.events.on_player_created, function(event) if elevation ~= "pyblock_classic" and elevation ~= "pyblock_island" and elevation ~= "pyblock_archipeligo" then player.print {"messages.pyblock-warning-no-preset"} end + player.print {"messages.pyblock-intro"} end) \ No newline at end of file diff --git a/data-updates.lua b/data-updates.lua index 892f5ff..a50958f 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -153,6 +153,7 @@ RECIPE("mining-antimony"):remove_unlock("excavation-2"):add_unlock("excavation-1 RECIPE("ground-borer"):remove_ingredient("intermetallics") +-- reduce fish oil to lube cost to increase drilling yield relative to fish input RECIPE("mining-borax"):replace_ingredient("drilling-fluid-1", "lubricant") RECIPE("fish-oil-to-lube"):replace_ingredient("fish-oil", "fish-oil", 50) @@ -236,10 +237,12 @@ RECIPE("soil"):remove_unlock("automation-science-pack"):set_fields{enabled = tru -- move starter ash separation recipes to ash-separation and set trigger tech RECIPE("ash-separation"):add_unlock("ash-separation"):set_fields{enabled = false} RECIPE("solid-separator"):add_unlock("ash-separation"):set_fields{enabled = false} -TECHNOLOGY("ash-separation"):set_fields{unit = nil, research_trigger = { type = "craft-item", item = "ash", count = 200 }}:set_fields{prerequisites = {"atomizer-mk00"}} +TECHNOLOGY("ash-separation"):set_fields{research_trigger = { type = "craft-item", item = "ash", count = 200 }, prerequisites = {"atomizer-mk00"}} RECIPE("copper-plate"):add_unlock("ash-separation"):set_fields{enabled = false} RECIPE("inductor1-2"):add_unlock("ash-separation"):set_fields{enabled = false} +data.raw["technology"]["ash-separation"].unit = nil + -- set automation science pack to require 50 copper plates cause you gonna need them TECHNOLOGY("automation-science-pack"):set_fields{research_trigger = { type = "craft-item", item = "copper-plate", count = 10 }}:set_fields{prerequisites = {"ash-separation"}} diff --git a/graphics/icons/fish-farm-mk00.png b/graphics/icons/fish-farm-mk00.png deleted file mode 100644 index 1895dc73cb8044fdc2e8e20206416157cc44e82a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2464 zcmX|CcQhQ>7k)G95JXvB!b*aOn&{CDhA~m2E+WdrM2Qk5m{CR>GiJ1e7`;RiUCa zS(r?vC4K+^O0`8g!XX(QL~Ja`>|zQga5x;u=&%SyG6gdz2~j`#KNzIbp@e>r+y=?) zWOhJ06LhtT36RqMum0}_CjTF-Oikz)$nF2(WGB90`a$MPrU6QP3GnR~E2cq4r$o^x zE}f8^oRS$EAzL`ellO`_nv>Lfws1(dW)`H;SjhvL8MPPE>Mo^L|2ylyJ$Whpfh4Lz z`V&V|wMu$jOj?#@R<#?kf_YY{WYm~YqmotwlAirAC*rUmvlHYD1JWx9wiQG-CMCp! z{7I122eP^VssH5U1d6B0h_k3G3g+TsSYxYA)kN|VA}vg$$oC>VP-1?bf*}0`wb(@W z9MsfWhT|sAL6^(M`Xb02G}Srd>M3WZCmrFg749aM8W(M%%3`6z0&txmsn_+oMo_T! zb+o;Nw)Qm#kt!O2A+99_6Tqi?(6q)ao~{5>jSqRxwXuwlnsIKDiBeoeMRP% z$bh>UA>*TWbTF6#Y9zZICeTJ z=t)>`JQ@;8v9(vdWNH!^Xv256@Cr5^h9OLKX{wf&_;fwInSyhpbr(_4wyoU-$-xFo+nMWohb;@+ z$XqH8i%rf?hUE?=Q1RvwK2bFffqP7KNBs>eSvmix>S(XJN2qfM#qc6*X;XkZ^SxR} z*rOZ@oh`G{oZG;zsVSYDSWt@W&U-jq#Y20(GO_(>?(_E)qnC{dPYJX3Eo`+Ka(XV7 zUK_y|h3g{kw|0NtOfc84_pP#uwxdX;cO2Gyn|uQRdjP`B*wLl`+5H1&L08Fv%FF73 z{^}QUO~eyZras1JcRyuJWyg0td9^7y%u$PS(S$S9MSmwTw>3> zlsAu5Wwheg%y}HK{8HnQ(DkiESDX>=_&q>OMzTCjE#uT>V+V8YoWwH_L}!s`_2~E+QhIS&q@5traJJq}8r~@N>D>MMwmI9Oe_ISzz)w+4^ zUG?vy*9t7))V2j#*vC78IvM0T$Jijk_Uf%_&lD8P6e}Hh^yH}7yx~}l_PC)<|AhPuDc%pf zX*D=xj&XAByRd}ec0cQbGHl6)984mi53$T@AUFOKgtRjql-8jlYy6X=)tra)m;ntnlW$O}pjPO`$nW zOyvbCD>cO7__ua9Z3kWt*}~ z(J3v>@V+UytSQ$}-g^4%baBGj-IJ(j)MH4w0P9+8d$^sMxVWmtYrJMz53u}+PUDU< z#w7Ua->Qbk|;eyJt3_pzGmJRq}7SKzISH;eZi1p`uL*KAp&{{n1t69)>cPV+~E8lbh3Z#au@3F7{C-0hy) aIWhcI56;MUp!YL>GJt@i%o zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3#rZX~-Ag#YstK0aH%5$&ARzpxpk~KacwdKcUsfB`Y^?KHs@--vdf|?~h;ayE5N->O0Z<#g7T2R@Q3obM>7lhR=Qfes=90 z*V9kid4JCg_iG!UuYUiW3dvZ;d@;DNqmK`Nt5%6b5L@i`+Vwts?)I2szsCD=UyWB~nF(SGGzYKgeDi^9AD{g4-50C_i8Mmg?Yh9difIy@GJ)wAx=<>+zwx{_`7bq>rG!-d3l};p2<8T{_=8v zy7|Anz9u?H)b;+UU%4W#AWjp8kkenD0uX=RoZ8LreYu}_^ZW#C1VOuLu57SB<1@uD z|IMvOD`oEn0GBmaSN|WQ)ZT1ybT$KOHtGHEHTYdWtm3G>;^DevYw)=r=C!Tcdk7<@AXM zVdH^ad#F6IS|8AY%|!M(ZOs)@pQV`I7K(*6fhv2OX%*I(gC>%SFV5<+UW~Hgj_;iz zZCUI#=hFjIT3l!u8>}Pe+WdOVTHm>ofHZ)w4{jDmp5|OJkTo(I#oT|LGc6?0wr^Xp(^(J3_I| z+3J%>OCKo_aN)b%J&*P=qyYU1vGT21B7aZr*$@v%)@HR_*}AFtm)qNHY98Ao?Y5HD zmS-2e4rCx!O%KR6nFHNIbI4@g%W@C%X^qTeGe>M>x(;wqq&AL`>^7230-8quv0cd! zT$%7RM!=iaFV1Vu89s=+=Y8{aJ!XnT;s6Vje^&5=tyxeEznKl5l8DN*LaYEaI*1YPDDe$}pgb^xIwUG1m> zbWf`fDy4nU22U8y6V#7w&>C%?rJ6(4Mp|PqXy#*?yftH_dnWs?nm7BEo6)R5s;fR) zs3@Iz71roHg31_Xj+p$1!n>gxfr>&#N^iVD%vw6^DZL3gPfxs8kq%QaFmA@&n90Zmv*wWHNV&0^(N39YK8{P$U@MptXr@Lu_WsXi1xCN0(zg zeQ7VIcv=EPM43!3c0;Lg_f9)mB^UNx5z?k0K_njpYXr##o>EzRvD$Zn%C`923H@Nbg!WmsOgBT-~h_6N1nkX}}-&@fu6PrzASr`)$4wotP z(`q3F@z{ulXy@H2uoxfM4MmtKtw~?&%tppH%9c(*#fjSsh1zkoO$sG~vfxVa2E&Vq zA=&~hXJ!X&!dCEEhT=Pau^dh)N@EDD_3XBfk@v19+hz>ZjN%fTpc@6|^HX`zk|czDWD3zBW5WT{Q$8PzzLI!G20 zwGn|oZrD;aR|a#wK&d*1h?=gT`%(mxL)bKziuSBX88chXu1!nzW=rMIn2!XHOa!q36JiP+Map z{6pDH(wR^SKu~{x@hJL}>T-Y;rS&Y#-lWxZoR#82Bs+eD0I2AKz{2h3fxl3d>Gmho zluct18qDr$Yd9w>gVv6e06mqLR&DeM`{;YTFapHMD`*w9wB() zlPd95Z4{JFqG!yeibkoZhbOEgVqKGwLuD`nA%bNG$13!}Ry9_8C@htI-PvCWV=L6# zro+%T^#~u^?F^W_S`l7OMl4H-kY5A_c)bLgsZeUL!LHLng8Ho_!8o2{t9H^T$hc$# z(RV~bnTXj{Et|zkaNladFo5s*Os}H^wyB>jbBBlF z#KK{MWEPp_?v@N|o&*zb_zb0~B1s*W9`f}+lmOhyc>;;R2hc7HT;w$HRfGhyu>!1& zi#A*+P>Q;^DVk*pGTiu`g$(S;NnGazk${yN0Z+6RY{=~Pj{Re%b*N62xc82dBbE0(kwMLj+;wV z=*h`SN7br)y~c7>Bd92YPOE|lDh?Eho>i-an8ipK2%E2~qW4!q9dXgq=%<2;n>s}u zi581i9VMf-hQEPpoL(RV#DfzMSBC)UdsjDeoC#44^)h-lOnBr<&=w%iN^cWy)#th5 zzqA_}T9h8k&C%dTpLXf%s7Dj%A`or|Pt5_KjHJWcxGIE6;w&1}UR8Ni0^wH~Qk__0 zpw?pkSb7B<>33LT1~xIN$pYp3kJQft6<*1<7L#A1SEP?(5fM}vgpef%#qeCEi!M>p z{9I#usi6NVh};}5P8^zbkRP2hv0hXR$1JgCTsy$wltgHsy(Vounf^Qc=j)Z1TRypL zIPBu;KXvQ=ad_$Z+iPGV*`ImqxJUd8r);u-#*1vS%YnO|9>fv!jjjFVoP7>hxPJp4 z?G0m{F#+iS000JJOGiWi{{a60|De66lK=n!32;bRa{vG?BLDy{BLR4&KXw2B00(qQ zO+^Re0Tcl+C&iJ&TL1tGgh@m}R9M56mrINtS6YC-bLx2?Rkv^7e!AQJNZgK{hhxW{ z*dfDAU^D~<76TFtD>O(fU=Tv=vp{H8EV2cO-LL>Oqp(0k8jwIpqmajpoe(>A?6~cI z-tNB7y0;#;9;XhAPBSqvviPNv{wkew>eK%?|NjdVEV0fBhR*tt(&sDtVss z!F%uV!Mh)^*FK`qw8L?<|DE6Zl zzsLVW%oF8TUb*~dA3bP)SDN;PEXx^<0<=<0@&d~=IlFdhGZ~M|hj;JK8DiqwhKpm5 zK*8Nx_Yhj~*5AFAe&gkhe_!9&xG@~|{_;ov{NC_M0OCaX-QRe1;@91t*PK07_3P{( z_EBlf^&7XDsu;MYL37HZ(Wo)AIEUqW$JbKEkeHIaN&CMgtlUhK{v>qVV+XpI!fl z@Bhhfe*19%#)tHjW`E2L!zhnVRioaNBHI@z!I=?elb2#(-S)$CK>eZ=K9ExN@MZnI3g1aC67k<-c zZFv!|>R?EPMZ(O|DLlW1P9wHAH<_E8Bj|PrI*Ph0F=`HjUVq`SX&7Z{m`3A==bwF= zvQX%(z%VTg!$wMrG%v8-3Ky=v!nI2;(eON?C}go!WzM&_{K^&1KYNx+y^dwuOx106 zKm7!|TI0<5v-A^1l$T_=YCkpxURast`p2JcUA}UWSQ%_T++$&Nog|(RjzY3Y!nv0& zQmNJ{a>Z;gBF!dP2B0;DX`$mWtwx<-Fyyd1L`(SSXE*SsXQ)m!kx~*R>8D=;xU@b4 zAljWlaBp*$mDM$FUcXL`g)nTSZL{{wIr36cCMnV|(S}8}W+A0Ul_hGD5T`k5JV9%N zbdr;+lJ%!n2nGQXO}E=8%Zt$?F1WbXI=PZXnicxvTXz|c0-k&RJoj$hV|Vi*`6MF= zL$bUej8md$LZwmxA;~gD&>zz2bm6`GGP*jtgN2qTfg=-Y+0}{KTF;7&>HgA|v- z@j+>BesT|qW|Aa$uEld3D{pi=eJ3xp_+k)>LTRB3W&3^|TWCg6#MbT+wR*_hRE?F@ zIhGfnVRx@fTu8d32}O|;D~*aYQ%h@v{UOS7INaW+b9BV{ja78%(i@Bb!BKzA{vfLR zo>yR*j{s0=ZK|TwLK@iB8g`+HT*h{}+cEmPA7m*N9mRb*^Fh0ui0^4<{)jevBCSJ42+_Vp>Bug_|4WAb_ z6jz^BtSybWcy7d*)frk-b!4fq41<|wgNM6^+`0RJZZF`KmoJc{Id|@DJJSt6Tb}o7 zfIb0GrXdTh^}Q%c{&hSaBZRfPhTU5E+Yxp zINil^ZAt{4QOxvo1Iw*Y^*zE#fzn_*mecU6)s>~W+kle#xT(>WDGS?_?I_89FdjuW zlQ2XT1*U1>I2M*=QLnk!c1e^juzYHs=_#L?sXB}EEmT=2Neg^Wpb==T$(5okA&64` z^QWIs8aB%d4ScI)W97Icm|AOu5L$rtD^{w?>~>`|K&f}**_wRQ(CPih7`;;rdXaEvE7ywMM16RkxVkQmUNDKn1-a;^vTnLb|*S6 z$A`m&#b)*RMGB-KOHy@^7v(rF@{K&t8io)krD*vfHFrW|YJ;*gxpC`0mSwZLG>cbt ziAFoPjzt)olt}6|m*tgZ9Jhj2IeC^bNfU~!pxYb1xqZ+d8vqBxn8jxGI4=!}6im`w zZKqk$PSgBUo)`047s9I~#7P|~Yjk>Jf^mXZujAER3@K?J^bpc#JdqT6#=^oZt(K2# zlt=>%(lF+E(x?NivgvijB=>}C!1%C@=~x(ALRm1Gg*Yh7^3WFf<|G;49`q-l)ob2LcM!X+hKK7~n5JY9j2RBcKk9Vb ze;Y*kJL{{<*RmovE0qdTnDl}Pai)+k>5rnJG>pIQ4}zat0N}%iT`sP*v=jnEib4vJ zYF*}9t6PTwpH1@8a!k3{?2VT5Oq~(B(6(igB#BNZX;GHy-K5~3R#z9lHjEPY7cV`< zrAyBdj3eIv;5K(3v`Mnu?e@BFjlxOv$W8cjh#r8xv_7N5B+E*zEypy*Qk0Pdq!i(2 z5BL96KvRRznp6sehOyQ}b;s-v`-8U^mKJ}Zxv-@Dg{2~~D?o@Y5I!=R z{atxU+*ltN;K207*qoM6N<$g1{dbF8}}l diff --git a/graphics/icons/mega-copper-00.png b/graphics/icons/mega-copper-00.png deleted file mode 100644 index fe9f5f14766ffbb0388bebd5d38926d349c0d406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3209 zcmX9=by!pF8y-DiBSuXIf*^v@-LcUyLP8Wt31OpapD-|@BKdS{XFma<78M{8bew5SwJ8V)YQbl2Jm|SyQv_OJDoq4Q(-5G$KCe+3l1!{XOunhvywpgR>42^@(rP-O4m6b#yF+M&Xa4GTe zVLo0J6&0lgd2w-Z0GN`J0ua*E(*X{FKmeA26j%amQc@Ct0D(A!5x@%y3d+jMgM$2{ zqoY$|VgMZ20@#Fv1b_y_KmepzEH=*3Bq%5dNbz`ld3iZd9Kd5^WBn6fh~!NiBVBe03Wab?j*(qh)hmS_VxA6%gX}@p`oF&FfdR7;D|EQ z1DwdnNC|f4!AK)hJ}7V;a71=?_Ek<6X$VtUc?Cv#8rs{yN9^Opm(M{Ei zjEtO|9Doc|17ZvYgTvt@IheHI(0u(XaxfMNK8DFa!zcC%?pNR?8ke@~eF_T;f!<}f zSpem!sj25f_;OSTPA9Jm)?q(Ij|v(?qr zb#-;XOaPHFF)<_(Nt_)l3u6X45&+Yqc~}4?svQ4K<7KS5w;;!-bel{~(YrGwu1mBY%i)=jU5kdBF-TQR-OkPInwhj<422 zrp{4eR8y$dR+$>~Sqk`q3&U(IZ9&{l>lTV&x+`q@#9Qfd_mwW1|Ks8Nc`;c^^EwX3<%R5H&qjYy&Su9$x7Q;1(xZd|9@u)lDhi41GEvi7 z*l`mhqVDgBNBzBdmj9$B;^gko$K~4ATmA1tGfw}c4|X5EUF!T)r!Mnq$=zVdZQ5?; zbs}peGXITdbWdTT4)CUM7_=vy3`iGM+E=%=nUl+O@-J?Vcv&;`|M>WmGTXkGZ7XrV zu{|dZ((LwRl{_{SaHs%3=o02BV3S!xJ=cp0>qcy3cm%xX>ymX$K>-r>nD|7rq*lela0;39iZIuc}loT zwleWq{G&mXQu3&og@E}PU&(Z#I4d-dg%#>7CY(4$s?JG0LJvONZ*&B)& zl)O-F~4d;L0lP6xg5XC4+ig{w;r z(`#oA7MFH!Sa*>T$o?X^(QJ^;{;@VUyulEuWk#O1mlsi)>8@Diu29g2f9{x|^r=-h zbAX})-!W->#cW6GE60nuoUP+qHUB=#b~b=SU3g}GFJgahZ2(t7(zH!IfQ8z#@LKv2 zXidLx7W-TusZ1I(yZpXz*d_Yhsw?8bLjNS@c|Yf;l8}ojW7p5#T=XSgZR0{B-6dur zm!ucA9x=FW5{2-;yb1XC4-@4lPj8=0B3zEn6D43&PZRod9=92=_{5co9xP{J5mbm8 zcT)5o_q;~2c;&*5bPP2rZLluB|6CWmA=vhVM}s6&IKiQCWPm9a6KJe*#{FSR+l|u= z@Pt=&IR-ih_NZi^=whpW)6ojK2R#@j;pUKJMk~ET{!+6oR-S{rfIn_8{8l1|yXTwE zGlV~=bVqbA-Q{m|Rni@#g9~eAATN!%k3AqE#iWw?IUaRi2>Ep~sVXh~6XDO0hZw-` zsAp9XeFU-o;Y!c(J$J_Fr-C)4IHy_F z0PL6ddogosYjbPI5#Eb__i88?Eg6mO9WvdJePpNfjngFL>8Bq%f2~^kgpK9jp%FKBi*PrcEkZmX;jYay~p2w>f0=gZEzZ;iXDm8i+ zR4T$mtz3^6i0G|r{1s(WpT;l;|BOQ(DIwi?U9Tit9zjoZA{RpNevJ=1C;uw`n8)2C z^)$Bh2;7T8B)uvv7=cv{a9p1AQA#P9QKLzCUKxUB|LwT1y6DQ5S51p3i#FP6SFH@| zH-{wRAbo?d(?kTyczYOp6KpnidGZ27Q%Lsjs`ZSD;bHM!i$5wuj$IbIvqy8ynl2M^ zLF^9y3MQ^^?vEP&!YqrkjC(?eI@+4Gir;cXb1b-y<7^w>cpP~zwEy0uL2Omo3SWPC z&3iSFXXK=5t;3|PL~OokC70=MtLnF%7~_kJ-ht;V)q{yV$;IE-`fKIeA)}Qn6MUzo z3JD#b$eqvT7qN)5GQ^|9<>xaeR<3;^;U^-D%jioa6!PJwV!f0Wfv~*EpnB|0z2&*@ z_hKz(rbczKY1#7S7n!MhUq!u_Bq9VKU#=Ma=)Ff!>yIs$ z()QF{KF})c!IicBN%&2;UytRkTRtUY`K5^;RrBapvk_#ZLI%8p9>iVwp36A7)}|{; z^PTRV=&^14l|3Ae{imG3Qxudiu2!P*!GDaGrpPDR&m8VKq+9C2PZC&}UsOI+0k>cR zg}%1dwCu+%N39%w*!Q6s`I?+~J&lVLhh#$ges!d|YR(wF<*{#w2d56Xm4=leKRye`a^%$YIa$5JbzW83P@q!*3&%1Zczxp?>olwxFB z(KD1^u%ofoj$EKq=_IS4ZE`7c|D7R4a8_JI^6*q9D}L79sc2f1YLLmU z1eY?b&;DzY)XAJC%{Jr4{NQHV zwJyemPe0u?t?L!5(IaT-EJlSWesgupD{UgbFYzt+MAB>nY3n{)rE&^Pr+@%U64O%3 z{7%_o)3BhCyanSgX`F_a7yIaA<^{_VpB6W@VU6}LEdJGRekvlTM60rL5#v>f zRTR84aeqP18H1_UE+P{MTI#aaRh6I1@=>#1^dkk$RuBPnEeC&&70T+ zudB7?VWGRVoyiV@Zo=N1$9bYu`^Q0-&nn6-#)x;C3F6En2)CWmfg&Xs6uGhZ-BFT< zkdv{japD4{cKgoT5+m0akZQh;)^4XWg)|4NFE>j-?c?RN+`X;`7e-Y*57b9b1PnrG eOms7UXzKdqyt=`KHUR#_K&FP425l&}#Qy=8)&R-? diff --git a/graphics/icons/mega-iron-00.png b/graphics/icons/mega-iron-00.png deleted file mode 100644 index 6ba476530057a82d801dc0d9b76f8d4fb135aa64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3377 zcmai0XE`C23>L+qX}(38AYD)X`%QM|7^n0*(K@Ar8z2l zZ0|e5+A4um<6S-+QdA=)ukd<(PtPYVt+cr4`CQoI-oui{oQ@IT;DAxUumI12`2xoW zERs~!0jwhuiGb&#a;hBHIRFRvMQ%NP`jnGb;EuAomX)KB_-&|wU|Cri6!1|}8kmBL zq4`}+136t&e_ZX&+ww-PzADBx`nK*-&-)!Q&k)fCR-vibz7N3uA4X$w9TQK7=FTrK z0b8Wt4~pM@RWf&g`=U*~BC4yap%SuFyT^}XQ!`p8G8+0c5f3BEUPTpGd8Xnz7ReKo zOHF&fvhkJst`Ydx@4T{z_F?EpNhSUjuhXkLS~hn3zwG2S_B6l$+_8Hyv++Ho=hHg% zG79YD27KJBp%$i=Aog+jE6h?1HMVByJWGONZARh!8$Hp^vbjiAU4tKz|M1;F$;+#k zl7q}WH^!IZeif@+WOxN9c9XWXPit~0J~f>N`JY1mUO!*3w+xzAuU>ej;kqw%QM==` zn=Y2|{`4&GjM{bNeKH6|^*>;#NB+3z$CjL)=Z_a0SnMa1jknG;t&>;!mczG+Mw9qB zzc2lh{Y^7To7o}gxObQTZ(RJ}h>Hh37y%IInuwt;%<92l74q28?jcwFP>NO(`0oC` zL!H*zBX{o>;x9`9+`Fl+?(zH%2&-Wr@|H!VRtg_+E#BoI?ygq5n{D{!8Jpn2+EFis zbfl3g6p$}r9u#EFbhsuasAsOep(gR?uw}fInFNU(@-uCZ**k_@Il*@{4(FR6)%zja zeD#hhv>g(+Da)i|&fDpCjZUayK(3?fNR?+89b5F_4>61@T+tOVM^632vIOP~VjAQOt4cZ8`c}Xt5tvl2^{Js#C5`5i@EvB( z)J+hC@=0Q|Afv;>sp*H|UokwUC%L=Wk@(4Jo-WSZkrp;zB+pLCFk;sBHs#e{SyhDV zP|lDbgh(M6I?ym86CZI3cUQ(j;I-0_%&&qjraI_X_Cg%Naw!AE4U7M1z+_@#z%a6# zfJh)AGN2bl%9gvHIVbF*VvD;A=h31ZdNlR)_H;mR!k2Q{p*SpLW>iAj=urSjTYJX{ zE1$<-&0!;;nci@v*COD9F>(n0><3e4i{n8r2I!*fJzSNt*MKs7CYl_|iPCp?7Y8=|MiE6h@SUv$Uq$0;$;pqS0Kb(0W1mk@1o z^tgx!Gj0eh5!Y!<_dB-Y_3PKDXML^iAMuIm_s^Hc^C3<_s7{a}x+$r`t0Bkk)~7;Y zNtj$m_D3bwQ)-z8sZ^Hb{K>ZMVHVbt?9<{JB_glO=o+CAAR$CnHH7aASR{DLnRFooOq2DA3RU9VPp7m z-hOw>@ixWe_-=T6gl2e~16T^BqWPnY+7e=dz}$N?5Q-Kbv`e2b?Lk~nap}t3+u8B6&Z#Z6!vxoEC@|0l^vTK6nna4QW=2j3c^=i~h+`fv z+g95xLxc0jw-?h^{eALF$*d+G-E(dYbfBNQiH_N{S&;%x`2+Hnd<;6CSza&Q->-kz z3sm5rx9Nr*^_Pu;@T#dEwfp?eJa)Zr`E6A0wQCBHf!rsAMG>2nkVoQO1G@gE?aKKBj1dAntn{n?5a$;o)C2?^5EQ-cRkM+PW`Y?8Z~0QU91*el(7t z6gkFr*;w@?y;94QklyS9iC%ybRB4VPj*ffdyY%=TJAEETe;ai*S|SP<3CKIj*w7SY z47)MXw_;&8>mO~9k1~dzIebOFF}nPIgD0|Yky7dNJS6m$Qq0e4*#ZgM}h0SWD@bK`np)kXZ-qoM_ot+to0$-;SU9W0!^(?g8v1=Zv$l5jyh>X5wf za@HStpcb^XpPzEN6(Yi_23J!JjqYuYQnF{NA+S@yxHtwjBSFf2saX81b)x8m=)G@I5{naE#K)SJ}R zM``PomN^&}OzpRO1>7mi9qM&M@%IQ3RkTGCnOCYxLX+!deT-SZ@wLX{NmmWJl^kC51l873%;wK|4Y8k~YEr)`~Dx=$KKYIGyTb}sbJ^_Qb=s%U^w*#Aa z^!9<1uSm@zh9$~XX^^JIBID_emB&8d&KBHzcy6x^M!!*s9|}%$J-A?X;)J}&)A{G) zoN9AD1TH35B23H0<+Rm2v7AGx=c#Ga4`{u~NJ)D%Yy5pS57?e(hbzY^ z!3x{7a&VO|g{cj^bvtc^uq(#!my(fsMp*JNH`K@2Hf-?PNsI$KMxo#;eM3OTq_1M> z(yt{HSbK|V+hLr+lnSE0Jr($4qMQ5n!BiNr|F|?p>TjBX!wB2MC&%B2?C*?)6q;2n)sXtPUxV^fHn<#fa+xw=-%m~Fs?(B3 z%nV_=TyUvl&fpFQ-x<&5V$#dm+epFB(fUUA^;)hkN=4p?imyy{CrefE-p1P8V&)E% zyK(}>&LAYMtLU2boTw+cbWHgjURH@@k~oUt^w}6A)7u*9UzJCeR$MrX=gkkS2yO?9 zs~XC9aLr(L5#(Zjt$?HxEW!B9NG}l)7-VC^MHHK6e{Ah1J(Zj5PB)=9y)v5WBxxqf zNMHYQSzM{>m5@%ND?hKYy@d(QjAtNuAn3Ebi{%b|?4StiQ-%n?%_fZ1fT#H4*e^lC z3%3I<1P9uLo40^mlhQeIKXifNKpAGm;-uF4zHGHHdwJ~W)DL2p^gOh`Z5Gxh0)gK`kfENbZiBW{(*FSWJ%qvl diff --git a/graphics/icons/seaweed-crop-mk00.png b/graphics/icons/seaweed-crop-mk00.png deleted file mode 100644 index 7f48e423a0925dc2b5f89289aefd9fd92528f313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 zcmb7FX*8SL8cxs@rEy$ptl=JW(K^UNm7EfZm=i-#A!^pBHtJ9_71TT*D#rGphSJcK z4nfnF64XswHLH@AN(b|BoU?Dc*8Oq*-FK~TfBSp)v!C~QpS{=mG92yEqQbJm5C}xn z8e@qAZ{&X;L4GjO7)hTX5I%~dtuqQ8ZkzZ$3JMC6l9GPR|1m~JMzUBe4u|uPJe5iX znUs_iFiJ{Ff{Brl(GQH4mR3SSg1ftWYilckKqx6GsjaPTXlU5l+5%NT^!N8KEiJXT zw=)=w|Iq@5FDSf9vlqUlAN3zsGgRVW^Qf{ z%HeQ08jS|TfF(geL689@fLEoZrTY5%fIJ`|U|?Xt!oosDMFnU8;w>#L)z#I5f`UMI zR#sL3cKh~iQ&UqL8yh4NNvG3CM@NAeuosWV1La*^UG??#V7uSng14BFb-V2h`x zXHiiRXfq-rV)A3`T6-kyrQCFY-}tbN2AejI2>36+&FXQ%#Txxi;F8S zFVD)#a&>h@AP`PYPMMjRprgvlN^rF_G&H~kXlrW&z1++Y*8<80BXIV3$i0w5s&C}i z-*L$Y!hAxUWx9{@(H*@j2Z((c-ofkv!U}srNhZ%+L)=&DQIn=CI=T9rA-pa7=Mb~D z7+mR$e!mJUwqEhto9^YuNt}`h-sR1e*0-ai@(@l*;tbyG0kw8mdM+!Zcjv=}XqER5 zsl?;OLz-4@yYpX~`z+5_DJ)Dd8TKX31(TW7OQv%J8yiu52n_Wds%<|A90X` zex?tB9QxVX@>gfV6L#q$Ud~hcnZtt)0Zj5em5yE-?k3?YZkgB0i3_@T`pVWyYs~8f z9xGgEbkm{x0^hBvc|>5@-uz?5$bjFLc2-ZQ-{2maOAy!eZ}L4h-_UMAaxaUb#$SpT z(bYcI;(pK=?;@{jBrfH^_144~Z`@_6;uAUBj=0+Wn>%#WCqLV1b(iaXS>pp{654a0 z#c_3co(jdXY^EO3tPFBTN>!-bV+=<$Xmo%2#zhmUlmDV{&CNEwB=vJNAxqwA(EIx9 zS5}f=Q0aYeb;5SCDrR^2yy_h1Z4=i%X>q?dL&$v5{i`5EBy?K4G?5-afFbV&srmHw zrSHDB^Yq9`o*F+AJiC@6CN%7m5Wep)dg0q=ufg1eE+6EIXzItH9J#*Y`8uVxYh<}i z5hhW{{&#=F@pF(;*aN#>zBYa{HWo^O8bnM=xSg)rwdcm0vXdbN)4eq{{G9>YB158% zQK#8O9$NytZo@)KkBY(si2~}?%%6s!O0ejUy&bftlF)55#$87w@7qI_5m{#fIez@; z^@;L(ygXs3Pg-ts*?j5BWsp%N+ELUqMZaw%kZ8i%(`z%U+hJS;6 zu}t!IqU}a}^>aU>TUC~+)uqrFyO_YG8xLF5`Xn45%YFFPXQ6LCRCOpl_XbJ1pWJZx zqG>ag$5<)4>*c}+@%|LI37MMuQyxQHUNyN_C0#S(PwG!ZGfYfws}_qsFW%5T7zlyabnW>JdXuAdW}t@l>j|Tc39$l5dwjr8vU7P=bub5P&z(=>81IvM zJz9#25W?4!hq0#&dXA=C{&K711LO3yR2RAXdbBm}vx4zix|59ubXMV}TPC#M4*TMIMA0qe<4XBq>GoU=YhTVHb;3zC%t;1;NJ?Jvde9n}VGi#R zw&8URke)Rn3btcjn1@At?6z{@brdSuz;c~Y+RF7t|GGLbPwYg!T1%p;xj9J98^9iN zS8yhC`OW=j#vd|y9Zwc6ZH9b}=U@N0nX#R8^cePANb1fgi9=DSO_S{~ z#+(hV3G&pZ9&Kn!4bCdTZ@xs_nU9S)iE4}4w1%2gQ>JGwt}C?UQ^I$3o^E)D-H)WK zGA9<_+Ljm@Qy5kj55*D)vpNYKOuF^jO)$t zOIrXZa+D{iJ^SYLGW3SCZdW8};gW>$abFUK*n0cVWxt zBPW9;V`tyJtAE`(E~acky7JESCV?hK)Z?C~Oiuh!Yp{48d!$roMsDF9*8I{DA5!Wl v+tAD~`j0vd2V3;Wzdf8ibfJGa?TccouJr$EpCJbR0uXDIy=CiJpX9#*FNQzH diff --git a/graphics_set for animation.py b/graphics_set for animation.py deleted file mode 100644 index f3c46ff..0000000 --- a/graphics_set for animation.py +++ /dev/null @@ -1,77 +0,0 @@ -from glob import glob -import re - -def process_entity(start_i: int, data: list[str]) -> bool: - i = start_i - start = 0 - end = 0 - animation_exists = 0 - working_visualisations_exists = 0 - graphics_set_line = 0 - main_leading_whitespace = re.match(r'^\s+', data[i+1])[0] - replaced = False - while True: - line = data[i] - start += line.count('{') - end += line.count('}') - if re.match('^' + main_leading_whitespace + 'animation[^{]*\{', line): animation_exists = i - i += 1 - if start <= end and start > 0: break - if animation_exists: - replaced = True - leading_whitespace = re.match(r'^\s+', data[animation_exists])[0] - data.insert(animation_exists, leading_whitespace + 'graphics_set = {\n') - j = animation_exists + 1 - while True: - line = data[j] - start += line.count('{') - end += line.count('}') - data[j] = ' ' + line - j += 1 - if start <= end and start > 0: break - data.insert(j, leading_whitespace + '},\n') - i = start_i - while True: - line = data[i] - start += line.count('{') - end += line.count('}') - if re.match('^' + main_leading_whitespace + 'working_visualisations[^{]*\{', line): working_visualisations_exists = i - if re.match('^' + main_leading_whitespace + 'graphics_set[^{]*\{', line): graphics_set_line = i - i += 1 - if start <= end and start > 0: break - if working_visualisations_exists: - replaced = True - j = working_visualisations_exists - while True: - line = data[j] - start += line.count('{') - end += line.count('}') - j += 1 - if start <= end and start > 0: break - temp_data = [] - for x in range(working_visualisations_exists, j): - temp_data.append(data.pop(working_visualisations_exists)) - temp_data[-1] = ' ' + temp_data[-1] - out_data = data[:graphics_set_line+1].copy() - out_data.extend(temp_data) - out_data.extend(data[graphics_set_line+1:]) - else: out_data = data - return replaced, out_data - -for filename in glob('**/*.lua', recursive=True): - breaking = False - replaced = False - with open(filename, 'r', encoding='utf-8') as file: - data = file.readlines() - for i, line in enumerate(data): - if re.search('ENTITY ?\{[^\}]', line): - try: - replaced, data = process_entity(i, data) - except (NotImplementedError, AttributeError): - print(f'wrong entity definition in {filename} at line {i}') - breaking = True - if replaced and not breaking: - print(filename) - with open(filename, 'w', encoding='utf-8') as file: - for line in data: - file.write(line) \ No newline at end of file diff --git a/info.json b/info.json index 9277018..24efe5f 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "PyBlock", - "version": "3.1.1", + "version": "3.1.2", "factorio_version": "2.0", "title": "PyBlock", "author": "KingArthur", diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index bdfd83f..827d367 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -1,26 +1,4 @@ -intro=You have crashed on a planet almost completely covered in water. salvage what you can from your crashed ship to build the equipment needed to leave this place - [item-name] -pb-wrought-iron-plate=Wrought Iron Plate -scrap-iron=Scrap Iron -scrap-copper=Scrap Copper -cheap-iron-mine=Early Iron Mine -ddc-mk00=Distructive Distilation Column MK 00 -starter-botanical-nursery=Crude Nursery -soil-extractor-mk00=Soil Extractor MK 00 -burner-quenching-tower=Steampowered Quenching Tower -washer-mk00=Washer MK 00 -wpu-mk00=Wood Processing Unit MK 00 -wrought-iron-pipe=Wrought Iron Pipe -wrought-iron-gear-wheel=Wrought Iron Gear Wheel -atomizer-mk00=Atomizer MK 00 -automated-screener-mk00=Automated screener MK 00 -slaughterhouse-mk00=Steampowered slaughterhouse -seaweed-crop-mk00=Basic seaweed crop facility MK 00 -fwf-mk00=Slowwood forestry MK 00 -fish-farm-mk00=Basic fish farm -early-copper-mine=Early Copper Mine -compost-plant-mk00=Steampowered Compost plant sodium-acetate=Sodium acetate fecl2=Iron (II) chloride fecl3=Iron (III) chloride @@ -40,21 +18,8 @@ dichloroethane=1,2-Dichloroethane ethylenediamine=Ethylenediamine [recipe-name] -wrought-iron=Wrought Iron -cheap-iron-mine=Early Iron Mine -ddc-mk00=Distructive Distilation Column MK 00 -starter-botanical-nursery=Crude Nursery -soil-extractor-mk00=Soil Extractor MK 00 -burner-quenching-tower=Steampowered Quenching Tower -washer-mk00=Washer MK 00 -wpu-mk00=Wood Processing Unit MK 00 -wrought-iron-pipe=Wrought Iron Pipe -wrought-iron-gear-wheel=Wrought Iron Gear Wheel -wrought-to-iron=Smelt Wrought Iron to Higher Grade Iron coaldust-to-diamond=Diamond Forging tailings-tin-alum=Tin/Alum from Tailings -scrap-to-wrought-iron=Scrap Iron Recycling -scrap-to-copper=Scrap Copper Recycling propene-to-butanol=n-Butanol phosphorus-tricloride=Phosphorus Tricloride phosphoryl-chloride=Phosphroyl Chloride @@ -67,36 +32,28 @@ sap-cultivation=Sap Extraction [entity-name] driftwood=Driftwood -cheap-iron-mine=Early Iron Mine ddc-mk00=Distructive Distilation Column MK 00 -starter-botanical-nursery=Crude Nursery soil-extractor-mk00=Soil Extractor MK 00 burner-quenching-tower=Steampowered Quenching Tower washer-mk00=Washer MK 00 wpu-mk00=Wood Processing Unit MK 00 -wrought-iron-pipe=Wrought Iron Pipe atomizer-mk00=Atomizer MK 00 -automated-screener-mk00=Automated screener MK 00 -slaughterhouse-mk00=Steampowered slaughterhouse -seaweed-crop-mk00=Basic seaweed crop facility MK 00 -fwf-mk00=Slowwood forestry MK 00 -fish-farm-mk00=Basic fish farm -early-copper-mine=Early Copper Mine -compost-plant-mk00=Steampowered Compost plant +automated-screener-mk00=Automated Screener MK 00 +slaughterhouse-mk00=Slaughterhouse MK 00 +fwf-mk00=Slowwood Forestry MK 00 +compost-plant-mk00=Compost Plant MK 00 flora-cultivator-mk01=Flora Cultivator MK 01 flora-cultivator-mk02=Flora Cultivator MK 02 flora-cultivator-mk03=Flora Cultivator MK 03 flora-cultivator-mk04=Flora Cultivator MK 04 - [technology-name] -early-concrete=Basic Concrete -alloying-mk01=Alloying 1 -alloying-mk02=Alloying 2 atomizer-mk00=Early Molecular Decohesion -[controls] -recipe-selector=Recipe Selector +[noise-expression] +pyblock-recommended=PyBlock Island +pyblock-classic=PyBlock Single Tile +pyblock-archipeligo=PyBlock Archipeligo [map-gen-preset-name] pyblock-recommended=PyBlock Recommended @@ -110,4 +67,5 @@ pyblock-archipeligo=This is a variation of pyblock where small islands generate, default=[color=red]This preset is not recommended for PyBlock, consider using the [/color]PyBlock Recommended[color=red] preset from the dropdown above.[/color] [messages] -pyblock-warning-no-preset=It looks like you are not using a 'PyBlock' map generation preset. PyBlock has been developed and balanced around not mining resources, but it is still playable on a normal map.\nIf you still want to mine some resources while playing PyBlock, then check out the PyBlock Archipeligo preset. \ No newline at end of file +pyblock-warning-no-preset=It looks like you are not using a 'PyBlock' map generation preset. PyBlock has been developed and balanced around not mining resources, but it is still playable on a normal map.\nIf you still want to mine some resources while playing PyBlock, then check out the PyBlock Archipeligo preset. +pyblock-intro=You have crashed on a planet almost completely covered in water. Perhaps you're doomed... or perhaps there's enough here to scrape by. \ No newline at end of file diff --git a/migrations/PyBlock_3.1.12.json b/migrations/PyBlock_3.1.12.json new file mode 100644 index 0000000..cafa987 --- /dev/null +++ b/migrations/PyBlock_3.1.12.json @@ -0,0 +1,7 @@ +{ + "noise-expression":[ + ["pyblock_recommended", "pyblock-recommended"], + ["pyblock_classic", "pyblock-classic"], + ["pyblock_archipeligo", "pyblock-archipeligo"] + ] +} \ No newline at end of file diff --git a/prototypes/buildings/bqt.lua b/prototypes/buildings/bqt.lua deleted file mode 100644 index e46e312..0000000 --- a/prototypes/buildings/bqt.lua +++ /dev/null @@ -1,120 +0,0 @@ - -RECIPE { - type = "recipe", - name = "burner-quenching-tower", - energy_required = 5, - enabled = true, - ingredients = { - --{"landfill", 25}, - {"iron-plate", 25}, - {"pipe", 10}, - {"copper-plate", 10} - }, - results = { - {"burner-quenching-tower", 1} - } -} - -ITEM { - type = "item", - name = "burner-quenching-tower", - icon = "__PyBlock__/graphics/icons/quenching-tower-mk00.png", - icon_size = 64, - flags = {}, - subgroup = "coal-processing", - order = "u", - place_result = "burner-quenching-tower", - stack_size = 10 -} - -ENTITY { - type = "assembling-machine", - name = "burner-quenching-tower", - icon = "__PyBlock__/graphics/icons/quenching-tower-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "burner-quenching-tower"}, - fast_replaceable_group = "quenching-tower", - max_health = 500, - corpse = "big-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, - selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, - module_specification = { - module_slots = 0 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, - crafting_categories = {"quenching-tower"}, - crafting_speed = 1, - energy_source = { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = { flow_direction = "input", position = {-1, -3.4} }, - filter = "steam", - production_type = "input-output", - }, - scale_fluid_usage = true, - }, - energy_usage = "300kW", - graphics_set = { - animation = { - filename = "__pycoalprocessinggraphics__/graphics/entity/quenching-tower/quenching-tower-anim.png", - width = 232, - height = 252, - frame_count = 60, - line_length = 8, - animation_speed = 0.7, - shift = {0.08, 0.0} - }, - }, - fluid_boxes = { - { - production_type = "input", - pipe_picture = py.pipe_pictures("assembling-machine-3", {1.08, 4.0}, {-0.82, -4.0}, nil, nil, pipes2), - pipe_covers = py.pipe_covers(false, true, true, true), - volume = 10, - pipe_connections = {{ flow_direction = "input", position = {3.4, -1.0}, direction = 0 }} - }, - { - production_type = "input", - pipe_picture = py.pipe_pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), - pipe_covers = py.pipe_covers(false, true, true, true), - volume = 10, - pipe_connections = {{ flow_direction = "input", position = {3.4, 1.0}, direction = 0 }} - }, - { - production_type = "output", - pipe_picture = py.pipe_pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), - pipe_covers = py.pipe_covers(false, true, true, true), - volume = 1, - pipe_connections = {{ flow_direction = "input", position = {-3.4, -1.0}, direction = 0 }} - }, - { - production_type = "output", - pipe_picture = py.pipe_pictures("assembling-machine-3", {1.08, 4.0}, {-0.82, -4.0}, nil, nil, pipes2), - pipe_covers = py.pipe_covers(false, true, true, true), - volume = 1, - pipe_connections = {{ flow_direction = "input", position = {-3.4, 1.0}, direction = 0 }} - }, - { - production_type = "output", - pipe_picture = py.pipe_pictures("assembling-machine-3", {-0.82, 4.0}, {1.12, -4.0}, nil, nil, pipes), - pipe_covers = py.pipe_covers(false, true, true, true), - volume = 1, - pipe_connections = {{ flow_direction = "input", position = {-1.0, 3.4}, direction = 0 }} - } - }, - fluid_boxes_off_when_no_fluid_recipe = true, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pycoalprocessinggraphics__/sounds/quenching-tower.ogg", volume = 0.42}, - idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/quenching-tower.ogg", volume = 0.36}, - apparent_volume = 2.5 - } -} diff --git a/prototypes/buildings/early-copper-mine.lua b/prototypes/buildings/early-copper-mine.lua deleted file mode 100644 index 2c21cf5..0000000 --- a/prototypes/buildings/early-copper-mine.lua +++ /dev/null @@ -1,186 +0,0 @@ -RECIPE { - type = "recipe", - name = "early-copper-mine", - energy_required = 2, - enabled = true, - ingredients = { - {"assembling-machine-1", 2}, - {"burner-mining-drill", 2}, - {"iron-gear-wheel", 25}, - {"pipe", 10}, - {"iron-plate", 50}, - {"electronic-circuit", 20} - }, - results = { - {"early-copper-mine", 1} - } -} - -ITEM { - type = "item", - name = "early-copper-mine", - icon = "__PyBlock__/graphics/icons/mega-copper-00.png", - icon_size = 64, - flags = {}, - subgroup = "py-rawores-mines", - order = "a", - place_result = "early-copper-mine", - stack_size = 10 -} - -ENTITY { - type = "mining-drill", - name = "early-copper-mine", - icon = "__PyBlock__/graphics/icons/mega-copper-00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "early-copper-mine"}, - fast_replaceable_group = "copper-mine", - max_health = 600, - resource_categories = {"copper-rock"}, - corpse = "big-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-6.3, -6.3}, {6.3, 6.3}}, - selection_box = {{-6.5, -6.5}, {6.5, 6.5}}, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, - mining_speed = 1.94, - energy_source = - { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = - { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "input-output", position = {-7,0}}, - {type = "input-output", position = {7, 0} }, - {type = "input-output", position = {0, 7} }, - }, - filter = "steam", - production_type = "input-output", - }, - scale_fluid_usage = true, - }, - energy_usage = "2500kW", - mining_power = 3, - resource_searching_radius = 0.49, - vector_to_place_result = {0, -6.65}, - radius_visualisation_picture = { - filename = "__base__/graphics/entity/electric-mining-drill/electric-mining-drill-radius-visualization.png", - width = 12, - height = 12 - }, - animations = { - layers = { - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/c1.png", - width = 96, - height = 448, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - shift = util.by_pixel(-160, -16) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/c2.png", - width = 96, - height = 448, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - shift = util.by_pixel(-64, -16) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/c3.png", - width = 96, - height = 448, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - shift = util.by_pixel(32, -16) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/c4.png", - width = 96, - height = 448, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - shift = util.by_pixel(128, -16) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/c5.png", - width = 32, - height = 448, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - shift = util.by_pixel(192, -16) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/s1.png", - width = 96, - height = 363, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - draw_as_shadow = true, - shift = util.by_pixel(-136, 14) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/s2.png", - width = 96, - height = 363, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - draw_as_shadow = true, - shift = util.by_pixel(-40, 14) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/s3.png", - width = 96, - height = 363, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - draw_as_shadow = true, - shift = util.by_pixel(56, 14) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/s4.png", - width = 96, - height = 363, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - draw_as_shadow = true, - shift = util.by_pixel(152, 14) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/copper-mine/s5.png", - width = 31, - height = 363, - line_length = 20, - frame_count = 80, - animation_speed = 0.2, - draw_as_shadow = true, - shift = util.by_pixel(168, 14) - }, - } - }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyraworesgraphics__/sounds/copper-mine.ogg", volume = 1.3}, - idle_sound = {filename = "__pyraworesgraphics__/sounds/copper-mine.ogg", volume = 0.8}, - apparent_volume = 2.5 - } -} diff --git a/prototypes/buildings/early-iron-mine.lua b/prototypes/buildings/early-iron-mine.lua deleted file mode 100644 index f49312d..0000000 --- a/prototypes/buildings/early-iron-mine.lua +++ /dev/null @@ -1,190 +0,0 @@ -RECIPE { - type = "recipe", - name = "cheap-iron-mine", - energy_required = 10, - enabled = true, - ingredients = { - {"assembling-machine-1", 2}, - {"burner-mining-drill", 2}, - {"iron-gear-wheel", 25}, - {"pipe", 10}, - {"iron-plate", 50}, - {"electronic-circuit", 20} - }, - results = { - {"cheap-iron-mine", 1} - } -} - -ITEM { - type = "item", - name = "cheap-iron-mine", - icon = "__PyBlock__/graphics/icons/mega-iron-00.png", - icon_size = 64, - flags = {}, - subgroup = "py-rawores-mines", - order = "a", - place_result = "cheap-iron-mine", - stack_size = 10 -} - -ENTITY { - type = "mining-drill", - name = "cheap-iron-mine", - icon = "__PyBlock__/graphics/icons/mega-iron-00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 1, result = "cheap-iron-mine"}, - fast_replaceable_group = "iron-mine", - max_health = 600, - resource_categories = {"iron-rock"}, - corpse = "big-remnants", - dying_explosion = "medium-explosion", - collision_box = {{-6.3, -6.3}, {6.3, 6.3}}, - selection_box = {{-6.5, -6.5}, {6.5, 6.5}}, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, - mining_speed = 1.94, - energy_source = - { - type = "fluid", - effectivity = 1, - emissions = 1, - fluid_box = - { - base_area = 1, - height = 2, - base_level = -1, - pipe_covers = pipecoverspictures(), - pipe_connections = - { - {type = "input-output", position = {-7,0}}, - {type = "input-output", position = {7, 0} }, - {type = "input-output", position = {0, 7} }, - }, - filter = "steam", - production_type = "input-output", - }, - scale_fluid_usage = true, - }, - energy_usage = "1500kW", - mining_power = 2, - resource_searching_radius = 0.49, - vector_to_place_result = {0, -6.65}, - radius_visualisation_picture = { - filename = "__base__/graphics/entity/electric-mining-drill/electric-mining-drill-radius-visualization.png", - width = 12, - height = 12 - }, - animations = { - layers = { - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/botleft.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(-144, 112) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/botmid.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(-16, 112) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/botright.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(112, 112) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/midleft.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(-144, -16) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/midmid.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(-16, -16) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/midright.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(112, -16) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/topleft.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(-144, -144) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/topmid.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(-16, -144) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/topright.png", - width = 128, - height = 128, - line_length = 16, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(112, -144) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/botline.png", - width = 416, - height = 32, - line_length = 4, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(0, 192) - }, - { - filename = "__pyraworesgraphics__/graphics/entity/iron-mine/rightline.png", - width = 32, - height = 416, - line_length = 64, - frame_count = 200, - animation_speed = 0.2, - shift = util.by_pixel(192, 0) - }, - } - }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyraworesgraphics__/sounds/iron-mine.ogg", volume = 1.0}, - idle_sound = {filename = "__pyraworesgraphics__/sounds/iron-mine.ogg", volume = 0.7}, - apparent_volume = 2.5 - } -} diff --git a/prototypes/buildings/fish-farm-mk00.lua b/prototypes/buildings/fish-farm-mk00.lua deleted file mode 100644 index eee7cfb..0000000 --- a/prototypes/buildings/fish-farm-mk00.lua +++ /dev/null @@ -1,183 +0,0 @@ -RECIPE { - type = "recipe", - name = "fish-farm-mk00", - energy_required = 1, - enabled = true, - ingredients = { - {"glass", 6}, - {"iron-plate", 15}, - {"pipe", 10}, - {"electronic-circuit", 1}, - }, - results = { - {"fish-farm-mk00", 1} - } -} - -ITEM { - type = "item", - name = "fish-farm-mk00", - icon = "__PyBlock__/graphics/icons/fish-farm-mk00.png", - icon_size = 64, - flags = {}, - subgroup = "py-alienlife-buildings-mk00", - order = "d", - place_result = "fish-farm-mk00", - stack_size = 10 -} - -ENTITY { - type = "assembling-machine", - name = "fish-farm-mk00", - icon = "__PyBlock__/graphics/icons/fish-farm-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "fish-farm-mk00"}, - fast_replaceable_group = "fish-farm", - max_health = 100, - corpse = "medium-remnants", - dying_explosion = "big-explosion", - collision_box = {{-5.1, -5.1}, {5.1, 5.1}}, - selection_box = {{-5.5, -5.5}, {5.5, 5.5}}, - draw_entity_info_icon_background = false, - match_animation_speed_to_activity = false, - module_specification = { - module_slots = 4 - }, - allowed_effects = {"speed","productivity",'consumption','pollution'}, - crafting_categories = {"fish-farm"}, - crafting_speed = 0.04, - energy_source = { - type = "void", - usage_priority = "secondary-input", - emissions_per_minute = 0.5, - }, - energy_usage = "500kW", - animation = { - layers = { - { - filename = "__pyalienlifegraphics__/graphics/entity/fish-farm/off.png", - width = 384, - height = 384, - frame_count = 1, - line_length = 1, - shift = util.by_pixel(16, -16) - }, - { - filename = "__pyalienlifegraphics__/graphics/entity/fish-farm/off-mask.png", - width = 384, - height = 384, - frame_count = 1, - line_length = 1, - shift = util.by_pixel(16, -16), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - } - }, - working_visualisations = { - { - north_position = util.by_pixel(-128, -16), - west_position = util.by_pixel(-128, -16), - south_position = util.by_pixel(-128, -16), - east_position = util.by_pixel(-128, -16), - animation = { - filename = "__pyalienlifegraphics__/graphics/entity/fish-farm/a1.png", - frame_count = 150, - line_length = 21, - width = 96, - height = 256, - animation_speed = 0.35 - } - }, - { - north_position = util.by_pixel(-32, -16), - west_position = util.by_pixel(-32, -16), - south_position = util.by_pixel(-32, -16), - east_position = util.by_pixel(-32, -16), - animation = { - filename = "__pyalienlifegraphics__/graphics/entity/fish-farm/a2.png", - frame_count = 150, - line_length = 21, - width = 96, - height = 256, - animation_speed = 0.35 - } - }, - { - north_position = util.by_pixel(64, -16), - west_position = util.by_pixel(64, -16), - south_position = util.by_pixel(64, -16), - east_position = util.by_pixel(64, -16), - animation = { - filename = "__pyalienlifegraphics__/graphics/entity/fish-farm/a3.png", - frame_count = 150, - line_length = 21, - width = 96, - height = 256, - animation_speed = 0.35 - } - }, - { - north_position = util.by_pixel(144, -16), - west_position = util.by_pixel(144, -16), - south_position = util.by_pixel(144, -16), - east_position = util.by_pixel(144, -16), - animation = { - filename = "__pyalienlifegraphics__/graphics/entity/fish-farm/a4.png", - frame_count = 150, - line_length = 21, - width = 64, - height = 256, - animation_speed = 0.35 - } - }, - }, - - fluid_boxes = { - --1 - { - production_type = "input", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {0.0, -6.0}}}, - secondary_draw_orders = { north = -1 } - }, - { - production_type = "input", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {0.0, 6.0}}}, - secondary_draw_orders = { north = -1 } - }, - { - production_type = "output", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_area = 10, - base_level = 1, - pipe_connections = {{type = "output", position = {6.0, 0.0}}}, - secondary_draw_orders = { north = -1 } - }, - { - production_type = "output", - pipe_covers = DATA.Pipes.covers(true, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_area = 10, - base_level = 1, - pipe_connections = {{type = "output", position = {-6.0, 0.0}}}, - secondary_draw_orders = { north = -1 } - }, - off_when_no_fluid_recipe = true - }, - - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics__/sounds/fish-farm.ogg", volume = 0.65}, - idle_sound = {filename = "__pyalienlifegraphics__/sounds/fish-farm.ogg", volume = 0.45}, - apparent_volume = 2.5 - } -} diff --git a/prototypes/buildings/seaweed-crop-mk00.lua b/prototypes/buildings/seaweed-crop-mk00.lua deleted file mode 100644 index 1b54d30..0000000 --- a/prototypes/buildings/seaweed-crop-mk00.lua +++ /dev/null @@ -1,254 +0,0 @@ -RECIPE { - type = "recipe", - name = "seaweed-crop-mk00", - energy_required = 1, - enabled = true, - ingredients = { - {"stone-brick", 20}, - {"pipe", 5}, - {"small-parts-01", 5}, - {"iron-plate", 15}, - }, - results = { - {"seaweed-crop-mk00", 1} - } -} - -ITEM { - type = "item", - name = "seaweed-crop-mk00", - icon = "__PyBlock__/graphics/icons/seaweed-crop-mk00.png", - icon_size = 64, - flags = {}, - subgroup = "py-alienlife-buildings-mk00", - order = "e", - place_result = "seaweed-crop-mk00", - stack_size = 10 -} - -ENTITY { - type = "assembling-machine", - name = "seaweed-crop-mk00", - icon = "__PyBlock__/graphics/icons/seaweed-crop-mk00.png", - icon_size = 64, - flags = {"placeable-neutral", "player-creation"}, - minable = {mining_time = 0.5, result = "seaweed-crop-mk00"}, - fast_replaceable_group = "seaweed-crop", - max_health = 100, - corpse = "medium-remnants", - dying_explosion = "big-explosion", - collision_box = {{-6.2, -6.2}, {6.2, 6.2}}, - selection_box = {{-6.5, -6.5}, {6.5, 6.5}}, - draw_entity_info_icon_background = false, - match_animation_speed_to_activity = false, - fixed_recipe = 'seaweed', - module_specification = { - module_slots = 10 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, - crafting_categories = {"seaweed"}, - crafting_speed = 0.1, - energy_source = { - type = "void", - usage_priority = "secondary-input", - emissions_per_minute = -25, - }, - energy_usage = "150kW", - animation = { - layers = { - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/base.png", - width = 416, - height = 50, - line_length = 4, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(0, 183) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/base-mask.png", - width = 416, - height = 50, - line_length = 4, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(0, 183), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a1.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(-176, -34) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a1-mask.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(-176, -34), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a2.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(-112, -34) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a2-mask.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(-112, -34), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a3.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(-48, -34) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a3-mask.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(-48, -34), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a4.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(16, -34) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a4-mask.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(16, -34), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a5.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(80, -34) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a5-mask.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(80, -34), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a6.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(144, -34) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a6-mask.png", - width = 64, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(144, -34), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a7.png", - width = 32, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(192, -34) - }, - { - filename = "__pyalienlifegraphics2__/graphics/entity/seaweed-crop/a7-mask.png", - width = 32, - height = 384, - line_length = 25, - frame_count = 100, - animation_speed = 0.4, - shift = util.by_pixel(192, -34), - tint = {r = 1.0, g = 1.0, b = 0.0, a = 1.0} - }, - } - }, - - fluid_boxes = { - --1 - { - production_type = "input", - pipe_covers = DATA.Pipes.covers(false, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {2.0, -7.0}}} - }, - { - production_type = "input", - pipe_covers = DATA.Pipes.covers(false, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_area = 10, - base_level = -1, - pipe_connections = {{type = "input", position = {-2.0, -7.0}}} - }, - { - production_type = "output", - pipe_covers = DATA.Pipes.covers(false, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_level = 1, - pipe_connections = {{type = "output", position = {2.0, 7.0}}} - }, - { - production_type = "output", - pipe_covers = DATA.Pipes.covers(false, true, true, true), - pipe_picture = DATA.Pipes.pictures("assembling-machine-3", nil, {0.0, -0.88}, nil, nil), - base_level = 1, - pipe_connections = {{type = "output", position = {-2.0, 7.0}}} - }, - off_when_no_fluid_recipe = true - }, - vehicle_impact_sound = {filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65}, - working_sound = { - sound = {filename = "__pyalienlifegraphics__/sounds/seaweed-crop.ogg", volume = 1.5}, - idle_sound = {filename = "__pyalienlifegraphics__/sounds/seaweed-crop.ogg", volume = 1.1}, - apparent_volume = 2.5 - } -} From 0a85554fc1dbf2dc0920c942405f98f9efaf25b6 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 4 Dec 2024 14:57:30 -0700 Subject: [PATCH 091/110] reduce construction costs of soil extractor and washer mk00 --- changelog.txt | 5 +++++ data-updates.lua | 1 - prototypes/buildings/soil-extractor-mk00.lua | 2 +- prototypes/buildings/washer-mk00.lua | 7 +++---- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/changelog.txt b/changelog.txt index 2f49f03..911942d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,11 @@ Date: ???? Changes: - Removed some old prototypes and code (finally) - Re-added pyblock intro message + - Removed bricks from Washer MK 00 recipe + - Reduced steam engines in Washer MK 00 recipe from 2 -> 1 + - Reduced pipes in Washer MK 00 recipe from 25 -> 10 + - Reduced small parts in Washer MK 00 recipe from 10 -> 5 + - Reduced small parts in Soil Extractor MK 00 recipe from 15 -> 5 Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon --------------------------------------------------------------------------------------------------- diff --git a/data-updates.lua b/data-updates.lua index a50958f..230d772 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -240,7 +240,6 @@ RECIPE("solid-separator"):add_unlock("ash-separation"):set_fields{enabled = fals TECHNOLOGY("ash-separation"):set_fields{research_trigger = { type = "craft-item", item = "ash", count = 200 }, prerequisites = {"atomizer-mk00"}} RECIPE("copper-plate"):add_unlock("ash-separation"):set_fields{enabled = false} RECIPE("inductor1-2"):add_unlock("ash-separation"):set_fields{enabled = false} - data.raw["technology"]["ash-separation"].unit = nil -- set automation science pack to require 50 copper plates cause you gonna need them diff --git a/prototypes/buildings/soil-extractor-mk00.lua b/prototypes/buildings/soil-extractor-mk00.lua index cf8c01c..50bd103 100644 --- a/prototypes/buildings/soil-extractor-mk00.lua +++ b/prototypes/buildings/soil-extractor-mk00.lua @@ -8,7 +8,7 @@ RECIPE { {"burner-mining-drill", 2}, {"iron-plate", 15}, {"copper-cable", 5}, - {"iron-gear-wheel", 15} + {"iron-gear-wheel", 5} }, results = { {"soil-extractor-mk00", 1} diff --git a/prototypes/buildings/washer-mk00.lua b/prototypes/buildings/washer-mk00.lua index 3fa0ae0..2c81997 100644 --- a/prototypes/buildings/washer-mk00.lua +++ b/prototypes/buildings/washer-mk00.lua @@ -5,11 +5,10 @@ RECIPE { energy_required = 4, enabled = true, ingredients = { - {"steam-engine", 2}, + {"steam-engine", 1}, {"iron-plate", 10}, - {"pipe", 25}, - {"iron-gear-wheel", 10}, - {"stone-brick", 20} + {"pipe", 10}, + {"iron-gear-wheel", 5} }, results = { {"washer-mk00", 1} From c2459569567909637b4c1c7fb72dc4608fd123d3 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 4 Dec 2024 15:21:37 -0700 Subject: [PATCH 092/110] double faw plantation speed --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 20 ++++++++------------ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/changelog.txt b/changelog.txt index 911942d..6b2ecbd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -8,6 +8,7 @@ Date: ???? - Fixed slaughterhouse mk00 locale - Fixed compost plant mk00 locale Changes: + - Double crafting speed of fawogae plantations - Removed some old prototypes and code (finally) - Re-added pyblock intro message - Removed bricks from Washer MK 00 recipe diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 5636f6e..d023b2c 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -8,8 +8,6 @@ RECIPE("fawogae-spore"):set_fields{enabled = true}:remove_unlock("fawogae-mk01") RECIPE("fawogae-1"):set_fields{enabled = true}:remove_unlock("fawogae-mk01") -RECIPE("fawogae-with-manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae-mk01") - -- early fawogae recipe RECIPE { type = "recipe", @@ -73,26 +71,24 @@ TECHNOLOGY("moss-mk01"):remove_prereq("botany-mk01") --cadaveric for copper RECIPE("cadaveric-to-copper"):remove_unlock("molecular-decohesion-mk03"):add_unlock("cadaveric-arum") - RECIPE("cadaveric-arum-sample"):remove_ingredient("alien-sample-02"):remove_ingredient("cdna"):remove_ingredient("earth-tropical-tree-sample"):remove_ingredient("earth-flower-sample"):remove_ingredient("bio-sample") - RECIPE("cadaveric-arum-codex"):remove_ingredient("electronic-circuit") - TECHNOLOGY("cadaveric-arum"):remove_prereq("botany-mk02"):remove_pack("py-science-pack-1"):remove_pack("logistic-science-pack"):remove_pack("py-science-pack-2") - RECIPE("stone-wool"):remove_unlock("zipir"):add_unlock("cadaveric-arum") - RECIPE("cadaveric-arum-mk01"):remove_ingredient("hydrocyclone-mk01"):remove_ingredient("electronic-circuit"):remove_ingredient("plastic-bar"):remove_ingredient("intermetallics"):remove_ingredient("steel-plate"):add_ingredient({name = "steel-plate", amount = 5}):add_ingredient({name = "pipe", amount = 4}):add_ingredient({name = "soil", amount = 20}):remove_ingredient("botanical-nursery") ---move fawogae with manure up +--move fawogae with manure up (even though it doesnt use manure anymore) TECHNOLOGY("fawogae-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} - -RECIPE("fawogae with manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae-mk01") - +RECIPE("fawogae-with-manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae-mk01") RECIPE("fungal-substrate"):remove_unlock("mycology-mk02"):add_unlock("fawogae-mk01") - RECIPE("dried-meat-01"):remove_unlock("rendering"):add_unlock("water-animals-mk01") +-- double faw speeds (you're welcome skosko) +data.raw["assembling-machine"]["fawogae-plantation-mk01"].crafting_speed = 2*data.raw["assembling-machine"]["fawogae-plantation-mk01"].crafting_speed +data.raw["assembling-machine"]["fawogae-plantation-mk02"].crafting_speed = 2*data.raw["assembling-machine"]["fawogae-plantation-mk02"].crafting_speed +data.raw["assembling-machine"]["fawogae-plantation-mk03"].crafting_speed = 2*data.raw["assembling-machine"]["fawogae-plantation-mk03"].crafting_speed +data.raw["assembling-machine"]["fawogae-plantation-mk04"].crafting_speed = 2*data.raw["assembling-machine"]["fawogae-plantation-mk04"].crafting_speed + --moss to kerogen RECIPE { type = "recipe", From 6ba997c30f41e3ec3471f2686930f855729b98bc Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Wed, 4 Dec 2024 15:31:53 -0700 Subject: [PATCH 093/110] fixed melamine prereqs --- ...ergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua | 2 +- changelog.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua index 178f404..57b298e 100644 --- a/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua +++ b/cached-configs/PyBlock+pyalienlife+pyalternativeenergy+pycoalprocessing+pyfusionenergy+pyhightech+pyindustry+pypetroleumhandling+pyrawores.lua @@ -419,7 +419,7 @@ fix_tech("integrated-circuits-2",{order="000077",prerequisites={"semiconductor-d fix_tech("integrated-circuits-3",{order="000087",prerequisites={"colloidal-silica","nems"},unit={count=1500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"},{amount=6,name="military-science-pack",type="item"}},time=300}}) fix_tech("kicalk",{order="000013",prerequisites={"biotech-mk01"},unit={count=70,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("magnetic-core",{order="000072",prerequisites={"boron-mk02","nenbit-matrix"},unit={count=1600,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) -fix_tech("melamine",{order="000025",prerequisites={"machines-mk01","auog-mk00"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) +fix_tech("melamine",{order="000025",prerequisites={"machines-mk01","auog-mk01"},unit={count=110,ingredients={{amount=2,name="automation-science-pack",type="item"},{amount=1,name="py-science-pack-1",type="item"}},time=45}}) fix_tech("microfibers",{order="000070",prerequisites={"aerogel"},unit={count=1300,ingredients={{amount=10,name="automation-science-pack",type="item"},{amount=3,name="logistic-science-pack",type="item"},{amount=1,name="chemical-science-pack",type="item"},{amount=2,name="py-science-pack-2",type="item"},{amount=6,name="py-science-pack-1",type="item"}},time=120}}) fix_tech("moondrop",{order="000007",prerequisites={"botany-mk01","petri-dish"},unit={count=36,ingredients={{amount=1,name="automation-science-pack",type="item"}},time=30}}) fix_tech("nano-tech",{order="000091",prerequisites={"photonics","biofet"},unit={count=2500,ingredients={{amount=30,name="automation-science-pack",type="item"},{amount=10,name="logistic-science-pack",type="item"},{amount=3,name="chemical-science-pack",type="item"},{amount=1,name="production-science-pack",type="item"},{amount=6,name="military-science-pack",type="item"},{amount=2,name="py-science-pack-3",type="item"},{amount=6,name="py-science-pack-2",type="item"},{amount=20,name="py-science-pack-1",type="item"}},time=300}}) diff --git a/changelog.txt b/changelog.txt index 6b2ecbd..2ae20f8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -18,6 +18,7 @@ Date: ???? - Reduced small parts in Soil Extractor MK 00 recipe from 15 -> 5 Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon + - Fixed Melamine not requiring Auogs - Stage 1 to be researched --------------------------------------------------------------------------------------------------- Version: 3.1.1 Date: 2024-11-26 From 75731ae3af975dd2128a7097d6731ec32f27608d Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 10 Dec 2024 18:27:58 -0700 Subject: [PATCH 094/110] fixed steam power researching when it doesnt exist. supposedly. --- changelog.txt | 1 + data-updates.lua | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 2ae20f8..b9346d7 100644 --- a/changelog.txt +++ b/changelog.txt @@ -19,6 +19,7 @@ Date: ???? Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched + - Fixed "researching" Steam Power even though it is hidden --------------------------------------------------------------------------------------------------- Version: 3.1.1 Date: 2024-11-26 diff --git a/data-updates.lua b/data-updates.lua index 230d772..12bd204 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -223,10 +223,12 @@ RECIPE("soot-to-copper"):add_unlock("ash-separation") RECIPE("soot-to-aluminium"):add_unlock("mining-with-fluid") -- get rid of the steam power tech -TECHNOLOGY("steam-power"):set_fields{hidden = true} +TECHNOLOGY("steam-power"):set_fields{hidden = true, research_trigger = nil, unit = data.raw["technology"]["mining-productivity-4"].unit} for e, effect in pairs(data.raw["technology"]["steam-power"].effects) do if effect.type == "unlock-recipe" then RECIPE(effect.recipe):remove_unlock("steam-power"):set_fields{enabled = true} + else + data.raw["technology"]["ash-separation"].effects[#data.raw["technology"]["ash-separation"].effects+1] = effect end end From b008c6b034b24abb03d1aa81ca9e692cac59afe4 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 10 Dec 2024 18:28:31 -0700 Subject: [PATCH 095/110] wpu and washer fluidbox connections visually offset --- changelog.txt | 4 +++- prototypes/buildings/washer-mk00.lua | 4 ++-- prototypes/buildings/wpu-mk00.lua | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/changelog.txt b/changelog.txt index b9346d7..65c4071 100644 --- a/changelog.txt +++ b/changelog.txt @@ -19,7 +19,9 @@ Date: ???? Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched - - Fixed "researching" Steam Power even though it is hidden + - Fixed "researching" Steam Power even though it doesn't exist. Or does it? + - Fixed Wood Processing Unit MK 00 fluidbox connections appearing in the wrong place + - Fixed Washer MK 00 fluidbox connections appearing in the wrong place --------------------------------------------------------------------------------------------------- Version: 3.1.1 Date: 2024-11-26 diff --git a/prototypes/buildings/washer-mk00.lua b/prototypes/buildings/washer-mk00.lua index 2c81997..8522e8b 100644 --- a/prototypes/buildings/washer-mk00.lua +++ b/prototypes/buildings/washer-mk00.lua @@ -42,8 +42,8 @@ burner_washer.energy_source = { volume = 200, pipe_covers = pipecoverspictures(), pipe_connections = { - { flow_direction = "input-output", position = {-2.797, 0.5}, direction = 12 }, - { flow_direction = "input-output", position = {2.797, 0.5}, direction = 4 } + { flow_direction = "input-output", direction = 12, position = { -2.5, 0.5 } }, + { flow_direction = "input-output", direction = 4, position = { 2.5, 0.5 } }, }, filter = "steam", production_type = "input-output" diff --git a/prototypes/buildings/wpu-mk00.lua b/prototypes/buildings/wpu-mk00.lua index 3c4001a..fc0a07e 100644 --- a/prototypes/buildings/wpu-mk00.lua +++ b/prototypes/buildings/wpu-mk00.lua @@ -56,8 +56,8 @@ ENTITY { volume = 200, pipe_covers = pipecoverspictures(), pipe_connections = { - { flow_direction = "input-output", position = {-2.8, 0.5}, direction = 12 }, - { flow_direction = "input-output", position = {2.8, 0.5}, direction = 4 } + { flow_direction = "input-output", direction = 12, position = { -2.5, 0.5 } }, + { flow_direction = "input-output", direction = 4, position = { 2.5, 0.5 } }, }, filter = "steam", production_type = "input-output", From 8d922deec4d3837e82e9485e4472df13648b1bd4 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Tue, 10 Dec 2024 22:42:47 -0700 Subject: [PATCH 096/110] add shunt loader and inserter --- changelog.txt | 4 + data.lua | 28 ++++--- info.json | 3 +- locale/en/locale.cfg | 2 + prototypes/buildings/shunt-inserter.lua | 100 ++++++++++++++++++++++++ prototypes/buildings/shunt-loader.lua | 27 +++++++ 6 files changed, 150 insertions(+), 14 deletions(-) create mode 100644 prototypes/buildings/shunt-inserter.lua create mode 100644 prototypes/buildings/shunt-loader.lua diff --git a/changelog.txt b/changelog.txt index 65c4071..ef947b5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,10 @@ --------------------------------------------------------------------------------------------------- Version: 3.1.2 Date: ???? + Features: + - Added dependency on AAI Loaders + - Added shunt loader, powered by steam + - Added shunt inserter, powered by steam Locale: - Added localization to new noise expressions - Fixed capitalization with some MK 00 entities diff --git a/data.lua b/data.lua index b9b8e7f..3e4d9ae 100644 --- a/data.lua +++ b/data.lua @@ -15,25 +15,27 @@ TECHNOLOGY { --tiles -require('prototypes/tiles/tiles') +require("prototypes/tiles/tiles") --buildings-- -require('prototypes/buildings/atomizer-mk00') -require('prototypes/buildings/ddc-mk00') -require('prototypes/buildings/washer-mk00') -require('prototypes/buildings/automated-screener-mk00') -require('prototypes/buildings/compost-plant-mk00') -require('prototypes/buildings/soil-extractor-mk00') -require('prototypes/buildings/wpu-mk00') +require("prototypes/buildings/atomizer-mk00") +require("prototypes/buildings/ddc-mk00") +require("prototypes/buildings/washer-mk00") +require("prototypes/buildings/automated-screener-mk00") +require("prototypes/buildings/compost-plant-mk00") +require("prototypes/buildings/soil-extractor-mk00") +require("prototypes/buildings/wpu-mk00") require("prototypes/buildings/geothermal-plant-mk01") require("prototypes/buildings/cultivator") -require('prototypes/buildings/slaughterhouse-mk00') +require("prototypes/buildings/slaughterhouse-mk00") +require("prototypes/buildings/shunt-loader") +require("prototypes/buildings/shunt-inserter") --UNUSED ---require('prototypes/buildings/fish-farm-mk00') ---require('prototypes/buildings/fwf-mk00') ---require('prototypes/buildings/seaweed-crop-mk00') ---require('prototypes/buildings/bqt') +--require("prototypes/buildings/fish-farm-mk00") +--require("prototypes/buildings/fwf-mk00") +--require("prototypes/buildings/seaweed-crop-mk00") +--require("prototypes/buildings/bqt") require("prototypes/itemgroups") require("prototypes/recipe-categories") diff --git a/info.json b/info.json index 24efe5f..d6a0c38 100644 --- a/info.json +++ b/info.json @@ -9,6 +9,7 @@ "description": "Pymod edition of a Sea Block style game", "dependencies": [ "base >= 2.0", - "pyalternativeenergy >= 3.0.0" + "pyalternativeenergy >= 3.0.0", + "aai-loaders" ] } \ No newline at end of file diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 827d367..4a155f3 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -46,6 +46,8 @@ flora-cultivator-mk01=Flora Cultivator MK 01 flora-cultivator-mk02=Flora Cultivator MK 02 flora-cultivator-mk03=Flora Cultivator MK 03 flora-cultivator-mk04=Flora Cultivator MK 04 +aai-shunt-loader=Shunt Loader +shunt-inserter=Shunt Loader [technology-name] atomizer-mk00=Early Molecular Decohesion diff --git a/prototypes/buildings/shunt-inserter.lua b/prototypes/buildings/shunt-inserter.lua new file mode 100644 index 0000000..b0b55cf --- /dev/null +++ b/prototypes/buildings/shunt-inserter.lua @@ -0,0 +1,100 @@ +RECIPE { + type = "recipe", + name = "shunt-inserter", + energy_required = 0.5, + enabled = false, + ingredients = { + {"pipe", 2 }, + {"iron-gear-wheel", 1 }, + {"iron-plate", 2 }, + }, + results = { + {"shunt-inserter", 1} + } +}:add_unlock("atomizer-mk00") + +ITEM { + type = "item", + name = "shunt-inserter", + icons = { + { + icon = table.deepcopy(data.raw.item["burner-inserter"].icon), + icon_size = 64, + tint = { 0.75, 0.75, 0.75, 1 } + }, + { + icon = data.raw.fluid["steam"].icon, + icon_size = 64, + shift = { -8, 8 }, + scale = 0.25 + } + }, + flags = {}, + subgroup = "inserter", + order = "a[shunt-inserter]", + place_result = "shunt-inserter", + stack_size = 50 +} + +ENTITY { + type = "inserter", + name = "shunt-inserter", + icons = { + { + icon = table.deepcopy(data.raw.item["burner-inserter"].icon), + icon_size = 64, + tint = { 0.75, 0.75, 0.75, 1 } + }, + { + icon = data.raw.fluid["steam"].icon, + icon_size = 64, + shift = { -8, 8 }, + scale = 0.25 + } + }, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 0.5, result = "shunt-inserter"}, + fast_replaceable_group = "inserter", + max_health = 100, + corpse = "burner-inserter-remnants", + dying_explosion = "burner-inserter-explosion", + collision_box = {{-0.289063, -0.289063}, {0.289063, 0.289063}}, + selection_box = {{-0.398438, -0.398438}, {0.398438, 0.398438}}, + energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + volume = 20, + pipe_covers = py.pipe_covers(true, true, true, true), + pipe_connections = { + { flow_direction = "input-output", position = {0, 0}, direction = 4 }, + { flow_direction = "input-output", position = {0, 0}, direction = 12 }, + }, + production_type = "input-output", + filter = "steam", + maximum_temperature = 2000 + } + }, + extension_speed = 0.035, + rotation_speed = 0.0175, + insert_position = {0, 1.2}, + pickup_position = {0, -1}, + energy_per_movement = "10kW", + energy_per_rotation = "10kW", + filter_count = 1, + hide_connection_info = true, + platform_picture = { + north = table.deepcopy(data.raw["pipe"]["pipe"].pictures.straight_horizontal), + south = table.deepcopy(data.raw["pipe"]["pipe"].pictures.straight_horizontal), + east = table.deepcopy(data.raw["pipe"]["pipe"].pictures.straight_vertical), + west = table.deepcopy(data.raw["pipe"]["pipe"].pictures.straight_vertical) + }, + hand_base_picture = table.deepcopy(data.raw["inserter"]["burner-inserter"].hand_base_picture), + hand_open_picture = table.deepcopy(data.raw["inserter"]["burner-inserter"].hand_open_picture), + hand_closed_picture = table.deepcopy(data.raw["inserter"]["burner-inserter"].hand_closed_picture) +} + +data.raw["inserter"]["shunt-inserter"].hand_base_picture.tint = { 0.75, 0.75, 0.75, 1 } +data.raw["inserter"]["shunt-inserter"].hand_open_picture.tint = { 0.75, 0.75, 0.75, 1 } +data.raw["inserter"]["shunt-inserter"].hand_closed_picture.tint = { 0.75, 0.75, 0.75, 1 } \ No newline at end of file diff --git a/prototypes/buildings/shunt-loader.lua b/prototypes/buildings/shunt-loader.lua new file mode 100644 index 0000000..55b6cf4 --- /dev/null +++ b/prototypes/buildings/shunt-loader.lua @@ -0,0 +1,27 @@ +AAILoaders.make_tier{ + name = "shunt", + transport_belt = "transport-belt", + speed = 0.010416666666666666667, + color = {0.5, 0.5, 0.5}, + fluid = "steam", + fluid_per_minute = 0.05, + technology = { name = "automation-science-pack" }, + recipe = { + ingredients = { + {type = "item", name = "transport-belt", amount = 1}, + {type = "item", name = "iron-plate", amount = 4}, + {type = "item", name = "pipe", amount = 1} + }, + energy_required = 2 + }, + unlubricated_recipe = { + ingredients = { + {type = "item", name = "transport-belt", amount = 1}, + {type = "item", name = "iron-plate", amount = 6} + }, + energy_required = 2 + }, + order = "d[loader]-a00[shunt-loader]", + upgrade = "aai-loader", + localise = false +} \ No newline at end of file From 68ea2825b2067068f733264a84ac4ae8dba77989 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 16:06:48 -0700 Subject: [PATCH 097/110] spore collector and compost plant fluidbox connections --- changelog.txt | 6 ++++-- prototypes/buildings/compost-plant-mk00.lua | 5 ++--- prototypes/updates/pyalienlife-updates.lua | 5 ++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/changelog.txt b/changelog.txt index ef947b5..32c9019 100644 --- a/changelog.txt +++ b/changelog.txt @@ -24,8 +24,10 @@ Date: ???? - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched - Fixed "researching" Steam Power even though it doesn't exist. Or does it? - - Fixed Wood Processing Unit MK 00 fluidbox connections appearing in the wrong place - - Fixed Washer MK 00 fluidbox connections appearing in the wrong place + - Fixed Wood Processing Unit MK 00 fluidbox connections appearing in the wrong places + - Fixed Washer MK 00 fluidbox connections appearing in the wrong places + - Fixed Compost Plant MK 00 fluidbox connections appearing in the wrong places + - Fixed Spore Collector MK 01 fluidbox connections appearing in the wrong places --------------------------------------------------------------------------------------------------- Version: 3.1.1 Date: 2024-11-26 diff --git a/prototypes/buildings/compost-plant-mk00.lua b/prototypes/buildings/compost-plant-mk00.lua index 00072dc..9d9dd39 100644 --- a/prototypes/buildings/compost-plant-mk00.lua +++ b/prototypes/buildings/compost-plant-mk00.lua @@ -57,9 +57,8 @@ ENTITY { volume = 200, pipe_covers = pipecoverspictures(), pipe_connections = { - { flow_direction = "input-output", position = {-5.2,1}, direction = 12 }, - { flow_direction = "input-output", position = {5.2, 1}, direction = 4 }, - -- direction = 0, + { flow_direction = "input-output", position = {-5, 1}, direction = 12 }, + { flow_direction = "input-output", position = {5, 1}, direction = 4 }, }, filter = "steam", production_type = "input-output", diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index d023b2c..a8cf72b 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -46,11 +46,10 @@ data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = { volume = 2, pipe_covers = pipecoverspictures(), pipe_connections = { - { flow_direction = "input-output", position = {-3.199, 0}, direction = 12 }, - { pipe_connections = "input-output", position = {3.199, 0}, direction = 4 }, + { flow_direction = "input-output", position = {-3, 0}, direction = 12 }, + { pipe_connections = "input-output", position = {3, 0}, direction = 4 }, }, filter = "steam", - -- flow_direction = "input-output", }, scale_fluid_usage = true } From babf331b453eabd2c30ca2897441d7506db8e7e0 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 16:08:55 -0700 Subject: [PATCH 098/110] cultivator to collector recipes and removing fluidboxes --- changelog.txt | 2 + prototypes/buildings/cultivator.lua | 112 +++++++++++++++++++++++++++- 2 files changed, 110 insertions(+), 4 deletions(-) diff --git a/changelog.txt b/changelog.txt index 32c9019..d3bc6fc 100644 --- a/changelog.txt +++ b/changelog.txt @@ -20,6 +20,8 @@ Date: ???? - Reduced pipes in Washer MK 00 recipe from 25 -> 10 - Reduced small parts in Washer MK 00 recipe from 10 -> 5 - Reduced small parts in Soil Extractor MK 00 recipe from 15 -> 5 + - Removed 2 fluid connections from flora cultivators, so that those and vector_to_place_result don't collide + - Added recipes to swap between cultivator and collector variants Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched diff --git a/prototypes/buildings/cultivator.lua b/prototypes/buildings/cultivator.lua index 3486597..5cb71ac 100644 --- a/prototypes/buildings/cultivator.lua +++ b/prototypes/buildings/cultivator.lua @@ -16,6 +16,32 @@ RECIPE { } }:add_unlock("automation-science-pack") +RECIPE { + type = "recipe", + name = "collector-to-cultivator-mk01", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-collector-mk01", amount = 1} + }, + results = { + {type = "item", name = "flora-cultivator-mk01", amount = 1} + } +}:add_unlock("automation-science-pack") + +RECIPE { + type = "recipe", + name = "cultivator-to-collector-mk01", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-cultivator-mk01", amount = 1} + }, + results = { + {type = "item", name = "flora-collector-mk01", amount = 1} + } +}:add_unlock("automation-science-pack") + RECIPE { type = "recipe", name = "flora-cultivator-mk02", @@ -36,6 +62,32 @@ RECIPE { } }:add_unlock("biotech-machines-mk02"):add_ingredient {type = "item", name = "small-parts-02", amount = 50} +RECIPE { + type = "recipe", + name = "collector-to-cultivator-mk02", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-collector-mk02", amount = 1} + }, + results = { + {type = "item", name = "flora-cultivator-mk02", amount = 1} + } +}:add_unlock("biotech-machines-mk02") + +RECIPE { + type = "recipe", + name = "cultivator-to-collector-mk02", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-cultivator-mk02", amount = 1} + }, + results = { + {type = "item", name = "flora-collector-mk02", amount = 1} + } +}:add_unlock("biotech-machines-mk02") + RECIPE { type = "recipe", name = "flora-cultivator-mk03", @@ -55,6 +107,32 @@ RECIPE { } }:add_unlock("biotech-machines-mk03"):add_ingredient {type = "item", name = "small-parts-03", amount = 50} +RECIPE { + type = "recipe", + name = "collector-to-cultivator-mk03", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-collector-mk03", amount = 1} + }, + results = { + {type = "item", name = "flora-cultivator-mk03", amount = 1} + } +}:add_unlock("biotech-machines-mk03") + +RECIPE { + type = "recipe", + name = "cultivator-to-collector-mk03", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-cultivator-mk03", amount = 1} + }, + results = { + {type = "item", name = "flora-collector-mk03", amount = 1} + } +}:add_unlock("biotech-machines-mk03") + RECIPE { type = "recipe", name = "flora-cultivator-mk04", @@ -73,6 +151,32 @@ RECIPE { } }:add_unlock("biotech-machines-mk04") +RECIPE { + type = "recipe", + name = "collector-to-cultivator-mk04", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-collector-mk04", amount = 1} + }, + results = { + {type = "item", name = "flora-cultivator-mk04", amount = 1} + } +}:add_unlock("biotech-machines-mk04") + +RECIPE { + type = "recipe", + name = "cultivator-to-collector-mk04", + energy_required = 5, + enabled = false, + ingredients = { + {type = "item", name = "flora-cultivator-mk04", amount = 1} + }, + results = { + {type = "item", name = "flora-collector-mk04", amount = 1} + } +}:add_unlock("biotech-machines-mk04") + for i = 1, 4 do local name = "flora-cultivator-mk0" .. i local icons = { @@ -128,10 +232,10 @@ for i = 1, 4 do pipe_covers = py.pipe_covers(true, true, true, true), volume = 100, pipe_connections = { - { position = {0, -3}, flow_direction = "input", direction = 0 }, - { position = {3, 0}, flow_direction = "input", direction = 4 }, - { position = {0, 3}, flow_direction = "input", direction = 8 }, - { position = {-3, 0}, flow_direction = "input", direction = 12 }, + -- { position = {0, -3}, flow_direction = "input-output", direction = 0 }, + { position = {3, 0}, flow_direction = "input-output", direction = 4 }, + -- { position = {0, 3}, flow_direction = "input-output", direction = 8 }, + { position = {-3, 0}, flow_direction = "input-output", direction = 12 }, } } }, From ebbf2bbdf91e8b93da7e4008f214e26c938ffb0e Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 16:09:23 -0700 Subject: [PATCH 099/110] wpu and soil extractor vector to place results --- changelog.txt | 2 ++ prototypes/buildings/soil-extractor-mk00.lua | 6 ++---- prototypes/buildings/wpu-mk00.lua | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/changelog.txt b/changelog.txt index d3bc6fc..2d85557 100644 --- a/changelog.txt +++ b/changelog.txt @@ -22,6 +22,8 @@ Date: ???? - Reduced small parts in Soil Extractor MK 00 recipe from 15 -> 5 - Removed 2 fluid connections from flora cultivators, so that those and vector_to_place_result don't collide - Added recipes to swap between cultivator and collector variants + - Added vector_to_place_result to Wood Processing Unit MK 00 + - Added vector_to_place_result to Soild Extractor MK 00. Removed one steam connection to balance. Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched diff --git a/prototypes/buildings/soil-extractor-mk00.lua b/prototypes/buildings/soil-extractor-mk00.lua index 50bd103..5655d00 100644 --- a/prototypes/buildings/soil-extractor-mk00.lua +++ b/prototypes/buildings/soil-extractor-mk00.lua @@ -40,6 +40,7 @@ ENTITY { dying_explosion = "medium-explosion", collision_box = data.raw["assembling-machine"]["soil-extractor-mk01"].collision_box, selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + vector_to_place_result = {0, 3.51}, module_specification = { module_slots = 0 }, @@ -67,10 +68,7 @@ ENTITY { height = 45 } }), - pipe_connections = { - { flow_direction = "input-output", position = {0, 3}, direction = 8 }, - { flow_direction = "input-output", position = {0, -3}, direction = 0 }, - }, + pipe_connections = {{ flow_direction = "input", position = {0, -3}, direction = 0 }}, production_type = "input-output", filter = "steam", }, diff --git a/prototypes/buildings/wpu-mk00.lua b/prototypes/buildings/wpu-mk00.lua index fc0a07e..e338380 100644 --- a/prototypes/buildings/wpu-mk00.lua +++ b/prototypes/buildings/wpu-mk00.lua @@ -42,6 +42,7 @@ ENTITY { dying_explosion = "medium-explosion", collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, selection_box = {{-3.0, -3.0}, {3.0, 3.0}}, + vector_to_place_result = {0, -3.01}, module_specification = { module_slots = 0 }, From 42dacbde1cea612c38e3be5785d65f630539ca70 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 16:09:42 -0700 Subject: [PATCH 100/110] ddc mk00 show fluidbox connections always --- changelog.txt | 1 + prototypes/buildings/ddc-mk00.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index 2d85557..f08ad79 100644 --- a/changelog.txt +++ b/changelog.txt @@ -24,6 +24,7 @@ Date: ???? - Added recipes to swap between cultivator and collector variants - Added vector_to_place_result to Wood Processing Unit MK 00 - Added vector_to_place_result to Soild Extractor MK 00. Removed one steam connection to balance. + - Forced Destructive Distillation Column MK 00 to show fluid connections even when no recipe is selected Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched diff --git a/prototypes/buildings/ddc-mk00.lua b/prototypes/buildings/ddc-mk00.lua index 3844a8d..88c88cf 100644 --- a/prototypes/buildings/ddc-mk00.lua +++ b/prototypes/buildings/ddc-mk00.lua @@ -117,7 +117,7 @@ ENTITY { } } }, - fluid_boxes_off_when_no_fluid_recipe = true, + fluid_boxes_off_when_no_fluid_recipe = false, crafting_categories = {"distilator"}, crafting_speed = 0.5, result_inventory_size = 2, From 40fbfbcc2d13659fbcf2827e1f800537034b0163 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 16:43:45 -0700 Subject: [PATCH 101/110] removed washer module slot --- changelog.txt | 1 + prototypes/buildings/washer-mk00.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index f08ad79..8c7c09c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -33,6 +33,7 @@ Date: ???? - Fixed Washer MK 00 fluidbox connections appearing in the wrong places - Fixed Compost Plant MK 00 fluidbox connections appearing in the wrong places - Fixed Spore Collector MK 01 fluidbox connections appearing in the wrong places + - Fixed Washer MK 00 having 1 module slot (should be 0) --------------------------------------------------------------------------------------------------- Version: 3.1.1 Date: 2024-11-26 diff --git a/prototypes/buildings/washer-mk00.lua b/prototypes/buildings/washer-mk00.lua index 8522e8b..9443f54 100644 --- a/prototypes/buildings/washer-mk00.lua +++ b/prototypes/buildings/washer-mk00.lua @@ -32,7 +32,7 @@ burner_washer = table.deepcopy(data.raw["assembling-machine"].washer) burner_washer.name = "washer-mk00" burner_washer.icon = "__PyBlock__/graphics/icons/washer-mk00.png" burner_washer.minable = {mining_time = 1, result = "washer-mk00"} -burner_washer.module_specification = { module_slots = 0 } +burner_washer.module_slots = 0 burner_washer.crafting_speed = 0.5 burner_washer.energy_source = { type = "fluid", From 1c9042427f0af938155b615dd9abf81deb1485e9 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 17:30:22 -0700 Subject: [PATCH 102/110] added solid separator mk00 --- changelog.txt | 2 + data-updates.lua | 4 +- data.lua | 1 + graphics/icons/solid-separator-mk00.png | Bin 0 -> 6559 bytes locale/en/locale.cfg | 1 + prototypes/buildings/solid-separator-mk00.lua | 93 ++++++++++++++++++ .../updates/pycoalprocessing-updates.lua | 4 +- 7 files changed, 100 insertions(+), 5 deletions(-) create mode 100644 graphics/icons/solid-separator-mk00.png create mode 100644 prototypes/buildings/solid-separator-mk00.lua diff --git a/changelog.txt b/changelog.txt index 8c7c09c..2ff0799 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,6 +5,8 @@ Date: ???? - Added dependency on AAI Loaders - Added shunt loader, powered by steam - Added shunt inserter, powered by steam + - Added Solid Separator MK 00, powered by steam, to replace the earlygame solid separator. + Solid Separator MK 01 has been moved to Steel Processing and it's construction cost has been increased, but is still lower than it normally is. Locale: - Added localization to new noise expressions - Fixed capitalization with some MK 00 entities diff --git a/data-updates.lua b/data-updates.lua index 12bd204..b605997 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -237,14 +237,12 @@ RECIPE("empty-planter-box"):remove_unlock("automation-science-pack"):set_fields{ RECIPE("soil"):remove_unlock("automation-science-pack"):set_fields{enabled = true} -- move starter ash separation recipes to ash-separation and set trigger tech -RECIPE("ash-separation"):add_unlock("ash-separation"):set_fields{enabled = false} -RECIPE("solid-separator"):add_unlock("ash-separation"):set_fields{enabled = false} TECHNOLOGY("ash-separation"):set_fields{research_trigger = { type = "craft-item", item = "ash", count = 200 }, prerequisites = {"atomizer-mk00"}} RECIPE("copper-plate"):add_unlock("ash-separation"):set_fields{enabled = false} RECIPE("inductor1-2"):add_unlock("ash-separation"):set_fields{enabled = false} data.raw["technology"]["ash-separation"].unit = nil --- set automation science pack to require 50 copper plates cause you gonna need them +-- set automation science pack to require 10 copper plates TECHNOLOGY("automation-science-pack"):set_fields{research_trigger = { type = "craft-item", item = "copper-plate", count = 10 }}:set_fields{prerequisites = {"ash-separation"}} -- burner/steam mk00 recipe adjustments diff --git a/data.lua b/data.lua index 3e4d9ae..407fabf 100644 --- a/data.lua +++ b/data.lua @@ -24,6 +24,7 @@ require("prototypes/buildings/washer-mk00") require("prototypes/buildings/automated-screener-mk00") require("prototypes/buildings/compost-plant-mk00") require("prototypes/buildings/soil-extractor-mk00") +require("prototypes/buildings/solid-separator-mk00") require("prototypes/buildings/wpu-mk00") require("prototypes/buildings/geothermal-plant-mk01") require("prototypes/buildings/cultivator") diff --git a/graphics/icons/solid-separator-mk00.png b/graphics/icons/solid-separator-mk00.png new file mode 100644 index 0000000000000000000000000000000000000000..1378dc64b3263c4d57225edee93d3dc63d1f6248 GIT binary patch literal 6559 zcmeHKc~Dc=_YVXi0a;ww6fp)0M93Zp39CYYAOU0%1Q8#}3#1Yfk^ljOhDBV^DoCY* zNZE=As8|ujDzS)Ithk_97ZzEq0*a_$1^K>!T06h*%x^mL?SE$G<=uPkIiGvZ=bUrr z-Ce%k?wab$)L}4~Cey>!4|+Q*9)v3Ne~cH~4ZT{D0)i!eKmtlA5^#CZAWD)b1W}-r z$A!V95BR?8wVF|gnc<~&%F3&aTaSmGT0S!6Qo=ev_LXB=q%k78cv8a{o~L3Ogsojl z@i^etrOa?IKJ07e{TY2|m6yTdUm3?bgm# zSI(tnZrDBFZ}I?c&V&XRbWZ3W)I8zqM2JG(qb=$dSDm?F9lFx&fh}zrBwnuXcx>ZMq<-Nd7))t9&&9=;>EiM+ASjH(DLD=v&CW(G z;rw3@s_|=U-vP9!6jzu;|1RA3+FxIHga=lBqsU8$Y{7-!yfg zapdLl;nHU18w(8&-7$*Y8Ekc??$MPR&e6;MmjT9Ii}0(BHNx(`nuFCfi9YXt*|Is* zTU<0m=nHmLX71d-zD2d|q)thoNsH_5H*Dkgt6Gaq^SzF15=6h1DeLC;tIcNgbQNs> z6-mVy!0F-9@7OAc5#_xF{BKr1jPF-@;RFu~xfWgpCl{CB3kjJ*Jb9>!J04o_v)ZOH zScXp{$K%_9O3YGq`8&fDf2}7?3mSvEx(nXfroc#d?%viE3K4tsFv-{ZyTV2<%q0JK zzek(0SM=&i@_i>5Oe>HFRah{~i_RACaR5gU0pg^5Ayj%Wn7xx!2(Y(;5>x~j$%}D7 zKR@4uM)5cf=pbtrfhBYSqj(-kBG5m{JAj?El}+QIogCHerE~~@4@v-(lph@KPj)Eg#8B$(63GJwkvKMi zKTs@)6R|-?JQyP}`5c17{$wwV6GhL3!(rpWXpj%7ilJSJf7{ZX$@2YVp`aj=#~037 zL1h0;Q^Mo^Mb_VZQ>@H|^SL9C`6t}JX@87;P8rf-vFNS>cAUaJrmF*5u|J(7VDmWi zxgo&e5ZGJ}8%u&lSPI#ii=~lh94whi;E*Up4vhjtdAKr0|n3d>K+EU2M4fCO*_ zBp?JzAW`T<5}im1AX4cB65ZMsOMnKS=?geKZsPx^t!N*V{e03rcw%V(#5vJ?Px*tf z^RxMBG;gk%P^h`Kpabmr5X3+{IL|SJHNV7;0%9UT==}Ilupi~T|56NGfC5qp6aY)$ zLaj}qQHfXph+t!_NkD`RmrNsaZEWUP_=GMNa3u+V2wW2h@d$AR73dsSD2orN!u(x7 zAqrIF0ip~`Bw-bl+0e-}I>j1||M$ZKBLE^40vXG;v4z?NB$KeV*6au7G~k>;#2qnU_H)Gj!17Kb`a+_<~aLZ~i`%*}u63 z3iV}^f5h(>y1vl$j~Mtz%3rGM3tj(+fq$g@rMmuSbgBP!R|I3A54;5ECfJ7}BcNNP zYQ#EsSJ({fF$_(qyweLwkV21*V(995S@9@+XQ{Ou5~@jXh1xJ>did9I7BCos z$8=p2Abl`e@QpAaNVnB#a`Yj~CUdb~r-x;lZ>XuvcfXeAY50TnM|B@~ho1DWUP}hr z_C!TJUgrMH%kZV_O!Lm2={uX`w?g0@x9UJ)h=oK|Lr;^ZYxz<<#rmCPbN+tAKY7CJP(n|)xM}!E^4R3zS>NlH?hs^!Vyza6oqNKw)5ZZe{15ibD2LoCCoYtX$YJaJjK) z@38;F4JS6w#8Z|P<(dTImpSN6yY^ZL&NRtevka9cc zCd>69FIterh^)z#PVcmwQ&MJ14v`~|oZ=^!>qM+Pc^#SA5VvOVU8!2y36=QDuPjwh zGZNnnKexGf=i>EKHFjyE&KvdbbS5VurkL%&RTk@LZpIg{)J0^?rmp@2sWlbygR#L) z#@&^Y^J;szBQ=1_-7_Ph1{MoeuR7LH924Bcy6z$de+M5d8a2_FYOTmSQ9fW7ercHOVd+^+ED@dBxmo8-qY{d`3#eZcA7=A$M>C>lIkgJSeOYNU;Ut0pOSS9UuIAT?StYuvKDBRC)EsuwR3jZ!4|6(<{4$h9X3 zXGSyBv~dUg#@fw;VlQae(vmfOIR(@4UF}z}qkWfpGIjdJl;h7mG5Ldpw{2%N&c2pa z$u~zP7lIF?kBrw5gNjb?F(CH2^Ezk0%2m^g8BFhgdF`xs#95WuoU)s`>Cjh)*n0^-)JxpXnuO3wnZqtL5k`sQ0R|J}#Z)?IS#bK1UryX8#k z>`1Vc*`~u?8~xe@!{oC(&8!lP#mM&~6*k6%g={}7y~2Tsw-#6|V{1ayIUVJSrFFqp zuU`<0T+?<`X`rN?qSnG~*`5DG+ryly%HG`4*oL`=HFW?$xrSTuSmaRWr z5Y}nFZ13&P&Mci$6Zo{QL4nB&%8nKrrAyM~4d&5V)hdJeD{CzT*?xM0W-H5kuS1^s zaLWgHrIR7Ohc>B2UaUv@4m6L!m0R)!JRchhKcuv))&4#f#zhTG{@xT))kyteyqQ9`^N{ z^@hu*B*}4F>BWWimAVL+cI1`|W9uT?k=KANhzssd?fkWmJ^_2}!gSuM{hECC0yA?f z+yle!t?%Z_yz^V^3=t=C+P{`HGZ>6euMYdt`ZsW5u0D#PcFBhphbZnJI$6FF=j%vi$~%5Y^phc5>)Dv9v-e_W_LFb@^46yB)gqPDuZNOt z&ZCX@Ro?9%cZF^4iuPVPY52N#a49wWbojw;%5!DRtXlE_Keo0$2s5a3w$`g`g34(7 zVL1GI+*NaJ67xtM+~|*0GPt}hui}1z-_+F#{6e^Qhk43v^Ar*J+APf7j8Vjje;WpU PhrpN&Z`b2%x1|3EggGE% literal 0 HcmV?d00001 diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 4a155f3..531bed1 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -34,6 +34,7 @@ sap-cultivation=Sap Extraction driftwood=Driftwood ddc-mk00=Distructive Distilation Column MK 00 soil-extractor-mk00=Soil Extractor MK 00 +solid-separator-mk00=Sold Separator MK 00 burner-quenching-tower=Steampowered Quenching Tower washer-mk00=Washer MK 00 wpu-mk00=Wood Processing Unit MK 00 diff --git a/prototypes/buildings/solid-separator-mk00.lua b/prototypes/buildings/solid-separator-mk00.lua new file mode 100644 index 0000000..2c33ae4 --- /dev/null +++ b/prototypes/buildings/solid-separator-mk00.lua @@ -0,0 +1,93 @@ +RECIPE { + type = "recipe", + name = "solid-separator-mk00", + energy_required = 0.5, + enabled = false, + ingredients = { + {type = "item", name = "steam-engine", amount = 1}, + {type = "item", name = "iron-plate", amount = 20}, + {type = "item", name = "stone-brick", amount = 10}, + {type = "item", name = "iron-gear-wheel", amount = 10} + }, + results = { + {type = "item", name = "solid-separator-mk00", amount = 1} + } +}:add_unlock("ash-separation") + +ITEM { + type = "item", + name = "solid-separator-mk00", + icon = "__PyBlock__/graphics/icons/solid-separator-mk00.png", + icon_size = 64, + flags = {}, + subgroup = "py-cp-buildings-mk00", + order = "x", + place_result = "solid-separator-mk00", + stack_size = 10 +} + +ENTITY { + type = "assembling-machine", + name = "solid-separator-mk00", + icon = "__PyBlock__/graphics/icons/solid-separator-mk00.png", + icon_size = 64, + flags = {"placeable-neutral", "player-creation"}, + minable = {mining_time = 1, result = "solid-separator-mk00"}, + fast_replaceable_group = "solid-separator", + max_health = 200, + corpse = "big-remnants", + dying_explosion = "medium-explosion", + collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, + selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, + module_slots = 0, + crafting_categories = {"solid-separator"}, + crafting_speed = 0.5, + energy_source = { + type = "fluid", + effectivity = 1, + emissions = 1, + fluid_box = { + volume = 200, + pipe_covers = pipecoverspictures(), + pipe_connections = { + { flow_direction = "input-output", direction = 12, position = { -2.95, 0 } }, + { flow_direction = "input-output", direction = 4, position = { 2.95, 0 } }, + }, + filter = "steam" + }, + scale_fluid_usage = true + }, + energy_usage = "800kW", + graphics_set = { + animation = { + layers = { + { + filename = "__pycoalprocessinggraphics__/graphics/entity/solid-separator/solid-separator.png", + width = 249, + height = 298, + frame_count = 20, + line_length = 5, + animation_speed = 1, + shift = {0.37, -1.169} + }, + { + filename = "__pycoalprocessinggraphics__/graphics/entity/solid-separator/solid-separator-mask.png", + width = 249, + height = 298, + frame_count = 20, + line_length = 5, + animation_speed = 1, + shift = {0.37, -1.169}, + tint = {r = 0.5, g = 0.5, b = 0.5, a = 1.0} + } + } + } + }, + impact_category = "metal", + working_sound = { + sound = {filename = "__pycoalprocessinggraphics__/sounds/solid-separator.ogg"}, + idle_sound = {filename = "__pycoalprocessinggraphics__/sounds/solid-separator.ogg", volume = 0.3}, + apparent_volume = 2.5 + }, + next_upgrade = "solid-separator" +} \ No newline at end of file diff --git a/prototypes/updates/pycoalprocessing-updates.lua b/prototypes/updates/pycoalprocessing-updates.lua index 386139c..9d2aee3 100644 --- a/prototypes/updates/pycoalprocessing-updates.lua +++ b/prototypes/updates/pycoalprocessing-updates.lua @@ -1,6 +1,6 @@ -RECIPE("solid-separator"):remove_unlock("ash-separation"):set_fields{enabled = true}:remove_ingredient("steel-plate") +RECIPE("solid-separator"):remove_unlock("ash-separation"):add_unlock("steel-processing"):add_ingredient("solid-separator-mk00"):add_ingredient_amount("small-parts-01", -20):add_ingredient_amount("steel-plate", -10):add_ingredient_amount("inductor1", -5) -RECIPE("ash-separation"):remove_unlock("ash-separation"):set_fields{enabled = true}:set_fields{results = { +RECIPE("ash-separation"):set_fields{results = { {type = "item", name = "coal-dust", amount = 1, probability = 0.5}, {type = "item", name = "iron-oxide", amount = 1, probability = 0.05}, {type = "item", name = "soot", amount = 1, probability = 1} From 0720aeff2724209c7e4af2645c1a3a3646f5dd7d Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 17:31:26 -0700 Subject: [PATCH 103/110] removed module slots and prevented beacon effects --- changelog.txt | 4 +++- prototypes/buildings/atomizer-mk00.lua | 5 +---- prototypes/buildings/automated-screener-mk00.lua | 5 +---- prototypes/buildings/compost-plant-mk00.lua | 5 +---- prototypes/buildings/slaughterhouse-mk00.lua | 3 +-- prototypes/buildings/soil-extractor-mk00.lua | 5 +---- prototypes/buildings/wpu-mk00.lua | 5 +---- 7 files changed, 9 insertions(+), 23 deletions(-) diff --git a/changelog.txt b/changelog.txt index 2ff0799..d45523a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -35,7 +35,9 @@ Date: ???? - Fixed Washer MK 00 fluidbox connections appearing in the wrong places - Fixed Compost Plant MK 00 fluidbox connections appearing in the wrong places - Fixed Spore Collector MK 01 fluidbox connections appearing in the wrong places - - Fixed Washer MK 00 having 1 module slot (should be 0) + - Fixed Washer MK 00 having module slots + - Fixed Slaughterhouse MK 00 having module slots + - Fixed MK 00 entities being affected by beacons --------------------------------------------------------------------------------------------------- Version: 3.1.1 Date: 2024-11-26 diff --git a/prototypes/buildings/atomizer-mk00.lua b/prototypes/buildings/atomizer-mk00.lua index 5c4b829..0f08eb3 100644 --- a/prototypes/buildings/atomizer-mk00.lua +++ b/prototypes/buildings/atomizer-mk00.lua @@ -40,10 +40,7 @@ ENTITY { collision_box = {{-3.3, -3.3}, {3.3, 3.3}}, selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, match_animation_speed_to_activity = false, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"speed","pollution"}, + module_slots = 0, crafting_categories = {"atomizer"}, crafting_speed = 0.5, energy_source = diff --git a/prototypes/buildings/automated-screener-mk00.lua b/prototypes/buildings/automated-screener-mk00.lua index 6e8fe3f..d8c41b2 100644 --- a/prototypes/buildings/automated-screener-mk00.lua +++ b/prototypes/buildings/automated-screener-mk00.lua @@ -39,10 +39,7 @@ ENTITY { collision_box = {{-3.4, -3.4}, {3.4, 3.4}}, selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, match_animation_speed_to_activity = false, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + module_slots = 0, crafting_categories = {"screener"}, crafting_speed = 0.5, energy_source = diff --git a/prototypes/buildings/compost-plant-mk00.lua b/prototypes/buildings/compost-plant-mk00.lua index 9d9dd39..c5418fb 100644 --- a/prototypes/buildings/compost-plant-mk00.lua +++ b/prototypes/buildings/compost-plant-mk00.lua @@ -41,10 +41,7 @@ ENTITY { selection_box = {{-5.5, -5.5}, {5.5, 5.5}}, draw_entity_info_icon_background = false, match_animation_speed_to_activity = false, - module_specification = { - module_slots = 1 - }, - allowed_effects = {"speed","consumption"}, + module_slots = 0, crafting_categories = {"compost"}, crafting_speed = 0.5, source_inventory_size = 1, diff --git a/prototypes/buildings/slaughterhouse-mk00.lua b/prototypes/buildings/slaughterhouse-mk00.lua index 229e063..3b4f8f8 100644 --- a/prototypes/buildings/slaughterhouse-mk00.lua +++ b/prototypes/buildings/slaughterhouse-mk00.lua @@ -43,8 +43,7 @@ ENTITY { collision_box = {{-5.1, -5.1}, {5.1, 5.1}}, selection_box = {{-5.5, -5.5}, {5.5, 5.5}}, match_animation_speed_to_activity = false, - module_slots = 1, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + module_slots = 0, crafting_categories = {"slaughterhouse"}, crafting_speed = 1, energy_source = { diff --git a/prototypes/buildings/soil-extractor-mk00.lua b/prototypes/buildings/soil-extractor-mk00.lua index 5655d00..781d454 100644 --- a/prototypes/buildings/soil-extractor-mk00.lua +++ b/prototypes/buildings/soil-extractor-mk00.lua @@ -41,10 +41,7 @@ ENTITY { collision_box = data.raw["assembling-machine"]["soil-extractor-mk01"].collision_box, selection_box = {{-3.5, -3.5}, {3.5, 3.5}}, vector_to_place_result = {0, 3.51}, - module_specification = { - module_slots = 0 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + module_slots = 0, crafting_categories = {"soil-extraction"}, crafting_speed = 0.5, energy_source = { diff --git a/prototypes/buildings/wpu-mk00.lua b/prototypes/buildings/wpu-mk00.lua index e338380..4dd3b42 100644 --- a/prototypes/buildings/wpu-mk00.lua +++ b/prototypes/buildings/wpu-mk00.lua @@ -43,10 +43,7 @@ ENTITY { collision_box = {{-2.8, -2.8}, {2.8, 2.8}}, selection_box = {{-3.0, -3.0}, {3.0, 3.0}}, vector_to_place_result = {0, -3.01}, - module_specification = { - module_slots = 0 - }, - allowed_effects = {"consumption", "speed", "productivity", "pollution"}, + module_slots = 0, crafting_categories = {"wpu", "wpu-handcrafting"}, crafting_speed = 0.5, energy_source = { From d21e0f6e5dc15080e882dc3f0f075cead37ca33c Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 17:36:14 -0700 Subject: [PATCH 104/110] buff faw to iron --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index d45523a..9074f30 100644 --- a/changelog.txt +++ b/changelog.txt @@ -27,6 +27,7 @@ Date: ???? - Added vector_to_place_result to Wood Processing Unit MK 00 - Added vector_to_place_result to Soild Extractor MK 00. Removed one steam connection to balance. - Forced Destructive Distillation Column MK 00 to show fluid connections even when no recipe is selected + - Buffed fawogae to iron to a slower, bulk recipe with a better transfer ratio Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index a8cf72b..4fcc0fb 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -32,7 +32,7 @@ RECIPE("fawogae-codex"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") RECIPE("earth-shroom-sample"):remove_unlock("fawogae-mk01"):add_unlock("yaedols") -RECIPE("fawogae-to-iron"):add_unlock("atomizer-mk00"):remove_unlock("molecular-decohesion") +RECIPE("fawogae-to-iron"):add_unlock("atomizer-mk00"):remove_unlock("molecular-decohesion"):replace_ingredient("fawogae", "fawogae", 20):replace_result("iron-ore", "iron-ore", 18):set_fields{energy_required = 15} -- reduce power cost data.raw["assembling-machine"]["fawogae-plantation-mk01"].energy_usage = "30kW" From 7e598afebb703285ceefdd4539cd29df464a8634 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 17:39:00 -0700 Subject: [PATCH 105/110] buff faw with manure --- changelog.txt | 1 + prototypes/updates/pyalienlife-updates.lua | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 9074f30..a76fc4b 100644 --- a/changelog.txt +++ b/changelog.txt @@ -28,6 +28,7 @@ Date: ???? - Added vector_to_place_result to Soild Extractor MK 00. Removed one steam connection to balance. - Forced Destructive Distillation Column MK 00 to show fluid connections even when no recipe is selected - Buffed fawogae to iron to a slower, bulk recipe with a better transfer ratio + - Buffed fawogae with fungal substrate recipe from 15 -> 18 Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index 4fcc0fb..a2c368d 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -55,7 +55,7 @@ data.raw["assembling-machine"]["spore-collector-mk01"].energy_source = { } -- fawogae to raw coal -RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:set_fields{results = {{type = "item", name = "raw-coal", amount = 5}}} +RECIPE("coal-fawogae"):set_fields{enabled = true}:remove_unlock("fawogae-mk01"):set_fields{category = "distilator"}:replace_result("raw-coal", "raw-coal", 5) -- seaweed RECIPE("seaweed-crop-mk01"):remove_ingredient("tin-plate") @@ -78,7 +78,7 @@ RECIPE("cadaveric-arum-mk01"):remove_ingredient("hydrocyclone-mk01"):remove_ingr --move fawogae with manure up (even though it doesnt use manure anymore) TECHNOLOGY("fawogae-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} -RECIPE("fawogae-with-manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae-mk01") +RECIPE("fawogae-with-manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae-mk01"):replace_result("fawogae", "fawogae", 18) RECIPE("fungal-substrate"):remove_unlock("mycology-mk02"):add_unlock("fawogae-mk01") RECIPE("dried-meat-01"):remove_unlock("rendering"):add_unlock("water-animals-mk01") From d2308247670055407d1a5c0cbea497916fe70492 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 18:56:25 -0700 Subject: [PATCH 106/110] buff jerky recipes in the early fish loop --- changelog.txt | 4 ++++ prototypes/updates/pyalienlife-updates.lua | 20 ++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index a76fc4b..e9ad70f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -29,6 +29,10 @@ Date: ???? - Forced Destructive Distillation Column MK 00 to show fluid connections even when no recipe is selected - Buffed fawogae to iron to a slower, bulk recipe with a better transfer ratio - Buffed fawogae with fungal substrate recipe from 15 -> 18 + - Buffed basic fish egg recipe + - Buffed jerky to phytoplankton recipe + - Buffed meat to dried jerky recipe + - Added an inneficient meat to jerky recipe for when spoilage is enabled Bugfixes: - Removed automation science pack from Ash Separation technology requirements on tech icon - Fixed Melamine not requiring Auogs - Stage 1 to be researched diff --git a/prototypes/updates/pyalienlife-updates.lua b/prototypes/updates/pyalienlife-updates.lua index a2c368d..c0b9d52 100644 --- a/prototypes/updates/pyalienlife-updates.lua +++ b/prototypes/updates/pyalienlife-updates.lua @@ -80,7 +80,22 @@ RECIPE("cadaveric-arum-mk01"):remove_ingredient("hydrocyclone-mk01"):remove_ingr TECHNOLOGY("fawogae-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} RECIPE("fawogae-with-manure"):remove_unlock("fawogae-mk02"):add_unlock("fawogae-mk01"):replace_result("fawogae", "fawogae", 18) RECIPE("fungal-substrate"):remove_unlock("mycology-mk02"):add_unlock("fawogae-mk01") -RECIPE("dried-meat-01"):remove_unlock("rendering"):add_unlock("water-animals-mk01") +RECIPE("dried-meat-01"):remove_unlock("rendering"):add_unlock("water-animals-mk01"):replace_result("dried-meat", "dried-meat", 8) + +-- if decay is on, re-add a less efficient meat recipe for simple but less efficient dried meat +if settings.startup["py-enable-decay"] then + RECIPE{ + type = "recipe", + name = "dried-meat-01", + category = "smelting", + enabled = false, + energy_required = 45, + ingredients = { + { type = "item", name = "meat", amount = 20 } + }, + results = {{ type = "item", name = "dried-meat", amount = 12 }} + }:add_unlock("water-animals-mk01") +end -- double faw speeds (you're welcome skosko) data.raw["assembling-machine"]["fawogae-plantation-mk01"].crafting_speed = 2*data.raw["assembling-machine"]["fawogae-plantation-mk01"].crafting_speed @@ -110,10 +125,11 @@ TECHNOLOGY("fish-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisite TECHNOLOGY("microbiology-mk01"):remove_pack("py-science-pack-1"):set_fields{prerequisites = {}} RECIPE("plankton-farm"):remove_ingredient("intermetallics"):remove_ingredient("storage-tank"):remove_ingredient("electronic-circuit") +RECIPE("jerky-to-phytoplankton"):replace_ingredient("dried-meat", "dried-meat", 2):replace_result("phytoplankton", "phytoplankton", 20) RECIPE("waste-water-void"):remove_unlock("fish-mk01"):add_unlock("electrolysis") RECIPE("fish-farm-mk01"):set_fields{ingredients = {}}:add_ingredient({type = "item", name = "steel-plate", amount = 25}):add_ingredient({type = "item", name = "glass", amount = 20}):add_ingredient("seaweed-crop-mk01"):add_ingredient("pump") - +RECIPE("breed-fish-egg-1"):replace_ingredient("fish", "fish", 8):replace_ingredient("phytoplankton", "phytoplankton", 30) RECIPE("fish-to-tin"):remove_unlock("molecular-decohesion-mk02"):add_unlock("mining-with-fluid"):set_fields{ignore_in_pypp = false} RECIPE("fish-food-01"):remove_unlock("fish-mk01"):add_unlock("fish-mk02") From e3a0222aece0aa8e2da0d988aa52f314f5ab0b7b Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 19:11:19 -0700 Subject: [PATCH 107/110] date and PUSH --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index e9ad70f..afae323 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ --------------------------------------------------------------------------------------------------- Version: 3.1.2 -Date: ???? +Date: 2024-12-15 Features: - Added dependency on AAI Loaders - Added shunt loader, powered by steam From 7157a988c21cac546c0092ea6e4ea4cf0aa8d8f8 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 19:39:39 -0700 Subject: [PATCH 108/110] actually update shunt inserter locale lol --- locale/en/locale.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 531bed1..c1ccdca 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -48,7 +48,7 @@ flora-cultivator-mk02=Flora Cultivator MK 02 flora-cultivator-mk03=Flora Cultivator MK 03 flora-cultivator-mk04=Flora Cultivator MK 04 aai-shunt-loader=Shunt Loader -shunt-inserter=Shunt Loader +shunt-inserter=Shunt Inserter [technology-name] atomizer-mk00=Early Molecular Decohesion From 78b1e60a34d78f5b821fc7e324c7f5ad6d79a13f Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 19:42:16 -0700 Subject: [PATCH 109/110] add a single fish turbine to the starting inventory --- changelog.txt | 1 + control.lua | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index afae323..b778abd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -2,6 +2,7 @@ Version: 3.1.2 Date: 2024-12-15 Features: + - Added a single Multiblade "fish" turbine to the starting inventory - Added dependency on AAI Loaders - Added shunt loader, powered by steam - Added shunt inserter, powered by steam diff --git a/control.lua b/control.lua index 2bf20f8..6aa5d41 100644 --- a/control.lua +++ b/control.lua @@ -14,7 +14,7 @@ script.on_init(function(event) created_items['py-tank-8000'] = 1 created_items["stone-furnace"] = 1 created_items["py-sinkhole"] = 2 - created_items["py-gas-vent"] = 2 + created_items["multiblade-turbine-mk01"] = 1 remote.call('freeplay', 'set_created_items', created_items) end end) From 7c323e151504bd857395d0f81ed58cba2f4828d5 Mon Sep 17 00:00:00 2001 From: protocol_1903 Date: Sat, 14 Dec 2024 19:44:28 -0700 Subject: [PATCH 110/110] remove old locale --- locale/en/locale.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index c1ccdca..b6cb561 100644 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -6,7 +6,6 @@ nylon-rope=Nylon Fibers nylon-rope-coated=Nylon fibers with ethylenediamine nylon-rope-uranyl-soaked=Nylon fibers soaked with uranyl nitrate uranyl-nitrate=Uranyl nitrate -cultivator-mk01=Cultivator [fluid-name] butanol=n-Butanol