Compare commits
No commits in common. "main" and "2.0.29" have entirely different histories.
4 changed files with 452 additions and 461 deletions
|
|
@ -1,9 +1,4 @@
|
|||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.30
|
||||
Date: 05.11.2025
|
||||
Bug Fixes:
|
||||
- Fix icon scales
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 2.0.29
|
||||
Date: 02.11.2025
|
||||
Bug Fixes:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "Bio_Industries_2",
|
||||
"version": "2.0.30",
|
||||
"version": "2.0.29",
|
||||
"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",
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ data:extend(
|
|||
name = "bi-seed",
|
||||
icons = { {icon = ICONPATH .. "bio_seed.png", icon_size = 64, }},
|
||||
pictures = {
|
||||
{ size = 64, filename = ICONPATHMIPS.."bio_seed_1.png", scale = 0.48, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."bio_seed_2.png", scale = 0.46, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."bio_seed_3.png", scale = 0.45, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."bio_seed_4.png", scale = 0.43, mipmap_count = 4 }
|
||||
{ size = 64, filename = ICONPATHMIPS.."bio_seed_1.png", scale = 0.25, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."bio_seed_2.png", scale = 0.25, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."bio_seed_3.png", scale = 0.25, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."bio_seed_4.png", scale = 0.25, mipmap_count = 4 }
|
||||
},
|
||||
category = "biofarm-mod-greenhouse",
|
||||
subgroup = "bio-bio-farm",
|
||||
|
|
@ -35,15 +35,15 @@ data:extend(
|
|||
localised_description = {"entity-description.seedling"},
|
||||
icons = { {icon = ICONPATH .. "Seedling.png", icon_size = 64, }},
|
||||
pictures = {
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_1.png", scale = 0.57, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_2.png", scale = 0.52, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_3.png", scale = 0.47, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_4.png", scale = 0.52, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_5.png", scale = 0.62, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_6.png", scale = 0.52, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_7.png", scale = 0.72, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_8.png", scale = 0.52, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_9.png", scale = 0.47, mipmap_count = 9 }
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_1.png", scale = 0.25, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_2.png", scale = 0.25, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_3.png", scale = 0.25, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_4.png", scale = 0.25, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_5.png", scale = 0.25, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_6.png", scale = 0.25, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_7.png", scale = 0.25, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_8.png", scale = 0.25, mipmap_count = 9 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."seedling_9.png", scale = 0.25, mipmap_count = 9 }
|
||||
},
|
||||
subgroup = "bio-bio-farm",
|
||||
order = "x[bi]-b[bi-seedling]",
|
||||
|
|
@ -114,10 +114,10 @@ data:extend(
|
|||
name = "bi-woodpulp",
|
||||
icons = { {icon = ICONPATH .. "woodpulp_64.png", icon_size = 64, }},
|
||||
pictures = {
|
||||
{ size = 64, filename = ICONPATHMIPS.."woodpulp_1.png", scale = 0.55, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."woodpulp_2.png", scale = 0.53, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."woodpulp_3.png", scale = 0.51, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."woodpulp_4.png", scale = 0.49, mipmap_count = 4 }
|
||||
{ size = 64, filename = ICONPATHMIPS.."woodpulp_1.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."woodpulp_2.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."woodpulp_3.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."woodpulp_4.png", scale = 0.2, mipmap_count = 4 }
|
||||
},
|
||||
fuel_value = "1MJ",
|
||||
fuel_category = "chemical",
|
||||
|
|
@ -147,10 +147,10 @@ data:extend(
|
|||
name = "bi-ash",
|
||||
icons = { {icon = ICONPATH .. "ash.png", icon_size = 64, }},
|
||||
pictures = {
|
||||
{ size = 64, filename = ICONPATHMIPS.."ash_1.png", scale = 0.42, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."ash_2.png", scale = 0.42, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."ash_3.png", scale = 0.42, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."ash_4.png", scale = 0.42, mipmap_count = 4 }
|
||||
{ size = 64, filename = ICONPATHMIPS.."ash_1.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."ash_2.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."ash_3.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."ash_4.png", scale = 0.2, mipmap_count = 4 }
|
||||
},
|
||||
subgroup = "raw-material",
|
||||
order = "a[bi]-a-b[bi-ash]",
|
||||
|
|
@ -164,10 +164,10 @@ data:extend(
|
|||
name = "wood-charcoal",
|
||||
icons = { {icon = ICONPATH .. "charcoal.png", icon_size = 64, }},
|
||||
pictures = {
|
||||
{ size = 64, filename = ICONPATHMIPS.."charcoal_1.png", scale = 0.49, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."charcoal_2.png", scale = 0.5, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."charcoal_3.png", scale = 0.5, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."charcoal_4.png", scale = 0.51, mipmap_count = 4 }
|
||||
{ size = 64, filename = ICONPATHMIPS.."charcoal_1.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."charcoal_2.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."charcoal_3.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."charcoal_4.png", scale = 0.2, mipmap_count = 4 }
|
||||
},
|
||||
fuel_value = "6MJ",
|
||||
fuel_category = "chemical",
|
||||
|
|
@ -199,10 +199,10 @@ data:extend(
|
|||
name = "stone-crushed",
|
||||
icons = { {icon = ICONPATH .. "crushed-stone.png", icon_size = 64, }},
|
||||
pictures = {
|
||||
{ size = 64, filename = ICONPATHMIPS.."crush_1.png", scale = 0.44, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."crush_2.png", scale = 0.45, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."crush_3.png", scale = 0.45, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."crush_4.png", scale = 0.46, mipmap_count = 4 }
|
||||
{ size = 64, filename = ICONPATHMIPS.."crush_1.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."crush_2.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."crush_3.png", scale = 0.2, mipmap_count = 4 },
|
||||
{ size = 64, filename = ICONPATHMIPS.."crush_4.png", scale = 0.2, mipmap_count = 4 }
|
||||
},
|
||||
subgroup = "raw-material",
|
||||
order = "a[bi]-a-z[stone-crushed]",
|
||||
|
|
|
|||
|
|
@ -1,16 +1,11 @@
|
|||
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({
|
||||
|
|
@ -50,13 +45,13 @@ 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.15, 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",
|
||||
width = 384, height = 320,
|
||||
frame_count = 1, repeat_count = 20, -- repeat to match
|
||||
draw_as_shadow = true, scale = 0.5, shift = { 1, -0.75 }
|
||||
draw_as_shadow = true, scale = 0.5, shift = {1, -0.75}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -73,7 +68,6 @@ data:extend({
|
|||
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",
|
||||
|
|
@ -96,22 +90,23 @@ data:extend({
|
|||
{
|
||||
type = "corpse",
|
||||
name = "bi-bio-garden-remnant",
|
||||
localised_name = { "entity-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" },
|
||||
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 } },
|
||||
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 = {
|
||||
animation =
|
||||
{
|
||||
{
|
||||
filename = REMNANTSPATH .. "bio_garden_remnant.png",
|
||||
line_length = 1,
|
||||
|
|
@ -119,14 +114,15 @@ data:extend({
|
|||
height = 320,
|
||||
frame_count = 1,
|
||||
direction_count = 1,
|
||||
shift = { 0, -0.75 },
|
||||
shift = {0, -0.75},
|
||||
scale = 0.5
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
---- Bio Garden Large
|
||||
|
||||
---- Bio Garden Large
|
||||
{
|
||||
type = "assembling-machine",
|
||||
name = "bi-bio-garden-large",
|
||||
|
|
@ -143,8 +139,8 @@ data:extend({
|
|||
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 } },
|
||||
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 = {
|
||||
{
|
||||
|
|
@ -171,14 +167,14 @@ data:extend({
|
|||
width = 640,
|
||||
height = 704,
|
||||
scale = 0.5,
|
||||
shift = { 0, -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 },
|
||||
shift = {0.5, 0},
|
||||
draw_as_shadow = true,
|
||||
}
|
||||
}
|
||||
|
|
@ -186,7 +182,7 @@ data:extend({
|
|||
|
||||
working_visualisations = {
|
||||
{
|
||||
light = { intensity = 1.2, size = 20 },
|
||||
light = {intensity = 1.2, size = 20 },
|
||||
draw_as_light = true,
|
||||
effect = "flicker",
|
||||
constant_speed = true,
|
||||
|
|
@ -196,7 +192,7 @@ data:extend({
|
|||
width = 640,
|
||||
height = 640,
|
||||
scale = 0.5,
|
||||
shift = { 0, 0 },
|
||||
shift = {0, 0},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -213,7 +209,6 @@ data:extend({
|
|||
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",
|
||||
|
|
@ -236,22 +231,23 @@ data:extend({
|
|||
{
|
||||
type = "corpse",
|
||||
name = "bi-bio-garden-large-remnant",
|
||||
localised_name = { "entity-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" },
|
||||
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 } },
|
||||
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 = {
|
||||
animation =
|
||||
{
|
||||
{
|
||||
filename = REMNANTSPATH .. "bio_garden_large_remnant.png",
|
||||
line_length = 1,
|
||||
|
|
@ -259,12 +255,12 @@ data:extend({
|
|||
height = 704,
|
||||
frame_count = 1,
|
||||
direction_count = 1,
|
||||
shift = { 0, -0.5 },
|
||||
shift = {0, -0.5},
|
||||
scale = 0.5
|
||||
}
|
||||
}
|
||||
},
|
||||
---- Bio Garden Huge
|
||||
},
|
||||
---- Bio Garden Huge
|
||||
{
|
||||
type = "assembling-machine",
|
||||
name = "bi-bio-garden-huge",
|
||||
|
|
@ -281,8 +277,8 @@ data:extend({
|
|||
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 } },
|
||||
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 = {
|
||||
{
|
||||
|
|
@ -311,7 +307,7 @@ data:extend({
|
|||
line_length = 1,
|
||||
repeat_count = 8,
|
||||
animation_speed = 1,
|
||||
shift = { 0, -0.5 },
|
||||
shift = {0, -0.5},
|
||||
},
|
||||
{
|
||||
filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_shadow.png",
|
||||
|
|
@ -322,7 +318,7 @@ data:extend({
|
|||
line_length = 1,
|
||||
repeat_count = 8,
|
||||
animation_speed = 1,
|
||||
shift = { 14, -0.5 },
|
||||
shift = {14, -0.5},
|
||||
draw_as_shadow = true,
|
||||
},
|
||||
},
|
||||
|
|
@ -343,7 +339,7 @@ data:extend({
|
|||
line_length = 8,
|
||||
repeat_count = 1,
|
||||
animation_speed = 1,
|
||||
shift = { -4.5, -4.5 },
|
||||
shift = {-4.5, -4.5},
|
||||
},
|
||||
{
|
||||
filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png",
|
||||
|
|
@ -354,7 +350,7 @@ data:extend({
|
|||
line_length = 8,
|
||||
repeat_count = 1,
|
||||
animation_speed = 1,
|
||||
shift = { 4.5, 4.5 },
|
||||
shift = {4.5, 4.5},
|
||||
},
|
||||
{
|
||||
filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png",
|
||||
|
|
@ -365,7 +361,7 @@ data:extend({
|
|||
line_length = 8,
|
||||
repeat_count = 1,
|
||||
animation_speed = 1,
|
||||
shift = { 4.5, -4.5 },
|
||||
shift = {4.5, -4.5},
|
||||
},
|
||||
{
|
||||
filename = ENTITYPATH_BIO .. "bio_garden/bio_garden_huge_turbine_anim.png",
|
||||
|
|
@ -376,7 +372,7 @@ data:extend({
|
|||
line_length = 8,
|
||||
repeat_count = 1,
|
||||
animation_speed = 1,
|
||||
shift = { -4.5, 4.5 },
|
||||
shift = {-4.5, 4.5},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -395,7 +391,6 @@ data:extend({
|
|||
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",
|
||||
|
|
@ -415,25 +410,26 @@ data:extend({
|
|||
},
|
||||
---- corpse
|
||||
|
||||
{
|
||||
{
|
||||
type = "corpse",
|
||||
name = "bi-bio-garden-huge-remnant",
|
||||
localised_name = { "entity-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" },
|
||||
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 } },
|
||||
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 = {
|
||||
animation =
|
||||
{
|
||||
{
|
||||
filename = REMNANTSPATH .. "bio_garden_huge_remnant.png",
|
||||
line_length = 1,
|
||||
|
|
@ -441,9 +437,9 @@ data:extend({
|
|||
height = 928,
|
||||
frame_count = 1,
|
||||
direction_count = 1,
|
||||
shift = { 0, -0.5 },
|
||||
}
|
||||
shift = {0, -0.5},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue