diff --git a/Bio_Industries_2/control.lua b/Bio_Industries_2/control.lua index 5c967f0..8f3d8f6 100644 --- a/Bio_Industries_2/control.lua +++ b/Bio_Industries_2/control.lua @@ -460,11 +460,15 @@ local function On_Built(event) elseif entity.type == "electric-pole" then local pole = entity -- Make sure hidden poles of the Bio gardens are connected correctly! - if pole.name == entities["bi-bio-garden"].hidden[h_key].name and base then - BioInd.writeDebug("Bio garden!") - BioInd.connect_garden_pole(base, pole) - BioInd.writeDebug("Connected %s (%s)", { pole.name, pole.unit_number or "nil" }) - end + local garden_names = { "bi-bio-garden", "bi-bio-garden-larger", "bi-bio-garden-huge" } + for _, gname in ipairs(garden_names) do + if entities[gname] and pole.name == entities[gname].hidden[h_key].name and base then + BioInd.writeDebug("Bio garden (" .. gname .. ")!") + BioInd.connect_garden_pole(base, pole) + BioInd.writeDebug("Connected %s (%s)", { pole.name, pole.unit_number or "nil" }) + break + end + end -- A seedling has been planted elseif entity.name == "seedling" then diff --git a/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge.png b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge.png new file mode 100644 index 0000000..0083548 Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge_shadow.png b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge_shadow.png new file mode 100644 index 0000000..b17198d Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge_shadow.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge_turbine_anim.png b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge_turbine_anim.png new file mode 100644 index 0000000..8404aac Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_huge_turbine_anim.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large.png b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large.png new file mode 100644 index 0000000..b5799bc Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large_light.png b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large_light.png new file mode 100644 index 0000000..544a26b Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large_light.png differ diff --git a/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large_shadow.png b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large_shadow.png new file mode 100644 index 0000000..32cff3c Binary files /dev/null and b/Bio_Industries_2/graphics/entities/bio_garden/bio_garden_large_shadow.png differ diff --git a/Bio_Industries_2/locale/en/entity-description.cfg b/Bio_Industries_2/locale/en/entity-description.cfg index 2a47245..b364d8e 100644 --- a/Bio_Industries_2/locale/en/entity-description.cfg +++ b/Bio_Industries_2/locale/en/entity-description.cfg @@ -3,6 +3,8 @@ bi-arboretum=__ENTITY__bi-arboretum__s change the surrounding terrain with fertilizer or plant trees. bi-bio-farm=__ENTITY__bi-bio-farm__s are where __ENTITY__seedling__s grow into trees that are processed to __ITEM__wood__ and __ITEM__bi-woodpulp__. An integrated solar panel provides some of the energy during the day. bi-bio-garden=The __ENTITY__bi-bio-garden__ scrubs pollution from the air. (One bio garden can absorb 45 pollution units per second — as much as 1500 trees!) +bi-bio-garden-large=The __ENTITY__bi-bio-garden__ scrubs pollution from the air. (One bio garden can absorb 300 pollution units per second — as much as 12,000 trees!) +bi-bio-garden-huge=The __ENTITY__bi-bio-garden__ scrubs pollution from the air. (One bio garden can absorb 2880 pollution units per second — as much as 96,000 trees!) bi-bio-greenhouse=Just the right place to grow __ITEM__bi-seed__s and __ENTITY__seedling__s! seedling=A young tree, perfect for planting. You can also plant this in the ground and it will grow into a tree. Remember to first fertilize the ground to improve the chances of it growing! diff --git a/Bio_Industries_2/locale/en/entity-name.cfg b/Bio_Industries_2/locale/en/entity-name.cfg index 9b74139..76783cc 100644 --- a/Bio_Industries_2/locale/en/entity-name.cfg +++ b/Bio_Industries_2/locale/en/entity-name.cfg @@ -5,8 +5,8 @@ bi-arboretum-hidden-radar=__ENTITY__bi-arboretum__ (__ENTITY__radar__) bi-bio-farm=Bio farm bi-bio-garden=Bio garden -bi-bio-garden-large=Large bio garden -bi-bio-garden-huge=Huge bio garden +bi-bio-garden-large=Large Bio garden +bi-bio-garden-huge=Huge Bio garden bi-bio-greenhouse=Bio nursery seedling=Sapling diff --git a/Bio_Industries_2/prototypes/Bio_Farm/entities.lua b/Bio_Industries_2/prototypes/Bio_Farm/entities.lua index d800022..138b5b8 100644 --- a/Bio_Industries_2/prototypes/Bio_Farm/entities.lua +++ b/Bio_Industries_2/prototypes/Bio_Farm/entities.lua @@ -211,6 +211,9 @@ data:extend({ working_visualisations = { { light = { intensity = 1.2, size = 9 }, + effect = "flicker", + constant_speed = true, + fadeout = true, animation = { filename = ENTITYPATH_BIO .. "bio_farm/bio_farm_light.png", priority = "high", diff --git a/Bio_Industries_2/prototypes/Bio_Farm/technology.lua b/Bio_Industries_2/prototypes/Bio_Farm/technology.lua index c9153fe..5089909 100644 --- a/Bio_Industries_2/prototypes/Bio_Farm/technology.lua +++ b/Bio_Industries_2/prototypes/Bio_Farm/technology.lua @@ -186,6 +186,14 @@ data:extend({ type = "unlock-recipe", recipe = "bi-bio-garden" }, + { + type = "unlock-recipe", + recipe = "bi-bio-garden-lagre" + }, + { + type = "unlock-recipe", + recipe = "bi-bio-garden-huge" + }, { type = "unlock-recipe", recipe = "bi-purified-air-1" diff --git a/Bio_Industries_2/prototypes/Bio_Garden/entities.lua b/Bio_Industries_2/prototypes/Bio_Garden/entities.lua index 856db4c..588d554 100644 --- a/Bio_Industries_2/prototypes/Bio_Garden/entities.lua +++ b/Bio_Industries_2/prototypes/Bio_Garden/entities.lua @@ -45,7 +45,7 @@ data:extend({ filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_anim_trees.png", width = 256, height = 320, frame_count = 20, line_length = 5, - animation_speed = 0.025, scale = 0.5, shift = {0, -0.75} + animation_speed = 0.15, scale = 0.5, shift = {0, -0.75} }, { filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_shadow.png", @@ -84,4 +84,256 @@ data:extend({ -- won't be affected by beacons! allowed_effects = { "consumption", "speed" }, }, + +---- 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, + } + }, + 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 = "medium-remnants", + 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, + }, + 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 = -360 }, -- 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" }, + }, + +---- 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, + } + }, + 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 = "medium-remnants", + 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, + }, + 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 = -2880 }, -- 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" }, + }, }) diff --git a/Bio_Industries_2/prototypes/Bio_Garden/item.lua b/Bio_Industries_2/prototypes/Bio_Garden/item.lua index b71de06..64fadcd 100644 --- a/Bio_Industries_2/prototypes/Bio_Garden/item.lua +++ b/Bio_Industries_2/prototypes/Bio_Garden/item.lua @@ -23,6 +23,40 @@ data:extend({ stack_size = 10 }, + { + type = "item", + 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, + } + }, + subgroup = "production-machine", + order = "x[bi]-c[bi-bio-garden]", + place_result = "bi-bio-garden-large", + stack_size = 10 + }, + + { + type = "item", + 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, + } + }, + subgroup = "production-machine", + order = "x[bi]-d[bi-bio-garden]", + place_result = "bi-bio-garden-huge", + stack_size = 10 + }, + { type = "item", name = "bi-purified-air", diff --git a/Bio_Industries_2/prototypes/Bio_Garden/recipe.lua b/Bio_Industries_2/prototypes/Bio_Garden/recipe.lua index 3613a20..58f5d1c 100644 --- a/Bio_Industries_2/prototypes/Bio_Garden/recipe.lua +++ b/Bio_Industries_2/prototypes/Bio_Garden/recipe.lua @@ -29,14 +29,77 @@ data:extend({ results = {{type="item", name="bi-bio-garden", amount=1}}, main_product = "", subgroup = "bio-bio-gardens-fluid", - order = "a[bi]", - allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + order = "a[bi-garden-1]", + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 always_show_made_in = false, -- Changed for 0.18.34/1.1.4 allow_decomposition = true, -- Changed for 0.18.34/1.1.4 -- This is a custom property for use by "Krastorio 2" (it will change -- ingredients/results; used for wood/wood pulp) mod = "Bio_Industries_2", }, + --- Garden - Large(ENTITY) + { + type = "recipe", + name = "bi-bio-garden-lagre", + localised_name = {"entity-name.bi-bio-garden-lagre"}, + localised_description = {"entity-description.bi-bio-garden-lagre"}, + icon = ICONPATH_E .. "bio_garden_large_icon.png", + icon_size = 64, + icons = { + { + icon = ICONPATH_E .. "bio_garden_large_icon.png", + icon_size = 64, + } + }, + enabled = false, + energy_required = 15, + ingredients = { + {type="item", name="stone-wall", amount=48}, + {type="item", name="stone-crushed", amount=200}, + {type="item", name="bi-bio-garden", amount=4} + }, + results = {{type="item", name="bi-bio-garden-large", amount=1}}, + main_product = "", + subgroup = "bio-bio-gardens-fluid", + order = "a[bi-garden-2]", + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries_2", + }, + + --- Garden - Huge(ENTITY) + { + type = "recipe", + name = "bi-bio-garden-huge", + localised_name = {"entity-name.bi-bio-garden-huge"}, + localised_description = {"entity-description.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, + } + }, + enabled = false, + energy_required = 15, + ingredients = { + {type="item", name="stone-wall", amount=192}, + {type="item", name="stone-crushed", amount=800}, + {type="item", name="bi-bio-garden-large", amount=4} + }, + results = {{type="item", name="bi-bio-garden-huge", amount=1}}, + main_product = "", + subgroup = "bio-bio-gardens-fluid", + order = "a[bi-garden-3]", + allow_as_intermediate = false, -- Changed for 0.18.34/1.1.4 + always_show_made_in = false, -- Changed for 0.18.34/1.1.4 + allow_decomposition = true, -- Changed for 0.18.34/1.1.4 -- This is a custom property for use by "Krastorio 2" (it will change + -- ingredients/results; used for wood/wood pulp) + mod = "Bio_Industries_2", + }, --- Clean Air 1 { diff --git a/Bio_Industries_2/prototypes/Bio_Solar_Farm/entities.lua b/Bio_Industries_2/prototypes/Bio_Solar_Farm/entities.lua index 11fb9ad..81dafd2 100644 --- a/Bio_Industries_2/prototypes/Bio_Solar_Farm/entities.lua +++ b/Bio_Industries_2/prototypes/Bio_Solar_Farm/entities.lua @@ -351,7 +351,9 @@ function big_accumulator_picture(tint, repeat_count) collision_mask = { layers = { ground_tile = true } }, collision_box = { { -0.5, -0.5 }, { 0.5, 0.5 } }, walking_speed_modifier = 1.45, - layer = 13, + layer = 13, + layer_group = "ground-artificial", + transition_overlay_layer_offset = 2, decorative_removal_probability = 1, variants = { transition = tile_graphics.generic_masked_tile_transitions1,