Платформер враги, инфраструктура, герой

This commit is contained in:
ThomasCharester committed 2026-03-09 16:28:40 +03:00
1 parent 28125eb382
commit 93819c1dd3
61 files changed
+1463 -423

No files matched your search

@@ -0,0 +1,71 @@
#if UNITY_EDITOR
using Code.Infrastructure.UI;
using UnityCodeGen;
using UnityEditor;
namespace Code.Infrastructure.Generators
{
[Generator]
public class UIPanelEventsGenerator : ICodeGenerator
{
public void Execute(GeneratorContext context)
{
GenerateStates(context);
}
private void GenerateStates(GeneratorContext context)
{
var states = TypeCache.GetTypesDerivedFrom<UIPanel>();
foreach (var st in states)
{
var fireStatesCode = $@"
public override void FireCreatedEvent()
{{
_eventBus.RaiseEvent<I{st.Name}CreatedHandle>(h => h.{st.Name}Created(this));
}}
public override void FireRemovedEvent()
{{
_eventBus.RaiseEvent<I{st.Name}RemovedHandle>(h => h.{st.Name}Removed());
}}
";
var fireStatesInterfacesCode = $@"
public interface I{st.Name}CreatedHandle : IGlobalSubscriber
{{
void {st.Name}Created(UIPanel panel);
}}
public interface I{st.Name}RemovedHandle : IGlobalSubscriber
{{
void {st.Name}Removed();
}}
";
var statesCode = $@"
// retard-generated
using Code.Infrastructure.UI;
using Code.Infrastructure.EventBus;
using Code.Infrastructure.StateMachine;
namespace {st.Namespace}
{{
public partial class {st.Name}
{{
{fireStatesCode}
}}
{fireStatesInterfacesCode}
}}
";
context.AddCode($"{st.FullName}Events.Generated.cs", statesCode);
}
}
}
}
#endif
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e534143b792f4c2692451b19fb9b7e98
timeCreated: 1773046409