Всем привет, написал для себя небольшие удобные методы расширения для класса Entity. Суть кода в том, что можно локально привязать лямбда - функции для мгновенного выполнения при входе в стрим сущности. (Кому мб пригодится может даже
)
Вот так используется в коде
Но такая проблема есть, даже смешно. Необходимо в методе OnStreamEvent_Add добавить проверку на то, что сущность УЖЕ существует в стриме и вызвать хранимые функции.
Сейчас получается так, то сначала вызывается событие OnEntityStreamIn вызывая пустые функции, а затем только они добавляются... странно. Какими методами это сделать?
Код:
public static void OnStreamEvent_Add(this Entity e, Action handler)
{
List<Action> Actions = e.HasData("OnStreamEvents") ? e.GetData<List<Action>>("OnStreamEvents") : new List<Action>();
Actions.Add(handler);
e.SetData<List<Action>>("OnStreamEvents", Actions);
}
//Another class
RAGE.Events.OnEntityStreamIn += (e) =>
{
if (e.HasData("OnStreamEvents"))
{
e.GetData<List<Action>>("OnStreamEvents").ForEach((action) => { action?.Invoke(); });
}
};
Код:
var ped = new Ped(hash, veh.Position, 0, veh.Dimension);
ped .OnStreamEvent_Add(() =>
{
ped .SetAlpha(1, false);
}
Но такая проблема есть, даже смешно. Необходимо в методе OnStreamEvent_Add добавить проверку на то, что сущность УЖЕ существует в стриме и вызвать хранимые функции.
Сейчас получается так, то сначала вызывается событие OnEntityStreamIn вызывая пустые функции, а затем только они добавляются... странно. Какими методами это сделать?
Последнее редактирование: