From ee0f86e00549ccca1688b4306616a3b463aba528 Mon Sep 17 00:00:00 2001 From: PreLeyZero Date: Sun, 10 Apr 2022 17:38:12 +0200 Subject: [PATCH] added icon for not operable beacons --- prototypes/electronic/el_ki/el_ki_linker.lua | 10 ++- .../el_ki_linker/el_ki_not_operable_icon.png | Bin 0 -> 9773 bytes scripts/electronic/el_ki_script.lua | 61 ++++++++++++++++-- 3 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 ressources/electronic/el_ki/el_ki_linker/el_ki_not_operable_icon.png diff --git a/prototypes/electronic/el_ki/el_ki_linker.lua b/prototypes/electronic/el_ki/el_ki_linker.lua index 6b475cd..d9e5b3d 100644 --- a/prototypes/electronic/el_ki/el_ki_linker.lua +++ b/prototypes/electronic/el_ki/el_ki_linker.lua @@ -52,5 +52,13 @@ data:extend({ alt_selection_mode = {"any-entity"}, entity_filters = {"el_ki_beacon_entity","fi_ki_beacon_entity","fu_ki_beacon_entity"}, alt_entity_filters = {"el_ki_beacon_entity","fi_ki_beacon_entity","fu_ki_beacon_entity"} - } + }, + { + type = "sprite", + name = "el_ki_not_operable_icon", + filename = "__248k__/ressources/electronic/el_ki/el_ki_linker/el_ki_not_operable_icon.png", + width = 64, + height = 64, + scale = 1 + } }) \ No newline at end of file diff --git a/ressources/electronic/el_ki/el_ki_linker/el_ki_not_operable_icon.png b/ressources/electronic/el_ki/el_ki_linker/el_ki_not_operable_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c7be20c371948a6eda77d4424f32a7e942eeee6d GIT binary patch literal 9773 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 Jg|0`;{{T8_x3vHO literal 0 HcmV?d00001 diff --git a/scripts/electronic/el_ki_script.lua b/scripts/electronic/el_ki_script.lua index d03154b..2dca596 100644 --- a/scripts/electronic/el_ki_script.lua +++ b/scripts/electronic/el_ki_script.lua @@ -232,7 +232,12 @@ end function destroy_ki_beacon(entity) clear_ki_beacon(entity) unregister_ki_beacon(entity) - count_supported_beacons() + count_total_beacons() + + if is_beacon_supported() then + global.ki.dirty = true + end + gui.update_main() end @@ -302,7 +307,7 @@ function register_ki_beacon(entity) global.ki.beacon[unit].entity = entity global.ki.beacon[unit].channel = global.ki.standardchannel - add_to_supported(unit) + add_to_channel(unit) global.ki.beacon[unit].supported = is_beacon_supported() entity.operable = false @@ -569,6 +574,21 @@ end function el_ki_beacon_update() el_ki_buffer1_adder() + + --if now less beacons then support max + if is_beacon_supported() then + local dif = global.ki.supported - count_total_beacons() + + local unsupported = get_unsupported_beacons() + for i,v in ipairs(unsupported) do + global.ki.beacon[v].supported = true + dif = dif - 1 + if dif == 0 then + break + end + end + end + for i,v in pairs(global.ki.beacon) do el_ki_single_beacon_update(i) end @@ -583,6 +603,11 @@ function el_ki_single_beacon_update(id) beacon_inv.clear() + if global.ki.beacon[id].icon then + rendering.destroy(global.ki.beacon[id].icon) + global.ki.beacon[id].icon = nil + end + if global.ki.channel[channel].core then local coreunit = global.ki.channel[channel].core if global.ki.core[coreunit] then @@ -597,12 +622,30 @@ function el_ki_single_beacon_update(id) end end end + + if not global.ki.beacon[id].supported then + if not global.ki.beacon[id].icon then + if global.ki.beacon[id].entity.valid then + global.ki.beacon[id].icon = make_not_operable_icon(global.ki.beacon[id].entity) + end + end + end end --================================================================================= --util --================================================================================= +function get_unsupported_beacons() + local unsupported = {} + for i,v in pairs(global.ki.beacon) do + if not v.supported then + table.insert(unsupported,i) + end + end + return unsupported +end + function make_beacon_text(entity) entity.surface.create_entity({name="flying-text", position=entity.position, text="CH: "..global.ki.beacon[entity.unit_number].channel, color={r=1, g=1, b=1}}) end @@ -615,7 +658,10 @@ function remove_request_ghost(entity) end end - +function make_not_operable_icon(entity) + local sprite = rendering.draw_sprite({sprite="el_ki_not_operable_icon", target=entity, x_scale=0.5, y_scale=0.5, surface=entity.surface, render_layer=200}) + return sprite +end function el_ki_buffer1_adder() for i,v in pairs(global.ki.channel) do @@ -690,7 +736,7 @@ function make_channel(unit) end end -function count_supported_beacons() +function count_total_beacons() local count = 0 for i,v in pairs(global.ki.channel) do --if not (i == 0) then @@ -704,13 +750,13 @@ function count_supported_beacons() end function is_beacon_supported() - if global.ki.supported >= count_supported_beacons() then + if global.ki.supported >= count_total_beacons() then return true end return false end -function add_to_supported(id) +function add_to_channel(id) local channel = global.ki.beacon[id].channel table.insert(global.ki.channel[channel].beacons, id) end @@ -750,7 +796,8 @@ function el_ki_supported_adder() if game.forces[1] then if game.forces[1].technologies['el_ki_sup_4_tech'].researched then global.ki.supported4 = true - global.ki.supported = 65535 + --global.ki.supported = 65535 + global.ki.supported = 10 gui.update_main() end end