1- -- !nonstrict
1+ -- !strict
22--[=[
33 @class AdorneeModelBoundingBox
44]=]
@@ -19,13 +19,26 @@ local AdorneeModelBoundingBox = setmetatable({}, BaseObject)
1919AdorneeModelBoundingBox .ClassName = " AdorneeModelBoundingBox"
2020AdorneeModelBoundingBox .__index = AdorneeModelBoundingBox
2121
22- function AdorneeModelBoundingBox .new (model : Model )
23- local self = setmetatable (BaseObject .new (model ), AdorneeModelBoundingBox )
22+ export type AdorneeModelBoundingBox =
23+ typeof (setmetatable (
24+ {} :: {
25+ _obj : Model ,
26+ _bbCFrame : ValueObject .ValueObject < CFrame ?> ,
27+ _bbSize : ValueObject .ValueObject < Vector3 ?> ,
28+ _isDirty : ValueObject .ValueObject <boolean> ,
29+ _unanchoredPartsSet : ObservableSet .ObservableSet <BasePart> ,
30+ },
31+ {} :: typeof ({ __index = AdorneeModelBoundingBox })
32+ ))
33+ & BaseObject .BaseObject
34+
35+ function AdorneeModelBoundingBox .new (model : Model ): AdorneeModelBoundingBox
36+ local self : AdorneeModelBoundingBox = setmetatable (BaseObject .new (model ) :: any , AdorneeModelBoundingBox )
2437
2538 self ._bbCFrame = self ._maid :Add (ValueObject .new (nil ))
26- self ._bbSize = self ._maid :Add (ValueObject .new (Vector3 . zero , " Vector3 " ))
39+ self ._bbSize = self ._maid :Add (ValueObject .new (nil ))
2740 self ._isDirty = self ._maid :Add (ValueObject .new (false , " boolean" ))
28- self ._unanchoredPartsSet = self ._maid :Add (ObservableSet .new (false ))
41+ self ._unanchoredPartsSet = self ._maid :Add (ObservableSet .new ())
2942
3043 self ._maid :GiveTask (RxInstanceUtils .observeDescendantsBrio (self ._obj , function (part )
3144 return part :IsA (" BasePart" )
@@ -36,7 +49,7 @@ function AdorneeModelBoundingBox.new(model: Model)
3649
3750 local maid , part = brio :ToMaidAndValue ()
3851
39- self :_handlePart (maid , part )
52+ self :_handlePart (maid , part :: BasePart )
4053 end ))
4154
4255 self ._maid :GiveTask (self :_observeBasisChanged ():Subscribe (function ()
@@ -48,8 +61,8 @@ function AdorneeModelBoundingBox.new(model: Model)
4861 :Pipe ({
4962 Rx .where (function (value )
5063 return value
51- end ),
52- Rx .throttleDefer (),
64+ end ) :: any ,
65+ Rx .throttleDefer () :: any ,
5366 })
5467 :Subscribe (function ()
5568 debug .profilebegin (" modelboundingbox" )
@@ -66,8 +79,8 @@ function AdorneeModelBoundingBox.new(model: Model)
6679 :Pipe ({
6780 Rx .map (function (value )
6881 return value > 0
69- end ),
70- Rx .distinct (),
82+ end ) :: any ,
83+ Rx .distinct () :: any ,
7184 })
7285 :Subscribe (function (hasUnanchoredParts )
7386 if hasUnanchoredParts then
@@ -80,7 +93,7 @@ function AdorneeModelBoundingBox.new(model: Model)
8093 return self
8194end
8295
83- function AdorneeModelBoundingBox : _setupUnanchoredLoop ()
96+ function AdorneeModelBoundingBox . _setupUnanchoredLoop (self : AdorneeModelBoundingBox ): Maid . Maid
8497 local maid = Maid .new ()
8598
8699 -- Paranoid
@@ -91,7 +104,7 @@ function AdorneeModelBoundingBox:_setupUnanchoredLoop()
91104 return maid
92105end
93106
94- function AdorneeModelBoundingBox : _handlePart (topMaid , part : BasePart )
107+ function AdorneeModelBoundingBox . _handlePart (self : AdorneeModelBoundingBox , topMaid , part : BasePart )
95108 topMaid :GiveTask (RxInstanceUtils .observePropertyBrio (part , " Anchored" , function (isAnchored )
96109 return not isAnchored
97110 end ):Subscribe (function (brio )
@@ -112,23 +125,23 @@ function AdorneeModelBoundingBox:_handlePart(topMaid, part: BasePart)
112125 self ._isDirty .Value = true
113126end
114127
115- function AdorneeModelBoundingBox : _observeBasisChanged ()
128+ function AdorneeModelBoundingBox . _observeBasisChanged (self : AdorneeModelBoundingBox ): Observable . Observable < () >
116129 return RxInstanceUtils .observeProperty (self ._obj , " PrimaryPart" ):Pipe ({
117130 Rx .switchMap (function (primaryPart )
118131 if primaryPart then
119132 return RxInstanceUtils .observeProperty (primaryPart , " PivotOffset" )
120133 else
121134 return RxInstanceUtils .observeProperty (self ._obj , " WorldPivot" )
122135 end
123- end ),
124- })
136+ end ) :: any ,
137+ }) :: any
125138end
126139
127- function AdorneeModelBoundingBox : ObserveCFrame (): Observable .Observable <CFrame>
140+ function AdorneeModelBoundingBox . ObserveCFrame (self : AdorneeModelBoundingBox ): Observable .Observable < CFrame ? >
128141 return self ._bbCFrame :Observe ()
129142end
130143
131- function AdorneeModelBoundingBox : ObserveSize (): Observable .Observable <Vector3>
144+ function AdorneeModelBoundingBox . ObserveSize (self : AdorneeModelBoundingBox ): Observable .Observable < Vector3 ? >
132145 return self ._bbSize :Observe ()
133146end
134147
0 commit comments