protected void ResolveHook(EventHooks eventHooks, string start)
        {
            TraceUtils.WithScope(traceScope =>
            {
                if (eventHooks.OnProvisioning)
                {
                    if (!ShowOnlyFalseResults)
                    {
                        traceScope.WriteLine(string.Format("[INF]{0} [VALIDATED] - [OnProvisioning]", start));
                    }
                }
                else
                {
                    traceScope.WriteLine(string.Format("[ERR]{0} [MISSED] - [OnProvisioning]", start));
                }

                if (eventHooks.OnProvisioned)
                {
                    if (!ShowOnlyFalseResults)
                    {
                        traceScope.WriteLine(string.Format("[INF]{0} [VALIDATED] - [OnProvisioned]", start));
                    }
                }
                else
                {
                    traceScope.WriteLine(string.Format("[IERR]{0} [MISSED] - [OnProvisioned]", start));
                }

                AssertService.AreEqual(true, eventHooks.OnProvisioning);
                AssertService.AreEqual(true, eventHooks.OnProvisioned);
            });
        }
 public void AddHook(string id, EventHooks hooks)
 {
     if (!_hookMap.ContainsKey(id))
     {
         _hookMap.Add(id, hooks);
     }
 }
Exemplo n.º 3
0
 internal void CopyTo(EventHooks eventHooks)
 {
     eventHooks.BeforeMessageSent.AddRange(_beforeMessageSent);
     eventHooks.AfterMessageSent.AddRange(_afterMessageSent);
     eventHooks.BeforeMessageHandled.AddRange(_beforeMessageHandled);
     eventHooks.AfterMessageHandled.AddRange(_afterMessageHandled);
 }
 public new void InitializeMainMenu()
 {
     orig_InitializeMainMenu();
     if (!_Notified)
     {
         EventHooks.InvokeMainMenuLoadedFirstTime(this);
     }
     _Notified = true;
 }
Exemplo n.º 5
0
        protected virtual void WithEventHooks(Action <EventHooks> hooks)
        {
            TraceUtils.WithScope(traceScope =>
            {
                traceScope.WriteLine(string.Format("Validating OnProvisioning/OnProvisioned events."));

                var eventHooks = new EventHooks();

                hooks(eventHooks);

                traceScope.WriteLine(string.Format("Validating OnProvisioning event hit."));
                Assert.AreEqual(true, eventHooks.OnProvisioning);
                traceScope.WriteLine(string.Format("    - done"));

                traceScope.WriteLine(string.Format("Validating OnProvisioned event hit."));
                Assert.AreEqual(true, eventHooks.OnProvisioned);
                traceScope.WriteLine(string.Format("    - done"));
            });
        }
Exemplo n.º 6
0
        protected virtual void AssertEventHooks <TObj>(ModelNode modelNode, EventHooks hooks)
        {
            modelNode.OnProvisioning <TObj>(context =>
            {
                hooks.OnProvisioning = true;

                Assert.IsNotNull(context.ObjectDefinition);
            });

            modelNode.OnProvisioned <TObj>(context =>
            {
                hooks.OnProvisioned = true;

                Assert.IsNotNull(context.Object);
                Assert.IsNotNull(context.ObjectDefinition);

                Assert.IsInstanceOfType(context.Object, typeof(TObj));
            });
        }
        protected virtual void AssertEventHooksByStringType(string spType, ModelNode modelNode, EventHooks hooks)
        {
            var spObjectType     = Type.GetType(spType);
            var modelContextType = typeof(OnCreatingContext <,>);

            AddHook(spObjectType.AssemblyQualifiedName + ":" + modelNode.Value.GetHashCode().ToString(), hooks);

            var nonDefinition  = new Type[] { spObjectType, typeof(DefinitionBase) };
            var withDefinition = new Type[] { spObjectType, modelNode.Value.GetType() };

            var modelNonDefInstanceType  = modelContextType.MakeGenericType(nonDefinition);
            var modelWithDefInstanceType = modelContextType.MakeGenericType(withDefinition);

            var genericAction = typeof(Action <>);

            HandlerOnProvisioningHook(modelNode, spObjectType, nonDefinition);
            HandlerOnProvisionedHook(modelNode, spObjectType, nonDefinition);
        }
Exemplo n.º 8
0
 public HookHandler(object container, string eventName, EventHooks hooks)
     : base(container, eventName, hooks)
 {
 }
Exemplo n.º 9
0
 protected BaseHookHandler(object container, string eventName, EventHooks hooks)
 {
     this.hooks     = hooks;
     this.container = container;
     this.eventName = eventName;
 }
Exemplo n.º 10
0
        private void Awake()
        {
            Loader.Logger.Info("Mod the Gungeon entry point");
            EventHooks.InvokeGameStarted();
            Backend.GameObject = new GameObject("Mod the Gungeon");

            var asm   = Assembly.GetExecutingAssembly();
            var types = asm.GetTypes();

            for (int i = 0; i < types.Length; i++)
            {
                var type = types[i];
                if (type.IsSubclassOf(typeof(Backend)))
                {
                    var backend = (Backend)Backend.GameObject.AddComponent(type);

                    DontDestroyOnLoad(backend);

                    Backend.AllBackends.Add(new Backend.Info {
                        Name          = type.Name,
                        StringVersion = backend.StringVersion,
                        Version       = backend.Version,
                        Type          = type,
                        Instance      = backend
                    });

                    try {
                        backend.NoBackendsLoadedYet();
                    } catch (Exception e) {
                        Loader.Logger.Error($"Exception while pre-loading backend {type.Name}: [{e.GetType().Name}] {e.Message}");
                        foreach (var l in e.StackTrace.Split('\n'))
                        {
                            Loader.Logger.ErrorIndent(l);
                        }
                    }
                }
            }

            for (int i = 0; i < Backend.AllBackends.Count; i++)
            {
                var backend = Backend.AllBackends[i];
                Loader.Logger.Info($"Initializing backend {backend.Name} {backend.StringVersion}");
                try {
                    backend.Instance.Loaded();
                } catch (Exception e) {
                    Loader.Logger.Error($"Exception while loading backend {backend.Name}: [{e.GetType().Name}] {e.Message}");
                    foreach (var l in e.StackTrace.Split('\n'))
                    {
                        Loader.Logger.ErrorIndent(l);
                    }
                }
            }

            for (int i = 0; i < Backend.AllBackends.Count; i++)
            {
                try {
                    Backend.AllBackends[i].Instance.AllBackendsLoaded();
                } catch (Exception e) {
                    Loader.Logger.Error($"Exception while post-loading backend {Backend.AllBackends[i].Name}: [{e.GetType().Name}] {e.Message}");
                    foreach (var l in e.StackTrace.Split('\n'))
                    {
                        Loader.Logger.ErrorIndent(l);
                    }
                }
            }

            if (Environment.GetEnvironmentVariable("ModTheGungeon_DUMP_ASSETS") == "1")
            {
                DumpAssets();
            }

            orig_Awake();
        }