@quenty/ik 15.8.1 → 15.9.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,22 @@
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
+ # [15.9.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/ik@15.8.1...@quenty/ik@15.9.0) (2024-09-12)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * Fix tie realm dependency ([d0dc3ee](https://github.com/Quenty/NevermoreEngine/commit/d0dc3ee3084e51e7ba0d7ddb309bab2e28202d58))
12
+
13
+
14
+ ### Features
15
+
16
+ * Unedited all changes ([60e64e3](https://github.com/Quenty/NevermoreEngine/commit/60e64e3efce17c10c4b8965871187d231b338dd4))
17
+
18
+
19
+
20
+
21
+
6
22
  ## [15.8.1](https://github.com/Quenty/NevermoreEngine/compare/@quenty/ik@15.8.0...@quenty/ik@15.8.1) (2024-08-27)
7
23
 
8
24
  **Note:** Version bump only for package @quenty/ik
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/ik",
3
- "version": "15.8.1",
3
+ "version": "15.9.0",
4
4
  "description": "Inverse Kinematics for characters on Roblox",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -26,35 +26,36 @@
26
26
  "Quenty"
27
27
  ],
28
28
  "dependencies": {
29
- "@quenty/acceltween": "^2.4.0",
30
- "@quenty/baseobject": "^10.3.0",
31
- "@quenty/binder": "^14.5.0",
32
- "@quenty/brio": "^14.4.0",
33
- "@quenty/camera": "^14.6.0",
34
- "@quenty/characterutils": "^12.4.0",
35
- "@quenty/humanoidtracker": "^13.4.0",
36
- "@quenty/instanceutils": "^13.4.0",
37
- "@quenty/loader": "^10.3.0",
38
- "@quenty/maid": "^3.2.0",
29
+ "@quenty/acceltween": "^2.5.0",
30
+ "@quenty/baseobject": "^10.4.0",
31
+ "@quenty/binder": "^14.6.0",
32
+ "@quenty/brio": "^14.5.0",
33
+ "@quenty/camera": "^14.7.0",
34
+ "@quenty/characterutils": "^12.5.0",
35
+ "@quenty/humanoidtracker": "^13.5.0",
36
+ "@quenty/instanceutils": "^13.5.0",
37
+ "@quenty/loader": "^10.4.0",
38
+ "@quenty/maid": "^3.3.0",
39
39
  "@quenty/math": "^2.7.0",
40
- "@quenty/motor6d": "^7.6.0",
41
- "@quenty/optional": "^11.3.0",
42
- "@quenty/promise": "^10.3.0",
43
- "@quenty/qframe": "^10.3.0",
44
- "@quenty/r15utils": "^13.4.0",
45
- "@quenty/ragdoll": "^15.7.1",
46
- "@quenty/remoting": "^12.5.0",
47
- "@quenty/rx": "^13.4.0",
48
- "@quenty/servicebag": "^11.4.0",
49
- "@quenty/signal": "^7.3.0",
40
+ "@quenty/motor6d": "^7.7.0",
41
+ "@quenty/optional": "^11.4.0",
42
+ "@quenty/promise": "^10.4.0",
43
+ "@quenty/qframe": "^10.4.0",
44
+ "@quenty/r15utils": "^13.5.0",
45
+ "@quenty/ragdoll": "^15.8.0",
46
+ "@quenty/remoting": "^12.6.0",
47
+ "@quenty/rx": "^13.5.0",
48
+ "@quenty/servicebag": "^11.5.0",
49
+ "@quenty/signal": "^7.4.0",
50
50
  "@quenty/table": "^3.5.0",
51
- "@quenty/valueobject": "^13.4.0"
51
+ "@quenty/tie": "^10.7.0",
52
+ "@quenty/valueobject": "^13.5.0"
52
53
  },
53
54
  "devDependencies": {
54
- "@quenty/rigbuilderutils": "^10.6.0"
55
+ "@quenty/rigbuilderutils": "^10.7.0"
55
56
  },
56
57
  "publishConfig": {
57
58
  "access": "public"
58
59
  },
59
- "gitHead": "24ecfb80e366226008900c0985da2b8c035de94c"
60
+ "gitHead": "fb172906f3ee725269ec1e5f4daf9dca227e729d"
60
61
  }
@@ -48,6 +48,7 @@ function IKServiceClient:Init(serviceBag)
48
48
 
49
49
  -- External
50
50
  self._serviceBag:GetService(require("CameraStackService"))
51
+ self._serviceBag:GetService(require("TieRealmService"))
51
52
  self._serviceBag:GetService(require("Motor6DServiceClient"))
52
53
 
53
54
  -- Internal
@@ -19,7 +19,7 @@ IKRigClient.__index = IKRigClient
19
19
  require("PromiseRemoteEventMixin"):Add(IKRigClient, IKConstants.REMOTE_EVENT_NAME)
20
20
 
21
21
  function IKRigClient.new(humanoid, serviceBag)
22
- local self = setmetatable(IKRigBase.new(humanoid), IKRigClient)
22
+ local self = setmetatable(IKRigBase.new(humanoid, serviceBag), IKRigClient)
23
23
 
24
24
  self._serviceBag = assert(serviceBag, "No serviceBag")
25
25
 
@@ -50,6 +50,7 @@ function IKService:Init(serviceBag)
50
50
 
51
51
  -- External
52
52
  self._serviceBag:GetService(require("Motor6DService"))
53
+ self._serviceBag:GetService(require("TieRealmService"))
53
54
  self._humanoidTrackerService = self._serviceBag:GetService(require("HumanoidTrackerService"))
54
55
 
55
56
  -- Binders
@@ -19,7 +19,7 @@ IKRig.ClassName = "IKRig"
19
19
  IKRig.__index = IKRig
20
20
 
21
21
  function IKRig.new(humanoid, serviceBag)
22
- local self = setmetatable(IKRigBase.new(humanoid), IKRig)
22
+ local self = setmetatable(IKRigBase.new(humanoid, serviceBag), IKRig)
23
23
 
24
24
  self._serviceBag = assert(serviceBag, "No serviceBag")
25
25
 
@@ -21,6 +21,7 @@ local RxBrioUtils = require("RxBrioUtils")
21
21
  local RxInstanceUtils = require("RxInstanceUtils")
22
22
  local RxR15Utils = require("RxR15Utils")
23
23
  local ValueObject = require("ValueObject")
24
+ local TieRealmService = require("TieRealmService")
24
25
 
25
26
  local CFA_90X = CFrame.Angles(math.pi/2, 0, 0)
26
27
  local USE_OLD_IK_SYSTEM = (not LimbIKUtils) or false
@@ -30,11 +31,14 @@ local ArmIKBase = setmetatable({}, BaseObject)
30
31
  ArmIKBase.ClassName = "ArmIKBase"
31
32
  ArmIKBase.__index = ArmIKBase
32
33
 
33
- function ArmIKBase.new(humanoid, armName)
34
+ function ArmIKBase.new(humanoid, armName, serviceBag)
34
35
  local self = setmetatable(BaseObject.new(), ArmIKBase)
35
36
 
36
37
  self._humanoid = humanoid or error("No humanoid")
37
38
  self._armName = assert(armName, "No armName")
39
+ self._serviceBag = assert(serviceBag, "No serviceBag")
40
+
41
+ self._tieRealmService = self._serviceBag:GetService(TieRealmService)
38
42
 
39
43
  self._grips = {}
40
44
 
@@ -109,7 +113,7 @@ function ArmIKBase:_ensureAnimator(character, partName, motorName, getTranform)
109
113
 
110
114
  topMaid:GiveTask(RxR15Utils.observeRigMotorBrio(character, partName, motorName):Pipe({
111
115
  RxBrioUtils.switchMapBrio(function(motor)
112
- return Motor6DStackInterface:ObserveLastImplementationBrio(motor)
116
+ return Motor6DStackInterface:ObserveLastImplementationBrio(motor, self._tieRealmService:GetTieRealm())
113
117
  end);
114
118
  }):Subscribe(function(brio)
115
119
  if brio:IsDead() then
@@ -199,19 +203,19 @@ function ArmIKBase:_observeStateBrio()
199
203
 
200
204
  ShoulderMotor6DStack = observeShoulderBrio:Pipe({
201
205
  RxBrioUtils.switchMapBrio(function(motor)
202
- return Motor6DStackInterface:ObserveLastImplementationBrio(motor);
206
+ return Motor6DStackInterface:ObserveLastImplementationBrio(motor, self._tieRealmService:GetTieRealm());
203
207
  end);
204
208
  Rx.defaultsToNil;
205
209
  });
206
210
  ElbowMotor6DStack = observeElbowBrio:Pipe({
207
211
  RxBrioUtils.switchMapBrio(function(motor)
208
- return Motor6DStackInterface:ObserveLastImplementationBrio(motor);
212
+ return Motor6DStackInterface:ObserveLastImplementationBrio(motor, self._tieRealmService:GetTieRealm());
209
213
  end);
210
214
  Rx.defaultsToNil;
211
215
  });
212
216
  WristMotor6DStack = observeWristBrio:Pipe({
213
217
  RxBrioUtils.switchMapBrio(function(motor)
214
- return Motor6DStackInterface:ObserveLastImplementationBrio(motor);
218
+ return Motor6DStackInterface:ObserveLastImplementationBrio(motor, self._tieRealmService:GetTieRealm());
215
219
  end);
216
220
  Rx.defaultsToNil;
217
221
  });
@@ -10,9 +10,11 @@ local RunService = game:GetService("RunService")
10
10
  local Maid = require("Maid")
11
11
  local RigBuilderUtils = require("RigBuilderUtils")
12
12
  local ArmIKBase = require("ArmIKBase")
13
+ local ServiceBag = require("ServiceBag")
13
14
 
14
15
  return function(_target)
15
16
  local maid = Maid.new()
17
+ local serviceBag = maid:Add(ServiceBag.new())
16
18
 
17
19
  maid:GivePromise(RigBuilderUtils.promisePlayerRig(4397833)):Then(function(character)
18
20
  maid:GiveTask(character)
@@ -20,7 +22,7 @@ return function(_target)
20
22
  local humanoid = character.Humanoid
21
23
  local position = Workspace.CurrentCamera.CFrame:pointToWorldSpace(Vector3.new(0, 0, -10))
22
24
 
23
- local armIKBase = ArmIKBase.new(humanoid, "Right")
25
+ local armIKBase = ArmIKBase.new(humanoid, "Right", serviceBag)
24
26
  maid:GiveTask(armIKBase)
25
27
 
26
28
  local attachment = Instance.new("Attachment")
@@ -19,7 +19,7 @@ function ArmIKUtils.ensureMotorAnimated(character, armName)
19
19
  end
20
20
 
21
21
  local maid, motor = brio:ToMaidAndValue()
22
- local ragdollMotorData = RagdollMotorData:CreateValue(motor)
22
+ local ragdollMotorData = RagdollMotorData:Create(motor)
23
23
 
24
24
  ragdollMotorData.IsMotorAnimated.Value = true
25
25
  maid:GiveTask(function()
@@ -15,11 +15,12 @@ local IKRigBase = setmetatable({}, BaseObject)
15
15
  IKRigBase.ClassName = "IKRigBase"
16
16
  IKRigBase.__index = IKRigBase
17
17
 
18
- function IKRigBase.new(humanoid)
19
- local self = setmetatable(BaseObject.new(humanoid), IKRigBase)
18
+ function IKRigBase.new(humanoid, serviceBag)
19
+ local self = setmetatable(BaseObject.new(humanoid, serviceBag), IKRigBase)
20
20
 
21
- self.Updating = Signal.new()
22
- self._maid:GiveTask(self.Updating)
21
+ self._serviceBag = assert(serviceBag, "No serviceBag")
22
+
23
+ self.Updating = self._maid:Add(Signal.new())
23
24
 
24
25
  self._ikTargets = {}
25
26
  self._character = humanoid.Parent or error("No character")
@@ -107,7 +108,7 @@ function IKRigBase:_getNewArm(armName)
107
108
  return nil
108
109
  end
109
110
 
110
- local newIk = ArmIKBase.new(self._obj, armName)
111
+ local newIk = ArmIKBase.new(self._obj, armName, self._serviceBag)
111
112
  table.insert(self._ikTargets, newIk)
112
113
 
113
114
  return newIk