@quenty/multipleclickutils 3.5.0 → 4.1.0-canary.252.9753dcc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/package.json +6 -5
- package/src/Client/MultipleClickUtils.lua +58 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,25 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [4.1.0-canary.252.9753dcc.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/multipleclickutils@4.0.0...@quenty/multipleclickutils@4.1.0-canary.252.9753dcc.0) (2022-03-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* Add MultipleClickUtils.observeMultipleClicks(gui, requiredCount) and MultipleClickUtils.observeDoubleClick(gui), add Blend support ([5826c4a](https://github.com/Quenty/NevermoreEngine/commit/5826c4af61edcf18e8c925bc2e2d90db3c35211c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [4.0.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/multipleclickutils@3.5.0...@quenty/multipleclickutils@4.0.0) (2022-03-06)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @quenty/multipleclickutils
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
6
25
|
# [3.5.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/multipleclickutils@3.4.0...@quenty/multipleclickutils@3.5.0) (2022-01-17)
|
|
7
26
|
|
|
8
27
|
**Note:** Version bump only for package @quenty/multipleclickutils
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/multipleclickutils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0-canary.252.9753dcc.0",
|
|
4
4
|
"description": "Utility library for detecting multiple clicks or taps. Not good UX, but good for opening up a debug menus",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -26,12 +26,13 @@
|
|
|
26
26
|
"Quenty"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@quenty/loader": "
|
|
30
|
-
"@quenty/maid": "
|
|
31
|
-
"@quenty/
|
|
29
|
+
"@quenty/loader": "4.0.0",
|
|
30
|
+
"@quenty/maid": "2.2.0-canary.252.9753dcc.0",
|
|
31
|
+
"@quenty/rx": "4.1.0-canary.252.9753dcc.0",
|
|
32
|
+
"@quenty/signal": "2.1.0"
|
|
32
33
|
},
|
|
33
34
|
"publishConfig": {
|
|
34
35
|
"access": "public"
|
|
35
36
|
},
|
|
36
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "9753dcc02d4600d2706d8003cebb325ccfcde523"
|
|
37
38
|
}
|
|
@@ -9,6 +9,7 @@ local require = require(script.Parent.loader).load(script)
|
|
|
9
9
|
|
|
10
10
|
local Signal = require("Signal")
|
|
11
11
|
local Maid = require("Maid")
|
|
12
|
+
local Observable = require("Observable")
|
|
12
13
|
|
|
13
14
|
local MultipleClickUtils = {}
|
|
14
15
|
|
|
@@ -18,17 +19,71 @@ local VALID_TYPES = {
|
|
|
18
19
|
[Enum.UserInputType.Touch] = true;
|
|
19
20
|
}
|
|
20
21
|
|
|
22
|
+
--[=[
|
|
23
|
+
Observes a double click on the Gui
|
|
24
|
+
@param gui GuiBase
|
|
25
|
+
@return Observable<InputObject>
|
|
26
|
+
]=]
|
|
27
|
+
function MultipleClickUtils.observeDoubleClick(gui)
|
|
28
|
+
return MultipleClickUtils.observeMultipleClicks(gui, 2)
|
|
29
|
+
end
|
|
30
|
+
|
|
21
31
|
--[=[
|
|
22
32
|
Returns a signal that fires when the player clicks or taps on a Gui twice.
|
|
23
33
|
|
|
24
34
|
@param maid Maid
|
|
25
35
|
@param gui GuiBase
|
|
26
|
-
@return Signal<
|
|
36
|
+
@return Signal<InputObject>
|
|
27
37
|
]=]
|
|
28
38
|
function MultipleClickUtils.getDoubleClickSignal(maid, gui)
|
|
29
39
|
return MultipleClickUtils.getDoubleClickSignal(maid, gui, 2)
|
|
30
40
|
end
|
|
31
41
|
|
|
42
|
+
--[=[
|
|
43
|
+
Observes multiple clicks click on the Gui
|
|
44
|
+
|
|
45
|
+
@param gui GuiBase
|
|
46
|
+
@param requiredCount number
|
|
47
|
+
@return Observable<InputObject>
|
|
48
|
+
]=]
|
|
49
|
+
function MultipleClickUtils.observeMultipleClicks(gui, requiredCount)
|
|
50
|
+
assert(typeof(gui) == "Instance", "Bad gui")
|
|
51
|
+
assert(type(requiredCount) == "number", "Bad requiredCount")
|
|
52
|
+
|
|
53
|
+
return Observable.new(function(sub)
|
|
54
|
+
local maid = Maid.new()
|
|
55
|
+
|
|
56
|
+
maid:GiveTask(MultipleClickUtils.getMultipleClickSignal(maid, gui, requiredCount)
|
|
57
|
+
:Connect(function(...)
|
|
58
|
+
sub:Fire(...)
|
|
59
|
+
end))
|
|
60
|
+
|
|
61
|
+
return maid
|
|
62
|
+
end)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
--[=[
|
|
66
|
+
For use in Blend. Observes multiple clicks.
|
|
67
|
+
|
|
68
|
+
```lua
|
|
69
|
+
Blend.New "TextButton" {
|
|
70
|
+
[MultipleClickUtils.onMultipleClicks(3)] = function()
|
|
71
|
+
print("Clicked")
|
|
72
|
+
end;
|
|
73
|
+
};
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
@param requiredCount number
|
|
77
|
+
@return (gui: GuiBase) -> Observable<InputObject>
|
|
78
|
+
]=]
|
|
79
|
+
function MultipleClickUtils.onMultipleClicks(requiredCount)
|
|
80
|
+
assert(type(requiredCount) == "number", "Bad requiredCount")
|
|
81
|
+
|
|
82
|
+
return function(gui)
|
|
83
|
+
return MultipleClickUtils.observeMultipleClicks(gui, requiredCount)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
32
87
|
--[=[
|
|
33
88
|
Returns a signal that fires when the player clicks or taps on a Gui a certain amount
|
|
34
89
|
of times.
|
|
@@ -36,11 +91,12 @@ end
|
|
|
36
91
|
@param maid Maid
|
|
37
92
|
@param gui GuiBase
|
|
38
93
|
@param requiredCount number
|
|
39
|
-
@return Signal<
|
|
94
|
+
@return Signal<InputObject>
|
|
40
95
|
]=]
|
|
41
96
|
function MultipleClickUtils.getMultipleClickSignal(maid, gui, requiredCount)
|
|
42
97
|
assert(Maid.isMaid(maid), "Bad maid")
|
|
43
98
|
assert(typeof(gui) == "Instance", "Bad gui")
|
|
99
|
+
assert(type(requiredCount) == "number", "Bad requiredCount")
|
|
44
100
|
|
|
45
101
|
local signal = Signal.new()
|
|
46
102
|
maid:GiveTask(signal)
|