コード例 #1
0
        private void IconDownloadComplete(object sender, DownloadDataCompletedEventArgs e)
        {
            bool success = false;

            try {
                if (!e.Cancelled && e.Error == null)
                {
                    byte[] data = e.Result;
                    using (var buffer = new MemoryStream(data)) {
                        var iconTexture = Texture2D.FromStream(Main.instance.GraphicsDevice, buffer);
                        _modIcon = new UIImage(iconTexture)
                        {
                            Left = { Percent = 0f },
                            Top  = { Percent = 0f }
                        };
                        _modIconStatus = ModIconStatus.READY;
                        success        = true;
                    }
                }
            }
            catch {
                // country- wide imgur blocks, cannot load icon
            }
            if (!success)
            {
                _modIconStatus                     = ModIconStatus.APPENDED;
                _modName.Left.Pixels              -= ModIconAdjust;
                _moreInfoButton.Left.Pixels       -= ModIconAdjust;
                _updateButton.Left.Pixels         -= ModIconAdjust;
                _updateWithDepsButton.Left.Pixels -= ModIconAdjust;
            }
        }
コード例 #2
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);

            if (HasModIcon && _modIconStatus == ModIconStatus.UNKNOWN)
            {
                _modIconStatus = ModIconStatus.WANTED;
            }

            CalculatedStyle innerDimensions = GetInnerDimensions();
            float           leftOffset      = HasModIcon ? ModIconAdjust : 0f;
            Vector2         drawPos         = new Vector2(innerDimensions.X + 5f + leftOffset, innerDimensions.Y + 30f);

            spriteBatch.Draw(_dividerTexture, drawPos, null, Color.White, 0f, Vector2.Zero, new Vector2((innerDimensions.Width - 10f - leftOffset) / 8f, 1f), SpriteEffects.None, 0f);

            drawPos = new Vector2(innerDimensions.X + innerDimensions.Width - 125, innerDimensions.Y + 45);
            DrawTimeText(spriteBatch, drawPos);

            if (_updateButton?.IsMouseHovering == true)
            {
                tooltip = UpdateText;
            }
            else if (_updateWithDepsButton?.IsMouseHovering == true)
            {
                tooltip = UpdateWithDepsText;
            }
            else if (_moreInfoButton?.IsMouseHovering == true)
            {
                tooltip = ViewModInfoText;
            }
        }
コード例 #3
0
        private void IconDownloadComplete(object sender, DownloadDataCompletedEventArgs e)
        {
            bool success = false;

            try {
                if (!e.Cancelled && e.Error == null)
                {
                    byte[] data = e.Result;
                    using (var buffer = new MemoryStream(data)) {
                        var iconTexture = Texture2D.FromStream(Main.instance.GraphicsDevice, buffer);
                        _modIcon = new UIImage(iconTexture)
                        {
                            Left = { Percent = 0f },
                            Top  = { Percent = 0f }
                        };
                        _modIconStatus = ModIconStatus.READY;
                        success        = true;
                    }
                }
            }
            catch {
                // country- wide imgur blocks, cannot load icon
            }
            if (!success)
            {
                AdjustPositioningFailedIcon();
                ModIconDownloadFailCount++;
                if (ModIconDownloadFailCount == MaxImgurFails)
                {
                    Logging.tML.Error("tModLoader has repeatedly failed to connect to imgur.com to download mod icons. If you know imgur is not accessibile in your country, you can set AvoidImgur found in congfig.json to true to avoid attempting to download mod icons in the future.");
                }
            }
        }
コード例 #4
0
 private void RequestModIcon()
 {
     _modIconStatus = ModIconStatus.REQUESTED;
     using (var client = new WebClient()) {
         client.DownloadDataCompleted += IconDownloadComplete;
         client.DownloadDataAsync(new Uri(_modIconUrl));
     }
 }
コード例 #5
0
 private void AdjustPositioningFailedIcon()
 {
     _modIconStatus               = ModIconStatus.APPENDED;
     _modName.Left.Pixels        -= ModIconAdjust;
     _moreInfoButton.Left.Pixels -= ModIconAdjust;
     _updateButton.Left.Pixels   -= ModIconAdjust;
     if (_updateWithDepsButton != null)
     {
         _updateWithDepsButton.Left.Pixels -= ModIconAdjust;
     }
 }
コード例 #6
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);

            if (HasModIcon && _modIconStatus == ModIconStatus.UNKNOWN)
            {
                _modIconStatus = ModIconStatus.WANTED;
            }

            CalculatedStyle innerDimensions = GetInnerDimensions();
            Vector2         drawPos         = new Vector2(innerDimensions.X + 5f + ModIconAdjust, innerDimensions.Y + 30f);

            spriteBatch.Draw(_dividerTexture, drawPos, null, Color.White, 0f, Vector2.Zero, new Vector2((innerDimensions.Width - 10f - ModIconAdjust) / 8f, 1f), SpriteEffects.None, 0f);

            drawPos = new Vector2(innerDimensions.X, innerDimensions.Y + 80);
            DrawTimeText(spriteBatch, drawPos);
        }
コード例 #7
0
 private void IconDownloadComplete(object sender, DownloadDataCompletedEventArgs e)
 {
     try {
         byte[] data = e.Result;
         using (var buffer = new MemoryStream(data)) {
             var iconTexture = Texture2D.FromStream(Main.instance.GraphicsDevice, buffer);
             _modIcon = new UIImage(iconTexture)
             {
                 Left = { Percent = 0f },
                 Top  = { Percent = 0f }
             };
             _modIconStatus = ModIconStatus.READY;
         }
     }
     catch {
         // country- wide imgur blocks, cannot load icon
         _modIconStatus = ModIconStatus.APPENDED;
         _modName.Left.Set(5f, 0f);
         _moreInfoButton.Left.Set(0f, 0f);
     }
 }
コード例 #8
0
 private void AppendModIcon()
 {
     _modIconStatus = ModIconStatus.APPENDED;
     Append(_modIcon);
 }