Skip to content

Commit de6e4de

Browse files
authored
Merge pull request #527 from Quenty/users/quenty/wfyb
Users/quenty/wfyb
2 parents 983dd19 + 65d09e1 commit de6e4de

File tree

14 files changed

+121
-30
lines changed

14 files changed

+121
-30
lines changed

src/actionmanager/src/Client/BaseAction.lua

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ local ContextActionService = game:GetService("ContextActionService")
1515
local Signal = require("Signal")
1616
local Maid = require("Maid")
1717
local EnabledMixin = require("EnabledMixin")
18+
local ValueObject = require("ValueObject")
1819

1920
local BaseAction = {}
2021
BaseAction.__index = BaseAction
@@ -35,9 +36,7 @@ function BaseAction.new(actionData)
3536
self.Activated = self._maid:Add(Signal.new()) -- :Fire(actionMaid, ... (activateData))
3637
self.Deactivated = self._maid:Add(Signal.new()) -- :Fire()
3738

38-
self.IsActivatedValue = Instance.new("BoolValue")
39-
self.IsActivatedValue.Value = false
40-
self._maid:GiveTask(self.IsActivatedValue)
39+
self.IsActivatedValue = self._maid:Add(ValueObject.new(false, "boolean"))
4140

4241
self:InitEnabledMixin()
4342

@@ -101,12 +100,6 @@ function BaseAction:_updateShortcuts()
101100
if self:IsEnabled() then
102101
ContextActionService:BindAction(self._contextActionKey, function(_, userInputState, _)
103102
if userInputState == Enum.UserInputState.Begin then
104-
if self._actionData.CanActivateShortcutCallback then
105-
if not self._actionData.CanActivateShortcutCallback() then
106-
return
107-
end
108-
end
109-
110103
self:ToggleActivate()
111104
end
112105
end, false, unpack(shortcuts))

src/blend/src/Shared/Blend/SpringObject.lua

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,16 @@ function SpringObject:SetTarget(target, doNotAnimate)
268268
if not observable then
269269
self._maid._targetSub = nil
270270
self:_applyTarget(target, doNotAnimate)
271-
return
271+
return function()
272+
273+
end
272274
end
273275

276+
local sub
277+
self._maid._targetSub = nil
274278
if doNotAnimate then
275279
local isFirst = true
276-
self._maid._targetSub = observable:Subscribe(function(unconverted)
280+
sub = observable:Subscribe(function(unconverted)
277281
local converted = SpringUtils.toLinearIfNeeded(unconverted)
278282
assert(converted, "Not a valid converted target")
279283

@@ -282,10 +286,18 @@ function SpringObject:SetTarget(target, doNotAnimate)
282286
self:_applyTarget(unconverted, wasFirst)
283287
end)
284288
else
285-
self._maid._targetSub = observable:Subscribe(function(unconverted)
289+
sub = observable:Subscribe(function(unconverted)
286290
self:_applyTarget(unconverted, doNotAnimate)
287291
end)
288292
end
293+
294+
self._maid._targetSub = sub
295+
296+
return function()
297+
if self._maid._targetSub == sub then
298+
self._maid._targetSub = nil
299+
end
300+
end
289301
end
290302

291303
function SpringObject:_applyTarget(unconverted, doNotAnimate)

src/camera/src/Client/Controls/CameraControls.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,10 @@ function CameraControls:_mouseTranslationToAngle(translationVector)
235235
return Vector2.new(xTheta, yTheta)
236236
end
237237

238+
function CameraControls:SetVelocityStrength(strength)
239+
self._strength = strength
240+
end
241+
238242
function CameraControls:_getVelocityTracker(strength, startVelocity)
239243
strength = strength or 1
240244

src/clienttranslator/src/Shared/JSONTranslator.lua

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ local RxInstanceUtils = require("RxInstanceUtils")
2626
local TranslationKeyUtils = require("TranslationKeyUtils")
2727
local TranslatorService = require("TranslatorService")
2828
local ValueObject = require("ValueObject")
29+
local NumberLocalizationUtils = require("NumberLocalizationUtils")
2930

3031
local JSONTranslator = {}
3132
JSONTranslator.ClassName = "JSONTranslator"
@@ -109,6 +110,35 @@ function JSONTranslator:Init(serviceBag)
109110
end))
110111
end
111112

113+
function JSONTranslator:ObserveNumber(number)
114+
return Rx.combineLatest({
115+
localeId = self:ObserveLocaleId();
116+
number = number;
117+
}):Pipe({
118+
Rx.map(function(state)
119+
return NumberLocalizationUtils.localize(state.number, state.localeId)
120+
end)
121+
})
122+
end
123+
124+
function JSONTranslator:ObserveAbbreviatedNumber(number, roundingBehaviourType, numSignificantDigits)
125+
return Rx.combineLatest({
126+
localeId = self:ObserveLocaleId();
127+
roundingBehaviourType = roundingBehaviourType;
128+
numSignificantDigits = numSignificantDigits;
129+
number = number;
130+
}):Pipe({
131+
Rx.map(function(state)
132+
return NumberLocalizationUtils.abbreviate(
133+
state.number,
134+
state.localeId,
135+
state.roundingBehaviourType,
136+
state.numSignificantDigits)
137+
end)
138+
})
139+
end
140+
141+
112142
--[=[
113143
Observes the translated value
114144
@param translationKey string

src/clienttranslator/src/Client/NumberLocalizationUtils.lua renamed to src/clienttranslator/src/Shared/Numbers/NumberLocalizationUtils.lua

File renamed without changes.

src/clienttranslator/src/Client/NumberLocalizationUtils.spec.lua renamed to src/clienttranslator/src/Shared/Numbers/NumberLocalizationUtils.spec.lua

File renamed without changes.

src/clienttranslator/src/Client/RoundingBehaviourTypes.lua renamed to src/clienttranslator/src/Shared/Numbers/RoundingBehaviourTypes.lua

File renamed without changes.

src/enabledmixin/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
"dependencies": {
2828
"@quenty/loader": "file:../loader",
2929
"@quenty/maid": "file:../maid",
30-
"@quenty/signal": "file:../signal"
30+
"@quenty/rx": "file:../rx",
31+
"@quenty/signal": "file:../signal",
32+
"@quenty/valueobject": "file:../valueobject"
3133
},
3234
"publishConfig": {
3335
"access": "public"

src/enabledmixin/src/Shared/EnabledMixin.lua

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
local require = require(script.Parent.loader).load(script)
77

8-
local Maid = require("Maid")
98
local Signal = require("Signal")
9+
local ValueObject = require("ValueObject")
1010

1111
local EnabledMixin = {}
1212

@@ -17,12 +17,14 @@ function EnabledMixin:Add(class)
1717
assert(not class.SetEnabled, "class.SetEnabled already defined")
1818
assert(not class.IsEnabled, "class.IsEnabled already defined")
1919
assert(not class.InitEnabledMixin, "class.InitEnabledMixin already defined")
20+
assert(not class.ObserveIsEnabled, "class.ObserveIsEnabled already defined")
2021

2122
-- Inject methods
2223
class.IsEnabled = self.IsEnabled
2324
class.Enable = self.Enable
2425
class.Disable = self.Disable
2526
class.SetEnabled = self.SetEnabled
27+
class.ObserveIsEnabled = self.ObserveIsEnabled
2628
class.InitEnabledMixin = self.InitEnabledMixin
2729
end
2830

@@ -33,13 +35,17 @@ function EnabledMixin:InitEnabledMixin(maid)
3335

3436
self._enabledMaidReference = maid
3537

36-
self._enabled = false
37-
self.EnabledChanged = Signal.new() -- :Fire(isEnabled, doNotAnimate, enabledMaid)
38-
self._enabledMaidReference:GiveTask(self.EnabledChanged)
38+
self._enabledState = maid:Add(ValueObject.new(false, "boolean"))
39+
40+
self.EnabledChanged = maid:Add(Signal.new()) -- :Fire(isEnabled, doNotAnimate)
41+
42+
self._maid:GiveTask(self._enabledState.Changed:Connect(function(isEnabled, _, doNotAnimate)
43+
self.EnabledChanged:Fire(isEnabled, doNotAnimate)
44+
end))
3945
end
4046

4147
function EnabledMixin:IsEnabled()
42-
return self._enabled
48+
return self._enabledState.Value
4349
end
4450

4551
function EnabledMixin:Enable(doNotAnimate)
@@ -50,17 +56,14 @@ function EnabledMixin:Disable(doNotAnimate)
5056
self:SetEnabled(false, doNotAnimate)
5157
end
5258

59+
function EnabledMixin:ObserveIsEnabled()
60+
return self._enabledState:Observe()
61+
end
62+
5363
function EnabledMixin:SetEnabled(isEnabled, doNotAnimate)
5464
assert(type(isEnabled) == "boolean", "Bad isEnabled")
5565

56-
if self._enabled ~= isEnabled then
57-
self._enabled = isEnabled
58-
59-
local enabledMaid = Maid.new()
60-
self._enabledMaidReference._enabledMaid = enabledMaid
61-
62-
self.EnabledChanged:Fire(isEnabled, doNotAnimate, enabledMaid)
63-
end
66+
self._enabledState:SetValue(isEnabled, doNotAnimate)
6467
end
6568

6669
return EnabledMixin

src/funnels/src/Server/Steps/FunnelStepLogger.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ function FunnelStepLogger:LogStep(stepNumber, stepName)
5555
self._stepTracker:LogStep(stepNumber, stepName)
5656
end
5757

58+
function FunnelStepLogger:IsStepComplete(stepNumber)
59+
return self._stepTracker:IsStepComplete(stepNumber)
60+
end
61+
5862
function FunnelStepLogger:_sendStep(stepNumber, stepName)
5963
AnalyticsService:LogFunnelStepEvent(self._player, self._funnelName, self._funnelSessionId, stepNumber, stepName)
6064

0 commit comments

Comments
 (0)