@quenty/camera 7.1.0 → 7.2.1-canary.276.672e37b.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
+ ## [7.2.1-canary.276.672e37b.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/camera@7.2.0...@quenty/camera@7.2.1-canary.276.672e37b.0) (2022-07-31)
7
+
8
+ **Note:** Version bump only for package @quenty/camera
9
+
10
+
11
+
12
+
13
+
14
+ # [7.2.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/camera@7.1.0...@quenty/camera@7.2.0) (2022-07-02)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * Can clean up services properly ([eb45e03](https://github.com/Quenty/NevermoreEngine/commit/eb45e03ce2897b18f1ae460974bf2bbb9e27cb97))
20
+
21
+
22
+
23
+
24
+
6
25
  # [7.1.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/camera@7.0.0...@quenty/camera@7.1.0) (2022-06-21)
7
26
 
8
27
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/camera",
3
- "version": "7.1.0",
3
+ "version": "7.2.1-canary.276.672e37b.0",
4
4
  "description": "Quenty's camera system for Roblox",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -25,23 +25,23 @@
25
25
  "Quenty"
26
26
  ],
27
27
  "dependencies": {
28
- "@quenty/acceltween": "^2.2.0",
29
- "@quenty/baseobject": "^5.0.0",
30
- "@quenty/cframeutils": "^4.0.0",
31
- "@quenty/cubicspline": "^5.0.0",
32
- "@quenty/inputobjectutils": "^3.0.0",
33
- "@quenty/loader": "^5.0.0",
34
- "@quenty/maid": "^2.3.0",
35
- "@quenty/math": "^2.2.0",
36
- "@quenty/qframe": "^5.1.0",
37
- "@quenty/servicebag": "^5.0.0",
38
- "@quenty/spring": "^5.0.0"
28
+ "@quenty/acceltween": "2.2.0",
29
+ "@quenty/baseobject": "5.0.1-canary.276.672e37b.0",
30
+ "@quenty/cframeutils": "4.0.0",
31
+ "@quenty/cubicspline": "5.0.0",
32
+ "@quenty/inputobjectutils": "3.0.0",
33
+ "@quenty/loader": "5.0.0",
34
+ "@quenty/maid": "2.3.1-canary.276.672e37b.0",
35
+ "@quenty/math": "2.2.0",
36
+ "@quenty/qframe": "5.1.1-canary.276.672e37b.0",
37
+ "@quenty/servicebag": "5.0.1-canary.276.672e37b.0",
38
+ "@quenty/spring": "5.0.0"
39
39
  },
40
40
  "devDependencies": {
41
- "@quenty/camerastoryutils": "^5.1.0"
41
+ "@quenty/camerastoryutils": "5.1.1-canary.276.672e37b.0"
42
42
  },
43
43
  "publishConfig": {
44
44
  "access": "public"
45
45
  },
46
- "gitHead": "c8732cc5dea767b3ff362db43137e2a16da7bc0d"
46
+ "gitHead": "672e37b9bbb8b2d4c4c6c69ed2647335be0bc469"
47
47
  }
@@ -15,6 +15,7 @@ local CustomCameraEffect = require("CustomCameraEffect")
15
15
  local DefaultCamera = require("DefaultCamera")
16
16
  local ImpulseCamera = require("ImpulseCamera")
17
17
  local ServiceBag = require("ServiceBag")
18
+ local Maid = require("Maid")
18
19
 
19
20
  assert(RunService:IsClient(), "[CameraStackService] - Only require CameraStackService on client")
20
21
 
@@ -27,18 +28,23 @@ local CameraStackService = {}
27
28
  function CameraStackService:Init(serviceBag)
28
29
  assert(ServiceBag.isServiceBag(serviceBag), "Not a valid service bag")
29
30
 
31
+ self._maid = Maid.new()
32
+ self._key = HttpService:GenerateGUID(false)
33
+
30
34
  self._stack = {}
31
35
  self._disabledSet = {}
32
36
 
33
37
  -- Initialize default cameras
34
38
  self._rawDefaultCamera = DefaultCamera.new()
39
+ self._maid:GiveTask(self._rawDefaultCamera)
40
+
35
41
  self._impulseCamera = ImpulseCamera.new()
36
42
  self._defaultCamera = (self._rawDefaultCamera + self._impulseCamera):SetMode("Relative")
37
43
 
38
44
  -- Add camera to stack
39
45
  self:Add(self._defaultCamera)
40
46
 
41
- RunService:BindToRenderStep("CameraStackUpdateInternal", Enum.RenderPriority.Camera.Value + 75, function()
47
+ RunService:BindToRenderStep("CameraStackUpdateInternal" .. self._key, Enum.RenderPriority.Camera.Value + 75, function()
42
48
  debug.profilebegin("CameraStackUpdate")
43
49
 
44
50
  if next(self._disabledSet) then
@@ -52,6 +58,10 @@ function CameraStackService:Init(serviceBag)
52
58
 
53
59
  debug.profileend()
54
60
  end)
61
+
62
+ self._maid:GiveTask(function()
63
+ RunService:UnbindFromRenderStep("CameraStackUpdateInternal" .. self._key)
64
+ end)
55
65
  end
56
66
 
57
67
  function CameraStackService:Start()
@@ -271,4 +281,8 @@ function CameraStackService:Add(state)
271
281
  table.insert(self._stack, state)
272
282
  end
273
283
 
284
+ function CameraStackService:Destroy()
285
+ self._maid:DoCleaning()
286
+ end
287
+
274
288
  return CameraStackService
@@ -10,6 +10,7 @@ local require = require(script.Parent.loader).load(script)
10
10
 
11
11
  local RunService = game:GetService("RunService")
12
12
  local Workspace = game:GetService("Workspace")
13
+ local HttpService = game:GetService("HttpService")
13
14
 
14
15
  local CameraState = require("CameraState")
15
16
  local SummedCamera = require("SummedCamera")
@@ -25,6 +26,7 @@ DefaultCamera.ClassName = "DefaultCamera"
25
26
  function DefaultCamera.new()
26
27
  local self = setmetatable({}, DefaultCamera)
27
28
 
29
+ self._key = HttpService:GenerateGUID(false)
28
30
  self._cameraState = CameraState.new(Workspace.CurrentCamera)
29
31
 
30
32
  return self
@@ -54,11 +56,11 @@ end
54
56
  :::
55
57
  ]=]
56
58
  function DefaultCamera:BindToRenderStep()
57
- RunService:BindToRenderStep("DefaultCamera_Preupdate", Enum.RenderPriority.Camera.Value-2, function()
59
+ RunService:BindToRenderStep("DefaultCamera_Preupdate" .. self._key, Enum.RenderPriority.Camera.Value-2, function()
58
60
  self._cameraState:Set(Workspace.CurrentCamera)
59
61
  end)
60
62
 
61
- RunService:BindToRenderStep("DefaultCamera_PostUpdate", Enum.RenderPriority.Camera.Value+2, function()
63
+ RunService:BindToRenderStep("DefaultCamera_PostUpdate" .. self._key, Enum.RenderPriority.Camera.Value+2, function()
62
64
  self._cameraState = CameraState.new(Workspace.CurrentCamera)
63
65
  end)
64
66
 
@@ -69,8 +71,15 @@ end
69
71
  Unbinds the camera from the RunService
70
72
  ]=]
71
73
  function DefaultCamera:UnbindFromRenderStep()
72
- RunService:UnbindFromRenderStep("DefaultCamera_Preupdate")
73
- RunService:UnbindFromRenderStep("DefaultCamera_PostUpdate")
74
+ RunService:UnbindFromRenderStep("DefaultCamera_Preupdate" .. self._key)
75
+ RunService:UnbindFromRenderStep("DefaultCamera_PostUpdate" .. self._key)
76
+ end
77
+
78
+ --[=[
79
+ Cleans up the binding
80
+ ]=]
81
+ function DefaultCamera:Destroy()
82
+ self:UnbindFromRenderStep()
74
83
  end
75
84
 
76
85
  --[=[
@@ -1,10 +1,20 @@
1
1
  {
2
- "name": "cameratest",
2
+ "name": "CameraTest",
3
3
  "tree": {
4
4
  "$className": "DataModel",
5
5
  "ServerScriptService": {
6
6
  "camera": {
7
7
  "$path": ".."
8
+ },
9
+ "Script": {
10
+ "$path": "scripts/Server"
11
+ }
12
+ },
13
+ "StarterPlayer": {
14
+ "StarterPlayerScripts": {
15
+ "Main": {
16
+ "$path": "scripts/Client"
17
+ }
8
18
  }
9
19
  }
10
20
  }
@@ -0,0 +1,11 @@
1
+ --[[
2
+ @class ClientMain
3
+ ]]
4
+
5
+ local packages = game:GetService("ReplicatedStorage"):WaitForChild("Packages")
6
+
7
+ local serviceBag = require(packages.ServiceBag).new()
8
+ serviceBag:GetService(require(packages.CameraStackService))
9
+
10
+ serviceBag:Init()
11
+ serviceBag:Start()
@@ -0,0 +1,8 @@
1
+ --[[
2
+ @class ServerMain
3
+ ]]
4
+
5
+ local ServerScriptService = game:GetService("ServerScriptService")
6
+
7
+ local loader = ServerScriptService:FindFirstChild("LoaderUtils", true).Parent
8
+ require(loader).bootstrapGame(ServerScriptService.camera)