Skip to content

Commit 2f505ea

Browse files
committed
<type>(scope): <description>
modify: * `./src/libs/feats.lua`: refactor multiselect to ensure multiselecting only happens after the user has moved the mouse * `./src/libs/timers.lua`: set/unset multiselect start position on keypress * `./src/main.lua`: add multiselect start position to mod state Signed-off-by: uptu <uptu@uptu.dev>
1 parent 3e85587 commit 2f505ea

3 files changed

Lines changed: 25 additions & 24 deletions

File tree

src/libs/feats.lua

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,31 @@
11
--- Update function for multiselect
22
-- Only runs when `STATE.multiselecting` is not nil.
33
function multiselect_hold()
4-
if STATE.multiselecting == true then
5-
STATE.multiselecting = false;
6-
STATE.prev_prev_target = G.CONTROLLER.hovering.prev_target;
7-
G.CONTROLLER.hovering.prev_target = G.CONTROLLER.hovering.target;
4+
if
5+
G.CONTROLLER.hovering.target ~= nil and
6+
G.CONTROLLER.hovering.target:is(Card) and
7+
G.CONTROLLER.hovering.target.area == G.hand
8+
then
89
if
9-
G.CONTROLLER.hovering.target ~= nil and
10-
G.CONTROLLER.hovering.target:is(Card) and not
11-
G.CONTROLLER.hovering.target.area == G.hand
10+
STATE.multiselecting == true and
11+
Vector_Dist(STATE.multiselect_down_pos, G.CONTROLLER.cursor_position) > 0.1 * G.MIN_CLICK_DIST
1212
then
13+
STATE.multiselecting = false;
14+
STATE.prev_prev_target = G.CONTROLLER.hovering.prev_target;
15+
G.CONTROLLER.hovering.prev_target = G.CONTROLLER.hovering.target;
1316
G.CONTROLLER.hovering.target:click();
14-
end
15-
elseif G.CONTROLLER.hovering.prev_target ~= G.CONTROLLER.hovering.target then
16-
if
17-
G.CONTROLLER.hovering.target ~= nil and
18-
G.CONTROLLER.hovering.target:is(Card) and not
19-
G.CONTROLLER.hovering.target.area == G.hand and
20-
STATE.prev_prev_target == G.CONTROLLER.hovering.target and
21-
G.CONTROLLER.hovering.prev_target:is(Card) and
22-
G.CONTROLLER.hovering.prev_target.area == G.hand
23-
then
24-
G.CONTROLLER.hovering.prev_target:click();
25-
end
26-
if
27-
G.CONTROLLER.hovering.target ~= nil and
28-
G.CONTROLLER.hovering.target:is(Card) and
29-
G.CONTROLLER.hovering.target.area == G.hand
17+
elseif
18+
G.CONTROLLER.hovering.prev_target ~= G.CONTROLLER.hovering.target and
19+
STATE.multiselecting == false
3020
then
21+
if
22+
STATE.prev_prev_target == G.CONTROLLER.hovering.target
23+
then
24+
G.CONTROLLER.hovering.prev_target:click();
25+
end
3126
G.CONTROLLER.hovering.target:click();
27+
STATE.prev_prev_target = G.CONTROLLER.hovering.prev_target;
3228
end
33-
STATE.prev_prev_target = G.CONTROLLER.hovering.prev_target;
3429
end
3530
end
3631

src/libs/timers.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ function TimerTable:start(button)
3131
STATE.bind_map.binding_to_button['multiselect'].button == button
3232
then
3333
STATE.multiselecting = true;
34+
STATE.multiselect_down_pos = {
35+
x = G.CONTROLLER.cursor_position.x,
36+
y = G.CONTROLLER.cursor_position.y,
37+
};
3438
end
3539
self[button] = 0;
3640
return self;
@@ -47,6 +51,7 @@ function TimerTable:stop(button)
4751
STATE.bind_map.binding_to_button['multiselect'].button == button
4852
then
4953
STATE.multiselecting = nil;
54+
STATE.multiselect_down_pos = nil;
5055
end
5156
-- binds to config if listening here
5257
if STATE.listening then

src/main.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,5 @@ STATE = {
3939
cfg_gui_parent = nil,
4040
multiselecting = nil,
4141
prev_prev_target = nil,
42+
multiselect_down_pos = nil,
4243
};

0 commit comments

Comments
 (0)