コード例 #1
0
ファイル: EventBehaviour.cs プロジェクト: hafewa/MAJIKA
    public void Bind(EventBus eventBus)
    {
        if (EventListeners == null)
        {
            EventListeners = GetType()
                             .GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance)
                             .Where(method => method.GetCustomAttributes <EventListenerAttribute>().FirstOrDefault() != null)
                             .Select(method => new ReflectEventListener(method.GetCustomAttribute <EventListenerAttribute>().EventName, method, this))
                             .ToArray();
        }

        if (EventTarget)
        {
            foreach (var listener in EventListeners)
            {
                EventTarget.RemoveEventListener(/*listener.Method.GetCustomAttribute<EventListenerAttribute>().EventName, */ listener);
            }
        }

        EventTarget = eventBus;
        foreach (var listener in EventListeners)
        {
            EventTarget.AddEventListener(listener.Method.GetCustomAttribute <EventListenerAttribute>().EventName, listener);
        }
    }
コード例 #2
0
 public void AddEventListeners(GameObject caller)
 {
     EventBus.AddEventListener(EVENT.StartGame, StartGame);
     EventBus.AddEventListener(EVENT.LevelWon, LevelWon);
     EventBus.AddEventListener(EVENT.LevelLost, LevelLost);
     EventBus.AddEventListener(EVENT.NewHighScore, NewHighScore);
 }
コード例 #3
0
ファイル: EventBusTest.cs プロジェクト: degrootwim/AuditLog
        public void AddEventListenerShouldHaveBasicConsumer()
        {
            // Arrange
            IBasicConsumer basicConsumer  = null;
            var            modelMock      = new Mock <IModel>();
            var            model          = modelMock.Object;
            var            connectionMock = new Mock <IConnection>();
            var            connection     = connectionMock.Object;

            connectionMock.Setup(mock => mock.CreateModel()).Returns(model);
            modelMock.Setup(mock => mock.QueueDeclare(string.Empty, false, true, true, null))
            .Returns(new QueueDeclareOk("TestQueue", 0, 1));
            modelMock.Setup(mock =>
                            mock.BasicConsume("TestQueue", false, string.Empty, false, false, null, It.IsAny <IBasicConsumer>()))
            .Callback((
                          string queue,
                          bool autoAck,
                          string consumerTag,
                          bool noLocal,
                          bool exclusive,
                          IDictionary <string, object> arguments,
                          IBasicConsumer consumer) =>
            {
                basicConsumer = consumer;
            });
            using var eventBus = new EventBus(connection, "TestExchange");
            var eventListener = new Mock <IEventListener>().Object;

            // Act
            eventBus.AddEventListener(eventListener, "#");

            // Assert
            Assert.IsNotNull(basicConsumer);
        }
コード例 #4
0
ファイル: Bullet.cs プロジェクト: hofcsabaGit/MatchWaders
 void AddEventListeners()
 {
     EventBus.AddEventListener(EVENT.LevelReset, ResetBullet);
     EventBus.AddEventListener(EVENT.LevelWon, Deactivate);
     EventBus.AddEventListener(EVENT.LevelLost, Deactivate);
     EventBus.AddEventListener(EVENT.Paused, Deactivate);
     EventBus.AddEventListener(EVENT.UnPaused, ResetBullet);
 }
コード例 #5
0
        protected override async Task OnActivate(bool isFromReload)
        {
            using (var context = new UconomyDbContext(this))
            {
                await context.Database.MigrateAsync();
            }

            EventBus.AddEventListener(this, this);
        }
コード例 #6
0
 void AddEventListeners()
 {
     EventBus.AddEventListener(EVENT.EnemyDied, EnemyDied);
     EventBus.AddEventListener(EVENT.Paused, StopEnemyLogic);
     EventBus.AddEventListener(EVENT.UnPaused, StartEnemyLogic);
     EventBus.AddEventListener(EVENT.LevelWon, StopEnemyLogic);
     EventBus.AddEventListener(EVENT.LevelLost, StopEnemyLogic);
     EventBus.AddEventListener(EVENT.LevelReset, ResetEnemies);
     EventBus.AddEventListener(EVENT.EnemyDiedProtector, DecreaseEnemyNumber);
 }
コード例 #7
0
 void AddEventListeners()
 {
     EventBus.AddEventListener(EVENT.LevelWon, LevelWon);
     EventBus.AddEventListener(EVENT.LevelLost, LevelLost);
     EventBus.AddEventListener(EVENT.LevelReset, LevelReset);
     EventBus.AddEventListener(EVENT.Paused, LevelPaused);
     EventBus.AddEventListener(EVENT.UnPaused, LevelUnPaused);
     EventBus.AddEventListener(EVENT.BackToMenu, BackToMenu);
     EventBus.AddEventListener(EVENT.StartGame, Play);
     EventBus.AddEventListener(EVENT.QuitGame, Quit);
 }
コード例 #8
0
ファイル: ClrPluginLoader.cs プロジェクト: liyang-love/Rocket
        protected async Task <bool> RegisterAndLoadPluginFromContainer(IDependencyContainer container)
        {
            IPlugin plugin = container.Resolve <IPlugin>();

            Logger.LogDebug($"[{GetType().Name}] Trying to load plugin: " + plugin.Name);

            PluginCommandProvider cmdProvider = new PluginCommandProvider(plugin);

            ParentContainer.RegisterSingletonInstance <ICommandProvider>(cmdProvider, plugin.Name);

            var    asm       = plugin.GetType().Assembly;
            string pluginDir = plugin.WorkingDirectory;

            //if (!Directory.Exists(pluginDir))
            //    Directory.CreateDirectory(pluginDir);

            foreach (string s in asm.GetManifestResourceNames())
            {
                using (Stream stream = asm.GetManifestResourceStream(s))
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        if (stream != null)
                        {
                            stream.CopyTo(ms);
                            byte[] data     = ms.ToArray();
                            string fileName = s.Replace(plugin.GetType().Namespace, "");
                            File.WriteAllBytes(Path.Combine(pluginDir, fileName), data);
                        }
                    }
                }
            }

            bool success = await plugin.ActivateAsync(false);

            if (!success)
            {
                return(false);
            }

            IEnumerable <Type> listeners = plugin.FindTypes <IAutoRegisteredEventListener>(false);

            foreach (Type listener in listeners)
            {
                IAutoRegisteredEventListener instance = (IAutoRegisteredEventListener)container.Activate(listener);
                EventBus.AddEventListener(plugin, instance);
            }

            return(true);
        }
コード例 #9
0
 private void Awake()
 {
     if (!EventBus)
     {
         return;
     }
     foreach (var responsor in Responsors)
     {
         Action handler = () =>
         {
             responsor.Handle(gameObject);
         };
         listeners.Add(EventBus.AddEventListener(responsor.Event, handler));
     }
 }
コード例 #10
0
ファイル: EventBusTest.cs プロジェクト: degrootwim/AuditLog
        public void AddEventListenerShouldCallQueueDeclare()
        {
            // Arrange
            var modelMock      = new Mock <IModel>();
            var model          = modelMock.Object;
            var connectionMock = new Mock <IConnection>();
            var connection     = connectionMock.Object;

            connectionMock.Setup(mock => mock.CreateModel()).Returns(model);
            modelMock.Setup(mock => mock.QueueDeclare(string.Empty, false, true, true, null))
            .Returns(new QueueDeclareOk("TestQueue", 0, 1));
            using var eventBus = new EventBus(connection, "TestExchange");

            // Act
            eventBus.AddEventListener(new Mock <IEventListener>().Object, "#");

            // Assert
            modelMock.Verify(mock => mock.QueueDeclare(string.Empty, false, true, true, null));
        }
コード例 #11
0
ファイル: EventBusTest.cs プロジェクト: degrootwim/AuditLog
        public void AddEventListenerShouldAddHandleToConsumerReceived()
        {
            // Arrange
            IBasicConsumer basicConsumer     = null;
            var            modelMock         = new Mock <IModel>();
            var            model             = modelMock.Object;
            var            connectionMock    = new Mock <IConnection>();
            var            connection        = connectionMock.Object;
            var            eventListenerMock = new Mock <IEventListener>();

            connectionMock.Setup(mock => mock.CreateModel()).Returns(model);
            modelMock.Setup(mock => mock.QueueDeclare(string.Empty, false, true, true, null))
            .Returns(new QueueDeclareOk("TestQueue", 0, 1));
            modelMock.Setup(mock =>
                            mock.BasicConsume("TestQueue", false, It.IsAny <string>(), false, false, null,
                                              It.IsAny <IBasicConsumer>()))
            .Callback((
                          string queue,
                          bool autoAck,
                          string consumerTag,
                          bool noLocal,
                          bool exclusive,
                          IDictionary <string, object> arguments,
                          IBasicConsumer consumer) =>
            {
                basicConsumer = consumer;
            });
            using var eventBus = new EventBus(connection, "TestExchange");

            // Act
            eventBus.AddEventListener(eventListenerMock.Object, "#");
            basicConsumer.HandleBasicDeliver("", ulong.MaxValue, false, "TestExchange", "#",
                                             new BasicProperties(), It.IsAny <byte[]>());


            // Assert
            eventListenerMock.Verify(mock => mock.Handle(It.IsAny <object>(), It.IsAny <BasicDeliverEventArgs>()));
        }
コード例 #12
0
 void Awake()
 {
     highscoreText.text = "Highscore: " + GameManager.Instance.Load();
     EventBus.AddEventListener(EVENT.BackToMenu, UpdateHighScore);
 }
コード例 #13
0
ファイル: Player.cs プロジェクト: hofcsabaGit/MatchWaders
 void AddEventListeners()
 {
     EventBus.AddEventListener(EVENT.LevelReset, ResetPlayer);
 }
コード例 #14
0
ファイル: Protection.cs プロジェクト: hofcsabaGit/MatchWaders
 void AddEventListeners()
 {
     EventBus.AddEventListener(EVENT.LevelReset, ResetProtection);
 }