예제 #1
0
        public async Task Build()
        {
            BuildContext buildContext = null;

            try
            {
                var dataSource = _pluginManager.Resolve <IDataSource>(_project.DataSource.Name);
                if (OnStartup != null)
                {
                    await OnStartup.Invoke(this, new OnProjectBuildStartupEventArgs { Project = _project });
                }
                await dataSource.InitData();

                foreach (var buildKV in _project.BuildTasks)
                {
                    _logger.LogInformation($"-------- BuildTask:{buildKV.Key} Start! ---------");
                    var output = buildKV.Value.Output;
                    buildContext = new BuildContext
                    {
                        PluginManager = _pluginManager,
                        Project       = _project,
                        DataSource    = dataSource,
                        BuildKey      = buildKV.Key,
                        Build         = buildKV.Value,
                        Output        = output == null ? null : new Output
                        {
                            Type      = output.Type,
                            Path      = output.Path,
                            Name      = output.Name,
                            Mode      = output.Mode,
                            Extension = output.Extension
                        }
                    };
                    await _pluginManager.Resolve <IBuildTask>(buildKV.Value.Type).Build(buildContext);

                    _logger.LogInformation($"-------- BuildTask:{buildKV.Key} End! ---------");
                }

                if (OnSucceed != null)
                {
                    await OnSucceed.Invoke(this, new OnProjectBuildSucceedEventArgs
                    {
                        Project = _project
                    });
                }
            }
            catch (Exception ex)
            {
                if (OnFailed != null)
                {
                    await OnFailed.Invoke(this, new OnProjectBuildFailedEventArgs
                    {
                        Project        = _project,
                        Context        = buildContext,
                        ErrorException = ex
                    });
                }
                throw;
            }
        }
예제 #2
0
        private void Init()
        {
            startupAnime = new Anime();
            startupAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0f, 0f, 0f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Outer.Color = color)
            .AddTime(0f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseOut)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 1f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Inner.Color = color)
            .AddTime(0.1f, new Color(1f, 1f, 1f, 0f), EaseType.QuadEaseIn)
            .AddTime(1f, new Color(0.25f, 0.25f, 0.25f, 1f))
            .Build();
            startupAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0.5f, new Color(), EaseType.QuartEaseIn)
            .AddTime(1f, new Color(0.75f, 0.75f, 0.75f, 1f))
            .Build();
            startupAnime.AddEvent(startupAnime.Duration, () => OnStartup?.Invoke());

            breatheAnime          = new Anime();
            breatheAnime.WrapMode = WrapModeType.Loop;
            breatheAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, Color.black, EaseType.SineEaseOut)
            .AddTime(1.1f, Color.gray, EaseType.SineEaseIn)
            .AddTime(2.2f, Color.black)
            .Build();
            breatheAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0f, new Color(0.75f, 0.75f, 0.75f, 1f), EaseType.SineEaseOut)
            .AddTime(1.1f, Color.white, EaseType.SineEaseIn)
            .AddTime(2.2f, new Color(0.75f, 0.75f, 0.75f, 1f))
            .Build();

            endAnime = new Anime();
            endAnime.AnimateColor((color) => this.Glow.Color = color)
            .AddTime(0f, () => this.Glow.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Outer.Color = color)
            .AddTime(0f, () => this.Outer.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Inner.Color = color)
            .AddTime(0f, () => this.Inner.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateColor((color) => this.Title.Color = color)
            .AddTime(0f, () => this.Title.Color, EaseType.QuartEaseIn)
            .AddTime(1.5f, Color.white)
            .Build();
            endAnime.AnimateVector3((scale) => this.Scale = scale)
            .AddTime(0f, Vector3.one, EaseType.SineEaseOut)
            .AddTime(1.5f, new Vector3(1.1f, 1.1f, 1.1f))
            .Build();
            endAnime.AddEvent(endAnime.Duration, () => OnEnd?.Invoke());
        }
 /// <summary>
 /// Does the on startup.
 /// </summary>
 static internal void DoOnStartup()
 {
     try
     {
         OnStartup?.Invoke();
     }
     catch (Exception ex)
     {
         RIExceptionManager.Publish(ex, "Failed during: RIEventManager.DoOnStartup()");
     }
 }
예제 #4
0
 private void OnDota2Startup()
 {
     DotaClient.JoinChat(_config.PrivateChat, DOTAChatChannelType_t.DOTAChannelType_Custom);
     foreach (var map in _config.Games)
     {
         ulong id;
         if (ulong.TryParse(map.Chat, out id))
         {
             DotaClient.JoinChat(map.CustomGameMode.ToString(), DOTAChatChannelType_t.DOTAChannelType_CustomGame);
         }
         else
         {
             DotaClient.JoinChat(map.Chat, DOTAChatChannelType_t.DOTAChannelType_Custom);
         }
     }
     OnStartup?.Invoke();
 }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="cred"></param>
        public virtual void Start(Credentials cred)
        {
            OnStartup?.Invoke(this);

            Connect();

            this.cred = cred;

            Login(true);
            Join(superusers);
            RequestTags("twitch.tv/tags", "twitch.tv/commands");

            foreach (var msg in messages)
            {
                EH.InvokePlugins(msg);
            }

            Disconnect();

            OnShutdown?.Invoke(this);
        }
예제 #6
0
 public static void InvokeStartup() => OnStartup?.Invoke(null, EventArgs.Empty);