@trioforge/crucible 0.2.0 → 0.3.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.
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "../../out/maths/spline/init.luau",
3
+ "types": "../../out/maths/spline/index.d.ts"
4
+ }
@@ -34,6 +34,8 @@ local endInterval = TS.import(script, script.Parent, "reactive", "ownership").en
34
34
  local _declarations = TS.import(script, script.Parent, "sync", "declarations")
35
35
  local rollbackDeclarations = _declarations.rollbackDeclarations
36
36
  local sealDeclarations = _declarations.sealDeclarations
37
+ local Logging = TS.import(script, script.Parent.Parent, "logging").Logging
38
+ local log = Logging:getLogger("Crucible.Boot")
37
39
  --* @internal
38
40
  local BOOT_CLASSES = { Subsystem, CrucibleBehaviour }
39
41
  --* @internal
@@ -542,6 +544,9 @@ local function boot(side, options)
542
544
  ignite(robloxPort(), side, options)
543
545
  end)
544
546
  if ok then
547
+ log:debug("Crucible booted on the {side}", {
548
+ side = side.name,
549
+ })
545
550
  return nil
546
551
  end
547
552
  side.network:close()
@@ -52,15 +52,7 @@ local function claim(owner, field, target, callback)
52
52
  if frozen then
53
53
  error(`{label}: receive() after the network commit`)
54
54
  end
55
- local _result = session
56
- if _result ~= nil then
57
- _result = _result.side
58
- end
59
- local _condition = _result
60
- if _condition == nil then
61
- _condition = error(`{label}: receive() before the network session opened`)
62
- end
63
- local side = _condition
55
+ local side = (session or error(`{label}: receive() before the network session opened`)).side()
64
56
  local _callback = callback
65
57
  if not (type(_callback) == "function") then
66
58
  error(`{label}: receive() needs a callback`)
@@ -66,7 +66,9 @@ do
66
66
  function ClientSession:open()
67
67
  self.stage = 1
68
68
  openClaims({
69
- side = "client",
69
+ side = function()
70
+ return "client"
71
+ end,
70
72
  retired = function() end,
71
73
  })
72
74
  local where = `ReplicatedStorage.{L.REMOTE_NAME}`
@@ -56,7 +56,9 @@ do
56
56
  function ServerSession:open()
57
57
  self.stage = 1
58
58
  openClaims({
59
- side = "server",
59
+ side = function()
60
+ return "server"
61
+ end,
60
62
  retired = function(claim)
61
63
  return self:retired(claim)
62
64
  end,
@@ -0,0 +1,35 @@
1
+ export type CurveVector = Vector2 | Vector3;
2
+ export interface CurveFrame<V extends CurveVector> {
3
+ readonly point: V;
4
+ readonly tangent: V;
5
+ readonly normal: V;
6
+ }
7
+ export interface CurveProjection<V extends CurveVector> {
8
+ readonly parameter: number;
9
+ readonly point: V;
10
+ readonly distance: number;
11
+ readonly separation: number;
12
+ }
13
+ export interface CurveOptions<V extends CurveVector> {
14
+ readonly closed?: boolean;
15
+ readonly initialNormal?: V extends Vector3 ? Vector3 : never;
16
+ }
17
+ export interface CatmullRomOptions<V extends CurveVector> extends CurveOptions<V> {
18
+ readonly alpha?: number;
19
+ }
20
+ export interface Curve<V extends CurveVector> {
21
+ readonly pointAt: (parameter: number) => V;
22
+ readonly tangentAt: (parameter: number) => V | undefined;
23
+ readonly frameAt: (parameter: number) => CurveFrame<V> | undefined;
24
+ readonly length: () => number;
25
+ readonly parameterAtDistance: (distance: number) => number;
26
+ readonly distanceAtParameter: (parameter: number) => number;
27
+ readonly closest: (query: V) => CurveProjection<V>;
28
+ readonly prepare: () => void;
29
+ }
30
+ export declare function catmullRom(points: readonly Vector2[], options?: CatmullRomOptions<Vector2>): Curve<Vector2>;
31
+ export declare function catmullRom(points: readonly Vector3[], options?: CatmullRomOptions<Vector3>): Curve<Vector3>;
32
+ export declare function cubicBezier(points: readonly Vector2[], options?: CurveOptions<Vector2>): Curve<Vector2>;
33
+ export declare function cubicBezier(points: readonly Vector3[], options?: CurveOptions<Vector3>): Curve<Vector3>;
34
+ export declare function uniformBSpline(points: readonly Vector2[], options?: CurveOptions<Vector2>): Curve<Vector2>;
35
+ export declare function uniformBSpline(points: readonly Vector3[], options?: CurveOptions<Vector3>): Curve<Vector3>;