From 8b76fa245fdfbac1648a39056f712427bbf59024 Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Sun, 26 Sep 2021 19:33:44 +0000 Subject: [PATCH 01/10] :bug: Fix warp list crashing if no warp found --- modules/gui/warp-list.lua | 43 ++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index e95e4589..657d0459 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -792,29 +792,30 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() end end end + + if closest_warp then + -- Check the dist to the closest warp + local in_range = closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2 + if was_in_range and not in_range then + PlayerInRange:set(player, nil) + elseif not was_in_range and in_range then + PlayerInRange:set(player, closest_warp.warp_id) + end - -- Check the dist to the closest warp - local in_range = closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2 - if was_in_range and not in_range then - PlayerInRange:set(player, nil) - elseif not was_in_range and in_range then - PlayerInRange:set(player, closest_warp.warp_id) + -- Change the enabled state of the add warp button + local frame = Gui.get_left_element(player, warp_list_container) + local add_warp_element = frame.container.header.alignment[add_new_warp.name] + local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp.name + local was_able_to_make_warp = add_warp_element.enabled + local can_make_warp = closest_distance > mr2 + if can_make_warp and not was_able_to_make_warp then + add_warp_element.enabled = true + add_warp_element.tooltip = {'warp-list.add-tooltip'} + elseif not can_make_warp and was_able_to_make_warp or old_closest_warp_name ~= closest_warp.name then + add_warp_element.enabled = false + add_warp_element.tooltip = {'warp-list.too-close', closest_warp.name} + end end - - -- Change the enabled state of the add warp button - local frame = Gui.get_left_element(player, warp_list_container) - local add_warp_element = frame.container.header.alignment[add_new_warp.name] - local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp.name - local was_able_to_make_warp = add_warp_element.enabled - local can_make_warp = closest_distance > mr2 - if can_make_warp and not was_able_to_make_warp then - add_warp_element.enabled = true - add_warp_element.tooltip = {'warp-list.add-tooltip'} - elseif not can_make_warp and was_able_to_make_warp or old_closest_warp_name ~= closest_warp.name then - add_warp_element.enabled = false - add_warp_element.tooltip = {'warp-list.too-close', closest_warp.name} - end - end end From 08b5cf57702d5e5fb06c3035997d578c18678e03 Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Sun, 26 Sep 2021 21:17:09 +0000 Subject: [PATCH 02/10] :bug: Fix warp list in a better way --- modules/gui/warp-list.lua | 46 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index 657d0459..408d1f8c 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -765,7 +765,7 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() -- Check if the force has any warps local closest_warp - local closest_distance + local closest_distance = MAX_INT32_POS if #warp_ids > 0 then local surface = player.surface local pos = player.position @@ -792,29 +792,29 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() end end end - - if closest_warp then - -- Check the dist to the closest warp - local in_range = closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2 - if was_in_range and not in_range then - PlayerInRange:set(player, nil) - elseif not was_in_range and in_range then - PlayerInRange:set(player, closest_warp.warp_id) - end - -- Change the enabled state of the add warp button - local frame = Gui.get_left_element(player, warp_list_container) - local add_warp_element = frame.container.header.alignment[add_new_warp.name] - local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp.name - local was_able_to_make_warp = add_warp_element.enabled - local can_make_warp = closest_distance > mr2 - if can_make_warp and not was_able_to_make_warp then - add_warp_element.enabled = true - add_warp_element.tooltip = {'warp-list.add-tooltip'} - elseif not can_make_warp and was_able_to_make_warp or old_closest_warp_name ~= closest_warp.name then - add_warp_element.enabled = false - add_warp_element.tooltip = {'warp-list.too-close', closest_warp.name} - end + + -- Check the dist to the closest warp + local in_range = false + if closest_warp then in_range = closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2 end + if was_in_range and not in_range then + PlayerInRange:set(player, nil) + elseif not was_in_range and in_range then + PlayerInRange:set(player, closest_warp.warp_id) + end + + -- Change the enabled state of the add warp button + local frame = Gui.get_left_element(player, warp_list_container) + local add_warp_element = frame.container.header.alignment[add_new_warp.name] + local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp.name + local was_able_to_make_warp = add_warp_element.enabled + local can_make_warp = closest_distance and closest_distance > mr2 or false + if can_make_warp and not was_able_to_make_warp then + add_warp_element.enabled = true + add_warp_element.tooltip = {'warp-list.add-tooltip'} + elseif not can_make_warp and was_able_to_make_warp or closest_warp and old_closest_warp_name ~= closest_warp.name then + add_warp_element.enabled = false + add_warp_element.tooltip = {'warp-list.too-close', closest_warp.name} end end From c3b39decb2b697bc61472edef8467002ece450f4 Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Tue, 28 Sep 2021 08:57:41 +0000 Subject: [PATCH 03/10] :wrench: Fix some warp issues raised by the fix --- modules/gui/warp-list.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index 408d1f8c..9eb95125 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -764,8 +764,8 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() end -- Check if the force has any warps - local closest_warp - local closest_distance = MAX_INT32_POS + local closest_warp = nil + local closest_distance = nil if #warp_ids > 0 then local surface = player.surface local pos = player.position @@ -806,9 +806,10 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() -- Change the enabled state of the add warp button local frame = Gui.get_left_element(player, warp_list_container) local add_warp_element = frame.container.header.alignment[add_new_warp.name] - local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp.name + local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp and closest_warp.name local was_able_to_make_warp = add_warp_element.enabled - local can_make_warp = closest_distance and closest_distance > mr2 or false + local can_make_warp = closest_distance and closest_distance > mr2 or true + log(tostring(can_make_warp) .. " " .. tostring(closest_distance) .. " " .. tostring(mr2) .. " " .. tostring(was_able_to_make_warp)) if can_make_warp and not was_able_to_make_warp then add_warp_element.enabled = true add_warp_element.tooltip = {'warp-list.add-tooltip'} From 5d651449bad74c8165dc2f6bf12936204393269c Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Tue, 5 Oct 2021 16:44:23 +0000 Subject: [PATCH 04/10] :bug: Fix warps on other surfaces --- config/expcore/roles.lua | 2 +- modules/gui/warp-list.lua | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/config/expcore/roles.lua b/config/expcore/roles.lua index 95b797bd..405efddb 100644 --- a/config/expcore/roles.lua +++ b/config/expcore/roles.lua @@ -289,7 +289,7 @@ Roles.define_role_order{ } Roles.override_player_roles{ - ["Cooldude2606"]={"Senior Administrator","Moderator","Senior Backer","Supporter"}, + ["oof2win2"]={"Senior Administrator","Moderator","Senior Backer","Supporter"}, ["arty714"]={"Senior Administrator","Senior Backer","Supporter"}, ["Drahc_pro"]={"Administrator","Moderator","Veteran","Member"}, ["mark9064"]={"Administrator","Moderator","Member"}, diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index 9eb95125..2b72e786 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -795,8 +795,7 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() -- Check the dist to the closest warp - local in_range = false - if closest_warp then in_range = closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2 end + local in_range = closest_warp and closest_warp.warp_id == warp_ids.spawn and closest_distance and (closest_distance < rs2 or closest_distance < r2) or false if was_in_range and not in_range then PlayerInRange:set(player, nil) elseif not was_in_range and in_range then @@ -808,12 +807,12 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() local add_warp_element = frame.container.header.alignment[add_new_warp.name] local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp and closest_warp.name local was_able_to_make_warp = add_warp_element.enabled - local can_make_warp = closest_distance and closest_distance > mr2 or true - log(tostring(can_make_warp) .. " " .. tostring(closest_distance) .. " " .. tostring(mr2) .. " " .. tostring(was_able_to_make_warp)) + local can_make_warp = closest_distance and closest_distance > mr2 + if not closest_distance then can_make_warp = true end if can_make_warp and not was_able_to_make_warp then add_warp_element.enabled = true add_warp_element.tooltip = {'warp-list.add-tooltip'} - elseif not can_make_warp and was_able_to_make_warp or closest_warp and old_closest_warp_name ~= closest_warp.name then + elseif not can_make_warp and was_able_to_make_warp or closest_warp and (old_closest_warp_name ~= closest_warp.name) then add_warp_element.enabled = false add_warp_element.tooltip = {'warp-list.too-close', closest_warp.name} end From 56f72dab7d9b135a7b58be6c1e2cceb1a66c030f Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Tue, 5 Oct 2021 18:29:59 +0000 Subject: [PATCH 05/10] :bug: Fix taking Cooldude's roles --- config/expcore/roles.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/expcore/roles.lua b/config/expcore/roles.lua index 405efddb..95b797bd 100644 --- a/config/expcore/roles.lua +++ b/config/expcore/roles.lua @@ -289,7 +289,7 @@ Roles.define_role_order{ } Roles.override_player_roles{ - ["oof2win2"]={"Senior Administrator","Moderator","Senior Backer","Supporter"}, + ["Cooldude2606"]={"Senior Administrator","Moderator","Senior Backer","Supporter"}, ["arty714"]={"Senior Administrator","Senior Backer","Supporter"}, ["Drahc_pro"]={"Administrator","Moderator","Veteran","Member"}, ["mark9064"]={"Administrator","Moderator","Member"}, From d66cb33e6b698cf9c13d3ada47ef04230391bdc4 Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Fri, 8 Oct 2021 22:14:09 +0000 Subject: [PATCH 06/10] :wrench: Review changes --- modules/gui/warp-list.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index 2b72e786..b3dd045a 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -795,7 +795,7 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() -- Check the dist to the closest warp - local in_range = closest_warp and closest_warp.warp_id == warp_ids.spawn and closest_distance and (closest_distance < rs2 or closest_distance < r2) or false + local in_range = closest_warp ~= nil and (closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2) or false if was_in_range and not in_range then PlayerInRange:set(player, nil) elseif not was_in_range and in_range then @@ -807,7 +807,7 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() local add_warp_element = frame.container.header.alignment[add_new_warp.name] local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp and closest_warp.name local was_able_to_make_warp = add_warp_element.enabled - local can_make_warp = closest_distance and closest_distance > mr2 + local can_make_warp = closest_distance ~= nil and closest_distance > mr2 if not closest_distance then can_make_warp = true end if can_make_warp and not was_able_to_make_warp then add_warp_element.enabled = true From 306603a8604b94aed7da8fa3786518fe1b2fd07b Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Fri, 8 Oct 2021 22:38:12 +0000 Subject: [PATCH 07/10] :bug: fix fix --- modules/gui/warp-list.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index b3dd045a..84d8d781 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -795,7 +795,7 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() -- Check the dist to the closest warp - local in_range = closest_warp ~= nil and (closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2) or false + local in_range = closest_warp ~= nil and (closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2) if was_in_range and not in_range then PlayerInRange:set(player, nil) elseif not was_in_range and in_range then @@ -808,7 +808,7 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp and closest_warp.name local was_able_to_make_warp = add_warp_element.enabled local can_make_warp = closest_distance ~= nil and closest_distance > mr2 - if not closest_distance then can_make_warp = true end + if closest_distance == nil then can_make_warp = true end if can_make_warp and not was_able_to_make_warp then add_warp_element.enabled = true add_warp_element.tooltip = {'warp-list.add-tooltip'} From eb1fd5e1daf7702bc5058d1eddd3d0dee917c528 Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Fri, 8 Oct 2021 22:41:06 +0000 Subject: [PATCH 08/10] :wrench: additional changes --- config/expcore/roles.lua | 2 +- modules/gui/warp-list.lua | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/config/expcore/roles.lua b/config/expcore/roles.lua index 95b797bd..405efddb 100644 --- a/config/expcore/roles.lua +++ b/config/expcore/roles.lua @@ -289,7 +289,7 @@ Roles.define_role_order{ } Roles.override_player_roles{ - ["Cooldude2606"]={"Senior Administrator","Moderator","Senior Backer","Supporter"}, + ["oof2win2"]={"Senior Administrator","Moderator","Senior Backer","Supporter"}, ["arty714"]={"Senior Administrator","Senior Backer","Supporter"}, ["Drahc_pro"]={"Administrator","Moderator","Veteran","Member"}, ["mark9064"]={"Administrator","Moderator","Member"}, diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index 84d8d781..ff316536 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -807,8 +807,7 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() local add_warp_element = frame.container.header.alignment[add_new_warp.name] local old_closest_warp_name = add_warp_element.tooltip[2] or closest_warp and closest_warp.name local was_able_to_make_warp = add_warp_element.enabled - local can_make_warp = closest_distance ~= nil and closest_distance > mr2 - if closest_distance == nil then can_make_warp = true end + local can_make_warp = closest_distance == nil or closest_distance > mr2 if can_make_warp and not was_able_to_make_warp then add_warp_element.enabled = true add_warp_element.tooltip = {'warp-list.add-tooltip'} From 6b7af4a6f0fb5f220fe44155a349f3f95fa36c35 Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Sat, 9 Oct 2021 00:42:50 +0200 Subject: [PATCH 09/10] Restore config/expcore/roles.lua --- config/expcore/roles.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/expcore/roles.lua b/config/expcore/roles.lua index 405efddb..95b797bd 100644 --- a/config/expcore/roles.lua +++ b/config/expcore/roles.lua @@ -289,7 +289,7 @@ Roles.define_role_order{ } Roles.override_player_roles{ - ["oof2win2"]={"Senior Administrator","Moderator","Senior Backer","Supporter"}, + ["Cooldude2606"]={"Senior Administrator","Moderator","Senior Backer","Supporter"}, ["arty714"]={"Senior Administrator","Senior Backer","Supporter"}, ["Drahc_pro"]={"Administrator","Moderator","Veteran","Member"}, ["mark9064"]={"Administrator","Moderator","Member"}, From b744c5e5bbbac27ab32d3b55a6dc927f4acb77de Mon Sep 17 00:00:00 2001 From: oof2win2 Date: Sat, 9 Oct 2021 00:46:24 +0200 Subject: [PATCH 10/10] :wrench: lint --- modules/gui/warp-list.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/gui/warp-list.lua b/modules/gui/warp-list.lua index ff316536..9763233f 100644 --- a/modules/gui/warp-list.lua +++ b/modules/gui/warp-list.lua @@ -793,7 +793,6 @@ Event.on_nth_tick(math.floor(60/config.update_smoothing), function() end end - -- Check the dist to the closest warp local in_range = closest_warp ~= nil and (closest_warp.warp_id == warp_ids.spawn and closest_distance < rs2 or closest_distance < r2) if was_in_range and not in_range then