roblox-opencode 1.0.0 → 1.0.2
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/README.md +112 -122
- package/commands/setup-game.md +108 -108
- package/commands/sync-check.md +53 -53
- package/core/roblox-core.md +93 -93
- package/dist/server.js +189 -167
- package/package.json +35 -35
- package/skills/roblox-analytics/SKILL.md +277 -277
- package/skills/roblox-analytics/references/event-batcher.luau +75 -75
- package/skills/roblox-animation-vfx/SKILL.md +1325 -1325
- package/skills/roblox-architecture/SKILL.md +877 -863
- package/skills/roblox-architecture/references/combat-systems.md +1381 -1381
- package/skills/roblox-code-review/SKILL.md +686 -686
- package/skills/roblox-data/SKILL.md +889 -889
- package/skills/roblox-data/references/inventory-systems.md +1729 -1729
- package/skills/roblox-debug/SKILL.md +98 -98
- package/skills/roblox-gui/SKILL.md +1103 -1103
- package/skills/roblox-gui-fusion/SKILL.md +150 -150
- package/skills/roblox-gui-fusion/references/inventory.luau +427 -427
- package/skills/roblox-gui-fusion/references/settings-menu.luau +579 -579
- package/skills/roblox-gui-fusion/references/shop.luau +411 -411
- package/skills/roblox-luau-mastery/SKILL.md +1618 -1519
- package/skills/roblox-monetization/SKILL.md +1084 -1084
- package/skills/roblox-monetization/references/process-receipt.luau +131 -131
- package/skills/roblox-networking/SKILL.md +669 -669
- package/skills/roblox-networking/references/remote-validator.luau +193 -193
- package/skills/roblox-publish-checklist/SKILL.md +127 -127
- package/skills/roblox-runtime/SKILL.md +753 -753
- package/skills/roblox-sharp-edges/SKILL.md +294 -294
- package/skills/roblox-sync/SKILL.md +126 -126
- package/skills/roblox-testing/SKILL.md +943 -943
- package/skills/roblox-tooling/SKILL.md +149 -149
- package/vendor/LICENSES/ProfileStore-LICENSE +201 -201
- package/vendor/LICENSES/RbxUtil-LICENSE +7 -7
- package/vendor/LICENSES/promise-LICENSE +20 -20
- package/vendor/LICENSES/t-LICENSE +21 -21
- package/vendor/LICENSES/testez-LICENSE +200 -200
- package/vendor/README.md +83 -83
- package/vendor/fusion/Animation/ExternalTime.luau +83 -83
- package/vendor/fusion/Animation/Spring.luau +321 -321
- package/vendor/fusion/Animation/Stopwatch.luau +127 -127
- package/vendor/fusion/Animation/Tween.luau +187 -187
- package/vendor/fusion/Animation/getTweenDuration.luau +27 -27
- package/vendor/fusion/Animation/getTweenRatio.luau +47 -47
- package/vendor/fusion/Animation/lerpType.luau +163 -163
- package/vendor/fusion/Animation/packType.luau +99 -99
- package/vendor/fusion/Animation/springCoefficients.luau +80 -80
- package/vendor/fusion/Animation/unpackType.luau +102 -102
- package/vendor/fusion/Colour/Oklab.luau +70 -70
- package/vendor/fusion/Colour/sRGB.luau +54 -54
- package/vendor/fusion/External.luau +167 -167
- package/vendor/fusion/ExternalDebug.luau +69 -69
- package/vendor/fusion/Graph/Observer.luau +113 -113
- package/vendor/fusion/Graph/castToGraph.luau +28 -28
- package/vendor/fusion/Graph/change.luau +80 -80
- package/vendor/fusion/Graph/depend.luau +32 -32
- package/vendor/fusion/Graph/evaluate.luau +55 -55
- package/vendor/fusion/Instances/Attribute.luau +57 -57
- package/vendor/fusion/Instances/AttributeChange.luau +46 -46
- package/vendor/fusion/Instances/AttributeOut.luau +63 -63
- package/vendor/fusion/Instances/Child.luau +21 -21
- package/vendor/fusion/Instances/Children.luau +147 -147
- package/vendor/fusion/Instances/Hydrate.luau +32 -32
- package/vendor/fusion/Instances/New.luau +52 -52
- package/vendor/fusion/Instances/OnChange.luau +49 -49
- package/vendor/fusion/Instances/OnEvent.luau +53 -53
- package/vendor/fusion/Instances/Out.luau +69 -69
- package/vendor/fusion/Instances/applyInstanceProps.luau +148 -148
- package/vendor/fusion/Instances/defaultProps.luau +194 -194
- package/vendor/fusion/LICENSE +21 -21
- package/vendor/fusion/Logging/formatError.luau +48 -48
- package/vendor/fusion/Logging/messages.luau +51 -51
- package/vendor/fusion/Logging/parseError.luau +24 -24
- package/vendor/fusion/Memory/checkLifetime.luau +133 -133
- package/vendor/fusion/Memory/deriveScope.luau +23 -23
- package/vendor/fusion/Memory/deriveScopeImpl.luau +44 -44
- package/vendor/fusion/Memory/doCleanup.luau +78 -78
- package/vendor/fusion/Memory/innerScope.luau +33 -33
- package/vendor/fusion/Memory/legacyCleanup.luau +17 -17
- package/vendor/fusion/Memory/needsDestruction.luau +16 -16
- package/vendor/fusion/Memory/poisonScope.luau +33 -33
- package/vendor/fusion/Memory/scopePool.luau +54 -54
- package/vendor/fusion/Memory/scoped.luau +26 -26
- package/vendor/fusion/Memory/whichLivesLonger.luau +74 -74
- package/vendor/fusion/RobloxExternal.luau +97 -97
- package/vendor/fusion/State/Computed.luau +138 -138
- package/vendor/fusion/State/For/Disassembly.luau +210 -210
- package/vendor/fusion/State/For/ForTypes.luau +30 -30
- package/vendor/fusion/State/For/init.luau +109 -109
- package/vendor/fusion/State/ForKeys.luau +93 -93
- package/vendor/fusion/State/ForPairs.luau +96 -96
- package/vendor/fusion/State/ForValues.luau +93 -93
- package/vendor/fusion/State/Value.luau +87 -87
- package/vendor/fusion/State/castToState.luau +25 -25
- package/vendor/fusion/State/peek.luau +30 -30
- package/vendor/fusion/Types.luau +314 -314
- package/vendor/fusion/Utility/Contextual.luau +90 -90
- package/vendor/fusion/Utility/Safe.luau +22 -22
- package/vendor/fusion/Utility/isSimilar.luau +29 -29
- package/vendor/fusion/Utility/merge.luau +35 -35
- package/vendor/fusion/Utility/nameOf.luau +34 -34
- package/vendor/fusion/Utility/never.luau +13 -13
- package/vendor/fusion/Utility/nicknames.luau +10 -10
- package/vendor/fusion/Utility/xtypeof.luau +26 -26
- package/vendor/fusion/init.luau +82 -82
- package/vendor/profilestore/init.luau +2242 -2242
- package/vendor/promise/init.luau +1982 -1982
- package/vendor/rbxutil/buffer-util/Buffer.test.luau +25 -25
- package/vendor/rbxutil/buffer-util/BufferReader.luau +228 -228
- package/vendor/rbxutil/buffer-util/BufferWriter.luau +269 -269
- package/vendor/rbxutil/buffer-util/DataTypeBuffer.luau +223 -223
- package/vendor/rbxutil/buffer-util/Types.luau +60 -60
- package/vendor/rbxutil/buffer-util/index.d.ts +153 -153
- package/vendor/rbxutil/buffer-util/init.luau +41 -41
- package/vendor/rbxutil/buffer-util/package.json +16 -16
- package/vendor/rbxutil/buffer-util/wally.toml +9 -9
- package/vendor/rbxutil/comm/Client/ClientComm.luau +232 -232
- package/vendor/rbxutil/comm/Client/ClientRemoteProperty.luau +156 -156
- package/vendor/rbxutil/comm/Client/ClientRemoteSignal.luau +109 -109
- package/vendor/rbxutil/comm/Client/init.luau +135 -135
- package/vendor/rbxutil/comm/Server/RemoteProperty.luau +295 -295
- package/vendor/rbxutil/comm/Server/RemoteSignal.luau +211 -211
- package/vendor/rbxutil/comm/Server/ServerComm.luau +211 -211
- package/vendor/rbxutil/comm/Server/init.luau +140 -140
- package/vendor/rbxutil/comm/Types.luau +18 -18
- package/vendor/rbxutil/comm/Util.luau +27 -27
- package/vendor/rbxutil/comm/init.luau +35 -35
- package/vendor/rbxutil/comm/wally.toml +13 -13
- package/vendor/rbxutil/component/init.luau +759 -759
- package/vendor/rbxutil/component/init.test.luau +311 -311
- package/vendor/rbxutil/component/wally.toml +14 -14
- package/vendor/rbxutil/concur/init.luau +542 -542
- package/vendor/rbxutil/concur/init.test.luau +364 -364
- package/vendor/rbxutil/concur/wally.toml +8 -8
- package/vendor/rbxutil/enum-list/init.luau +101 -101
- package/vendor/rbxutil/enum-list/init.test.luau +91 -91
- package/vendor/rbxutil/enum-list/wally.toml +8 -8
- package/vendor/rbxutil/find/index.d.ts +20 -20
- package/vendor/rbxutil/find/init.luau +44 -44
- package/vendor/rbxutil/find/package.json +17 -17
- package/vendor/rbxutil/find/wally.toml +8 -8
- package/vendor/rbxutil/input/Gamepad.luau +559 -559
- package/vendor/rbxutil/input/Keyboard.luau +124 -124
- package/vendor/rbxutil/input/Mouse.luau +278 -278
- package/vendor/rbxutil/input/PreferredInput.luau +91 -91
- package/vendor/rbxutil/input/Touch.luau +120 -120
- package/vendor/rbxutil/input/init.luau +33 -33
- package/vendor/rbxutil/input/wally.toml +12 -12
- package/vendor/rbxutil/loader/index.d.ts +15 -15
- package/vendor/rbxutil/loader/init.luau +137 -137
- package/vendor/rbxutil/loader/wally.toml +8 -8
- package/vendor/rbxutil/log/index.d.ts +38 -38
- package/vendor/rbxutil/log/init.luau +746 -746
- package/vendor/rbxutil/log/wally.toml +8 -8
- package/vendor/rbxutil/net/init.luau +190 -190
- package/vendor/rbxutil/net/wally.toml +8 -8
- package/vendor/rbxutil/option/index.d.ts +44 -44
- package/vendor/rbxutil/option/init.luau +489 -489
- package/vendor/rbxutil/option/init.test.luau +342 -342
- package/vendor/rbxutil/option/wally.toml +8 -8
- package/vendor/rbxutil/pid/index.d.ts +53 -53
- package/vendor/rbxutil/pid/init.luau +195 -195
- package/vendor/rbxutil/pid/package.json +16 -16
- package/vendor/rbxutil/pid/wally.toml +9 -9
- package/vendor/rbxutil/quaternion/index.d.ts +117 -117
- package/vendor/rbxutil/quaternion/init.luau +570 -570
- package/vendor/rbxutil/quaternion/package.json +16 -16
- package/vendor/rbxutil/quaternion/wally.toml +9 -9
- package/vendor/rbxutil/query/index.d.ts +43 -43
- package/vendor/rbxutil/query/init.luau +117 -117
- package/vendor/rbxutil/query/package.json +18 -18
- package/vendor/rbxutil/query/wally.toml +9 -9
- package/vendor/rbxutil/sequent/index.d.ts +28 -28
- package/vendor/rbxutil/sequent/init.luau +340 -340
- package/vendor/rbxutil/sequent/package.json +16 -16
- package/vendor/rbxutil/sequent/wally.toml +9 -9
- package/vendor/rbxutil/ser/init.luau +175 -175
- package/vendor/rbxutil/ser/init.test.luau +50 -50
- package/vendor/rbxutil/ser/wally.toml +11 -11
- package/vendor/rbxutil/shake/index.d.ts +36 -36
- package/vendor/rbxutil/shake/init.luau +532 -532
- package/vendor/rbxutil/shake/init.test.luau +267 -267
- package/vendor/rbxutil/shake/package.json +16 -16
- package/vendor/rbxutil/shake/wally.toml +9 -9
- package/vendor/rbxutil/signal/index.d.ts +100 -100
- package/vendor/rbxutil/signal/init.luau +432 -432
- package/vendor/rbxutil/signal/init.test.luau +190 -190
- package/vendor/rbxutil/signal/package.json +17 -17
- package/vendor/rbxutil/signal/wally.toml +9 -9
- package/vendor/rbxutil/silo/TableWatcher.luau +65 -65
- package/vendor/rbxutil/silo/Util.luau +55 -55
- package/vendor/rbxutil/silo/init.luau +338 -338
- package/vendor/rbxutil/silo/init.test.luau +215 -215
- package/vendor/rbxutil/silo/wally.toml +8 -8
- package/vendor/rbxutil/spring/index.d.ts +40 -40
- package/vendor/rbxutil/spring/init.luau +97 -97
- package/vendor/rbxutil/spring/package.json +17 -17
- package/vendor/rbxutil/spring/wally.toml +8 -8
- package/vendor/rbxutil/stream/index.d.ts +88 -88
- package/vendor/rbxutil/stream/init.luau +597 -597
- package/vendor/rbxutil/stream/package.json +18 -18
- package/vendor/rbxutil/stream/wally.toml +9 -9
- package/vendor/rbxutil/streamable/Streamable.luau +202 -202
- package/vendor/rbxutil/streamable/StreamableUtil.luau +80 -80
- package/vendor/rbxutil/streamable/init.luau +8 -8
- package/vendor/rbxutil/streamable/wally.toml +12 -12
- package/vendor/rbxutil/symbol/init.luau +56 -56
- package/vendor/rbxutil/symbol/init.test.luau +37 -37
- package/vendor/rbxutil/symbol/wally.toml +8 -8
- package/vendor/rbxutil/table-util/init.luau +938 -938
- package/vendor/rbxutil/table-util/init.test.luau +439 -439
- package/vendor/rbxutil/task-queue/index.d.ts +27 -27
- package/vendor/rbxutil/task-queue/init.luau +97 -97
- package/vendor/rbxutil/task-queue/wally.toml +8 -8
- package/vendor/rbxutil/timer/index.d.ts +81 -81
- package/vendor/rbxutil/timer/init.luau +249 -249
- package/vendor/rbxutil/timer/init.test.luau +73 -73
- package/vendor/rbxutil/timer/wally.toml +11 -11
- package/vendor/rbxutil/tree/index.d.ts +15 -15
- package/vendor/rbxutil/tree/init.luau +137 -137
- package/vendor/rbxutil/tree/wally.toml +8 -8
- package/vendor/rbxutil/trove/index.d.ts +46 -46
- package/vendor/rbxutil/trove/init.luau +787 -787
- package/vendor/rbxutil/trove/init.test.luau +203 -203
- package/vendor/rbxutil/trove/wally.toml +8 -8
- package/vendor/rbxutil/typed-remote/init.luau +196 -196
- package/vendor/rbxutil/typed-remote/wally.toml +8 -8
- package/vendor/rbxutil/wait-for/index.d.ts +17 -17
- package/vendor/rbxutil/wait-for/init.luau +257 -257
- package/vendor/rbxutil/wait-for/init.test.luau +182 -182
- package/vendor/rbxutil/wait-for/wally.toml +11 -11
- package/vendor/t/t.lua +1350 -1350
- package/vendor/testez/Context.lua +26 -26
- package/vendor/testez/Expectation.lua +311 -311
- package/vendor/testez/ExpectationContext.lua +38 -38
- package/vendor/testez/LifecycleHooks.lua +89 -89
- package/vendor/testez/Reporters/TeamCityReporter.lua +101 -101
- package/vendor/testez/Reporters/TextReporter.lua +105 -105
- package/vendor/testez/Reporters/TextReporterQuiet.lua +96 -96
- package/vendor/testez/TestBootstrap.lua +146 -146
- package/vendor/testez/TestEnum.lua +27 -27
- package/vendor/testez/TestPlan.lua +304 -304
- package/vendor/testez/TestPlanner.lua +39 -39
- package/vendor/testez/TestResults.lua +111 -111
- package/vendor/testez/TestRunner.lua +188 -188
- package/vendor/testez/TestSession.lua +243 -243
- package/vendor/testez/init.lua +39 -39
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
--!strict
|
|
2
|
-
|
|
3
|
-
--[=[
|
|
4
|
-
@class PreferredInput
|
|
5
|
-
@client
|
|
6
|
-
|
|
7
|
-
A helper library for observing the preferred user input of the
|
|
8
|
-
player. This is useful for determining what input schemes
|
|
9
|
-
to use during gameplay. A player might switch from using
|
|
10
|
-
a mouse to a gamepad mid-game, and it is important for the
|
|
11
|
-
game to respond to this change.
|
|
12
|
-
|
|
13
|
-
The PreferredInput library is part of the Input package.
|
|
14
|
-
|
|
15
|
-
```lua
|
|
16
|
-
local PreferredInput = require(packages.Input).PreferredInput
|
|
17
|
-
```
|
|
18
|
-
]=]
|
|
19
|
-
--[=[
|
|
20
|
-
@within PreferredInput
|
|
21
|
-
@function observe
|
|
22
|
-
@param handler (preferred: Enum.PreferredInput) -> (() -> ())?
|
|
23
|
-
@return () -> ()
|
|
24
|
-
|
|
25
|
-
Observes the preferred input. In other words, the handler function will
|
|
26
|
-
be fired immediately, as well as any time the preferred input changes.
|
|
27
|
-
|
|
28
|
-
The returned function can be called to disconnect the observer.
|
|
29
|
-
|
|
30
|
-
```lua
|
|
31
|
-
local disconnect = PreferredInput.observe(function(preferred)
|
|
32
|
-
-- Fires immediately & any time the preferred input changes
|
|
33
|
-
print(preferred)
|
|
34
|
-
|
|
35
|
-
return function()
|
|
36
|
-
-- Preferred input has changed
|
|
37
|
-
end
|
|
38
|
-
end)
|
|
39
|
-
|
|
40
|
-
-- If/when desired, observer can be stopped by calling the returned function:
|
|
41
|
-
disconnect()
|
|
42
|
-
```
|
|
43
|
-
]=]
|
|
44
|
-
--[=[
|
|
45
|
-
@within PreferredInput
|
|
46
|
-
@function get
|
|
47
|
-
@return Enum.PreferredInput
|
|
48
|
-
|
|
49
|
-
Gets the preferred input. This is equivalent to
|
|
50
|
-
[`UserInputService.PreferredInput`](https://create.roblox.com/docs/reference/engine/classes/UserInputService#PreferredInput).
|
|
51
|
-
]=]
|
|
52
|
-
|
|
53
|
-
local UserInputService = game:GetService("UserInputService")
|
|
54
|
-
|
|
55
|
-
local PreferredInput = {}
|
|
56
|
-
|
|
57
|
-
function PreferredInput.observe(callback: (preferred: Enum.PreferredInput) -> (() -> ())?)
|
|
58
|
-
local cleanup: (() -> ())? = nil
|
|
59
|
-
local id = 0
|
|
60
|
-
|
|
61
|
-
local function onPreferredInputChanged()
|
|
62
|
-
id += 1
|
|
63
|
-
local observeId = id
|
|
64
|
-
|
|
65
|
-
local cleanupFn = callback(UserInputService.PreferredInput)
|
|
66
|
-
if typeof(cleanupFn) == "function" then
|
|
67
|
-
if id == observeId then
|
|
68
|
-
cleanup = cleanupFn
|
|
69
|
-
else
|
|
70
|
-
task.spawn(cleanupFn)
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
task.spawn(onPreferredInputChanged)
|
|
76
|
-
local conn = UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(onPreferredInputChanged)
|
|
77
|
-
|
|
78
|
-
return function()
|
|
79
|
-
conn:Disconnect()
|
|
80
|
-
if typeof(cleanup) == "function" then
|
|
81
|
-
task.spawn(cleanup)
|
|
82
|
-
cleanup = nil
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
function PreferredInput.get()
|
|
88
|
-
return UserInputService.PreferredInput
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
return PreferredInput
|
|
1
|
+
--!strict
|
|
2
|
+
|
|
3
|
+
--[=[
|
|
4
|
+
@class PreferredInput
|
|
5
|
+
@client
|
|
6
|
+
|
|
7
|
+
A helper library for observing the preferred user input of the
|
|
8
|
+
player. This is useful for determining what input schemes
|
|
9
|
+
to use during gameplay. A player might switch from using
|
|
10
|
+
a mouse to a gamepad mid-game, and it is important for the
|
|
11
|
+
game to respond to this change.
|
|
12
|
+
|
|
13
|
+
The PreferredInput library is part of the Input package.
|
|
14
|
+
|
|
15
|
+
```lua
|
|
16
|
+
local PreferredInput = require(packages.Input).PreferredInput
|
|
17
|
+
```
|
|
18
|
+
]=]
|
|
19
|
+
--[=[
|
|
20
|
+
@within PreferredInput
|
|
21
|
+
@function observe
|
|
22
|
+
@param handler (preferred: Enum.PreferredInput) -> (() -> ())?
|
|
23
|
+
@return () -> ()
|
|
24
|
+
|
|
25
|
+
Observes the preferred input. In other words, the handler function will
|
|
26
|
+
be fired immediately, as well as any time the preferred input changes.
|
|
27
|
+
|
|
28
|
+
The returned function can be called to disconnect the observer.
|
|
29
|
+
|
|
30
|
+
```lua
|
|
31
|
+
local disconnect = PreferredInput.observe(function(preferred)
|
|
32
|
+
-- Fires immediately & any time the preferred input changes
|
|
33
|
+
print(preferred)
|
|
34
|
+
|
|
35
|
+
return function()
|
|
36
|
+
-- Preferred input has changed
|
|
37
|
+
end
|
|
38
|
+
end)
|
|
39
|
+
|
|
40
|
+
-- If/when desired, observer can be stopped by calling the returned function:
|
|
41
|
+
disconnect()
|
|
42
|
+
```
|
|
43
|
+
]=]
|
|
44
|
+
--[=[
|
|
45
|
+
@within PreferredInput
|
|
46
|
+
@function get
|
|
47
|
+
@return Enum.PreferredInput
|
|
48
|
+
|
|
49
|
+
Gets the preferred input. This is equivalent to
|
|
50
|
+
[`UserInputService.PreferredInput`](https://create.roblox.com/docs/reference/engine/classes/UserInputService#PreferredInput).
|
|
51
|
+
]=]
|
|
52
|
+
|
|
53
|
+
local UserInputService = game:GetService("UserInputService")
|
|
54
|
+
|
|
55
|
+
local PreferredInput = {}
|
|
56
|
+
|
|
57
|
+
function PreferredInput.observe(callback: (preferred: Enum.PreferredInput) -> (() -> ())?)
|
|
58
|
+
local cleanup: (() -> ())? = nil
|
|
59
|
+
local id = 0
|
|
60
|
+
|
|
61
|
+
local function onPreferredInputChanged()
|
|
62
|
+
id += 1
|
|
63
|
+
local observeId = id
|
|
64
|
+
|
|
65
|
+
local cleanupFn = callback(UserInputService.PreferredInput)
|
|
66
|
+
if typeof(cleanupFn) == "function" then
|
|
67
|
+
if id == observeId then
|
|
68
|
+
cleanup = cleanupFn
|
|
69
|
+
else
|
|
70
|
+
task.spawn(cleanupFn)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
task.spawn(onPreferredInputChanged)
|
|
76
|
+
local conn = UserInputService:GetPropertyChangedSignal("PreferredInput"):Connect(onPreferredInputChanged)
|
|
77
|
+
|
|
78
|
+
return function()
|
|
79
|
+
conn:Disconnect()
|
|
80
|
+
if typeof(cleanup) == "function" then
|
|
81
|
+
task.spawn(cleanup)
|
|
82
|
+
cleanup = nil
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
function PreferredInput.get()
|
|
88
|
+
return UserInputService.PreferredInput
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
return PreferredInput
|
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
-- Touch
|
|
2
|
-
-- Stephen Leitnick
|
|
3
|
-
-- March 14, 2021
|
|
4
|
-
|
|
5
|
-
local Trove = require(script.Parent.Parent.Trove)
|
|
6
|
-
local Signal = require(script.Parent.Parent.Signal)
|
|
7
|
-
|
|
8
|
-
local UserInputService = game:GetService("UserInputService")
|
|
9
|
-
|
|
10
|
-
--[=[
|
|
11
|
-
@class Touch
|
|
12
|
-
@client
|
|
13
|
-
|
|
14
|
-
The Touch class is part of the Input package.
|
|
15
|
-
|
|
16
|
-
```lua
|
|
17
|
-
local Touch = require(packages.Input).Touch
|
|
18
|
-
```
|
|
19
|
-
]=]
|
|
20
|
-
local Touch = {}
|
|
21
|
-
Touch.__index = Touch
|
|
22
|
-
|
|
23
|
-
--[=[
|
|
24
|
-
@within Touch
|
|
25
|
-
@prop TouchTap Signal<(touchPositions: {Vector2}, processed: boolean)>
|
|
26
|
-
@tag Event
|
|
27
|
-
Proxy for [UserInputService.TouchTap](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchTap).
|
|
28
|
-
]=]
|
|
29
|
-
--[=[
|
|
30
|
-
@within Touch
|
|
31
|
-
@prop TouchTapInWorld Signal<(position: Vector2, processed: boolean)>
|
|
32
|
-
@tag Event
|
|
33
|
-
Proxy for [UserInputService.TouchTapInWorld](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchTapInWorld).
|
|
34
|
-
]=]
|
|
35
|
-
--[=[
|
|
36
|
-
@within Touch
|
|
37
|
-
@prop TouchMoved Signal<(touch: InputObject, processed: boolean)>
|
|
38
|
-
@tag Event
|
|
39
|
-
Proxy for [UserInputService.TouchMoved](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchMoved).
|
|
40
|
-
]=]
|
|
41
|
-
--[=[
|
|
42
|
-
@within Touch
|
|
43
|
-
@prop TouchLongPress Signal<(touchPositions: {Vector2}, state: Enum.UserInputState, processed: boolean)>
|
|
44
|
-
@tag Event
|
|
45
|
-
Proxy for [UserInputService.TouchLongPress](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchLongPress).
|
|
46
|
-
]=]
|
|
47
|
-
--[=[
|
|
48
|
-
@within Touch
|
|
49
|
-
@prop TouchPan Signal<(touchPositions: {Vector2}, totalTranslation: Vector2, velocity: Vector2, state: Enum.UserInputState, processed: boolean)>
|
|
50
|
-
@tag Event
|
|
51
|
-
Proxy for [UserInputService.TouchPan](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchPan).
|
|
52
|
-
]=]
|
|
53
|
-
--[=[
|
|
54
|
-
@within Touch
|
|
55
|
-
@prop TouchPinch Signal<(touchPositions: {Vector2}, scale: number, velocity: Vector2, state: Enum.UserInputState, processed: boolean)>
|
|
56
|
-
@tag Event
|
|
57
|
-
Proxy for [UserInputService.TouchPinch](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchPinch).
|
|
58
|
-
]=]
|
|
59
|
-
--[=[
|
|
60
|
-
@within Touch
|
|
61
|
-
@prop TouchRotate Signal<(touchPositions: {Vector2}, rotation: number, velocity: number, state: Enum.UserInputState, processed: boolean)>
|
|
62
|
-
@tag Event
|
|
63
|
-
Proxy for [UserInputService.TouchRotate](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchRotate).
|
|
64
|
-
]=]
|
|
65
|
-
--[=[
|
|
66
|
-
@within Touch
|
|
67
|
-
@prop TouchSwipe Signal<(swipeDirection: Enum.SwipeDirection, numberOfTouches: number, processed: boolean)>
|
|
68
|
-
@tag Event
|
|
69
|
-
Proxy for [UserInputService.TouchSwipe](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchSwipe).
|
|
70
|
-
]=]
|
|
71
|
-
--[=[
|
|
72
|
-
@within Touch
|
|
73
|
-
@prop TouchStarted Signal<(touch: InputObject, processed: boolean)>
|
|
74
|
-
@tag Event
|
|
75
|
-
Proxy for [UserInputService.TouchStarted](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchStarted).
|
|
76
|
-
]=]
|
|
77
|
-
--[=[
|
|
78
|
-
@within Touch
|
|
79
|
-
@prop TouchEnded Signal<(touch: InputObject, processed: boolean)>
|
|
80
|
-
@tag Event
|
|
81
|
-
Proxy for [UserInputService.TouchEnded](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchEnded).
|
|
82
|
-
]=]
|
|
83
|
-
|
|
84
|
-
--[=[
|
|
85
|
-
Constructs a new Touch input capturer.
|
|
86
|
-
]=]
|
|
87
|
-
function Touch.new()
|
|
88
|
-
local self = setmetatable({}, Touch)
|
|
89
|
-
|
|
90
|
-
self._trove = Trove.new()
|
|
91
|
-
|
|
92
|
-
self.TouchTap = self._trove:Construct(Signal.Wrap, UserInputService.TouchTap)
|
|
93
|
-
self.TouchTapInWorld = self._trove:Construct(Signal.Wrap, UserInputService.TouchTapInWorld)
|
|
94
|
-
self.TouchMoved = self._trove:Construct(Signal.Wrap, UserInputService.TouchMoved)
|
|
95
|
-
self.TouchLongPress = self._trove:Construct(Signal.Wrap, UserInputService.TouchLongPress)
|
|
96
|
-
self.TouchPan = self._trove:Construct(Signal.Wrap, UserInputService.TouchPan)
|
|
97
|
-
self.TouchPinch = self._trove:Construct(Signal.Wrap, UserInputService.TouchPinch)
|
|
98
|
-
self.TouchRotate = self._trove:Construct(Signal.Wrap, UserInputService.TouchRotate)
|
|
99
|
-
self.TouchSwipe = self._trove:Construct(Signal.Wrap, UserInputService.TouchSwipe)
|
|
100
|
-
self.TouchStarted = self._trove:Construct(Signal.Wrap, UserInputService.TouchStarted)
|
|
101
|
-
self.TouchEnded = self._trove:Construct(Signal.Wrap, UserInputService.TouchEnded)
|
|
102
|
-
|
|
103
|
-
return self
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
--[=[
|
|
107
|
-
Returns the value of [`UserInputService.TouchEnabled`](https://developer.roblox.com/en-us/api-reference/property/UserInputService/TouchEnabled).
|
|
108
|
-
]=]
|
|
109
|
-
function Touch:IsTouchEnabled(): boolean
|
|
110
|
-
return UserInputService.TouchEnabled
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
--[=[
|
|
114
|
-
Destroys the Touch input capturer.
|
|
115
|
-
]=]
|
|
116
|
-
function Touch:Destroy()
|
|
117
|
-
self._trove:Destroy()
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
return Touch
|
|
1
|
+
-- Touch
|
|
2
|
+
-- Stephen Leitnick
|
|
3
|
+
-- March 14, 2021
|
|
4
|
+
|
|
5
|
+
local Trove = require(script.Parent.Parent.Trove)
|
|
6
|
+
local Signal = require(script.Parent.Parent.Signal)
|
|
7
|
+
|
|
8
|
+
local UserInputService = game:GetService("UserInputService")
|
|
9
|
+
|
|
10
|
+
--[=[
|
|
11
|
+
@class Touch
|
|
12
|
+
@client
|
|
13
|
+
|
|
14
|
+
The Touch class is part of the Input package.
|
|
15
|
+
|
|
16
|
+
```lua
|
|
17
|
+
local Touch = require(packages.Input).Touch
|
|
18
|
+
```
|
|
19
|
+
]=]
|
|
20
|
+
local Touch = {}
|
|
21
|
+
Touch.__index = Touch
|
|
22
|
+
|
|
23
|
+
--[=[
|
|
24
|
+
@within Touch
|
|
25
|
+
@prop TouchTap Signal<(touchPositions: {Vector2}, processed: boolean)>
|
|
26
|
+
@tag Event
|
|
27
|
+
Proxy for [UserInputService.TouchTap](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchTap).
|
|
28
|
+
]=]
|
|
29
|
+
--[=[
|
|
30
|
+
@within Touch
|
|
31
|
+
@prop TouchTapInWorld Signal<(position: Vector2, processed: boolean)>
|
|
32
|
+
@tag Event
|
|
33
|
+
Proxy for [UserInputService.TouchTapInWorld](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchTapInWorld).
|
|
34
|
+
]=]
|
|
35
|
+
--[=[
|
|
36
|
+
@within Touch
|
|
37
|
+
@prop TouchMoved Signal<(touch: InputObject, processed: boolean)>
|
|
38
|
+
@tag Event
|
|
39
|
+
Proxy for [UserInputService.TouchMoved](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchMoved).
|
|
40
|
+
]=]
|
|
41
|
+
--[=[
|
|
42
|
+
@within Touch
|
|
43
|
+
@prop TouchLongPress Signal<(touchPositions: {Vector2}, state: Enum.UserInputState, processed: boolean)>
|
|
44
|
+
@tag Event
|
|
45
|
+
Proxy for [UserInputService.TouchLongPress](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchLongPress).
|
|
46
|
+
]=]
|
|
47
|
+
--[=[
|
|
48
|
+
@within Touch
|
|
49
|
+
@prop TouchPan Signal<(touchPositions: {Vector2}, totalTranslation: Vector2, velocity: Vector2, state: Enum.UserInputState, processed: boolean)>
|
|
50
|
+
@tag Event
|
|
51
|
+
Proxy for [UserInputService.TouchPan](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchPan).
|
|
52
|
+
]=]
|
|
53
|
+
--[=[
|
|
54
|
+
@within Touch
|
|
55
|
+
@prop TouchPinch Signal<(touchPositions: {Vector2}, scale: number, velocity: Vector2, state: Enum.UserInputState, processed: boolean)>
|
|
56
|
+
@tag Event
|
|
57
|
+
Proxy for [UserInputService.TouchPinch](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchPinch).
|
|
58
|
+
]=]
|
|
59
|
+
--[=[
|
|
60
|
+
@within Touch
|
|
61
|
+
@prop TouchRotate Signal<(touchPositions: {Vector2}, rotation: number, velocity: number, state: Enum.UserInputState, processed: boolean)>
|
|
62
|
+
@tag Event
|
|
63
|
+
Proxy for [UserInputService.TouchRotate](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchRotate).
|
|
64
|
+
]=]
|
|
65
|
+
--[=[
|
|
66
|
+
@within Touch
|
|
67
|
+
@prop TouchSwipe Signal<(swipeDirection: Enum.SwipeDirection, numberOfTouches: number, processed: boolean)>
|
|
68
|
+
@tag Event
|
|
69
|
+
Proxy for [UserInputService.TouchSwipe](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchSwipe).
|
|
70
|
+
]=]
|
|
71
|
+
--[=[
|
|
72
|
+
@within Touch
|
|
73
|
+
@prop TouchStarted Signal<(touch: InputObject, processed: boolean)>
|
|
74
|
+
@tag Event
|
|
75
|
+
Proxy for [UserInputService.TouchStarted](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchStarted).
|
|
76
|
+
]=]
|
|
77
|
+
--[=[
|
|
78
|
+
@within Touch
|
|
79
|
+
@prop TouchEnded Signal<(touch: InputObject, processed: boolean)>
|
|
80
|
+
@tag Event
|
|
81
|
+
Proxy for [UserInputService.TouchEnded](https://developer.roblox.com/en-us/api-reference/event/UserInputService/TouchEnded).
|
|
82
|
+
]=]
|
|
83
|
+
|
|
84
|
+
--[=[
|
|
85
|
+
Constructs a new Touch input capturer.
|
|
86
|
+
]=]
|
|
87
|
+
function Touch.new()
|
|
88
|
+
local self = setmetatable({}, Touch)
|
|
89
|
+
|
|
90
|
+
self._trove = Trove.new()
|
|
91
|
+
|
|
92
|
+
self.TouchTap = self._trove:Construct(Signal.Wrap, UserInputService.TouchTap)
|
|
93
|
+
self.TouchTapInWorld = self._trove:Construct(Signal.Wrap, UserInputService.TouchTapInWorld)
|
|
94
|
+
self.TouchMoved = self._trove:Construct(Signal.Wrap, UserInputService.TouchMoved)
|
|
95
|
+
self.TouchLongPress = self._trove:Construct(Signal.Wrap, UserInputService.TouchLongPress)
|
|
96
|
+
self.TouchPan = self._trove:Construct(Signal.Wrap, UserInputService.TouchPan)
|
|
97
|
+
self.TouchPinch = self._trove:Construct(Signal.Wrap, UserInputService.TouchPinch)
|
|
98
|
+
self.TouchRotate = self._trove:Construct(Signal.Wrap, UserInputService.TouchRotate)
|
|
99
|
+
self.TouchSwipe = self._trove:Construct(Signal.Wrap, UserInputService.TouchSwipe)
|
|
100
|
+
self.TouchStarted = self._trove:Construct(Signal.Wrap, UserInputService.TouchStarted)
|
|
101
|
+
self.TouchEnded = self._trove:Construct(Signal.Wrap, UserInputService.TouchEnded)
|
|
102
|
+
|
|
103
|
+
return self
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
--[=[
|
|
107
|
+
Returns the value of [`UserInputService.TouchEnabled`](https://developer.roblox.com/en-us/api-reference/property/UserInputService/TouchEnabled).
|
|
108
|
+
]=]
|
|
109
|
+
function Touch:IsTouchEnabled(): boolean
|
|
110
|
+
return UserInputService.TouchEnabled
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
--[=[
|
|
114
|
+
Destroys the Touch input capturer.
|
|
115
|
+
]=]
|
|
116
|
+
function Touch:Destroy()
|
|
117
|
+
self._trove:Destroy()
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
return Touch
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
-- Input
|
|
2
|
-
-- Stephen Leitnick
|
|
3
|
-
-- October 10, 2021
|
|
4
|
-
|
|
5
|
-
--[=[
|
|
6
|
-
@class Input
|
|
7
|
-
|
|
8
|
-
The Input package provides access to various user input classes.
|
|
9
|
-
|
|
10
|
-
- [PreferredInput](/api/PreferredInput)
|
|
11
|
-
- [Mouse](/api/Mouse)
|
|
12
|
-
- [Keyboard](/api/Keyboard)
|
|
13
|
-
- [Touch](/api/Touch)
|
|
14
|
-
- [Gamepad](/api/Gamepad)
|
|
15
|
-
|
|
16
|
-
Reference the desired input modules via the Input package to get started:
|
|
17
|
-
|
|
18
|
-
```lua
|
|
19
|
-
local PreferredInput = require(Packages.Input).PreferredInput
|
|
20
|
-
local Mouse = require(Packages.Input).Mouse
|
|
21
|
-
local Keyboard = require(Packages.Input).Keyboard
|
|
22
|
-
local Touch = require(Packages.Input).Touch
|
|
23
|
-
local Gamepad = require(Packages.Input).Gamepad
|
|
24
|
-
```
|
|
25
|
-
]=]
|
|
26
|
-
|
|
27
|
-
return {
|
|
28
|
-
PreferredInput = require(script.PreferredInput),
|
|
29
|
-
Mouse = require(script.Mouse),
|
|
30
|
-
Keyboard = require(script.Keyboard),
|
|
31
|
-
Touch = require(script.Touch),
|
|
32
|
-
Gamepad = require(script.Gamepad),
|
|
33
|
-
}
|
|
1
|
+
-- Input
|
|
2
|
+
-- Stephen Leitnick
|
|
3
|
+
-- October 10, 2021
|
|
4
|
+
|
|
5
|
+
--[=[
|
|
6
|
+
@class Input
|
|
7
|
+
|
|
8
|
+
The Input package provides access to various user input classes.
|
|
9
|
+
|
|
10
|
+
- [PreferredInput](/api/PreferredInput)
|
|
11
|
+
- [Mouse](/api/Mouse)
|
|
12
|
+
- [Keyboard](/api/Keyboard)
|
|
13
|
+
- [Touch](/api/Touch)
|
|
14
|
+
- [Gamepad](/api/Gamepad)
|
|
15
|
+
|
|
16
|
+
Reference the desired input modules via the Input package to get started:
|
|
17
|
+
|
|
18
|
+
```lua
|
|
19
|
+
local PreferredInput = require(Packages.Input).PreferredInput
|
|
20
|
+
local Mouse = require(Packages.Input).Mouse
|
|
21
|
+
local Keyboard = require(Packages.Input).Keyboard
|
|
22
|
+
local Touch = require(Packages.Input).Touch
|
|
23
|
+
local Gamepad = require(Packages.Input).Gamepad
|
|
24
|
+
```
|
|
25
|
+
]=]
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
PreferredInput = require(script.PreferredInput),
|
|
29
|
+
Mouse = require(script.Mouse),
|
|
30
|
+
Keyboard = require(script.Keyboard),
|
|
31
|
+
Touch = require(script.Touch),
|
|
32
|
+
Gamepad = require(script.Gamepad),
|
|
33
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
[package]
|
|
2
|
-
name = "sleitnick/input"
|
|
3
|
-
description = "Basic input classes"
|
|
4
|
-
version = "3.0.0"
|
|
5
|
-
license = "MIT"
|
|
6
|
-
authors = ["Stephen Leitnick"]
|
|
7
|
-
registry = "https://github.com/UpliftGames/wally-index"
|
|
8
|
-
realm = "shared"
|
|
9
|
-
|
|
10
|
-
[dependencies]
|
|
11
|
-
Signal = "sleitnick/signal@2"
|
|
12
|
-
Trove = "sleitnick/trove@1"
|
|
1
|
+
[package]
|
|
2
|
+
name = "sleitnick/input"
|
|
3
|
+
description = "Basic input classes"
|
|
4
|
+
version = "3.0.0"
|
|
5
|
+
license = "MIT"
|
|
6
|
+
authors = ["Stephen Leitnick"]
|
|
7
|
+
registry = "https://github.com/UpliftGames/wally-index"
|
|
8
|
+
realm = "shared"
|
|
9
|
+
|
|
10
|
+
[dependencies]
|
|
11
|
+
Signal = "sleitnick/signal@2"
|
|
12
|
+
Trove = "sleitnick/trove@1"
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
type PredicateFn = (module: ModuleScript) => boolean;
|
|
2
|
-
type Modules = { [key: string]: unknown };
|
|
3
|
-
|
|
4
|
-
declare namespace Loader {
|
|
5
|
-
interface Constructor {
|
|
6
|
-
LoadChildren: (parent: Instance, predicate?: PredicateFn) => Modules;
|
|
7
|
-
LoadDescendants: (parent: Instance, predicate?: PredicateFn) => Modules;
|
|
8
|
-
MatchesName: (matchName: string) => (module: ModuleScript) => boolean;
|
|
9
|
-
SpawnAll: (loadedModules: Modules, methodName: string) => void;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
declare const Loader: Loader.Constructor;
|
|
14
|
-
|
|
15
|
-
export = Loader;
|
|
1
|
+
type PredicateFn = (module: ModuleScript) => boolean;
|
|
2
|
+
type Modules = { [key: string]: unknown };
|
|
3
|
+
|
|
4
|
+
declare namespace Loader {
|
|
5
|
+
interface Constructor {
|
|
6
|
+
LoadChildren: (parent: Instance, predicate?: PredicateFn) => Modules;
|
|
7
|
+
LoadDescendants: (parent: Instance, predicate?: PredicateFn) => Modules;
|
|
8
|
+
MatchesName: (matchName: string) => (module: ModuleScript) => boolean;
|
|
9
|
+
SpawnAll: (loadedModules: Modules, methodName: string) => void;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare const Loader: Loader.Constructor;
|
|
14
|
+
|
|
15
|
+
export = Loader;
|