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