@hellpig/anarchy-engine 21.2.6 → 21.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +5 -6
  2. package/dist/anarchy-engine/src/Abstract/Constants/FactoryType.d.ts +1 -0
  3. package/dist/anarchy-engine/src/Abstract/Constants/RegistryType.d.ts +1 -0
  4. package/dist/anarchy-engine/src/Abstract/Constants/WrapperType.d.ts +2 -1
  5. package/dist/anarchy-engine/src/Animations/Loader/AnimationsLoader.d.ts +2 -1
  6. package/dist/anarchy-engine/src/Animations/Services/AnimationsService.d.ts +2 -1
  7. package/dist/anarchy-engine/src/Audio/Loader/AudioLoader.d.ts +2 -1
  8. package/dist/anarchy-engine/src/Audio/Services/AudioService.d.ts +2 -1
  9. package/dist/anarchy-engine/src/EnvMap/Loader/EnvMapLoader.d.ts +2 -1
  10. package/dist/anarchy-engine/src/EnvMap/Services/EnvMapService.d.ts +2 -1
  11. package/dist/anarchy-engine/src/LoadingManager/Constants/DefaultSpaceLoadingManagerName.d.ts +1 -0
  12. package/dist/anarchy-engine/src/LoadingManager/Constants/LoadingEventType.d.ts +7 -0
  13. package/dist/anarchy-engine/src/LoadingManager/Constants/index.d.ts +2 -0
  14. package/dist/anarchy-engine/src/LoadingManager/Factories/LoadingManagerFactory.d.ts +2 -0
  15. package/dist/anarchy-engine/src/LoadingManager/Factories/index.d.ts +1 -0
  16. package/dist/anarchy-engine/src/LoadingManager/Models/TLoadingEvent.d.ts +8 -0
  17. package/dist/anarchy-engine/src/LoadingManager/Models/TLoadingManagerFactory.d.ts +4 -0
  18. package/dist/anarchy-engine/src/LoadingManager/Models/TLoadingManagerParams.d.ts +6 -0
  19. package/dist/anarchy-engine/src/LoadingManager/Models/TLoadingManagerRegistry.d.ts +3 -0
  20. package/dist/anarchy-engine/src/LoadingManager/Models/TLoadingManagerService.d.ts +12 -0
  21. package/dist/anarchy-engine/src/LoadingManager/Models/TLoadingManagerWrapper.d.ts +11 -0
  22. package/dist/anarchy-engine/src/LoadingManager/Models/index.d.ts +6 -0
  23. package/dist/anarchy-engine/src/LoadingManager/Registries/LoadingManagerRegistry.d.ts +2 -0
  24. package/dist/anarchy-engine/src/LoadingManager/Registries/index.d.ts +1 -0
  25. package/dist/anarchy-engine/src/LoadingManager/Services/LoadingManagerService.d.ts +2 -0
  26. package/dist/anarchy-engine/src/LoadingManager/Services/index.d.ts +1 -0
  27. package/dist/anarchy-engine/src/LoadingManager/Wrappers/LoadingManagerWrapper.d.ts +2 -0
  28. package/dist/anarchy-engine/src/LoadingManager/Wrappers/index.d.ts +1 -0
  29. package/dist/anarchy-engine/src/LoadingManager/index.d.ts +6 -0
  30. package/dist/anarchy-engine/src/Models3d/Loaders/Loader3dCore.d.ts +2 -1
  31. package/dist/anarchy-engine/src/Models3d/Loaders/Models3dLoader.d.ts +2 -1
  32. package/dist/anarchy-engine/src/Models3d/Services/Models3dService.d.ts +2 -1
  33. package/dist/anarchy-engine/src/Space/Models/TSpaceServices.d.ts +2 -0
  34. package/dist/anarchy-engine/src/Texture/Loaders/TexturesLoader.d.ts +2 -1
  35. package/dist/anarchy-engine/src/Texture/Services/TextureService.d.ts +2 -1
  36. package/dist/anarchy-engine/src/index.d.ts +1 -0
  37. package/dist/anarchy-engine.es.js +1 -1
  38. package/dist/anarchy-engine.es.js.map +1 -1
  39. package/dist/assets/{Loop.worker-Bcr7sS8J.js → Loop.worker-D1bMWlsN.js} +2 -2
  40. package/dist/assets/Loop.worker-D1bMWlsN.js.map +1 -0
  41. package/legal/NOTICE.md +6 -6
  42. package/legal/THIRD_PARTY_LICENSES.md +6 -6
  43. package/package.json +8 -8
  44. package/dist/assets/Loop.worker-Bcr7sS8J.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -42,14 +42,13 @@
42
42
  - 21.0.0 Texts now support translations (i18n)
43
43
  - 21.1.0 Security: better CSP: no need for "unsafe-eval" (get rid of AJV)
44
44
  - 21.2.0 Reworked keyboard service (no external dependencies)
45
+ - 21.3.0 Added LoadingManager
45
46
 
46
47
  Roadmap:
47
48
 
48
- - 22.0.x Create a npm package
49
- - 23.x.x Load managers domain for resource loaders (audio, animations, envMaps, materials, models3d, textures, etc.)
50
- - 24.x.x Postprocessing
51
- - 25.0.x Shaders
52
- - 26.0.x Modules: distinct engine/rapier from engine/core. Bonus: Make possible to load engine/rapier in async way
49
+ - 22.x.x Postprocessing
50
+ - 23.0.x Shaders
51
+ - 24.0.x Modules: distinct engine/rapier from engine/core. Bonus: Make possible to load engine/rapier in async way
53
52
 
54
53
  Thoughts:
55
54
 
@@ -70,7 +69,7 @@ Thoughts:
70
69
 
71
70
  Known bugs:
72
71
 
73
- - 3d texts doesn't work in Safari (might be scale/LOD issue)
72
+ - 3d texts doesn't work in Safari (might be scale/LOD issue) and in some windows-builds (via CI)
74
73
 
75
74
  Won't be implemented soon:
76
75
 
@@ -11,6 +11,7 @@ export declare enum FactoryType {
11
11
  IntersectionsWatcher = "intersections_watcher_factory",
12
12
  KeyWatcher = "key_watcher_factory",
13
13
  Light = "light_factory",
14
+ LoadingManager = "loading_manager_factory",
14
15
  Loop = "loop_factory",
15
16
  Material = "material_factory",
16
17
  Models3d = "models_3d_factory",
@@ -17,6 +17,7 @@ export declare enum RegistryType {
17
17
  IntersectionsWatcher = "intersections_watcher_registry",
18
18
  KeyWatcher = "key_watcher_registry",
19
19
  Light = "light_registry",
20
+ LoadingManager = "loading_manager_registry",
20
21
  Loop = "loop_registry",
21
22
  Material = "material_registry",
22
23
  Model3d = "model_3d_registry",
@@ -7,9 +7,10 @@ export declare enum WrapperType {
7
7
  DirectionalLight = "directional_light_wrapper",
8
8
  EnvMap = "env_map_wrapper",
9
9
  Euler = "euler_wrapper",
10
- Fsm = "fsm_wrapper",
11
10
  Fog = "fog_wrapper",
11
+ Fsm = "fsm_wrapper",
12
12
  HemisphereLight = "hemisphere_light_wrapper",
13
+ LoadingManager = "loading_manager_wrapper",
13
14
  Material = "material_wrapper",
14
15
  Particles = "particles_wrapper",
15
16
  Physics = "physics_wrapper",
@@ -1,3 +1,4 @@
1
1
  import { TAnimationsLoader, TAnimationsMetaInfoRegistry, TAnimationsResourceAsyncRegistry } from '../Models';
2
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
2
3
  import { TDracoLoaderSettings } from '../../ThreeLib';
3
- export declare function AnimationsLoader(registry: TAnimationsResourceAsyncRegistry, metaInfoRegistry: TAnimationsMetaInfoRegistry, settings?: TDracoLoaderSettings): TAnimationsLoader;
4
+ export declare function AnimationsLoader(registry: TAnimationsResourceAsyncRegistry, metaInfoRegistry: TAnimationsMetaInfoRegistry, loadingManagerWrapper: TLoadingManagerWrapper, settings?: TDracoLoaderSettings): TAnimationsLoader;
@@ -1,3 +1,4 @@
1
1
  import { TAnimationsMetaInfoRegistry, TAnimationsResourceAsyncRegistry, TAnimationsService } from '../Models';
2
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
2
3
  import { TSpaceLoops, TSpaceSettings } from '../../Space';
3
- export declare function AnimationsService(resourcesRegistry: TAnimationsResourceAsyncRegistry, metaInfoRegistry: TAnimationsMetaInfoRegistry, { renderLoop }: TSpaceLoops, settings: TSpaceSettings): TAnimationsService;
4
+ export declare function AnimationsService(resourcesRegistry: TAnimationsResourceAsyncRegistry, metaInfoRegistry: TAnimationsMetaInfoRegistry, { renderLoop }: TSpaceLoops, loadingManagerWrapper: TLoadingManagerWrapper, settings: TSpaceSettings): TAnimationsService;
@@ -1,2 +1,3 @@
1
1
  import { TAudioLoader, TAudioMetaInfoRegistry, TAudioResourceAsyncRegistry } from '../Models';
2
- export declare function AudioLoader(registry: TAudioResourceAsyncRegistry, metaInfoRegistry: TAudioMetaInfoRegistry): TAudioLoader;
2
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
3
+ export declare function AudioLoader(registry: TAudioResourceAsyncRegistry, metaInfoRegistry: TAudioMetaInfoRegistry, loadingManagerWrapper: TLoadingManagerWrapper): TAudioLoader;
@@ -1,3 +1,4 @@
1
1
  import { TAudioFactory, TAudioListenersRegistry, TAudioMetaInfoRegistry, TAudioRegistry, TAudioResourceAsyncRegistry, TAudioService, TAudioServiceDependencies } from '../Models';
2
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
2
3
  import { TSpaceLoops } from '../../Space';
3
- export declare function AudioService(factory: TAudioFactory, registry: TAudioRegistry, audioResourceAsyncRegistry: TAudioResourceAsyncRegistry, audioListenersRegistry: TAudioListenersRegistry, metaInfoRegistry: TAudioMetaInfoRegistry, dependencies: TAudioServiceDependencies, { audioLoop }: TSpaceLoops): TAudioService;
4
+ export declare function AudioService(factory: TAudioFactory, registry: TAudioRegistry, audioResourceAsyncRegistry: TAudioResourceAsyncRegistry, audioListenersRegistry: TAudioListenersRegistry, metaInfoRegistry: TAudioMetaInfoRegistry, dependencies: TAudioServiceDependencies, { audioLoop }: TSpaceLoops, loadingManagerWrapper: TLoadingManagerWrapper): TAudioService;
@@ -1,2 +1,3 @@
1
1
  import { TEnvMapLoader, TEnvMapMetaInfoRegistry, TEnvMapTextureAsyncRegistry } from '../Models';
2
- export declare function EnvMapLoader(registry: TEnvMapTextureAsyncRegistry, metaInfoRegistry: TEnvMapMetaInfoRegistry): TEnvMapLoader;
2
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
3
+ export declare function EnvMapLoader(registry: TEnvMapTextureAsyncRegistry, metaInfoRegistry: TEnvMapMetaInfoRegistry, loadingManagerWrapper: TLoadingManagerWrapper): TEnvMapLoader;
@@ -1,3 +1,4 @@
1
1
  import { TEnvMapFactory, TEnvMapMetaInfoRegistry, TEnvMapRegistry, TEnvMapService, TEnvMapTextureAsyncRegistry } from '../Models';
2
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
2
3
  import { TSceneWrapper } from '../../Scene';
3
- export declare function EnvMapService(factory: TEnvMapFactory, registry: TEnvMapRegistry, resourcesRegistry: TEnvMapTextureAsyncRegistry, metaInfoRegistry: TEnvMapMetaInfoRegistry, sceneW: TSceneWrapper): TEnvMapService;
4
+ export declare function EnvMapService(factory: TEnvMapFactory, registry: TEnvMapRegistry, resourcesRegistry: TEnvMapTextureAsyncRegistry, metaInfoRegistry: TEnvMapMetaInfoRegistry, sceneW: TSceneWrapper, loadingManagerWrapper: TLoadingManagerWrapper): TEnvMapService;
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_SPACE_LOADING_MANAGER_NAME: "DefaultSpaceLoadingManager";
@@ -0,0 +1,7 @@
1
+ export declare enum LoadingEventType {
2
+ NOT_STARTED = "not started",
3
+ START = "start",
4
+ ERROR = "error",
5
+ PROGRESS = "progress",
6
+ DONE = "done"
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './DefaultSpaceLoadingManagerName';
2
+ export * from './LoadingEventType';
@@ -0,0 +1,2 @@
1
+ import { TLoadingManagerFactory } from '../Models';
2
+ export declare function LoadingManagerFactory(): TLoadingManagerFactory;
@@ -0,0 +1 @@
1
+ export * from './LoadingManagerFactory';
@@ -0,0 +1,8 @@
1
+ import { LoadingEventType } from '../Constants';
2
+ export type TLoadingEvent = Readonly<{
3
+ type: LoadingEventType;
4
+ url?: string;
5
+ loaded: number;
6
+ total: number;
7
+ progress?: number;
8
+ }>;
@@ -0,0 +1,4 @@
1
+ import { TReactiveFactory } from '../../Abstract';
2
+ import { TLoadingManagerParams } from './TLoadingManagerParams';
3
+ import { TLoadingManagerWrapper } from './TLoadingManagerWrapper';
4
+ export type TLoadingManagerFactory = TReactiveFactory<TLoadingManagerWrapper, TLoadingManagerParams>;
@@ -0,0 +1,6 @@
1
+ import { TWithName, TWithTags } from '../../Mixins';
2
+ export type TLoadingManagerParams = Readonly<{
3
+ onLoad?: () => void;
4
+ onProgress?: (url: string, loaded: number, total: number) => void;
5
+ onError?: (url: string) => void;
6
+ }> & TWithName & TWithTags;
@@ -0,0 +1,3 @@
1
+ import { TAbstractEntityRegistry } from '../../Abstract/Models';
2
+ import { TLoadingManagerWrapper } from './TLoadingManagerWrapper';
3
+ export type TLoadingManagerRegistry = TAbstractEntityRegistry<TLoadingManagerWrapper>;
@@ -0,0 +1,12 @@
1
+ import { TAbstractService } from '../../Abstract';
2
+ import { TWithCreateService, TWithFactoryService, TWithRegistryService } from '../../Mixins';
3
+ import { TLoadingManagerFactory } from './TLoadingManagerFactory';
4
+ import { TLoadingManagerParams } from './TLoadingManagerParams';
5
+ import { TLoadingManagerRegistry } from './TLoadingManagerRegistry';
6
+ import { TLoadingManagerWrapper } from './TLoadingManagerWrapper';
7
+ export type TLoadingManagerServiceWithCreate = TWithCreateService<TLoadingManagerWrapper, TLoadingManagerParams>;
8
+ export type TLoadingManagerServiceWithFactory = TWithFactoryService<TLoadingManagerWrapper, TLoadingManagerParams, undefined, TLoadingManagerFactory>;
9
+ export type TLoadingManagerServiceWithRegistry = TWithRegistryService<TLoadingManagerRegistry>;
10
+ export type TLoadingManagerService = TAbstractService & TLoadingManagerServiceWithCreate & TLoadingManagerServiceWithFactory & TLoadingManagerServiceWithRegistry & Readonly<{
11
+ getDefault: () => TLoadingManagerWrapper;
12
+ }>;
@@ -0,0 +1,11 @@
1
+ import { TAbstractWrapper } from '../../Abstract';
2
+ import { TLoadingEvent } from '..';
3
+ import { TDestroyable } from '../../Mixins';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { LoadingManager } from 'three';
6
+ export type TLoadingManagerWrapper = TAbstractWrapper<LoadingManager> & Readonly<{
7
+ progress$: BehaviorSubject<TLoadingEvent>;
8
+ ready$: BehaviorSubject<boolean>;
9
+ waitFontsLoading: (label?: string) => Promise<void>;
10
+ waitLoading: <T>(label: string, loadingTask: () => Promise<T>) => Promise<T>;
11
+ }> & TDestroyable;
@@ -0,0 +1,6 @@
1
+ export type * from './TLoadingEvent';
2
+ export type * from './TLoadingManagerFactory';
3
+ export type * from './TLoadingManagerParams';
4
+ export type * from './TLoadingManagerRegistry';
5
+ export type * from './TLoadingManagerService';
6
+ export type * from './TLoadingManagerWrapper';
@@ -0,0 +1,2 @@
1
+ import { TLoadingManagerRegistry } from '../Models';
2
+ export declare function LoadingManagerRegistry(): TLoadingManagerRegistry;
@@ -0,0 +1 @@
1
+ export * from './LoadingManagerRegistry';
@@ -0,0 +1,2 @@
1
+ import { TLoadingManagerFactory, TLoadingManagerRegistry, TLoadingManagerService } from '../Models';
2
+ export declare function LoadingManagerService(factory: TLoadingManagerFactory, registry: TLoadingManagerRegistry): TLoadingManagerService;
@@ -0,0 +1 @@
1
+ export * from './LoadingManagerService';
@@ -0,0 +1,2 @@
1
+ import { TLoadingManagerParams, TLoadingManagerWrapper } from '../Models';
2
+ export declare function LoadingManagerWrapper(params: TLoadingManagerParams): TLoadingManagerWrapper;
@@ -0,0 +1 @@
1
+ export * from './LoadingManagerWrapper';
@@ -0,0 +1,6 @@
1
+ export * from './Constants';
2
+ export * from './Factories';
3
+ export type * from './Models';
4
+ export * from './Registries';
5
+ export * from './Services';
6
+ export * from './Wrappers';
@@ -1,3 +1,4 @@
1
1
  import { LoaderType, TAbstractLoader, TAbstractMetaInfoRegistry, TAbstractResourceAsyncRegistry, TAbstractResourceConfig } from '../../Abstract';
2
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
2
3
  import { TDracoLoaderSettings } from '../../ThreeLib';
3
- export declare function Loader3dCore<T, RC extends TAbstractResourceConfig>(registry: TAbstractResourceAsyncRegistry<T>, metaInfoRegistry: TAbstractMetaInfoRegistry<RC>, type: LoaderType, settings: TDracoLoaderSettings): TAbstractLoader<T, RC, TAbstractResourceAsyncRegistry<T>, TAbstractMetaInfoRegistry<RC>>;
4
+ export declare function Loader3dCore<T, RC extends TAbstractResourceConfig>(registry: TAbstractResourceAsyncRegistry<T>, metaInfoRegistry: TAbstractMetaInfoRegistry<RC>, type: LoaderType, loadingManagerWrapper: TLoadingManagerWrapper, settings: TDracoLoaderSettings): TAbstractLoader<T, RC, TAbstractResourceAsyncRegistry<T>, TAbstractMetaInfoRegistry<RC>>;
@@ -1,3 +1,4 @@
1
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
1
2
  import { TModels3dLoader, TModels3dMetaInfoRegistry, TModels3dResourceAsyncRegistry } from '../Models';
2
3
  import { TDracoLoaderSettings } from '../../ThreeLib';
3
- export declare function Models3dLoader(registry: TModels3dResourceAsyncRegistry, metaInfoRegistry: TModels3dMetaInfoRegistry, settings?: TDracoLoaderSettings): TModels3dLoader;
4
+ export declare function Models3dLoader(registry: TModels3dResourceAsyncRegistry, metaInfoRegistry: TModels3dMetaInfoRegistry, loadingManagerWrapper: TLoadingManagerWrapper, settings?: TDracoLoaderSettings): TModels3dLoader;
@@ -1,3 +1,4 @@
1
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
1
2
  import { TModels3dFactory, TModels3dMetaInfoRegistry, TModels3dRegistry, TModels3dResourceAsyncRegistry, TModels3dService, TModels3dServiceDependencies } from '../Models';
2
3
  import { TSpaceSettings } from '../../Space';
3
- export declare function Models3dService(factory: TModels3dFactory, registry: TModels3dRegistry, resourcesRegistry: TModels3dResourceAsyncRegistry, metaInfoRegistry: TModels3dMetaInfoRegistry, { materialService, animationsService, model3dRawToModel3dConnectionRegistry }: TModels3dServiceDependencies, settings: TSpaceSettings): TModels3dService;
4
+ export declare function Models3dService(factory: TModels3dFactory, registry: TModels3dRegistry, resourcesRegistry: TModels3dResourceAsyncRegistry, metaInfoRegistry: TModels3dMetaInfoRegistry, { materialService, animationsService, model3dRawToModel3dConnectionRegistry }: TModels3dServiceDependencies, loadingManagerWrapper: TLoadingManagerWrapper, settings: TSpaceSettings): TModels3dService;
@@ -10,6 +10,7 @@ import { TFsmService } from '../../Fsm';
10
10
  import { TIntersectionsWatcherService } from '../../Intersections';
11
11
  import { TKeyboardService } from '../../Keyboard';
12
12
  import { TLightService } from '../../Light';
13
+ import { TLoadingManagerService } from '../../LoadingManager';
13
14
  import { TLoopService } from '../../Loop';
14
15
  import { TMaterialService } from '../../Material';
15
16
  import { TModels3dService } from '../../Models3d';
@@ -35,6 +36,7 @@ export type TSpaceServices = Readonly<{
35
36
  intersectionsWatcherService: TIntersectionsWatcherService;
36
37
  keyboardService: TKeyboardService;
37
38
  lightService: TLightService;
39
+ loadingManagerService: TLoadingManagerService;
38
40
  loopService: TLoopService;
39
41
  materialService: TMaterialService;
40
42
  models3dService: TModels3dService;
@@ -1,2 +1,3 @@
1
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
1
2
  import { TTextureAsyncRegistry, TTextureMetaInfoRegistry, TTexturesLoader } from '../Models';
2
- export declare function TexturesLoader(registry: TTextureAsyncRegistry, metaInfoRegistry: TTextureMetaInfoRegistry): TTexturesLoader;
3
+ export declare function TexturesLoader(registry: TTextureAsyncRegistry, metaInfoRegistry: TTextureMetaInfoRegistry, loadingManagerWrapper: TLoadingManagerWrapper): TTexturesLoader;
@@ -1,2 +1,3 @@
1
+ import { TLoadingManagerWrapper } from '../../LoadingManager';
1
2
  import { TTextureAsyncRegistry, TTextureMetaInfoRegistry, TTextureService } from '../Models';
2
- export declare function TextureService(resourcesRegistry: TTextureAsyncRegistry, metaInfoRegistry: TTextureMetaInfoRegistry): TTextureService;
3
+ export declare function TextureService(resourcesRegistry: TTextureAsyncRegistry, metaInfoRegistry: TTextureMetaInfoRegistry, loadingManagerWrapper: TLoadingManagerWrapper): TTextureService;
@@ -16,6 +16,7 @@ export * from './Intersections';
16
16
  export * from './Keyboard';
17
17
  export * from './Kinematic';
18
18
  export * from './Light';
19
+ export * from './LoadingManager';
19
20
  export * from './Loop';
20
21
  export * from './Material';
21
22
  export * from './Math';