In 1.1, SimpleEntityWithForce was changed to have four directions. The plate entity doesn't have different directions but the R key still makes the sound and changes the orientation. Adding this flag turns that behaviour off. Since it's square it doesn't matter that it doesn't rotate in blueprints etc.
287 lines
8.6 KiB
Lua
287 lines
8.6 KiB
Lua
------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
-- DEADLOCK'S INDUSTRIAL DISPLAYS
|
|
-- Forked from Industrial Revolution, for your signage pleasure
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
-- constants
|
|
|
|
local DID = require("globals")
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
-- functions
|
|
|
|
local function get_icon_path(name, icon_size)
|
|
return string.format("%s/%s/%s.png", DID.icon_path, tostring(icon_size or DID.icon_size), name)
|
|
end
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
-- prototypes
|
|
|
|
local dimensions = {
|
|
[1] = {width = 80, height = 80},
|
|
[2] = {width = 134, height = 134},
|
|
[3] = {width = 196, height = 196},
|
|
}
|
|
|
|
local shadow_dimensions = {
|
|
[1] = {width = 80, height = 80, sprite = "display-shadow-small"},
|
|
[2] = {width = 146, height = 134, sprite = "display-shadow-medium"},
|
|
[3] = {width = 204, height = 204, sprite = "display-shadow"},
|
|
}
|
|
|
|
data:extend({{
|
|
name = "display-plates",
|
|
type = "item-subgroup",
|
|
group = "logistics",
|
|
order = "z[display-plates]"
|
|
}})
|
|
|
|
local count = 1
|
|
for display,displaydata in pairs(DID.displays) do
|
|
local size = (string.find(display,"small") and 1) or (string.find(display,"medium") and 2) or 3
|
|
local box_size = size * 0.5
|
|
data:extend({
|
|
{
|
|
name = display,
|
|
type = "simple-entity-with-owner",
|
|
localised_description = {"entity-description.display"},
|
|
render_layer = "lower-object",
|
|
icon = get_icon_path(display),
|
|
icon_size = DID.icon_size,
|
|
icon_mipmaps = DID.icon_mipmaps,
|
|
corpse = "small-remnants",
|
|
fast_replaceable_group = "display",
|
|
minable = {
|
|
mining_time = 0.2,
|
|
result = display,
|
|
},
|
|
max_health = 10 + size * 30,
|
|
flags = {"placeable-player", "placeable-neutral", "player-creation", "not-rotatable"},
|
|
collision_box = { {-box_size+0.1, -box_size+0.1}, {box_size-0.1, box_size-0.1} },
|
|
selection_box = { {-box_size, -box_size}, {box_size, box_size} },
|
|
collision_mask = {
|
|
"object-layer",
|
|
"water-tile",
|
|
},
|
|
open_sound = {
|
|
filename = DID.base_sound_path.."/machine-open.ogg",
|
|
volume = 0.5
|
|
},
|
|
close_sound = {
|
|
filename = DID.base_sound_path.."/machine-close.ogg",
|
|
volume = 0.5
|
|
},
|
|
mined_sound = {
|
|
filename = DID.core_sound_path.."/deconstruct-medium.ogg"
|
|
},
|
|
resistances = {
|
|
{
|
|
type = "fire",
|
|
percent = 75
|
|
},
|
|
},
|
|
picture = {
|
|
layers = {
|
|
{
|
|
filename = string.format("%s/"..display..".png", DID.sprites_path),
|
|
priority = "high",
|
|
shift = {0,0},
|
|
height = dimensions[size].height,
|
|
width = dimensions[size].width,
|
|
scale = 0.5,
|
|
},
|
|
{
|
|
filename = string.format("%s/%s.png", DID.sprites_path, shadow_dimensions[size].sprite),
|
|
priority = "high",
|
|
shift = {0,0},
|
|
height = shadow_dimensions[size].height,
|
|
width = shadow_dimensions[size].width,
|
|
scale = 0.5,
|
|
draw_as_shadow = true,
|
|
},
|
|
}
|
|
},
|
|
random_variation_on_create = false,
|
|
},
|
|
{
|
|
type = "item",
|
|
name = display,
|
|
order = "z["..count.."]",
|
|
subgroup = "display-plates",
|
|
stack_size = 100,
|
|
icon = get_icon_path(display),
|
|
icon_size = DID.icon_size,
|
|
icon_mipmaps = DID.icon_mipmaps,
|
|
place_result = display,
|
|
},
|
|
{
|
|
type = "recipe",
|
|
name = display,
|
|
order = "z["..count.."]",
|
|
result = display,
|
|
result_count = 1,
|
|
category = "crafting",
|
|
enabled = (mods["IndustrialRevolution"] and (displaydata.IR_unlock == nil)) or (not mods["IndustrialRevolution"] and displaydata.unlock == nil),
|
|
ingredients = displaydata.ingredients,
|
|
energy_required = 1,
|
|
}
|
|
})
|
|
count = count + 1
|
|
end
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
-- styles
|
|
|
|
local function add_styles(styles)
|
|
local default_styles = data.raw["gui-style"]["default"]
|
|
for name, style in pairs(styles) do
|
|
default_styles[name] = style
|
|
end
|
|
end
|
|
|
|
add_styles({
|
|
display_tabbed_pane = {
|
|
tab_container = {
|
|
horizontal_spacing = 0,
|
|
left_padding = 0,
|
|
right_padding = 0,
|
|
horizontal_align = "center",
|
|
type = "horizontal_flow_style",
|
|
},
|
|
tab_content_frame = {
|
|
bottom_padding = 8,
|
|
left_padding = 10,
|
|
right_padding = 10,
|
|
top_padding = 8,
|
|
type = "frame_style",
|
|
graphical_set = data.raw["gui-style"]["default"]["filter_tabbed_pane"]["tab_content_frame"].graphical_set,
|
|
},
|
|
type = "tabbed_pane_style",
|
|
parent = "filter_tabbed_pane",
|
|
width = 420,
|
|
},
|
|
display_tab = {
|
|
type = "tab_style",
|
|
parent = "filter_group_tab",
|
|
font = "did-tab-font",
|
|
top_padding = 8,
|
|
bottom_padding = 8,
|
|
minimal_width = 32,
|
|
horizontally_stretchable = "on",
|
|
horizontally_squashable = "on",
|
|
},
|
|
display_frame = {
|
|
type = "frame_style",
|
|
parent = "frame",
|
|
bottom_padding = 8,
|
|
vertical_flow_style = {
|
|
type = "vertical_flow_style",
|
|
vertical_spacing = 0,
|
|
horizontal_align = "center",
|
|
},
|
|
},
|
|
display_inside_frame = {
|
|
type = "frame_style",
|
|
parent = "inside_shallow_frame",
|
|
vertical_flow_style = {
|
|
type = "vertical_flow_style",
|
|
vertical_spacing = 0,
|
|
horizontal_align = "center",
|
|
},
|
|
},
|
|
display_tab_deep_frame = {
|
|
type = "frame_style",
|
|
parent = "slot_button_deep_frame",
|
|
},
|
|
display_buttons = {
|
|
type = "table_style",
|
|
horizontal_spacing = 0,
|
|
vertical_spacing = 0,
|
|
},
|
|
display_button_selected = {
|
|
type = "button_style",
|
|
parent = "quick_bar_slot_button",
|
|
default_graphical_set = data.raw["gui-style"]["default"]["slot_button"].selected_graphical_set
|
|
},
|
|
display_fake_header = {
|
|
type = "frame_style",
|
|
height = 24,
|
|
graphical_set = data.raw["gui-style"]["default"]["draggable_space"].graphical_set,
|
|
use_header_filler = false,
|
|
horizontally_stretchable = "on",
|
|
vertical_align = "center",
|
|
alignment = "right",
|
|
left_margin = data.raw["gui-style"]["default"]["draggable_space"].left_margin,
|
|
right_margin = data.raw["gui-style"]["default"]["draggable_space"].right_margin,
|
|
},
|
|
display_small_button = {
|
|
type = "button_style",
|
|
parent = "frame_action_button",
|
|
left_margin = 1,
|
|
right_margin = 1,
|
|
},
|
|
display_small_button_active = {
|
|
type = "button_style",
|
|
parent = "display_small_button",
|
|
default_graphical_set = data.raw["gui-style"]["default"]["frame_button"].clicked_graphical_set,
|
|
},
|
|
})
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
-- controls / misc media
|
|
|
|
data:extend({
|
|
{
|
|
type = "custom-input",
|
|
name = "deadlock-open-gui",
|
|
key_sequence = "",
|
|
linked_game_control = "open-gui",
|
|
},
|
|
{
|
|
type = "custom-input",
|
|
name = "deadlock-focus-search",
|
|
key_sequence = "",
|
|
linked_game_control = "focus-search",
|
|
},
|
|
{
|
|
type = "font",
|
|
name = "did-tab-font",
|
|
from = "default",
|
|
size = 32,
|
|
},
|
|
{
|
|
type = "sprite",
|
|
name = "display-map-marker",
|
|
filename = get_icon_path("map-marker",32),
|
|
priority = "extra-high",
|
|
width = 32,
|
|
height = 32,
|
|
flags = {"gui-icon"},
|
|
},
|
|
{
|
|
type = "sound",
|
|
name = "map-marker-ping",
|
|
variations = {
|
|
filename = DID.sound_path.."/ping.ogg",
|
|
volume = 0.9
|
|
}
|
|
},
|
|
{
|
|
type = "sound",
|
|
name = "map-marker-pong",
|
|
variations = {
|
|
filename = DID.sound_path.."/pong.ogg",
|
|
volume = 0.9
|
|
}
|
|
},
|
|
})
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------------------------------------------------------
|