@quenty/camera 14.20.3 → 14.20.4-canary.11a5dcf.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 +16 -0
- package/package.json +17 -17
- package/src/Client/CameraStack.lua +27 -20
- package/src/Client/CameraStackService.lua +53 -35
- package/src/Client/CameraState.lua +8 -8
- package/src/Client/CameraUtils.lua +1 -1
- package/src/Client/CameraUtils.story.lua +5 -4
- package/src/Client/Controls/CameraControls.lua +107 -60
- package/src/Client/Controls/CameraGamepadInputUtils.lua +36 -21
- package/src/Client/Controls/GamepadRotateModel.lua +22 -12
- package/src/Client/Effects/CameraEffectUtils.lua +10 -1
- package/src/Client/Effects/CustomCameraEffect.lua +21 -5
- package/src/Client/Effects/DefaultCamera.lua +50 -32
- package/src/Client/Effects/FadeBetween/FadeBetweenCamera.lua +7 -7
- package/src/Client/Effects/FadeBetween/FadeBetweenCamera2.lua +11 -11
- package/src/Client/Effects/FadeBetween/FadeBetweenCamera3.lua +57 -21
- package/src/Client/Effects/FadeBetween/FadeBetweenCamera4.lua +17 -9
- package/src/Client/Effects/FadingCamera.lua +21 -5
- package/src/Client/Effects/HeartbeatCamera.lua +22 -9
- package/src/Client/Effects/ImpulseCamera.lua +44 -28
- package/src/Client/Effects/ImpulseCamera.story.lua +6 -6
- package/src/Client/Effects/InverseFader.lua +22 -6
- package/src/Client/Effects/LagPointCamera.lua +27 -8
- package/src/Client/Effects/OverrideDefaultCameraToo.lua +26 -4
- package/src/Client/Effects/PointCamera.lua +22 -6
- package/src/Client/Effects/PushCamera.lua +35 -14
- package/src/Client/Effects/RotatedCamera.lua +23 -9
- package/src/Client/Effects/SmoothPositionCamera.lua +22 -10
- package/src/Client/Effects/SmoothRotatedCamera.lua +52 -24
- package/src/Client/Effects/SmoothZoomedCamera.lua +31 -12
- package/src/Client/Effects/SummedCamera.lua +38 -16
- package/src/Client/Effects/TrackCamera.lua +24 -11
- package/src/Client/Effects/XZPlaneLockCamera.lua +21 -8
- package/src/Client/Effects/ZoomedCamera.lua +24 -7
- package/src/Client/Input/CameraInputUtils.lua +49 -13
- package/src/Client/Input/CameraTouchInputUtils.lua +17 -16
- package/src/Client/Utility/CameraFrame.lua +2 -2
- package/src/Client/Utility/CameraFrame.story.lua +21 -12
- package/src/Client/Utility/CameraStateTweener.lua +39 -19
- package/src/Client/Utility/FieldOfViewUtils.lua +1 -1
- package/test/scripts/Client/ClientMain.client.lua +1 -1
- package/test/scripts/Server/ServerMain.server.lua +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
@class CameraInputUtils
|
|
3
4
|
]=]
|
|
@@ -7,7 +8,14 @@ local Workspace = game:GetService("Workspace")
|
|
|
7
8
|
|
|
8
9
|
local CameraInputUtils = {}
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
--[=[
|
|
12
|
+
Computes the pan delta based on the given pan delta and sensitivity.
|
|
13
|
+
|
|
14
|
+
@param panDelta Vector2
|
|
15
|
+
@param sensivity Vector2
|
|
16
|
+
@return Vector2
|
|
17
|
+
]=]
|
|
18
|
+
function CameraInputUtils.getPanBy(panDelta: Vector2, sensivity: Vector2): Vector2
|
|
11
19
|
local viewportSize = Workspace.CurrentCamera.ViewportSize
|
|
12
20
|
local aspectRatio = CameraInputUtils.getCappedAspectRatio(viewportSize)
|
|
13
21
|
local inversionVector = CameraInputUtils.getInversionVector(UserGameSettings)
|
|
@@ -16,22 +24,45 @@ function CameraInputUtils.getPanBy(panDelta, sensivity)
|
|
|
16
24
|
sensivity = CameraInputUtils.invertSensitivity(sensivity)
|
|
17
25
|
end
|
|
18
26
|
|
|
19
|
-
return inversionVector*sensivity*panDelta
|
|
27
|
+
return inversionVector * sensivity * panDelta
|
|
20
28
|
end
|
|
21
29
|
|
|
22
|
-
|
|
23
|
-
|
|
30
|
+
--[=[
|
|
31
|
+
Converts a Vector3 to a Vector2 for camera panning
|
|
32
|
+
|
|
33
|
+
@param vector3 Vector3
|
|
34
|
+
@return Vector2
|
|
35
|
+
]=]
|
|
36
|
+
function CameraInputUtils.convertToPanDelta(vector3: Vector3): Vector2
|
|
37
|
+
return Vector2.new(vector3.X, vector3.Y)
|
|
24
38
|
end
|
|
25
39
|
|
|
26
|
-
|
|
40
|
+
--[=[
|
|
41
|
+
Returns the inversion vector based on the user game settings.
|
|
42
|
+
|
|
43
|
+
@param userGameSettings UserGameSettings
|
|
44
|
+
@return Vector2
|
|
45
|
+
]=]
|
|
46
|
+
function CameraInputUtils.getInversionVector(userGameSettings: UserGameSettings): Vector2
|
|
27
47
|
return Vector2.new(1, userGameSettings:GetCameraYInvertValue())
|
|
28
48
|
end
|
|
29
49
|
|
|
30
|
-
|
|
31
|
-
|
|
50
|
+
--[=[
|
|
51
|
+
Inverts the sensitivity vector.
|
|
52
|
+
|
|
53
|
+
@param sensivity Vector2
|
|
54
|
+
@return Vector2
|
|
55
|
+
]=]
|
|
56
|
+
function CameraInputUtils.invertSensitivity(sensivity: Vector2): Vector2
|
|
57
|
+
return Vector2.new(sensivity.Y, sensivity.X)
|
|
32
58
|
end
|
|
33
59
|
|
|
34
|
-
|
|
60
|
+
--[=[
|
|
61
|
+
Returns true if in portrait mode, false otherwise.
|
|
62
|
+
@param aspectRatio number
|
|
63
|
+
@return boolean
|
|
64
|
+
]=]
|
|
65
|
+
function CameraInputUtils.isPortraitMode(aspectRatio: number): boolean
|
|
35
66
|
if aspectRatio < 1 then
|
|
36
67
|
return true
|
|
37
68
|
end
|
|
@@ -39,10 +70,15 @@ function CameraInputUtils.isPortraitMode(aspectRatio)
|
|
|
39
70
|
return false
|
|
40
71
|
end
|
|
41
72
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return
|
|
73
|
+
--[=[
|
|
74
|
+
Computes a capped aspect ratio based on the viewport size.
|
|
75
|
+
@param viewportSize Vector2
|
|
76
|
+
@return number
|
|
77
|
+
]=]
|
|
78
|
+
function CameraInputUtils.getCappedAspectRatio(viewportSize: Vector2): number
|
|
79
|
+
local x = math.clamp(viewportSize.X, 0, 1920)
|
|
80
|
+
local y = math.clamp(viewportSize.Y, 0, 1080)
|
|
81
|
+
return x / y
|
|
46
82
|
end
|
|
47
83
|
|
|
48
|
-
return CameraInputUtils
|
|
84
|
+
return CameraInputUtils
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Utility methods involving touch input and cameras.
|
|
3
4
|
@class CameraTouchInputUtils
|
|
@@ -23,27 +24,27 @@ local TOUCH_SENSITIVTY_ADJUST_MIN_Y = 0.5
|
|
|
23
24
|
@param currPitchAngle number
|
|
24
25
|
@param sensitivity Vector2
|
|
25
26
|
@param delta Vector2
|
|
26
|
-
|
|
27
|
+
@return Vector2
|
|
27
28
|
]=]
|
|
28
|
-
function CameraTouchInputUtils.adjustTouchSensitivity(
|
|
29
|
+
function CameraTouchInputUtils.adjustTouchSensitivity(
|
|
30
|
+
currPitchAngle: number,
|
|
31
|
+
sensitivity: Vector2,
|
|
32
|
+
delta: Vector2
|
|
33
|
+
): Vector2
|
|
29
34
|
local multiplierY = TOUCH_SENSITIVTY_ADJUST_MAX_Y
|
|
30
35
|
if currPitchAngle > TOUCH_ADJUST_AREA_UP and delta.Y < 0 then
|
|
31
|
-
local fractionAdjust = (currPitchAngle - TOUCH_ADJUST_AREA_UP)/(MAX_Y - TOUCH_ADJUST_AREA_UP)
|
|
32
|
-
fractionAdjust = 1 - (1 - fractionAdjust)^3
|
|
33
|
-
multiplierY = TOUCH_SENSITIVTY_ADJUST_MAX_Y
|
|
34
|
-
TOUCH_SENSITIVTY_ADJUST_MAX_Y - TOUCH_SENSITIVTY_ADJUST_MIN_Y)
|
|
36
|
+
local fractionAdjust = (currPitchAngle - TOUCH_ADJUST_AREA_UP) / (MAX_Y - TOUCH_ADJUST_AREA_UP)
|
|
37
|
+
fractionAdjust = 1 - (1 - fractionAdjust) ^ 3
|
|
38
|
+
multiplierY = TOUCH_SENSITIVTY_ADJUST_MAX_Y
|
|
39
|
+
- fractionAdjust * (TOUCH_SENSITIVTY_ADJUST_MAX_Y - TOUCH_SENSITIVTY_ADJUST_MIN_Y)
|
|
35
40
|
elseif currPitchAngle < TOUCH_ADJUST_AREA_DOWN and delta.Y > 0 then
|
|
36
|
-
local fractionAdjust = (currPitchAngle - TOUCH_ADJUST_AREA_DOWN)/(MIN_Y - TOUCH_ADJUST_AREA_DOWN)
|
|
37
|
-
fractionAdjust = 1 - (1 - fractionAdjust)^3
|
|
38
|
-
multiplierY = TOUCH_SENSITIVTY_ADJUST_MAX_Y
|
|
39
|
-
TOUCH_SENSITIVTY_ADJUST_MAX_Y - TOUCH_SENSITIVTY_ADJUST_MIN_Y)
|
|
41
|
+
local fractionAdjust = (currPitchAngle - TOUCH_ADJUST_AREA_DOWN) / (MIN_Y - TOUCH_ADJUST_AREA_DOWN)
|
|
42
|
+
fractionAdjust = 1 - (1 - fractionAdjust) ^ 3
|
|
43
|
+
multiplierY = TOUCH_SENSITIVTY_ADJUST_MAX_Y
|
|
44
|
+
- fractionAdjust * (TOUCH_SENSITIVTY_ADJUST_MAX_Y - TOUCH_SENSITIVTY_ADJUST_MIN_Y)
|
|
40
45
|
end
|
|
41
46
|
|
|
42
|
-
return Vector2.new(
|
|
43
|
-
sensitivity.X,
|
|
44
|
-
sensitivity.Y * multiplierY
|
|
45
|
-
)
|
|
47
|
+
return Vector2.new(sensitivity.X, sensitivity.Y * multiplierY)
|
|
46
48
|
end
|
|
47
49
|
|
|
48
|
-
|
|
49
|
-
return CameraTouchInputUtils
|
|
50
|
+
return CameraTouchInputUtils
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
local require = require(script.Parent.loader).load(script)
|
|
8
8
|
|
|
9
|
-
local QFrame = require("QFrame")
|
|
10
9
|
local DuckTypeUtils = require("DuckTypeUtils")
|
|
10
|
+
local QFrame = require("QFrame")
|
|
11
11
|
|
|
12
12
|
local CameraFrame = {}
|
|
13
13
|
CameraFrame.ClassName = "CameraFrame"
|
|
@@ -197,4 +197,4 @@ function CameraFrame.__eq(a: CameraFrame, b: CameraFrame): boolean
|
|
|
197
197
|
return a.QFrame == b.QFrame and a.FieldOfView == b.FieldOfView
|
|
198
198
|
end
|
|
199
199
|
|
|
200
|
-
return CameraFrame
|
|
200
|
+
return CameraFrame
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
@class CameraFrame.story
|
|
3
3
|
]]
|
|
4
4
|
|
|
5
|
-
local require =
|
|
5
|
+
local require =
|
|
6
|
+
require(game:GetService("ServerScriptService"):FindFirstChild("LoaderUtils", true).Parent).bootstrapStory(script)
|
|
6
7
|
|
|
7
8
|
local CameraFrame = require("CameraFrame")
|
|
8
9
|
local CameraStoryUtils = require("CameraStoryUtils")
|
|
@@ -16,13 +17,21 @@ return function(target)
|
|
|
16
17
|
local viewportFrame = CameraStoryUtils.setupViewportFrame(maid, target)
|
|
17
18
|
|
|
18
19
|
local cameraCFrame = workspace.CurrentCamera.CFrame
|
|
19
|
-
local a = CameraFrame.new(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
local a = CameraFrame.new(
|
|
21
|
+
QFrame.fromCFrameClosestTo(
|
|
22
|
+
CFrame.new(cameraCFrame.Position + cameraCFrame.lookVector * 25 - 20 * cameraCFrame.RightVector),
|
|
23
|
+
QFrame.new()
|
|
24
|
+
),
|
|
25
|
+
70
|
|
26
|
+
)
|
|
27
|
+
local b = CameraFrame.new(
|
|
28
|
+
QFrame.fromCFrameClosestTo(
|
|
29
|
+
CFrame.new(cameraCFrame.Position + cameraCFrame.lookVector * 30 + 20 * cameraCFrame.RightVector)
|
|
30
|
+
* CFrame.Angles(math.pi / 3, 2 * math.pi / 3, 0),
|
|
31
|
+
QFrame.new()
|
|
32
|
+
),
|
|
33
|
+
70
|
|
34
|
+
)
|
|
26
35
|
|
|
27
36
|
local setup = CameraStoryUtils.getInterpolationFactory(maid, viewportFrame, -0.1, 1.1, 4, function(cameraFrame)
|
|
28
37
|
return cameraFrame.CFrame
|
|
@@ -37,12 +46,12 @@ return function(target)
|
|
|
37
46
|
end, Color3.new(0.5, 1, 0.5))
|
|
38
47
|
|
|
39
48
|
setup(function(t)
|
|
40
|
-
return CameraFrame.new((1 - t)*a.QFrame + t*b.QFrame, a.FieldOfView + (b.FieldOfView - a.FieldOfView)*t)
|
|
49
|
+
return CameraFrame.new((1 - t) * a.QFrame + t * b.QFrame, a.FieldOfView + (b.FieldOfView - a.FieldOfView) * t)
|
|
41
50
|
end, Color3.new(0.25, 0.25, 0.25), "Linear", Vector2.new(80, 0))
|
|
42
51
|
|
|
43
52
|
setup(function(t)
|
|
44
|
-
local result = ((b.QFrame*(a.QFrame
|
|
45
|
-
return CameraFrame.new(result, a.FieldOfView + (b.FieldOfView - a.FieldOfView)*t)
|
|
53
|
+
local result = ((b.QFrame * (a.QFrame ^ -1)) ^ t) * a.QFrame
|
|
54
|
+
return CameraFrame.new(result, a.FieldOfView + (b.FieldOfView - a.FieldOfView) * t)
|
|
46
55
|
end, Color3.new(0.5, 0.5, 1), "Quaternion", Vector2.new(0, -80))
|
|
47
56
|
|
|
48
57
|
setup(function(t)
|
|
@@ -61,4 +70,4 @@ return function(target)
|
|
|
61
70
|
return function()
|
|
62
71
|
maid:DoCleaning()
|
|
63
72
|
end
|
|
64
|
-
end
|
|
73
|
+
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Makes transitions between states easier. Uses the `CameraStackService` to tween in and
|
|
3
4
|
out a new camera state Call `:Show()` and `:Hide()` to do so, and make sure to
|
|
@@ -8,16 +9,27 @@
|
|
|
8
9
|
|
|
9
10
|
local require = require(script.Parent.loader).load(script)
|
|
10
11
|
|
|
12
|
+
local BaseObject = require("BaseObject")
|
|
13
|
+
local CameraEffectUtils = require("CameraEffectUtils")
|
|
14
|
+
local CameraStack = require("CameraStack")
|
|
11
15
|
local CameraStackService = require("CameraStackService")
|
|
12
16
|
local FadeBetweenCamera3 = require("FadeBetweenCamera3")
|
|
13
17
|
local ServiceBag = require("ServiceBag")
|
|
14
|
-
local BaseObject = require("BaseObject")
|
|
15
|
-
local CameraStack = require("CameraStack")
|
|
16
18
|
|
|
17
19
|
local CameraStateTweener = setmetatable({}, BaseObject)
|
|
18
20
|
CameraStateTweener.ClassName = "CameraStateTweener"
|
|
19
21
|
CameraStateTweener.__index = CameraStateTweener
|
|
20
22
|
|
|
23
|
+
export type CameraStateTweener = typeof(setmetatable(
|
|
24
|
+
{} :: {
|
|
25
|
+
_cameraStack: CameraStack.CameraStack,
|
|
26
|
+
_cameraEffect: any,
|
|
27
|
+
_cameraBelow: any,
|
|
28
|
+
_fadeBetween: FadeBetweenCamera3.FadeBetweenCamera3,
|
|
29
|
+
},
|
|
30
|
+
{} :: typeof({ __index = CameraStateTweener })
|
|
31
|
+
)) & BaseObject.BaseObject
|
|
32
|
+
|
|
21
33
|
--[=[
|
|
22
34
|
Constructs a new camera state tweener
|
|
23
35
|
|
|
@@ -26,15 +38,19 @@ CameraStateTweener.__index = CameraStateTweener
|
|
|
26
38
|
@param speed number? -- Speed that the camera tweener tweens at. Defaults to 20
|
|
27
39
|
@return CameraStateTweener
|
|
28
40
|
]=]
|
|
29
|
-
function CameraStateTweener.new(
|
|
30
|
-
|
|
41
|
+
function CameraStateTweener.new(
|
|
42
|
+
serviceBagOrCameraStack: ServiceBag.ServiceBag | CameraStack.CameraStack,
|
|
43
|
+
cameraEffect,
|
|
44
|
+
speed: number?
|
|
45
|
+
): CameraStateTweener
|
|
46
|
+
local self: CameraStateTweener = setmetatable(BaseObject.new() :: any, CameraStateTweener)
|
|
31
47
|
|
|
32
48
|
assert(cameraEffect, "No cameraEffect")
|
|
33
49
|
|
|
34
50
|
if ServiceBag.isServiceBag(serviceBagOrCameraStack) then
|
|
35
|
-
self._cameraStack = serviceBagOrCameraStack:GetService(CameraStackService):GetCameraStack()
|
|
51
|
+
self._cameraStack = (serviceBagOrCameraStack :: any):GetService(CameraStackService):GetCameraStack()
|
|
36
52
|
elseif CameraStack.isCameraStack(serviceBagOrCameraStack) then
|
|
37
|
-
self._cameraStack = serviceBagOrCameraStack
|
|
53
|
+
self._cameraStack = serviceBagOrCameraStack :: any
|
|
38
54
|
else
|
|
39
55
|
error("Bad serviceBagOrCameraStack")
|
|
40
56
|
end
|
|
@@ -65,7 +81,7 @@ end
|
|
|
65
81
|
Returns percent visible, from 0 to 1.
|
|
66
82
|
@return number
|
|
67
83
|
]=]
|
|
68
|
-
function CameraStateTweener
|
|
84
|
+
function CameraStateTweener.GetPercentVisible(self: CameraStateTweener): number
|
|
69
85
|
return self._fadeBetween.Value
|
|
70
86
|
end
|
|
71
87
|
|
|
@@ -73,7 +89,7 @@ end
|
|
|
73
89
|
Shows the camera to fade in.
|
|
74
90
|
@param doNotAnimate? boolean -- Optional, defaults to animating
|
|
75
91
|
]=]
|
|
76
|
-
function CameraStateTweener
|
|
92
|
+
function CameraStateTweener.Show(self: CameraStateTweener, doNotAnimate: boolean?)
|
|
77
93
|
self:SetTarget(1, doNotAnimate)
|
|
78
94
|
end
|
|
79
95
|
|
|
@@ -81,7 +97,7 @@ end
|
|
|
81
97
|
Hides the camera to fade in.
|
|
82
98
|
@param doNotAnimate? boolean -- Optional, defaults to animating
|
|
83
99
|
]=]
|
|
84
|
-
function CameraStateTweener
|
|
100
|
+
function CameraStateTweener.Hide(self: CameraStateTweener, doNotAnimate: boolean?)
|
|
85
101
|
self:SetTarget(0, doNotAnimate)
|
|
86
102
|
end
|
|
87
103
|
|
|
@@ -89,7 +105,7 @@ end
|
|
|
89
105
|
Returns true if we're done hiding
|
|
90
106
|
@return boolean
|
|
91
107
|
]=]
|
|
92
|
-
function CameraStateTweener
|
|
108
|
+
function CameraStateTweener.IsFinishedHiding(self: CameraStateTweener): boolean
|
|
93
109
|
return self._fadeBetween.HasReachedTarget and self._fadeBetween.Target == 0
|
|
94
110
|
end
|
|
95
111
|
|
|
@@ -97,7 +113,7 @@ end
|
|
|
97
113
|
Returns true if we're done showing
|
|
98
114
|
@return boolean
|
|
99
115
|
]=]
|
|
100
|
-
function CameraStateTweener
|
|
116
|
+
function CameraStateTweener.IsFinishedShowing(self: CameraStateTweener): boolean
|
|
101
117
|
return self._fadeBetween.HasReachedTarget and self._fadeBetween.Target == 1
|
|
102
118
|
end
|
|
103
119
|
|
|
@@ -107,7 +123,7 @@ end
|
|
|
107
123
|
@param doNotAnimate boolean? -- Optional, defaults to animating
|
|
108
124
|
@param callback function
|
|
109
125
|
]=]
|
|
110
|
-
function CameraStateTweener
|
|
126
|
+
function CameraStateTweener.Finish(self: CameraStateTweener, doNotAnimate: boolean?, callback: () -> ())
|
|
111
127
|
assert(type(callback) == "function", "Bad callback")
|
|
112
128
|
|
|
113
129
|
self:Hide(doNotAnimate)
|
|
@@ -128,7 +144,7 @@ end
|
|
|
128
144
|
Gets the current effect we're tweening
|
|
129
145
|
@return CameraEffect
|
|
130
146
|
]=]
|
|
131
|
-
function CameraStateTweener
|
|
147
|
+
function CameraStateTweener.GetCameraEffect(self: CameraStateTweener): CameraEffectUtils.CameraEffect
|
|
132
148
|
return self._cameraEffect
|
|
133
149
|
end
|
|
134
150
|
|
|
@@ -136,7 +152,7 @@ end
|
|
|
136
152
|
Gets the camera below this camera on the camera stack
|
|
137
153
|
@return CameraEffect
|
|
138
154
|
]=]
|
|
139
|
-
function CameraStateTweener
|
|
155
|
+
function CameraStateTweener.GetCameraBelow(self: CameraStateTweener): CameraEffectUtils.CameraEffect
|
|
140
156
|
return self._cameraBelow
|
|
141
157
|
end
|
|
142
158
|
|
|
@@ -146,7 +162,11 @@ end
|
|
|
146
162
|
@param doNotAnimate boolean? -- Optional, defaults to animating
|
|
147
163
|
@return CameraStateTweener -- self
|
|
148
164
|
]=]
|
|
149
|
-
function CameraStateTweener
|
|
165
|
+
function CameraStateTweener.SetTarget(
|
|
166
|
+
self: CameraStateTweener,
|
|
167
|
+
target: number,
|
|
168
|
+
doNotAnimate: boolean?
|
|
169
|
+
): CameraStateTweener
|
|
150
170
|
self._fadeBetween.Target = target or error("No target")
|
|
151
171
|
if doNotAnimate then
|
|
152
172
|
self._fadeBetween.Value = self._fadeBetween.Target
|
|
@@ -160,7 +180,7 @@ end
|
|
|
160
180
|
@param speed number
|
|
161
181
|
@return CameraStateTweener -- self
|
|
162
182
|
]=]
|
|
163
|
-
function CameraStateTweener
|
|
183
|
+
function CameraStateTweener.SetSpeed(self: CameraStateTweener, speed: number): CameraStateTweener
|
|
164
184
|
assert(type(speed) == "number", "Bad speed")
|
|
165
185
|
|
|
166
186
|
self._fadeBetween.Speed = speed
|
|
@@ -173,7 +193,7 @@ end
|
|
|
173
193
|
@param isVisible boolean
|
|
174
194
|
@param doNotAnimate boolean? -- Optional, defaults to animating
|
|
175
195
|
]=]
|
|
176
|
-
function CameraStateTweener
|
|
196
|
+
function CameraStateTweener.SetVisible(self: CameraStateTweener, isVisible: number, doNotAnimate: boolean?): ()
|
|
177
197
|
if isVisible then
|
|
178
198
|
self:Show(doNotAnimate)
|
|
179
199
|
else
|
|
@@ -185,8 +205,8 @@ end
|
|
|
185
205
|
Retrieves the fading camera being used to interpolate.
|
|
186
206
|
@return CameraEffect
|
|
187
207
|
]=]
|
|
188
|
-
function CameraStateTweener
|
|
208
|
+
function CameraStateTweener.GetFader(self: CameraStateTweener): CameraEffectUtils.CameraEffect
|
|
189
209
|
return self._fadeBetween
|
|
190
210
|
end
|
|
191
211
|
|
|
192
|
-
return CameraStateTweener
|
|
212
|
+
return CameraStateTweener
|