1313 Type definitions for strict-typing.
1414]=]
1515
16+ local SignalModule = require (script .Parent :WaitForChild ("Signal" ))
1617local Dispatcher = require (script .Parent :WaitForChild ("FastCastVMs" ))
1718
19+ type Signal <T ...> = SignalModule .Signal <T ...>
20+
1821--[=[
19- @type vaildcast ActiveCastData | ActiveBlockcastData
22+ @type vaildcast ActiveCastData | ActiveBlockcastData | ActiveSpherecastData
2023 @within TypeDefinitions
2124
2225 A type that can be either an ActiveCast or an ActiveBlockcast.
@@ -48,52 +51,52 @@ export type FastCastEvents = {
4851}
4952
5053--[=[
51- @type CanPierceFunction (vaildcast, RaycastResult, Vector3, Instance?) -> boolean
54+ @type CanPierceFunction (cast: vaildcast, result: RaycastResult, segmentVelocity: Vector3, cosmeticBulletObject: Instance?) -> boolean
5255 @within TypeDefinitions
5356
5457 Callback used to decide whether a cast should pierce and continue after a hit.
5558]=]
5659export type CanPierceFunction = (
57- vaildcast ,
58- RaycastResult ,
60+ cast : vaildcast ,
61+ result : RaycastResult ,
5962 segmentVelocity : Vector3 ,
6063 cosmeticBulletObject : Instance ?
6164) -> boolean
6265
6366--[=[
64- @type OnHitFunction (vaildcast, RaycastResult, Vector3, Instance?) -> ()
67+ @type OnHitFunction (cast: vaildcast, result: RaycastResult, segmentVelocity: Vector3, cosmeticBulletObject: Instance?) -> ()
6568 @within TypeDefinitions
6669
6770 Callback fired when the cast hits something (non-piercing).
6871]=]
6972export type OnHitFunction = (
70- vaildcast ,
71- RaycastResult ,
73+ cast : vaildcast ,
74+ result : RaycastResult ,
7275 segmentVelocity : Vector3 ,
7376 cosmeticBulletObject : Instance ?
7477) -> ()
7578
7679--[=[
77- @type OnPierceFunction (vaildcast, RaycastResult, Vector3, Instance?) -> ()
80+ @type OnPierceFunction (cast: vaildcast, result: RaycastResult, segmentVelocity: Vector3, cosmeticBulletObject: Instance?) -> ()
7881 @within TypeDefinitions
7982
8083 Callback fired when the cast pierces something.
8184]=]
8285export type OnPiercedFunction = (
83- vaildcast ,
84- RaycastResult ,
86+ cast : vaildcast ,
87+ result : RaycastResult ,
8588 segmentVelocity : Vector3 ,
8689 cosmeticBulletObject : Instance ?
8790) -> ()
8891
8992--[=[
90- @type OnLengthChangedFunction (vaildcast, Vector3, Vector3, number, Vector3, Instance?) -> ()
93+ @type OnLengthChangedFunction (cast: vaildcast, lastPoint: Vector3, rayDir: Vector3, rayDisplacement: number, segmentVelocity: Vector3, cosmeticBulletObject: Instance?) -> ()
9194 @within TypeDefinitions
9295
9396 Callback fired when the cast's length changes as it updates.
9497]=]
9598export type OnLengthChangedFunction = (
96- vaildcast ,
99+ cast : vaildcast ,
97100 lastPoint : Vector3 ,
98101 rayDir : Vector3 ,
99102 rayDisplacement : number ,
@@ -102,24 +105,24 @@ export type OnLengthChangedFunction = (
102105) -> ()
103106
104107--[=[
105- @type OnCastTerminatingFunction (vaildcast) -> ()
108+ @type OnCastTerminatingFunction (cast: vaildcast) -> ()
106109 @within TypeDefinitions
107110
108111 Callback fired right as an ActiveCast is terminating.
109112]=]
110- export type OnCastTerminatingFunction = (vaildcast ) -> ()
113+ export type OnCastTerminatingFunction = (cast : vaildcast ) -> ()
111114
112115--[=[
113- @type OnCastFireFunction (vaildcast, Vector3, Vector3, Vector3, FastCastBehavior) -> ()
116+ @type OnCastFireFunction (cast: vaildcast, lastPoint: Vector3, rayDir: Vector3, segmentVelocity: Vector3, behavior: FastCastBehavior) -> ()
114117 @within TypeDefinitions
115118
116119 Callback fired when a cast is initially fired.
117120]=]
118121export type OnCastFireFunction = (
119- vaildcast ,
120- Origin : Vector3 ,
121- Direction : Vector3 ,
122- Velocity : Vector3 ,
122+ cast : vaildcast ,
123+ lastPoint : Vector3 ,
124+ rayDir : Vector3 ,
125+ segmentVelocity : Vector3 ,
123126 behavior : FastCastBehavior
124127) -> ()
125128
@@ -140,19 +143,19 @@ export type ObjectCache = {
140143}
141144
142145--[=[
143- @type Caster { WorldRoot: WorldRoot, LengthChanged: RBXScriptSignal, Hit: RBXScriptSignal, Pierced: RBXScriptSignal, CastTerminating: RBXScriptSignal, CastFire: RBXScriptSignal, Dispatcher: Dispatcher.Dispatcher, ObjectCache: ObjectCache, AlreadyInit: boolean, ObjectCacheEnabled: boolean, BulkMoveEnabled: boolean, FastCastEventsModule: FastCastEventsModule, Init: ( self: Caster, numWorkers: number, newParent: Folder, newName: string, ContainerParent: Folder, VMContainerName: string, VMname: string, useBulkMoveTo: boolean, FastCastEventsModule: ModuleScript, useObjectCache: boolean, Template: BasePart | Model, CacheSize: number, CacheHolder: Instance ) -> (), RaycastFire: ( Caster, Origin: Vector3, Direction: Vector3, Velocity: Vector3 | number, Behavior: FastCastBehavior ) -> (), BlockcastFire: ( self: Caster, Origin: Vector3, Size: Vector3, Direction: Vector3, Velocity: Vector3 | number, Behavior: FastCastBehavio ) -> (), SetBulkMoveEnabled: (self: Caster, enabled: boolean) -> (), SetObjectCacheEnabled: ( self: Caster, enabled: boolean, Template: BasePart | Model, CacheSize: number, CacheHolder: Instance ) -> (), SetFastCastEventsModule: (self: Caster, moduleScript: ModuleScript) -> (), AddVelocityCast: (Caster, cast: vaildcast, velocity: Vector3) -> (), SetVelocityCast: (Caster, cast: vaildcast, velocity: Vector3) -> (), GetVelocityCast: (Caster, cast: vaildcast, velocity: Vector3) -> Vector3, AddAccelerationCast: (Caster, cast: vaildcast) -> Vector3, GetAccelerationCast: (Caster, cast: vaildcast) -> Vector3, SetAccelerationCast: (Caster, cast: vaildcast, acceleration: Vector3) -> (), GetPositionCast: (Caster, cast: vaildcast, Position: Vector3) -> Vector3, AddPositionCast: (Caster, cast: vaildcast, Position: Vector3) -> (), ResumeCast: (Caster, cast: vaildcast) -> (), PauseCast: (Caster, cast: vaildcast) -> (), SyncChangesToCast: (Caster, cast: vaildcast) -> (), TerminateCast: (Caster, cast: vaildcast) -> (), Destroy: (Caster) -> () }
146+ @type Caster { WorldRoot: WorldRoot, LengthChanged: Signal<OnLengthChangedFunction> | OnLengthChangedFunction, Hit: Signal<OnHitFunction> | OnHitFunction, Pierced: Signal<OnPiercedFunction> | OnPiercedFunction, CastTerminating: Signal<OnCastTerminatingFunction> | OnCastTerminatingFunction, CastFire: Signal<OnCastFireFunction> | OnCastFireFunction, Dispatcher: Dispatcher.Dispatcher, ObjectCache: ObjectCache, AlreadyInit: boolean, ObjectCacheEnabled: boolean, BulkMoveEnabled: boolean, FastCastEventsModule: FastCastEventsModule, Init: ( self: Caster, numWorkers: number, newParent: Folder, newName: string, ContainerParent: Folder, VMContainerName: string, VMname: string, useBulkMoveTo: boolean, FastCastEventsModule: ModuleScript, useObjectCache: boolean, Template: BasePart | Model, CacheSize: number, CacheHolder: Instance ) -> (), RaycastFire: ( Caster, Origin: Vector3, Direction: Vector3, Velocity: Vector3 | number, Behavior: FastCastBehavior ) -> (), BlockcastFire: ( self: Caster, Origin: Vector3, Size: Vector3, Direction: Vector3, Velocity: Vector3 | number, Behavior: FastCastBehavio ) -> (), SetBulkMoveEnabled: (self: Caster, enabled: boolean) -> (), SetObjectCacheEnabled: ( self: Caster, enabled: boolean, Template: BasePart | Model, CacheSize: number, CacheHolder: Instance ) -> (), SetFastCastEventsModule: (self: Caster, moduleScript: ModuleScript) -> (), AddVelocityCast: (Caster, cast: vaildcast, velocity: Vector3) -> (), SetVelocityCast: (Caster, cast: vaildcast, velocity: Vector3) -> (), GetVelocityCast: (Caster, cast: vaildcast, velocity: Vector3) -> Vector3, AddAccelerationCast: (Caster, cast: vaildcast) -> Vector3, GetAccelerationCast: (Caster, cast: vaildcast) -> Vector3, SetAccelerationCast: (Caster, cast: vaildcast, acceleration: Vector3) -> (), GetPositionCast: (Caster, cast: vaildcast, Position: Vector3) -> Vector3, AddPositionCast: (Caster, cast: vaildcast, Position: Vector3) -> (), ResumeCast: (Caster, cast: vaildcast) -> (), PauseCast: (Caster, cast: vaildcast) -> (), SyncChangesToCast: (Caster, cast: vaildcast) -> (), TerminateCast: (Caster, cast: vaildcast) -> (), Destroy: (Caster) -> () }
144147
145148 @within TypeDefinitions
146149
147150 Represents a Caster.
148151]=]
149152export type Caster = {
150153 WorldRoot : WorldRoot ,
151- LengthChanged : RBXScriptSignal ,
152- Hit : RBXScriptSignal ,
153- Pierced : RBXScriptSignal ,
154- CastTerminating : RBXScriptSignal ,
155- CastFire : RBXScriptSignal ,
154+ LengthChanged : Signal < OnLengthChangedFunction > | OnLengthChangedFunction ,
155+ Hit : Signal < OnHitFunction > | OnHitFunction ,
156+ Pierced : Signal < OnPiercedFunction > | OnPiercedFunction ,
157+ CastTerminating : Signal < OnCastTerminatingFunction > | OnCastTerminatingFunction ,
158+ CastFire : Signal < OnCastFireFunction > | OnCastFireFunction ,
156159 Dispatcher : Dispatcher .Dispatcher ,
157160 ObjectCache : ObjectCache ,
158161
@@ -215,14 +218,14 @@ export type Caster = {
215218
216219 AddVelocityCast : (Caster , cast : vaildcast , velocity : Vector3 ) -> (),
217220 SetVelocityCast : (Caster , cast : vaildcast , velocity : Vector3 ) -> (),
218- GetVelocityCast : (Caster , cast : vaildcast , velocity : Vector3 ) -> Vector3 ,
221+ GetVelocityCast : (Caster , cast : vaildcast ) -> Vector3 ,
219222
220- AddAccelerationCast : (Caster , cast : vaildcast ) -> Vector3 ,
221- GetAccelerationCast : (Caster , cast : vaildcast ) -> Vector3 ,
223+ AddAccelerationCast : (Caster , cast : vaildcast , acceleration : Vector3 ) -> Vector3 ,
222224 SetAccelerationCast : (Caster , cast : vaildcast , acceleration : Vector3 ) -> (),
225+ GetAccelerationCast : (Caster , cast : vaildcast ) -> Vector3 ,
223226
224- GetPositionCast : (Caster , cast : vaildcast , Position : Vector3 ) -> Vector3 ,
225227 AddPositionCast : (Caster , cast : vaildcast , Position : Vector3 ) -> (),
228+ GetPositionCast : (Caster , cast : vaildcast ) -> Vector3 ,
226229
227230 ResumeCast : (Caster , cast : vaildcast ) -> (),
228231 PauseCast : (Caster , cast : vaildcast ) -> (),
@@ -391,12 +394,12 @@ export type BlockCastRayInfo = {
391394 WorldRoot : WorldRoot ,
392395 MaxDistance : number ,
393396 CosmeticBulletObject : Instance ? ,
394- --CanPierceModule: CanPierceModule?,
397+
395398 Size : Vector3 ,
396399}
397400
398401--[=[
399- @type BlockCastRayInfo { Parameters: RaycastParams, WorldRoot: WorldRoot, MaxDistance: number, CosmeticBulletObject: Instance?, CanPierceModule: ModuleScript?, Size: Vector3 }
402+ @type SpherecastRayInfo { Parameters: RaycastParams, WorldRoot: WorldRoot, MaxDistance: number, CosmeticBulletObject: Instance?, CanPierceModule: ModuleScript?, Radius: number }
400403 @within TypeDefinitions
401404
402405 Ray info for sphere-cast variants.
@@ -406,7 +409,7 @@ export type SphereCastRayInfo = {
406409 WorldRoot : WorldRoot ,
407410 MaxDistance : number ,
408411 CosmeticBulletObject : Instance ? ,
409- --CanPierceModule: CanPierceModule?,
412+
410413 Radius : number ,
411414}
412415
0 commit comments