public virtual void OnEnable() { if (state.enabled || state.requireStarter || state.requireActorParent) { return; } state.released = false; state.enabled = true; if (ProcessingSignals.TryAddToGlobal(this)) { if (signals == null) { signals = new ProcessingSignals(); } signals.Add(this); } ProcessingUpdate.Default.Add(this); HandleEnable(); }
public static bool TryAddToGlobal(object obj) { var reciever = obj as IRecieve; if (reciever == null) { return(false); } var all = obj.GetType().GetInterfaces(); var hasLocals = false; foreach (var intType in all) { if (intType.IsGenericType && intType.GetGenericTypeDefinition() == typeof(IReceive <>)) { Default.Add(reciever, intType.GetGenericArguments()[0]); } if (!hasLocals && intType.IsGenericType && intType.GetGenericTypeDefinition() == typeof(IReceiveLocal <>)) { hasLocals = true; } } return(hasLocals); }
public void Add(object obj) { var reciever = obj as IRecieve; if (reciever == null) { return; } var all = obj.GetType().GetInterfaces(); foreach (var intType in all) { if (intType.IsGenericType && intType.GetGenericTypeDefinition() == typeof(IReceiveGlobal <>)) { Default.Add(reciever, intType.GetGenericArguments()[0]); } else if (intType.IsGenericType && intType.GetGenericTypeDefinition() == typeof(IReceive <>)) { Add(reciever, intType.GetGenericArguments()[0]); } } }
public void SignalAdd <T>(IRecieve recieve) { signals.Add <T>(recieve); }