diff --git a/.DS_Store b/.DS_Store index 8eab601..d0f58a9 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Assets/Darkmatter/Code/App/LifetimeScopes/GameLifetimeScope.cs b/Assets/Darkmatter/Code/App/LifetimeScopes/GameLifetimeScope.cs deleted file mode 100644 index 11c9462..0000000 --- a/Assets/Darkmatter/Code/App/LifetimeScopes/GameLifetimeScope.cs +++ /dev/null @@ -1,11 +0,0 @@ -using VContainer; - -namespace Darkmatter.App.LifetimeScopes -{ - public class GameLifetimeScope : BaseLifetimeScope - { - protected override void Configure(IContainerBuilder builder) - { - } - } -} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/App/LifetimeScopes/GameLifetimeScope.cs.meta b/Assets/Darkmatter/Code/App/LifetimeScopes/GameLifetimeScope.cs.meta deleted file mode 100644 index 5868652..0000000 --- a/Assets/Darkmatter/Code/App/LifetimeScopes/GameLifetimeScope.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 4ca410c053f074e1cba2f7041f500d34 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/App/LifetimeScopes/RootLifetimeScope.cs b/Assets/Darkmatter/Code/App/LifetimeScopes/RootLifetimeScope.cs index 0f4ab65..4f6d7a6 100644 --- a/Assets/Darkmatter/Code/App/LifetimeScopes/RootLifetimeScope.cs +++ b/Assets/Darkmatter/Code/App/LifetimeScopes/RootLifetimeScope.cs @@ -1,11 +1,6 @@ -using VContainer; - namespace Darkmatter.App.LifetimeScopes { public class RootLifetimeScope : BaseLifetimeScope { - protected override void Configure(IContainerBuilder builder) - { - } } -} \ No newline at end of file +} diff --git a/Assets/Darkmatter/Code/Core/Contracts/Features/DrawingCatalog/IDrawingTemplate.cs b/Assets/Darkmatter/Code/Core/Contracts/Features/DrawingCatalog/IDrawingTemplate.cs index 28f5769..9e997a5 100644 --- a/Assets/Darkmatter/Code/Core/Contracts/Features/DrawingCatalog/IDrawingTemplate.cs +++ b/Assets/Darkmatter/Code/Core/Contracts/Features/DrawingCatalog/IDrawingTemplate.cs @@ -10,7 +10,7 @@ namespace Darkmatter.Core.Contracts.Features.DrawingCatalog string Id { get; } string DisplayName { get; } Sprite DefaultThumbnail { get; } - Sprite PaperBackground { get; } + GameObject Prefab { get; } IReadOnlyList Pieces { get; } IReadOnlyList Regions { get; } } diff --git a/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow.meta b/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow.meta new file mode 100644 index 0000000..9e39e59 --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ddd3ece612334da5befd516d65ddc88c +timeCreated: 1779952530 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow/IGameplaySceneRefs.cs b/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow/IGameplaySceneRefs.cs new file mode 100644 index 0000000..35bd7d1 --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow/IGameplaySceneRefs.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace Darkmatter.Core.Contracts.Features.GameplayFlow; + +public interface IGameplaySceneRefs +{ + RectTransform PaperRoot { get; } + RectTransform SlotsParent { get; } + RectTransform PiecesParent { get; } + RectTransform RegionsParent { get; } + RectTransform HudRoot { get; } + RectTransform TrayPanel { get; } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow/IGameplaySceneRefs.cs.meta b/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow/IGameplaySceneRefs.cs.meta new file mode 100644 index 0000000..ce0e819 --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Features/GameplayFlow/IGameplaySceneRefs.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9794063828774e7e98d911a8252842c0 +timeCreated: 1779952541 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder.meta b/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder.meta new file mode 100644 index 0000000..4435b7a --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 68c97391df7846648bbb6d7847dafb18 +timeCreated: 1779950354 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder/IShapeBuilderController.cs b/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder/IShapeBuilderController.cs new file mode 100644 index 0000000..588bf2a --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder/IShapeBuilderController.cs @@ -0,0 +1,17 @@ +using System.Collections.Generic; +using System.Threading; +using Cysharp.Threading.Tasks; +using Darkmatter.Core.Contracts.Features.DrawingCatalog; + +namespace Darkmatter.Core.Contracts.Features.ShapeBuilder; + +public interface IShapeBuilderController +{ + UniTask InitializeAsync(CancellationToken ct); + + UniTask BuildAsync(IDrawingTemplate template, + IReadOnlyCollection preSnappedIds, CancellationToken ct); + + IReadOnlyCollection GetSnappedPieceIds(); + void Clear(); +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder/IShapeBuilderController.cs.meta b/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder/IShapeBuilderController.cs.meta new file mode 100644 index 0000000..e1d128a --- /dev/null +++ b/Assets/Darkmatter/Code/Core/Contracts/Features/ShapeBuilder/IShapeBuilderController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 218237e181434d4983ad55d38db77c74 +timeCreated: 1779950364 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Core/Core.asmdef b/Assets/Darkmatter/Code/Core/Core.asmdef index 528670a..3d3ef16 100644 --- a/Assets/Darkmatter/Code/Core/Core.asmdef +++ b/Assets/Darkmatter/Code/Core/Core.asmdef @@ -2,7 +2,8 @@ "name": "Core", "rootNamespace": "Darkmatter.Core", "references": [ - "GUID:f51ebe6a0ceec4240a699833d6309b23" + "GUID:f51ebe6a0ceec4240a699833d6309b23", + "GUID:9e24947de15b9834991c9d8411ea37cf" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Darkmatter/Code/Core/Data/Static/Features/DrawingTemplate/DrawingTemplateSO.cs b/Assets/Darkmatter/Code/Core/Data/Static/Features/DrawingTemplate/DrawingTemplateSO.cs index 1159911..9e10add 100644 --- a/Assets/Darkmatter/Code/Core/Data/Static/Features/DrawingTemplate/DrawingTemplateSO.cs +++ b/Assets/Darkmatter/Code/Core/Data/Static/Features/DrawingTemplate/DrawingTemplateSO.cs @@ -12,7 +12,7 @@ namespace Darkmatter.Core.Data.Static.Features.DrawingTemplate [field: SerializeField] public string Id { get; private set; } [field: SerializeField] public string DisplayName { get; private set; } [field: SerializeField] public Sprite DefaultThumbnail { get; private set; } - [field: SerializeField] public Sprite PaperBackground { get; private set; } + [field: SerializeField] public GameObject Prefab { get; private set; } [field: SerializeField] public IReadOnlyList Pieces { get; private set; } [field: SerializeField] public IReadOnlyList Regions { get; private set; } } diff --git a/Assets/Darkmatter/Code/Core/Enums/Services/Scenes/GameScene.cs b/Assets/Darkmatter/Code/Core/Enums/Services/Scenes/GameScene.cs index 3604567..3d4912e 100644 --- a/Assets/Darkmatter/Code/Core/Enums/Services/Scenes/GameScene.cs +++ b/Assets/Darkmatter/Code/Core/Enums/Services/Scenes/GameScene.cs @@ -4,6 +4,7 @@ namespace Darkmatter.Core.Enums.Services.Scenes { Boot, MainMenu, + Colorbook, Gameplay, } } \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/AppBoot.meta b/Assets/Darkmatter/Code/Features/AppBoot.meta new file mode 100644 index 0000000..2ffc527 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3841157d2ef124a25b2c16956605ca40 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/AppBoot/Features.AppBoot.asmdef b/Assets/Darkmatter/Code/Features/AppBoot/Features.AppBoot.asmdef new file mode 100644 index 0000000..e9482a1 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/Features.AppBoot.asmdef @@ -0,0 +1,19 @@ +{ + "name": "Features.AppBoot", + "rootNamespace": "Darkmatter.Features.AppBoot", + "references": [ + "GUID:6a0a834eb41764f12ba55c3fb04a40cb", + "GUID:c1c03c0e5b2f4412b9f2be1c20d6a9b1", + "GUID:b0214a6008ed146ff8f122a6a9c2f6cc", + "GUID:f51ebe6a0ceec4240a699833d6309b23" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/AppBoot/Features.AppBoot.asmdef.meta b/Assets/Darkmatter/Code/Features/AppBoot/Features.AppBoot.asmdef.meta new file mode 100644 index 0000000..8242acc --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/Features.AppBoot.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a00b1d9e55c264fb785b78914db69e05 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/AppBoot/Flow.meta b/Assets/Darkmatter/Code/Features/AppBoot/Flow.meta new file mode 100644 index 0000000..9495683 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/Flow.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dc7ecf57035f14a9897f40b12ad1b64f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/AppBoot/Flow/AppBootFlow.cs b/Assets/Darkmatter/Code/Features/AppBoot/Flow/AppBootFlow.cs new file mode 100644 index 0000000..0a1ea4a --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/Flow/AppBootFlow.cs @@ -0,0 +1,49 @@ +using System.Threading; +using Cysharp.Threading.Tasks; +using Darkmatter.Core.Contracts.Services.Scenes; +using Darkmatter.Core.Enums.Services.Scenes; +using Darkmatter.Features.AppBoot.SceneRefs; +using UnityEngine; +using UnityEngine.Video; +using VContainer.Unity; + +namespace Darkmatter.Features.AppBoot.Flow +{ + public class AppBootFlow : IAsyncStartable + { + private readonly AppBootSceneRefs _sceneRefs; + private readonly ISceneService _sceneService; + + public AppBootFlow(AppBootSceneRefs sceneRefs, ISceneService sceneService) + { + _sceneRefs = sceneRefs; + _sceneService = sceneService; + } + + public async UniTask StartAsync(CancellationToken cancellation = default) + { + var tcs = new UniTaskCompletionSource(); + var player = _sceneRefs.IntroVideoPlayer; + + void OnDone(VideoPlayer vp) + { + vp.loopPointReached -= OnDone; + tcs.TrySetResult(); + } + + player.loopPointReached += OnDone; + player.Play(); + await _sceneService.LoadSceneAsync(GameScene.MainMenu, null, cancellation); + + await tcs.Task.AttachExternalCancellation(cancellation); + + player.Stop(); + var rt = player.targetTexture; + if (rt != null) rt.Release(); + + if (_sceneRefs.IntroCanvas != null) + Object.Destroy(_sceneRefs.IntroCanvas.gameObject); + Object.Destroy(player.gameObject); + } + } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/AppBoot/Flow/AppBootFlow.cs.meta b/Assets/Darkmatter/Code/Features/AppBoot/Flow/AppBootFlow.cs.meta new file mode 100644 index 0000000..0d6585c --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/Flow/AppBootFlow.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 892f636e24e0d41ce9423c7a989d717b \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/AppBoot/Installers.meta b/Assets/Darkmatter/Code/Features/AppBoot/Installers.meta new file mode 100644 index 0000000..c5596c7 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/Installers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bfa843ca122db487f9a2defa353418a7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/AppBoot/Installers/AppBootFeatureModule.cs b/Assets/Darkmatter/Code/Features/AppBoot/Installers/AppBootFeatureModule.cs new file mode 100644 index 0000000..cba4cb2 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/Installers/AppBootFeatureModule.cs @@ -0,0 +1,21 @@ +using Darkmatter.Features.AppBoot.Flow; +using Darkmatter.Features.AppBoot.SceneRefs; +using Darkmatter.Libs.Installers; +using UnityEngine; +using VContainer; +using VContainer.Unity; + +namespace Darkmatter.Features.AppBoot.Installers +{ + public class AppBootFeatureModule : MonoBehaviour, IModule + { + [SerializeField] private AppBootSceneRefs sceneRefs; + + public void Register(IContainerBuilder builder) + { + if (sceneRefs != null) + builder.RegisterComponent(sceneRefs); + builder.RegisterEntryPoint(); + } + } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/AppBoot/Installers/AppBootFeatureModule.cs.meta b/Assets/Darkmatter/Code/Features/AppBoot/Installers/AppBootFeatureModule.cs.meta new file mode 100644 index 0000000..6592e18 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/Installers/AppBootFeatureModule.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a3a74c469f13e41a09665530aa744705 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs.meta b/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs.meta new file mode 100644 index 0000000..b7c8b84 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 016a2252ff404eea98e7a84b80d0e4b1 +timeCreated: 1779955116 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs/AppBootSceneRefs.cs b/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs/AppBootSceneRefs.cs new file mode 100644 index 0000000..7114334 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs/AppBootSceneRefs.cs @@ -0,0 +1,11 @@ +using UnityEngine; +using UnityEngine.Video; + +namespace Darkmatter.Features.AppBoot.SceneRefs +{ + public class AppBootSceneRefs : MonoBehaviour + { + [field: SerializeField] public VideoPlayer IntroVideoPlayer { get; private set; } + [field: SerializeField] public GameObject IntroCanvas { get; private set; } + } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs/AppBootSceneRefs.cs.meta b/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs/AppBootSceneRefs.cs.meta new file mode 100644 index 0000000..80d503c --- /dev/null +++ b/Assets/Darkmatter/Code/Features/AppBoot/SceneRefs/AppBootSceneRefs.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 17fd08f85ba94bf694f285cdd48bee02 +timeCreated: 1779955127 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/Coloring.meta b/Assets/Darkmatter/Code/Features/Coloring.meta new file mode 100644 index 0000000..b4bd70d --- /dev/null +++ b/Assets/Darkmatter/Code/Features/Coloring.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 585a9b1ea84a5404d8726cb7e20e6398 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/Coloring/Features.Coloring.asmdef b/Assets/Darkmatter/Code/Features/Coloring/Features.Coloring.asmdef new file mode 100644 index 0000000..e995fe8 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/Coloring/Features.Coloring.asmdef @@ -0,0 +1,22 @@ +{ + "name": "Features.Coloring", + "rootNamespace": "Darkmatter.Features.Coloring", + "references": [ + "GUID:6a0a834eb41764f12ba55c3fb04a40cb", + "GUID:c1c03c0e5b2f4412b9f2be1c20d6a9b1", + "GUID:c176ee863a5e74e88a6517f9f102cf92", + "GUID:b4c9f7fbf1e144933a1797dc208ece5f", + "GUID:b0214a6008ed146ff8f122a6a9c2f6cc", + "GUID:f51ebe6a0ceec4240a699833d6309b23", + "GUID:80ecb87cae9c44d19824e70ea7229748" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/Coloring/Features.Coloring.asmdef.meta b/Assets/Darkmatter/Code/Features/Coloring/Features.Coloring.asmdef.meta new file mode 100644 index 0000000..098038a --- /dev/null +++ b/Assets/Darkmatter/Code/Features/Coloring/Features.Coloring.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4cede189a43c349069c614e305683720 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/Coloring/Installers.meta b/Assets/Darkmatter/Code/Features/Coloring/Installers.meta new file mode 100644 index 0000000..5646365 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/Coloring/Installers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9ad07895989e445f8557096c4a1aa7a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/Coloring/Installers/ColoringFeatureModule.cs b/Assets/Darkmatter/Code/Features/Coloring/Installers/ColoringFeatureModule.cs new file mode 100644 index 0000000..c1ee051 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/Coloring/Installers/ColoringFeatureModule.cs @@ -0,0 +1,14 @@ +using Darkmatter.Libs.Installers; +using UnityEngine; +using VContainer; + +namespace Darkmatter.Features.Coloring +{ + public class ColoringFeatureModule : MonoBehaviour,IModule + { + public void Register(IContainerBuilder builder) + { + + } + } +} diff --git a/Assets/Darkmatter/Code/Features/Coloring/Installers/ColoringFeatureModule.cs.meta b/Assets/Darkmatter/Code/Features/Coloring/Installers/ColoringFeatureModule.cs.meta new file mode 100644 index 0000000..19709e6 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/Coloring/Installers/ColoringFeatureModule.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: d0dc926588daf4a139e807f48f664baf \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow.meta b/Assets/Darkmatter/Code/Features/GameplayFlow.meta new file mode 100644 index 0000000..9484e2f --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8e69d4466105646aabc1668844cac5b7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/Features.GameplayFlow.asmdef b/Assets/Darkmatter/Code/Features/GameplayFlow/Features.GameplayFlow.asmdef new file mode 100644 index 0000000..de08802 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/Features.GameplayFlow.asmdef @@ -0,0 +1,18 @@ +{ + "name": "Features.GameplayFlow", + "rootNamespace": "Darkmatter.Features.GameplayFlow", + "references": [ + "GUID:6a0a834eb41764f12ba55c3fb04a40cb", + "GUID:b0214a6008ed146ff8f122a6a9c2f6cc", + "GUID:c1c03c0e5b2f4412b9f2be1c20d6a9b1" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/Features.GameplayFlow.asmdef.meta b/Assets/Darkmatter/Code/Features/GameplayFlow/Features.GameplayFlow.asmdef.meta new file mode 100644 index 0000000..46a1577 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/Features.GameplayFlow.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 995166e584dda4ff98501f62b07aa9cb +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/Flow.meta b/Assets/Darkmatter/Code/Features/GameplayFlow/Flow.meta new file mode 100644 index 0000000..fcd838c --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/Flow.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: adb650c457f6843c2a5704f12bcd0160 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/Installers.meta b/Assets/Darkmatter/Code/Features/GameplayFlow/Installers.meta new file mode 100644 index 0000000..e4742f0 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/Installers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 46180d2f7b7a14e42b77afb776b3a129 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/Installers/GameplayFlowFeatureModule.cs b/Assets/Darkmatter/Code/Features/GameplayFlow/Installers/GameplayFlowFeatureModule.cs new file mode 100644 index 0000000..6cc2540 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/Installers/GameplayFlowFeatureModule.cs @@ -0,0 +1,20 @@ +using Darkmatter.Core.Contracts.Features.GameplayFlow; +using Darkmatter.Features.GameplayFlow.SceneRefs; +using Darkmatter.Libs.Installers; +using UnityEngine; +using VContainer; +using VContainer.Unity; + +namespace Darkmatter.Features.GameplayFlow +{ + public class GameplayFlowFeatureModule : MonoBehaviour, IModule + { + [SerializeField] private GameplaySceneRefs sceneRefs; + + public void Register(IContainerBuilder builder) + { + if (sceneRefs != null) + builder.RegisterComponent(sceneRefs); + } + } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/Installers/GameplayFlowFeatureModule.cs.meta b/Assets/Darkmatter/Code/Features/GameplayFlow/Installers/GameplayFlowFeatureModule.cs.meta new file mode 100644 index 0000000..d3a6ba8 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/Installers/GameplayFlowFeatureModule.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c784b80c101814d24bf8820233bb0f62 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs.meta b/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs.meta new file mode 100644 index 0000000..293754f --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 38e2583efd5f84627b5ff0fc7599bf03 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs/GameplaySceneRefs.cs b/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs/GameplaySceneRefs.cs new file mode 100644 index 0000000..c964211 --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs/GameplaySceneRefs.cs @@ -0,0 +1,24 @@ +using Darkmatter.Core.Contracts.Features.GameplayFlow; +using UnityEngine; + +namespace Darkmatter.Features.GameplayFlow.SceneRefs +{ + public class GameplaySceneRefs : MonoBehaviour, IGameplaySceneRefs + { + [SerializeField] private RectTransform paperRoot; + [SerializeField] private RectTransform slotsParent; + [SerializeField] private RectTransform piecesParent; + [SerializeField] private RectTransform regionsParent; + + [SerializeField] private RectTransform hudRoot; + [SerializeField] private RectTransform trayPanel; + + + public RectTransform PaperRoot => paperRoot; + public RectTransform SlotsParent => slotsParent; + public RectTransform PiecesParent => piecesParent; + public RectTransform RegionsParent => regionsParent; + public RectTransform HudRoot => hudRoot; + public RectTransform TrayPanel => trayPanel; + } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs/GameplaySceneRefs.cs.meta b/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs/GameplaySceneRefs.cs.meta new file mode 100644 index 0000000..e2018cf --- /dev/null +++ b/Assets/Darkmatter/Code/Features/GameplayFlow/SceneRefs/GameplaySceneRefs.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f2e39895945b94467b1677388b2fb896 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/ShapeBuilder/Commands/SnapPieceCommand.cs b/Assets/Darkmatter/Code/Features/ShapeBuilder/Commands/SnapPieceCommand.cs index 44b038a..c04352d 100644 --- a/Assets/Darkmatter/Code/Features/ShapeBuilder/Commands/SnapPieceCommand.cs +++ b/Assets/Darkmatter/Code/Features/ShapeBuilder/Commands/SnapPieceCommand.cs @@ -4,11 +4,6 @@ using UnityEngine; namespace Darkmatter.Features.ShapeBuilder.Commands { - /// - /// Undoable snap. Captures the piece's pre-snap pose + parent at ctor time; - /// Execute drives the normal snap tween; Undo restores the pre-snap state - /// and re-enables drag. - /// internal sealed class SnapPieceCommand : ICommand { private readonly ShapePiece _piece; diff --git a/Assets/Darkmatter/Code/Features/ShapeBuilder/Installers/ShapeBuilderFeatureModule.cs b/Assets/Darkmatter/Code/Features/ShapeBuilder/Installers/ShapeBuilderFeatureModule.cs index 017748e..fd6df8f 100644 --- a/Assets/Darkmatter/Code/Features/ShapeBuilder/Installers/ShapeBuilderFeatureModule.cs +++ b/Assets/Darkmatter/Code/Features/ShapeBuilder/Installers/ShapeBuilderFeatureModule.cs @@ -1,7 +1,10 @@ +using Darkmatter.Core.Contracts.Features.ShapeBuilder; using Darkmatter.Core.Data.Static.Features.ShapeBuilder; +using Darkmatter.Features.ShapeBuilder.Systems; using Darkmatter.Libs.Installers; using UnityEngine; using VContainer; +using VContainer.Unity; namespace Darkmatter.Features.ShapeBuilder.Installers { @@ -12,10 +15,8 @@ namespace Darkmatter.Features.ShapeBuilder.Installers public void Register(IContainerBuilder builder) { if (config != null) - builder.RegisterInstance(config); - - // ShapePiece instances are MonoBehaviours instantiated by the - // ShapeBuilderController; nothing to register here for them. + builder.RegisterComponent(config); + builder.Register(Lifetime.Singleton); } } -} +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/ShapeBuilder/Systems/ShapeBuilderController.cs b/Assets/Darkmatter/Code/Features/ShapeBuilder/Systems/ShapeBuilderController.cs new file mode 100644 index 0000000..005eeca --- /dev/null +++ b/Assets/Darkmatter/Code/Features/ShapeBuilder/Systems/ShapeBuilderController.cs @@ -0,0 +1,169 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using Cysharp.Threading.Tasks; +using Darkmatter.Core.Contracts.Features.DrawingCatalog; +using Darkmatter.Core.Contracts.Features.History; +using Darkmatter.Core.Contracts.Features.ShapeBuilder; +using Darkmatter.Core.Contracts.Services.Assets; +using Darkmatter.Core.Contracts.Services.Audio; +using Darkmatter.Core.Contracts.Features.GameplayFlow; +using Darkmatter.Core.Data.Signals.Features.ShapeBuilder; +using Darkmatter.Core.Data.Static.Features.ShapeBuilder; +using Darkmatter.Features.ShapeBuilder.UI; +using Darkmatter.Libs.Observer; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace Darkmatter.Features.ShapeBuilder.Systems +{ + public class ShapeBuilderController : IShapeBuilderController, IDisposable + { + private const string PiecePrefabKey = "ShapeBuilder/Piece"; + + private string _currentTemplateId; + private int _expected; + private int _snapped; + private GameObject _drawingInstance; + private GameObject _piecePrefab; + private IDisposable _snappedSub; + + private readonly List _snappedPieceIds = new(); + private readonly ShapeBuilderConfig _cfg; + private readonly ISfxPlayer _sfx; + private readonly IEventBus _bus; + private readonly IUndoStack _undo; + private readonly IAssetProviderService _assetProviderService; + private readonly IEventBus _eventBus; + private readonly IGameplaySceneRefs _refs; + + + public ShapeBuilderController( + ShapeBuilderConfig cfg, + ISfxPlayer sfx, + IEventBus bus, + IUndoStack undo, + IAssetProviderService assetProviderService, + IEventBus eventBus, + IGameplaySceneRefs refs) + { + _cfg = cfg; + _sfx = sfx; + _bus = bus; + _undo = undo; + _assetProviderService = assetProviderService; + _eventBus = eventBus; + _refs = refs; + } + + public async UniTask InitializeAsync(CancellationToken cancellationToken) + { + await TryLoadPiecePrefabAsync(cancellationToken); + + _snappedSub = _eventBus.Subscribe(OnPieceSnapped); + } + + private void OnPieceSnapped(PieceSnappedSignal obj) + { + _snappedPieceIds.Add(obj.PieceId); + CheckIfShapeAssembled(); + } + + public async UniTask BuildAsync( + IDrawingTemplate template, + IReadOnlyCollection preSnappedIds, + CancellationToken ct = default) + { + Clear(); + + if (template.Prefab == null) + throw new System.Exception($"No drawing layout prefab for '{template.Id}'"); + + _drawingInstance = Object.Instantiate(template.Prefab, _refs.PaperRoot); + ct.ThrowIfCancellationRequested(); + + var slots = _drawingInstance.GetComponentsInChildren(includeInactive: true); + + await TryLoadPiecePrefabAsync(ct); + + int count = template.Pieces.Count; + float trayW = _refs.TrayPanel.rect.width; + float pitch = trayW / (count + 1); + + _currentTemplateId = template.Id; + _expected = count; + _snapped = 0; + + CreateShapePieceInstances(template, preSnappedIds, count, slots, pitch, trayW); + + CheckIfShapeAssembled(); + } + + private void CreateShapePieceInstances(IDrawingTemplate template, IReadOnlyCollection preSnappedIds, + int count, + SlotMarker[] slots, float pitch, float trayW) + { + for (int i = 0; i < count; i++) + { + var shape = template.Pieces[i]; + var slot = FindSlotForShape(slots, shape); + if (slot == null) + { + Debug.LogError($"[ShapeBuilder] No SlotMarker for '{shape.Id}' in '{template.Id}'"); + continue; + } + + var trayPos = new Vector2(pitch * (i + 1) - trayW * 0.5f, 0f); + bool preSnapped = preSnappedIds != null && preSnappedIds.Contains(shape.Id); + + var go = Object.Instantiate(_piecePrefab, _refs.TrayPanel); + go.name = $"Piece_{shape.Id}"; + + var piece = go.GetComponent(); + piece.Setup(shape, slot, _cfg, _sfx, _bus, _undo, trayPos, preSnapped); + + if (preSnapped) _snapped++; + } + } + + private void CheckIfShapeAssembled() + { + if (_expected > 0 && _snapped == _expected) + _bus.Publish(new ShapeAssembledSignal(_currentTemplateId)); + } + + private async UniTask TryLoadPiecePrefabAsync(CancellationToken ct) + { + if (_piecePrefab == null) + { + _piecePrefab = await _assetProviderService.LoadAssetAsync( + PiecePrefabKey, progress: null, cancellationToken: ct); + if (_piecePrefab == null) + throw new System.Exception($"No piece prefab at '{PiecePrefabKey}'"); + } + } + + private static SlotMarker FindSlotForShape(SlotMarker[] slots, ShapeSO shape) + { + foreach (var s in slots) + if (s.Shape == shape) + return s; + return null; + } + + public IReadOnlyCollection GetSnappedPieceIds() + { + return _snappedPieceIds; + } + + public void Clear() + { + } + + public void Dispose() + { + _snappedSub?.Dispose(); + } + } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/ShapeBuilder/Systems/ShapeBuilderController.cs.meta b/Assets/Darkmatter/Code/Features/ShapeBuilder/Systems/ShapeBuilderController.cs.meta new file mode 100644 index 0000000..50ce41a --- /dev/null +++ b/Assets/Darkmatter/Code/Features/ShapeBuilder/Systems/ShapeBuilderController.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2964329afc8ef47fe8817d4a701b8fe1 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Features/ShapeBuilder/UI/ShapePiece.cs b/Assets/Darkmatter/Code/Features/ShapeBuilder/UI/ShapePiece.cs index 4e11b19..3a8ad12 100644 --- a/Assets/Darkmatter/Code/Features/ShapeBuilder/UI/ShapePiece.cs +++ b/Assets/Darkmatter/Code/Features/ShapeBuilder/UI/ShapePiece.cs @@ -12,12 +12,6 @@ using UnityEngine.UI; namespace Darkmatter.Features.ShapeBuilder.UI { - /// - /// Single-MB shape piece. Handles drag, reactive preview lerp, snap, - /// and return-to-tray. Snap is wrapped in a - /// pushed onto the shared so it participates in - /// the same undo/redo flow as coloring. - /// [RequireComponent(typeof(RectTransform))] public sealed class ShapePiece : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler @@ -116,7 +110,7 @@ namespace Darkmatter.Features.ShapeBuilder.UI _slot.RectTransform.anchoredPosition); if (dist <= _cfg.SnapRadius) - _undo.Push(new SnapPieceCommand(this)); // Push calls Execute → SnapInternal + _undo.Push(new SnapPieceCommand(this)); else ReturnToTray(); } @@ -132,7 +126,6 @@ namespace Darkmatter.Features.ShapeBuilder.UI RectTransform.localRotation = Quaternion.Slerp(Quaternion.identity, slot.localRotation, t); } - // ---- Command-driven snap / un-snap ---- internal void SnapInternal() { Lock(); diff --git a/Assets/Darkmatter/Code/Services/Audio/Installers.meta b/Assets/Darkmatter/Code/Services/Audio/Installers.meta new file mode 100644 index 0000000..dab23ba --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Audio/Installers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 46d6646913d0d423eaabd923f70ef127 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs b/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs new file mode 100644 index 0000000..d5996aa --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs @@ -0,0 +1,22 @@ +using Darkmatter.Core.Contracts.Services.Audio; +using Darkmatter.Core.Data.Static.Services.Audio; +using Darkmatter.Libs.Installers; +using UnityEngine; +using VContainer; +using VContainer.Unity; + +namespace Darkmatter.Services.Audio +{ + public class AudioServiceModule : MonoBehaviour, IModule + { + [SerializeField] private SfxCatalogSO sfxCatalog; + + public void Register(IContainerBuilder builder) + { + if (sfxCatalog != null) + builder.RegisterComponent(sfxCatalog); + builder.Register(Lifetime.Singleton); + builder.Register(Lifetime.Singleton); + } + } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs.meta b/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs.meta new file mode 100644 index 0000000..e387a8c --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: fa11c3cff997e4a0a8263a29d804779f \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Services/Audio/Services.Audio.asmdef b/Assets/Darkmatter/Code/Services/Audio/Services.Audio.asmdef index b3f5d48..e9ba122 100644 --- a/Assets/Darkmatter/Code/Services/Audio/Services.Audio.asmdef +++ b/Assets/Darkmatter/Code/Services/Audio/Services.Audio.asmdef @@ -5,7 +5,8 @@ "GUID:6a0a834eb41764f12ba55c3fb04a40cb", "GUID:f51ebe6a0ceec4240a699833d6309b23", "GUID:b0214a6008ed146ff8f122a6a9c2f6cc", - "GUID:b4c9f7fbf1e144933a1797dc208ece5f" + "GUID:b4c9f7fbf1e144933a1797dc208ece5f", + "GUID:c1c03c0e5b2f4412b9f2be1c20d6a9b1" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Darkmatter/Code/Services/Audio/Systems.meta b/Assets/Darkmatter/Code/Services/Audio/Systems.meta new file mode 100644 index 0000000..c25a602 --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Audio/Systems.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bbbd26e1f2def4991b74ecd2709fdb08 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Services/Audio/AudioService.cs b/Assets/Darkmatter/Code/Services/Audio/Systems/AudioService.cs similarity index 100% rename from Assets/Darkmatter/Code/Services/Audio/AudioService.cs rename to Assets/Darkmatter/Code/Services/Audio/Systems/AudioService.cs diff --git a/Assets/Darkmatter/Code/Services/Audio/AudioService.cs.meta b/Assets/Darkmatter/Code/Services/Audio/Systems/AudioService.cs.meta similarity index 100% rename from Assets/Darkmatter/Code/Services/Audio/AudioService.cs.meta rename to Assets/Darkmatter/Code/Services/Audio/Systems/AudioService.cs.meta diff --git a/Assets/Darkmatter/Code/Services/Audio/SfxPlayer.cs b/Assets/Darkmatter/Code/Services/Audio/Systems/SfxPlayer.cs similarity index 100% rename from Assets/Darkmatter/Code/Services/Audio/SfxPlayer.cs rename to Assets/Darkmatter/Code/Services/Audio/Systems/SfxPlayer.cs diff --git a/Assets/Darkmatter/Code/Services/Audio/SfxPlayer.cs.meta b/Assets/Darkmatter/Code/Services/Audio/Systems/SfxPlayer.cs.meta similarity index 100% rename from Assets/Darkmatter/Code/Services/Audio/SfxPlayer.cs.meta rename to Assets/Darkmatter/Code/Services/Audio/Systems/SfxPlayer.cs.meta diff --git a/Assets/Darkmatter/Code/Services/Scenes/Installers.meta b/Assets/Darkmatter/Code/Services/Scenes/Installers.meta new file mode 100644 index 0000000..dcd2262 --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Scenes/Installers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0d37521fbeb9c48fd99ee8968c4ce1cf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Services/Scenes/Installers/SceneServiceModule.cs b/Assets/Darkmatter/Code/Services/Scenes/Installers/SceneServiceModule.cs new file mode 100644 index 0000000..905c3ae --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Scenes/Installers/SceneServiceModule.cs @@ -0,0 +1,15 @@ +using Darkmatter.Core.Contracts.Services.Scenes; +using Darkmatter.Libs.Installers; +using UnityEngine; +using VContainer; + +namespace Darkmatter.Services.Scenes +{ + public class SceneServiceModule : MonoBehaviour, IModule + { + public void Register(IContainerBuilder builder) + { + builder.Register(Lifetime.Singleton); + } + } +} \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Services/Scenes/Installers/SceneServiceModule.cs.meta b/Assets/Darkmatter/Code/Services/Scenes/Installers/SceneServiceModule.cs.meta new file mode 100644 index 0000000..e9875a1 --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Scenes/Installers/SceneServiceModule.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ad17780c76afe4f33ac9f90931a18f76 \ No newline at end of file diff --git a/Assets/Darkmatter/Code/Services/Scenes/Services.Scenes.asmdef b/Assets/Darkmatter/Code/Services/Scenes/Services.Scenes.asmdef index 662c170..efd2e8c 100644 --- a/Assets/Darkmatter/Code/Services/Scenes/Services.Scenes.asmdef +++ b/Assets/Darkmatter/Code/Services/Scenes/Services.Scenes.asmdef @@ -6,7 +6,9 @@ "GUID:f51ebe6a0ceec4240a699833d6309b23", "GUID:593a5b492d29ac6448b1ebf7f035ef33", "GUID:9e24947de15b9834991c9d8411ea37cf", - "GUID:84651a3751eca9349aac36a66bba901b" + "GUID:84651a3751eca9349aac36a66bba901b", + "GUID:c1c03c0e5b2f4412b9f2be1c20d6a9b1", + "GUID:b0214a6008ed146ff8f122a6a9c2f6cc" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Assets/Darkmatter/Code/Services/Scenes/Systems.meta b/Assets/Darkmatter/Code/Services/Scenes/Systems.meta new file mode 100644 index 0000000..df56fdd --- /dev/null +++ b/Assets/Darkmatter/Code/Services/Scenes/Systems.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa48eed4801294ccc8263b26b874dbb7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Code/Services/Scenes/SceneService.cs b/Assets/Darkmatter/Code/Services/Scenes/Systems/SceneService.cs similarity index 100% rename from Assets/Darkmatter/Code/Services/Scenes/SceneService.cs rename to Assets/Darkmatter/Code/Services/Scenes/Systems/SceneService.cs diff --git a/Assets/Darkmatter/Code/Services/Scenes/SceneService.cs.meta b/Assets/Darkmatter/Code/Services/Scenes/Systems/SceneService.cs.meta similarity index 100% rename from Assets/Darkmatter/Code/Services/Scenes/SceneService.cs.meta rename to Assets/Darkmatter/Code/Services/Scenes/Systems/SceneService.cs.meta diff --git a/Assets/Darkmatter/Content/Intro/Create_intro_for_kids_game_202605272007.mp4 b/Assets/Darkmatter/Content/Intro/Create_intro_for_kids_game_202605272007.mp4 deleted file mode 100644 index adc15da..0000000 Binary files a/Assets/Darkmatter/Content/Intro/Create_intro_for_kids_game_202605272007.mp4 and /dev/null differ diff --git a/Assets/Darkmatter/Content/Intro/IntroRenderTexture.renderTexture b/Assets/Darkmatter/Content/Intro/IntroRenderTexture.renderTexture new file mode 100644 index 0000000..f121735 --- /dev/null +++ b/Assets/Darkmatter/Content/Intro/IntroRenderTexture.renderTexture @@ -0,0 +1,39 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!84 &8400000 +RenderTexture: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: IntroRenderTexture + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_IsAlphaChannelOptional: 0 + serializedVersion: 6 + m_Width: 1920 + m_Height: 1080 + m_AntiAliasing: 1 + m_MipCount: -1 + m_DepthStencilFormat: 94 + m_ColorFormat: 8 + m_MipMap: 0 + m_GenerateMips: 1 + m_SRGB: 0 + m_UseDynamicScale: 0 + m_UseDynamicScaleExplicit: 0 + m_BindMS: 0 + m_EnableCompatibleFormat: 1 + m_EnableRandomWrite: 0 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 0 + m_MipBias: 0 + m_WrapU: 1 + m_WrapV: 1 + m_WrapW: 1 + m_Dimension: 2 + m_VolumeDepth: 1 + m_ShadowSamplingMode: 2 diff --git a/Assets/Darkmatter/Content/Intro/IntroRenderTexture.renderTexture.meta b/Assets/Darkmatter/Content/Intro/IntroRenderTexture.renderTexture.meta new file mode 100644 index 0000000..a59fbdb --- /dev/null +++ b/Assets/Darkmatter/Content/Intro/IntroRenderTexture.renderTexture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5da879599920c456aa9dfc836a706075 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 8400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Content/Intro/intro.mp4 b/Assets/Darkmatter/Content/Intro/intro.mp4 new file mode 100644 index 0000000..f2c5369 Binary files /dev/null and b/Assets/Darkmatter/Content/Intro/intro.mp4 differ diff --git a/Assets/Darkmatter/Content/Intro/Create_intro_for_kids_game_202605272007.mp4.meta b/Assets/Darkmatter/Content/Intro/intro.mp4.meta similarity index 88% rename from Assets/Darkmatter/Content/Intro/Create_intro_for_kids_game_202605272007.mp4.meta rename to Assets/Darkmatter/Content/Intro/intro.mp4.meta index ec68d47..09f0998 100644 --- a/Assets/Darkmatter/Content/Intro/Create_intro_for_kids_game_202605272007.mp4.meta +++ b/Assets/Darkmatter/Content/Intro/intro.mp4.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ec78f9cae5b834662a0005dcbadd12c6 +guid: 94bb9480e86df4128b09488bd123a53e VideoClipImporter: externalObjects: {} serializedVersion: 3 diff --git a/Assets/Darkmatter/Data/Audio.meta b/Assets/Darkmatter/Data/Audio.meta new file mode 100644 index 0000000..d31d137 --- /dev/null +++ b/Assets/Darkmatter/Data/Audio.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44f3782798fcc4e1f8cd9e4ff4722ece +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Data/Audio/SfxCatalog.asset b/Assets/Darkmatter/Data/Audio/SfxCatalog.asset new file mode 100644 index 0000000..efc0337 --- /dev/null +++ b/Assets/Darkmatter/Data/Audio/SfxCatalog.asset @@ -0,0 +1,15 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8dc05770caf7f49e9a59dab81283a278, type: 3} + m_Name: SfxCatalog + m_EditorClassIdentifier: Core::Darkmatter.Core.Data.Static.Services.Audio.SfxCatalogSO + entries: [] diff --git a/Assets/Darkmatter/Data/Audio/SfxCatalog.asset.meta b/Assets/Darkmatter/Data/Audio/SfxCatalog.asset.meta new file mode 100644 index 0000000..b1602f4 --- /dev/null +++ b/Assets/Darkmatter/Data/Audio/SfxCatalog.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66f04dfcec18d453e8e15f3a2b02066d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Darkmatter/Scenes/Boot.unity b/Assets/Darkmatter/Scenes/Boot.unity index 88982b5..2bc5310 100644 --- a/Assets/Darkmatter/Scenes/Boot.unity +++ b/Assets/Darkmatter/Scenes/Boot.unity @@ -376,6 +376,129 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &97140290 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 97140292} + - component: {fileID: 97140291} + m_Layer: 0 + m_Name: SceneServiceModule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &97140291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97140290} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ad17780c76afe4f33ac9f90931a18f76, type: 3} + m_Name: + m_EditorClassIdentifier: Services.Scenes::Darkmatter.Services.Scenes.SceneServiceModule +--- !u!4 &97140292 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97140290} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1050564725} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &109717500 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 109717503} + - component: {fileID: 109717502} + - component: {fileID: 109717501} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &109717501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109717500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule + m_SendPointerHoverToParent: 1 + m_MoveRepeatDelay: 0.5 + m_MoveRepeatRate: 0.1 + m_XRTrackingOrigin: {fileID: 0} + m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3} + m_DeselectOnBackgroundClick: 1 + m_PointerBehavior: 0 + m_CursorLockBehavior: 0 + m_ScrollDeltaPerTick: 6 +--- !u!114 &109717502 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109717500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &109717503 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 109717500} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &137105223 GameObject: m_ObjectHideFlags: 0 @@ -401,12 +524,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 137105223} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -16.30939, y: -8.32207, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 274737044} + m_Father: {fileID: 1050564725} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &137105225 MonoBehaviour: @@ -420,7 +543,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e14e6746c7bb4b57808b4d3020dc7bbb, type: 3} m_Name: m_EditorClassIdentifier: Services.Capture::Darkmatter.Services.Capture.Installers.CaptureServiceModule ---- !u!1 &274737043 +--- !u!1 &202998924 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -428,31 +551,70 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 274737044} - m_Layer: 0 - m_Name: ServiceModule + - component: {fileID: 202998925} + - component: {fileID: 202998927} + - component: {fileID: 202998926} + m_Layer: 5 + m_Name: VideoImage m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &274737044 -Transform: +--- !u!224 &202998925 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 274737043} - serializedVersion: 2 + m_GameObject: {fileID: 202998924} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 292698384} - - {fileID: 137105224} - m_Father: {fileID: 329578012} + m_Children: [] + m_Father: {fileID: 2133561498} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &202998926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202998924} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.RawImage + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 8400000, guid: 5da879599920c456aa9dfc836a706075, type: 2} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &202998927 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 202998924} + m_CullTransparentMesh: 1 --- !u!1 &292698383 GameObject: m_ObjectHideFlags: 0 @@ -479,11 +641,11 @@ Transform: m_GameObject: {fileID: 292698383} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 16.30939, y: 8.32207, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 274737044} + m_Father: {fileID: 1050564725} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &292698385 MonoBehaviour: @@ -500,7 +662,7 @@ MonoBehaviour: mainCamera: {fileID: 519420031} uiCamera: {fileID: 82022334} captureCamera: {fileID: 94039066} ---- !u!1 &329578011 +--- !u!1 &445008005 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -508,53 +670,43 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 329578012} - - component: {fileID: 329578013} + - component: {fileID: 445008006} + - component: {fileID: 445008007} m_Layer: 0 - m_Name: GameLifetimeScope + m_Name: AppBootFeatureModule m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &329578012 +--- !u!4 &445008006 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 329578011} + m_GameObject: {fileID: 445008005} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 274737044} - - {fileID: 1709100712} - m_Father: {fileID: 0} + m_Children: [] + m_Father: {fileID: 752713007} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &329578013 +--- !u!114 &445008007 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 329578011} + m_GameObject: {fileID: 445008005} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4ca410c053f074e1cba2f7041f500d34, type: 3} + m_Script: {fileID: 11500000, guid: a3a74c469f13e41a09665530aa744705, type: 3} m_Name: - m_EditorClassIdentifier: Darkmatter.App::GameLifetimeScope - parentReference: - TypeName: - autoRun: 1 - autoInjectGameObjects: [] - serviceModules: - - {fileID: 292698385} - - {fileID: 137105225} - - {fileID: 1043308347} - - {fileID: 610419920} + m_EditorClassIdentifier: Features.AppBoot::Darkmatter.Features.AppBoot.Installers.AppBootFeatureModule + sceneRefs: {fileID: 1890425866} --- !u!1 &519420028 GameObject: m_ObjectHideFlags: 0 @@ -637,7 +789,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 2 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -718,12 +870,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 610419918} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -16.30939, y: -8.32207, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1709100712} + m_Father: {fileID: 752713007} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &610419920 MonoBehaviour: @@ -737,6 +889,40 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: aa578cd62ad074dbf91b5228c3ac667e, type: 3} m_Name: m_EditorClassIdentifier: Features.DrawingTemplates::Darkmatter.Features.DrawingTemplates.DrawingTemplateFeatureModule +--- !u!1 &752713006 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 752713007} + m_Layer: 0 + m_Name: FeatureModules + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &752713007 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 752713006} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 445008006} + - {fileID: 1043308346} + - {fileID: 610419919} + m_Father: {fileID: 1798580248} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1043308345 GameObject: m_ObjectHideFlags: 0 @@ -762,12 +948,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1043308345} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -16.30939, y: -8.32207, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1709100712} + m_Father: {fileID: 752713007} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1043308347 MonoBehaviour: @@ -810,7 +996,11 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 292698384} + - {fileID: 137105224} - {fileID: 1239449675} + - {fileID: 1776076871} + - {fileID: 97140292} m_Father: {fileID: 1798580248} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1239449674 @@ -857,7 +1047,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f03c84255756e497f96c3baa7f6abe16, type: 3} m_Name: m_EditorClassIdentifier: Services.Gallery::Darkmatter.Services.Gallery.GalleryServiceModule ---- !u!1 &1709100711 +--- !u!1 &1776076870 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -865,31 +1055,43 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1709100712} + - component: {fileID: 1776076871} + - component: {fileID: 1776076872} m_Layer: 0 - m_Name: FeatureModules + m_Name: AudioServiceModule m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1709100712 +--- !u!4 &1776076871 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1709100711} + m_GameObject: {fileID: 1776076870} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1043308346} - - {fileID: 610419919} - m_Father: {fileID: 329578012} + m_Children: [] + m_Father: {fileID: 1050564725} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1776076872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776076870} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fa11c3cff997e4a0a8263a29d804779f, type: 3} + m_Name: + m_EditorClassIdentifier: Services.Audio::Darkmatter.Services.Audio.AudioServiceModule + sfxCatalog: {fileID: 11400000, guid: 66f04dfcec18d453e8e15f3a2b02066d, type: 2} --- !u!1 &1798580247 GameObject: m_ObjectHideFlags: 0 @@ -921,6 +1123,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1050564725} + - {fileID: 752713007} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1798580249 @@ -940,7 +1143,60 @@ MonoBehaviour: autoRun: 1 autoInjectGameObjects: [] serviceModules: + - {fileID: 445008007} - {fileID: 1239449676} + - {fileID: 292698385} + - {fileID: 137105225} + - {fileID: 1043308347} + - {fileID: 610419920} + - {fileID: 1776076872} + - {fileID: 97140291} +--- !u!1 &1890425864 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1890425865} + - component: {fileID: 1890425866} + m_Layer: 0 + m_Name: AppBootSceneRefs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1890425865 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1890425864} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1890425866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1890425864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 17fd08f85ba94bf694f285cdd48bee02, type: 3} + m_Name: + m_EditorClassIdentifier: Features.AppBoot::Darkmatter.Features.AppBoot.SceneRefs.AppBootSceneRefs + k__BackingField: {fileID: 2122267604} + k__BackingField: {fileID: 2133561494} --- !u!1 &2122267603 GameObject: m_ObjectHideFlags: 0 @@ -966,18 +1222,18 @@ VideoPlayer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2122267603} m_Enabled: 1 - m_VideoClip: {fileID: 32900000, guid: ec78f9cae5b834662a0005dcbadd12c6, type: 3} + m_VideoClip: {fileID: 32900000, guid: 94bb9480e86df4128b09488bd123a53e, type: 3} m_TargetCameraAlpha: 1 m_TargetCamera3DLayout: 0 - m_TargetCamera: {fileID: 0} - m_TargetTexture: {fileID: 0} + m_TargetCamera: {fileID: 82022334} + m_TargetTexture: {fileID: 8400000, guid: 5da879599920c456aa9dfc836a706075, type: 2} m_TimeReference: 0 m_TargetMaterialRenderer: {fileID: 0} m_TargetMaterialProperty: m_RenderMode: 2 m_AspectRatio: 2 m_DataSource: 0 - m_TimeUpdateMode: 2 + m_TimeUpdateMode: 1 m_PlaybackSpeed: 1 m_AudioOutputMode: 2 m_TargetAudioSources: @@ -989,7 +1245,7 @@ VideoPlayer: m_DirectAudioMutes: 00 m_ControlledAudioTrackCount: 1 m_PlayOnAwake: 0 - m_SkipOnDrop: 1 + m_SkipOnDrop: 0 m_Looping: 0 m_WaitForFirstFrame: 0 m_FrameReadyEventEnabled: 0 @@ -1009,6 +1265,109 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2133561494 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2133561498} + - component: {fileID: 2133561497} + - component: {fileID: 2133561496} + - component: {fileID: 2133561495} + m_Layer: 5 + m_Name: IntroCanvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2133561495 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133561494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2133561496 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133561494} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1920, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &2133561497 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133561494} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_UseReflectionProbes: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2133561498 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133561494} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 202998925} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -1017,5 +1376,7 @@ SceneRoots: - {fileID: 94039067} - {fileID: 82022335} - {fileID: 1798580248} - - {fileID: 329578012} - {fileID: 2122267605} + - {fileID: 1890425865} + - {fileID: 2133561498} + - {fileID: 109717503} diff --git a/Assets/Darkmatter/Scenes/GamePlay.unity b/Assets/Darkmatter/Scenes/GamePlay.unity index f7e02fb..8652300 100644 --- a/Assets/Darkmatter/Scenes/GamePlay.unity +++ b/Assets/Darkmatter/Scenes/GamePlay.unity @@ -119,6 +119,56 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &396806865 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 396806866} + - component: {fileID: 396806867} + m_Layer: 0 + m_Name: SceneRefs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &396806866 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396806865} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.31064, y: 1.32407, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &396806867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396806865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f2e39895945b94467b1677388b2fb896, type: 3} + m_Name: + m_EditorClassIdentifier: Features.GameplayFlow::Darkmatter.Features.GameplayFlow.SceneRefs.GameplaySceneRefs + paperRoot: {fileID: 0} + slotsParent: {fileID: 0} + piecesParent: {fileID: 0} + regionsParent: {fileID: 0} + hudRoot: {fileID: 0} + trayPanel: {fileID: 0} --- !u!1 &590523272 GameObject: m_ObjectHideFlags: 0 @@ -198,6 +248,51 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1046038182 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1046038183} + - component: {fileID: 1046038184} + m_Layer: 0 + m_Name: GameplayFlowFeatureModule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1046038183 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046038182} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1965442263} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1046038184 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046038182} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c784b80c101814d24bf8820233bb0f62, type: 3} + m_Name: + m_EditorClassIdentifier: Features.GameplayFlow::Darkmatter.Features.GameplayFlow.GameplayFlowFeatureModule + sceneRefs: {fileID: 396806867} --- !u!1 &1224714931 GameObject: m_ObjectHideFlags: 0 @@ -244,11 +339,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Darkmatter.App::Darkmatter.App.LifetimeScopes.GameplayLifetimescope parentReference: - TypeName: Darkmatter.App.LifetimeScopes.GameLifetimeScope + TypeName: Darkmatter.App.LifetimeScopes.RootLifetimeScope autoRun: 1 autoInjectGameObjects: [] serviceModules: + - {fileID: 1046038184} - {fileID: 1551649429} + - {fileID: 1991184380} + - {fileID: 1867428030} --- !u!1 &1551649427 GameObject: m_ObjectHideFlags: 0 @@ -294,6 +392,50 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Features.History::Darkmatter.Features.History.HistoryServiceModule historyButtonsView: {fileID: 0} +--- !u!1 &1867428028 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1867428029} + - component: {fileID: 1867428030} + m_Layer: 0 + m_Name: ColoringFeatureModule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1867428029 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867428028} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1965442263} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1867428030 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1867428028} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0dc926588daf4a139e807f48f664baf, type: 3} + m_Name: + m_EditorClassIdentifier: Features.Coloring::Darkmatter.Features.Coloring.ColoringFeatureModule --- !u!1 &1965442262 GameObject: m_ObjectHideFlags: 0 @@ -323,8 +465,10 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 1046038183} - {fileID: 1551649428} - {fileID: 1991184379} + - {fileID: 1867428029} m_Father: {fileID: 1224714932} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1991184378 @@ -480,4 +624,5 @@ SceneRoots: m_Roots: - {fileID: 2069155641} - {fileID: 590523275} + - {fileID: 396806866} - {fileID: 1224714932}