Платформер враги, инфраструктура, герой
This commit is contained in:
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
|
||||
Reference in new issue
Block a user