@dcl/ecs 7.0.0-3532389879.commit-c89c80c → 7.0.0-3568547351.commit-5420eac

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.
Files changed (212) hide show
  1. package/README.md +2 -3
  2. package/dist/components/extended/Animator.d.ts +49 -0
  3. package/dist/components/extended/Animator.js +58 -0
  4. package/dist/components/extended/Material.d.ts +42 -0
  5. package/dist/components/extended/Material.js +42 -0
  6. package/dist/components/extended/MeshCollider.d.ts +42 -0
  7. package/dist/components/extended/MeshCollider.js +41 -0
  8. package/dist/components/extended/MeshRenderer.d.ts +40 -0
  9. package/dist/components/extended/MeshRenderer.js +27 -0
  10. package/dist/components/generated/Animator.gen.d.ts +8 -0
  11. package/dist/components/generated/Animator.gen.js +19 -0
  12. package/dist/components/generated/AudioSource.gen.d.ts +8 -0
  13. package/dist/components/generated/AudioSource.gen.js +19 -0
  14. package/dist/components/generated/AudioStream.gen.d.ts +8 -0
  15. package/dist/components/generated/AudioStream.gen.js +19 -0
  16. package/dist/components/generated/AvatarAttach.gen.d.ts +8 -0
  17. package/dist/components/generated/AvatarAttach.gen.js +19 -0
  18. package/dist/components/generated/AvatarModifierArea.gen.d.ts +8 -0
  19. package/dist/components/generated/AvatarModifierArea.gen.js +19 -0
  20. package/dist/components/generated/AvatarShape.gen.d.ts +8 -0
  21. package/dist/components/generated/AvatarShape.gen.js +19 -0
  22. package/dist/components/generated/Billboard.gen.d.ts +8 -0
  23. package/dist/components/generated/Billboard.gen.js +19 -0
  24. package/dist/components/generated/CameraMode.gen.d.ts +8 -0
  25. package/dist/components/generated/CameraMode.gen.js +19 -0
  26. package/dist/components/generated/CameraModeArea.gen.d.ts +8 -0
  27. package/dist/components/generated/CameraModeArea.gen.js +19 -0
  28. package/dist/components/generated/GltfContainer.gen.d.ts +8 -0
  29. package/dist/components/generated/GltfContainer.gen.js +19 -0
  30. package/dist/components/generated/Material.gen.d.ts +8 -0
  31. package/dist/components/generated/Material.gen.js +19 -0
  32. package/dist/components/generated/MeshCollider.gen.d.ts +8 -0
  33. package/dist/components/generated/MeshCollider.gen.js +19 -0
  34. package/dist/components/generated/MeshRenderer.gen.d.ts +8 -0
  35. package/dist/components/generated/MeshRenderer.gen.js +19 -0
  36. package/dist/components/generated/NftShape.gen.d.ts +8 -0
  37. package/dist/components/generated/NftShape.gen.js +19 -0
  38. package/dist/components/generated/PointerEventsResult.gen.d.ts +8 -0
  39. package/dist/components/generated/PointerEventsResult.gen.js +19 -0
  40. package/dist/components/generated/PointerHoverFeedback.gen.d.ts +8 -0
  41. package/dist/components/generated/PointerHoverFeedback.gen.js +19 -0
  42. package/dist/components/generated/PointerLock.gen.d.ts +8 -0
  43. package/dist/components/generated/PointerLock.gen.js +19 -0
  44. package/dist/components/generated/Raycast.gen.d.ts +8 -0
  45. package/dist/components/generated/Raycast.gen.js +19 -0
  46. package/dist/components/generated/RaycastResult.gen.d.ts +8 -0
  47. package/dist/components/generated/RaycastResult.gen.js +19 -0
  48. package/dist/components/generated/TextShape.gen.d.ts +8 -0
  49. package/dist/components/generated/TextShape.gen.js +19 -0
  50. package/dist/components/generated/UiBackground.gen.d.ts +8 -0
  51. package/dist/components/generated/UiBackground.gen.js +19 -0
  52. package/dist/components/generated/UiText.gen.d.ts +8 -0
  53. package/dist/components/generated/UiText.gen.js +19 -0
  54. package/dist/components/generated/UiTransform.gen.d.ts +8 -0
  55. package/dist/components/generated/UiTransform.gen.js +19 -0
  56. package/dist/components/generated/VisibilityComponent.gen.d.ts +8 -0
  57. package/dist/components/generated/VisibilityComponent.gen.js +19 -0
  58. package/dist/components/generated/global.gen.d.ts +42 -0
  59. package/dist/components/generated/global.gen.js +23 -0
  60. package/dist/components/generated/ids.gen.d.ts +28 -0
  61. package/dist/components/generated/ids.gen.js +29 -0
  62. package/dist/components/generated/index.gen.d.ts +99 -0
  63. package/dist/components/generated/index.gen.js +96 -0
  64. package/dist/components/generated/pb/decentraland/common/colors.gen.d.ts +26 -0
  65. package/dist/components/generated/pb/decentraland/common/colors.gen.js +95 -0
  66. package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +56 -0
  67. package/dist/components/generated/pb/decentraland/common/texture.gen.js +139 -0
  68. package/dist/components/generated/pb/decentraland/common/vectors.gen.d.ts +36 -0
  69. package/dist/components/generated/pb/decentraland/common/vectors.gen.js +126 -0
  70. package/dist/components/generated/pb/decentraland/sdk/components/animator.gen.d.ts +30 -0
  71. package/dist/components/generated/pb/decentraland/sdk/components/animator.gen.js +109 -0
  72. package/dist/components/generated/pb/decentraland/sdk/components/audio_source.gen.d.ts +17 -0
  73. package/dist/components/generated/pb/decentraland/sdk/components/audio_source.gen.js +58 -0
  74. package/dist/components/generated/pb/decentraland/sdk/components/audio_stream.gen.d.ts +14 -0
  75. package/dist/components/generated/pb/decentraland/sdk/components/audio_stream.gen.js +46 -0
  76. package/dist/components/generated/pb/decentraland/sdk/components/avatar_attach.gen.d.ts +18 -0
  77. package/dist/components/generated/pb/decentraland/sdk/components/avatar_attach.gen.js +47 -0
  78. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +18 -0
  79. package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +62 -0
  80. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +38 -0
  81. package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +129 -0
  82. package/dist/components/generated/pb/decentraland/sdk/components/billboard.gen.d.ts +18 -0
  83. package/dist/components/generated/pb/decentraland/sdk/components/billboard.gen.js +45 -0
  84. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode.gen.d.ts +12 -0
  85. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode.gen.js +33 -0
  86. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +14 -0
  87. package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +40 -0
  88. package/dist/components/generated/pb/decentraland/sdk/components/common/camera_type.gen.d.ts +4 -0
  89. package/dist/components/generated/pb/decentraland/sdk/components/common/camera_type.gen.js +7 -0
  90. package/dist/components/generated/pb/decentraland/sdk/components/common/id.gen.d.ts +1 -0
  91. package/dist/components/generated/pb/decentraland/sdk/components/common/id.gen.js +3 -0
  92. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +16 -0
  93. package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +19 -0
  94. package/dist/components/generated/pb/decentraland/sdk/components/common/texts.gen.d.ts +15 -0
  95. package/dist/components/generated/pb/decentraland/sdk/components/common/texts.gen.js +19 -0
  96. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container.gen.d.ts +12 -0
  97. package/dist/components/generated/pb/decentraland/sdk/components/gltf_container.gen.js +34 -0
  98. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +82 -0
  99. package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +231 -0
  100. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +70 -0
  101. package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +176 -0
  102. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +65 -0
  103. package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +196 -0
  104. package/dist/components/generated/pb/decentraland/sdk/components/nft_shape.gen.d.ts +41 -0
  105. package/dist/components/generated/pb/decentraland/sdk/components/nft_shape.gen.js +73 -0
  106. package/dist/components/generated/pb/decentraland/sdk/components/pointer_events_result.gen.d.ts +34 -0
  107. package/dist/components/generated/pb/decentraland/sdk/components/pointer_events_result.gen.js +89 -0
  108. package/dist/components/generated/pb/decentraland/sdk/components/pointer_hover_feedback.gen.d.ts +46 -0
  109. package/dist/components/generated/pb/decentraland/sdk/components/pointer_hover_feedback.gen.js +126 -0
  110. package/dist/components/generated/pb/decentraland/sdk/components/pointer_lock.gen.d.ts +11 -0
  111. package/dist/components/generated/pb/decentraland/sdk/components/pointer_lock.gen.js +34 -0
  112. package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +19 -0
  113. package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.js +58 -0
  114. package/dist/components/generated/pb/decentraland/sdk/components/raycast_result.gen.d.ts +32 -0
  115. package/dist/components/generated/pb/decentraland/sdk/components/raycast_result.gen.js +150 -0
  116. package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +41 -0
  117. package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +176 -0
  118. package/dist/components/generated/pb/decentraland/sdk/components/ui_background.gen.d.ts +13 -0
  119. package/dist/components/generated/pb/decentraland/sdk/components/ui_background.gen.js +35 -0
  120. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +21 -0
  121. package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +59 -0
  122. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +149 -0
  123. package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +454 -0
  124. package/dist/components/generated/pb/decentraland/sdk/components/visibility_component.gen.d.ts +12 -0
  125. package/dist/components/generated/pb/decentraland/sdk/components/visibility_component.gen.js +34 -0
  126. package/dist/components/generated/pb/google/protobuf/descriptor.gen.d.ts +378 -0
  127. package/dist/components/generated/pb/google/protobuf/descriptor.gen.js +1476 -0
  128. package/dist/components/generated/types.gen.d.ts +6 -0
  129. package/dist/components/generated/types.gen.js +8 -0
  130. package/dist/components/index.d.ts +15 -0
  131. package/dist/components/index.js +16 -0
  132. package/dist/components/legacy/Transform.d.ts +27 -0
  133. package/dist/components/legacy/Transform.js +55 -0
  134. package/dist/components/types.d.ts +4 -0
  135. package/dist/components/types.js +1 -0
  136. package/dist/engine/component.d.ts +72 -0
  137. package/dist/engine/component.js +130 -0
  138. package/dist/engine/entity-utils.d.ts +18 -0
  139. package/dist/engine/entity-utils.js +34 -0
  140. package/dist/engine/entity.d.ts +17 -0
  141. package/dist/engine/entity.js +55 -0
  142. package/dist/engine/index.d.ts +12 -0
  143. package/dist/engine/index.js +172 -0
  144. package/dist/engine/input.d.ts +36 -0
  145. package/dist/engine/input.js +156 -0
  146. package/dist/engine/readonly.d.ts +29 -0
  147. package/dist/engine/readonly.js +6 -0
  148. package/dist/engine/systems.d.ts +16 -0
  149. package/dist/engine/systems.js +44 -0
  150. package/dist/engine/types.d.ts +148 -0
  151. package/dist/engine/types.js +1 -0
  152. package/dist/index.d.ts +16 -4679
  153. package/dist/index.js +24 -15202
  154. package/dist/runtime/initialization/index.d.ts +21 -0
  155. package/dist/runtime/initialization/index.js +20 -0
  156. package/dist/runtime/invariant.d.ts +1 -0
  157. package/dist/runtime/invariant.js +8 -0
  158. package/dist/runtime/types.d.ts +22 -0
  159. package/dist/runtime/types.js +19 -0
  160. package/dist/schemas/Array.d.ts +5 -0
  161. package/dist/schemas/Array.js +24 -0
  162. package/dist/schemas/ISchema.d.ts +9 -0
  163. package/dist/schemas/ISchema.js +1 -0
  164. package/dist/schemas/Map.d.ts +19 -0
  165. package/dist/schemas/Map.js +31 -0
  166. package/dist/schemas/Optional.d.ts +5 -0
  167. package/dist/schemas/Optional.js +25 -0
  168. package/dist/schemas/basic/Boolean.d.ts +5 -0
  169. package/dist/schemas/basic/Boolean.js +14 -0
  170. package/dist/schemas/basic/Enum.d.ts +5 -0
  171. package/dist/schemas/basic/Enum.js +16 -0
  172. package/dist/schemas/basic/Float.d.ts +9 -0
  173. package/dist/schemas/basic/Float.js +28 -0
  174. package/dist/schemas/basic/Integer.d.ts +17 -0
  175. package/dist/schemas/basic/Integer.js +56 -0
  176. package/dist/schemas/basic/String.d.ts +9 -0
  177. package/dist/schemas/basic/String.js +18 -0
  178. package/dist/schemas/custom/Color3.d.ts +13 -0
  179. package/dist/schemas/custom/Color3.js +20 -0
  180. package/dist/schemas/custom/Color4.d.ts +14 -0
  181. package/dist/schemas/custom/Color4.js +22 -0
  182. package/dist/schemas/custom/Entity.d.ts +6 -0
  183. package/dist/schemas/custom/Entity.js +14 -0
  184. package/dist/schemas/custom/Quaternion.d.ts +14 -0
  185. package/dist/schemas/custom/Quaternion.js +22 -0
  186. package/dist/schemas/custom/Vector3.d.ts +13 -0
  187. package/dist/schemas/custom/Vector3.js +20 -0
  188. package/dist/schemas/index.d.ts +42 -0
  189. package/dist/schemas/index.js +37 -0
  190. package/dist/schemas/typing.d.ts +15 -0
  191. package/dist/schemas/typing.js +1 -0
  192. package/dist/serialization/ByteBuffer/index.d.ts +140 -0
  193. package/dist/serialization/ByteBuffer/index.js +244 -0
  194. package/dist/serialization/crdt/componentOperation.d.ts +31 -0
  195. package/dist/serialization/crdt/componentOperation.js +47 -0
  196. package/dist/serialization/wireMessage.d.ts +39 -0
  197. package/dist/serialization/wireMessage.js +52 -0
  198. package/dist/systems/async-task.d.ts +5 -0
  199. package/dist/systems/async-task.js +28 -0
  200. package/dist/systems/crdt/index.d.ts +8 -0
  201. package/dist/systems/crdt/index.js +169 -0
  202. package/dist/systems/crdt/types.d.ts +18 -0
  203. package/dist/systems/crdt/types.js +1 -0
  204. package/dist/systems/crdt/utils.d.ts +9 -0
  205. package/dist/systems/crdt/utils.js +11 -0
  206. package/dist/systems/cyclicParentingChecker.d.ts +17 -0
  207. package/dist/systems/cyclicParentingChecker.js +33 -0
  208. package/dist/systems/events.d.ts +56 -0
  209. package/dist/systems/events.js +145 -0
  210. package/package.json +9 -14
  211. package/dist/index.min.js +0 -1
  212. package/dist/index.min.js.map +0 -1
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @alpha * This file initialization is an alpha one. This is based on the old-ecs
3
+ * init and it'll be changing.
4
+ */
5
+ import { IEngine } from '../../engine';
6
+ import { Task } from '../../systems/async-task';
7
+ export declare const engine: IEngine;
8
+ export declare const inputSystem: import("../../engine").IInputSystem;
9
+ export declare const pointerEventsSystem: {
10
+ removeOnClick(entity: unknown): void;
11
+ removeOnPointerDown(entity: unknown): void;
12
+ removeOnPointerUp(entity: unknown): void;
13
+ onClick(entity: unknown, cb: import("../../systems/events").EventSystemCallback, opts?: import("../../systems/events").EventSystemOptions | undefined): void;
14
+ onPointerDown(entity: unknown, cb: import("../../systems/events").EventSystemCallback, opts?: import("../../systems/events").EventSystemOptions | undefined): void;
15
+ onPointerUp(entity: unknown, cb: import("../../systems/events").EventSystemCallback, opts?: import("../../systems/events").EventSystemOptions | undefined): void;
16
+ };
17
+ /**
18
+ * @public
19
+ */
20
+ export declare const executeTask: (task: Task<unknown>) => void;
21
+ export type { Task };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @alpha * This file initialization is an alpha one. This is based on the old-ecs
3
+ * init and it'll be changing.
4
+ */
5
+ import { Engine } from '../../engine';
6
+ import { createTaskSystem } from '../../systems/async-task';
7
+ import { createPointerEventSystem } from '../../systems/events';
8
+ import { createInputSystem } from './../../engine/input';
9
+ /*#__PURE__*/
10
+ export const engine = Engine();
11
+ // INPUT Manager
12
+ /*#__PURE__*/
13
+ export const inputSystem = createInputSystem(engine);
14
+ /*#__PURE__*/
15
+ export const pointerEventsSystem = createPointerEventSystem(engine, inputSystem);
16
+ /**
17
+ * @public
18
+ */
19
+ /*#__PURE__*/
20
+ export const executeTask = createTaskSystem(engine).executeTask;
@@ -0,0 +1 @@
1
+ export declare function checkNotThenable<T>(t: T, error: string): T;
@@ -0,0 +1,8 @@
1
+ export function checkNotThenable(t, error) {
2
+ if (globalThis.DEBUG) {
3
+ if (t && typeof t === 'object' && typeof t.then === 'function') {
4
+ throw new Error(error);
5
+ }
6
+ }
7
+ return t;
8
+ }
@@ -0,0 +1,22 @@
1
+ export type { SystemFn } from '../engine/systems';
2
+ export type { Result, Spec } from '../schemas/Map';
3
+ export type { TransportMessage, ReceiveMessage, Transport } from '../systems/crdt/types';
4
+ export type { WireMessage } from '../serialization/wireMessage';
5
+ export { TransformType, TransformComponent } from '../components/legacy/Transform';
6
+ export * from '../engine/component';
7
+ export * from '../schemas/typing';
8
+ export { BillboardMode } from '../components/generated/pb/decentraland/sdk/components/billboard.gen';
9
+ export { AvatarModifierType } from '../components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen';
10
+ export { CameraType } from '../components/generated/pb/decentraland/sdk/components/common/camera_type.gen';
11
+ export { Font, TextAlignMode } from '../components/generated/pb/decentraland/sdk/components/common/texts.gen';
12
+ export { RaycastQueryType } from '../components/generated/pb/decentraland/sdk/components/raycast.gen';
13
+ export * from '../components/generated/pb/decentraland/sdk/components/ui_transform.gen';
14
+ export * from '../components/generated/pb/decentraland/sdk/components/avatar_attach.gen';
15
+ export * from '../components/generated/pb/decentraland/sdk/components/material.gen';
16
+ export * from '../components/generated/pb/decentraland/sdk/components/pointer_hover_feedback.gen';
17
+ export * from '../components/generated/pb/decentraland/sdk/components/pointer_events_result.gen';
18
+ export * from '../components/generated/pb/decentraland/common/texture.gen';
19
+ export * from '../components/generated/pb/decentraland/sdk/components/raycast_result.gen';
20
+ export * from '../components/generated/pb/decentraland/sdk/components/animator.gen';
21
+ export * from '../components/generated/pb/decentraland/sdk/components/mesh_collider.gen';
22
+ export * from '../components/generated/pb/decentraland/sdk/components/mesh_renderer.gen';
@@ -0,0 +1,19 @@
1
+ export * from '../engine/component';
2
+ export * from '../schemas/typing';
3
+ // ColliderLayer is not used in the .pb definition because the field value is a number
4
+ // and it can have multiple values of this enum. It needs to be exposed here.
5
+ export { BillboardMode } from '../components/generated/pb/decentraland/sdk/components/billboard.gen';
6
+ export { AvatarModifierType } from '../components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen';
7
+ export { CameraType } from '../components/generated/pb/decentraland/sdk/components/common/camera_type.gen';
8
+ export { Font, TextAlignMode } from '../components/generated/pb/decentraland/sdk/components/common/texts.gen';
9
+ export { RaycastQueryType } from '../components/generated/pb/decentraland/sdk/components/raycast.gen';
10
+ export * from '../components/generated/pb/decentraland/sdk/components/ui_transform.gen';
11
+ export * from '../components/generated/pb/decentraland/sdk/components/avatar_attach.gen';
12
+ export * from '../components/generated/pb/decentraland/sdk/components/material.gen';
13
+ export * from '../components/generated/pb/decentraland/sdk/components/pointer_hover_feedback.gen';
14
+ export * from '../components/generated/pb/decentraland/sdk/components/pointer_events_result.gen';
15
+ export * from '../components/generated/pb/decentraland/common/texture.gen';
16
+ export * from '../components/generated/pb/decentraland/sdk/components/raycast_result.gen';
17
+ export * from '../components/generated/pb/decentraland/sdk/components/animator.gen';
18
+ export * from '../components/generated/pb/decentraland/sdk/components/mesh_collider.gen';
19
+ export * from '../components/generated/pb/decentraland/sdk/components/mesh_renderer.gen';
@@ -0,0 +1,5 @@
1
+ import { ISchema } from './ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare function IArray<T>(type: ISchema<T>): ISchema<Array<T>>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export function IArray(type) {
5
+ return {
6
+ serialize(value, builder) {
7
+ builder.writeUint32(value.length);
8
+ for (const item of value) {
9
+ type.serialize(item, builder);
10
+ }
11
+ },
12
+ deserialize(reader) {
13
+ const newArray = [];
14
+ const length = reader.readUint32();
15
+ for (let index = 0; index < length; index++) {
16
+ newArray.push(type.deserialize(reader));
17
+ }
18
+ return newArray;
19
+ },
20
+ create() {
21
+ return [];
22
+ }
23
+ };
24
+ }
@@ -0,0 +1,9 @@
1
+ import { ByteBuffer } from '../serialization/ByteBuffer';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare type ISchema<T = any> = {
6
+ serialize(value: T, builder: ByteBuffer): void;
7
+ deserialize(reader: ByteBuffer): T;
8
+ create(): T;
9
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ import { ISchema } from './ISchema';
2
+ import { ToOptional } from './typing';
3
+ /**
4
+ * @public
5
+ */
6
+ export interface Spec {
7
+ [key: string]: ISchema;
8
+ }
9
+ /**
10
+ * @public
11
+ */
12
+ export declare type Result<T extends Spec> = ToOptional<{
13
+ [K in keyof T]: T[K] extends ISchema ? ReturnType<T[K]['deserialize']> : T[K] extends Spec ? Result<T[K]> : never;
14
+ }>;
15
+ export declare type MapSchemaType<T extends Spec> = ISchema<Result<T>>;
16
+ /**
17
+ * @public
18
+ */
19
+ export declare function IMap<T extends Spec>(spec: T): ISchema<Result<T>>;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export function IMap(spec) {
5
+ return {
6
+ serialize(value, builder) {
7
+ for (const key in spec) {
8
+ // TODO: as any
9
+ spec[key].serialize(value[key], builder);
10
+ }
11
+ },
12
+ deserialize(reader) {
13
+ const newValue = {};
14
+ for (const key in spec) {
15
+ // TODO: as any
16
+ ;
17
+ newValue[key] = spec[key].deserialize(reader);
18
+ }
19
+ return newValue;
20
+ },
21
+ create() {
22
+ const newValue = {};
23
+ for (const key in spec) {
24
+ // TODO: as any
25
+ ;
26
+ newValue[key] = spec[key].create();
27
+ }
28
+ return newValue;
29
+ }
30
+ };
31
+ }
@@ -0,0 +1,5 @@
1
+ import { ISchema } from './ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare function IOptional<T>(spec: ISchema<T>): ISchema<T | undefined>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export function IOptional(spec) {
5
+ return {
6
+ serialize(value, builder) {
7
+ if (value) {
8
+ builder.writeInt8(1);
9
+ spec.serialize(value, builder);
10
+ }
11
+ else {
12
+ builder.writeInt8(0);
13
+ }
14
+ },
15
+ deserialize(reader) {
16
+ const exists = reader.readInt8();
17
+ if (exists) {
18
+ return spec.deserialize(reader);
19
+ }
20
+ },
21
+ create() {
22
+ return undefined;
23
+ }
24
+ };
25
+ }
@@ -0,0 +1,5 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare const Bool: ISchema<boolean>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const Bool = {
5
+ serialize(value, builder) {
6
+ builder.writeInt8(value ? 1 : 0);
7
+ },
8
+ deserialize(reader) {
9
+ return reader.readInt8() === 1;
10
+ },
11
+ create() {
12
+ return false;
13
+ }
14
+ };
@@ -0,0 +1,5 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare function IEnum<T>(type: ISchema<any>): ISchema<T>;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export function IEnum(type) {
5
+ return {
6
+ serialize(value, builder) {
7
+ type.serialize(value, builder);
8
+ },
9
+ deserialize(reader) {
10
+ return type.deserialize(reader);
11
+ },
12
+ create() {
13
+ return type.create();
14
+ }
15
+ };
16
+ }
@@ -0,0 +1,9 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare const Float32: ISchema<number>;
6
+ /**
7
+ * @public
8
+ */
9
+ export declare const Float64: ISchema<number>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const Float32 = {
5
+ serialize(value, builder) {
6
+ builder.writeFloat32(value);
7
+ },
8
+ deserialize(reader) {
9
+ return reader.readFloat32();
10
+ },
11
+ create() {
12
+ return 0.0;
13
+ }
14
+ };
15
+ /**
16
+ * @public
17
+ */
18
+ export const Float64 = {
19
+ serialize(value, builder) {
20
+ builder.writeFloat64(value);
21
+ },
22
+ deserialize(reader) {
23
+ return reader.readFloat64();
24
+ },
25
+ create() {
26
+ return 0.0;
27
+ }
28
+ };
@@ -0,0 +1,17 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare const Int64: ISchema<number>;
6
+ /**
7
+ * @public
8
+ */
9
+ export declare const Int32: ISchema<number>;
10
+ /**
11
+ * @public
12
+ */
13
+ export declare const Int16: ISchema<number>;
14
+ /**
15
+ * @public
16
+ */
17
+ export declare const Int8: ISchema<number>;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const Int64 = {
5
+ serialize(value, builder) {
6
+ builder.writeInt64(BigInt(value));
7
+ },
8
+ deserialize(reader) {
9
+ return Number(reader.readInt64());
10
+ },
11
+ create() {
12
+ return 0;
13
+ }
14
+ };
15
+ /**
16
+ * @public
17
+ */
18
+ export const Int32 = {
19
+ serialize(value, builder) {
20
+ builder.writeInt32(value);
21
+ },
22
+ deserialize(reader) {
23
+ return reader.readInt32();
24
+ },
25
+ create() {
26
+ return 0;
27
+ }
28
+ };
29
+ /**
30
+ * @public
31
+ */
32
+ export const Int16 = {
33
+ serialize(value, builder) {
34
+ builder.writeInt16(value);
35
+ },
36
+ deserialize(reader) {
37
+ return reader.readInt16();
38
+ },
39
+ create() {
40
+ return 0;
41
+ }
42
+ };
43
+ /**
44
+ * @public
45
+ */
46
+ export const Int8 = {
47
+ serialize(value, builder) {
48
+ builder.writeInt8(value);
49
+ },
50
+ deserialize(reader) {
51
+ return reader.readInt8();
52
+ },
53
+ create() {
54
+ return 0;
55
+ }
56
+ };
@@ -0,0 +1,9 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare const FlatString: ISchema<string>;
6
+ /**
7
+ * @public
8
+ */
9
+ export declare const EcsString: ISchema<string>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const FlatString = {
5
+ serialize(value, builder) {
6
+ builder.writeBuffer(new TextEncoder().encode(value));
7
+ },
8
+ deserialize(reader) {
9
+ return new TextDecoder().decode(reader.readBuffer());
10
+ },
11
+ create() {
12
+ return '';
13
+ }
14
+ };
15
+ /**
16
+ * @public
17
+ */
18
+ export const EcsString = FlatString;
@@ -0,0 +1,13 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare type Color3Type = {
6
+ r: number;
7
+ g: number;
8
+ b: number;
9
+ };
10
+ /**
11
+ * @public
12
+ */
13
+ export declare const Color3Schema: ISchema<Color3Type>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const Color3Schema = {
5
+ serialize(value, builder) {
6
+ builder.writeFloat32(value.r);
7
+ builder.writeFloat32(value.g);
8
+ builder.writeFloat32(value.b);
9
+ },
10
+ deserialize(reader) {
11
+ return {
12
+ r: reader.readFloat32(),
13
+ g: reader.readFloat32(),
14
+ b: reader.readFloat32()
15
+ };
16
+ },
17
+ create() {
18
+ return { r: 0, g: 0, b: 0 };
19
+ }
20
+ };
@@ -0,0 +1,14 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare type Color4Type = {
6
+ r: number;
7
+ g: number;
8
+ b: number;
9
+ a: number;
10
+ };
11
+ /**
12
+ * @public
13
+ */
14
+ export declare const Color4Schema: ISchema<Color4Type>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const Color4Schema = {
5
+ serialize(value, builder) {
6
+ builder.writeFloat32(value.r);
7
+ builder.writeFloat32(value.g);
8
+ builder.writeFloat32(value.b);
9
+ builder.writeFloat32(value.a);
10
+ },
11
+ deserialize(reader) {
12
+ return {
13
+ r: reader.readFloat32(),
14
+ g: reader.readFloat32(),
15
+ b: reader.readFloat32(),
16
+ a: reader.readFloat32()
17
+ };
18
+ },
19
+ create() {
20
+ return { r: 0, g: 0, b: 0, a: 0 };
21
+ }
22
+ };
@@ -0,0 +1,6 @@
1
+ import { Entity } from '../../engine/entity';
2
+ import { ISchema } from '../ISchema';
3
+ /**
4
+ * @public
5
+ */
6
+ export declare const EntitySchema: ISchema<Entity>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const EntitySchema = {
5
+ serialize(value, builder) {
6
+ builder.writeInt32(value);
7
+ },
8
+ deserialize(reader) {
9
+ return reader.readInt32();
10
+ },
11
+ create() {
12
+ return 0;
13
+ }
14
+ };
@@ -0,0 +1,14 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare type QuaternionType = {
6
+ x: number;
7
+ y: number;
8
+ z: number;
9
+ w: number;
10
+ };
11
+ /**
12
+ * @public
13
+ */
14
+ export declare const QuaternionSchema: ISchema<QuaternionType>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const QuaternionSchema = {
5
+ serialize(value, builder) {
6
+ builder.writeFloat32(value.x);
7
+ builder.writeFloat32(value.y);
8
+ builder.writeFloat32(value.z);
9
+ builder.writeFloat32(value.w);
10
+ },
11
+ deserialize(reader) {
12
+ return {
13
+ x: reader.readFloat32(),
14
+ y: reader.readFloat32(),
15
+ z: reader.readFloat32(),
16
+ w: reader.readFloat32()
17
+ };
18
+ },
19
+ create() {
20
+ return { x: 0, y: 0, z: 0, w: 0 };
21
+ }
22
+ };
@@ -0,0 +1,13 @@
1
+ import { ISchema } from '../ISchema';
2
+ /**
3
+ * @public
4
+ */
5
+ export declare type Vector3Type = {
6
+ x: number;
7
+ y: number;
8
+ z: number;
9
+ };
10
+ /**
11
+ * @public
12
+ */
13
+ export declare const Vector3Schema: ISchema<Vector3Type>;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export const Vector3Schema = {
5
+ serialize(value, builder) {
6
+ builder.writeFloat32(value.x);
7
+ builder.writeFloat32(value.y);
8
+ builder.writeFloat32(value.z);
9
+ },
10
+ deserialize(reader) {
11
+ return {
12
+ x: reader.readFloat32(),
13
+ y: reader.readFloat32(),
14
+ z: reader.readFloat32()
15
+ };
16
+ },
17
+ create() {
18
+ return { x: 0, y: 0, z: 0 };
19
+ }
20
+ };
@@ -0,0 +1,42 @@
1
+ import { Entity } from '../engine';
2
+ import { IArray } from './Array';
3
+ import { IEnum } from './basic/Enum';
4
+ import { Color3Type } from './custom/Color3';
5
+ import { Color4Type } from './custom/Color4';
6
+ import { QuaternionType } from './custom/Quaternion';
7
+ import { Vector3Type } from './custom/Vector3';
8
+ import { ISchema } from './ISchema';
9
+ import { IMap } from './Map';
10
+ import { IOptional } from './Optional';
11
+ export type { IOptional } from './Optional';
12
+ export type { IMap } from './Map';
13
+ export type { IArray } from './Array';
14
+ export type { IEnum } from './basic/Enum';
15
+ export type { Vector3Type } from './custom/Vector3';
16
+ export type { QuaternionType } from './custom/Quaternion';
17
+ export type { Color3Type } from './custom/Color3';
18
+ export type { Color4Type } from './custom/Color4';
19
+ /**
20
+ * @public
21
+ */
22
+ export declare namespace Schemas {
23
+ type SchemaType = ISchema;
24
+ const Boolean: ISchema<boolean>;
25
+ const String: ISchema<string>;
26
+ const Float: ISchema<number>;
27
+ const Double: ISchema<number>;
28
+ const Byte: ISchema<number>;
29
+ const Short: ISchema<number>;
30
+ const Int: ISchema<number>;
31
+ const Int64: ISchema<number>;
32
+ const Number: ISchema<number>;
33
+ const Vector3: ISchema<Vector3Type>;
34
+ const Quaternion: ISchema<QuaternionType>;
35
+ const Color3: ISchema<Color3Type>;
36
+ const Color4: ISchema<Color4Type>;
37
+ const Entity: ISchema<Entity>;
38
+ const Enum: typeof IEnum;
39
+ const Array: typeof IArray;
40
+ const Map: typeof IMap;
41
+ const Optional: typeof IOptional;
42
+ }