@rbxts/replecs 0.1.0-alpha8 → 0.1.0-alpha9

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.
@@ -9,7 +9,8 @@ type SubscribeCallback = (generator: MaskGenerator) -> ()
9
9
  export type MaskGenerator = {
10
10
  compute_callback: ComputeCallback?,
11
11
  subscribed: SubscribeCallback?,
12
- bitmask: utils.Bitmask,
12
+ result: utils.Bitmask,
13
+ bitmask: utils.Bitmask?,
13
14
 
14
15
  tracking: { GeneratorInternal },
15
16
  tracked_by: { GeneratorInternal },
@@ -21,6 +22,10 @@ export type MaskGenerator = {
21
22
  destroy: (self: MaskGenerator) -> (),
22
23
  }
23
24
 
25
+ export type MaskGeneratorWithBitmask = MaskGenerator & {
26
+ bitmask: utils.Bitmask,
27
+ }
28
+
24
29
  local mask_generator = {}
25
30
  mask_generator.__index = mask_generator
26
31
 
@@ -59,7 +64,7 @@ end
59
64
  function mask_generator.compute(generator: GeneratorInternal)
60
65
  if generator.compute_callback then
61
66
  local result = generator.compute_callback(generator :: GeneratorInternal)
62
- generator.bitmask = result
67
+ generator.result = result
63
68
  end
64
69
  if generator.subscribed then
65
70
  generator.subscribed(generator :: GeneratorInternal)
@@ -79,7 +84,8 @@ end
79
84
  function create(bitmask: utils.Bitmask?, compute: ComputeCallback?): MaskGenerator
80
85
  local self = {} :: MaskGenerator
81
86
 
82
- self.bitmask = bitmask or (compute :: ComputeCallback)(self)
87
+ self.bitmask = bitmask
88
+ self.result = if compute then compute(self) else bitmask :: utils.Bitmask
83
89
  self.compute_callback = compute
84
90
  self.subscribed = nil
85
91
  self.tracking = {}
@@ -90,8 +96,8 @@ function create(bitmask: utils.Bitmask?, compute: ComputeCallback?): MaskGenerat
90
96
  end
91
97
 
92
98
  function follow(leading: MaskGenerator): MaskGenerator
93
- local created = create(nil, function()
94
- return leading.bitmask
99
+ local created = create(leading.result, function()
100
+ return leading.result
95
101
  end)
96
102
  created:track(leading)
97
103
  return created