Init
This commit is contained in:
1 parent
a73338916a
commit
fbc1cc8d3e
207 files changed
+10327
-2
No files matched your search
@@ -0,0 +1,73 @@
|
||||
#if UNITY_EDITOR
|
||||
using UnityCodeGen;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.Infrastructure.Generators
|
||||
{
|
||||
[Generator]
|
||||
public class AudioMixerGenerator : ICodeGenerator
|
||||
{
|
||||
public void Execute(GeneratorContext context)
|
||||
{
|
||||
var Enum = TypeCache.GetTypesWithAttribute<AudioMixerEnum>();
|
||||
|
||||
var initializedCode = "";
|
||||
var serviceCode = "";
|
||||
var interfacesUsingsCode = $@"
|
||||
// using Code.Infrastructure.Audio;
|
||||
";
|
||||
|
||||
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;
|
||||
initializedCode += $@"
|
||||
_audioMixerGroups.Add({en.FullName}.{member.Name}, _mixer.FindMatchingGroups(""{member.Name}"")[0]);
|
||||
|
||||
";
|
||||
// dictionaryCode += $@"
|
||||
//
|
||||
// _scenesActions.Add(SceneId.{member.Name},() => _eventBus.RaiseEvent<IOn{member.Name}SceneLoadedHandler>(h=> h.On{member.Name}SceneLoaded()));
|
||||
// ";
|
||||
}
|
||||
|
||||
serviceCode += $@"
|
||||
#pragma warning disable CS0105
|
||||
{interfacesUsingsCode}
|
||||
#pragma warning restore CS0105
|
||||
namespace Code.Infrastructure.Audio{{
|
||||
public partial class AudioService
|
||||
{{
|
||||
private partial void InitializeMixer(){{
|
||||
{initializedCode}
|
||||
}}
|
||||
}}
|
||||
}}";
|
||||
}
|
||||
//
|
||||
// loaderCode = $@"
|
||||
// #pragma warning disable CS0105
|
||||
// {interfacesUsingsCode}
|
||||
// #pragma warning restore CS0105
|
||||
//
|
||||
// namespace Code.Infrastructure.SceneLoader
|
||||
// {{
|
||||
// public partial class SceneLoader{{
|
||||
// partial void SetupScenesInfo(){{
|
||||
// {dictionaryCode}
|
||||
// }}
|
||||
// }}
|
||||
// {initializedCode}
|
||||
// }}
|
||||
// ";
|
||||
context.AddCode($"AudioMixer.Generated.cs", serviceCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in new issue
Block a user