From ad256f109b94da3b5b27b8c09d97cdb9dc8fd4f2 Mon Sep 17 00:00:00 2001 From: cneicy Date: Sun, 16 Aug 2026 23:20:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(cordis):=20=E6=8E=A5=E5=85=A5=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E6=96=87=E7=BB=84=E5=90=88=E4=B8=8E=E6=A8=A1=E7=BB=84?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E7=83=AD=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 119 + Assets/Modules.meta | 8 + Assets/Modules/ShrinkApp.Core.meta | 8 + Assets/Modules/ShrinkApp.Core/CHANGELOG.md | 25 + .../Modules/ShrinkApp.Core/CHANGELOG.md.meta | 7 + Assets/Modules/ShrinkApp.Core/Editor.meta | 8 + .../Editor/ShrinkApp.Core.Editor.asmdef | 17 + .../Editor/ShrinkApp.Core.Editor.asmdef.meta | 7 + .../Editor/ShrinkAppEditorMenu.cs | 39 + .../Editor/ShrinkAppEditorMenu.cs.meta | 11 + Assets/Modules/ShrinkApp.Core/README.md | 31 + Assets/Modules/ShrinkApp.Core/README.md.meta | 7 + Assets/Modules/ShrinkApp.Core/Runtime.meta | 8 + .../Runtime/ShrinkApp.Core.Runtime.asmdef | 16 + .../ShrinkApp.Core.Runtime.asmdef.meta | 7 + .../ShrinkApp.Core/Runtime/ShrinkApp.cs | 81 + .../ShrinkApp.Core/Runtime/ShrinkApp.cs.meta | 11 + .../Runtime/ShrinkAppGeneratedRegistry.cs | 53 + .../ShrinkAppGeneratedRegistry.cs.meta | 11 + .../ShrinkApp.Core/Runtime/ShrinkAppHost.cs | 167 + .../Runtime/ShrinkAppHost.cs.meta | 11 + .../Runtime/ShrinkAppInstallers.cs | 16 + .../Runtime/ShrinkAppInstallers.cs.meta | 11 + .../ShrinkApp.Core/Runtime/ShrinkAppTypes.cs | 181 + .../Runtime/ShrinkAppTypes.cs.meta | 11 + Assets/Modules/ShrinkApp.Core/package.json | 22 + .../Modules/ShrinkApp.Core/package.json.meta | 7 + Assets/Modules/ShrinkApp.Starter.Basic.meta | 8 + .../ShrinkApp.Starter.Basic/CHANGELOG.md | 15 + .../ShrinkApp.Starter.Basic/CHANGELOG.md.meta | 7 + .../ShrinkApp.Starter.Basic/Editor.meta | 8 + .../ShrinkApp.Starter.Basic.Editor.asmdef | 22 + ...ShrinkApp.Starter.Basic.Editor.asmdef.meta | 7 + .../Editor/ShrinkAppBasicStarterGenerator.cs | 215 + .../ShrinkAppBasicStarterGenerator.cs.meta | 11 + .../Modules/ShrinkApp.Starter.Basic/README.md | 44 + .../ShrinkApp.Starter.Basic/README.md.meta | 7 + .../ShrinkApp.Starter.Basic/Runtime.meta | 8 + .../ShrinkApp.Starter.Basic.Runtime.asmdef | 29 + ...hrinkApp.Starter.Basic.Runtime.asmdef.meta | 7 + .../ShrinkAppBasicContextComposition.cs | 44 + .../ShrinkAppBasicContextComposition.cs.meta | 11 + .../Runtime/ShrinkAppBasicDemoRuntime.cs | 214 + .../Runtime/ShrinkAppBasicDemoRuntime.cs.meta | 11 + .../Runtime/ShrinkAppBasicSampleController.cs | 173 + .../ShrinkAppBasicSampleController.cs.meta | 11 + .../Runtime/ShrinkAppBasicStarterSettings.cs | 17 + .../ShrinkAppBasicStarterSettings.cs.meta | 11 + .../ShrinkApp.Starter.Basic/package.json | 34 + .../ShrinkApp.Starter.Basic/package.json.meta | 7 + .../ShrinkCommand.Integration.App.meta | 8 + .../ShrinkCommand.Integration.EventBus.meta | 8 + .../CHANGELOG.md | 16 + .../CHANGELOG.md.meta | 7 + .../README.md | 37 + .../README.md.meta | 7 + .../ShrinkCommand.Integration.EventBus.asmdef | 19 + ...nkCommand.Integration.EventBus.asmdef.meta | 7 + .../ShrinkCommandEventBusBridge.cs | 209 + .../ShrinkCommandEventBusBridge.cs.meta | 11 + .../ShrinkCommandEventBusBridgeEvents.cs | 49 + .../ShrinkCommandEventBusBridgeEvents.cs.meta | 11 + .../ShrinkCommandEventBusBridgeExtensions.cs | 29 + ...inkCommandEventBusBridgeExtensions.cs.meta | 11 + .../ShrinkCommandEventBusBridgeOptions.cs | 10 + ...ShrinkCommandEventBusBridgeOptions.cs.meta | 11 + .../ShrinkCommandEventBusComponent.cs | 36 + .../ShrinkCommandEventBusComponent.cs.meta | 11 + .../package.json | 17 + .../package.json.meta | 7 + .../ShrinkCommand.Integration.Network.meta | 8 + .../CHANGELOG.md | 16 + .../CHANGELOG.md.meta | 7 + .../README.md | 24 + .../README.md.meta | 7 + .../ShrinkCommand.Integration.Network.asmdef | 19 + ...inkCommand.Integration.Network.asmdef.meta | 7 + ...hrinkCommandNetworkIntegrationComponent.cs | 49 + ...CommandNetworkIntegrationComponent.cs.meta | 11 + .../ShrinkNetworkCommandBridge.cs | 86 + .../ShrinkNetworkCommandBridge.cs.meta | 11 + .../ShrinkNetworkCommandBridgeExtensions.cs | 52 + ...rinkNetworkCommandBridgeExtensions.cs.meta | 11 + .../ShrinkNetworkCommandBridgeOptions.cs | 15 + .../ShrinkNetworkCommandBridgeOptions.cs.meta | 11 + .../ShrinkNetworkCommandContracts.cs | 20 + .../ShrinkNetworkCommandContracts.cs.meta | 11 + .../ShrinkNetworkCommandSource.cs | 79 + .../ShrinkNetworkCommandSource.cs.meta | 11 + .../Tests.meta | 8 + .../Tests/IntegrationComponentsTests.cs | 99 + .../Tests/IntegrationComponentsTests.cs.meta | 11 + ...nkCommand.Integration.Network.Tests.asmdef | 28 + ...mand.Integration.Network.Tests.asmdef.meta | 7 + .../package.json | 22 + .../package.json.meta | 7 + Assets/Modules/ShrinkCommand.meta | 8 + Assets/Modules/ShrinkCommand/CHANGELOG.md | 26 + .../Modules/ShrinkCommand/CHANGELOG.md.meta | 7 + Assets/Modules/ShrinkCommand/README.md | 85 + Assets/Modules/ShrinkCommand/README.md.meta | 7 + Assets/Modules/ShrinkCommand/Runtime.meta | 8 + .../Modules/ShrinkCommand/Runtime/Core.meta | 8 + .../Runtime/Core/ShrinkCommandLogger.cs | 53 + .../Runtime/Core/ShrinkCommandLogger.cs.meta | 11 + .../Runtime/Core/ShrinkCommandRuntime.cs | 22 + .../Runtime/Core/ShrinkCommandRuntime.cs.meta | 11 + .../Runtime/Core/ShrinkCommandService.cs | 884 ++ .../Runtime/Core/ShrinkCommandService.cs.meta | 11 + .../ShrinkCommand/Runtime/Metadata.meta | 8 + .../Metadata/ShrinkCommandAttributes.cs | 25 + .../Metadata/ShrinkCommandAttributes.cs.meta | 11 + .../Metadata/ShrinkCommandConstants.cs | 7 + .../Metadata/ShrinkCommandConstants.cs.meta | 11 + .../Runtime/Metadata/ShrinkCommandTypes.cs | 144 + .../Metadata/ShrinkCommandTypes.cs.meta | 11 + .../ShrinkCommand/Runtime/Routing.meta | 8 + .../Routing/ShrinkCommandGeneratedRegistry.cs | 62 + .../ShrinkCommandGeneratedRegistry.cs.meta | 11 + .../Runtime/Routing/ShrinkCommandRegHelper.cs | 116 + .../Routing/ShrinkCommandRegHelper.cs.meta | 11 + .../Runtime/ShrinkCommand.Runtime.asmdef | 12 + .../Runtime/ShrinkCommand.Runtime.asmdef.meta | 7 + Assets/Modules/ShrinkCommand/package.json | 20 + .../Modules/ShrinkCommand/package.json.meta | 7 + Assets/Modules/ShrinkContext.AppAdapter.meta | 8 + .../ShrinkContext.AppAdapter/README.md | 40 + .../ShrinkContext.AppAdapter/README.md.meta | 7 + .../ShrinkContext.AppAdapter/Runtime.meta | 8 + .../Runtime/ShrinkAppInstallerComponent.cs | 62 + .../ShrinkAppInstallerComponent.cs.meta | 11 + .../Runtime/ShrinkAppLoaderBootstrapper.cs | 64 + .../ShrinkAppLoaderBootstrapper.cs.meta | 11 + .../Runtime/ShrinkAppLoaderHost.cs | 228 + .../Runtime/ShrinkAppLoaderHost.cs.meta | 11 + .../ShrinkContext.AppAdapter.Runtime.asmdef | 15 + ...rinkContext.AppAdapter.Runtime.asmdef.meta | 7 + .../ShrinkContext.AppAdapter/Tests.meta | 8 + .../Tests/NativeWiringTests.cs | 100 + .../Tests/NativeWiringTests.cs.meta | 11 + .../Tests/ShrinkAppInstallerComponentTests.cs | 174 + .../ShrinkAppInstallerComponentTests.cs.meta | 11 + .../Tests/ShrinkAppLoaderHostTests.cs | 205 + .../Tests/ShrinkAppLoaderHostTests.cs.meta | 11 + .../ShrinkContext.AppAdapter.Tests.asmdef | 31 + ...ShrinkContext.AppAdapter.Tests.asmdef.meta | 7 + .../ShrinkContext.AppAdapter/package.json | 23 + .../package.json.meta | 7 + Assets/Modules/ShrinkContext.Core.meta | 8 + Assets/Modules/ShrinkContext.Core/README.md | 64 + .../Modules/ShrinkContext.Core/README.md.meta | 7 + .../Modules/ShrinkContext.Core/Runtime.meta | 8 + .../ShrinkContext.Core/Runtime/Coeffects.meta | 8 + .../Runtime/Coeffects/ShrinkCoeffectTypes.cs | 57 + .../Coeffects/ShrinkCoeffectTypes.cs.meta | 11 + .../ShrinkContext.Core/Runtime/Context.meta | 8 + .../Runtime/Context/ShrinkCtx.cs | 197 + .../Runtime/Context/ShrinkCtx.cs.meta | 11 + .../Runtime/Context/ShrinkEffect.cs | 61 + .../Runtime/Context/ShrinkEffect.cs.meta | 11 + .../ShrinkContext.Core/Runtime/Fibers.meta | 8 + .../Runtime/Fibers/IShrinkComponent.cs | 47 + .../Runtime/Fibers/IShrinkComponent.cs.meta | 11 + .../Runtime/Fibers/ShrinkFiber.cs | 66 + .../Runtime/Fibers/ShrinkFiber.cs.meta | 11 + .../ShrinkContext.Core/Runtime/Loader.meta | 8 + .../Runtime/Loader/ShrinkLoader.cs | 232 + .../Runtime/Loader/ShrinkLoader.cs.meta | 11 + .../Runtime/ShrinkContext.Core.Runtime.asmdef | 12 + .../ShrinkContext.Core.Runtime.asmdef.meta | 7 + .../Runtime/ShrinkContextDefaults.cs | 28 + .../Runtime/ShrinkContextDefaults.cs.meta | 11 + .../Runtime/ShrinkContextRuntime.cs | 365 + .../Runtime/ShrinkContextRuntime.cs.meta | 11 + Assets/Modules/ShrinkContext.Core/Tests.meta | 8 + .../Tests/CoeffectAccessTests.cs | 122 + .../Tests/CoeffectAccessTests.cs.meta | 11 + .../Tests/EffectTrackingTests.cs | 131 + .../Tests/EffectTrackingTests.cs.meta | 11 + .../Tests/FiberLifecycleTests.cs | 271 + .../Tests/FiberLifecycleTests.cs.meta | 11 + .../ShrinkContext.Core/Tests/LoaderTests.cs | 227 + .../Tests/LoaderTests.cs.meta | 11 + .../Tests/ShrinkContext.Core.Tests.asmdef | 22 + .../ShrinkContext.Core.Tests.asmdef.meta | 7 + .../Tests/TestComponents.cs | 266 + .../Tests/TestComponents.cs.meta | 11 + .../Modules/ShrinkContext.Core/package.json | 22 + .../ShrinkContext.Core/package.json.meta | 7 + .../ShrinkContext.EventBusAdapter.meta | 8 + .../Runtime.meta | 8 + ...rinkContext.EventBusAdapter.Runtime.asmdef | 14 + ...ontext.EventBusAdapter.Runtime.asmdef.meta | 7 + .../Runtime/ShrinkEventBusEffects.cs | 56 + .../Runtime/ShrinkEventBusEffects.cs.meta | 11 + .../ShrinkContext.EventBusAdapter/Tests.meta | 8 + .../Tests/EventBusEffectTests.cs | 97 + .../Tests/EventBusEffectTests.cs.meta | 11 + ...ShrinkContext.EventBusAdapter.Tests.asmdef | 24 + ...kContext.EventBusAdapter.Tests.asmdef.meta | 7 + .../package.json | 22 + .../package.json.meta | 7 + Assets/Modules/ShrinkDataSaver | 1 + .../ShrinkDataSaver.Integration.App.meta | 8 + .../ShrinkDataSaver.Integration.EventBus | 1 + .../ShrinkDataSaver.Integration.EventBus.meta | 8 + Assets/Modules/ShrinkDataSaver.meta | 8 + Assets/Modules/ShrinkEventBus | 1 + Assets/Modules/ShrinkEventBus.meta | 8 + Assets/Modules/ShrinkModFramework.meta | 8 + .../Modules/ShrinkModFramework/CHANGELOG.md | 20 + .../ShrinkModFramework/CHANGELOG.md.meta | 7 + Assets/Modules/ShrinkModFramework/Editor.meta | 8 + .../Editor/Scaffolding.meta | 8 + .../ExternalModProjectTemplate.meta | 8 + .../ExternalModProjectTemplate/.gitignore.txt | 3 + .../ExternalModProjectTemplate/README.md.txt | 100 + .../README.md.txt.meta | 7 + .../__PROJECT_NAME__.csproj.txt | 22 + .../__PROJECT_NAME__.csproj.txt.meta | 7 + .../ExternalModProjectTemplate/build.ps1.txt | 32 + .../build.ps1.txt.meta | 7 + .../dev-env.ps1.txt | 8 + .../dev-env.ps1.txt.meta | 7 + .../global.json.txt | 6 + .../global.json.txt.meta | 7 + .../ExternalModProjectTemplate/src.meta | 8 + .../src/__PROJECT_NAME__Contracts.cs.txt | 25 + .../src/__PROJECT_NAME__Contracts.cs.txt.meta | 7 + .../src/__PROJECT_NAME__Mod.cs.txt | 70 + .../src/__PROJECT_NAME__Mod.cs.txt.meta | 7 + .../Editor/Scaffolding/InRepoModTemplate.meta | 8 + .../InRepoModTemplate/README.md.txt | 39 + .../InRepoModTemplate/README.md.txt.meta | 7 + .../InRepoModTemplate/Runtime.meta | 8 + .../Runtime/__ASMDEF_NAME__.asmdef.txt | 18 + .../Runtime/__ASMDEF_NAME__.asmdef.txt.meta | 7 + .../Runtime/__PROJECT_NAME__Contracts.cs.txt | 25 + .../__PROJECT_NAME__Contracts.cs.txt.meta | 7 + .../Runtime/__PROJECT_NAME__Mod.cs.txt | 70 + .../Runtime/__PROJECT_NAME__Mod.cs.txt.meta | 7 + .../ShrinkExternalModTemplateGenerator.cs | 248 + ...ShrinkExternalModTemplateGenerator.cs.meta | 11 + .../ShrinkInRepoModTemplateGenerator.cs | 203 + .../ShrinkInRepoModTemplateGenerator.cs.meta | 11 + .../Scaffolding/ShrinkModSdkExporter.cs | 488 + .../Scaffolding/ShrinkModSdkExporter.cs.meta | 11 + Assets/Modules/ShrinkModFramework/README.md | 679 ++ .../Modules/ShrinkModFramework/README.md.meta | 7 + .../Modules/ShrinkModFramework/Runtime.meta | 8 + .../ShrinkModFramework/Runtime/Bootstrap.meta | 8 + .../Runtime/Bootstrap/ShrinkModBootstrap.cs | 32 + .../Bootstrap/ShrinkModBootstrap.cs.meta | 11 + .../Bootstrap/ShrinkModFrameworkSettings.cs | 66 + .../ShrinkModFrameworkSettings.cs.meta | 11 + .../Bootstrap/ShrinkModRuntimeBootstrap.cs | 34 + .../ShrinkModRuntimeBootstrap.cs.meta | 11 + .../Bootstrap/ShrinkModRuntimeDriver.cs | 167 + .../Bootstrap/ShrinkModRuntimeDriver.cs.meta | 11 + .../ShrinkModFramework/Runtime/Context.meta | 8 + .../Runtime/Context/ShrinkModComponent.cs | 80 + .../Context/ShrinkModComponent.cs.meta | 11 + .../Context/ShrinkModComponentDiscovery.cs | 122 + .../ShrinkModComponentDiscovery.cs.meta | 11 + .../Context/ShrinkModComponentSource.cs | 27 + .../Context/ShrinkModComponentSource.cs.meta | 11 + .../Runtime/Context/ShrinkModContextHost.cs | 262 + .../Context/ShrinkModContextHost.cs.meta | 11 + .../Runtime/Context/ShrinkModCordisRuntime.cs | 57 + .../Context/ShrinkModCordisRuntime.cs.meta | 11 + .../ShrinkModFramework/Runtime/Core.meta | 8 + .../Runtime/Core/IShrinkMod.cs | 10 + .../Runtime/Core/IShrinkMod.cs.meta | 11 + .../Runtime/Core/ShrinkModBase.cs | 10 + .../Runtime/Core/ShrinkModBase.cs.meta | 11 + .../Runtime/Core/ShrinkModContext.cs | 87 + .../Runtime/Core/ShrinkModContext.cs.meta | 11 + .../Runtime/Core/ShrinkModHandle.cs | 17 + .../Runtime/Core/ShrinkModHandle.cs.meta | 11 + .../Runtime/Integration.meta | 8 + .../ShrinkModOptionalRuntimeIntegration.cs | 145 + ...hrinkModOptionalRuntimeIntegration.cs.meta | 11 + .../ShrinkModFramework/Runtime/Loading.meta | 8 + .../ShrinkExternalModAssemblyLoader.cs | 187 + .../ShrinkExternalModAssemblyLoader.cs.meta | 11 + .../Loading/ShrinkHarmonyPatchService.cs | 131 + .../Loading/ShrinkHarmonyPatchService.cs.meta | 11 + .../Runtime/Loading/ShrinkModLoader.cs | 459 + .../Runtime/Loading/ShrinkModLoader.cs.meta | 11 + .../ShrinkModFramework/Runtime/Metadata.meta | 8 + .../Runtime/Metadata/ShrinkModAttribute.cs | 29 + .../Metadata/ShrinkModAttribute.cs.meta | 11 + .../Metadata/ShrinkModDependencyAttribute.cs | 22 + .../ShrinkModDependencyAttribute.cs.meta | 11 + .../Runtime/Metadata/ShrinkModInfo.cs | 54 + .../Runtime/Metadata/ShrinkModInfo.cs.meta | 11 + .../Runtime/Metadata/ShrinkModState.cs | 12 + .../Runtime/Metadata/ShrinkModState.cs.meta | 11 + .../Runtime/Metadata/ShrinkVersionUtility.cs | 45 + .../Metadata/ShrinkVersionUtility.cs.meta | 11 + .../ShrinkModFramework/Runtime/Network.meta | 8 + .../Network/IShrinkModNetworkTransport.cs | 14 + .../IShrinkModNetworkTransport.cs.meta | 11 + .../Network/ShrinkModNetworkManager.cs | 170 + .../Network/ShrinkModNetworkManager.cs.meta | 11 + .../Runtime/Network/ShrinkModNetworkTypes.cs | 41 + .../Network/ShrinkModNetworkTypes.cs.meta | 11 + .../ShrinkModFramework/Runtime/Registry.meta | 8 + .../Runtime/Registry/ShrinkModRegistry.cs | 92 + .../Registry/ShrinkModRegistry.cs.meta | 11 + .../Registry/ShrinkModRegistryManager.cs | 53 + .../Registry/ShrinkModRegistryManager.cs.meta | 11 + .../Runtime/ShrinkModFramework.Runtime.asmdef | 17 + .../ShrinkModFramework.Runtime.asmdef.meta | 7 + Assets/Modules/ShrinkModFramework/Tests.meta | 8 + .../Tests/ShrinkModContextHostTests.cs | 252 + .../Tests/ShrinkModContextHostTests.cs.meta | 11 + .../Tests/ShrinkModFramework.Tests.asmdef | 23 + .../ShrinkModFramework.Tests.asmdef.meta | 7 + .../Modules/ShrinkModFramework/package.json | 17 + .../ShrinkModFramework/package.json.meta | 7 + .../ShrinkNetwork.Integration.App.meta | 8 + .../ShrinkNetwork.Integration.EventBus.meta | 8 + .../CHANGELOG.md | 15 + .../CHANGELOG.md.meta | 7 + .../README.md | 252 + .../README.md.meta | 7 + .../ShrinkNetwork.Integration.EventBus.asmdef | 19 + ...nkNetwork.Integration.EventBus.asmdef.meta | 7 + .../ShrinkNetworkDeltaEventContracts.cs | 17 + .../ShrinkNetworkDeltaEventContracts.cs.meta | 11 + .../ShrinkNetworkEventAttribute.cs | 9 + .../ShrinkNetworkEventAttribute.cs.meta | 11 + .../ShrinkNetworkEventBusBridge.cs | 551 ++ .../ShrinkNetworkEventBusBridge.cs.meta | 11 + .../ShrinkNetworkEventBusBridgeExtensions.cs | 68 + ...inkNetworkEventBusBridgeExtensions.cs.meta | 11 + .../ShrinkNetworkEventBusBridgeOptions.cs | 14 + ...ShrinkNetworkEventBusBridgeOptions.cs.meta | 11 + .../ShrinkNetworkEventBusComponent.cs | 35 + .../ShrinkNetworkEventBusComponent.cs.meta | 11 + .../ShrinkNetworkEventRequestOutcome.cs | 31 + .../ShrinkNetworkEventRequestOutcome.cs.meta | 11 + .../package.json | 17 + .../package.json.meta | 7 + Assets/Modules/ShrinkNetwork.meta | 8 + Assets/Modules/ShrinkNetwork/CHANGELOG.md | 29 + .../Modules/ShrinkNetwork/CHANGELOG.md.meta | 7 + Assets/Modules/ShrinkNetwork/Editor.meta | 8 + .../ShrinkNetwork/Editor/Scaffolding.meta | 8 + .../Scaffolding/ServerProjectTemplate.meta | 8 + .../AuthServerModule.cs.txt | 184 + .../AuthServerModule.cs.txt.meta | 7 + .../ServerProjectTemplate/Framework.meta | 8 + .../Framework/IShrinkServerModule.cs.txt | 13 + .../Framework/IShrinkServerModule.cs.txt.meta | 7 + .../Framework/ServerAuthStore.cs.txt | 152 + .../Framework/ServerAuthStore.cs.txt.meta | 7 + .../Framework/ServerHostOptions.cs.txt | 145 + .../Framework/ServerHostOptions.cs.txt.meta | 7 + .../Framework/ServerHostProperties.cs.txt | 280 + .../ServerHostProperties.cs.txt.meta | 7 + .../Framework/ServerModuleContext.cs.txt | 24 + .../Framework/ServerModuleContext.cs.txt.meta | 7 + .../Framework/ShrinkDedicatedServerApp.cs.txt | 123 + .../ShrinkDedicatedServerApp.cs.txt.meta | 7 + .../Framework/UnityNetworkCodeScanner.cs.txt | 145 + .../UnityNetworkCodeScanner.cs.txt.meta | 7 + .../KcpServerTransport.cs.txt | 340 + .../KcpServerTransport.cs.txt.meta | 7 + .../ServerProjectTemplate/Program.cs.txt | 109 + .../ServerProjectTemplate/Program.cs.txt.meta | 7 + .../ServerProjectTemplate/README.md.txt | 143 + .../ServerProjectTemplate/README.md.txt.meta | 7 + .../ShrinkNetwork.ServerHost.csproj.txt | 43 + .../ShrinkNetwork.ServerHost.csproj.txt.meta | 7 + .../TcpServerTransport.cs.txt | 266 + .../TcpServerTransport.cs.txt.meta | 7 + .../server.properties.txt | 37 + .../server.properties.txt.meta | 7 + .../ShrinkDedicatedServerScaffoldGenerator.cs | 1623 ++++ ...nkDedicatedServerScaffoldGenerator.cs.meta | 11 + Assets/Modules/ShrinkNetwork/Plugins.meta | 8 + .../ShrinkNetwork/Plugins/Kcp-CSharp.dll | Bin 0 -> 18944 bytes .../ShrinkNetwork/Plugins/Kcp-CSharp.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 18024 bytes ...m.Runtime.CompilerServices.Unsafe.dll.meta | 33 + Assets/Modules/ShrinkNetwork/README.md | 363 + Assets/Modules/ShrinkNetwork/README.md.meta | 7 + Assets/Modules/ShrinkNetwork/Runtime.meta | 8 + .../Modules/ShrinkNetwork/Runtime/Core.meta | 8 + .../Runtime/Core/ShrinkNetworkContext.cs | 31 + .../Runtime/Core/ShrinkNetworkContext.cs.meta | 11 + .../Runtime/Core/ShrinkNetworkLogger.cs | 53 + .../Runtime/Core/ShrinkNetworkLogger.cs.meta | 11 + .../Runtime/Core/ShrinkNetworkRuntime.cs | 26 + .../Runtime/Core/ShrinkNetworkRuntime.cs.meta | 11 + .../Runtime/Core/ShrinkNetworkService.cs | 857 ++ .../Runtime/Core/ShrinkNetworkService.cs.meta | 11 + .../Runtime/Core/ShrinkNetworkSession.cs | 113 + .../Runtime/Core/ShrinkNetworkSession.cs.meta | 11 + .../ShrinkNetwork/Runtime/Metadata.meta | 8 + .../Metadata/ShrinkNetworkAttributes.cs | 54 + .../Metadata/ShrinkNetworkAttributes.cs.meta | 11 + .../Metadata/ShrinkNetworkMessageContracts.cs | 16 + .../ShrinkNetworkMessageContracts.cs.meta | 11 + .../Runtime/Metadata/ShrinkNetworkPacket.cs | 33 + .../Metadata/ShrinkNetworkPacket.cs.meta | 11 + .../Metadata/ShrinkNetworkPermissions.cs | 64 + .../Metadata/ShrinkNetworkPermissions.cs.meta | 11 + .../Runtime/Metadata/ShrinkNetworkRpc.cs | 71 + .../Runtime/Metadata/ShrinkNetworkRpc.cs.meta | 11 + .../Metadata/ShrinkNetworkTransportEvent.cs | 49 + .../ShrinkNetworkTransportEvent.cs.meta | 11 + .../ShrinkNetwork/Runtime/Routing.meta | 8 + .../Routing/ShrinkNetworkGeneratedRegistry.cs | 81 + .../ShrinkNetworkGeneratedRegistry.cs.meta | 11 + .../Routing/ShrinkNetworkMessageRegistry.cs | 60 + .../ShrinkNetworkMessageRegistry.cs.meta | 11 + .../Runtime/Routing/ShrinkNetworkRegHelper.cs | 210 + .../Routing/ShrinkNetworkRegHelper.cs.meta | 11 + .../Runtime/Routing/ShrinkNetworkRouter.cs | 152 + .../Routing/ShrinkNetworkRouter.cs.meta | 11 + .../ShrinkNetwork/Runtime/Serialization.meta | 8 + .../Serialization/IShrinkNetworkSerializer.cs | 11 + .../IShrinkNetworkSerializer.cs.meta | 11 + .../ShrinkJsonNetworkSerializer.cs | 29 + .../ShrinkJsonNetworkSerializer.cs.meta | 11 + .../ShrinkMessagePackNetworkSerializer.cs | 150 + ...ShrinkMessagePackNetworkSerializer.cs.meta | 11 + .../Runtime/ShrinkNetwork.Runtime.asmdef | 16 + .../Runtime/ShrinkNetwork.Runtime.asmdef.meta | 7 + .../ShrinkNetwork/Runtime/Transport.meta | 8 + .../Runtime/Transport/Abstractions.meta | 8 + .../IShrinkNetworkAsyncTransport.cs | 9 + .../IShrinkNetworkAsyncTransport.cs.meta | 11 + .../Abstractions/IShrinkNetworkTransport.cs | 47 + .../IShrinkNetworkTransport.cs.meta | 11 + .../ShrinkNetwork/Runtime/Transport/Kcp.meta | 8 + .../Transport/Kcp/ShrinkKcpClientTransport.cs | 278 + .../Kcp/ShrinkKcpClientTransport.cs.meta | 11 + .../Runtime/Transport/Kcp/ShrinkKcpPeer.cs | 209 + .../Transport/Kcp/ShrinkKcpPeer.cs.meta | 11 + .../Transport/Kcp/ShrinkKcpServerTransport.cs | 315 + .../Kcp/ShrinkKcpServerTransport.cs.meta | 11 + .../Kcp/ShrinkKcpTransportOptions.cs | 69 + .../Kcp/ShrinkKcpTransportOptions.cs.meta | 11 + .../Kcp/ShrinkKcpTransportProtocol.cs | 114 + .../Kcp/ShrinkKcpTransportProtocol.cs.meta | 11 + .../Runtime/Transport/Loopback.meta | 8 + .../Loopback/ShrinkLoopbackTransport.cs | 77 + .../Loopback/ShrinkLoopbackTransport.cs.meta | 11 + .../ShrinkNetwork/Runtime/Transport/Tcp.meta | 8 + .../Transport/Tcp/ShrinkTcpClientTransport.cs | 243 + .../Tcp/ShrinkTcpClientTransport.cs.meta | 11 + .../Transport/Tcp/ShrinkTcpServerTransport.cs | 295 + .../Tcp/ShrinkTcpServerTransport.cs.meta | 11 + .../Transport/Tcp/ShrinkTcpTlsOptions.cs | 2 + .../Transport/Tcp/ShrinkTcpTlsOptions.cs.meta | 11 + Assets/Modules/ShrinkNetwork/Samples.meta | 8 + .../ShrinkNetwork/Samples/PingClient.meta | 8 + .../ShrinkNetworkPingClientExample.cs | 167 + .../ShrinkNetworkPingClientExample.cs.meta | 11 + Assets/Modules/ShrinkNetwork/package.json | 16 + .../Modules/ShrinkNetwork/package.json.meta | 7 + Assets/Modules/ShrinkShared.CodeGen.meta | 8 + .../Modules/ShrinkShared.CodeGen/Editor.meta | 8 + .../Editor/PostProcessorAssemblyResolver.cs | 84 + .../PostProcessorAssemblyResolver.cs.meta | 11 + .../Editor/PostProcessorReflectionImporter.cs | 34 + .../PostProcessorReflectionImporter.cs.meta | 11 + .../Editor/ShrinkRegistryILPostProcessor.cs | 401 + .../ShrinkRegistryILPostProcessor.cs.meta | 11 + .../Editor/ShrinkShared.CodeGen.asmdef | 26 + .../Editor/ShrinkShared.CodeGen.asmdef.meta | 7 + Assets/Modules/ShrinkTutorial.meta | 8 + Assets/Modules/ShrinkTutorial/CHANGELOG.md | 16 + .../Modules/ShrinkTutorial/CHANGELOG.md.meta | 7 + Assets/Modules/ShrinkTutorial/Editor.meta | 8 + .../ShrinkTutorial/Editor/Samples.meta | 8 + .../ShrinkTutorialSampleSceneBuilder.cs | 343 + .../ShrinkTutorialSampleSceneBuilder.cs.meta | 11 + .../Editor/ShrinkTutorial.Editor.asmdef | 18 + .../Editor/ShrinkTutorial.Editor.asmdef.meta | 7 + .../Editor/ShrinkTutorialEditorWindow.cs | 181 + .../Editor/ShrinkTutorialEditorWindow.cs.meta | 11 + Assets/Modules/ShrinkTutorial/README.md | 116 + Assets/Modules/ShrinkTutorial/README.md.meta | 7 + Assets/Modules/ShrinkTutorial/Runtime.meta | 8 + .../Modules/ShrinkTutorial/Runtime/Core.meta | 8 + .../Runtime/Core/ShrinkTutorialData.cs | 14 + .../Runtime/Core/ShrinkTutorialData.cs.meta | 11 + .../Runtime/Core/ShrinkTutorialDatabase.cs | 93 + .../Core/ShrinkTutorialDatabase.cs.meta | 11 + .../Runtime/Core/ShrinkTutorialEnums.cs | 34 + .../Runtime/Core/ShrinkTutorialEnums.cs.meta | 11 + .../Core/ShrinkTutorialLocalization.cs | 28 + .../Core/ShrinkTutorialLocalization.cs.meta | 11 + .../Runtime/Core/ShrinkTutorialManager.cs | 717 ++ .../Core/ShrinkTutorialManager.cs.meta | 11 + .../Core/ShrinkTutorialRuntimeBootstrap.cs | 25 + .../ShrinkTutorialRuntimeBootstrap.cs.meta | 11 + .../Runtime/Core/ShrinkTutorialSettings.cs | 61 + .../Core/ShrinkTutorialSettings.cs.meta | 11 + .../Runtime/Core/ShrinkTutorialStep.cs | 44 + .../Runtime/Core/ShrinkTutorialStep.cs.meta | 11 + .../Core/ShrinkTutorialTargetUtility.cs | 172 + .../Core/ShrinkTutorialTargetUtility.cs.meta | 11 + .../ShrinkTutorial/Runtime/Samples.meta | 8 + .../ShrinkTutorialSampleSceneController.cs | 277 + ...hrinkTutorialSampleSceneController.cs.meta | 11 + .../Runtime/ShrinkTutorial.Runtime.asmdef | 15 + .../ShrinkTutorial.Runtime.asmdef.meta | 7 + .../ShrinkTutorial/Runtime/Storage.meta | 8 + .../Runtime/Storage/IShrinkTutorialStorage.cs | 19 + .../Storage/IShrinkTutorialStorage.cs.meta | 11 + .../PlayerPrefsShrinkTutorialStorage.cs | 41 + .../PlayerPrefsShrinkTutorialStorage.cs.meta | 11 + .../ShrinkTutorial/Runtime/Trigger.meta | 8 + .../Runtime/Trigger/ShrinkTutorialAnchor.cs | 37 + .../Trigger/ShrinkTutorialAnchor.cs.meta | 11 + .../Trigger/ShrinkTutorialAnchorRegistry.cs | 42 + .../ShrinkTutorialAnchorRegistry.cs.meta | 11 + .../Runtime/Trigger/ShrinkTutorialTrigger.cs | 49 + .../Trigger/ShrinkTutorialTrigger.cs.meta | 11 + Assets/Modules/ShrinkTutorial/Runtime/UI.meta | 8 + .../Runtime/UI/ShrinkTutorialDialog.cs | 222 + .../Runtime/UI/ShrinkTutorialDialog.cs.meta | 11 + .../Runtime/UI/ShrinkTutorialMask.cs | 135 + .../Runtime/UI/ShrinkTutorialMask.cs.meta | 11 + Assets/Modules/ShrinkTutorial/Samples.meta | 8 + .../ShrinkTutorial/Samples/Resources.meta | 8 + .../Resources/ShrinkTutorialSettings.asset | 21 + .../ShrinkTutorialSettings.asset.meta | 8 + .../ShrinkTutorialSampleDatabase.asset | 16 + .../ShrinkTutorialSampleDatabase.asset.meta | 8 + .../ShrinkTutorialSampleTutorial.asset | 93 + .../ShrinkTutorialSampleTutorial.asset.meta | 8 + Assets/Modules/ShrinkTutorial/package.json | 22 + .../Modules/ShrinkTutorial/package.json.meta | 7 + Assets/Resources.meta | 8 + .../ShrinkAppBasicStarterSettings.asset | 20 + .../ShrinkAppBasicStarterSettings.asset.meta | 8 + Assets/Resources/ShrinkAppSettings.asset | 18 + Assets/Resources/ShrinkAppSettings.asset.meta | 8 + .../Resources/ShrinkDataSaverSettings.asset | 21 + .../ShrinkDataSaverSettings.asset.meta | 8 + Assets/Scenes.meta | 8 + Assets/Scenes/SampleScene.unity | 352 + Assets/Scenes/SampleScene.unity.meta | 7 + Assets/Scenes/ShrinkAppEntry.unity | 2840 ++++++ Assets/Scenes/ShrinkAppEntry.unity.meta | 7 + .../ShrinkEmbeddedHostNetworkDemo.unity | 396 + .../ShrinkEmbeddedHostNetworkDemo.unity.meta | 7 + ...kEmbeddedHostNetworkDemoSceneController.cs | 352 + ...ddedHostNetworkDemoSceneController.cs.meta | 11 + Assets/Scenes/ShrinkLanMovementDemo.unity | 396 + .../Scenes/ShrinkLanMovementDemo.unity.meta | 7 + .../Scenes/ShrinkLanMovementDemoController.cs | 1544 ++++ .../ShrinkLanMovementDemoController.cs.meta | 11 + Assets/Scenes/ShrinkTutorialSample.unity | 1782 ++++ Assets/Scenes/ShrinkTutorialSample.unity.meta | 7 + Assets/Screenshots.meta | 8 + Assets/Settings.meta | 8 + .../Settings/Lit2DSceneTemplate.scenetemplate | 71 + .../Lit2DSceneTemplate.scenetemplate.meta | 8 + Assets/Settings/Renderer2D.asset | 60 + Assets/Settings/Renderer2D.asset.meta | 8 + Assets/Settings/Scenes.meta | 8 + .../Settings/Scenes/URP2DSceneTemplate.unity | 350 + .../Scenes/URP2DSceneTemplate.unity.meta | 7 + Assets/Settings/UniversalRP.asset | 114 + Assets/Settings/UniversalRP.asset.meta | 8 + Assets/TextMesh Pro.meta | 8 + Assets/TextMesh Pro/Documentation.meta | 8 + .../TextMesh Pro User Guide 2016.pdf | Bin 0 -> 694398 bytes .../TextMesh Pro User Guide 2016.pdf.meta | 7 + Assets/TextMesh Pro/Fonts.meta | 8 + .../Fonts/LiberationSans - OFL.txt | 46 + .../Fonts/LiberationSans - OFL.txt.meta | 8 + Assets/TextMesh Pro/Fonts/LiberationSans.ttf | Bin 0 -> 350200 bytes .../Fonts/LiberationSans.ttf.meta | 19 + Assets/TextMesh Pro/Resources.meta | 8 + .../Resources/Fonts & Materials.meta | 9 + .../LiberationSans SDF - Drop Shadow.mat | 106 + .../LiberationSans SDF - Drop Shadow.mat.meta | 8 + .../LiberationSans SDF - Fallback.asset | 343 + .../LiberationSans SDF - Fallback.asset.meta | 8 + .../LiberationSans SDF - Outline.mat | 104 + .../LiberationSans SDF - Outline.mat.meta | 8 + .../LiberationSans SDF.asset | 7821 +++++++++++++++++ .../LiberationSans SDF.asset.meta | 8 + .../LineBreaking Following Characters.txt | 1 + ...LineBreaking Following Characters.txt.meta | 8 + .../LineBreaking Leading Characters.txt | 1 + .../LineBreaking Leading Characters.txt.meta | 8 + .../TextMesh Pro/Resources/Sprite Assets.meta | 9 + .../Resources/Sprite Assets/EmojiOne.asset | 659 ++ .../Sprite Assets/EmojiOne.asset.meta | 8 + .../TextMesh Pro/Resources/Style Sheets.meta | 9 + .../Style Sheets/Default Style Sheet.asset | 68 + .../Default Style Sheet.asset.meta | 8 + .../TextMesh Pro/Resources/TMP Settings.asset | 46 + .../Resources/TMP Settings.asset.meta | 8 + Assets/TextMesh Pro/Shaders.meta | 8 + .../Shaders/TMP_Bitmap-Custom-Atlas.shader | 143 + .../TMP_Bitmap-Custom-Atlas.shader.meta | 9 + .../Shaders/TMP_Bitmap-Mobile.shader | 145 + .../Shaders/TMP_Bitmap-Mobile.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader | 143 + .../Shaders/TMP_Bitmap.shader.meta | 9 + .../Shaders/TMP_SDF Overlay.shader | 317 + .../Shaders/TMP_SDF Overlay.shader.meta | 9 + .../TextMesh Pro/Shaders/TMP_SDF SSD.shader | 310 + .../Shaders/TMP_SDF SSD.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Masking.shader | 247 + .../TMP_SDF-Mobile Masking.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Overlay.shader | 240 + .../TMP_SDF-Mobile Overlay.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile SSD.shader | 106 + .../Shaders/TMP_SDF-Mobile SSD.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile.shader | 240 + .../Shaders/TMP_SDF-Mobile.shader.meta | 9 + .../Shaders/TMP_SDF-Surface-Mobile.shader | 138 + .../TMP_SDF-Surface-Mobile.shader.meta | 9 + .../Shaders/TMP_SDF-Surface.shader | 158 + .../Shaders/TMP_SDF-Surface.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_SDF.shader | 317 + .../TextMesh Pro/Shaders/TMP_SDF.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_Sprite.shader | 116 + .../Shaders/TMP_Sprite.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMPro.cginc | 84 + Assets/TextMesh Pro/Shaders/TMPro.cginc.meta | 9 + .../TextMesh Pro/Shaders/TMPro_Mobile.cginc | 157 + .../Shaders/TMPro_Mobile.cginc.meta | 9 + .../Shaders/TMPro_Properties.cginc | 85 + .../Shaders/TMPro_Properties.cginc.meta | 9 + .../TextMesh Pro/Shaders/TMPro_Surface.cginc | 101 + .../Shaders/TMPro_Surface.cginc.meta | 9 + Assets/TextMesh Pro/Sprites.meta | 8 + .../Sprites/EmojiOne Attribution.txt | 3 + .../Sprites/EmojiOne Attribution.txt.meta | 7 + Assets/TextMesh Pro/Sprites/EmojiOne.json | 156 + .../TextMesh Pro/Sprites/EmojiOne.json.meta | 8 + Assets/TextMesh Pro/Sprites/EmojiOne.png | Bin 0 -> 112319 bytes Assets/TextMesh Pro/Sprites/EmojiOne.png.meta | 431 + ...niversalRenderPipelineGlobalSettings.asset | 27 + ...salRenderPipelineGlobalSettings.asset.meta | 8 + CORDIS_MIGRATION.md | 270 + DESIGN.md | 306 + NETWORK_PITFALLS.md | 378 + ProjectSettings/AudioManager.asset | 19 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 36 + ProjectSettings/EditorBuildSettings.asset | 14 + ProjectSettings/EditorSettings.asset | 41 + ProjectSettings/GraphicsSettings.asset | 68 + ProjectSettings/InputManager.asset | 487 + ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/NavMeshAreas.asset | 91 + ProjectSettings/NetworkManager.asset | 8 + ProjectSettings/PackageManagerSettings.asset | 36 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 782 ++ ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 239 + ProjectSettings/SceneTemplateSettings.json | 121 + ProjectSettings/ShaderGraphSettings.asset | 17 + ProjectSettings/TagManager.asset | 43 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/URPProjectSettings.asset | 15 + ProjectSettings/UnityConnectSettings.asset | 36 + ProjectSettings/VFXManager.asset | 12 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/XRSettings.asset | 10 + 676 files changed, 52168 insertions(+) create mode 100644 .gitignore create mode 100644 Assets/Modules.meta create mode 100644 Assets/Modules/ShrinkApp.Core.meta create mode 100644 Assets/Modules/ShrinkApp.Core/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkApp.Core/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Editor.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Editor/ShrinkApp.Core.Editor.asmdef create mode 100644 Assets/Modules/ShrinkApp.Core/Editor/ShrinkApp.Core.Editor.asmdef.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Editor/ShrinkAppEditorMenu.cs create mode 100644 Assets/Modules/ShrinkApp.Core/Editor/ShrinkAppEditorMenu.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Core/README.md create mode 100644 Assets/Modules/ShrinkApp.Core/README.md.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.Core.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.Core.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.cs create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppGeneratedRegistry.cs create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppGeneratedRegistry.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppHost.cs create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppHost.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppInstallers.cs create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppInstallers.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppTypes.cs create mode 100644 Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppTypes.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Core/package.json create mode 100644 Assets/Modules/ShrinkApp.Core/package.json.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Editor.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkApp.Starter.Basic.Editor.asmdef create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkApp.Starter.Basic.Editor.asmdef.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkAppBasicStarterGenerator.cs create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkAppBasicStarterGenerator.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/README.md create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/README.md.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkApp.Starter.Basic.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkApp.Starter.Basic.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkAppBasicContextComposition.cs create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkAppBasicContextComposition.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkAppBasicDemoRuntime.cs create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkAppBasicDemoRuntime.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkAppBasicSampleController.cs create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkAppBasicSampleController.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkAppBasicStarterSettings.cs create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/Runtime/ShrinkAppBasicStarterSettings.cs.meta create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/package.json create mode 100644 Assets/Modules/ShrinkApp.Starter.Basic/package.json.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.App.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/README.md create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/README.md.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommand.Integration.EventBus.asmdef create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommand.Integration.EventBus.asmdef.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusBridge.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusBridge.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusBridgeEvents.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusBridgeEvents.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusBridgeExtensions.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusBridgeExtensions.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusBridgeOptions.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusBridgeOptions.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusComponent.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/ShrinkCommandEventBusComponent.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/package.json create mode 100644 Assets/Modules/ShrinkCommand.Integration.EventBus/package.json.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/README.md create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/README.md.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkCommand.Integration.Network.asmdef create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkCommand.Integration.Network.asmdef.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkCommandNetworkIntegrationComponent.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkCommandNetworkIntegrationComponent.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandBridge.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandBridge.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandBridgeExtensions.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandBridgeExtensions.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandBridgeOptions.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandBridgeOptions.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandContracts.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandContracts.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandSource.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/ShrinkNetworkCommandSource.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/Tests.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/Tests/IntegrationComponentsTests.cs create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/Tests/IntegrationComponentsTests.cs.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/Tests/ShrinkCommand.Integration.Network.Tests.asmdef create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/Tests/ShrinkCommand.Integration.Network.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/package.json create mode 100644 Assets/Modules/ShrinkCommand.Integration.Network/package.json.meta create mode 100644 Assets/Modules/ShrinkCommand.meta create mode 100644 Assets/Modules/ShrinkCommand/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkCommand/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkCommand/README.md create mode 100644 Assets/Modules/ShrinkCommand/README.md.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Core.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Core/ShrinkCommandLogger.cs create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Core/ShrinkCommandLogger.cs.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Core/ShrinkCommandRuntime.cs create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Core/ShrinkCommandRuntime.cs.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Core/ShrinkCommandService.cs create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Core/ShrinkCommandService.cs.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Metadata.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Metadata/ShrinkCommandAttributes.cs create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Metadata/ShrinkCommandAttributes.cs.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Metadata/ShrinkCommandConstants.cs create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Metadata/ShrinkCommandConstants.cs.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Metadata/ShrinkCommandTypes.cs create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Metadata/ShrinkCommandTypes.cs.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Routing.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Routing/ShrinkCommandGeneratedRegistry.cs create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Routing/ShrinkCommandGeneratedRegistry.cs.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Routing/ShrinkCommandRegHelper.cs create mode 100644 Assets/Modules/ShrinkCommand/Runtime/Routing/ShrinkCommandRegHelper.cs.meta create mode 100644 Assets/Modules/ShrinkCommand/Runtime/ShrinkCommand.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkCommand/Runtime/ShrinkCommand.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkCommand/package.json create mode 100644 Assets/Modules/ShrinkCommand/package.json.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/README.md create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/README.md.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime/ShrinkAppInstallerComponent.cs create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime/ShrinkAppInstallerComponent.cs.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime/ShrinkAppLoaderBootstrapper.cs create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime/ShrinkAppLoaderBootstrapper.cs.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime/ShrinkAppLoaderHost.cs create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime/ShrinkAppLoaderHost.cs.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime/ShrinkContext.AppAdapter.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Runtime/ShrinkContext.AppAdapter.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests/NativeWiringTests.cs create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests/NativeWiringTests.cs.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests/ShrinkAppInstallerComponentTests.cs create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests/ShrinkAppInstallerComponentTests.cs.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests/ShrinkAppLoaderHostTests.cs create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests/ShrinkAppLoaderHostTests.cs.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests/ShrinkContext.AppAdapter.Tests.asmdef create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/Tests/ShrinkContext.AppAdapter.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/package.json create mode 100644 Assets/Modules/ShrinkContext.AppAdapter/package.json.meta create mode 100644 Assets/Modules/ShrinkContext.Core.meta create mode 100644 Assets/Modules/ShrinkContext.Core/README.md create mode 100644 Assets/Modules/ShrinkContext.Core/README.md.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Coeffects.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Coeffects/ShrinkCoeffectTypes.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Coeffects/ShrinkCoeffectTypes.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Context.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Context/ShrinkCtx.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Context/ShrinkCtx.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Context/ShrinkEffect.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Context/ShrinkEffect.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Fibers.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Fibers/IShrinkComponent.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Fibers/IShrinkComponent.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Fibers/ShrinkFiber.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Fibers/ShrinkFiber.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Loader.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Loader/ShrinkLoader.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/Loader/ShrinkLoader.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/ShrinkContext.Core.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/ShrinkContext.Core.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/ShrinkContextDefaults.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/ShrinkContextDefaults.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/ShrinkContextRuntime.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Runtime/ShrinkContextRuntime.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Tests.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/CoeffectAccessTests.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/CoeffectAccessTests.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/EffectTrackingTests.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/EffectTrackingTests.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/FiberLifecycleTests.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/FiberLifecycleTests.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/LoaderTests.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/LoaderTests.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/ShrinkContext.Core.Tests.asmdef create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/ShrinkContext.Core.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/TestComponents.cs create mode 100644 Assets/Modules/ShrinkContext.Core/Tests/TestComponents.cs.meta create mode 100644 Assets/Modules/ShrinkContext.Core/package.json create mode 100644 Assets/Modules/ShrinkContext.Core/package.json.meta create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter.meta create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Runtime.meta create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Runtime/ShrinkContext.EventBusAdapter.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Runtime/ShrinkContext.EventBusAdapter.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Runtime/ShrinkEventBusEffects.cs create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Runtime/ShrinkEventBusEffects.cs.meta create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Tests.meta create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Tests/EventBusEffectTests.cs create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Tests/EventBusEffectTests.cs.meta create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Tests/ShrinkContext.EventBusAdapter.Tests.asmdef create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/Tests/ShrinkContext.EventBusAdapter.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/package.json create mode 100644 Assets/Modules/ShrinkContext.EventBusAdapter/package.json.meta create mode 160000 Assets/Modules/ShrinkDataSaver create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.App.meta create mode 160000 Assets/Modules/ShrinkDataSaver.Integration.EventBus create mode 100644 Assets/Modules/ShrinkDataSaver.Integration.EventBus.meta create mode 100644 Assets/Modules/ShrinkDataSaver.meta create mode 160000 Assets/Modules/ShrinkEventBus create mode 100644 Assets/Modules/ShrinkEventBus.meta create mode 100644 Assets/Modules/ShrinkModFramework.meta create mode 100644 Assets/Modules/ShrinkModFramework/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkModFramework/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/.gitignore.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/README.md.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/README.md.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/__PROJECT_NAME__.csproj.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/__PROJECT_NAME__.csproj.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/build.ps1.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/build.ps1.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/dev-env.ps1.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/dev-env.ps1.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/global.json.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/global.json.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/src.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/src/__PROJECT_NAME__Contracts.cs.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/src/__PROJECT_NAME__Contracts.cs.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/src/__PROJECT_NAME__Mod.cs.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ExternalModProjectTemplate/src/__PROJECT_NAME__Mod.cs.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/README.md.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/README.md.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/Runtime.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/Runtime/__ASMDEF_NAME__.asmdef.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/Runtime/__ASMDEF_NAME__.asmdef.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/Runtime/__PROJECT_NAME__Contracts.cs.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/Runtime/__PROJECT_NAME__Contracts.cs.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/Runtime/__PROJECT_NAME__Mod.cs.txt create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/InRepoModTemplate/Runtime/__PROJECT_NAME__Mod.cs.txt.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ShrinkExternalModTemplateGenerator.cs create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ShrinkExternalModTemplateGenerator.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ShrinkInRepoModTemplateGenerator.cs create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ShrinkInRepoModTemplateGenerator.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ShrinkModSdkExporter.cs create mode 100644 Assets/Modules/ShrinkModFramework/Editor/Scaffolding/ShrinkModSdkExporter.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/README.md create mode 100644 Assets/Modules/ShrinkModFramework/README.md.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap/ShrinkModBootstrap.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap/ShrinkModBootstrap.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap/ShrinkModFrameworkSettings.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap/ShrinkModFrameworkSettings.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap/ShrinkModRuntimeBootstrap.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap/ShrinkModRuntimeBootstrap.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap/ShrinkModRuntimeDriver.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Bootstrap/ShrinkModRuntimeDriver.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModComponent.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModComponent.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModComponentDiscovery.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModComponentDiscovery.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModComponentSource.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModComponentSource.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModContextHost.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModContextHost.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModCordisRuntime.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Context/ShrinkModCordisRuntime.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core/IShrinkMod.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core/IShrinkMod.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core/ShrinkModBase.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core/ShrinkModBase.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core/ShrinkModContext.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core/ShrinkModContext.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core/ShrinkModHandle.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Core/ShrinkModHandle.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Integration.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Integration/ShrinkModOptionalRuntimeIntegration.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Integration/ShrinkModOptionalRuntimeIntegration.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Loading.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Loading/ShrinkExternalModAssemblyLoader.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Loading/ShrinkExternalModAssemblyLoader.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Loading/ShrinkHarmonyPatchService.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Loading/ShrinkHarmonyPatchService.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Loading/ShrinkModLoader.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Loading/ShrinkModLoader.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkModAttribute.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkModAttribute.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkModDependencyAttribute.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkModDependencyAttribute.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkModInfo.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkModInfo.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkModState.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkModState.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkVersionUtility.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Metadata/ShrinkVersionUtility.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Network.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Network/IShrinkModNetworkTransport.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Network/IShrinkModNetworkTransport.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Network/ShrinkModNetworkManager.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Network/ShrinkModNetworkManager.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Network/ShrinkModNetworkTypes.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Network/ShrinkModNetworkTypes.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Registry.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Registry/ShrinkModRegistry.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Registry/ShrinkModRegistry.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Registry/ShrinkModRegistryManager.cs create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/Registry/ShrinkModRegistryManager.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/ShrinkModFramework.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkModFramework/Runtime/ShrinkModFramework.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkModFramework/Tests.meta create mode 100644 Assets/Modules/ShrinkModFramework/Tests/ShrinkModContextHostTests.cs create mode 100644 Assets/Modules/ShrinkModFramework/Tests/ShrinkModContextHostTests.cs.meta create mode 100644 Assets/Modules/ShrinkModFramework/Tests/ShrinkModFramework.Tests.asmdef create mode 100644 Assets/Modules/ShrinkModFramework/Tests/ShrinkModFramework.Tests.asmdef.meta create mode 100644 Assets/Modules/ShrinkModFramework/package.json create mode 100644 Assets/Modules/ShrinkModFramework/package.json.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.App.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/README.md create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/README.md.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetwork.Integration.EventBus.asmdef create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetwork.Integration.EventBus.asmdef.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkDeltaEventContracts.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkDeltaEventContracts.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventAttribute.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventAttribute.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventBusBridge.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventBusBridge.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventBusBridgeExtensions.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventBusBridgeExtensions.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventBusBridgeOptions.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventBusBridgeOptions.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventBusComponent.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventBusComponent.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventRequestOutcome.cs create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/ShrinkNetworkEventRequestOutcome.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/package.json create mode 100644 Assets/Modules/ShrinkNetwork.Integration.EventBus/package.json.meta create mode 100644 Assets/Modules/ShrinkNetwork.meta create mode 100644 Assets/Modules/ShrinkNetwork/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkNetwork/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/AuthServerModule.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/AuthServerModule.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/IShrinkServerModule.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/IShrinkServerModule.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ServerAuthStore.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ServerAuthStore.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ServerHostOptions.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ServerHostOptions.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ServerHostProperties.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ServerHostProperties.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ServerModuleContext.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ServerModuleContext.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ShrinkDedicatedServerApp.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/ShrinkDedicatedServerApp.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/UnityNetworkCodeScanner.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Framework/UnityNetworkCodeScanner.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/KcpServerTransport.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/KcpServerTransport.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Program.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/Program.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/README.md.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/README.md.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/ShrinkNetwork.ServerHost.csproj.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/ShrinkNetwork.ServerHost.csproj.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/TcpServerTransport.cs.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/TcpServerTransport.cs.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/server.properties.txt create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ServerProjectTemplate/server.properties.txt.meta create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ShrinkDedicatedServerScaffoldGenerator.cs create mode 100644 Assets/Modules/ShrinkNetwork/Editor/Scaffolding/ShrinkDedicatedServerScaffoldGenerator.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Plugins.meta create mode 100644 Assets/Modules/ShrinkNetwork/Plugins/Kcp-CSharp.dll create mode 100644 Assets/Modules/ShrinkNetwork/Plugins/Kcp-CSharp.dll.meta create mode 100644 Assets/Modules/ShrinkNetwork/Plugins/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Assets/Modules/ShrinkNetwork/Plugins/System.Runtime.CompilerServices.Unsafe.dll.meta create mode 100644 Assets/Modules/ShrinkNetwork/README.md create mode 100644 Assets/Modules/ShrinkNetwork/README.md.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkContext.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkContext.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkLogger.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkLogger.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkRuntime.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkRuntime.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkService.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkService.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkSession.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Core/ShrinkNetworkSession.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkAttributes.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkAttributes.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkMessageContracts.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkMessageContracts.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkPacket.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkPacket.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkPermissions.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkPermissions.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkRpc.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkRpc.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkTransportEvent.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Metadata/ShrinkNetworkTransportEvent.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing/ShrinkNetworkGeneratedRegistry.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing/ShrinkNetworkGeneratedRegistry.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing/ShrinkNetworkMessageRegistry.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing/ShrinkNetworkMessageRegistry.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing/ShrinkNetworkRegHelper.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing/ShrinkNetworkRegHelper.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing/ShrinkNetworkRouter.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Routing/ShrinkNetworkRouter.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Serialization.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Serialization/IShrinkNetworkSerializer.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Serialization/IShrinkNetworkSerializer.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Serialization/ShrinkJsonNetworkSerializer.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Serialization/ShrinkJsonNetworkSerializer.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Serialization/ShrinkMessagePackNetworkSerializer.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Serialization/ShrinkMessagePackNetworkSerializer.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/ShrinkNetwork.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/ShrinkNetwork.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Abstractions.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Abstractions/IShrinkNetworkAsyncTransport.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Abstractions/IShrinkNetworkAsyncTransport.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Abstractions/IShrinkNetworkTransport.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Abstractions/IShrinkNetworkTransport.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpClientTransport.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpClientTransport.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpPeer.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpPeer.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpServerTransport.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpServerTransport.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpTransportOptions.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpTransportOptions.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpTransportProtocol.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Kcp/ShrinkKcpTransportProtocol.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Loopback.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Loopback/ShrinkLoopbackTransport.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Loopback/ShrinkLoopbackTransport.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Tcp.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Tcp/ShrinkTcpClientTransport.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Tcp/ShrinkTcpClientTransport.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Tcp/ShrinkTcpServerTransport.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Tcp/ShrinkTcpServerTransport.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Tcp/ShrinkTcpTlsOptions.cs create mode 100644 Assets/Modules/ShrinkNetwork/Runtime/Transport/Tcp/ShrinkTcpTlsOptions.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/Samples.meta create mode 100644 Assets/Modules/ShrinkNetwork/Samples/PingClient.meta create mode 100644 Assets/Modules/ShrinkNetwork/Samples/PingClient/ShrinkNetworkPingClientExample.cs create mode 100644 Assets/Modules/ShrinkNetwork/Samples/PingClient/ShrinkNetworkPingClientExample.cs.meta create mode 100644 Assets/Modules/ShrinkNetwork/package.json create mode 100644 Assets/Modules/ShrinkNetwork/package.json.meta create mode 100644 Assets/Modules/ShrinkShared.CodeGen.meta create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor.meta create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor/PostProcessorAssemblyResolver.cs create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor/PostProcessorAssemblyResolver.cs.meta create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor/PostProcessorReflectionImporter.cs create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor/PostProcessorReflectionImporter.cs.meta create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor/ShrinkRegistryILPostProcessor.cs create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor/ShrinkRegistryILPostProcessor.cs.meta create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor/ShrinkShared.CodeGen.asmdef create mode 100644 Assets/Modules/ShrinkShared.CodeGen/Editor/ShrinkShared.CodeGen.asmdef.meta create mode 100644 Assets/Modules/ShrinkTutorial.meta create mode 100644 Assets/Modules/ShrinkTutorial/CHANGELOG.md create mode 100644 Assets/Modules/ShrinkTutorial/CHANGELOG.md.meta create mode 100644 Assets/Modules/ShrinkTutorial/Editor.meta create mode 100644 Assets/Modules/ShrinkTutorial/Editor/Samples.meta create mode 100644 Assets/Modules/ShrinkTutorial/Editor/Samples/ShrinkTutorialSampleSceneBuilder.cs create mode 100644 Assets/Modules/ShrinkTutorial/Editor/Samples/ShrinkTutorialSampleSceneBuilder.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Editor/ShrinkTutorial.Editor.asmdef create mode 100644 Assets/Modules/ShrinkTutorial/Editor/ShrinkTutorial.Editor.asmdef.meta create mode 100644 Assets/Modules/ShrinkTutorial/Editor/ShrinkTutorialEditorWindow.cs create mode 100644 Assets/Modules/ShrinkTutorial/Editor/ShrinkTutorialEditorWindow.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/README.md create mode 100644 Assets/Modules/ShrinkTutorial/README.md.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialData.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialData.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialDatabase.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialDatabase.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialEnums.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialEnums.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialLocalization.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialLocalization.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialManager.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialManager.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialRuntimeBootstrap.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialRuntimeBootstrap.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialSettings.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialSettings.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialStep.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialStep.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialTargetUtility.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Core/ShrinkTutorialTargetUtility.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Samples.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Samples/ShrinkTutorialSampleSceneController.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Samples/ShrinkTutorialSampleSceneController.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/ShrinkTutorial.Runtime.asmdef create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/ShrinkTutorial.Runtime.asmdef.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Storage.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Storage/IShrinkTutorialStorage.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Storage/IShrinkTutorialStorage.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Storage/PlayerPrefsShrinkTutorialStorage.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Storage/PlayerPrefsShrinkTutorialStorage.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Trigger.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Trigger/ShrinkTutorialAnchor.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Trigger/ShrinkTutorialAnchor.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Trigger/ShrinkTutorialAnchorRegistry.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Trigger/ShrinkTutorialAnchorRegistry.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Trigger/ShrinkTutorialTrigger.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/Trigger/ShrinkTutorialTrigger.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/UI.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/UI/ShrinkTutorialDialog.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/UI/ShrinkTutorialDialog.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/UI/ShrinkTutorialMask.cs create mode 100644 Assets/Modules/ShrinkTutorial/Runtime/UI/ShrinkTutorialMask.cs.meta create mode 100644 Assets/Modules/ShrinkTutorial/Samples.meta create mode 100644 Assets/Modules/ShrinkTutorial/Samples/Resources.meta create mode 100644 Assets/Modules/ShrinkTutorial/Samples/Resources/ShrinkTutorialSettings.asset create mode 100644 Assets/Modules/ShrinkTutorial/Samples/Resources/ShrinkTutorialSettings.asset.meta create mode 100644 Assets/Modules/ShrinkTutorial/Samples/ShrinkTutorialSampleDatabase.asset create mode 100644 Assets/Modules/ShrinkTutorial/Samples/ShrinkTutorialSampleDatabase.asset.meta create mode 100644 Assets/Modules/ShrinkTutorial/Samples/ShrinkTutorialSampleTutorial.asset create mode 100644 Assets/Modules/ShrinkTutorial/Samples/ShrinkTutorialSampleTutorial.asset.meta create mode 100644 Assets/Modules/ShrinkTutorial/package.json create mode 100644 Assets/Modules/ShrinkTutorial/package.json.meta create mode 100644 Assets/Resources.meta create mode 100644 Assets/Resources/ShrinkAppBasicStarterSettings.asset create mode 100644 Assets/Resources/ShrinkAppBasicStarterSettings.asset.meta create mode 100644 Assets/Resources/ShrinkAppSettings.asset create mode 100644 Assets/Resources/ShrinkAppSettings.asset.meta create mode 100644 Assets/Resources/ShrinkDataSaverSettings.asset create mode 100644 Assets/Resources/ShrinkDataSaverSettings.asset.meta create mode 100644 Assets/Scenes.meta create mode 100644 Assets/Scenes/SampleScene.unity create mode 100644 Assets/Scenes/SampleScene.unity.meta create mode 100644 Assets/Scenes/ShrinkAppEntry.unity create mode 100644 Assets/Scenes/ShrinkAppEntry.unity.meta create mode 100644 Assets/Scenes/ShrinkEmbeddedHostNetworkDemo.unity create mode 100644 Assets/Scenes/ShrinkEmbeddedHostNetworkDemo.unity.meta create mode 100644 Assets/Scenes/ShrinkEmbeddedHostNetworkDemoSceneController.cs create mode 100644 Assets/Scenes/ShrinkEmbeddedHostNetworkDemoSceneController.cs.meta create mode 100644 Assets/Scenes/ShrinkLanMovementDemo.unity create mode 100644 Assets/Scenes/ShrinkLanMovementDemo.unity.meta create mode 100644 Assets/Scenes/ShrinkLanMovementDemoController.cs create mode 100644 Assets/Scenes/ShrinkLanMovementDemoController.cs.meta create mode 100644 Assets/Scenes/ShrinkTutorialSample.unity create mode 100644 Assets/Scenes/ShrinkTutorialSample.unity.meta create mode 100644 Assets/Screenshots.meta create mode 100644 Assets/Settings.meta create mode 100644 Assets/Settings/Lit2DSceneTemplate.scenetemplate create mode 100644 Assets/Settings/Lit2DSceneTemplate.scenetemplate.meta create mode 100644 Assets/Settings/Renderer2D.asset create mode 100644 Assets/Settings/Renderer2D.asset.meta create mode 100644 Assets/Settings/Scenes.meta create mode 100644 Assets/Settings/Scenes/URP2DSceneTemplate.unity create mode 100644 Assets/Settings/Scenes/URP2DSceneTemplate.unity.meta create mode 100644 Assets/Settings/UniversalRP.asset create mode 100644 Assets/Settings/UniversalRP.asset.meta create mode 100644 Assets/TextMesh Pro.meta create mode 100644 Assets/TextMesh Pro/Documentation.meta create mode 100644 Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf create mode 100644 Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta create mode 100644 Assets/TextMesh Pro/Fonts.meta create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans.ttf create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta create mode 100644 Assets/TextMesh Pro/Resources.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets.meta create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets.meta create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/TMP Settings.asset create mode 100644 Assets/TextMesh Pro/Resources/TMP Settings.asset.meta create mode 100644 Assets/TextMesh Pro/Shaders.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Sprite.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta create mode 100644 Assets/TextMesh Pro/Sprites.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.json create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.json.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.png create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.png.meta create mode 100644 Assets/UniversalRenderPipelineGlobalSettings.asset create mode 100644 Assets/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 CORDIS_MIGRATION.md create mode 100644 DESIGN.md create mode 100644 NETWORK_PITFALLS.md create mode 100644 ProjectSettings/AudioManager.asset create mode 100644 ProjectSettings/ClusterInputManager.asset create mode 100644 ProjectSettings/DynamicsManager.asset create mode 100644 ProjectSettings/EditorBuildSettings.asset create mode 100644 ProjectSettings/EditorSettings.asset create mode 100644 ProjectSettings/GraphicsSettings.asset create mode 100644 ProjectSettings/InputManager.asset create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/NavMeshAreas.asset create mode 100644 ProjectSettings/NetworkManager.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/Physics2DSettings.asset create mode 100644 ProjectSettings/PresetManager.asset create mode 100644 ProjectSettings/ProjectSettings.asset create mode 100644 ProjectSettings/ProjectVersion.txt create mode 100644 ProjectSettings/QualitySettings.asset create mode 100644 ProjectSettings/SceneTemplateSettings.json create mode 100644 ProjectSettings/ShaderGraphSettings.asset create mode 100644 ProjectSettings/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/URPProjectSettings.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/XRSettings.asset diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b12dc5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,119 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +.utmp/ +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ +*.log + +# By default unity supports Blender asset imports, *.blend1 blender files do not need to be commited to version control. +*.blend1 +*.blend1.meta + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Recordings can get excessive in size +/[Rr]ecordings/ + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* +# Jetbrains Rider personal-layer settings +*.DotSettings.user + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.unityproj +*.sln +*.csproj +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Mono auto generated files +mono_crash.* + +# Builds +*.apk +*.aab +*.unitypackage +*.unitypackage.meta +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# TestRunner generated files +InitTestScene*.unity* + +# Addressables default ignores, before user customizations +/ServerData +/[Aa]ssets/StreamingAssets/aa* +/[Aa]ssets/AddressableAssetsData/link.xml* +/[Aa]ssets/Addressables_Temp* +# By default, Addressables content builds will generate addressables_content_state.bin +# files in platform-specific subfolders, for example: +# /Assets/AddressableAssetsData/OSX/addressables_content_state.bin +/[Aa]ssets/AddressableAssetsData/*/*.bin* + +# Visual Scripting auto-generated files +/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db +/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta +/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers +/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta + +# Auto-generated scenes by play mode tests +/[Aa]ssets/[Ii]nit[Tt]est[Ss]cene*.unity* +Assets/StreamingAssets/Whisper/ggml-base.bin +.planning/ +AGENTS.md +Assets/Screenshots/ +output/ +tmp/ +Packages/ +Assets/unity-mcp/ +Assets/unity-mcp.meta +.vscode/ +.claude/ +.codex/ +.funplay/ +CLAUDE.md +KNOWN_PITFALLS.md +Assets/~UnityDirMonSyncFile~84ae11425aac2204fbff8739574b1de6~ +.idea/ +GeneratedServers/ +GeneratedModSdk/ diff --git a/Assets/Modules.meta b/Assets/Modules.meta new file mode 100644 index 0000000..dfeb169 --- /dev/null +++ b/Assets/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a618cfe20080eb41a405afb915c6598 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core.meta b/Assets/Modules/ShrinkApp.Core.meta new file mode 100644 index 0000000..5c719ba --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aacbfcd500ef7304b9d5c78a9467b191 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/CHANGELOG.md b/Assets/Modules/ShrinkApp.Core/CHANGELOG.md new file mode 100644 index 0000000..6723b34 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/CHANGELOG.md @@ -0,0 +1,25 @@ +# Changelog + +本文件记录 `ShrinkApp.Core` 的包内变更。 + +## [0.1.1] - 2026-08-16 + +### Added + +- `ShrinkAppSettings.hostingMode`(`ShrinkAppHostingMode`):`ClassicHost` 保持原有自动启动;`ContextLoader` 让位给 ShrinkContext 加载器宿主(见 `ShrinkContext.AppAdapter`),支持运行中按模块 disable/enable。 +- `ShrinkApp.InitializeForExternalHost(services, settings)`:外部宿主把服务容器接回 `ShrinkApp.Services` 静态入口。 +- `ShrinkAppInstallers.GetDiscoveredInstallerTypes()`:编译期安装器发现的公共入口,供外部宿主枚举。 +- `ShrinkAppContext.CreateStandalone(services, settings)`:非 MonoBehaviour 宿主构建上下文。 + +### Changed + +- `Bootstrap` 在 `ContextLoader` 模式下直接返回,经典路径零行为变化。 + +## [0.1.0] - 2026-05-18 + +### Added + +- 新增统一宿主层 `ShrinkApp.Core`。 +- 新增 `ShrinkApp`、`ShrinkAppHost`、`ShrinkAppSettings`、`ShrinkAppServices`、`ShrinkAppContext`。 +- 新增模块安装器契约:`IShrinkAppModuleInstaller` 与 `[ShrinkAppModuleInstaller]`。 +- 新增运行时生命周期事件:`ShrinkAppStartedEvent`、`ShrinkAppStartFailedEvent`。 diff --git a/Assets/Modules/ShrinkApp.Core/CHANGELOG.md.meta b/Assets/Modules/ShrinkApp.Core/CHANGELOG.md.meta new file mode 100644 index 0000000..5c6f252 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/CHANGELOG.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3557769562f2f7042a462bcf44b9fedf +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Editor.meta b/Assets/Modules/ShrinkApp.Core/Editor.meta new file mode 100644 index 0000000..218b5d8 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 346774b237ebc2b49bc74a69b150780e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Editor/ShrinkApp.Core.Editor.asmdef b/Assets/Modules/ShrinkApp.Core/Editor/ShrinkApp.Core.Editor.asmdef new file mode 100644 index 0000000..c8b5011 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Editor/ShrinkApp.Core.Editor.asmdef @@ -0,0 +1,17 @@ +{ + "name": "ShrinkApp.Core.Editor", + "rootNamespace": "ShrinkApp.Editor", + "references": [ + "ShrinkApp.Core.Runtime" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/Assets/Modules/ShrinkApp.Core/Editor/ShrinkApp.Core.Editor.asmdef.meta b/Assets/Modules/ShrinkApp.Core/Editor/ShrinkApp.Core.Editor.asmdef.meta new file mode 100644 index 0000000..d500713 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Editor/ShrinkApp.Core.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d16f21ff20129e14283877a81cca3054 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Editor/ShrinkAppEditorMenu.cs b/Assets/Modules/ShrinkApp.Core/Editor/ShrinkAppEditorMenu.cs new file mode 100644 index 0000000..5240aa3 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Editor/ShrinkAppEditorMenu.cs @@ -0,0 +1,39 @@ +#if UNITY_EDITOR +using UnityEditor; +using UnityEngine; + +namespace ShrinkApp.Editor +{ + public static class ShrinkAppEditorMenu + { + [MenuItem("ShrinkApp/创建 Settings")] + public static void CreateSettingsAsset() + { + const string resourcesDir = "Assets/Resources"; + if (!AssetDatabase.IsValidFolder(resourcesDir)) + AssetDatabase.CreateFolder("Assets", "Resources"); + + const string assetPath = "Assets/Resources/ShrinkAppSettings.asset"; + var existing = AssetDatabase.LoadAssetAtPath(assetPath); + if (existing != null) + { + Selection.activeObject = existing; + EditorGUIUtility.PingObject(existing); + return; + } + + // 旧版本曾生成过 m_Script=fileID:0 的无效占位资产。删除该占位后 + // 才能在同一路径创建真正绑定 ShrinkAppSettings 类型的资产。 + if (AssetDatabase.LoadMainAssetAtPath(assetPath) != null) + AssetDatabase.DeleteAsset(assetPath); + + var asset = ScriptableObject.CreateInstance(); + AssetDatabase.CreateAsset(asset, assetPath); + AssetDatabase.SaveAssets(); + Selection.activeObject = asset; + EditorGUIUtility.PingObject(asset); + Debug.Log("[ShrinkApp] 已创建 ShrinkAppSettings.asset"); + } + } +} +#endif diff --git a/Assets/Modules/ShrinkApp.Core/Editor/ShrinkAppEditorMenu.cs.meta b/Assets/Modules/ShrinkApp.Core/Editor/ShrinkAppEditorMenu.cs.meta new file mode 100644 index 0000000..b182ab1 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Editor/ShrinkAppEditorMenu.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 30f867e31a8e02e41b25f1ef5b4dddec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/README.md b/Assets/Modules/ShrinkApp.Core/README.md new file mode 100644 index 0000000..3213240 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/README.md @@ -0,0 +1,31 @@ +# ShrinkApp.Core + +`ShrinkApp.Core` 是 `Shrink` 系列模块的统一宿主层。它不直接替代各个基础包的独立使用方式,而是在项目需要“导入一组包后直接起盘”时,提供统一的启动链、模块安装器、服务容器和基础生命周期事件。 + +## 当前定位 + +- 统一宿主:在 `BeforeSceneLoad` 阶段创建 `ShrinkAppHost` +- 模块安装器:通过编译期注入的安装器注册表获取 `IShrinkAppModuleInstaller` +- 服务容器:各模块通过 `RegisterServices(...)` 暴露门面服务 +- 生命周期事件:通过 `ShrinkEventBus` 发布 `ShrinkAppStartedEvent` / `ShrinkAppStartFailedEvent` + +## 核心类型 + +```csharp +ShrinkApp +ShrinkAppHost +ShrinkAppSettings +ShrinkAppServices +ShrinkAppContext +IShrinkAppModuleInstaller +[ShrinkAppModuleInstaller] +``` + +## 启动流程 + +1. `ShrinkApp` 在 `RuntimeInitializeOnLoadMethod(BeforeSceneLoad)` 创建宿主。 +2. 宿主从编译期注册表 `ShrinkAppGeneratedRegistry` 读取全部安装器类型。 +3. 安装器按 `DependsOn + Order` 排序。 +4. 先执行 `RegisterServices(...)`,再顺序执行 `InitializeAsync(...)`。 +5. 启动完成后在首场景 `Start()` 阶段发布 `ShrinkAppStartedEvent`。 +6. 任一安装器重复、依赖缺失、循环依赖、初始化异常都会 fail-fast。 diff --git a/Assets/Modules/ShrinkApp.Core/README.md.meta b/Assets/Modules/ShrinkApp.Core/README.md.meta new file mode 100644 index 0000000..8efa3a2 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 271d3627f55ae2b498a8b430db8d2b41 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Runtime.meta b/Assets/Modules/ShrinkApp.Core/Runtime.meta new file mode 100644 index 0000000..fce7d1c --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c30f0c5343e70914d970bffb896bd45a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.Core.Runtime.asmdef b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.Core.Runtime.asmdef new file mode 100644 index 0000000..18b3716 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.Core.Runtime.asmdef @@ -0,0 +1,16 @@ +{ + "name": "ShrinkApp.Core.Runtime", + "rootNamespace": "ShrinkApp", + "references": [ + "ShrinkEventBus.Runtime", + "UniTask" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.Core.Runtime.asmdef.meta b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.Core.Runtime.asmdef.meta new file mode 100644 index 0000000..3d3abf1 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.Core.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b5b7047dbc0ca2e438a92daa2baa200c +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.cs b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.cs new file mode 100644 index 0000000..9e96ba4 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.cs @@ -0,0 +1,81 @@ +#nullable enable + +using System; +using Cysharp.Threading.Tasks; +using UnityEngine; + +namespace ShrinkApp +{ + public static class ShrinkApp + { + public static ShrinkAppHost? Host { get; private set; } + public static ShrinkAppContext? Context { get; private set; } + public static ShrinkAppSettings Settings => ShrinkAppSettings.Instance; + public static ShrinkAppServices Services => Context?.Services ?? throw new System.InvalidOperationException("ShrinkApp is not initialized."); + public static bool IsRunning => (Host != null && Host.IsRunning) || _externalHostRunning; + + private static bool _externalHostRunning; + + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + private static void ResetStaticState() + { + Host = null; + Context = null; + _externalHostRunning = false; + ShrinkAppSettings.ResetCachedInstance(); + } + + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + private static void Bootstrap() + { + if (Host != null) + return; + + var settings = ShrinkAppSettings.Instance; + if (settings.hostingMode == ShrinkAppHostingMode.ContextLoader) + { + // 阶段 2 过渡:经典宿主让位,由 ShrinkContext 加载器宿主(ShrinkContext.AppAdapter)接管启动 + return; + } + + var hostGameObject = new GameObject("ShrinkAppHost"); + var host = hostGameObject.AddComponent(); + if (settings.dontDestroyOnLoad) + UnityEngine.Object.DontDestroyOnLoad(hostGameObject); + + var services = new ShrinkAppServices(); + var context = new ShrinkAppContext(host, settings, services); + host.Configure(context); + + Host = host; + Context = context; + host.StartAppAsync().Forget(ex => + { + Debug.LogException(ex); + Debug.LogError("[ShrinkApp] 启动失败: " + ex.Message); + }); + } + + /// + /// 阶段 2 过渡:由外部宿主(如 ShrinkContext 加载器宿主)提供已初始化的服务容器。 + /// Host 保持 null——外部宿主不经过 ShrinkAppHost 生命周期,IsRunning 以外部宿主为准。 + /// + public static void InitializeForExternalHost(ShrinkAppServices services, ShrinkAppSettings? settings = null) + { + if (services == null) + throw new ArgumentNullException(nameof(services)); + + Context = new ShrinkAppContext(null!, settings ?? Settings, services); + _externalHostRunning = false; + } + + /// + /// Lets a non- orchestrator expose its lifecycle through + /// the legacy static facade while the migration is in progress. + /// + public static void SetExternalHostRunning(bool running) + { + _externalHostRunning = running; + } + } +} diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.cs.meta b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.cs.meta new file mode 100644 index 0000000..d44777f --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkApp.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 10523dad09cece4438f29620b3253fdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppGeneratedRegistry.cs b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppGeneratedRegistry.cs new file mode 100644 index 0000000..8d79f3c --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppGeneratedRegistry.cs @@ -0,0 +1,53 @@ +#nullable enable + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace ShrinkApp +{ + [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] + public sealed class ShrinkAppInstallerRegistryAttribute : Attribute + { + public ShrinkAppInstallerRegistryAttribute(params Type[] installerTypes) + { + InstallerTypes = installerTypes ?? Array.Empty(); + } + + public Type[] InstallerTypes { get; } + } + + internal static class ShrinkAppGeneratedRegistry + { + public static IReadOnlyList GetInstallerTypes() + { + var types = new List(); + var seen = new HashSet(); + foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) + { + object[] attributes; + try + { + attributes = assembly.GetCustomAttributes(typeof(ShrinkAppInstallerRegistryAttribute), false); + } + catch + { + continue; + } + + foreach (var attribute in attributes.OfType()) + { + foreach (var installerType in attribute.InstallerTypes ?? Array.Empty()) + { + if (installerType == null || !seen.Add(installerType)) + continue; + + types.Add(installerType); + } + } + } + + return types; + } + } +} diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppGeneratedRegistry.cs.meta b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppGeneratedRegistry.cs.meta new file mode 100644 index 0000000..0ee7d05 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppGeneratedRegistry.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1818116c8e85f5e489c0c4955f506ff2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppHost.cs b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppHost.cs new file mode 100644 index 0000000..5c01775 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppHost.cs @@ -0,0 +1,167 @@ +#nullable enable + +using System; +using System.Collections.Generic; +using System.Linq; +using Cysharp.Threading.Tasks; +using ShrinkEventBus; +using UnityEngine; + +namespace ShrinkApp +{ + public sealed class ShrinkAppHost : MonoBehaviour + { + private readonly List _startedModules = new(); + private ShrinkAppContext? _context; + private bool _unityStarted; + private bool _publishedStartedEvent; + + public bool IsRunning { get; private set; } + public bool HasFailed { get; private set; } + public string LastError { get; private set; } = string.Empty; + public IReadOnlyList StartedModules => _startedModules; + + internal void Configure(ShrinkAppContext context) + { + _context = context ?? throw new ArgumentNullException(nameof(context)); + } + + internal async UniTask StartAppAsync() + { + if (IsRunning || HasFailed) + return; + if (_context == null) + throw new InvalidOperationException("ShrinkAppHost is not configured."); + + var installers = CreateInstallerInstances(); + var orderedInstallers = SortInstallers(installers, _context.Settings); + + try + { + foreach (var installer in orderedInstallers) + installer.RegisterServices(_context); + + foreach (var installer in orderedInstallers) + { + await installer.InitializeAsync(_context); + _startedModules.Add(installer.ModuleId); + } + + IsRunning = true; + PublishStartedEventIfReady(); + } + catch (Exception ex) + { + HasFailed = true; + LastError = ex.Message; + EventBus.TriggerEvent(new ShrinkAppStartFailedEvent + { + ErrorMessage = ex.Message, + FailedModuleId = _startedModules.LastOrDefault() ?? string.Empty + }); + throw; + } + } + + private void Start() + { + _unityStarted = true; + PublishStartedEventIfReady(); + } + + private void PublishStartedEventIfReady() + { + if (_publishedStartedEvent || !_unityStarted || !IsRunning) + return; + + _publishedStartedEvent = true; + EventBus.TriggerEvent(new ShrinkAppStartedEvent + { + ModuleIds = _startedModules.ToArray() + }); + } + + private static IReadOnlyList CreateInstallerInstances() + { + var installers = new List(); + foreach (var installerType in ShrinkAppGeneratedRegistry.GetInstallerTypes()) + { + if (installerType == null) + continue; + if (!typeof(IShrinkAppModuleInstaller).IsAssignableFrom(installerType)) + throw new InvalidOperationException($"Installer type does not implement IShrinkAppModuleInstaller: {installerType.FullName}"); + if (installerType.IsAbstract) + throw new InvalidOperationException($"Installer type cannot be abstract: {installerType.FullName}"); + + if (Activator.CreateInstance(installerType) is not IShrinkAppModuleInstaller installer) + throw new InvalidOperationException($"Failed to create installer: {installerType.FullName}"); + + installers.Add(installer); + } + + return installers; + } + + private static IReadOnlyList SortInstallers( + IReadOnlyList installers, + ShrinkAppSettings settings) + { + var disabled = new HashSet( + settings.disabledModuleIds?.Where(id => !string.IsNullOrWhiteSpace(id)).Select(id => id.Trim()) ?? + Enumerable.Empty(), + StringComparer.OrdinalIgnoreCase); + + var enabledInstallers = installers + .Where(installer => !disabled.Contains(installer.ModuleId)) + .ToArray(); + + var byId = new Dictionary(StringComparer.OrdinalIgnoreCase); + foreach (var installer in enabledInstallers) + { + if (string.IsNullOrWhiteSpace(installer.ModuleId)) + throw new InvalidOperationException($"Installer {installer.GetType().FullName} has an empty ModuleId."); + if (!byId.TryAdd(installer.ModuleId.Trim(), installer)) + throw new InvalidOperationException($"Duplicate installer ModuleId: {installer.ModuleId}"); + } + + var visitState = new Dictionary(StringComparer.OrdinalIgnoreCase); + var ordered = new List(); + foreach (var installer in enabledInstallers.OrderBy(item => item.Order).ThenBy(item => item.ModuleId, StringComparer.OrdinalIgnoreCase)) + { + Visit(installer, byId, visitState, ordered); + } + + return ordered; + } + + private static void Visit( + IShrinkAppModuleInstaller installer, + IReadOnlyDictionary byId, + IDictionary visitState, + IList ordered) + { + var state = visitState.TryGetValue(installer.ModuleId, out var existingState) ? existingState : 0; + if (state == 2) + return; + if (state == 1) + throw new InvalidOperationException($"Circular installer dependency detected at module: {installer.ModuleId}"); + + visitState[installer.ModuleId] = 1; + foreach (var dependencyId in installer.DependsOn ?? Array.Empty()) + { + if (string.IsNullOrWhiteSpace(dependencyId)) + continue; + + if (!byId.TryGetValue(dependencyId.Trim(), out var dependency)) + throw new InvalidOperationException( + $"Installer dependency missing. Module={installer.ModuleId}, DependsOn={dependencyId}"); + + Visit(dependency, byId, visitState, ordered); + } + + visitState[installer.ModuleId] = 2; + if (!ordered.Contains(installer)) + ordered.Add(installer); + } + } +} diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppHost.cs.meta b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppHost.cs.meta new file mode 100644 index 0000000..3d7ab55 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppHost.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: df43c81d962edd64cbd214b2697b4179 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppInstallers.cs b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppInstallers.cs new file mode 100644 index 0000000..fbf277f --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppInstallers.cs @@ -0,0 +1,16 @@ +#nullable enable +using System; +using System.Collections.Generic; + +namespace ShrinkApp +{ + /// + /// 编译期发现的应用模块安装器类型(公共入口)。 + /// 经典 ShrinkAppHost 与外部宿主(ShrinkContext 加载器宿主)共用同一份发现结果。 + /// + public static class ShrinkAppInstallers + { + public static IReadOnlyList GetDiscoveredInstallerTypes() => + ShrinkAppGeneratedRegistry.GetInstallerTypes(); + } +} diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppInstallers.cs.meta b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppInstallers.cs.meta new file mode 100644 index 0000000..2ea0f8d --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppInstallers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c22f2e857d66bae458ff3dd6d9519d0d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppTypes.cs b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppTypes.cs new file mode 100644 index 0000000..f2bf101 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppTypes.cs @@ -0,0 +1,181 @@ +#nullable enable + +using System; +using System.Collections.Generic; +using System.Linq; +using Cysharp.Threading.Tasks; +using ShrinkEventBus; +using UnityEngine; + +namespace ShrinkApp +{ + [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)] + public sealed class ShrinkAppModuleInstallerAttribute : Attribute + { + } + + public interface IShrinkAppModuleInstaller + { + string ModuleId { get; } + int Order { get; } + IReadOnlyList DependsOn { get; } + void RegisterServices(ShrinkAppContext context); + UniTask InitializeAsync(ShrinkAppContext context); + } + + public sealed class ShrinkAppContext + { + internal ShrinkAppContext(ShrinkAppHost host, ShrinkAppSettings settings, ShrinkAppServices services) + { + Host = host; + Settings = settings; + Services = services; + } + + /// + /// 为非 MonoBehaviour 宿主(如 ShrinkContext 纤程适配器)构建上下文。 + /// Host 为 null:适用于不经过 ShrinkAppHost 启动流的独立编排场景。 + /// + public static ShrinkAppContext CreateStandalone(ShrinkAppServices services, ShrinkAppSettings? settings = null) + { + if (services == null) + throw new ArgumentNullException(nameof(services)); + return new ShrinkAppContext(null!, settings ?? ShrinkAppSettings.Instance, services); + } + + public ShrinkAppHost Host { get; } + public ShrinkAppSettings Settings { get; } + public ShrinkAppServices Services { get; } + } + + public sealed class ShrinkAppServices + { + private readonly Dictionary _services = new(); + + public void Register(TService service) where TService : class + { + if (service == null) + throw new ArgumentNullException(nameof(service)); + + _services[typeof(TService)] = service; + } + + public bool TryGet(out TService? service) where TService : class + { + if (_services.TryGetValue(typeof(TService), out var boxed) && boxed is TService typed) + { + service = typed; + return true; + } + + service = null; + return false; + } + + /// + /// Removes a service only when the current registration is the supplied instance. + /// This lets context-driven components expose the legacy service facade as a + /// reversible effect without removing a newer replacement during teardown. + /// + public bool TryUnregister(TService service) where TService : class + { + if (service == null) + throw new ArgumentNullException(nameof(service)); + + if (!_services.TryGetValue(typeof(TService), out var current) || + !ReferenceEquals(current, service)) + return false; + + return _services.Remove(typeof(TService)); + } + + public TService GetRequired() where TService : class + { + if (!TryGet(out var service) || service == null) + throw new InvalidOperationException($"Required service is not registered: {typeof(TService).FullName}"); + + return service; + } + + public IReadOnlyList GetRegisteredServiceTypeNames() + { + return _services.Keys + .Select(type => type.FullName ?? type.Name) + .OrderBy(name => name, StringComparer.OrdinalIgnoreCase) + .ToArray(); + } + } + + /// ShrinkApp 的宿主模式(阶段 2 过渡:两种模式并存,按项目选择)。 + public enum ShrinkAppHostingMode + { + /// 经典模式:ShrinkAppHost 在 BeforeSceneLoad 自动创建并按拓扑序启动安装器。 + ClassicHost = 0, + + /// 加载器模式:经典宿主让位,由 ShrinkContext 加载器宿主(ShrinkContext.AppAdapter)接管启动, + /// 支持运行中按模块 disable/enable 与依赖响应式等待。 + ContextLoader = 1, + } + + [CreateAssetMenu(fileName = "ShrinkAppSettings", menuName = "ShrinkApp/Settings")] + public class ShrinkAppSettings : ScriptableObject + { + private static ShrinkAppSettings? _instance; + + public static ShrinkAppSettings Instance + { + get + { + if (_instance != null) + return _instance; + + _instance = Resources.Load("ShrinkAppSettings"); + +#if UNITY_EDITOR + if (!_instance) + { + var guids = UnityEditor.AssetDatabase.FindAssets("t:ShrinkAppSettings"); + if (guids.Length > 0) + { + var path = UnityEditor.AssetDatabase.GUIDToAssetPath(guids[0]); + _instance = UnityEditor.AssetDatabase.LoadAssetAtPath(path); + } + } +#endif + + if (!_instance) + { + _instance = CreateInstance(); + Debug.LogWarning( + "[ShrinkApp] 未找到 ShrinkAppSettings,当前使用默认配置。建议通过 Assets -> Create -> ShrinkApp -> Settings 创建配置。"); + } + + return _instance!; + } + internal set => _instance = value; + } + + internal static void ResetCachedInstance() + { + _instance = null; + } + + public bool dontDestroyOnLoad = true; + public bool verboseLogging; + public string[] disabledModuleIds = Array.Empty(); + + [Tooltip("宿主模式:ClassicHost 为经典自动启动;ContextLoader 由 ShrinkContext 加载器宿主接管(阶段 2 过渡)")] + public ShrinkAppHostingMode hostingMode = ShrinkAppHostingMode.ClassicHost; + } + + public sealed class ShrinkAppStartedEvent : EventBase + { + public IReadOnlyList ModuleIds { get; set; } = Array.Empty(); + } + + public sealed class ShrinkAppStartFailedEvent : EventBase + { + public string ErrorMessage { get; set; } = string.Empty; + public string FailedModuleId { get; set; } = string.Empty; + } +} diff --git a/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppTypes.cs.meta b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppTypes.cs.meta new file mode 100644 index 0000000..c988efd --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/Runtime/ShrinkAppTypes.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 384dd878beec6b848b64aa843b464e95 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Core/package.json b/Assets/Modules/ShrinkApp.Core/package.json new file mode 100644 index 0000000..1b8bb53 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/package.json @@ -0,0 +1,22 @@ +{ + "name": "com.cneicy.shrink-app-core", + "version": "0.1.1", + "displayName": "ShrinkApp Core", + "description": "Shrink 系列统一宿主层,提供模块安装器、服务容器与统一启动流程。", + "unity": "2022.3", + "dependencies": { + "com.cneicy.shrink-eventbus": "1.1.5", + "com.cysharp.unitask": "2.5.10" + }, + "keywords": [ + "app", + "bootstrap", + "framework", + "host", + "starter" + ], + "author": { + "name": "cneicy", + "url": "https://github.com/cneicy" + } +} diff --git a/Assets/Modules/ShrinkApp.Core/package.json.meta b/Assets/Modules/ShrinkApp.Core/package.json.meta new file mode 100644 index 0000000..55828d4 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Core/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 30fa106725f9afc46af98aff2ee92198 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Starter.Basic.meta b/Assets/Modules/ShrinkApp.Starter.Basic.meta new file mode 100644 index 0000000..5662808 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Starter.Basic.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f69712f8fd5471e46b41e82204b5e845 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Starter.Basic/CHANGELOG.md b/Assets/Modules/ShrinkApp.Starter.Basic/CHANGELOG.md new file mode 100644 index 0000000..0b1bc05 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Starter.Basic/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +本文件记录 `ShrinkApp.Starter.Basic` 的包内变更。 + +## [0.1.0] - 2026-05-18 + +### Added + +- 新增最小起盘 Starter 包。 +- 新增场景生成器 `ShrinkAppBasicStarterGenerator`。 +- 新增示例控制器 `ShrinkAppBasicSampleController`。 +- 新增 `ShrinkAppBasicDemoRuntime`,补齐默认命令源、状态命令与最小 loopback 网络示例。 +- 新增 `ShrinkAppBasicStarterSettings`,提供最小 Starter 级别的默认配置资产。 +- 示例场景继续扩展为小型调试台,补齐命令输入、输出日志、模块/服务/存档/命令/网络状态面板。 +- 状态面板进一步细化为已启动模块、已注册服务、存档槽位、命令列表、网络诊断五块只读视图。 diff --git a/Assets/Modules/ShrinkApp.Starter.Basic/CHANGELOG.md.meta b/Assets/Modules/ShrinkApp.Starter.Basic/CHANGELOG.md.meta new file mode 100644 index 0000000..eba6b24 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Starter.Basic/CHANGELOG.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e3e78d4720b16b84fbf0d766b0a0122b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Starter.Basic/Editor.meta b/Assets/Modules/ShrinkApp.Starter.Basic/Editor.meta new file mode 100644 index 0000000..ffcd571 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Starter.Basic/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6be676789111fd4a9afd67b011a12c9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkApp.Starter.Basic.Editor.asmdef b/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkApp.Starter.Basic.Editor.asmdef new file mode 100644 index 0000000..66e68bd --- /dev/null +++ b/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkApp.Starter.Basic.Editor.asmdef @@ -0,0 +1,22 @@ +{ + "name": "ShrinkApp.Starter.Basic.Editor", + "rootNamespace": "ShrinkApp.Starter.Basic.Editor", + "references": [ + "ShrinkApp.Starter.Basic.Runtime", + "ShrinkApp.Core.Runtime", + "ShrinkApp.Core.Editor", + "ShrinkDataSaver.Runtime", + "ShrinkDataSaver.Integration.App", + "UnityEngine.UI" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkApp.Starter.Basic.Editor.asmdef.meta b/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkApp.Starter.Basic.Editor.asmdef.meta new file mode 100644 index 0000000..0b63870 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkApp.Starter.Basic.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aa988409913004043b6cbe3d19de32bd +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkAppBasicStarterGenerator.cs b/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkAppBasicStarterGenerator.cs new file mode 100644 index 0000000..b80a754 --- /dev/null +++ b/Assets/Modules/ShrinkApp.Starter.Basic/Editor/ShrinkAppBasicStarterGenerator.cs @@ -0,0 +1,215 @@ +#if UNITY_EDITOR +using ShrinkApp.Editor; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.UI; + +namespace ShrinkApp.Starter.Basic.Editor +{ + public static class ShrinkAppBasicStarterGenerator + { + private const string MenuPath = "ShrinkApp/Starter/生成 Basic Entry 场景"; + + [MenuItem(MenuPath)] + public static void Generate() + { + EnsureAssets(); + BuildScene(); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + Debug.Log("[ShrinkApp.Starter.Basic] 已生成 Basic Entry 场景与配置。"); + } + + private static void EnsureAssets() + { + ShrinkAppEditorMenu.CreateSettingsAsset(); + + const string resourcesDir = "Assets/Resources"; + if (!AssetDatabase.IsValidFolder(resourcesDir)) + AssetDatabase.CreateFolder("Assets", "Resources"); + + const string dataSaverSettingsPath = "Assets/Resources/ShrinkDataSaverSettings.asset"; + if (AssetDatabase.LoadAssetAtPath(dataSaverSettingsPath) == null) + { + var asset = ScriptableObject.CreateInstance("ShrinkDataSaverSettings"); + if (asset == null) + throw new System.InvalidOperationException( + "Cannot create ShrinkDataSaverSettings. Ensure ShrinkDataSaver.Runtime is imported and compiled."); + + AssetDatabase.CreateAsset(asset, dataSaverSettingsPath); + } + + const string starterSettingsPath = "Assets/Resources/ShrinkAppBasicStarterSettings.asset"; + if (AssetDatabase.LoadAssetAtPath(starterSettingsPath) == null) + { + var starterAsset = ScriptableObject.CreateInstance(); + starterAsset.autoBindLoopbackTransport = true; + starterAsset.defaultCommandText = "starter status"; + starterAsset.defaultLoopbackSessionId = 1; + starterAsset.logCommandOutputToConsole = true; + starterAsset.maxCommandOutputLines = 12; + AssetDatabase.CreateAsset(starterAsset, starterSettingsPath); + } + } + + private static void BuildScene() + { + const string scenesDir = "Assets/Scenes"; + if (!AssetDatabase.IsValidFolder(scenesDir)) + AssetDatabase.CreateFolder("Assets", "Scenes"); + + var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single); + + new GameObject("Main Camera", typeof(Camera)); + new GameObject("EventSystem", typeof(UnityEngine.EventSystems.EventSystem), + typeof(UnityEngine.EventSystems.StandaloneInputModule)); + + var canvasGo = new GameObject("Canvas", typeof(Canvas), typeof(CanvasScaler), typeof(GraphicRaycaster)); + var canvas = canvasGo.GetComponent(); + canvas.renderMode = RenderMode.ScreenSpaceOverlay; + var scaler = canvasGo.GetComponent(); + scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; + scaler.referenceResolution = new Vector2(1920, 1080); + + var panelGo = new GameObject("Panel", typeof(RectTransform), typeof(Image)); + panelGo.transform.SetParent(canvasGo.transform, false); + var panelRect = panelGo.GetComponent(); + panelRect.sizeDelta = new Vector2(980f, 720f); + panelRect.anchoredPosition = Vector2.zero; + panelGo.GetComponent().color = new Color(0.12f, 0.15f, 0.2f, 0.92f); + + var statusText = CreateText("StatusText", panelGo.transform, new Vector2(0f, 240f), new Vector2(840f, 120f), + "ShrinkApp Basic starter ready."); + statusText.alignment = TextAnchor.MiddleCenter; + var detailText = CreateText("DetailText", panelGo.transform, new Vector2(0f, 135f), new Vector2(840f, 140f), + "app=False, save=False, cmd=False, net=False"); + detailText.alignment = TextAnchor.UpperLeft; + detailText.fontSize = 20; + var commandInputField = CreateInputField("CommandInput", panelGo.transform, new Vector2(0f, 20f), + new Vector2(520f, 54f), "starter status"); + var outputText = CreateText("OutputText", panelGo.transform, new Vector2(0f, -250f), new Vector2(840f, 180f), + string.Empty); + outputText.alignment = TextAnchor.UpperLeft; + outputText.fontSize = 20; + outputText.horizontalOverflow = HorizontalWrapMode.Wrap; + outputText.verticalOverflow = VerticalWrapMode.Overflow; + var saveMetaText = CreateText("SaveMetaText", panelGo.transform, new Vector2(-280f, -430f), new Vector2(240f, 150f), + "No save slots found."); + saveMetaText.alignment = TextAnchor.UpperLeft; + saveMetaText.fontSize = 18; + var moduleText = CreateText("ModuleText", panelGo.transform, new Vector2(0f, -430f), new Vector2(240f, 150f), + "No started modules."); + moduleText.alignment = TextAnchor.UpperLeft; + moduleText.fontSize = 18; + var serviceText = CreateText("ServiceText", panelGo.transform, new Vector2(280f, -430f), new Vector2(240f, 150f), + "No registered services."); + serviceText.alignment = TextAnchor.UpperLeft; + serviceText.fontSize = 18; + var commandListText = CreateText("CommandListText", panelGo.transform, new Vector2(-280f, -600f), new Vector2(240f, 150f), + "Command service not ready."); + commandListText.alignment = TextAnchor.UpperLeft; + commandListText.fontSize = 18; + var networkText = CreateText("NetworkText", panelGo.transform, new Vector2(280f, -600f), new Vector2(240f, 150f), + "Network service not ready."); + networkText.alignment = TextAnchor.UpperLeft; + networkText.fontSize = 18; + + var saveButton = CreateButton("SaveButton", panelGo.transform, new Vector2(-250f, -70f), "Save Slot 0"); + var loadButton = CreateButton("LoadButton", panelGo.transform, new Vector2(0f, -70f), "Load Slot 0"); + var commandButton = CreateButton("CommandButton", panelGo.transform, new Vector2(250f, -70f), "Run Command"); + var loopbackButton = CreateButton("LoopbackButton", panelGo.transform, new Vector2(-250f, -165f), "Bind Loopback"); + var disconnectButton = CreateButton("DisconnectLoopbackButton", panelGo.transform, new Vector2(0f, -165f), "Disconnect Loopback"); + var refreshButton = CreateButton("RefreshButton", panelGo.transform, new Vector2(250f, -165f), "Refresh Status"); + var clearOutputButton = CreateButton("ClearOutputButton", panelGo.transform, new Vector2(0f, -345f), "Clear Output"); + + var controller = panelGo.AddComponent(); + var serializedObject = new SerializedObject(controller); + serializedObject.FindProperty("statusText").objectReferenceValue = statusText; + serializedObject.FindProperty("detailText").objectReferenceValue = detailText; + serializedObject.FindProperty("outputText").objectReferenceValue = outputText; + serializedObject.FindProperty("moduleText").objectReferenceValue = moduleText; + serializedObject.FindProperty("serviceText").objectReferenceValue = serviceText; + serializedObject.FindProperty("saveMetaText").objectReferenceValue = saveMetaText; + serializedObject.FindProperty("commandListText").objectReferenceValue = commandListText; + serializedObject.FindProperty("networkText").objectReferenceValue = networkText; + serializedObject.FindProperty("saveButton").objectReferenceValue = saveButton; + serializedObject.FindProperty("loadButton").objectReferenceValue = loadButton; + serializedObject.FindProperty("commandButton").objectReferenceValue = commandButton; + serializedObject.FindProperty("loopbackButton").objectReferenceValue = loopbackButton; + serializedObject.FindProperty("refreshButton").objectReferenceValue = refreshButton; + serializedObject.FindProperty("clearOutputButton").objectReferenceValue = clearOutputButton; + serializedObject.FindProperty("disconnectLoopbackButton").objectReferenceValue = disconnectButton; + serializedObject.FindProperty("commandInputField").objectReferenceValue = commandInputField; + serializedObject.ApplyModifiedPropertiesWithoutUndo(); + + EditorSceneManager.SaveScene(scene, "Assets/Scenes/ShrinkAppEntry.unity"); + } + + private static Text CreateText(string name, Transform parent, Vector2 anchoredPosition, Vector2 size, string text) + { + var go = new GameObject(name, typeof(RectTransform), typeof(Text)); + go.transform.SetParent(parent, false); + var rect = go.GetComponent(); + rect.sizeDelta = size; + rect.anchoredPosition = anchoredPosition; + var label = go.GetComponent(); + label.text = text; + label.font = Resources.GetBuiltinResource("LegacyRuntime.ttf"); + label.fontSize = 28; + label.color = Color.white; + return label; + } + + private static Button CreateButton(string name, Transform parent, Vector2 anchoredPosition, string labelText) + { + var go = new GameObject(name, typeof(RectTransform), typeof(Image), typeof(Button)); + go.transform.SetParent(parent, false); + var rect = go.GetComponent(); + rect.sizeDelta = new Vector2(220f, 72f); + rect.anchoredPosition = anchoredPosition; + go.GetComponent().color = new Color(0.24f, 0.45f, 0.75f, 1f); + + var label = CreateText("Label", go.transform, Vector2.zero, new Vector2(220f, 72f), labelText); + label.alignment = TextAnchor.MiddleCenter; + label.resizeTextForBestFit = true; + label.resizeTextMinSize = 18; + label.resizeTextMaxSize = 28; + + return go.GetComponent