Version: 1.2.8
Date: 2022-1-5
  Features:
    - Improved placeholder cybernetic combinator art
    - Added a wagon control setting to bar unfiltered slots in adjacent cargo wagons
    - Added a setting and keybind for toggling on or off the central planner
  Changes:
    - Sped up the rate at which copy-paste by blueprint will be noticed
  Bugfixes:
    - Fixed a bug with combinators sometimes failing to connect with train stops
    - Fixed wagon control combinators outputting wagon contents after inserters have already taken out items
    - Fixed a rare crash on world migration
  Scripting:
    - Added missing return values to some interface functions
    - Migrated to non-deprecated flib modules
This commit is contained in:
Monica Moniot
2023-01-06 19:24:24 -05:00
committed by GitHub
parent 9014c834f2
commit b144a06f1a
115 changed files with 6013 additions and 474 deletions

53
.vscode/flib/prototypes/sprite.lua vendored Normal file
View File

@@ -0,0 +1,53 @@
-- INDICATOR SPRITES
local indicators = {}
for i, color in ipairs({ "black", "white", "red", "orange", "yellow", "green", "cyan", "blue", "purple", "pink" }) do
indicators[i] = {
type = "sprite",
name = "flib_indicator_" .. color,
filename = "__flib__/graphics/indicators.png",
y = (i - 1) * 32,
size = 32,
flags = { "icon" },
}
end
data:extend(indicators)
local fab = "__flib__/graphics/frame-action-icons.png"
data:extend({
{ type = "sprite", name = "flib_pin_black", filename = fab, position = { 0, 0 }, size = 32, flags = { "icon" } },
{ type = "sprite", name = "flib_pin_white", filename = fab, position = { 32, 0 }, size = 32, flags = { "icon" } },
{
type = "sprite",
name = "flib_pin_disabled",
filename = fab,
position = { 64, 0 },
size = 32,
flags = { "icon" },
},
{
type = "sprite",
name = "flib_settings_black",
filename = fab,
position = { 0, 32 },
size = 32,
flags = { "icon" },
},
{
type = "sprite",
name = "flib_settings_white",
filename = fab,
position = { 32, 32 },
size = 32,
flags = { "icon" },
},
{
type = "sprite",
name = "flib_settings_disabled",
filename = fab,
position = { 64, 32 },
size = 32,
flags = { "icon" },
},
})

335
.vscode/flib/prototypes/style.lua vendored Normal file
View File

@@ -0,0 +1,335 @@
local data_util = require("__flib__/data-util")
local styles = data.raw["gui-style"].default
-- SLOT BUTTON STYLES
local slot_tileset = "__flib__/graphics/slots.png"
local function gen_slot(x, y, default_offset)
default_offset = default_offset or 0
return {
type = "button_style",
parent = "slot",
size = 40,
default_graphical_set = {
base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset },
},
hovered_graphical_set = {
base = { border = 4, position = { x + 80, y }, size = 80, filename = slot_tileset },
},
clicked_graphical_set = {
base = { border = 4, position = { x + 160, y }, size = 80, filename = slot_tileset },
},
disabled_graphical_set = { -- identical to default graphical set
base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset },
},
}
end
local function gen_slot_button(x, y, default_offset, glow)
default_offset = default_offset or 0
return {
type = "button_style",
parent = "slot_button",
size = 40,
default_graphical_set = {
base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset },
shadow = _ENV.offset_by_2_rounded_corners_glow(_ENV.default_dirt_color),
},
hovered_graphical_set = {
base = { border = 4, position = { x + 80, y }, size = 80, filename = slot_tileset },
shadow = _ENV.offset_by_2_rounded_corners_glow(_ENV.default_dirt_color),
glow = _ENV.offset_by_2_rounded_corners_glow(glow),
},
clicked_graphical_set = {
base = { border = 4, position = { x + 160, y }, size = 80, filename = slot_tileset },
shadow = _ENV.offset_by_2_rounded_corners_glow(_ENV.default_dirt_color),
},
disabled_graphical_set = { -- identical to default graphical set
base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset },
shadow = _ENV.offset_by_2_rounded_corners_glow(_ENV.default_dirt_color),
},
}
end
local function gen_standalone_slot_button(x, y, default_offset)
default_offset = default_offset or 0
return {
type = "button_style",
parent = "slot_button",
size = 40,
default_graphical_set = {
base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset },
shadow = _ENV.offset_by_4_rounded_corners_subpanel_inset,
},
hovered_graphical_set = {
base = { border = 4, position = { x + 80, y }, size = 80, filename = slot_tileset },
shadow = _ENV.offset_by_4_rounded_corners_subpanel_inset,
},
clicked_graphical_set = {
base = { border = 4, position = { x + 160, y }, size = 80, filename = slot_tileset },
shadow = _ENV.offset_by_4_rounded_corners_subpanel_inset,
},
disabled_graphical_set = { -- identical to default graphical set
base = { border = 4, position = { x + default_offset, y }, size = 80, filename = slot_tileset },
shadow = _ENV.offset_by_4_rounded_corners_subpanel_inset,
},
}
end
local slot_data = {
{ name = "default", y = 0, glow = _ENV.default_glow_color },
{ name = "grey", y = 80, glow = _ENV.default_glow_color },
{ name = "red", y = 160, glow = { 230, 135, 135 } },
{ name = "orange", y = 240, glow = { 216, 169, 122 } },
{ name = "yellow", y = 320, glow = { 230, 218, 135 } },
{ name = "green", y = 400, glow = { 153, 230, 135 } },
{ name = "cyan", y = 480, glow = { 135, 230, 230 } },
{ name = "blue", y = 560, glow = { 135, 186, 230 } },
{ name = "purple", y = 640, glow = { 188, 135, 230 } },
{ name = "pink", y = 720, glow = { 230, 135, 230 } },
}
for _, data in pairs(slot_data) do
styles["flib_slot_" .. data.name] = gen_slot(0, data.y)
styles["flib_selected_slot_" .. data.name] = gen_slot(0, data.y, 80)
styles["flib_slot_button_" .. data.name] = gen_slot_button(240, data.y, 0, data.glow)
styles["flib_selected_slot_button_" .. data.name] = gen_slot_button(240, data.y, 80, data.glow)
styles["flib_standalone_slot_button_" .. data.name] = gen_standalone_slot_button(240, data.y)
styles["flib_selected_standalone_slot_button_" .. data.name] = gen_standalone_slot_button(240, data.y, 80)
end
-- BUTTON STYLES
styles.flib_selected_frame_action_button = {
type = "button_style",
parent = "frame_action_button",
default_font_color = _ENV.button_hovered_font_color,
default_graphical_set = {
base = { position = { 225, 17 }, corner_size = 8 },
shadow = { position = { 440, 24 }, corner_size = 8, draw_type = "outer" },
},
hovered_font_color = _ENV.button_hovered_font_color,
hovered_graphical_set = {
base = { position = { 369, 17 }, corner_size = 8 },
shadow = { position = { 440, 24 }, corner_size = 8, draw_type = "outer" },
},
clicked_font_color = _ENV.button_hovered_font_color,
clicked_graphical_set = {
base = { position = { 352, 17 }, corner_size = 8 },
shadow = { position = { 440, 24 }, corner_size = 8, draw_type = "outer" },
},
-- Simulate clicked-vertical-offset
top_padding = 1,
bottom_padding = -1,
}
local btn = styles.button
styles.flib_selected_tool_button = {
type = "button_style",
parent = "tool_button",
default_font_color = btn.selected_font_color,
default_graphical_set = btn.selected_graphical_set,
hovered_font_color = btn.selected_hovered_font_color,
hovered_graphical_set = btn.selected_hovered_graphical_set,
clicked_font_color = btn.selected_clicked_font_color,
clicked_graphical_set = btn.selected_clicked_graphical_set,
-- Simulate clicked-vertical-offset
top_padding = 1,
bottom_padding = -1,
}
styles.flib_tool_button_light_green = {
type = "button_style",
parent = "item_and_count_select_confirm",
padding = 2,
top_margin = 0,
}
styles.flib_tool_button_dark_red = {
type = "button_style",
parent = "tool_button",
default_graphical_set = {
base = { filename = data_util.dark_red_button_tileset, position = { 0, 0 }, corner_size = 8 },
shadow = _ENV.default_dirt,
},
hovered_graphical_set = {
base = { filename = data_util.dark_red_button_tileset, position = { 17, 0 }, corner_size = 8 },
shadow = _ENV.default_dirt,
glow = _ENV.default_glow({ 236, 130, 130, 127 }, 0.5),
},
clicked_graphical_set = {
base = { filename = data_util.dark_red_button_tileset, position = { 34, 0 }, corner_size = 8 },
shadow = _ENV.default_dirt,
},
}
-- EMPTY-WIDGET STYLES
styles.flib_dialog_footer_drag_handle = {
type = "empty_widget_style",
parent = "draggable_space",
height = 32,
horizontally_stretchable = "on",
}
styles.flib_dialog_footer_drag_handle_no_right = {
type = "empty_widget_style",
parent = "flib_dialog_footer_drag_handle",
right_margin = 0,
}
styles.flib_dialog_titlebar_drag_handle = {
type = "empty_widget_style",
parent = "flib_titlebar_drag_handle",
right_margin = 0,
}
styles.flib_horizontal_pusher = {
type = "empty_widget_style",
horizontally_stretchable = "on",
}
styles.flib_titlebar_drag_handle = {
type = "empty_widget_style",
parent = "draggable_space",
left_margin = 4,
right_margin = 4,
height = 24,
horizontally_stretchable = "on",
}
styles.flib_vertical_pusher = {
type = "empty_widget_style",
vertically_stretchable = "on",
}
-- FLOW STYLES
styles.flib_indicator_flow = {
type = "horizontal_flow_style",
vertical_align = "center",
}
styles.flib_titlebar_flow = {
type = "horizontal_flow_style",
horizontal_spacing = 8,
}
-- FRAME STYLES
styles.flib_shallow_frame_in_shallow_frame = {
type = "frame_style",
parent = "frame",
padding = 0,
graphical_set = {
base = {
position = { 85, 0 },
corner_size = 8,
center = { position = { 76, 8 }, size = { 1, 1 } },
draw_type = "outer",
},
shadow = _ENV.default_inner_shadow,
},
vertical_flow_style = {
type = "vertical_flow_style",
vertical_spacing = 0,
},
}
-- IMAGE STYLES
styles.flib_indicator = {
type = "image_style",
size = 16,
stretch_image_to_widget_size = true,
}
-- LINE STYLES
styles.flib_subheader_horizontal_line = {
type = "line_style",
horizontally_stretchable = "on",
left_margin = -8,
right_margin = -8,
top_margin = -2,
bottom_margin = -2,
border = {
border_width = 8,
horizontal_line = { filename = "__flib__/graphics/subheader-line.png", size = { 1, 8 } },
},
}
-- SCROLL-PANE STYLES
styles.flib_naked_scroll_pane = {
type = "scroll_pane_style",
extra_padding_when_activated = 0,
padding = 12,
graphical_set = {
shadow = _ENV.default_inner_shadow,
},
}
styles.flib_naked_scroll_pane_under_tabs = {
type = "scroll_pane_style",
parent = "flib_naked_scroll_pane",
graphical_set = {
base = {
top = { position = { 93, 0 }, size = { 1, 8 } },
draw_type = "outer",
},
shadow = _ENV.default_inner_shadow,
},
}
styles.flib_naked_scroll_pane_no_padding = {
type = "scroll_pane_style",
parent = "flib_naked_scroll_pane",
padding = 0,
}
styles.flib_shallow_scroll_pane = {
type = "scroll_pane_style",
padding = 0,
graphical_set = {
base = { position = { 85, 0 }, corner_size = 8, draw_type = "outer" },
shadow = _ENV.default_inner_shadow,
},
}
-- TABBED PANE STYLES
styles.flib_tabbed_pane_with_no_padding = {
type = "tabbed_pane_style",
tab_content_frame = {
type = "frame_style",
top_padding = 0,
bottom_padding = 0,
left_padding = 0,
right_padding = 0,
graphical_set = {
base = {
-- Same as tabbed_pane_graphical_set - but without bottom
top = { position = { 76, 0 }, size = { 1, 8 } },
center = { position = { 76, 8 }, size = { 1, 1 } },
},
shadow = _ENV.top_shadow,
},
},
}
-- TEXTFIELD STYLES
styles.flib_widthless_textfield = {
type = "textbox_style",
width = 0,
}
styles.flib_widthless_invalid_textfield = {
type = "textbox_style",
parent = "invalid_value_textfield",
width = 0,
}