From 923d31db2be4712af5cbc9d61a04eed7c373db2f Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Mon, 24 Nov 2025 22:41:04 +0100 Subject: [PATCH 1/7] Gardens have reduced crafting speed with quality --- .../prototypes/Bio_Garden/entities.lua | 844 +++++++++--------- 1 file changed, 424 insertions(+), 420 deletions(-) diff --git a/Bio_Industries_2/prototypes/Bio_Garden/entities.lua b/Bio_Industries_2/prototypes/Bio_Garden/entities.lua index c18e8e3..5356625 100644 --- a/Bio_Industries_2/prototypes/Bio_Garden/entities.lua +++ b/Bio_Industries_2/prototypes/Bio_Garden/entities.lua @@ -1,445 +1,449 @@ local BioInd = require('common')('Bio_Industries_2') -local ICONPATH = BioInd.modRoot .. "/graphics/icons/" local ICONPATH_E = BioInd.modRoot .. "/graphics/icons/entity/" local ENTITYPATH_BIO = BioInd.modRoot .. "/graphics/entities/" local REMNANTSPATH = BioInd.modRoot .. "/graphics/entities/remnants/" require("util") +local crafting_speed_quality_multiplier = mods["quality"] and { + uncommon = 0.83, + rare = 0.66, + epic = 0.50, + legendary = 0.16 +} or nil --- Bio Garden data:extend({ - { - type = "assembling-machine", - name = "bi-bio-garden", + { + type = "assembling-machine", + name = "bi-bio-garden", + icon = ICONPATH_E .. "bio_garden_icon.png", + icon_size = 64, + icons = { + { icon = ICONPATH_E .. "bio_garden_icon.png", icon_size = 64, - icons = { - { - icon = ICONPATH_E .. "bio_garden_icon.png", - icon_size = 64, - } - }, - flags = { "placeable-neutral", "placeable-player", "player-creation" }, - minable = { hardness = 0.2, mining_time = 0.5, result = "bi-bio-garden" }, - fast_replaceable_group = "bi-bio-garden", - max_health = 150, - corpse = "bi-bio-garden-remnant", - collision_box = { { -1.2, -1.2 }, { 1.2, 1.2 } }, - selection_box = { { -1.5, -1.5 }, { 1.5, 1.5 } }, - fluid_boxes = { - { - production_type = "input", - pipe_picture = assembler3pipepictures(), - pipe_covers = pipecoverspictures(), - volume = 1000, - base_level = -1, - pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, -1 } } } - }, - }, - fluid_boxes_off_when_no_fluid_recipe = true, - graphics_set = { - animation = { - layers = { - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_anim_trees.png", - width = 256, height = 320, - frame_count = 20, line_length = 5, - animation_speed = 0.15, scale = 0.5, shift = {0, -0.75} - }, - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_shadow.png", - width = 384, height = 320, - frame_count = 1, repeat_count = 20, -- repeat to match - draw_as_shadow = true, scale = 0.5, shift = {1, -0.75} - } - } - } - }, - open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, - close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - working_sound = { - sound = { { filename = "__Bio_Industries_2__/sound/rainforest_ambience.ogg", volume = 0.8 } }, - idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, - apparent_volume = 1.5, - max_sounds_per_type = 3, - }, - crafting_categories = { "clean-air" }, - source_inventory_size = 1, - result_inventory_size = 1, - crafting_speed = 1.0, - energy_source = { - type = "electric", - usage_priority = "secondary-input", - emissions_per_minute = { pollution = -1.5 * 60 }, -- Negative value: pollution is absorbed! - }, - energy_usage = "200kW", - ingredient_count = 1, - -- Changed for 0.18.34/1.1.4 -- Modules don't make sense for the gardens! - -- (Efficiency modules are also meant to reduce pollution, but as the base value - -- is negative, the resulting value is greater than the base value! ) - module_specification = { - module_slots = 1 - }, - -- Changed for 0.18.34/1.1.4 -- We need to use an empty table here, so the gardens - -- won't be affected by beacons! - allowed_effects = { "consumption", "speed" }, + } }, - - ---- corpse - { - type = "corpse", - name = "bi-bio-garden-remnant", - localised_name = {"entity-name.bi-bio-garden-remnant"}, - icon = "__base__/graphics/icons/remnants.png", - icon_size = 64, - icon_mipmaps = 4, - BI_add_icon = true, - flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, - subgroup = "remnants", - order = "z-z-z", - selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, - tile_width = 3, - tile_height = 3, - selectable_in_game = false, - time_before_removed = 60 * 60 * 15, -- 15 minutes - final_render_layer = "remnants", - remove_on_tile_placement = false, - animation = - { - { - filename = REMNANTSPATH .. "bio_garden_remnant.png", - line_length = 1, - width = 256, - height = 320, - frame_count = 1, - direction_count = 1, - shift = {0, -0.75}, - scale = 0.5 - } - } - }, - - - ----- Bio Garden Large - { - type = "assembling-machine", - name = "bi-bio-garden-large", + flags = { "placeable-neutral", "placeable-player", "player-creation" }, + minable = { hardness = 0.2, mining_time = 0.5, result = "bi-bio-garden" }, + fast_replaceable_group = "bi-bio-garden", + max_health = 150, + corpse = "bi-bio-garden-remnant", + collision_box = { { -1.2, -1.2 }, { 1.2, 1.2 } }, + selection_box = { { -1.5, -1.5 }, { 1.5, 1.5 } }, + fluid_boxes = { + { + production_type = "input", + pipe_picture = assembler3pipepictures(), + pipe_covers = pipecoverspictures(), + volume = 1000, + base_level = -1, + pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, -1 } } } + }, + }, + fluid_boxes_off_when_no_fluid_recipe = true, + graphics_set = { + animation = { + layers = { + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_anim_trees.png", + width = 256, height = 320, + frame_count = 20, line_length = 5, + animation_speed = 0.15, scale = 0.5, shift = { 0, -0.75 } + }, + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_shadow.png", + width = 384, height = 320, + frame_count = 1, repeat_count = 20, -- repeat to match + draw_as_shadow = true, scale = 0.5, shift = { 1, -0.75 } + } + } + } + }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + working_sound = { + sound = { { filename = "__Bio_Industries_2__/sound/rainforest_ambience.ogg", volume = 0.8 } }, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.6 }, + apparent_volume = 1.5, + max_sounds_per_type = 3, + }, + crafting_categories = { "clean-air" }, + source_inventory_size = 1, + result_inventory_size = 1, + crafting_speed = 1.0, + crafting_speed_quality_multiplier = crafting_speed_quality_multiplier, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = { pollution = -1.5 * 60 }, -- Negative value: pollution is absorbed! + }, + energy_usage = "200kW", + ingredient_count = 1, + -- Changed for 0.18.34/1.1.4 -- Modules don't make sense for the gardens! + -- (Efficiency modules are also meant to reduce pollution, but as the base value + -- is negative, the resulting value is greater than the base value! ) + module_specification = { + module_slots = 1 + }, + -- Changed for 0.18.34/1.1.4 -- We need to use an empty table here, so the gardens + -- won't be affected by beacons! + allowed_effects = { "consumption", "speed" }, + }, + + ---- corpse + { + type = "corpse", + name = "bi-bio-garden-remnant", + localised_name = { "entity-name.bi-bio-garden-remnant" }, + icon = "__base__/graphics/icons/remnants.png", + icon_size = 64, + icon_mipmaps = 4, + BI_add_icon = true, + flags = { "placeable-neutral", "building-direction-8-way", "not-on-map" }, + subgroup = "remnants", + order = "z-z-z", + selection_box = { { -1.5, -1.5 }, { 1.5, 1.5 } }, + tile_width = 3, + tile_height = 3, + selectable_in_game = false, + time_before_removed = 60 * 60 * 15, -- 15 minutes + final_render_layer = "remnants", + remove_on_tile_placement = false, + animation = { + { + filename = REMNANTSPATH .. "bio_garden_remnant.png", + line_length = 1, + width = 256, + height = 320, + frame_count = 1, + direction_count = 1, + shift = { 0, -0.75 }, + scale = 0.5 + } + } + }, + + + ---- Bio Garden Large + { + type = "assembling-machine", + name = "bi-bio-garden-large", + icon = ICONPATH_E .. "bio_garden_large_icon.png", + icon_size = 64, + icons = { + { icon = ICONPATH_E .. "bio_garden_large_icon.png", icon_size = 64, - icons = { - { - icon = ICONPATH_E .. "bio_garden_large_icon.png", - icon_size = 64, - } - }, - flags = { "placeable-neutral", "placeable-player", "player-creation" }, - minable = { hardness = 0.6, mining_time = 1, result = "bi-bio-garden-large" }, - fast_replaceable_group = "bi-bio-garden-large", - max_health = 1200, - corpse = "bi-bio-garden-large-remnant", - collision_box = {{-4.3, -4.3}, {4.3, 4.3}}, - selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, - scale_entity_info_icon = true, - fluid_boxes = { - { - production_type = "input", - pipe_covers = pipecoverspictures(), - base_area = 1, - base_level = -1, - volume = 1000, - filter = "water", - pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, -4 } } }, - --pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, 4 } } }, - -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { -4, 0 } } }, - -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 4, 0 } } }, - - - }, - }, - off_when_no_fluid_recipe = false, - graphics_set = { - animation = { - layers = { - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_large.png", - width = 640, - height = 704, - scale = 0.5, - shift = {0, -0.5}, - }, - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_large_shadow.png", - width = 704, - height = 640, - scale = 0.5, - shift = {0.5, 0}, - draw_as_shadow = true, - } - } - }, - - working_visualisations = { - { - light = {intensity = 1.2, size = 20 }, - draw_as_light = true, - effect = "flicker", - constant_speed = true, - fadeout = true, - animation = { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_large_light.png", - width = 640, - height = 640, - scale = 0.5, - shift = {0, 0}, - }, - }, - }, - }, - open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, - close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - working_sound = { - sound = { { filename = "__Bio_Industries_2__/sound/rainforest_ambience.ogg", volume = 1 } }, - idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.8 }, - apparent_volume = 1.5, - max_sounds_per_type = 3, - }, - crafting_categories = { "clean-air" }, - source_inventory_size = 1, - result_inventory_size = 1, - crafting_speed = 4.0, - energy_source = { - type = "electric", - usage_priority = "secondary-input", - emissions_per_minute = { pollution = -12 * 60 }, -- Negative value: pollution is absorbed! - }, - energy_usage = "800kW", - ingredient_count = 1, - -- Changed for 0.18.34/1.1.4 -- Modules don't make sense for the gardens! - -- (Efficiency modules are also meant to reduce pollution, but as the base value - -- is negative, the resulting value is greater than the base value! ) - module_specification = { - module_slots = 2 - }, - -- Changed for 0.18.34/1.1.4 -- We need to use an empty table here, so the gardens - -- won't be affected by beacons! - allowed_effects = { "consumption", "speed" }, + } }, - - --- corpse - { - type = "corpse", - name = "bi-bio-garden-large-remnant", - localised_name = {"entity-name.bi-bio-garden-large-remnant"}, - icon = "__base__/graphics/icons/remnants.png", - icon_size = 64, - icon_mipmaps = 4, - BI_add_icon = true, - flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, - subgroup = "remnants", - order = "z-z-z", - selection_box = {{-4.5, -4.5}, {4.5, 4.5}}, - tile_width = 9, - tile_height = 9, - selectable_in_game = false, - time_before_removed = 60 * 60 * 15, -- 15 minutes - final_render_layer = "remnants", - remove_on_tile_placement = false, - animation = + flags = { "placeable-neutral", "placeable-player", "player-creation" }, + minable = { hardness = 0.6, mining_time = 1, result = "bi-bio-garden-large" }, + fast_replaceable_group = "bi-bio-garden-large", + max_health = 1200, + corpse = "bi-bio-garden-large-remnant", + collision_box = { { -4.3, -4.3 }, { 4.3, 4.3 } }, + selection_box = { { -4.5, -4.5 }, { 4.5, 4.5 } }, + scale_entity_info_icon = true, + fluid_boxes = { + { + production_type = "input", + pipe_covers = pipecoverspictures(), + base_area = 1, + base_level = -1, + volume = 1000, + filter = "water", + pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, -4 } } }, + --pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, 4 } } }, + -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { -4, 0 } } }, + -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 4, 0 } } }, + + + }, + }, + off_when_no_fluid_recipe = false, + graphics_set = { + animation = { + layers = { + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_large.png", + width = 640, + height = 704, + scale = 0.5, + shift = { 0, -0.5 }, + }, + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_large_shadow.png", + width = 704, + height = 640, + scale = 0.5, + shift = { 0.5, 0 }, + draw_as_shadow = true, + } + } + }, + + working_visualisations = { + { + light = { intensity = 1.2, size = 20 }, + draw_as_light = true, + effect = "flicker", + constant_speed = true, + fadeout = true, + animation = { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_large_light.png", + width = 640, + height = 640, + scale = 0.5, + shift = { 0, 0 }, + }, + }, + }, + }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + working_sound = { + sound = { { filename = "__Bio_Industries_2__/sound/rainforest_ambience.ogg", volume = 1 } }, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.8 }, + apparent_volume = 1.5, + max_sounds_per_type = 3, + }, + crafting_categories = { "clean-air" }, + source_inventory_size = 1, + result_inventory_size = 1, + crafting_speed = 4.0, + crafting_speed_quality_multiplier = crafting_speed_quality_multiplier, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = { pollution = -12 * 60 }, -- Negative value: pollution is absorbed! + }, + energy_usage = "800kW", + ingredient_count = 1, + -- Changed for 0.18.34/1.1.4 -- Modules don't make sense for the gardens! + -- (Efficiency modules are also meant to reduce pollution, but as the base value + -- is negative, the resulting value is greater than the base value! ) + module_specification = { + module_slots = 2 + }, + -- Changed for 0.18.34/1.1.4 -- We need to use an empty table here, so the gardens + -- won't be affected by beacons! + allowed_effects = { "consumption", "speed" }, + }, + + --- corpse { - { - filename = REMNANTSPATH .. "bio_garden_large_remnant.png", - line_length = 1, - width = 640, - height = 704, - frame_count = 1, - direction_count = 1, - shift = {0, -0.5}, - scale = 0.5 + type = "corpse", + name = "bi-bio-garden-large-remnant", + localised_name = { "entity-name.bi-bio-garden-large-remnant" }, + icon = "__base__/graphics/icons/remnants.png", + icon_size = 64, + icon_mipmaps = 4, + BI_add_icon = true, + flags = { "placeable-neutral", "building-direction-8-way", "not-on-map" }, + subgroup = "remnants", + order = "z-z-z", + selection_box = { { -4.5, -4.5 }, { 4.5, 4.5 } }, + tile_width = 9, + tile_height = 9, + selectable_in_game = false, + time_before_removed = 60 * 60 * 15, -- 15 minutes + final_render_layer = "remnants", + remove_on_tile_placement = false, + animation = { + { + filename = REMNANTSPATH .. "bio_garden_large_remnant.png", + line_length = 1, + width = 640, + height = 704, + frame_count = 1, + direction_count = 1, + shift = { 0, -0.5 }, + scale = 0.5 + } } - } -}, ----- Bio Garden Huge - { - type = "assembling-machine", - name = "bi-bio-garden-huge", + }, + ---- Bio Garden Huge + { + type = "assembling-machine", + name = "bi-bio-garden-huge", + icon = ICONPATH_E .. "bio_garden_huge_icon.png", + icon_size = 64, + icons = { + { icon = ICONPATH_E .. "bio_garden_huge_icon.png", icon_size = 64, - icons = { - { - icon = ICONPATH_E .. "bio_garden_huge_icon.png", - icon_size = 64, - } - }, - flags = { "placeable-neutral", "placeable-player", "player-creation" }, - minable = { hardness = 1.2, mining_time = 2, result = "bi-bio-garden-huge" }, - fast_replaceable_group = "bi-bio-garden-huge", - max_health = 2000, - corpse = "bi-bio-garden-huge-remnant", - collision_box = {{-13.3, -13.3}, {13.3, 13.3}}, - selection_box = {{-13.5, -13.5}, {13.5, 13.5}}, - scale_entity_info_icon = true, - fluid_boxes = { - { - production_type = "input", - pipe_covers = pipecoverspictures(), - base_area = 1, - base_level = -1, - volume = 1000, - filter = "water", - pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, -13 } } }, - -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, 13 } } }, - -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { -13, 0 } } }, - -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 13, 0 } } }, - }, - }, - off_when_no_fluid_recipe = false, - graphics_set = { - animation = { - layers = { - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge.png", - width = 1792, - height = 1856, - scale = 0.5, - frame_count = 1, - line_length = 1, - repeat_count = 8, - animation_speed = 1, - shift = {0, -0.5}, - }, - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_shadow.png", - width = 256, - height = 1856, - scale = 0.5, - frame_count = 1, - line_length = 1, - repeat_count = 8, - animation_speed = 1, - shift = {14, -0.5}, - draw_as_shadow = true, - }, - }, - }, - - working_visualisations = { - { - constant_speed = true, - fadeout = true, - animation = { - layers = { - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png", - width = 128, - height = 96, - scale = 0.5, - frame_count = 8, - line_length = 8, - repeat_count = 1, - animation_speed = 1, - shift = {-4.5, -4.5}, - }, - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png", - width = 128, - height = 96, - scale = 0.5, - frame_count = 8, - line_length = 8, - repeat_count = 1, - animation_speed = 1, - shift = {4.5, 4.5}, - }, - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png", - width = 128, - height = 96, - scale = 0.5, - frame_count = 8, - line_length = 8, - repeat_count = 1, - animation_speed = 1, - shift = {4.5, -4.5}, - }, - { - filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png", - width = 128, - height = 96, - scale = 0.5, - frame_count = 8, - line_length = 8, - repeat_count = 1, - animation_speed = 1, - shift = {-4.5, 4.5}, - }, - }, - }, - }, - }, - }, - open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, - close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - working_sound = { - sound = { { filename = "__Bio_Industries_2__/sound/rainforest_ambience.ogg", volume = 1.8 } }, - idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.9 }, - apparent_volume = 2, - max_sounds_per_type = 3, - }, - crafting_categories = { "clean-air" }, - source_inventory_size = 1, - result_inventory_size = 1, - crafting_speed = 16, - energy_source = { - type = "electric", - usage_priority = "secondary-input", - emissions_per_minute = { pollution = -96 * 60 }, -- Negative value: pollution is absorbed! - }, - energy_usage = "3200kW", - ingredient_count = 1, - -- Changed for 0.18.34/1.1.4 -- Modules don't make sense for the gardens! - -- (Efficiency modules are also meant to reduce pollution, but as the base value - -- is negative, the resulting value is greater than the base value! ) - module_specification = { - module_slots = 4 - }, - -- Changed for 0.18.34/1.1.4 -- We need to use an empty table here, so the gardens - -- won't be affected by beacons! - allowed_effects = { "consumption", "speed" }, + } }, - ---- corpse - -{ - type = "corpse", - name = "bi-bio-garden-huge-remnant", - localised_name = {"entity-name.bi-bio-garden-huge-remnant"}, - icon = "__base__/graphics/icons/remnants.png", - icon_size = 64, - icon_mipmaps = 4, - BI_add_icon = true, - flags = {"placeable-neutral", "building-direction-8-way", "not-on-map"}, - subgroup = "remnants", - order = "z-z-z", - selection_box = {{-13.5, -13.5}, {13.5, 13.5}}, - tile_width = 27, - tile_height = 27, - selectable_in_game = false, - time_before_removed = 60 * 60 * 15, -- 15 minutes - final_render_layer = "remnants", - remove_on_tile_placement = false, - animation = + flags = { "placeable-neutral", "placeable-player", "player-creation" }, + minable = { hardness = 1.2, mining_time = 2, result = "bi-bio-garden-huge" }, + fast_replaceable_group = "bi-bio-garden-huge", + max_health = 2000, + corpse = "bi-bio-garden-huge-remnant", + collision_box = { { -13.3, -13.3 }, { 13.3, 13.3 } }, + selection_box = { { -13.5, -13.5 }, { 13.5, 13.5 } }, + scale_entity_info_icon = true, + fluid_boxes = { + { + production_type = "input", + pipe_covers = pipecoverspictures(), + base_area = 1, + base_level = -1, + volume = 1000, + filter = "water", + pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, -13 } } }, + -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, 13 } } }, + -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { -13, 0 } } }, + -- pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 13, 0 } } }, + }, + }, + off_when_no_fluid_recipe = false, + graphics_set = { + animation = { + layers = { + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge.png", + width = 1792, + height = 1856, + scale = 0.5, + frame_count = 1, + line_length = 1, + repeat_count = 8, + animation_speed = 1, + shift = { 0, -0.5 }, + }, + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_shadow.png", + width = 256, + height = 1856, + scale = 0.5, + frame_count = 1, + line_length = 1, + repeat_count = 8, + animation_speed = 1, + shift = { 14, -0.5 }, + draw_as_shadow = true, + }, + }, + }, + + working_visualisations = { + { + constant_speed = true, + fadeout = true, + animation = { + layers = { + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png", + width = 128, + height = 96, + scale = 0.5, + frame_count = 8, + line_length = 8, + repeat_count = 1, + animation_speed = 1, + shift = { -4.5, -4.5 }, + }, + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png", + width = 128, + height = 96, + scale = 0.5, + frame_count = 8, + line_length = 8, + repeat_count = 1, + animation_speed = 1, + shift = { 4.5, 4.5 }, + }, + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png", + width = 128, + height = 96, + scale = 0.5, + frame_count = 8, + line_length = 8, + repeat_count = 1, + animation_speed = 1, + shift = { 4.5, -4.5 }, + }, + { + filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png", + width = 128, + height = 96, + scale = 0.5, + frame_count = 8, + line_length = 8, + repeat_count = 1, + animation_speed = 1, + shift = { -4.5, 4.5 }, + }, + }, + }, + }, + }, + }, + open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, + close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, + working_sound = { + sound = { { filename = "__Bio_Industries_2__/sound/rainforest_ambience.ogg", volume = 1.8 } }, + idle_sound = { filename = "__base__/sound/idle1.ogg", volume = 0.9 }, + apparent_volume = 2, + max_sounds_per_type = 3, + }, + crafting_categories = { "clean-air" }, + source_inventory_size = 1, + result_inventory_size = 1, + crafting_speed = 16, + crafting_speed_quality_multiplier = crafting_speed_quality_multiplier, + energy_source = { + type = "electric", + usage_priority = "secondary-input", + emissions_per_minute = { pollution = -96 * 60 }, -- Negative value: pollution is absorbed! + }, + energy_usage = "3200kW", + ingredient_count = 1, + -- Changed for 0.18.34/1.1.4 -- Modules don't make sense for the gardens! + -- (Efficiency modules are also meant to reduce pollution, but as the base value + -- is negative, the resulting value is greater than the base value! ) + module_specification = { + module_slots = 4 + }, + -- Changed for 0.18.34/1.1.4 -- We need to use an empty table here, so the gardens + -- won't be affected by beacons! + allowed_effects = { "consumption", "speed" }, + }, + ---- corpse + { - { - filename = REMNANTSPATH .. "bio_garden_huge_remnant.png", - line_length = 1, - width = 896, - height = 928, - frame_count = 1, - direction_count = 1, - shift = {0, -0.5}, + type = "corpse", + name = "bi-bio-garden-huge-remnant", + localised_name = { "entity-name.bi-bio-garden-huge-remnant" }, + icon = "__base__/graphics/icons/remnants.png", + icon_size = 64, + icon_mipmaps = 4, + BI_add_icon = true, + flags = { "placeable-neutral", "building-direction-8-way", "not-on-map" }, + subgroup = "remnants", + order = "z-z-z", + selection_box = { { -13.5, -13.5 }, { 13.5, 13.5 } }, + tile_width = 27, + tile_height = 27, + selectable_in_game = false, + time_before_removed = 60 * 60 * 15, -- 15 minutes + final_render_layer = "remnants", + remove_on_tile_placement = false, + animation = { + { + filename = REMNANTSPATH .. "bio_garden_huge_remnant.png", + line_length = 1, + width = 896, + height = 928, + frame_count = 1, + direction_count = 1, + shift = { 0, -0.5 }, + } } } -} - + }) From d595b444fcf9b5b59a228b3b421d20b4f1ee9e10 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Wed, 10 Dec 2025 19:45:56 +0100 Subject: [PATCH 2/7] 2.0.31 --- Bio_Industries_2/changelog.txt | 5 +++++ Bio_Industries_2/info.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Bio_Industries_2/changelog.txt b/Bio_Industries_2/changelog.txt index b149076..2ab0343 100644 --- a/Bio_Industries_2/changelog.txt +++ b/Bio_Industries_2/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 2.0.31 +Date: 10.12.2025 + Changes: + - Gardens have reduced crafting speed with quality +--------------------------------------------------------------------------------------------------- Version: 2.0.30 Date: 05.11.2025 Bug Fixes: diff --git a/Bio_Industries_2/info.json b/Bio_Industries_2/info.json index 1b23b6e..86fd94b 100644 --- a/Bio_Industries_2/info.json +++ b/Bio_Industries_2/info.json @@ -1,6 +1,6 @@ { "name": "Bio_Industries_2", - "version": "2.0.30", + "version": "2.0.31", "factorio_version": "2.0", "title": "Bio Industries", "author": "TheSAguy - Had a few Ideas, Pi-C (Programming Genius), Snouz (Graphics Wizard), Cackling Fiend - Conversion to F2.0", From 7ce072707c540464855e4d2d62d0ff54f1e7a50b Mon Sep 17 00:00:00 2001 From: Adam Cirillo Date: Tue, 13 Jan 2026 16:56:45 +0100 Subject: [PATCH 3/7] Updated Angels prototypes to new names (#11) Have updated all Angels prototypes to new names, tested with Full Bobs+Angels+Omni Reviewed-on: https://git.cacklingfiend.info/cacklingfiend/Bio_Industries_2/pulls/11 Co-authored-by: Adam Cirillo Co-committed-by: Adam Cirillo --- Bio_Industries_2/changelog.txt | 5 +++ Bio_Industries_2/data-updates.lua | 14 ++++---- Bio_Industries_2/info.json | 2 +- .../Bio_Farm/compatible_recipes.lua | 36 +++++++++---------- 4 files changed, 31 insertions(+), 26 deletions(-) diff --git a/Bio_Industries_2/changelog.txt b/Bio_Industries_2/changelog.txt index 2ab0343..ed4afd2 100644 --- a/Bio_Industries_2/changelog.txt +++ b/Bio_Industries_2/changelog.txt @@ -1,4 +1,9 @@ --------------------------------------------------------------------------------------------------- +Version: 2.0.32 +Date: ???? + Changes: + - Updated Angels protyptes to new names +--------------------------------------------------------------------------------------------------- Version: 2.0.31 Date: 10.12.2025 Changes: diff --git a/Bio_Industries_2/data-updates.lua b/Bio_Industries_2/data-updates.lua index 99dd0a5..16d34e9 100644 --- a/Bio_Industries_2/data-updates.lua +++ b/Bio_Industries_2/data-updates.lua @@ -340,9 +340,9 @@ if settings.startup["angels-use-angels-barreling"] and settings.startup["angels- data.raw.technology["bi-tech-fertilizer"].prerequisites = { "bi-tech-bio-farming", -- AND ( - "water-treatment", -- sulfur + "angels-water-treatment", -- sulfur -- OR - "angels-fluid-barreling", -- barreling (needed 'water-treatment' as prerequisites) + "angels-fluid-barreling", -- barreling (needed 'angels-water-treatment' as prerequisites) -- ) } end @@ -350,12 +350,12 @@ end ----- Angels Merge ---- if mods["angelspetrochem"] then - data.raw.item["pellet-coke"].icon = "__angelspetrochem__/graphics/icons/pellet-coke.png" - data.raw.item["pellet-coke"].icon_size = 32 - data.raw.item["pellet-coke"].fuel_acceleration_multiplier = 1.1 - data.raw.item["pellet-coke"].fuel_top_speed_multiplier = 1.2 + data.raw.item["angels-pellet-coke"].icon = "__angelspetrochemgraphics__/graphics/icons/pellet-coke.png" + data.raw.item["angels-pellet-coke"].icon_size = 32 + data.raw.item["angels-pellet-coke"].fuel_acceleration_multiplier = 1.1 + data.raw.item["angels-pellet-coke"].fuel_top_speed_multiplier = 1.2 - data.raw.recipe["pellet-coke"].category = "biofarm-mod-smelting" + data.raw.recipe["angels-pellet-coke"].category = "biofarm-mod-smelting" thxbob.lib.tech.remove_recipe_unlock("angels-coal-processing-2", "pellet-coke") thxbob.lib.tech.add_recipe_unlock("angels-coal-cracking", "pellet-coke") end diff --git a/Bio_Industries_2/info.json b/Bio_Industries_2/info.json index 86fd94b..5cd40c7 100644 --- a/Bio_Industries_2/info.json +++ b/Bio_Industries_2/info.json @@ -1,6 +1,6 @@ { "name": "Bio_Industries_2", - "version": "2.0.31", + "version": "2.0.32", "factorio_version": "2.0", "title": "Bio Industries", "author": "TheSAguy - Had a few Ideas, Pi-C (Programming Genius), Snouz (Graphics Wizard), Cackling Fiend - Conversion to F2.0", diff --git a/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua b/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua index 41961f2..b582626 100644 --- a/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua +++ b/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua @@ -24,7 +24,7 @@ data:extend({ order = "a[bi]-a-g[bi-coke-coal]-2", energy_required = 4, ingredients = {}, - results = {{type="item", name="pellet-coke", amount=1}}, + results = {{type="item", name="angels-pellet-coke", amount=1}}, always_show_made_in = true, allow_decomposition = false, allow_as_intermediate = false, @@ -172,15 +172,15 @@ end -- Update Wood Bricks icon to Angels if data.raw.item["wood-bricks"] and mods["angelsbioprocessing"] then - data.raw.recipe["bi-wood-fuel-brick"].icon = "__angelsbioprocessing__/graphics/icons/wood-bricks.png" + data.raw.recipe["bi-wood-fuel-brick"].icon = "__angelsbioprocessinggraphics__/graphics/icons/wood-bricks.png" data.raw.recipe["bi-wood-fuel-brick"].icon_size = 32 data.raw.recipe["bi-wood-fuel-brick"].icons = { { - icon = "__angelsbioprocessing__/graphics/icons/wood-bricks.png", + icon = "__angelsbioprocessinggraphics__/graphics/icons/wood-bricks.png", icon_size = 32, } } - data.raw.item["wood-bricks"].icon = "__angelsbioprocessing__/graphics/icons/wood-bricks.png" + data.raw.item["wood-bricks"].icon = "__angelsbioprocessinggraphics__/graphics/icons/wood-bricks.png" data.raw.item["wood-bricks"].icon_size = 32 end @@ -224,13 +224,13 @@ if mods["angelspetrochem"] then end --- If Angels, replace water with water-yellow-waste -if data.raw.fluid["water-yellow-waste"] and mods["angelspetrochem"] then - -- Replace water with water-yellow-waste in Algae Biomass conversion 4 +-- If Angels, replace water with angels-water-yellow-waste +if data.raw.fluid["angels-water-yellow-waste"] and mods["angelspetrochem"] then + -- Replace water with angels-water-yellow-waste in Algae Biomass conversion 4 thxbob.lib.recipe.remove_result("bi-biomass-conversion-4", "water") thxbob.lib.recipe.add_result("bi-biomass-conversion-4", { type = "fluid", - name = "water-yellow-waste", + name = "angels-water-yellow-waste", amount = 40 }) -- Change recipe localizations @@ -270,17 +270,17 @@ if mods["angelsrefining"] then icon_size = 64, } }, - category = "liquifying", - subgroup = "water-treatment", + category = "angels-liquifying", + subgroup = "angels-water-treatment", energy_required = 2, ingredients = { - {type = "fluid", name = "water-purified", amount = 100}, + {type = "fluid", name = "angels-water-purified", amount = 100}, {type = "item", name = "stone-crushed", amount = 90}, {type = "item", name = "wood-charcoal", amount = 30}, }, results= { - {type = "fluid", name = "water-yellow-waste", amount = 40}, - {type = "fluid", name = "water-mineralized", amount = 60}, + {type = "fluid", name = "angels-water-yellow-waste", amount = 40}, + {type = "fluid", name = "angels-water-mineralized", amount = 60}, }, enabled = false, allow_as_intermediate = false, @@ -301,16 +301,16 @@ if mods["angelsrefining"] then icon_size = 64, } }, - category = "liquifying", - subgroup = "liquifying", + category = "angels-liquifying", + subgroup = "angels-liquifying", energy_required = 4, ingredients = { - {type = "fluid", name = "water-saline", amount = 50}, + {type = "fluid", name = "angels-water-saline", amount = 50}, {type = "item", name = "stone-crushed", amount = 90}, {type = "item", name = "bi-ash", amount = 40}, }, results = { - {type = "fluid", name = "slag-slurry", amount = 100}, + {type = "fluid", name = "angels-slag-slurry", amount = 100}, }, enabled = false, allow_as_intermediate = false, @@ -319,7 +319,7 @@ if mods["angelsrefining"] then order = "i [slag-processing-dissolution]-2", }, }) - thxbob.lib.tech.add_recipe_unlock("water-treatment", "bi-mineralized-sulfuric-waste") + thxbob.lib.tech.add_recipe_unlock("angels-water-treatment", "bi-mineralized-sulfuric-waste") thxbob.lib.tech.add_recipe_unlock("slag-processing-1", "bi-slag-slurry") end From d95e51113be035b372ba34580ea729bd0fb35a9f Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 27 Jan 2026 23:12:48 +0100 Subject: [PATCH 4/7] Fix Angels compatibility --- Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua b/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua index b582626..a521bfb 100644 --- a/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua +++ b/Bio_Industries_2/prototypes/Bio_Farm/compatible_recipes.lua @@ -6,6 +6,7 @@ local ICONPATH_KR = BioInd.modRoot .. "/graphics/icons/mod_krastorio/" local ICONPATHMIPS = BioInd.modRoot .. "/graphics/icons/mips/" local nitrogen = data.raw.fluid["kr-nitrogen"] and "kr-nitrogen" or "nitrogen" +local pellet_coke = data.raw.item["angels-pellet-coke"] and "angels-pellet-coke" or "pellet-coke" data:extend({ { @@ -24,7 +25,7 @@ data:extend({ order = "a[bi]-a-g[bi-coke-coal]-2", energy_required = 4, ingredients = {}, - results = {{type="item", name="angels-pellet-coke", amount=1}}, + results = {{type="item", name=pellet_coke, amount=1}}, always_show_made_in = true, allow_decomposition = false, allow_as_intermediate = false, From 9fa0928341e99bdf2420f79ee357035acfc3221e Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 27 Jan 2026 23:05:27 +0100 Subject: [PATCH 5/7] Add missing seed ingredient to the sapling recipe --- Bio_Industries_2/prototypes/Bio_Farm/recipe.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/Bio_Industries_2/prototypes/Bio_Farm/recipe.lua b/Bio_Industries_2/prototypes/Bio_Farm/recipe.lua index a317852..a36153f 100644 --- a/Bio_Industries_2/prototypes/Bio_Farm/recipe.lua +++ b/Bio_Industries_2/prototypes/Bio_Farm/recipe.lua @@ -161,6 +161,7 @@ data:extend({ category = "biofarm-mod-greenhouse", energy_required = 400, ingredients = { + { type = "item", name = "bi-seed", amount = 20 }, { type = "fluid", name = "water", amount = 100 }, }, results = { From bc50e46ed71a284e0c3a0f472ead18dce680b580 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 27 Jan 2026 23:14:06 +0100 Subject: [PATCH 6/7] Fix modules for farm and nursery --- Bio_Industries_2/prototypes/Bio_Farm/entities.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Bio_Industries_2/prototypes/Bio_Farm/entities.lua b/Bio_Industries_2/prototypes/Bio_Farm/entities.lua index fd8ee4e..8ff75d9 100644 --- a/Bio_Industries_2/prototypes/Bio_Farm/entities.lua +++ b/Bio_Industries_2/prototypes/Bio_Farm/entities.lua @@ -327,9 +327,7 @@ data:extend({ ingredient_count = 3, open_sound = { filename = "__base__/sound/machine-open.ogg", volume = 0.85 }, close_sound = { filename = "__base__/sound/machine-close.ogg", volume = 0.75 }, - module_specification = { - module_slots = 3 - }, + module_slots = 3, allowed_effects = { "consumption", "speed", "productivity", "pollution" }, }, @@ -412,7 +410,7 @@ data:extend({ pipe_connections = { { flow_direction = "input", direction = defines.direction.north, position = { 0, -1 } } } }, }, - module_specification = {module_slots = 2}, + module_slots = 2, allowed_effects = { "consumption", "speed", "productivity", "pollution" }, graphics_set = { animation = { From 22e27da6ebf69aba578268bd87770af09bb12271 Mon Sep 17 00:00:00 2001 From: Simon Brodtmann Date: Tue, 27 Jan 2026 23:17:45 +0100 Subject: [PATCH 7/7] 2.0.32 --- Bio_Industries_2/changelog.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Bio_Industries_2/changelog.txt b/Bio_Industries_2/changelog.txt index ed4afd2..5986021 100644 --- a/Bio_Industries_2/changelog.txt +++ b/Bio_Industries_2/changelog.txt @@ -1,8 +1,10 @@ --------------------------------------------------------------------------------------------------- Version: 2.0.32 -Date: ???? - Changes: - - Updated Angels protyptes to new names +Date: 27.01.2026 + Bug Fixes: + - Add missing seed ingredient to the sapling recipe + - Fix modules for farm and nursery + - Fix compatibility with Angel's mods --------------------------------------------------------------------------------------------------- Version: 2.0.31 Date: 10.12.2025