1
0

10 Commits

Author SHA1 Message Date
Wyrrrd 0bebedf09b Update README.md 2023-04-11 18:57:38 +02:00
Wyrrrd 4bf7bf8333 Add migration info 2023-04-10 03:20:44 +02:00
Wyrrrd d60715fdd7 Add deprecation warning 2023-04-09 10:24:36 +02:00
Wyrrrd e7d44327e8 Release maintenance 2023-03-15 23:07:36 +01:00
dwightkung fd7ab16354 zh-CN locale (#22)
simplified Chinese
2023-03-15 22:52:03 +01:00
billbo99 18299fd3f5 Add remote interface to allow other mods to query / change sprites in… (#20)
* Add remote interface to allow other mods to query / change sprites in display frames
* update map marker if present
2022-07-11 22:29:56 +02:00
Wyrrrd 9d8443c9b2 moved workaround in code
moved to only trigger if blueprint contains displays with sprites, fixes "attempt to index local" crash as well
2021-09-07 11:02:31 +02:00
Wyrrrd be669f7b3e Quick fix locale file 2021-09-06 23:52:17 +02:00
Friendch e49a69058b Blueprint update FR local (#17)
* Add files via upload

Made a misstake, forgot the folder, now I master the thing don't worry ^^

* Update fr

* Rename fr to string.cfg
2021-09-06 21:49:50 +00:00
Wyrrrd bf22a80ca9 Workaround for blueprint update bug
thanks to Honktown for the help
2021-09-06 10:35:15 +02:00
9 changed files with 122 additions and 18 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ CREDITS
All code and graphics created by Deadlock989, with the following exceptions.
Code and graphics modifications after 2020-04-08 by Wyrrrd, ickputzdirwech, Friendch and Deadlock989.
Code and graphics modifications after 2020-04-08 by Wyrrrd, ickputzdirwech, Friendch, dwightkung and Deadlock989.
For the latest unmodified version, see https://github.com/Wyrrrd/IndustrialDisplayPlates/tree/cd8778eb3b11f8bde5418088253123b1029dc461
Sounds by thomasevd and Raclure @ freesound.org.
+6 -1
View File
@@ -1,3 +1,7 @@
**This repository is archived.**
Though I have had great plans with this mod, I cannot find the time to maintain it properly. Luckily, the mod will not die, you can migrate to [Flydiverny's fork](https://github.com/Flydiverny/IndustrialDisplayPlates). I will try to merge the new features and fixes over to their fork in the meantime...
# Industrial Display Plates
<img src="https://raw.githubusercontent.com/Wyrrrd/IndustrialDisplayPlates/master/thumbnail.png" width="144" height="144">
@@ -10,4 +14,5 @@ If you want to contribute by translating this mod, you can view the existing tra
### Credits
Thanks to [Deadlock989](https://mods.factorio.com/user/Deadlock989) for the [original mod](https://mods.factorio.com/mod/IndustrialDisplays).
Sounds by thomasevd and Raclure on freesound.org.
Thanks to [Friendch](https://mods.factorio.com/user/Friendch) for the french translation.
Thanks to [Friendch](https://mods.factorio.com/user/Friendch) for the french translation.
Thanks to [dwightkung](https://github.com/dwightkung) for the simplified chinese translation.
+20
View File
@@ -1,4 +1,24 @@
---------------------------------------------------------------------------------------------------
Version: 1.1.6
Date: 2023-04-10
Changes:
- Add deprecation info
---------------------------------------------------------------------------------------------------
Version: 1.1.5
Date: 2023-03-15
Locale:
- Added simplified Chinese translation (thanks to dwightkung)
---------------------------------------------------------------------------------------------------
Version: 1.1.4
Date: 2021-09-07
Bugfixes:
- fixed crash and unwanted behaviour introduced with last release
---------------------------------------------------------------------------------------------------
Version: 1.1.3
Date: 2021-09-06
Bugfixes:
- Implemented controlled error message for blueprint update bug in factorio to avoid crash
---------------------------------------------------------------------------------------------------
Version: 1.1.2
Date: 2021-08-21
Changes:
+57 -15
View File
@@ -65,7 +65,7 @@ local function remove_markers(entity)
end
end
local function find_entity_render(entity)
local function find_entity_render(entity)
for _,id in pairs(rendering.get_all_ids(DID.mod_name)) do
if rendering.get_target(id).entity == entity then return id end
end
@@ -154,10 +154,10 @@ local function display_filter_tabs(player,filter)
local name = splitstring(tab.tab.name,":")
end
tabs.selected_tab_index = selected or 1 -- end of shenanigans
if textfield.visible then textfield.focus() end -- fix textfield focus
if textfield.visible then textfield.focus() end -- fix textfield focus
end
local function toggle_search(player,element,override)
local function toggle_search(player,element,override)
local textfield = player.gui.screen[DID.custom_gui]["display-header"]["display-search-textfield"]
if textfield then
textfield.visible = override or not textfield.visible
@@ -200,7 +200,7 @@ local display_gui_click = {
end,
["display-map-marker"] = function (event)
local last_display = get_global_player_info(event.player_index,"last_display")
if last_display then
if last_display then
if get_has_map_marker(last_display) then
event.element.style = "display_small_button"
remove_markers(last_display)
@@ -253,7 +253,7 @@ local function gui_click(event)
frame.destroy()
return
end
end
end
-- is there a method for this element?
local clicked = splitstring(event.element.name,":")
if display_gui_click[clicked[1]] then
@@ -268,16 +268,16 @@ local function create_display_gui(player, selected)
-- cache which entity this gui belongs to
set_global_player_info(player.index,"last_display",selected)
-- close any existing gui
local frame = player.gui.screen[DID.custom_gui]
if frame then frame.destroy() end
player.opened = player.gui.screen
-- get markers and currently rendered sprite
local markers = next(get_map_markers(selected)) ~= nil
local sname, stype = get_render_sprite_info(selected)
local render_sprite = (sname and stype) and sname.."/"..stype or nil
local render_sprite = (sname and stype) and sname.."/"..stype or nil
-- create frame
frame = player.gui.screen.add {
@@ -286,7 +286,7 @@ local function create_display_gui(player, selected)
direction = "vertical",
style = "display_frame",
}
-- update frame location if cached
if get_global_player_info(player.index,"display_gui_location") then
frame.location = get_global_player_info(player.index,"display_gui_location")
@@ -302,7 +302,7 @@ local function create_display_gui(player, selected)
}
header.style.bottom_padding = -4
header.style.horizontally_stretchable = true
-- title
header.add {
type = "label",
@@ -372,7 +372,7 @@ local function create_display_gui(player, selected)
type = "tabbed-pane",
style = "display_tabbed_pane",
}
-- build a table of info about existing items/fluids
-- groups of subgroups of sprites -> localised_string
local button_table = {}
@@ -395,7 +395,7 @@ local function create_display_gui(player, selected)
end
end
end
-- determine the biggest tab size
local max_rows = 0
for group,subgroups in pairs(button_table) do
@@ -405,7 +405,7 @@ local function create_display_gui(player, selected)
end
max_rows = math.max(rows,max_rows)
end
-- set up tabs
local tab_index = 1
for group,subgroups in pairs(button_table) do
@@ -457,7 +457,7 @@ local function create_display_gui(player, selected)
end
tab_index = tab_index + 1
end
-- make all tabs as big as biggest
for _,tab in pairs(display_tabs.tabs) do
tab.content.style.height = math.min(640, max_rows * 40)
@@ -478,6 +478,33 @@ local function set_up_display_from_ghost(entity,tags)
end
end
remote.add_interface(
"IndustrialDisplayPlates",
{
get_sprite = function(event)
if event and event.entity and event.entity.valid then
local spritetype, spritename = get_render_sprite_info(event.entity)
return {spritetype=spritetype, spritename=spritename}
else
return nil
end
end,
set_sprite = function(event)
if event and event.entity and event.entity.valid and event.sprite and game.is_valid_sprite_path(event.sprite) then
destroy_render(event.entity)
render_overlay_sprite(event.entity, event.sprite)
if get_has_map_marker(event.entity) then
local spritetype, spritename = get_render_sprite_info(event.entity)
change_map_markers(event.entity, spritetype, spritename)
end
end
end
}
)
-- local function reset_globals()
-- global.translations = nil
-- end
@@ -515,7 +542,7 @@ script.on_event("deadlock-open-gui", function(event)
local player = game.players[event.player_index]
if player.cursor_stack and player.cursor_stack.valid_for_read then return end
local selected = player and player.selected
if selected and selected.valid and is_a_display(selected) then
if selected and selected.valid and is_a_display(selected) then
if player.can_reach_entity(selected) then
create_display_gui(player, selected)
else
@@ -552,10 +579,18 @@ script.on_event(defines.events.on_player_setup_blueprint, function (event)
local blueprint = nil
if player and player.blueprint_to_setup and player.blueprint_to_setup.valid_for_read then blueprint = player.blueprint_to_setup
elseif player and player.cursor_stack.valid_for_read and player.cursor_stack.name == "blueprint" then blueprint = player.cursor_stack end
if blueprint then
for index,entity in pairs(event.mapping.get()) do
local stype,sname = get_render_sprite_info(entity)
if stype and sname then
-- Workaround for blueprint update bug
if blueprint.get_blueprint_entity_count() == 0 then
player.print({"display-plates.blueprint-wont-have-icons"})
return
end
blueprint.set_blueprint_entity_tag(index, "display-plate-sprite-type", stype)
blueprint.set_blueprint_entity_tag(index, "display-plate-sprite-name", sname)
blueprint.set_blueprint_entity_tag(index, "display-plate-sprite-map-marker", get_has_map_marker(entity))
@@ -578,6 +613,13 @@ script.on_event(defines.events.on_player_changed_position, function (event)
gui_close(event)
end
end
-- mod migration info
local mod_migration_info = get_global_player_info(event.player_index, "mod_migration_info")
if not mod_migration_info then
player.print({"", "[img=entity.copper-display] ",{"display-plates.mod-migration-info"}})
set_global_player_info(event.player_index, "mod_migration_info", true)
end
end)
script.on_event(defines.events.on_gui_text_changed, function(event)
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "IndustrialDisplayPlates",
"version": "1.1.2",
"version": "1.1.6",
"title": "Industrial Display Plates",
"author": "Wyrrrd",
"homepage": "https://github.com/Wyrrrd/IndustrialDisplayPlates",
+4
View File
@@ -1,3 +1,7 @@
[display-plates]
blueprint-wont-have-icons=Dieser aktualisierte Blaupause wird keine Symbole oder Kartenmarkierungen der Anzeigeplatten enthalten. Um diese hinzuzufügen, erstelle eine neue Blaupause.
mod-migration-info=Die Mod "IndustrialDisplayPlates" wird demnächst eingestellt. Bitte migrieren Sie auf "DisplayPlates" wie auf der Mod-Portal-Seite beschrieben.
[entity-name]
copper-display=Kupferanzeigeplatte (groß)
iron-display=Eisenanzeigeplatte (groß)
+4
View File
@@ -1,3 +1,7 @@
[display-plates]
blueprint-wont-have-icons=This updated blueprint will not contain any icons or map markers of the display plates. To include them, create a new blueprint.
mod-migration-info=The mod "IndustrialDisplayPlates" will retire soon. Please migrate to "DisplayPlates" as described on the mod portal page.
[entity-name]
copper-display=Copper display plate (large)
iron-display=Iron display plate (large)
+4
View File
@@ -1,3 +1,7 @@
[display-plates]
blueprint-wont-have-icons=Ce plan mis à jour ne contiendra pas les icônes ni les marqueurs de carte des panneaux d'affichage. Pour les inclure, créez-en un nouveau.
mod-migration-info=Le mod "IndustrialDisplayPlates" sera bientôt retiré. Veuillez migrer vers "DisplayPlates" comme décrit sur la page portail du mod.
[entity-name]
copper-display=Panneau d'affichage en Cuivre (Grand)
iron-display=Panneau d'affichage en Fer (Grand)
+25
View File
@@ -0,0 +1,25 @@
[mod-name]
IndustrialDisplayPlates=工业展示板
[mod-description]
IndustrialDisplayPlates=显示物品、流体和信号图标的大、中、小标志。可用于绘制包含地图标记的蓝图。
[display-plates]
blueprint-wont-have-icons=此更新的蓝图将不包含任何显示板的图标或地图标记。要包含它们,请创建一个新的蓝图。
mod-migration-info="IndustrialDisplayPlates "修改即将退役。请迁移到 "DisplayPlates",如修改门户页面上所描述的。
[entity-name]
copper-display=铜质显示板(大)
iron-display=铁质展示板(大)
steel-display=钢制展示板(大)
copper-display-medium=铜质显示板(中)
iron-display-medium=铁质展示板(中)
steel-display-medium=钢制展示板(中)
copper-display-small=铜质显示板(小)
iron-display-small=铁质展示板(小)
steel-display-small=钢显示板(小)
[controls]
display-map-marker=地图标记
display-plate=展示板
[entity-description]
display=一个可以链接到地图标记的图标性标志。图标和地图标记设置可被保留在蓝图中。