Files
Continentis/Assets/Scripts/ScriptExtensions/General/GameEvent.cs

95 lines
2.2 KiB
C#
Raw Normal View History

2025-10-25 07:49:39 -04:00
using System;
2025-10-23 00:49:44 -04:00
using SLSFramework.General;
2025-10-03 00:02:43 -04:00
using UnityEngine;
using UnityEngine.Events;
2025-10-23 00:49:44 -04:00
namespace SLSFramework.General
2025-10-03 00:02:43 -04:00
{
public class EventUnit : IPrioritized
{
2025-10-23 00:49:44 -04:00
private readonly UnityAction action;
2025-10-03 00:02:43 -04:00
public int Priority { get; set; }
public EventUnit(UnityAction action, int priority = 0)
{
this.action = action;
this.Priority = priority;
}
public void Invoke()
{
action.Invoke();
}
}
public class EventUnit<T> : IPrioritized
{
2025-10-23 00:49:44 -04:00
private readonly UnityAction<T> action;
2025-10-03 00:02:43 -04:00
public int Priority { get; set; }
public EventUnit(UnityAction<T> action, int priority = 0)
{
this.action = action;
this.Priority = priority;
}
public void Invoke(T arg)
{
action.Invoke(arg);
}
}
public class EventUnit<T1, T2> : IPrioritized
{
2025-10-23 00:49:44 -04:00
private readonly UnityAction<T1, T2> action;
2025-10-03 00:02:43 -04:00
public int Priority { get; set; }
public EventUnit(UnityAction<T1, T2> action, int priority = 0)
{
this.action = action;
this.Priority = priority;
}
public void Invoke(T1 arg1, T2 arg2)
{
action.Invoke(arg1, arg2);
}
}
2025-10-25 07:49:39 -04:00
public class EventUnit<T1, T2, T3> : IPrioritized
{
private readonly UnityAction<T1, T2, T3> action;
public int Priority { get; set; }
public EventUnit(UnityAction<T1, T2, T3> action, int priority = 0)
{
this.action = action;
this.Priority = priority;
}
public void Invoke(T1 arg1, T2 arg2, T3 arg3)
{
action.Invoke(arg1, arg2, arg3);
}
}
public class PrioritizedFunc<T1, T2, T3, TR> : IPrioritized
{
private readonly Func<T1, T2, T3, TR> func;
public int Priority { get; set; }
public PrioritizedFunc(Func<T1, T2, T3, TR> func, int priority = 0)
{
this.func = func;
this.Priority = priority;
}
public TR Invoke(T1 arg1, T2 arg2, T3 arg3)
{
return func.Invoke(arg1, arg2, arg3);
}
}
2025-10-03 00:02:43 -04:00
}