Event binding system update

This commit is contained in:
micialware committed 2025-05-07 09:55:15 +03:00
1 parent 2f65fb24c0
commit bc74a97b14
3 files changed
+22 -6

No files matched your search

@@ -32,9 +32,15 @@ namespace mROA.Implementation.Backend
public int ResisterObject<T>(object o, IEndPointContext context)
{
var last = _storage.Place(o);
var sharedType = typeof(IShared);
var interfaces = o.GetType().GetInterfaces();
var generic = interfaces.Where(i => sharedType.IsAssignableFrom(i) && i != sharedType)
.Select(i => typeof(IEventBinder<>).MakeGenericType(i));
var binder = EventBinders.OfType<IEventBinder<T>>().FirstOrDefault();
binder?.BindEvents((T)o, context, _representationModuleProducer!, last);
var binders = EventBinders.Where(i => generic.Any(g => g.IsAssignableFrom(i.GetType())));
foreach (var binder in binders)
((IEventBinder)binder).BindEvents(o, context, _representationModuleProducer!, last);
return last;
}