@quenty/humanoidtracker 13.17.0 → 13.17.1
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,17 @@
|
|
|
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
|
+
## [13.17.1](https://github.com/Quenty/NevermoreEngine/compare/@quenty/humanoidtracker@13.17.0...@quenty/humanoidtracker@13.17.1) (2025-04-05)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Add types to packages ([2374fb2](https://github.com/Quenty/NevermoreEngine/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [13.17.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/humanoidtracker@13.16.2...@quenty/humanoidtracker@13.17.0) (2025-04-02)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @quenty/humanoidtracker
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/humanoidtracker",
|
|
3
|
-
"version": "13.17.
|
|
3
|
+
"version": "13.17.1",
|
|
4
4
|
"description": "HumanoidTracker for Roblox - Tracks a player's character's humanoid",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
"Quenty"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@quenty/baseobject": "^10.8.
|
|
29
|
-
"@quenty/loader": "^10.8.
|
|
30
|
-
"@quenty/maid": "^3.4.
|
|
31
|
-
"@quenty/promise": "^10.10.
|
|
32
|
-
"@quenty/signal": "^7.10.
|
|
33
|
-
"@quenty/valueobject": "^13.17.
|
|
28
|
+
"@quenty/baseobject": "^10.8.1",
|
|
29
|
+
"@quenty/loader": "^10.8.1",
|
|
30
|
+
"@quenty/maid": "^3.4.1",
|
|
31
|
+
"@quenty/promise": "^10.10.2",
|
|
32
|
+
"@quenty/signal": "^7.10.1",
|
|
33
|
+
"@quenty/valueobject": "^13.17.1"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "78c3ac0ab08dd18085b6e6e6e4f745e76ed99f68"
|
|
39
39
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Tracks a player's character's humanoid
|
|
3
4
|
@class HumanoidTracker
|
|
@@ -15,6 +16,17 @@ local HumanoidTracker = setmetatable({}, BaseObject)
|
|
|
15
16
|
HumanoidTracker.ClassName = "HumanoidTracker"
|
|
16
17
|
HumanoidTracker.__index = HumanoidTracker
|
|
17
18
|
|
|
19
|
+
export type HumanoidTracker = typeof(setmetatable(
|
|
20
|
+
{} :: {
|
|
21
|
+
_maid: Maid.Maid,
|
|
22
|
+
_player: Player,
|
|
23
|
+
HumanoidDied: Signal.Signal<Humanoid?>,
|
|
24
|
+
AliveHumanoid: ValueObject.ValueObject<Humanoid?>,
|
|
25
|
+
Humanoid: ValueObject.ValueObject<Humanoid?>,
|
|
26
|
+
},
|
|
27
|
+
{ __index = HumanoidTracker }
|
|
28
|
+
))
|
|
29
|
+
|
|
18
30
|
--[=[
|
|
19
31
|
Current humanoid
|
|
20
32
|
@prop Humanoid ValueObject<Humanoid>
|
|
@@ -42,8 +54,8 @@ HumanoidTracker.__index = HumanoidTracker
|
|
|
42
54
|
@param player Player
|
|
43
55
|
@return HumanoidTracker
|
|
44
56
|
]=]
|
|
45
|
-
function HumanoidTracker.new(player)
|
|
46
|
-
local self = setmetatable(BaseObject.new(), HumanoidTracker)
|
|
57
|
+
function HumanoidTracker.new(player: Player): HumanoidTracker
|
|
58
|
+
local self = setmetatable(BaseObject.new() :: any, HumanoidTracker)
|
|
47
59
|
|
|
48
60
|
self._player = player or error("No player")
|
|
49
61
|
|
|
@@ -85,13 +97,13 @@ end
|
|
|
85
97
|
|
|
86
98
|
@return Promise<Humanoid>
|
|
87
99
|
]=]
|
|
88
|
-
function HumanoidTracker
|
|
100
|
+
function HumanoidTracker.PromiseNextHumanoid(self: HumanoidTracker): Promise.Promise<Humanoid>
|
|
89
101
|
if self.Humanoid.Value then
|
|
90
102
|
return Promise.resolved(self.Humanoid.Value)
|
|
91
103
|
end
|
|
92
104
|
|
|
93
105
|
if self._maid._nextHumanoidPromise then
|
|
94
|
-
return self._maid._nextHumanoidPromise
|
|
106
|
+
return self._maid._nextHumanoidPromise :: Promise.Promise<Humanoid>
|
|
95
107
|
end
|
|
96
108
|
|
|
97
109
|
local promise = Promise.new()
|
|
@@ -111,7 +123,7 @@ function HumanoidTracker:PromiseNextHumanoid()
|
|
|
111
123
|
return promise
|
|
112
124
|
end
|
|
113
125
|
|
|
114
|
-
function HumanoidTracker
|
|
126
|
+
function HumanoidTracker._onCharacterChanged(self: HumanoidTracker)
|
|
115
127
|
local maid = Maid.new()
|
|
116
128
|
self._maid._characterMaid = maid
|
|
117
129
|
|
|
@@ -130,7 +142,7 @@ function HumanoidTracker:_onCharacterChanged()
|
|
|
130
142
|
self.Humanoid.Value = nil
|
|
131
143
|
|
|
132
144
|
-- Listen for changes
|
|
133
|
-
maid._childAdded = character.ChildAdded:Connect(function(child)
|
|
145
|
+
maid._childAdded = character.ChildAdded:Connect(function(child: Instance)
|
|
134
146
|
if child:IsA("Humanoid") then
|
|
135
147
|
maid._childAdded = nil
|
|
136
148
|
self.Humanoid.Value = child -- TODO: Track if this humanoid goes away
|
|
@@ -138,7 +150,7 @@ function HumanoidTracker:_onCharacterChanged()
|
|
|
138
150
|
end)
|
|
139
151
|
end
|
|
140
152
|
|
|
141
|
-
function HumanoidTracker
|
|
153
|
+
function HumanoidTracker._handleHumanoidChanged(self: HumanoidTracker, newHumanoid: Humanoid, _, maid: Maid.Maid)
|
|
142
154
|
if not newHumanoid then
|
|
143
155
|
self.AliveHumanoid.Value = nil
|
|
144
156
|
return
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Centralized humanoid tracking service.
|
|
3
4
|
|
|
@@ -10,6 +11,8 @@ local Players = game:GetService("Players")
|
|
|
10
11
|
|
|
11
12
|
local HumanoidTracker = require("HumanoidTracker")
|
|
12
13
|
local Maid = require("Maid")
|
|
14
|
+
local _Observable = require("Observable")
|
|
15
|
+
local _Brio = require("Brio")
|
|
13
16
|
|
|
14
17
|
local HumanoidTrackerService = {}
|
|
15
18
|
HumanoidTrackerService.ServiceName = "HumanoidTrackerService"
|
|
@@ -31,7 +34,7 @@ end
|
|
|
31
34
|
@param player Player? -- If not set, uses local player
|
|
32
35
|
@return HumanoidTracker
|
|
33
36
|
]=]
|
|
34
|
-
function HumanoidTrackerService:GetHumanoidTracker(player: Player?)
|
|
37
|
+
function HumanoidTrackerService:GetHumanoidTracker(player: Player?): HumanoidTracker.HumanoidTracker?
|
|
35
38
|
assert((typeof(player) == "Instance" and player:IsA("Player")) or player == nil, "Bad player")
|
|
36
39
|
|
|
37
40
|
player = player or Players.LocalPlayer
|
|
@@ -64,7 +67,7 @@ end
|
|
|
64
67
|
@param player Player? -- If not set, uses local player
|
|
65
68
|
@return Humanoid?
|
|
66
69
|
]=]
|
|
67
|
-
function HumanoidTrackerService:GetHumanoid(player: Player?)
|
|
70
|
+
function HumanoidTrackerService:GetHumanoid(player: Player?): Humanoid?
|
|
68
71
|
assert((typeof(player) == "Instance" and player:IsA("Player")) or player == nil, "Bad player")
|
|
69
72
|
|
|
70
73
|
player = player or Players.LocalPlayer
|
|
@@ -75,9 +78,9 @@ end
|
|
|
75
78
|
Observe a player's humanoid
|
|
76
79
|
|
|
77
80
|
@param player Player? -- If not set, uses local player
|
|
78
|
-
@return Observable<Humanoid
|
|
81
|
+
@return Observable<Humanoid?>
|
|
79
82
|
]=]
|
|
80
|
-
function HumanoidTrackerService:ObserveHumanoid(player: Player?)
|
|
83
|
+
function HumanoidTrackerService:ObserveHumanoid(player: Player?): _Observable.Observable<Humanoid?>
|
|
81
84
|
assert((typeof(player) == "Instance" and player:IsA("Player")) or player == nil, "Bad player")
|
|
82
85
|
|
|
83
86
|
player = player or Players.LocalPlayer
|
|
@@ -91,7 +94,7 @@ end
|
|
|
91
94
|
@param player Player? -- If not set, uses local player
|
|
92
95
|
@return Observable<Brio<Humanoid>>
|
|
93
96
|
]=]
|
|
94
|
-
function HumanoidTrackerService:ObserveHumanoidBrio(player: Player?)
|
|
97
|
+
function HumanoidTrackerService:ObserveHumanoidBrio(player: Player?): _Observable.Observable<_Brio.Brio<Humanoid>>
|
|
95
98
|
assert((typeof(player) == "Instance" and player:IsA("Player")) or player == nil, "Bad player")
|
|
96
99
|
|
|
97
100
|
player = player or Players.LocalPlayer
|
|
@@ -107,7 +110,7 @@ end
|
|
|
107
110
|
@param player Player? -- If not set, uses local player
|
|
108
111
|
@return Humanoid?
|
|
109
112
|
]=]
|
|
110
|
-
function HumanoidTrackerService:GetAliveHumanoid(player: Player?)
|
|
113
|
+
function HumanoidTrackerService:GetAliveHumanoid(player: Player?): Humanoid?
|
|
111
114
|
assert((typeof(player) == "Instance" and player:IsA("Player")) or player == nil, "Bad player")
|
|
112
115
|
|
|
113
116
|
player = player or Players.LocalPlayer
|
|
@@ -118,9 +121,9 @@ end
|
|
|
118
121
|
Observe a player's alive humanoid
|
|
119
122
|
|
|
120
123
|
@param player Player? -- If not set, uses local player
|
|
121
|
-
@return Observable<Humanoid
|
|
124
|
+
@return Observable<Humanoid?>
|
|
122
125
|
]=]
|
|
123
|
-
function HumanoidTrackerService:ObserveAliveHumanoid(player: Player?)
|
|
126
|
+
function HumanoidTrackerService:ObserveAliveHumanoid(player: Player?): _Observable.Observable<Humanoid?>
|
|
124
127
|
assert((typeof(player) == "Instance" and player:IsA("Player")) or player == nil, "Bad player")
|
|
125
128
|
|
|
126
129
|
player = player or Players.LocalPlayer
|