@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 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.5.0",
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": "^3.4.0",
30
- "@quenty/maid": "^2.1.0",
31
- "@quenty/signal": "^2.1.0"
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": "c094ba8f4e128cdff08919d89de226d3d65247ce"
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<T>
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<T>
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)