public override void Update(IList <Entity> entities, double elapsedTime)
        {
            //Entities
            var entitiesToProcess = entities.Where(x => !x.ToRemove && x.HasComponent(6) && ((TypeComponent)x.GetComponent(5)).Type == Enums.EnumTypeEntity.ENEMY)
                                    .Select(x => new { Entity = x, Transform = ((TransformComponent)x.GetComponent(0)) })
                                    .OrderByDescending(x => x.Transform.Y)
                                    .GroupBy(x => x.Transform.X)
                                    .Select(x => x.FirstOrDefault());

            foreach (var e in entitiesToProcess)
            {
                ShootComponent shootComponent     = (ShootComponent)e.Entity.GetComponent(6);
                var            transformComponent = (TransformComponent)e.Entity.GetComponent(0);
                var            typeComponent      = (TypeComponent)e.Entity.GetComponent(5);

                shootComponent.LastShootTime += elapsedTime;
                if (shootComponent.LastShootTime > shootComponent.IntervalBetweenShoot * 1000)
                {
                    var shoot = MyGame.Instance.World.EntityManager.CreateEntity();
                    FactoryEntity.CreateShoot(shoot, transformComponent.X, transformComponent.Y, 0, 1, 33, Enums.EnumTypeEntity.SHOOT_ENEMY);

                    shootComponent.LastShootTime = 0;
                }
            }
        }
        public override void Update(IList <Entity> entities, double elapsedTime)
        {
            //Entities
            var player = entities.Where(x => !x.ToRemove && ((TypeComponent)x.GetComponent(5)).Type == Enums.EnumTypeEntity.PLAYER).First();

            ShootComponent shootComponent     = (ShootComponent)player.GetComponent(6);
            var            transformComponent = (TransformComponent)player.GetComponent(0);

            shootComponent.LastShootTime += elapsedTime;
            if (shootComponent.ShootAsked && shootComponent.LastShootTime > shootComponent.IntervalBetweenShoot * 1000)
            {
                var shoot = MyGame.Instance.World.EntityManager.CreateEntity();
                FactoryEntity.CreateShoot(shoot, transformComponent.X, transformComponent.Y, 0, -1, 32, Enums.EnumTypeEntity.SHOOT_PLAYER);

                shootComponent.LastShootTime = 0;
            }
        }