diff --git a/.idea/.idea.Infra/.idea/.gitignore b/.idea/.idea.Infra/.idea/.gitignore new file mode 100644 index 0000000..27831df --- /dev/null +++ b/.idea/.idea.Infra/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/contentModel.xml +/projectSettingsUpdater.xml +/.idea.Infra.iml +/modules.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.Infra/.idea/indexLayout.xml b/.idea/.idea.Infra/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.Infra/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.Infra/.idea/vcs.xml b/.idea/.idea.Infra/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/.idea.Infra/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/Code/Infrastructure/App/AppStateMachine.cs b/Assets/Code/Infrastructure/App/AppStateMachine.cs index 4b6c898..0c14887 100644 --- a/Assets/Code/Infrastructure/App/AppStateMachine.cs +++ b/Assets/Code/Infrastructure/App/AppStateMachine.cs @@ -16,7 +16,7 @@ namespace Code.Infrastructure.App [Inject] public CameraStateMachine Camera { get; set; } } - [Generators.StateMachine(typeof(AppStateMachineContext),typeof(AppStates))] + [global::StateMachine(typeof(AppStateMachineContext),typeof(AppStates))] public partial class AppStateMachine { diff --git a/Assets/Code/Infrastructure/App/SceneInstallers/MainMenuSceneInstaller.cs b/Assets/Code/Infrastructure/App/SceneInstallers/MainMenuSceneInstaller.cs index 3dbeb17..080dca3 100644 --- a/Assets/Code/Infrastructure/App/SceneInstallers/MainMenuSceneInstaller.cs +++ b/Assets/Code/Infrastructure/App/SceneInstallers/MainMenuSceneInstaller.cs @@ -1,4 +1,3 @@ -using Code.Example; using Reflex.Core; using UnityEngine; diff --git a/Assets/Code/Infrastructure/App/States/BootstrapState.cs b/Assets/Code/Infrastructure/App/States/BootstrapState.cs index 4a1ca4f..a7239dc 100644 --- a/Assets/Code/Infrastructure/App/States/BootstrapState.cs +++ b/Assets/Code/Infrastructure/App/States/BootstrapState.cs @@ -1,7 +1,4 @@ -using Code.Infrastructure.Camera; -using Code.Infrastructure.Generators; -using Code.Infrastructure.SceneLoader; -using Cysharp.Threading.Tasks; +using Code.Infrastructure.SceneLoader; using UnityEngine; using UnityEngine.SceneManagement; diff --git a/Assets/Code/Infrastructure/App/States/GameplayState.cs b/Assets/Code/Infrastructure/App/States/GameplayState.cs index 1ad5377..8486013 100644 --- a/Assets/Code/Infrastructure/App/States/GameplayState.cs +++ b/Assets/Code/Infrastructure/App/States/GameplayState.cs @@ -1,5 +1,3 @@ -using Code.Infrastructure.Camera; -using Code.Infrastructure.Generators; using Code.Infrastructure.SceneLoader; using UnityEngine; diff --git a/Assets/Code/Infrastructure/App/States/MainMenuState.cs b/Assets/Code/Infrastructure/App/States/MainMenuState.cs index e2a2079..985ef8d 100644 --- a/Assets/Code/Infrastructure/App/States/MainMenuState.cs +++ b/Assets/Code/Infrastructure/App/States/MainMenuState.cs @@ -1,4 +1,4 @@ -using Code.Infrastructure.Generators; + namespace Code.Infrastructure.App.States { diff --git a/Assets/Code/Infrastructure/Camera/CameraSettings.cs b/Assets/Code/Infrastructure/Camera/CameraSettings.cs index 0f2e692..2afd6b4 100644 --- a/Assets/Code/Infrastructure/Camera/CameraSettings.cs +++ b/Assets/Code/Infrastructure/Camera/CameraSettings.cs @@ -1,4 +1,3 @@ -using Code.Infrastructure.Generators; using UnityEngine; namespace Code.Infrastructure.Camera diff --git a/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs b/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs index e0d83b0..2cd1690 100644 --- a/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs +++ b/Assets/Code/Infrastructure/Camera/CameraStateMachine.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using Code.Infrastructure.EventBus; -using Code.Infrastructure.Generators; using Code.Infrastructure.Input; using Reflex.Attributes; using UnityEngine.AddressableAssets; @@ -46,7 +45,7 @@ namespace Code.Infrastructure.Camera [Inject] public EventBus.EventBus EventBus; } - [Generators.StateMachine(typeof(CameraStateMachineContext), typeof(CameraMode))] + [global::StateMachine(typeof(CameraStateMachineContext), typeof(CameraMode))] public partial class CameraStateMachine { public UnityEngine.Camera Camera => StateMachineContext.cameraLoadedData.Camera; diff --git a/Assets/Code/Infrastructure/Camera/CameraStates/NoneCameraState.cs b/Assets/Code/Infrastructure/Camera/CameraStates/NoneCameraState.cs index 17851c8..6c378d5 100644 --- a/Assets/Code/Infrastructure/Camera/CameraStates/NoneCameraState.cs +++ b/Assets/Code/Infrastructure/Camera/CameraStates/NoneCameraState.cs @@ -1,9 +1,8 @@ -using Code.Infrastructure.Generators; using UnityEngine; namespace Code.Infrastructure.Camera.CameraStates { - [State(typeof(CameraMode),typeof(CameraStateMachineContext), true)] + // [State(typeof(CameraMode),typeof(CameraStateMachineContext), true)] public partial class NoneCameraState : BaseCameraState { public NoneCameraState(CameraStateMachineContext context, EventBus.EventBus eventBus) : base(context, eventBus) diff --git a/Assets/UnityCodeGen.Generated/IConfigLocator.cs b/Assets/Code/Infrastructure/Configs/IConfigLocator.cs similarity index 100% rename from Assets/UnityCodeGen.Generated/IConfigLocator.cs rename to Assets/Code/Infrastructure/Configs/IConfigLocator.cs diff --git a/Assets/UnityCodeGen.Generated/IConfigLocator.cs.meta b/Assets/Code/Infrastructure/Configs/IConfigLocator.cs.meta similarity index 100% rename from Assets/UnityCodeGen.Generated/IConfigLocator.cs.meta rename to Assets/Code/Infrastructure/Configs/IConfigLocator.cs.meta diff --git a/Assets/Code/Infrastructure/Generators/Attributes.cs b/Assets/Code/Infrastructure/Generators/Attributes.cs index 27d4574..6adba60 100644 --- a/Assets/Code/Infrastructure/Generators/Attributes.cs +++ b/Assets/Code/Infrastructure/Generators/Attributes.cs @@ -1,49 +1,50 @@ using System; -namespace Code.Infrastructure.Generators +public class SceneIdEnum : Attribute +{ +} + +public class ToConfig : Attribute +{ +} + +public class Config : Attribute { - public class StateMachine : Attribute + public bool Multiple; + public string MenuName; + public Config(string menuName, bool multiple = false) { - public Type StateMachineContextType; - public Type StateMachineEnumType; + Multiple = multiple; + MenuName = menuName; + } +} - public StateMachine(Type stateMachineContextType, Type stateMachineEnumType) - { - StateMachineContextType = stateMachineContextType; - StateMachineEnumType = stateMachineEnumType; - } - } - - public class State : Attribute - { - public Type StateEnum; - public Type StateMachineContext; - public bool SilentBitch; // Поэтому нейминг переменных очень важен +public class StateRaisingEvent : Attribute +{ +} - public State(Type stateEnum,Type stateMachineContext, bool silentBitch = false) - { - StateEnum = stateEnum; - StateMachineContext = stateMachineContext; - SilentBitch = silentBitch; - } - } - public class StateRaisingEvent : Attribute - { - } - public class Config : Attribute +public class State : Attribute +{ + public Type StateEnum; + public Type StateMachineContext; + public bool SilentBitch; // Поэтому нейминг переменных очень важен + + public State(Type stateEnum,Type stateMachineContext, bool silentBitch = false) { - public bool Multiple; - public string MenuName; - public Config(string menuName, bool multiple = false) - { - Multiple = multiple; - MenuName = menuName; - } + StateEnum = stateEnum; + StateMachineContext = stateMachineContext; + SilentBitch = silentBitch; } - public class ToConfig : Attribute - { - } - public class SceneIdEnum : Attribute - { +} + +public class StateMachine : Attribute +{ + public Type StateMachineContextType; + public Type StateMachineEnumType; + + public StateMachine(Type stateMachineContextType, Type stateMachineEnumType) + { + StateMachineContextType = stateMachineContextType; + StateMachineEnumType = stateMachineEnumType; } } \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs b/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs deleted file mode 100644 index ef22d79..0000000 --- a/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs +++ /dev/null @@ -1,109 +0,0 @@ -using System.Linq; -using Unity.VisualScripting; -using UnityCodeGen; -using UnityEditor; - -namespace Code.Infrastructure.Generators -{ - [Generator] - public class ConfigGenerator : ICodeGenerator - { - public void Execute(GeneratorContext context) - { - var configs = TypeCache.GetTypesWithAttribute(); - - var configsCode = ""; - var configAddCode = ""; - var configReferencesCode = ""; - var configReferencesUsingsCode = ""; - var configOfConfigsCode = ""; - - foreach (var cfg in configs) - { - var configFields = ""; - var configUsings = ""; - - var mem = cfg.GetFields(); - var members = mem.Where(m => m.HasAttribute()).ToList(); - foreach (var m in members) - { - configUsings += $"using {m.FieldType.Namespace};\n"; - configFields += $"public {m.FieldType.FullName} {m.Name};\n"; - } - - var attribute = cfg.GetAttribute(); - - configUsings += @" -using UnityEngine; -using UnityEngine.AddressableAssets; -"; - var configCode = $@" -#pragma warning disable CS0105 -{configUsings} -namespace {cfg.Namespace}{{ -#pragma warning restore CS0105 -[CreateAssetMenu(fileName = ""{cfg.Name}Config"", menuName = ""{attribute.MenuName}"")] -public class {cfg.Name}Config : ScriptableObject -{{ - {configFields} -}} -}} -"; - context.AddCode($"{cfg.Name}Config.Generated.cs", configCode); - - configReferencesUsingsCode += $"using {cfg.Namespace};\n"; - - if (attribute.Multiple) - { - configReferencesCode += $"public string {cfg.Name};\n"; - configAddCode += $@" - _multipleConfigReferences.Add(typeof({cfg.FullName}Config), systemConfigsReferences.{cfg.Name}); -"; - } - else - { - configReferencesCode += $"public AssetReference {cfg.Name};\n"; - configAddCode += $@" - _singleConfigReferences.Add(typeof({cfg.FullName}Config), systemConfigsReferences.{cfg.Name}); -"; - } - } - configsCode += $@" -#pragma warning disable CS0105 - {configReferencesUsingsCode} - using UnityEngine; -#pragma warning restore CS0105 - - namespace Code.Infrastructure.Configs - {{ - - public partial class ConfigLocator - {{ - partial void LoadConfigs() - {{ - SystemConfigsReferences systemConfigsReferences = Resources.Load(""SystemConfigsReferences""); - {configAddCode} - //_singleConfigReferences.Add(typeof(ScenesAssetReferences), systemConfigsReferences.scenesAssetReferences); - }} - }} - }} - "; - context.AddCode($"ConfigLocator.Generated.cs", configsCode); - - configOfConfigsCode += $@" -#pragma warning disable CS0105 - {configReferencesUsingsCode} - using UnityEngine.AddressableAssets; -#pragma warning restore CS0105 - - namespace Code.Infrastructure.Configs{{ - public partial class SystemConfigsReferences - {{ - {configReferencesCode} - }} -}} -"; - context.AddCode($"SystemConfigsReferences.Generated.cs", configOfConfigsCode); - } - } -} \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs.meta b/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs.meta deleted file mode 100644 index fa3eab1..0000000 --- a/Assets/Code/Infrastructure/Generators/ConfigGenerator.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 026403be8eae4546adcb407308031c1d -timeCreated: 1765660396 \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs b/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs deleted file mode 100644 index 3b4cd1e..0000000 --- a/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs +++ /dev/null @@ -1,148 +0,0 @@ -using System.Linq; -using Unity.VisualScripting; -using UnityCodeGen; -using UnityEditor; -using UnityEngine; - -namespace Code.Infrastructure.Generators -{ - [Generator] - public class SceneLoaderGenerator : ICodeGenerator - { - public void Execute(GeneratorContext context) - { - var Enum = TypeCache.GetTypesWithAttribute(); - - var loaderCode = ""; - var dictionaryCode = ""; - var interfacesCode = ""; - var interfacesUsingsCode = $@" -using Code.Infrastructure.EventBus; -"; - - foreach (var en in Enum) - { - if (!en.IsEnum) return; - - var members = en.GetFields(); - foreach (var member in members) - { - if(member.FieldType.FullName != en.FullName) continue; - interfacesCode += $@" - public interface IOn{member.Name}SceneLoadedHandler : IGlobalSubscriber - {{ - void On{member.Name}SceneLoaded(); - }} -"; - dictionaryCode += $@" - - _scenesActions.Add(SceneId.{member.Name},() => _eventBus.RaiseEvent(h=> h.On{member.Name}SceneLoaded())); -"; - } - } - - loaderCode = $@" -#pragma warning disable CS0105 -{interfacesUsingsCode} -#pragma warning restore CS0105 - -namespace Code.Infrastructure.SceneLoader -{{ -public partial class SceneLoader{{ -partial void SetupScenesInfo(){{ -{dictionaryCode} -}} -}} -{interfacesCode} -}} -"; - context.AddCode($"SceneLoader.Generated.cs", loaderCode); -// var configsCode = ""; -// var configCode = ""; -// var configUsings = ""; -// var configFields = ""; -// var configAddCode = ""; -// var configReferencesCode = ""; -// var configReferencesUsingsCode = ""; -// var configOfConfigsCode = ""; -// -// foreach (var cfg in configs) -// { -// var mem = cfg.GetFields(); -// var members = mem.Where(m => m.HasAttribute()).ToList(); -// foreach (var m in members) -// { -// configUsings += $"using {m.FieldType.Namespace};\n"; -// configFields += $"public {m.FieldType.FullName} {m.Name};\n"; -// } -// -// var attribute = cfg.GetAttribute(); -// -// configUsings += @" -// using UnityEngine; -// using UnityEngine.AddressableAssets; -// "; -// configCode = $@" -// {configUsings} -// namespace {cfg.Namespace}{{ -// [CreateAssetMenu(fileName = ""{cfg.Name}Config"", menuName = ""{attribute.MenuName}"")] -// public class {cfg.Name}Config : ScriptableObject -// {{ -// {configFields} -// }} -// }} -// "; -// context.AddCode($"{cfg.Name}Config.Generated.cs", configCode); -// -// configReferencesUsingsCode += $"using {cfg.Namespace};\n"; -// -// if (attribute.Multiple) -// { -// configReferencesCode += $"public String {cfg.Name};\n"; -// configAddCode += $@" -// _multipleConfigReferences.Add(typeof({cfg.FullName}), systemConfigsReferences.{cfg.Name}); -// "; -// } -// else -// { -// configReferencesCode += $"public AssetReference {cfg.Name};\n"; -// configAddCode += $@" -// _singleConfigReferences.Add(typeof({cfg.FullName}Config), systemConfigsReferences.{cfg.Name}); -// "; -// } -// } -// configsCode += $@" -// {configReferencesUsingsCode} -// using UnityEngine; -// -// namespace Code.Infrastructure.Configs -// {{ -// -// public partial class ConfigLocator -// {{ -// partial void LoadConfigs() -// {{ -// SystemConfigsReferences systemConfigsReferences = Resources.Load(""SystemConfigsReferences""); -// {configAddCode} -// //_singleConfigReferences.Add(typeof(ScenesAssetReferences), systemConfigsReferences.scenesAssetReferences); -// }} -// }} -// }} -// "; -// context.AddCode($"ConfigLocator.Generated.cs", configsCode); -// -// configOfConfigsCode += $@" -// {configReferencesUsingsCode} -// using UnityEngine.AddressableAssets; -// -// namespace Code.Infrastructure.Configs{{ -// public partial class SystemConfigsReferences -// {{ -// {configReferencesCode} -// }} -// }} -// "; -// context.AddCode($"SystemConfigsReferences.Generated.cs", configOfConfigsCode); - } - } -} \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs.meta b/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs.meta deleted file mode 100644 index ed17cad..0000000 --- a/Assets/Code/Infrastructure/Generators/SceneLoaderGenerator.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 92ec56ffd46d4a569bb9a7d436790439 -timeCreated: 1766423754 \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Generators/StateMachineGenerator.cs b/Assets/Code/Infrastructure/Generators/StateMachineGenerator.cs deleted file mode 100644 index aa9fcf9..0000000 --- a/Assets/Code/Infrastructure/Generators/StateMachineGenerator.cs +++ /dev/null @@ -1,131 +0,0 @@ -using System.Linq; -using Unity.VisualScripting; -using UnityCodeGen; -using UnityEditor; - -namespace Code.Infrastructure.Generators -{ - [Generator] - public class StateMachineGenerator : ICodeGenerator - { - public void Execute(GeneratorContext context) - { - GenerateStates(context); - - GenerateStateMachine(context); - } - - private void GenerateStateMachine(GeneratorContext context) - { - var stateMachines = TypeCache.GetTypesWithAttribute(); - - foreach (var sm in stateMachines) - { - var attribute = sm.GetAttribute(); - - var states = TypeCache.GetTypesWithAttribute() - .Where(st => - st.GetAttribute().StateMachineContext.FullName == - attribute.StateMachineContextType.FullName); - - var statesCode = ""; - var statesNamespacesCode = ""; - - foreach (var st in states) - { - statesNamespacesCode += $@" -using {st.Namespace}; -"; - statesCode += $@" -var state{st.Name} = new {st.Name}(StateMachineContext,eventBus); -States.Add(state{st.Name}.myState, state{st.Name}); -"; - } - - var stateMachineCode = - $@" -// -#pragma warning disable CS0105 -using Code.Infrastructure.StateMachine; -{statesNamespacesCode} -#pragma warning restore CS0105 -namespace {sm.Namespace} -{{ - -public partial class {sm.Name} : AbstractStateMachine<{attribute.StateMachineEnumType.FullName},{attribute.StateMachineContextType.FullName}> -{{ - - public {sm.Name}({attribute.StateMachineContextType.FullName} context, EventBus.EventBus eventBus) : base(context) - {{ - {statesCode} - }} - - protected override bool CheckTransitionAllowed({attribute.StateMachineEnumType.FullName} nextState) => AllowedStates.HasFlag(nextState); - protected override void ResetAllowedTransitions() => AllowedStates = 0; -}} - - public static class {sm.Name}Extensions - {{ - public static AbstractStateMachine<{attribute.StateMachineEnumType.FullName}, {attribute.StateMachineContextType.FullName}> AllowStateTransition( - this AbstractStateMachine<{attribute.StateMachineEnumType.FullName}, {attribute.StateMachineContextType.FullName}> stateMachine, {attribute.StateMachineEnumType.FullName} state) - {{ - if (stateMachine == null) return null; - - stateMachine.AllowedStates |= state; - return stateMachine; - }} - }} -}} - -"; - - context.AddCode($"{sm.FullName}.Generated.cs", stateMachineCode); - } - } - - private void GenerateStates(GeneratorContext context) - { - var states = TypeCache.GetTypesWithAttribute(); - - var statesCode = ""; - foreach (var st in states) - { - var attribute = st.GetAttribute(); - - var fireStatesCode = ""; - if(st.HasAttribute()) fireStatesCode = $@" -protected override void _fireEnterState() - {{ - EventBus.RaiseEvent>(h => h.EnterState()); - }} - - protected override void _fireExitState() - {{ - EventBus.RaiseEvent>(h => h.ExitState()); - }} -"; - var genetics = ""; - if(!attribute.SilentBitch) genetics = $@" : BaseState<{attribute.StateEnum.FullName}, {attribute.StateMachineContext.FullName}>"; - - statesCode = $@" - -// retard-generated - -using Code.Infrastructure.StateMachine; - -namespace {st.Namespace} -{{ - public partial class {st.Name} {genetics} - {{ - {fireStatesCode} - }} -}} -"; - - - context.AddCode($"{st.FullName}.Generated.cs", statesCode); - - } - } - } -} \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Generators/StateMachineGenerator.cs.meta b/Assets/Code/Infrastructure/Generators/StateMachineGenerator.cs.meta deleted file mode 100644 index b34c15d..0000000 --- a/Assets/Code/Infrastructure/Generators/StateMachineGenerator.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 9fb4b6961cd0471d8183511316c15000 -timeCreated: 1765563824 \ No newline at end of file diff --git a/Assets/Code/Infrastructure/Input/InputService.cs b/Assets/Code/Infrastructure/Input/InputService.cs index 505224f..44e9477 100644 --- a/Assets/Code/Infrastructure/Input/InputService.cs +++ b/Assets/Code/Infrastructure/Input/InputService.cs @@ -1,7 +1,6 @@ using System; using Code.Infrastructure.Configs; using Code.Infrastructure.EventBus; -using Code.Infrastructure.Generators; using Cysharp.Threading.Tasks; using UnityEngine.AddressableAssets; using UnityEngine.InputSystem; diff --git a/Assets/Code/Infrastructure/SceneLoader/SceneId.cs b/Assets/Code/Infrastructure/SceneLoader/SceneId.cs index 8df3341..28c472b 100644 --- a/Assets/Code/Infrastructure/SceneLoader/SceneId.cs +++ b/Assets/Code/Infrastructure/SceneLoader/SceneId.cs @@ -1,4 +1,3 @@ -using Code.Infrastructure.Generators; namespace Code.Infrastructure.SceneLoader { diff --git a/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs b/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs index 728c8ae..b39636c 100644 --- a/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs +++ b/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs @@ -1,8 +1,7 @@ using System; using System.Collections.Generic; using Code.Infrastructure.Configs; -using Code.Infrastructure.EventBus; -using Code.Infrastructure.Generators; +using Code.Infrastructure.EventBus; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets; diff --git a/Assets/Code/Infrastructure/StateMachine/BaseState.cs b/Assets/Code/Infrastructure/StateMachine/BaseState.cs index a9e9dd0..ea89c66 100644 --- a/Assets/Code/Infrastructure/StateMachine/BaseState.cs +++ b/Assets/Code/Infrastructure/StateMachine/BaseState.cs @@ -1,3 +1,5 @@ +using Code.Infrastructure.App; + namespace Code.Infrastructure.StateMachine { public abstract class BaseState diff --git a/Assets/SourceGeneration/InfraGens.dll b/Assets/SourceGeneration/InfraGens.dll new file mode 100644 index 0000000..acb6b4f Binary files /dev/null and b/Assets/SourceGeneration/InfraGens.dll differ diff --git a/Assets/SourceGeneration/InfraGens.dll.meta b/Assets/SourceGeneration/InfraGens.dll.meta new file mode 100644 index 0000000..7992cae --- /dev/null +++ b/Assets/SourceGeneration/InfraGens.dll.meta @@ -0,0 +1,59 @@ +fileFormatVersion: 2 +guid: 3e1d53c76c82adb46902c4d2603e79c2 +labels: +- RoslynAnalyzer +PluginImporter: + externalObjects: {} + serializedVersion: 3 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 1 + validateReferences: 0 + platformData: + Android: + enabled: 0 + settings: + AndroidLibraryDependee: UnityLibrary + AndroidSharedLibraryType: Executable + CPU: ARMv7 + Any: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/Examples.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/Examples.cs index b56cd94..c6cf959 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/Examples.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/Examples.cs @@ -1,26 +1,26 @@ -using System.Collections.Generic; -using Entities; - -namespace InfraGens.Sample; - -public class Examples -{ - // Create generated entities, based on DDD.UbiquitousLanguageRegistry.txt - public object[] CreateEntities() - { - return new object[] - { - new Customer(), - new Employee(), - new Product(), - new Shop(), - new Stock() - }; - } - - // Execute generated method Report - public IEnumerable CreateEntityReport(SampleEntity entity) - { - return entity.Report(); - } -} \ No newline at end of file +// using System.Collections.Generic; +// using Entities; +// +// namespace InfraGens.Sample; +// +// public class Examples +// { +// // Create generated entities, based on DDD.UbiquitousLanguageRegistry.txt +// public object[] CreateEntities() +// { +// return new object[] +// { +// new Customer(), +// new Employee(), +// new Product(), +// new Shop(), +// new Stock() +// }; +// } +// +// // Execute generated method Report +// public IEnumerable CreateEntityReport(SampleEntity entity) +// { +// return entity.Report(); +// } +// } \ No newline at end of file diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/SampleEntity.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/SampleEntity.cs index 9443278..be635d9 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/SampleEntity.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/SampleEntity.cs @@ -1,12 +1,56 @@ -using Generators; +using System; -namespace InfraGens.Sample; +[Config("Configs/Camera/CameraConfig")] +public class GameCamera +{ + [ToConfig] public int Camera; +} +public class StateMachine : Attribute +{ + public Type StateMachineContextType; + public Type StateMachineEnumType; -// This code will not compile until you build the project with the Source Generators + public StateMachine(Type stateMachineContextType, Type stateMachineEnumType) + { + StateMachineContextType = stateMachineContextType; + StateMachineEnumType = stateMachineEnumType; + } +} -[Report] -public partial class SampleEntity +public class State : Attribute +{ + public Type StateEnum; + public Type StateMachineContext; + public bool SilentBitch; // Поэтому нейминг переменных очень важен + + public State(Type stateEnum, Type stateMachineContext, bool silentBitch = false) + { + StateEnum = stateEnum; + StateMachineContext = stateMachineContext; + SilentBitch = silentBitch; + } +} + +public class StateRaisingEvent : Attribute +{ +} + +public class Config : Attribute +{ + public bool Multiple; + public string MenuName; + + public Config(string menuName, bool multiple = false) + { + Multiple = multiple; + MenuName = menuName; + } +} + +public class ToConfig : Attribute +{ +} + +public class SceneIdEnum : Attribute { - public int Id { get; } = 42; - public string? Name { get; } = "Sample"; } \ No newline at end of file diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/bin/Debug/net8.0/InfraGens.Sample.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/bin/Debug/net8.0/InfraGens.Sample.dll index 7d00ec3..c389817 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/bin/Debug/net8.0/InfraGens.Sample.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/bin/Debug/net8.0/InfraGens.Sample.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.AssemblyInfo.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.AssemblyInfo.cs index 8384389..cda469d 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.AssemblyInfo.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("InfraGens.Sample")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a3cd3e86a161e3ee450256b1b37c6a4583c70840")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a4090547509ba65f8ba7b22442c10d06c15217e0")] [assembly: System.Reflection.AssemblyProductAttribute("InfraGens.Sample")] [assembly: System.Reflection.AssemblyTitleAttribute("InfraGens.Sample")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.AssemblyInfoInputs.cache b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.AssemblyInfoInputs.cache index 4517d4b..aa37e39 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.AssemblyInfoInputs.cache +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.AssemblyInfoInputs.cache @@ -1 +1 @@ -ff49a1d065da3858c1224dae22c001fae5c9d17e1737f7b26cef44c567a20d60 +ef1fde298251b87291e3f53f6d50441cec1268cfc54dba8a1b093bc8be99164e diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.csproj.FileListAbsolute.txt b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.csproj.FileListAbsolute.txt index 367669c..9c80d75 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.csproj.FileListAbsolute.txt +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.csproj.FileListAbsolute.txt @@ -9,3 +9,14 @@ A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens.Sample\o A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens.Sample\obj\Debug\net8.0\refint\InfraGens.Sample.dll A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens.Sample\obj\Debug\net8.0\InfraGens.Sample.pdb A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens.Sample\obj\Debug\net8.0\ref\InfraGens.Sample.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\obj\Debug\net8.0\InfraGens.Sample.GeneratedMSBuildEditorConfig.editorconfig +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\obj\Debug\net8.0\InfraGens.Sample.AssemblyInfoInputs.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\obj\Debug\net8.0\InfraGens.Sample.AssemblyInfo.cs +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\obj\Debug\net8.0\InfraGens.Sample.csproj.CoreCompileInputs.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\obj\Debug\net8.0\InfraGens.Sample.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\obj\Debug\net8.0\refint\InfraGens.Sample.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\obj\Debug\net8.0\InfraGens.Sample.pdb +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\bin\Debug\net8.0\InfraGens.Sample.deps.json +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\bin\Debug\net8.0\InfraGens.Sample.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\bin\Debug\net8.0\InfraGens.Sample.pdb +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Sample\obj\Debug\net8.0\ref\InfraGens.Sample.dll diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.dll index 7d00ec3..c389817 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/InfraGens.Sample.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/ref/InfraGens.Sample.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/ref/InfraGens.Sample.dll index bd4f11a..2c283d1 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/ref/InfraGens.Sample.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/ref/InfraGens.Sample.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/refint/InfraGens.Sample.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/refint/InfraGens.Sample.dll index bd4f11a..2c283d1 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/refint/InfraGens.Sample.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Sample/obj/Debug/net8.0/refint/InfraGens.Sample.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/SampleIncrementalSourceGeneratorTests.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/SampleIncrementalSourceGeneratorTests.cs index 28964f7..bfb93e5 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/SampleIncrementalSourceGeneratorTests.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/SampleIncrementalSourceGeneratorTests.cs @@ -1,67 +1,67 @@ -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Xunit; - -namespace InfraGens.Tests; - -public class SampleIncrementalSourceGeneratorTests -{ - private const string VectorClassText = @" -namespace TestNamespace; - -[Generators.Report] -public partial class Vector3 -{ - public float X { get; set; } - public float Y { get; set; } - public float Z { get; set; } -}"; - - private const string ExpectedGeneratedClassText = @"// - -using System; -using System.Collections.Generic; - -namespace TestNamespace; - -partial class Vector3 -{ - public IEnumerable Report() - { - yield return $""X:{this.X}""; - yield return $""Y:{this.Y}""; - yield return $""Z:{this.Z}""; - } -} -"; - - [Fact] - public void GenerateReportMethod() - { - // Create an instance of the source generator. - var generator = new SampleIncrementalSourceGenerator(); - - // Source generators should be tested using 'GeneratorDriver'. - var driver = CSharpGeneratorDriver.Create(generator); - - // We need to create a compilation with the required source code. - var compilation = CSharpCompilation.Create(nameof(SampleSourceGeneratorTests), - new[] { CSharpSyntaxTree.ParseText(VectorClassText) }, - new[] - { - // To support 'System.Attribute' inheritance, add reference to 'System.Private.CoreLib'. - MetadataReference.CreateFromFile(typeof(object).Assembly.Location) - }); - - // Run generators and retrieve all results. - var runResult = driver.RunGenerators(compilation).GetRunResult(); - - // All generated files can be found in 'RunResults.GeneratedTrees'. - var generatedFileSyntax = runResult.GeneratedTrees.Single(t => t.FilePath.EndsWith("Vector3.g.cs")); - - // Complex generators should be tested using text comparison. - Assert.Equal(ExpectedGeneratedClassText, generatedFileSyntax.GetText().ToString(), - ignoreLineEndingDifferences: true); - } -} \ No newline at end of file +// using System.Linq; +// using Microsoft.CodeAnalysis; +// using Microsoft.CodeAnalysis.CSharp; +// using Xunit; +// +// namespace InfraGens.Tests; +// +// public class SampleIncrementalSourceGeneratorTests +// { +// private const string VectorClassText = @" +// namespace TestNamespace; +// +// [Generators.Report] +// public partial class Vector3 +// { +// public float X { get; set; } +// public float Y { get; set; } +// public float Z { get; set; } +// }"; +// +// private const string ExpectedGeneratedClassText = @"// +// +// using System; +// using System.Collections.Generic; +// +// namespace TestNamespace; +// +// partial class Vector3 +// { +// public IEnumerable Report() +// { +// yield return $""X:{this.X}""; +// yield return $""Y:{this.Y}""; +// yield return $""Z:{this.Z}""; +// } +// } +// "; +// +// [Fact] +// public void GenerateReportMethod() +// { +// // Create an instance of the source generator. +// var generator = new SampleIncrementalSourceGenerator(); +// +// // Source generators should be tested using 'GeneratorDriver'. +// var driver = CSharpGeneratorDriver.Create(generator); +// +// // We need to create a compilation with the required source code. +// var compilation = CSharpCompilation.Create(nameof(SampleSourceGeneratorTests), +// new[] { CSharpSyntaxTree.ParseText(VectorClassText) }, +// new[] +// { +// // To support 'System.Attribute' inheritance, add reference to 'System.Private.CoreLib'. +// MetadataReference.CreateFromFile(typeof(object).Assembly.Location) +// }); +// +// // Run generators and retrieve all results. +// var runResult = driver.RunGenerators(compilation).GetRunResult(); +// +// // All generated files can be found in 'RunResults.GeneratedTrees'. +// var generatedFileSyntax = runResult.GeneratedTrees.Single(t => t.FilePath.EndsWith("Vector3.g.cs")); +// +// // Complex generators should be tested using text comparison. +// Assert.Equal(ExpectedGeneratedClassText, generatedFileSyntax.GetText().ToString(), +// ignoreLineEndingDifferences: true); +// } +// } \ No newline at end of file diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/SampleSourceGeneratorTests.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/SampleSourceGeneratorTests.cs index 3b37912..83ccb78 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/SampleSourceGeneratorTests.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/SampleSourceGeneratorTests.cs @@ -1,48 +1,48 @@ -using System.IO; -using System.Linq; -using InfraGens.Tests.Utils; -using Microsoft.CodeAnalysis.CSharp; -using Xunit; - -namespace InfraGens.Tests; - -public class SampleSourceGeneratorTests -{ - private const string DddRegistryText = @"User -Document -Customer"; - - [Fact] - public void GenerateClassesBasedOnDDDRegistry() - { - // Create an instance of the source generator. - var generator = new SampleSourceGenerator(); - - // Source generators should be tested using 'GeneratorDriver'. - var driver = CSharpGeneratorDriver.Create(new[] { generator }, - new[] - { - // Add the additional file separately from the compilation. - new TestAdditionalFile("./DDD.UbiquitousLanguageRegistry.txt", DddRegistryText) - }); - - // To run generators, we can use an empty compilation. - var compilation = CSharpCompilation.Create(nameof(SampleSourceGeneratorTests)); - - // Run generators. Don't forget to use the new compilation rather than the previous one. - driver.RunGeneratorsAndUpdateCompilation(compilation, out var newCompilation, out _); - - // Retrieve all files in the compilation. - var generatedFiles = newCompilation.SyntaxTrees - .Select(t => Path.GetFileName(t.FilePath)) - .ToArray(); - - // In this case, it is enough to check the file name. - Assert.Equivalent(new[] - { - "User.g.cs", - "Document.g.cs", - "Customer.g.cs" - }, generatedFiles); - } -} \ No newline at end of file +// using System.IO; +// using System.Linq; +// using InfraGens.Tests.Utils; +// using Microsoft.CodeAnalysis.CSharp; +// using Xunit; +// +// namespace InfraGens.Tests; +// +// public class SampleSourceGeneratorTests +// { +// private const string DddRegistryText = @"User +// Document +// Customer"; +// +// [Fact] +// public void GenerateClassesBasedOnDDDRegistry() +// { +// // Create an instance of the source generator. +// var generator = new SampleSourceGenerator(); +// +// // Source generators should be tested using 'GeneratorDriver'. +// var driver = CSharpGeneratorDriver.Create(new[] { generator }, +// new[] +// { +// // Add the additional file separately from the compilation. +// new TestAdditionalFile("./DDD.UbiquitousLanguageRegistry.txt", DddRegistryText) +// }); +// +// // To run generators, we can use an empty compilation. +// var compilation = CSharpCompilation.Create(nameof(SampleSourceGeneratorTests)); +// +// // Run generators. Don't forget to use the new compilation rather than the previous one. +// driver.RunGeneratorsAndUpdateCompilation(compilation, out var newCompilation, out _); +// +// // Retrieve all files in the compilation. +// var generatedFiles = newCompilation.SyntaxTrees +// .Select(t => Path.GetFileName(t.FilePath)) +// .ToArray(); +// +// // In this case, it is enough to check the file name. +// Assert.Equivalent(new[] +// { +// "User.g.cs", +// "Document.g.cs", +// "Customer.g.cs" +// }, generatedFiles); +// } +// } \ No newline at end of file diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/bin/Debug/net8.0/InfraGens.Tests.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/bin/Debug/net8.0/InfraGens.Tests.dll index dc5268f..f6061b4 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/bin/Debug/net8.0/InfraGens.Tests.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/bin/Debug/net8.0/InfraGens.Tests.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/bin/Debug/net8.0/InfraGens.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/bin/Debug/net8.0/InfraGens.dll index fa0d887..acb6b4f 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/bin/Debug/net8.0/InfraGens.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/bin/Debug/net8.0/InfraGens.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.AssemblyInfo.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.AssemblyInfo.cs index 17459bb..ab1ff35 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.AssemblyInfo.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("InfraGens.Tests")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a3cd3e86a161e3ee450256b1b37c6a4583c70840")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a4090547509ba65f8ba7b22442c10d06c15217e0")] [assembly: System.Reflection.AssemblyProductAttribute("InfraGens.Tests")] [assembly: System.Reflection.AssemblyTitleAttribute("InfraGens.Tests")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.AssemblyInfoInputs.cache b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.AssemblyInfoInputs.cache index a58a724..52675cf 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.AssemblyInfoInputs.cache +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.AssemblyInfoInputs.cache @@ -1 +1 @@ -3aaef13ccdf955618089a7e1ba10db7b8d2ba79b04ae43d5944eef576921c84f +cf82c0056596f228da5d08a995ac5821d42f1b461d942f674b0df67c66b18b23 diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.AssemblyReference.cache b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.AssemblyReference.cache index b47c61c..7775663 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.AssemblyReference.cache and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.AssemblyReference.cache differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.CoreCompileInputs.cache b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.CoreCompileInputs.cache index 32c9522..8ba0cc9 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.CoreCompileInputs.cache +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -20dcaaedf8813ada1140488db29aa1ef6413aa5836273f056027b0a8f617abb7 +8f325882fdd7784b4c5a3360ebb617469b9c9290716a5f0b739ae2afc4f6b0fa diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.FileListAbsolute.txt b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.FileListAbsolute.txt index 150bfc8..8f6f7d2 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.FileListAbsolute.txt +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.csproj.FileListAbsolute.txt @@ -209,3 +209,214 @@ A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens.Tests\ob A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.pdb A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.genruntimeconfig.cache A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens.Tests\obj\Debug\net8.0\ref\InfraGens.Tests.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\testhost.exe +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\testhost.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\xunit.runner.reporters.netcoreapp10.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\xunit.runner.utility.netcoreapp10.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\InfraGens.Tests.deps.json +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\InfraGens.Tests.runtimeconfig.json +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\InfraGens.Tests.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\InfraGens.Tests.pdb +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\DiffPlex.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Humanizer.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.Bcl.AsyncInterfaces.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.Analyzer.Testing.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.XUnit.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.SourceGenerators.Testing.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.Testing.Verifiers.XUnit.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.CodeAnalysis.Workspaces.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.VisualBasic.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.VisualStudio.Composition.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.VisualStudio.Composition.NetFxAttributes.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Microsoft.VisualStudio.Validation.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\Newtonsoft.Json.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\NuGet.Common.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\NuGet.Configuration.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\NuGet.Frameworks.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\NuGet.Packaging.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\NuGet.Protocol.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\NuGet.Resolver.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\NuGet.Versioning.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\System.ComponentModel.Composition.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\System.Composition.AttributedModel.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\System.Composition.Convention.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\System.Composition.Hosting.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\System.Composition.Runtime.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\System.Composition.TypedParts.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\System.IO.Pipelines.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\System.Security.Permissions.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\xunit.abstractions.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\xunit.assert.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\xunit.core.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\xunit.execution.dotnet.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.Composition.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\cs\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\de\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\es\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\fr\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\it\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ja\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ko\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pl\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\ru\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\tr\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.Validation.resources.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\runtimes\unix\lib\netstandard1.3\System.Security.Cryptography.ProtectedData.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\runtimes\win\lib\netstandard1.3\System.Security.Cryptography.ProtectedData.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\InfraGens.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\bin\Debug\net8.0\InfraGens.pdb +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.csproj.AssemblyReference.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.GeneratedMSBuildEditorConfig.editorconfig +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.AssemblyInfoInputs.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.AssemblyInfo.cs +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.csproj.CoreCompileInputs.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGen.322FFEE7.Up2Date +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\refint\InfraGens.Tests.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.pdb +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\InfraGens.Tests.genruntimeconfig.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens.Tests\obj\Debug\net8.0\ref\InfraGens.Tests.dll diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.dll index dc5268f..f6061b4 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.genruntimeconfig.cache b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.genruntimeconfig.cache index 6c149c2..1fe2596 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.genruntimeconfig.cache +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/InfraGens.Tests.genruntimeconfig.cache @@ -1 +1 @@ -7487cbb514ed8b26b20736e904ac9d522da435f685dccb560d0039466b4510a2 +027bd187cd72f6bda8e68f2bf08397d4be588fbf68a9b00c748fd972a7cd0f41 diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/ref/InfraGens.Tests.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/ref/InfraGens.Tests.dll index aa6eab9..2218def 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/ref/InfraGens.Tests.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/ref/InfraGens.Tests.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/refint/InfraGens.Tests.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/refint/InfraGens.Tests.dll index aa6eab9..2218def 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/refint/InfraGens.Tests.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens.Tests/obj/Debug/net8.0/refint/InfraGens.Tests.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/Attributes.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/Attributes.cs new file mode 100644 index 0000000..239e9d5 --- /dev/null +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/Attributes.cs @@ -0,0 +1,51 @@ +using System; + +public class StateMachine : Attribute +{ + public Type StateMachineContextType; + public Type StateMachineEnumType; + + public StateMachine(Type stateMachineContextType, Type stateMachineEnumType) + { + StateMachineContextType = stateMachineContextType; + StateMachineEnumType = stateMachineEnumType; + } +} + +public class State : Attribute +{ + public Type StateEnum; + public Type StateMachineContext; + public bool SilentBitch; // Поэтому нейминг переменных очень важен + + public State(Type stateEnum, Type stateMachineContext, bool silentBitch = false) + { + StateEnum = stateEnum; + StateMachineContext = stateMachineContext; + SilentBitch = silentBitch; + } +} + +public class StateRaisingEvent : Attribute +{ +} + +public class Config : Attribute +{ + public bool Multiple; + public string MenuName; + + public Config(string menuName, bool multiple = false) + { + Multiple = multiple; + MenuName = menuName; + } +} + +public class ToConfig : Attribute +{ +} + +public class SceneIdEnum : Attribute +{ +} \ No newline at end of file diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/IngrementalConfigGenerator.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/IngrementalConfigGenerator.cs new file mode 100644 index 0000000..8848010 --- /dev/null +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/IngrementalConfigGenerator.cs @@ -0,0 +1,399 @@ +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Linq; +using System.Text; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Text; + +[Generator] +public class StateMachineGenerator : IIncrementalGenerator +{ + public void Initialize(IncrementalGeneratorInitializationContext context) + { + // 1. Собираем все типы с атрибутом [StateMachine] + var stateMachineTypes = context.SyntaxProvider + .CreateSyntaxProvider( + predicate: static (s, _) => IsStateMachineCandidate(s), + transform: static (ctx, _) => GetStateMachineType(ctx)) + .Where(static m => m is not null) + .Collect(); + + // 2. Собираем все типы с атрибутом [State] + var stateTypes = context.SyntaxProvider + .CreateSyntaxProvider( + predicate: static (s, _) => IsStateCandidate(s), + transform: static (ctx, _) => GetStateType(ctx)) + .Where(static m => m is not null) + .Collect(); + + // 3. Получаем компиляцию для семантического анализа + var compilation = context.CompilationProvider; + + // 4. Объединяем все данные + var combinedData = stateMachineTypes.Combine(stateTypes).Combine(compilation); + + // 5. Регистрируем генерацию кода + context.RegisterSourceOutput(combinedData, static (spc, source) => + Execute(spc, source.Left.Left, source.Left.Right, source.Right)); + } + + private static bool IsStateMachineCandidate(SyntaxNode node) + { + return node is ClassDeclarationSyntax classDecl && + classDecl.AttributeLists.Count > 0; + } + + private static bool IsStateCandidate(SyntaxNode node) + { + return node is ClassDeclarationSyntax classDecl && + classDecl.AttributeLists.Count > 0; + } + + private static INamedTypeSymbol? GetStateMachineType(GeneratorSyntaxContext context) + { + var classDecl = (ClassDeclarationSyntax)context.Node; + var classSymbol = context.SemanticModel.GetDeclaredSymbol(classDecl); + + if (classSymbol == null) return null; + + // Проверяем наличие атрибута [StateMachine] + var stateMachineAttribute = context.SemanticModel.Compilation.GetTypeByMetadataName("StateMachine"); + if (stateMachineAttribute == null) return null; + + return classSymbol.GetAttributes() + .Any(attr => SymbolEqualityComparer.Default.Equals(attr.AttributeClass, stateMachineAttribute)) + ? classSymbol + : null; + } + + private static INamedTypeSymbol? GetStateType(GeneratorSyntaxContext context) + { + var classDecl = (ClassDeclarationSyntax)context.Node; + var classSymbol = context.SemanticModel.GetDeclaredSymbol(classDecl); + + if (classSymbol == null) return null; + + // Проверяем наличие атрибута [State] + var stateAttribute = context.SemanticModel.Compilation.GetTypeByMetadataName("State"); + if (stateAttribute == null) return null; + + return classSymbol.GetAttributes() + .Any(attr => SymbolEqualityComparer.Default.Equals(attr.AttributeClass, stateAttribute)) + ? classSymbol + : null; + } + + private static void Execute( + SourceProductionContext context, + ImmutableArray stateMachineTypes, + ImmutableArray stateTypes, + Compilation compilation) + { + if (stateMachineTypes.IsDefaultOrEmpty && stateTypes.IsDefaultOrEmpty) + return; + + var validStateMachines = stateMachineTypes.Where(t => t != null).ToList(); + var validStates = stateTypes.Where(t => t != null).ToList(); + + if (!validStateMachines.Any() && !validStates.Any()) + return; + + // Получаем символы атрибутов + var stateMachineAttributeSymbol = compilation.GetTypeByMetadataName("StateMachine"); + var stateAttributeSymbol = compilation.GetTypeByMetadataName("State"); + var stateRaisingEventAttributeSymbol = compilation.GetTypeByMetadataName("StateRaisingEvent"); + + if (stateMachineAttributeSymbol == null || stateAttributeSymbol == null) + { + context.ReportDiagnostic(Diagnostic.Create( + new DiagnosticDescriptor("SMG001", "Missing attributes", + "StateMachine or State attributes not found", "StateMachine", DiagnosticSeverity.Error, true), + Location.None)); + return; + } + + // Генерируем код для StateMachine и States + GenerateStateClasses(context, validStates, stateAttributeSymbol, stateRaisingEventAttributeSymbol, compilation); + GenerateStateMachineClasses(context, validStateMachines, validStates, stateMachineAttributeSymbol, stateAttributeSymbol, compilation); + } + + private static void GenerateStateMachineClasses( + SourceProductionContext context, + List stateMachines, + List allStates, + INamedTypeSymbol stateMachineAttributeSymbol, + INamedTypeSymbol stateAttributeSymbol, + Compilation compilation) + { + // if (allStates.Count == 0) throw new Exception("RETARDED"); + foreach (var sm in stateMachines) + { + // Получаем параметры атрибута [StateMachine] + var smAttribute = sm.GetAttributes() + .FirstOrDefault(attr => SymbolEqualityComparer.Default.Equals(attr.AttributeClass, stateMachineAttributeSymbol)); + + if (smAttribute == null) continue; + + var stateMachineContextType = GetNamedTypeArgument(smAttribute, "StateMachineContextType"); + var stateMachineEnumType = GetNamedTypeArgument(smAttribute, "StateMachineEnumType"); + + if (stateMachineContextType == null || stateMachineEnumType == null) + { + context.ReportDiagnostic(Diagnostic.Create( + new DiagnosticDescriptor("SMG002", "Invalid StateMachine attribute", + $"StateMachine {sm.Name} has invalid attribute parameters", "StateMachine", DiagnosticSeverity.Error, true), + sm.Locations.FirstOrDefault())); + continue; + } + + // Находим все states для этого state machine + var statesForThisMachine = allStates + .Where(st => + { + var stAttribute = st.GetAttributes() + .FirstOrDefault(attr => SymbolEqualityComparer.Default.Equals(attr.AttributeClass, stateAttributeSymbol)); + + if (stAttribute == null) return false; + + var stContextType = GetNamedTypeArgument(stAttribute, "StateMachineEnumType"); // БЛЯТЬ ИДИ НАХУЙ ПИДАРАС ТРАНСВИСТИТНЫЙ ПИЗДУЙ В ТАЙЛАНД + // Сравниваем по полному имени типа, как в оригинальном коде + return stContextType != null && + stContextType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat) == + stateMachineContextType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); + }) + .ToList(); + + // Собираем пространства имен для states + var stateNamespaces = new HashSet(); + foreach (var st in statesForThisMachine) + { + if (st.ContainingNamespace != null && !st.ContainingNamespace.IsGlobalNamespace) + { + stateNamespaces.Add(st.ContainingNamespace.ToDisplayString()); + } + } + + // Отладка: проверяем, найдены ли стейты + if (statesForThisMachine.Count == 0) + { + context.ReportDiagnostic(Diagnostic.Create( + new DiagnosticDescriptor("SMG004", "No states found", + $"No states found for StateMachine {sm.Name} with context {stateMachineContextType.Name}", + "StateMachine", DiagnosticSeverity.Warning, true), + sm.Locations.FirstOrDefault())); + } + + // Генерируем код для StateMachine + var stateMachineCode = GenerateStateMachineClassCode( + sm, stateMachineContextType, stateMachineEnumType, statesForThisMachine, stateNamespaces); + + var fileName = $"{sm.ContainingNamespace?.ToDisplayString() ?? ""}.{sm.Name}.StateMachine.Generated.cs" + .Replace("<", "_").Replace(">", "_").Replace("+", "_"); + + context.AddSource(fileName, SourceText.From(stateMachineCode, Encoding.UTF8)); + } + } + + private static void GenerateStateClasses( + SourceProductionContext context, + List states, + INamedTypeSymbol stateAttributeSymbol, + INamedTypeSymbol? stateRaisingEventAttributeSymbol, + Compilation compilation) + { + foreach (var st in states) + { + var stateAttribute = st.GetAttributes() + .FirstOrDefault(attr => SymbolEqualityComparer.Default.Equals(attr.AttributeClass, stateAttributeSymbol)); + + if (stateAttribute == null) continue; + + var stateEnumType = GetNamedTypeArgument(stateAttribute, "StateEnum"); + var stateMachineContextType = GetNamedTypeArgument(stateAttribute, "StateMachineContext"); + var isSilent = GetBooleanArgument(stateAttribute, "SilentBitch"); + var hasRaisingEvent = stateRaisingEventAttributeSymbol != null && + st.HasAttribute(stateRaisingEventAttributeSymbol); + + if (stateEnumType == null || stateMachineContextType == null) + { + context.ReportDiagnostic(Diagnostic.Create( + new DiagnosticDescriptor("SMG003", "Invalid State attribute", + $"State {st.Name} has invalid attribute parameters", "StateMachine", DiagnosticSeverity.Error, true), + st.Locations.FirstOrDefault())); + continue; + } + + // Генерируем код для State + var stateCode = GenerateStateClassCode( + st, stateEnumType, stateMachineContextType, isSilent, hasRaisingEvent); + + var fileName = $"{st.ContainingNamespace?.ToDisplayString() ?? ""}.{st.Name}.State.Generated.cs" + .Replace("<", "_").Replace(">", "_").Replace("+", "_"); + + context.AddSource(fileName, SourceText.From(stateCode, Encoding.UTF8)); + } + } + + private static string GenerateStateMachineClassCode( + INamedTypeSymbol sm, + INamedTypeSymbol contextType, + INamedTypeSymbol enumType, + List states, + HashSet stateNamespaces) + { + var sb = new StringBuilder(); + sb.AppendLine("// "); + sb.AppendLine("#pragma warning disable CS0105"); + sb.AppendLine("using Code.Infrastructure.StateMachine;"); + + // Добавляем using для всех пространств имен states + foreach (var ns in stateNamespaces.OrderBy(n => n)) + { + if (!string.IsNullOrEmpty(ns) && ns != sm.ContainingNamespace?.ToDisplayString()) + { + sb.AppendLine($"using {ns};"); + } + } + + sb.AppendLine("#pragma warning restore CS0105"); + sb.AppendLine(); + + if (sm.ContainingNamespace != null && !sm.ContainingNamespace.IsGlobalNamespace) + { + sb.AppendLine($"namespace {sm.ContainingNamespace.ToDisplayString()}"); + sb.AppendLine("{"); + } + + sb.AppendLine($"public partial class {sm.Name} : AbstractStateMachine<{enumType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}, {contextType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}>"); + sb.AppendLine("{"); + + // Конструктор с добавлением всех стейтов + sb.AppendLine($" public {sm.Name}({contextType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)} context, EventBus.EventBus eventBus) : base(context)"); + sb.AppendLine(" {"); + + if (states.Count == 0) sb.AppendLine("//I am retarded"); + foreach (var state in states) + { + sb.AppendLine($" var state{state.Name} = new {state.Name}(StateMachineContext, eventBus);"); + sb.AppendLine($" States.Add(state{state.Name}.myState, state{state.Name});"); + } + + sb.AppendLine(" }"); + sb.AppendLine(); + sb.AppendLine($" protected override bool CheckTransitionAllowed({enumType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)} nextState) => AllowedStates.HasFlag(nextState);"); + sb.AppendLine(" protected override void ResetAllowedTransitions() => AllowedStates = 0;"); + sb.AppendLine("}"); + sb.AppendLine(); + sb.AppendLine($"public static class {sm.Name}Extensions"); + sb.AppendLine("{"); + sb.AppendLine($" public static AbstractStateMachine<{enumType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}, {contextType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}> AllowStateTransition("); + sb.AppendLine($" this AbstractStateMachine<{enumType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}, {contextType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}> stateMachine, {enumType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)} state)"); + sb.AppendLine(" {"); + sb.AppendLine(" if (stateMachine == null) return null;"); + sb.AppendLine(" stateMachine.AllowedStates |= state;"); + sb.AppendLine(" return stateMachine;"); + sb.AppendLine(" }"); + sb.AppendLine("}"); + + if (sm.ContainingNamespace != null && !sm.ContainingNamespace.IsGlobalNamespace) + { + sb.AppendLine("}"); + } + + return sb.ToString(); + } + + private static string GenerateStateClassCode( + INamedTypeSymbol state, + INamedTypeSymbol stateEnumType, + INamedTypeSymbol contextType, + bool isSilent, + bool hasRaisingEvent) + { + var sb = new StringBuilder(); + sb.AppendLine("// "); + sb.AppendLine("using Code.Infrastructure.StateMachine;"); + sb.AppendLine(); + + if (state.ContainingNamespace != null && !state.ContainingNamespace.IsGlobalNamespace) + { + sb.AppendLine($"namespace {state.ContainingNamespace.ToDisplayString()}"); + sb.AppendLine("{"); + } + + var fireStatesCode = ""; + if (hasRaisingEvent) + { + fireStatesCode = $@" + protected override void _fireEnterState() + {{ + EventBus.RaiseEvent>(h => h.EnterState()); + }} + + protected override void _fireExitState() + {{ + EventBus.RaiseEvent>(h => h.ExitState()); + }} +"; + } + + var genetics = ""; + if (!isSilent) + { + // ИСПРАВЛЕНО: Поменяны местами аргументы шаблона - сначала контекст, потом enum + genetics = $@" : BaseState<{contextType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}, {stateEnumType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}>"; + } + + sb.AppendLine($"public partial class {state.Name}{genetics}"); + sb.AppendLine("{"); + sb.AppendLine(fireStatesCode); + sb.AppendLine("}"); + + if (state.ContainingNamespace != null && !state.ContainingNamespace.IsGlobalNamespace) + { + sb.AppendLine("}"); + } + + return sb.ToString(); + } + + private static INamedTypeSymbol? GetNamedTypeArgument(AttributeData attribute, string argumentName) + { + // Проверяем именованные аргументы + foreach (var namedArg in attribute.NamedArguments) + { + if (namedArg.Key == argumentName && namedArg.Value.Value is INamedTypeSymbol namedType) + return namedType; + } + + // Проверяем конструкторные аргументы + var constructorArgs = attribute.ConstructorArguments; + if (constructorArgs.Length >= 2 && constructorArgs[0].Value is INamedTypeSymbol firstType && + constructorArgs[1].Value is INamedTypeSymbol secondType) + { + // Для StateMachineAttribute и StateAttribute порядок параметров в конструкторе: + // [StateMachine(typeof(ContextType), typeof(EnumType))] + // [State(typeof(ContextType), typeof(EnumType))] + if (argumentName == "StateMachineContextType" || argumentName == "StateMachineContext") + return firstType; + if (argumentName == "StateMachineEnumType" || argumentName == "StateEnum") + return secondType; + } + + return null; + } + + private static bool GetBooleanArgument(AttributeData attribute, string argumentName) + { + foreach (var namedArg in attribute.NamedArguments) + { + if (namedArg.Key == argumentName && namedArg.Value.Value is bool boolValue) + return boolValue; + } + return false; + } +} + \ No newline at end of file diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/SampleIncrementalSourceGenerator.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/SampleIncrementalSourceGenerator.cs index 83f7bcc..6caa469 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/SampleIncrementalSourceGenerator.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/SampleIncrementalSourceGenerator.cs @@ -1,130 +1,344 @@ +using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using System.Text; using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; -using Microsoft.CodeAnalysis.Text; - -namespace InfraGens; - -/// -/// A sample source generator that creates a custom report based on class properties. The target class should be annotated with the 'Generators.ReportAttribute' attribute. -/// When using the source code as a baseline, an incremental source generator is preferable because it reduces the performance overhead. -/// [Generator] -public class SampleIncrementalSourceGenerator : IIncrementalGenerator +public class ConfigGenerator : IIncrementalGenerator { - private const string Namespace = "Generators"; - private const string AttributeName = "ReportAttribute"; - - private const string AttributeSourceCode = $@"// - -namespace {Namespace} -{{ - [System.AttributeUsage(System.AttributeTargets.Class)] - public class {AttributeName} : System.Attribute - {{ - }} -}}"; - public void Initialize(IncrementalGeneratorInitializationContext context) { - // Add the marker attribute to the compilation. - context.RegisterPostInitializationOutput(ctx => ctx.AddSource( - "ReportAttribute.g.cs", - SourceText.From(AttributeSourceCode, Encoding.UTF8))); - - // Filter classes annotated with the [Report] attribute. Only filtered Syntax Nodes can trigger code generation. - var provider = context.SyntaxProvider + // 1. Собираем все типы с атрибутом [Config] + var configTypes = context.SyntaxProvider .CreateSyntaxProvider( - (s, _) => s is ClassDeclarationSyntax, - (ctx, _) => GetClassDeclarationForSourceGen(ctx)) - .Where(t => t.reportAttributeFound) - .Select((t, _) => t.Item1); + predicate: static (s, _) => IsConfigCandidate(s), + transform: static (ctx, _) => GetConfigType(ctx)) + .Where(static m => m is not null) + .Collect(); - // Generate the source code. - context.RegisterSourceOutput(context.CompilationProvider.Combine(provider.Collect()), - ((ctx, t) => GenerateCode(ctx, t.Left, t.Right))); + // 2. Получаем компиляцию для семантического анализа + var compilation = context.CompilationProvider; + + // 3. Объединяем данные и генерируем код + var combinedData = configTypes.Combine(compilation); + + context.RegisterSourceOutput(combinedData, static (spc, source) => Execute(spc, source.Left, source.Right)); } - /// - /// Checks whether the Node is annotated with the [Report] attribute and maps syntax context to the specific node type (ClassDeclarationSyntax). - /// - /// Syntax context, based on CreateSyntaxProvider predicate - /// The specific cast and whether the attribute was found. - private static (ClassDeclarationSyntax, bool reportAttributeFound) GetClassDeclarationForSourceGen( - GeneratorSyntaxContext context) + private static bool IsConfigCandidate(SyntaxNode node) { - var classDeclarationSyntax = (ClassDeclarationSyntax)context.Node; + return node is ClassDeclarationSyntax classDecl && + classDecl.AttributeLists.Count > 0; + } - // Go through all attributes of the class. - foreach (AttributeListSyntax attributeListSyntax in classDeclarationSyntax.AttributeLists) - foreach (AttributeSyntax attributeSyntax in attributeListSyntax.Attributes) + private static INamedTypeSymbol? GetConfigType(GeneratorSyntaxContext context) + { + var classDecl = (ClassDeclarationSyntax)context.Node; + var classSymbol = context.SemanticModel.GetDeclaredSymbol(classDecl); + + if (classSymbol == null) return null; + + // Проверяем наличие атрибута [Config] + var configAttribute = context.SemanticModel.Compilation.GetTypeByMetadataName("Config"); + if (configAttribute == null) return null; + + return classSymbol.GetAttributes() + .Any(attr => SymbolEqualityComparer.Default.Equals(attr.AttributeClass, configAttribute)) + ? classSymbol + : null; + } + + private static void Execute(SourceProductionContext context, ImmutableArray configTypes, + Compilation compilation) + { + if (configTypes.IsDefaultOrEmpty) return; + + var validConfigTypes = configTypes.Where(t => t != null).ToList(); + if (!validConfigTypes.Any()) return; + + var configAttributeSymbol = compilation.GetTypeByMetadataName("Config"); + var toConfigAttributeSymbol = compilation.GetTypeByMetadataName("ToConfig"); + + if (configAttributeSymbol == null || toConfigAttributeSymbol == null) { - if (context.SemanticModel.GetSymbolInfo(attributeSyntax).Symbol is not IMethodSymbol attributeSymbol) - continue; // if we can't get the symbol, ignore it - - string attributeName = attributeSymbol.ContainingType.ToDisplayString(); - - // Check the full name of the [Report] attribute. - if (attributeName == $"{Namespace}.{AttributeName}") - return (classDeclarationSyntax, true); + context.ReportDiagnostic(Diagnostic.Create( + new DiagnosticDescriptor("CFG001", "Missing attributes", + "Config or ToConfig attribute not found", "Configuration", DiagnosticSeverity.Error, true), + Location.None)); + return; } - return (classDeclarationSyntax, false); + GenerateConfigFiles(context, validConfigTypes, configAttributeSymbol, toConfigAttributeSymbol, compilation); + GenerateConfigLocator(context, validConfigTypes, configAttributeSymbol, compilation); + GenerateSystemConfigsReferences(context, validConfigTypes, configAttributeSymbol, compilation); } - /// - /// Generate code action. - /// It will be executed on specific nodes (ClassDeclarationSyntax annotated with the [Report] attribute) changed by the user. - /// - /// Source generation context used to add source files. - /// Compilation used to provide access to the Semantic Model. - /// Nodes annotated with the [Report] attribute that trigger the generate action. - private void GenerateCode(SourceProductionContext context, Compilation compilation, - ImmutableArray classDeclarations) + private static void GenerateConfigFiles( + SourceProductionContext context, + List configTypes, + INamedTypeSymbol configAttributeSymbol, + INamedTypeSymbol toConfigAttributeSymbol, + Compilation compilation) { - // Go through all filtered class declarations. - foreach (var classDeclarationSyntax in classDeclarations) + foreach (var cfg in configTypes) { - // We need to get semantic model of the class to retrieve metadata. - var semanticModel = compilation.GetSemanticModel(classDeclarationSyntax.SyntaxTree); + var configUsings = new HashSet(); + var configFields = new StringBuilder(); - // Symbols allow us to get the compile-time information. - if (semanticModel.GetDeclaredSymbol(classDeclarationSyntax) is not INamedTypeSymbol classSymbol) - continue; + // Собираем поля с атрибутом [ToConfig] + foreach (var member in cfg.GetMembers().OfType()) + { + if (member.GetAttributes().Any(attr => + SymbolEqualityComparer.Default.Equals(attr.AttributeClass, toConfigAttributeSymbol))) + { + // Добавляем namespace типа поля + if (member.Type.ContainingNamespace != null && + !member.Type.ContainingNamespace.IsGlobalNamespace) + { + configUsings.Add($"using {member.Type.ContainingNamespace.ToDisplayString()};"); + } - var namespaceName = classSymbol.ContainingNamespace.ToDisplayString(); + // Генерируем поле + var fieldType = GetTypeDisplayName(member.Type, compilation); + configFields.AppendLine($"public {fieldType} {member.Name};"); + } + } - // 'Identifier' means the token of the node. Get class name from the syntax node. - var className = classDeclarationSyntax.Identifier.Text; + // Добавляем обязательные using для Unity + configUsings.Add("using UnityEngine;"); + configUsings.Add("using UnityEngine.AddressableAssets;"); - // Go through all class members with a particular type (property) to generate method lines. - var methodBody = classSymbol.GetMembers() - .OfType() - .Select(p => - $@" yield return $""{p.Name}:{{this.{p.Name}}}"";"); // e.g. yield return $"Id:{this.Id}"; + // Получаем значение атрибута [Config] + var configAttribute = cfg.GetAttributes() + .FirstOrDefault(attr => + SymbolEqualityComparer.Default.Equals(attr.AttributeClass, configAttributeSymbol)); - // Build up the source code - var code = $@"// + string menuName = "Configuration/Custom"; + bool isMultiple = false; -using System; -using System.Collections.Generic; + if (configAttribute != null) + { + var menuNameArg = + configAttribute.ConstructorArguments.FirstOrDefault(arg => arg.Type?.Name == "String"); + if (menuNameArg.Value != null) + { + menuName = menuNameArg.Value.ToString() ?? menuName; + } -namespace {namespaceName}; + var multipleArg = configAttribute.NamedArguments.FirstOrDefault(arg => arg.Key == "Multiple"); + if (multipleArg.Value.Value != null) + { + isMultiple = (bool)multipleArg.Value.Value; + } + } -partial class {className} -{{ - public IEnumerable Report() - {{ -{string.Join("\n", methodBody)} - }} -}} -"; + // Генерируем код конфига + var namespaceName = cfg.ContainingNamespace.IsGlobalNamespace + ? "" + : cfg.ContainingNamespace.ToDisplayString(); + var className = $"{cfg.Name}Config"; + var fileName = $"{className}.Generated.cs"; - // Add the source code to the compilation. - context.AddSource($"{className}.g.cs", SourceText.From(code, Encoding.UTF8)); + var configCode = new StringBuilder(); + configCode.AppendLine("#pragma warning disable CS0105"); + foreach (var usingDirective in configUsings.OrderBy(u => u)) + { + configCode.AppendLine(usingDirective); + } + + configCode.AppendLine("#pragma warning restore CS0105"); + configCode.AppendLine(); + + if (!string.IsNullOrEmpty(namespaceName)) + { + configCode.AppendLine($"namespace {namespaceName}"); + configCode.AppendLine("{"); + } + + configCode.AppendLine($"[CreateAssetMenu(fileName = \"{className}\", menuName = \"{menuName}\")]"); + configCode.AppendLine($"public class {className} : ScriptableObject"); + configCode.AppendLine("{"); + configCode.Append(configFields.ToString()); + configCode.AppendLine("}"); + + if (!string.IsNullOrEmpty(namespaceName)) + { + configCode.AppendLine("}"); + } + + context.AddSource(fileName, configCode.ToString()); } } -} \ No newline at end of file + + private static void GenerateConfigLocator( + SourceProductionContext context, + List configTypes, + INamedTypeSymbol configAttributeSymbol, + Compilation compilation) + { + var configReferencesUsings = new HashSet(); + var configAddCode = new StringBuilder(); + + foreach (var cfg in configTypes) + { + var namespaceName = cfg.ContainingNamespace.IsGlobalNamespace + ? "" + : cfg.ContainingNamespace.ToDisplayString(); + if (!string.IsNullOrEmpty(namespaceName)) + { + configReferencesUsings.Add($"using {namespaceName};"); + } + + var configAttribute = cfg.GetAttributes() + .FirstOrDefault(attr => + SymbolEqualityComparer.Default.Equals(attr.AttributeClass, configAttributeSymbol)); + + bool isMultiple = false; + if (configAttribute != null) + { + var multipleArg = configAttribute.NamedArguments.FirstOrDefault(arg => arg.Key == "Multiple"); + if (multipleArg.Value.Value != null) + { + isMultiple = (bool)multipleArg.Value.Value; + } + } + + var configClassName = $"{cfg.Name}Config"; + var fullName = cfg.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat) + .Replace("global::", "") + .Replace("<", "_") + .Replace(">", "_"); + + if (isMultiple) + { + configAddCode.AppendLine( + $"_multipleConfigReferences.Add(typeof({fullName}Config), systemConfigsReferences.{cfg.Name});"); + } + else + { + configAddCode.AppendLine( + $"_singleConfigReferences.Add(typeof({fullName}Config), systemConfigsReferences.{cfg.Name});"); + } + } + + configReferencesUsings.Add("using UnityEngine;"); + + var locatorCode = new StringBuilder(); + locatorCode.AppendLine("#pragma warning disable CS0105"); + foreach (var usingDirective in configReferencesUsings.OrderBy(u => u)) + { + locatorCode.AppendLine(usingDirective); + } + + locatorCode.AppendLine("#pragma warning restore CS0105"); + locatorCode.AppendLine(); + locatorCode.AppendLine("namespace Code.Infrastructure.Configs"); + locatorCode.AppendLine("{"); + locatorCode.AppendLine(" public partial class ConfigLocator"); + locatorCode.AppendLine(" {"); + locatorCode.AppendLine(" partial void LoadConfigs()"); + locatorCode.AppendLine(" {"); + locatorCode.AppendLine( + " SystemConfigsReferences systemConfigsReferences = Resources.Load(\"SystemConfigsReferences\");"); + locatorCode.Append(configAddCode.ToString()); + locatorCode.AppendLine(" }"); + locatorCode.AppendLine(" }"); + locatorCode.AppendLine("}"); + + context.AddSource("ConfigLocator.Generated.cs", locatorCode.ToString()); + } + + private static void GenerateSystemConfigsReferences( + SourceProductionContext context, + List configTypes, + INamedTypeSymbol configAttributeSymbol, + Compilation compilation) + { + var configReferencesUsings = new HashSet(); + var configReferencesCode = new StringBuilder(); + + foreach (var cfg in configTypes) + { + var namespaceName = cfg.ContainingNamespace.IsGlobalNamespace + ? "" + : cfg.ContainingNamespace.ToDisplayString(); + if (!string.IsNullOrEmpty(namespaceName)) + { + configReferencesUsings.Add($"using {namespaceName};"); + } + + var configAttribute = cfg.GetAttributes() + .FirstOrDefault(attr => + SymbolEqualityComparer.Default.Equals(attr.AttributeClass, configAttributeSymbol)); + + bool isMultiple = false; + if (configAttribute != null) + { + var multipleArg = configAttribute.NamedArguments.FirstOrDefault(arg => arg.Key == "Multiple"); + if (multipleArg.Value.Value != null) + { + isMultiple = (bool)multipleArg.Value.Value; + } + } + + if (isMultiple) + { + configReferencesCode.AppendLine($"public string {cfg.Name};"); + } + else + { + configReferencesUsings.Add("using UnityEngine.AddressableAssets;"); + configReferencesCode.AppendLine($"public AssetReference {cfg.Name};"); + } + } + + var referencesCode = new StringBuilder(); + referencesCode.AppendLine("#pragma warning disable CS0105"); + foreach (var usingDirective in configReferencesUsings.OrderBy(u => u)) + { + referencesCode.AppendLine(usingDirective); + } + + referencesCode.AppendLine("#pragma warning restore CS0105"); + referencesCode.AppendLine(); + referencesCode.AppendLine("namespace Code.Infrastructure.Configs"); + referencesCode.AppendLine("{"); + referencesCode.AppendLine(" public partial class SystemConfigsReferences"); + referencesCode.AppendLine(" {"); + referencesCode.Append(configReferencesCode.ToString()); + referencesCode.AppendLine(" }"); + referencesCode.AppendLine("}"); + + context.AddSource("SystemConfigsReferences.Generated.cs", referencesCode.ToString()); + } + + private static string GetTypeDisplayName(ITypeSymbol typeSymbol, Compilation compilation) + { + // Обрабатываем generics и вложенные типы + if (typeSymbol is INamedTypeSymbol namedType && namedType.IsGenericType) + { + var typeArguments = namedType.TypeArguments + .Select(t => GetTypeDisplayName(t, compilation)) + .ToArray(); + + var constructedName = + namedType.ConstructedFrom.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat); + return $"{constructedName}<{string.Join(", ", typeArguments)}>"; + } + + return typeSymbol.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat); + } +} + +// Вспомогательные методы для работы с атрибутами +internal static partial class SymbolExtensions +{ + public static bool HasAttribute(this ISymbol symbol, INamedTypeSymbol attributeSymbol) + { + return symbol.GetAttributes().Any(attr => + SymbolEqualityComparer.Default.Equals(attr.AttributeClass, attributeSymbol)); + } +} diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/SampleSourceGenerator.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/SampleSourceGenerator.cs index 4d04736..8725e95 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/SampleSourceGenerator.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/SampleSourceGenerator.cs @@ -1,56 +1,119 @@ -using System.IO; using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.Text; +using System.Collections.Immutable; +using System.Linq; +using System.Text; -namespace InfraGens; - -/// -/// A sample source generator that creates C# classes based on the text file (in this case, Domain Driven Design ubiquitous language registry). -/// When using a simple text file as a baseline, we can create a non-incremental source generator. -/// -[Generator] -public class SampleSourceGenerator : ISourceGenerator +namespace Code.Infrastructure.Generators { - public void Initialize(GeneratorInitializationContext context) + [Generator] + public class SceneLoaderGenerator : IIncrementalGenerator { - // No initialization required for this generator. - } - - public void Execute(GeneratorExecutionContext context) - { - // If you would like to put some data to non-compilable file (e.g. a .txt file), mark it as an Additional File. - - // Go through all files marked as an Additional File in file properties. - foreach (var additionalFile in context.AdditionalFiles) + public void Initialize(IncrementalGeneratorInitializationContext context) { - if (additionalFile == null) - continue; + // Получаем все синтаксические деревья + var provider = context.SyntaxProvider + .CreateSyntaxProvider( + predicate: static (s, _) => IsSyntaxTargetForGeneration(s), + transform: static (ctx, _) => GetSemanticTargetForGeneration(ctx)) + .Where(static m => m is not null) + .Collect(); - // Check if the file name is the specific file that we expect. - if (Path.GetFileName(additionalFile.Path) != "DDD.UbiquitousLanguageRegistry.txt") - continue; + // Регистрируем действие для генерации кода + context.RegisterSourceOutput(provider, static (spc, source) => Execute(spc, source)); + } - var text = additionalFile.GetText(); - if (text == null) - continue; + private static bool IsSyntaxTargetForGeneration(SyntaxNode node) + { + // Ищем объявления enum + return node is EnumDeclarationSyntax enumDecl; + } - foreach (var line in text.Lines) + private static INamedTypeSymbol? GetSemanticTargetForGeneration(GeneratorSyntaxContext context) + { + var enumDecl = (EnumDeclarationSyntax)context.Node; + var enumSymbol = context.SemanticModel.GetDeclaredSymbol(enumDecl); + + if (enumSymbol is null || enumSymbol.TypeKind != TypeKind.Enum) + return null; + + // Проверяем наличие атрибута SceneIdEnum + var sceneIdEnumAttribute = context.SemanticModel.Compilation.GetTypeByMetadataName("SceneIdEnum"); + if (sceneIdEnumAttribute is null) + return null; + + // Проверяем, есть ли у enum атрибут SceneIdEnum + if (enumSymbol.GetAttributes().Any(attr => + SymbolEqualityComparer.Default.Equals(attr.AttributeClass, sceneIdEnumAttribute))) { - var className = line.ToString().Trim(); - - // Build up the source code. - string source = $@"// - -namespace Entities -{{ - public partial class {className} - {{ - }} -}} -"; - - // Add the source code to the compilation. - context.AddSource($"{className}.g.cs", source); + return enumSymbol; } + + return null; + } + + private static void Execute(SourceProductionContext context, ImmutableArray enums) + { + if (enums.IsDefaultOrEmpty) + return; + + var sceneIdEnums = enums.Where(e => e is not null).Cast().ToList(); + + if (!sceneIdEnums.Any()) + return; + + var loaderCode = new StringBuilder(); + var dictionaryCode = new StringBuilder(); + var interfacesCode = new StringBuilder(); + + foreach (var enumSymbol in sceneIdEnums) + { + if (enumSymbol.TypeKind != TypeKind.Enum) + continue; + + // Получаем все члены enum + foreach (var member in enumSymbol.GetMembers().OfType()) + { + if (!member.IsStatic || member.Type?.Equals(enumSymbol, SymbolEqualityComparer.Default) == false) + continue; + + string memberName = member.Name; + + interfacesCode.AppendLine($@" + public interface IOn{memberName}SceneLoadedHandler : IGlobalSubscriber + {{ + void On{memberName}SceneLoaded(); + }}"); + + dictionaryCode.AppendLine($@" + _scenesActions.Add({enumSymbol.ContainingNamespace}.{enumSymbol.Name}.{memberName}, () => _eventBus.RaiseEvent(h => h.On{memberName}SceneLoaded())); +"); + } + } + + loaderCode.AppendLine($@"#nullable enable +#pragma warning disable CS0105 +using Code.Infrastructure.EventBus; +#pragma warning restore CS0105 + +namespace Code.Infrastructure.SceneLoader +{{ + public partial class SceneLoader + {{ + partial void SetupScenesInfo() + {{ +{dictionaryCode} + }} + }} + +{interfacesCode} +}} +"); + + // Добавляем сгенерированный файл + context.AddSource("SceneLoader.Generated.g.cs", SourceText.From(loaderCode.ToString(), Encoding.UTF8)); } } } \ No newline at end of file diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/bin/Debug/netstandard2.0/InfraGens.deps.json b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/bin/Debug/netstandard2.0/InfraGens.deps.json index 71f30b8..6405ac6 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/bin/Debug/netstandard2.0/InfraGens.deps.json +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/bin/Debug/netstandard2.0/InfraGens.deps.json @@ -18,23 +18,10 @@ "InfraGens.dll": {} } }, - "Humanizer.Core/2.14.1": { - "runtime": { - "lib/netstandard2.0/Humanizer.dll": { - "assemblyVersion": "2.14.0.0", - "fileVersion": "2.14.1.48190" - } - } - }, + "Humanizer.Core/2.14.1": {}, "Microsoft.Bcl.AsyncInterfaces/6.0.0": { "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } } }, "Microsoft.CodeAnalysis.Analyzers/3.3.4": {}, @@ -47,105 +34,11 @@ "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.CodeAnalysis.dll": { - "assemblyVersion": "4.3.0.0", - "fileVersion": "4.300.22.43017" - } - }, - "resources": { - "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll": { - "locale": "cs" - }, - "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll": { - "locale": "de" - }, - "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll": { - "locale": "es" - }, - "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll": { - "locale": "fr" - }, - "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll": { - "locale": "it" - }, - "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll": { - "locale": "ja" - }, - "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll": { - "locale": "ko" - }, - "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll": { - "locale": "pl" - }, - "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": { - "locale": "pt-BR" - }, - "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll": { - "locale": "ru" - }, - "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll": { - "locale": "tr" - }, - "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { - "locale": "zh-Hant" - } } }, "Microsoft.CodeAnalysis.CSharp/4.3.0": { "dependencies": { "Microsoft.CodeAnalysis.Common": "4.3.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll": { - "assemblyVersion": "4.3.0.0", - "fileVersion": "4.300.22.43017" - } - }, - "resources": { - "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "cs" - }, - "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "de" - }, - "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "es" - }, - "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "fr" - }, - "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "it" - }, - "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "ja" - }, - "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "ko" - }, - "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "pl" - }, - "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "pt-BR" - }, - "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "ru" - }, - "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "tr" - }, - "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "zh-Hant" - } } }, "Microsoft.CodeAnalysis.CSharp.Workspaces/4.3.0": { @@ -154,53 +47,6 @@ "Microsoft.CodeAnalysis.CSharp": "4.3.0", "Microsoft.CodeAnalysis.Common": "4.3.0", "Microsoft.CodeAnalysis.Workspaces.Common": "4.3.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { - "assemblyVersion": "4.3.0.0", - "fileVersion": "4.300.22.43017" - } - }, - "resources": { - "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "cs" - }, - "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "de" - }, - "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "es" - }, - "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "fr" - }, - "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "it" - }, - "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "ja" - }, - "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "ko" - }, - "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "pl" - }, - "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "pt-BR" - }, - "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "ru" - }, - "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "tr" - }, - "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "zh-Hant" - } } }, "Microsoft.CodeAnalysis.Workspaces.Common/4.3.0": { @@ -210,53 +56,6 @@ "Microsoft.CodeAnalysis.Common": "4.3.0", "System.Composition": "6.0.0", "System.IO.Pipelines": "6.0.3" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.dll": { - "assemblyVersion": "4.3.0.0", - "fileVersion": "4.300.22.43017" - } - }, - "resources": { - "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "cs" - }, - "lib/netstandard2.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "de" - }, - "lib/netstandard2.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "es" - }, - "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "fr" - }, - "lib/netstandard2.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "it" - }, - "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "ja" - }, - "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "ko" - }, - "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "pl" - }, - "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "pt-BR" - }, - "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "ru" - }, - "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "tr" - }, - "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "zh-Hant" - } } }, "Microsoft.NETCore.Platforms/1.1.0": {}, @@ -265,24 +64,11 @@ "Microsoft.NETCore.Platforms": "1.1.0" } }, - "System.Buffers/4.5.1": { - "runtime": { - "lib/netstandard2.0/System.Buffers.dll": { - "assemblyVersion": "4.0.3.0", - "fileVersion": "4.6.28619.1" - } - } - }, + "System.Buffers/4.5.1": {}, "System.Collections.Immutable/6.0.0": { "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Collections.Immutable.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } } }, "System.Composition/6.0.0": { @@ -294,55 +80,23 @@ "System.Composition.TypedParts": "6.0.0" } }, - "System.Composition.AttributedModel/6.0.0": { - "runtime": { - "lib/netstandard2.0/System.Composition.AttributedModel.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, + "System.Composition.AttributedModel/6.0.0": {}, "System.Composition.Convention/6.0.0": { "dependencies": { "System.Composition.AttributedModel": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Composition.Convention.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } } }, "System.Composition.Hosting/6.0.0": { "dependencies": { "System.Composition.Runtime": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Composition.Hosting.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "System.Composition.Runtime/6.0.0": { - "runtime": { - "lib/netstandard2.0/System.Composition.Runtime.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } } }, + "System.Composition.Runtime/6.0.0": {}, "System.Composition.TypedParts/6.0.0": { "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Composition.TypedParts.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } } }, "System.IO.Pipelines/6.0.3": { @@ -350,12 +104,6 @@ "System.Buffers": "4.5.1", "System.Memory": "4.5.4", "System.Threading.Tasks.Extensions": "4.5.4" - }, - "runtime": { - "lib/netstandard2.0/System.IO.Pipelines.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.522.21309" - } } }, "System.Memory/4.5.4": { @@ -363,62 +111,24 @@ "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Memory.dll": { - "assemblyVersion": "4.0.1.1", - "fileVersion": "4.6.28619.1" - } - } - }, - "System.Numerics.Vectors/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.Numerics.Vectors.dll": { - "assemblyVersion": "4.1.3.0", - "fileVersion": "4.6.25519.3" - } } }, + "System.Numerics.Vectors/4.4.0": {}, "System.Reflection.Metadata/5.0.0": { "dependencies": { "System.Collections.Immutable": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Reflection.Metadata.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": { - "runtime": { - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } } }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, "System.Text.Encoding.CodePages/6.0.0": { "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } } }, "System.Threading.Tasks.Extensions/4.5.4": { "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" - }, - "runtime": { - "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": { - "assemblyVersion": "4.2.0.1", - "fileVersion": "4.6.28619.1" - } } } } diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/bin/Debug/netstandard2.0/InfraGens.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/bin/Debug/netstandard2.0/InfraGens.dll index fa0d887..acb6b4f 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/bin/Debug/netstandard2.0/InfraGens.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/bin/Debug/netstandard2.0/InfraGens.dll differ diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.AssemblyInfo.cs b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.AssemblyInfo.cs index 05565b5..738ebfd 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.AssemblyInfo.cs +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("InfraGens")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a3cd3e86a161e3ee450256b1b37c6a4583c70840")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a4090547509ba65f8ba7b22442c10d06c15217e0")] [assembly: System.Reflection.AssemblyProductAttribute("InfraGens")] [assembly: System.Reflection.AssemblyTitleAttribute("InfraGens")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.AssemblyInfoInputs.cache b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.AssemblyInfoInputs.cache index 3271586..b38a13f 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.AssemblyInfoInputs.cache +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.AssemblyInfoInputs.cache @@ -1 +1 @@ -4d7b04418b2c47b7b94b1a5f45dde776f61dbc290d8ac0d36d9bd928c45d8e46 +bcabcaf3c249ae33cc89859b7a823a64fc0953094cafd41dbc46110a15cef167 diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.csproj.CoreCompileInputs.cache b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.csproj.CoreCompileInputs.cache index 2a80291..5122da2 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.csproj.CoreCompileInputs.cache +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -34f467799bbdb1e93c09f58be677e4b18b9b7bf76f27dba5589aac397a1cfee1 +f8913c040e82af0961f443a8e28887f6c9fd2d43dd3fd686c1c929597ca99122 diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.csproj.FileListAbsolute.txt b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.csproj.FileListAbsolute.txt index a8c19b4..368d0f5 100644 --- a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.csproj.FileListAbsolute.txt +++ b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.csproj.FileListAbsolute.txt @@ -8,3 +8,13 @@ A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens\obj\Debu A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.csproj.CoreCompileInputs.cache A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.dll A:\Projects\Infra\Assets\SourceGeneration\InfraGens\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.pdb +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.csproj.AssemblyReference.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.GeneratedMSBuildEditorConfig.editorconfig +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.AssemblyInfoInputs.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.AssemblyInfo.cs +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.csproj.CoreCompileInputs.cache +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\obj\Debug\netstandard2.0\InfraGens.pdb +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\bin\Debug\netstandard2.0\InfraGens.deps.json +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\bin\Debug\netstandard2.0\InfraGens.dll +A:\Projects\Infra\Assets\SourceGeneration\InfraGens~\InfraGens\InfraGens\bin\Debug\netstandard2.0\InfraGens.pdb diff --git a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.dll b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.dll index fa0d887..acb6b4f 100644 Binary files a/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.dll and b/Assets/SourceGeneration/InfraGens~/InfraGens/InfraGens/obj/Debug/netstandard2.0/InfraGens.dll differ diff --git a/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs b/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs deleted file mode 100644 index 87888c4..0000000 --- a/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs +++ /dev/null @@ -1,40 +0,0 @@ - -#pragma warning disable CS0105 -using System; -using System; -using System; -using System; -using System; -using System; -using System; -using System; -using System; -using System; -using System; -using Code.Infrastructure.Camera; -using UnityEngine; - -using UnityEngine; -using UnityEngine.AddressableAssets; - -namespace Code.Infrastructure.Camera{ -#pragma warning restore CS0105 -[CreateAssetMenu(fileName = "CameraSettingsConfig", menuName = "Configs/Camera/CameraSettings")] -public class CameraSettingsConfig : ScriptableObject -{ - public System.Single defaultDistance; -public System.Single minDistance; -public System.Single maxDistance; -public System.Single distanceMovementSpeed; -public System.Single rotationSpeed; -public System.Single rotationSharpness; -public System.Single followSharpness; -public System.Single minVerticalAngle; -public System.Single maxVerticalAngle; -public System.Single defaultVerticalAngle; -public System.Single fov; -public Code.Infrastructure.Camera.CameraMode cameraMode; -public UnityEngine.Vector3 defaultFollowPosition; - -} -} diff --git a/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs.meta b/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs.meta deleted file mode 100644 index 908552a..0000000 --- a/Assets/UnityCodeGen.Generated/CameraSettingsConfig.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c88ecd63428fe3c41ae0fe17948d931e \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs b/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs deleted file mode 100644 index ff47eb4..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs +++ /dev/null @@ -1,49 +0,0 @@ - -// -#pragma warning disable CS0105 -using Code.Infrastructure.StateMachine; - -using Code.Infrastructure.App.States; - -using Code.Infrastructure.App.States; - -using Code.Infrastructure.App.States; - -#pragma warning restore CS0105 -namespace Code.Infrastructure.App -{ - -public partial class AppStateMachine : AbstractStateMachine -{ - - public AppStateMachine(Code.Infrastructure.App.AppStateMachineContext context, EventBus.EventBus eventBus) : base(context) - { - -var stateBootstrapState = new BootstrapState(StateMachineContext,eventBus); -States.Add(stateBootstrapState.myState, stateBootstrapState); - -var stateGameplayState = new GameplayState(StateMachineContext,eventBus); -States.Add(stateGameplayState.myState, stateGameplayState); - -var stateMainMenuState = new MainMenuState(StateMachineContext,eventBus); -States.Add(stateMainMenuState.myState, stateMainMenuState); - - } - - protected override bool CheckTransitionAllowed(Code.Infrastructure.App.AppStates nextState) => AllowedStates.HasFlag(nextState); - protected override void ResetAllowedTransitions() => AllowedStates = 0; -} - - public static class AppStateMachineExtensions - { - public static AbstractStateMachine AllowStateTransition( - this AbstractStateMachine stateMachine, Code.Infrastructure.App.AppStates state) - { - if (stateMachine == null) return null; - - stateMachine.AllowedStates |= state; - return stateMachine; - } - } -} - diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs.meta b/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs.meta deleted file mode 100644 index e310957..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.AppStateMachine.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5a6c59a69440bf440a166390c52d5c65 \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.BootstrapState.Generated.cs b/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.BootstrapState.Generated.cs deleted file mode 100644 index 7a1ea88..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.BootstrapState.Generated.cs +++ /dev/null @@ -1,23 +0,0 @@ - - -// retard-generated - -using Code.Infrastructure.StateMachine; - -namespace Code.Infrastructure.App.States -{ - public partial class BootstrapState : BaseState - { - -protected override void _fireEnterState() - { - EventBus.RaiseEvent>(h => h.EnterState()); - } - - protected override void _fireExitState() - { - EventBus.RaiseEvent>(h => h.ExitState()); - } - - } -} diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.BootstrapState.Generated.cs.meta b/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.BootstrapState.Generated.cs.meta deleted file mode 100644 index c4632f8..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.BootstrapState.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: a7addc3cce102d548b48a5714208d030 \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.GameplayState.Generated.cs b/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.GameplayState.Generated.cs deleted file mode 100644 index 2b449a3..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.GameplayState.Generated.cs +++ /dev/null @@ -1,23 +0,0 @@ - - -// retard-generated - -using Code.Infrastructure.StateMachine; - -namespace Code.Infrastructure.App.States -{ - public partial class GameplayState : BaseState - { - -protected override void _fireEnterState() - { - EventBus.RaiseEvent>(h => h.EnterState()); - } - - protected override void _fireExitState() - { - EventBus.RaiseEvent>(h => h.ExitState()); - } - - } -} diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.GameplayState.Generated.cs.meta b/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.GameplayState.Generated.cs.meta deleted file mode 100644 index f70aeef..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.GameplayState.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: ea098a6fe9bfd164895db3056277a55d \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.MainMenuState.Generated.cs b/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.MainMenuState.Generated.cs deleted file mode 100644 index 7aab1a2..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.MainMenuState.Generated.cs +++ /dev/null @@ -1,23 +0,0 @@ - - -// retard-generated - -using Code.Infrastructure.StateMachine; - -namespace Code.Infrastructure.App.States -{ - public partial class MainMenuState : BaseState - { - -protected override void _fireEnterState() - { - EventBus.RaiseEvent>(h => h.EnterState()); - } - - protected override void _fireExitState() - { - EventBus.RaiseEvent>(h => h.ExitState()); - } - - } -} diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.MainMenuState.Generated.cs.meta b/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.MainMenuState.Generated.cs.meta deleted file mode 100644 index d10783e..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.App.States.MainMenuState.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 99e53d28eb79b4a44bae11561b625594 \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs b/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs deleted file mode 100644 index 1e9d26f..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs +++ /dev/null @@ -1,42 +0,0 @@ - -// -#pragma warning disable CS0105 -using Code.Infrastructure.StateMachine; - -using Code.Infrastructure.Camera.CameraStates; - -using Code.Infrastructure.Camera.CameraStates; - -#pragma warning restore CS0105 -namespace Code.Infrastructure.Camera -{ - -public partial class CameraStateMachine : AbstractStateMachine -{ - - public CameraStateMachine(Code.Infrastructure.Camera.CameraStateMachineContext context, EventBus.EventBus eventBus) : base(context) - { - -var stateNoneCameraState = new NoneCameraState(StateMachineContext,eventBus); -States.Add(stateNoneCameraState.myState, stateNoneCameraState); - - - } - - protected override bool CheckTransitionAllowed(Code.Infrastructure.Camera.CameraMode nextState) => AllowedStates.HasFlag(nextState); - protected override void ResetAllowedTransitions() => AllowedStates = 0; -} - - public static class CameraStateMachineExtensions - { - public static AbstractStateMachine AllowStateTransition( - this AbstractStateMachine stateMachine, Code.Infrastructure.Camera.CameraMode state) - { - if (stateMachine == null) return null; - - stateMachine.AllowedStates |= state; - return stateMachine; - } - } -} - diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs.meta b/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs.meta deleted file mode 100644 index 18b94ab..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStateMachine.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 345063e937b7f8b47a0a476ba4be3cae \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.FirstPersonCameraState.Generated.cs b/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.FirstPersonCameraState.Generated.cs deleted file mode 100644 index dbabb3f..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.FirstPersonCameraState.Generated.cs +++ /dev/null @@ -1,13 +0,0 @@ - - -// retard-generated - -using Code.Infrastructure.StateMachine; - -namespace Code.Infrastructure.Camera.CameraStates -{ - public partial class FirstPersonCameraState - { - - } -} diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.FirstPersonCameraState.Generated.cs.meta b/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.FirstPersonCameraState.Generated.cs.meta deleted file mode 100644 index 9252ce4..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.FirstPersonCameraState.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 54a17374a26438b4390b3146d07da638 \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.NoneCameraState.Generated.cs b/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.NoneCameraState.Generated.cs deleted file mode 100644 index 87b6cd7..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.NoneCameraState.Generated.cs +++ /dev/null @@ -1,13 +0,0 @@ - - -// retard-generated - -using Code.Infrastructure.StateMachine; - -namespace Code.Infrastructure.Camera.CameraStates -{ - public partial class NoneCameraState - { - - } -} diff --git a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.NoneCameraState.Generated.cs.meta b/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.NoneCameraState.Generated.cs.meta deleted file mode 100644 index 472f322..0000000 --- a/Assets/UnityCodeGen.Generated/Code.Infrastructure.Camera.CameraStates.NoneCameraState.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 27063949209437c4cb218fb0225384ed \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs b/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs deleted file mode 100644 index a5b5df0..0000000 --- a/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs +++ /dev/null @@ -1,32 +0,0 @@ - -#pragma warning disable CS0105 - using Code.Infrastructure.SceneLoader; -using Code.Infrastructure.Input; -using Code.Infrastructure.Camera; -using Code.Infrastructure.Camera; - - using UnityEngine; -#pragma warning restore CS0105 - - namespace Code.Infrastructure.Configs - { - - public partial class ConfigLocator - { - partial void LoadConfigs() - { - SystemConfigsReferences systemConfigsReferences = Resources.Load("SystemConfigsReferences"); - - _multipleConfigReferences.Add(typeof(Code.Infrastructure.SceneLoader.SceneInfoConfig), systemConfigsReferences.SceneInfo); - - _singleConfigReferences.Add(typeof(Code.Infrastructure.Input.InputServiceConfig), systemConfigsReferences.InputService); - - _multipleConfigReferences.Add(typeof(Code.Infrastructure.Camera.CameraSettingsConfig), systemConfigsReferences.CameraSettings); - - _singleConfigReferences.Add(typeof(Code.Infrastructure.Camera.GameCameraConfig), systemConfigsReferences.GameCamera); - - //_singleConfigReferences.Add(typeof(ScenesAssetReferences), systemConfigsReferences.scenesAssetReferences); - } - } - } - \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs.meta b/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs.meta deleted file mode 100644 index bf5d3bc..0000000 --- a/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b516a9c04f1000e43936564c38e25cfb \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/DebugClassConfig.Generated.cs b/Assets/UnityCodeGen.Generated/DebugClassConfig.Generated.cs deleted file mode 100644 index 3737e83..0000000 --- a/Assets/UnityCodeGen.Generated/DebugClassConfig.Generated.cs +++ /dev/null @@ -1,25 +0,0 @@ - -using UnityEngine.AddressableAssets; -using Code.Infrastructure.SceneLoader; - -#pragma warning disable CS0105 -using UnityEngine; -using UnityEngine.AddressableAssets; -using System; -using Code.Infrastructure.SceneLoader; - -using UnityEngine; -using UnityEngine.AddressableAssets; - -#pragma warning restore CS0105 -namespace Code.Example{ -[CreateAssetMenu(fileName = "DebugClassConfig", menuName = "Configs/DebugClassConfig")] -public class DebugClassConfig : ScriptableObject -{ - public UnityEngine.AddressableAssets.AssetReference SceneAsset; -public Code.Infrastructure.SceneLoader.SceneId SceneId; -public System.Int32 _a; -public Code.Infrastructure.SceneLoader.SceneLoader _b; - -} -} diff --git a/Assets/UnityCodeGen.Generated/DebugClassConfig.Generated.cs.meta b/Assets/UnityCodeGen.Generated/DebugClassConfig.Generated.cs.meta deleted file mode 100644 index 25a0eee..0000000 --- a/Assets/UnityCodeGen.Generated/DebugClassConfig.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 2bdfef8d142a3e1438c89da242d2be2f \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs b/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs deleted file mode 100644 index fb459ed..0000000 --- a/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs +++ /dev/null @@ -1,16 +0,0 @@ - -#pragma warning disable CS0105 -using UnityEngine.AddressableAssets; - -using UnityEngine; -using UnityEngine.AddressableAssets; - -namespace Code.Infrastructure.Camera{ -#pragma warning restore CS0105 -[CreateAssetMenu(fileName = "GameCameraConfig", menuName = "Configs/Camera/CameraConfig")] -public class GameCameraConfig : ScriptableObject -{ - public UnityEngine.AddressableAssets.AssetReference Camera; - -} -} diff --git a/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs.meta b/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs.meta deleted file mode 100644 index f88f5ab..0000000 --- a/Assets/UnityCodeGen.Generated/GameCameraConfig.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: e423434f8bbcbc24e9b8c71840daf6f1 \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs b/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs deleted file mode 100644 index d29eb22..0000000 --- a/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs +++ /dev/null @@ -1,16 +0,0 @@ - -#pragma warning disable CS0105 -using UnityEngine.InputSystem; - -using UnityEngine; -using UnityEngine.AddressableAssets; - -namespace Code.Infrastructure.Input{ -#pragma warning restore CS0105 -[CreateAssetMenu(fileName = "InputServiceConfig", menuName = "Configs/InputService")] -public class InputServiceConfig : ScriptableObject -{ - public UnityEngine.InputSystem.InputActionAsset inputActionAsset; - -} -} diff --git a/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs.meta b/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs.meta deleted file mode 100644 index 456a881..0000000 --- a/Assets/UnityCodeGen.Generated/InputServiceConfig.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: ab6d921463750b04aaccb1bf3b2d9608 \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs b/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs deleted file mode 100644 index 11cfdf6..0000000 --- a/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs +++ /dev/null @@ -1,18 +0,0 @@ - -#pragma warning disable CS0105 -using UnityEngine.AddressableAssets; -using Code.Infrastructure.SceneLoader; - -using UnityEngine; -using UnityEngine.AddressableAssets; - -namespace Code.Infrastructure.SceneLoader{ -#pragma warning restore CS0105 -[CreateAssetMenu(fileName = "SceneInfoConfig", menuName = "Configs/SceneConfig")] -public class SceneInfoConfig : ScriptableObject -{ - public UnityEngine.AddressableAssets.AssetReference SceneAsset; -public Code.Infrastructure.SceneLoader.SceneId SceneId; - -} -} diff --git a/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs.meta b/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs.meta deleted file mode 100644 index 7c6ae0e..0000000 --- a/Assets/UnityCodeGen.Generated/SceneInfoConfig.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: e2d19619e7539f14ea973463204f542c \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs b/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs deleted file mode 100644 index a0f585e..0000000 --- a/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs +++ /dev/null @@ -1,32 +0,0 @@ - -#pragma warning disable CS0105 - -using Code.Infrastructure.EventBus; - -#pragma warning restore CS0105 - -namespace Code.Infrastructure.SceneLoader -{ -public partial class SceneLoader{ -partial void SetupScenesInfo(){ - - - _scenesActions.Add(SceneId.MainMenu,() => _eventBus.RaiseEvent(h=> h.OnMainMenuSceneLoaded())); - - - _scenesActions.Add(SceneId.Gameplay,() => _eventBus.RaiseEvent(h=> h.OnGameplaySceneLoaded())); - -} -} - - public interface IOnMainMenuSceneLoadedHandler : IGlobalSubscriber - { - void OnMainMenuSceneLoaded(); - } - - public interface IOnGameplaySceneLoadedHandler : IGlobalSubscriber - { - void OnGameplaySceneLoaded(); - } - -} diff --git a/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs.meta b/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs.meta deleted file mode 100644 index 6fd4f8f..0000000 --- a/Assets/UnityCodeGen.Generated/SceneLoader.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5687485408450064f98da1725a20926b \ No newline at end of file diff --git a/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs b/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs deleted file mode 100644 index 5347e46..0000000 --- a/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs +++ /dev/null @@ -1,20 +0,0 @@ - -#pragma warning disable CS0105 - using Code.Infrastructure.SceneLoader; -using Code.Infrastructure.Input; -using Code.Infrastructure.Camera; -using Code.Infrastructure.Camera; - - using UnityEngine.AddressableAssets; -#pragma warning restore CS0105 - - namespace Code.Infrastructure.Configs{ - public partial class SystemConfigsReferences - { - public string SceneInfo; -public AssetReference InputService; -public string CameraSettings; -public AssetReference GameCamera; - - } -} diff --git a/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs.meta b/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs.meta deleted file mode 100644 index efe52cc..0000000 --- a/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 4e3bd6b172c28ca48b40dd639ef19caf \ No newline at end of file