示例#1
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            if (ContainsPoint(Main.MouseScreen))
            {
                Main.LocalPlayer.mouseInterface = true;
            }
            if (dragging)
            {
                Left.Set(Main.mouseX - offset.X, 0f);
                Top.Set(Main.mouseY - offset.Y, 0f);
                Recalculate();
            }
            CalculatedStyle dimensions  = Parent.GetDimensions();
            Rectangle       parentSpace = dimensions.ToRectangle();
            Rectangle       mouseRect   = new Rectangle(Main.mouseX, Main.mouseY, 0, 0);

            dimensions = GetDimensions();
            Rectangle val = dimensions.ToRectangle();

            if (val.Intersects(parentSpace) || !mouseRect.Intersects(parentSpace))
            {
                Left.Pixels = Utils.Clamp(Left.Pixels, 0f, parentSpace.Right - Width.Pixels);
                Top.Pixels  = Utils.Clamp(Top.Pixels, 0f, parentSpace.Bottom - Height.Pixels);
                Recalculate();
            }
        }
示例#2
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = GetDimensions();
            Player          player     = Main.LocalPlayer;
            AbilityHandler  mp         = player.GetModPlayer <AbilityHandler>();

            Texture2D emptyTex = GetTexture("StarlightRiver/GUI/Assets/StaminaEmpty");
            Texture2D fillTex  = GetTexture("StarlightRiver/GUI/Assets/Stamina");

            int row = 0;

            for (int k = 0; k < mp.StatStaminaMax; k++)
            {
                if (k % 7 == 0 && k != 0)
                {
                    row++;
                }

                Vector2 pos = row % 2 == 0 ? dimensions.ToRectangle().TopLeft() + new Vector2(row * -18, (k % 7) * 28) :
                              dimensions.ToRectangle().TopLeft() + new Vector2(row * -18, 14 + (k % 7) * 28);

                spriteBatch.Draw(emptyTex, pos, emptyTex.Frame(), Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 0);

                if (mp.StatStamina > k)
                {
                    spriteBatch.Draw(fillTex, pos + Vector2.One * 4, Color.White);
                }
                if (mp.StatStamina == k)
                {
                    float scale = 1 - (mp.StatStaminaRegen / (float)mp.StatStaminaRegenMax);
                    spriteBatch.Draw(fillTex, pos + Vector2.One * 4 + fillTex.Size() / 2, fillTex.Frame(), Color.White, 0, fillTex.Size() / 2, scale, 0, 0);
                }
            }
        }
        public override void Update(GameTime gameTime)
        {
            _collectionInfo = _entry.UIInfoProvider.GetEntryUICollectionInfo();
            CalculatedStyle dimensions = GetDimensions();
            bool            isHovered  = base.IsMouseHovering || ForceHover;

            _entry.Icon.Update(_collectionInfo, dimensions.ToRectangle(), new EntryIconDrawSettings
            {
                iconbox    = dimensions.ToRectangle(),
                IsPortrait = _isPortrait,
                IsHovered  = isHovered
            });
            base.Update(gameTime);
        }
示例#4
0
        public override void Update(GameTime gameTime)
        {
            this._collectionInfo = this._entry.UIInfoProvider.GetEntryUICollectionInfo();
            CalculatedStyle dimensions = this.GetDimensions();
            bool            flag       = this.IsMouseHovering || this.ForceHover;

            this._entry.Icon.Update(this._collectionInfo, dimensions.ToRectangle(), new EntryIconDrawSettings()
            {
                iconbox    = dimensions.ToRectangle(),
                IsPortrait = this._isPortrait,
                IsHovered  = flag
            });
            base.Update(gameTime);
        }
示例#5
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = base.GetInnerDimensions();
            Rectangle       rectangle  = dimensions.ToRectangle();

            Rectangle value = new Rectangle(0, 0, 1, 1);
            float     r     = 1f;

            if (isSelect)
            {
                r = .25f;
            }
            float g = 0.9f;
            float b = 0.1f;
            float a = 1f;
            //a = .2f;
            float scale2 = 0.6f;
            Color color  = buffColor(Color.White, r, g, b, a);

            //Main.spriteBatch.Draw(Main.magicPixel, dimensions.Position, new Microsoft.Xna.Framework.Rectangle?(value), color * scale, 0f, Vector2.Zero,  , SpriteEffects.None, 0f);

            if (isSelect || IsMouseHovering)
            {
                spriteBatch.Draw(Main.magicPixel, dimensions.ToRectangle(), color * scale2);
            }

            spriteBatch.Draw(texture, dimensions.Position(), null, Color.White, 0f, Vector2.Zero, scale, effects, 0f);

            if (isSelect || IsMouseHovering)
            {
                b      = 0.3f;
                g      = 0.95f;
                scale2 = (a = 1f);
                color  = buffColor(Color.White, r, g, b, a);
                //Main.spriteBatch.Draw(Main.magicPixel, upperLeftScreen + Vector2.UnitX * -2f, new Microsoft.Xna.Framework.Rectangle?(value), color * scale, 0f, Vector2.Zero, new Vector2(2f, 16f * brushSize.Y), SpriteEffects.None, 0f);
                //Main.spriteBatch.Draw(Main.magicPixel, upperLeftScreen + Vector2.UnitX * 16f * brushSize.X, new Microsoft.Xna.Framework.Rectangle?(value), color * scale, 0f, Vector2.Zero, new Vector2(2f, 16f * brushSize.Y), SpriteEffects.None, 0f);
                //Main.spriteBatch.Draw(Main.magicPixel, upperLeftScreen + Vector2.UnitY * -2f, new Microsoft.Xna.Framework.Rectangle?(value), color * scale, 0f, Vector2.Zero, new Vector2(16f * brushSize.X, 2f), SpriteEffects.None, 0f);
                //Main.spriteBatch.Draw(Main.magicPixel, upperLeftScreen + Vector2.UnitY * 16f * brushSize.Y, new Microsoft.Xna.Framework.Rectangle?(value), color * scale, 0f, Vector2.Zero, new Vector2(16f * brushSize.X, 2f), SpriteEffects.None, 0f);
                spriteBatch.Draw(Main.magicPixel, new Rectangle((int)dimensions.X, (int)dimensions.Y, (int)dimensions.Width, 2), color * scale2);
                spriteBatch.Draw(Main.magicPixel, new Rectangle((int)dimensions.X, (int)dimensions.Y, 2, (int)dimensions.Height), color * scale2);
                spriteBatch.Draw(Main.magicPixel, new Rectangle((int)dimensions.X + (int)dimensions.Width - 2, (int)dimensions.Y, 2, (int)dimensions.Height), color * scale2);
                spriteBatch.Draw(Main.magicPixel, new Rectangle((int)dimensions.X, (int)dimensions.Y + (int)dimensions.Height - 2, (int)dimensions.Width, 2), color * scale2);
            }
            if (IsMouseHovering)
            {
                ToolBox.tooltip = tooltip;
            }
        }
示例#6
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            bool useAlt                         = UseAlternateTexture();
            int  selectedMusic                  = tMusicPlayer.AllMusic[tMusicPlayer.MusicPlayerUI.DisplayBox].music;
            int  firstBox                       = tMusicPlayer.MusicPlayerUI.musicData[0].music;
            int  lastBox                        = tMusicPlayer.MusicPlayerUI.musicData[tMusicPlayer.MusicPlayerUI.musicData.Count - 1].music;
            bool firstOrLast                    = (Id == "prev" && selectedMusic == firstBox) || (Id == "next" && selectedMusic == lastBox);
            int  indexPrev                      = tMusicPlayer.MusicPlayerUI.FindPrevIndex();
            int  indexNext                      = tMusicPlayer.MusicPlayerUI.FindNextIndex();
            bool firstOrLastUnavail             = (Id == "prev" && (indexPrev == -1 || tMusicPlayer.MusicPlayerUI.listening)) || (Id == "next" && (indexNext == -1 || tMusicPlayer.MusicPlayerUI.listening));
            MusicPlayerPlayer modplayer         = Main.LocalPlayer.GetModPlayer <MusicPlayerPlayer>();
            bool            recordUnavail       = Id == "record" && modplayer.musicBoxesStored <= 0;
            bool            activeListen        = (Id == "next" || Id == "prev" || Id == "play") && tMusicPlayer.MusicPlayerUI.listening;
            bool            musicAtZero         = Id != "expand" && Id != "view" && Main.musicVolume <= 0f;
            bool            clearModDisabled    = Id == "clearfiltermod" && tMusicPlayer.MusicPlayerUI.FilterMod == "";
            bool            cannotPlayListMusic = Id.Contains("altplay") && !tMusicPlayer.MusicPlayerUI.canPlay.Contains(Convert.ToInt32(Id.Substring(Id.IndexOf("_") + 1)));
            bool            disabled            = firstOrLast | firstOrLastUnavail | recordUnavail | activeListen | musicAtZero | clearModDisabled | cannotPlayListMusic;
            Rectangle       push                = new Rectangle(useAlt ? (src.X + src.Width + 2) : src.X, (IsMouseHovering && !disabled) ? (src.Y + src.Height + 2) : src.Y, src.Width, src.Height);
            CalculatedStyle innerDimensions     = GetInnerDimensions();

            spriteBatch.Draw(texture, innerDimensions.ToRectangle(), push, disabled ? new Color(60, 60, 60, 60) : Color.White);
            if (ContainsPoint(Main.MouseScreen) && !PlayerInput.IgnoreMouseInterface)
            {
                Main.LocalPlayer.mouseInterface = true;
                if (tMusicPlayer.tMPConfig.EnableMoreTooltips && Main.SmartCursorEnabled && !disabled)
                {
                    Main.hoverItemName = SetHoverItemName(Id);
                }
            }
        }
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = base.GetInnerDimensions();
            Rectangle       rectangle  = dimensions.ToRectangle();

            spriteBatch.Draw(texture, rectangle, Color.White);
        }
示例#8
0
        public override void MouseDown(UIMouseEvent evt)
        {
            if (evt.Target == this)
            {
                Rectangle outerRect = GetOuterDimensions().ToRectangle();
                Rectangle innerRect = GetOuterDimensions().ToRectangle();
                innerRect.Inflate(-_dragThickness, -_dragThickness);
                CalculatedStyle style      = GetDimensions();
                Point           mousePoint = Main.MouseScreen.ToPoint();

                if (_canResize && outerRect.Contains(mousePoint) && !innerRect.Contains(mousePoint))
                {
                    _resizing     = true;
                    _resizeAnchor = GetAnchor();
                    _resizeStart  = style.ToRectangle();
                }
                else
                {
                    _dragging   = true;
                    _dragOffset = new Vector2(Main.mouseX - style.X, Main.mouseY - style.Y);
                }
            }

            base.MouseDown(evt);
        }
示例#9
0
        protected override void DrawSelf(SpriteBatch sb)
        {
            CalculatedStyle innerDimension = GetInnerDimensions();

            if (WithBox)
            {
                Drawing.DrawAdvBox(sb, (int)innerDimension.X, (int)innerDimension.Y,
                                   (int)innerDimension.Width, (int)innerDimension.Height,
                                   _currentColor, Drawing.Box1, new Vector2(10, 10));
            }
            else
            {
                if (Texture != null)
                {
                    sb.Draw(Texture, innerDimension.ToRectangle(), _currentColor);
                }
            }
            if (ButtonText != "")
            {
                Vector2 txtMeasure = Main.fontMouseText.MeasureString(ButtonText);
                Terraria.Utils.DrawBorderStringFourWay(sb, Main.fontMouseText, ButtonText,
                                                       innerDimension.Center().X - txtMeasure.X / 2, innerDimension.Center().Y - txtMeasure.Y / 2,
                                                       ButtonTextColor,
                                                       Color.Black, Vector2.Zero);
            }
        }
示例#10
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = GetDimensions();
            Texture2D       texture    = _hasPower() ? _hasPowerTexture : _noPowerTexture;

            spriteBatch.Draw(texture, dimensions.ToRectangle(), null, Color.White);
        }
示例#11
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = GetDimensions();

            spriteBatch.EnableScissor();

            for (int i = 0; i < lines.Length; i++)
            {
                if (lines[i].OnDraw != null)
                {
                    lines[i].OnDraw.Invoke(spriteBatch, new CalculatedStyle(dimensions.X + lines[i].X + 48, dimensions.Y + lines[i].Y, dimensions.Width, dimensions.Height));
                }
                else
                {
                    Utils.DrawBorderStringFourWay(spriteBatch, Main.fontMouseText, lines[i].Text, dimensions.X + 48 + lines[i].X, dimensions.Y + lines[i].Y, lines[i].Color, Color.Black, Vector2.Zero, lines[i].Scale);
                }

                if (lines[i].OnHover != null)
                {
                    Rectangle rect = new Rectangle((int)(dimensions.X + 48 + lines[i].X), (int)(dimensions.Y + lines[i].Y), (int)lines[i].Width, (int)lines[i].Height);
                    if (rect.Intersects(dimensions.ToRectangle()) && rect.Contains(Main.MouseScreen))
                    {
                        lines[i].OnHover.Invoke(spriteBatch, dimensions);
                    }
                }
            }

            spriteBatch.SetupForShader(DTT.circleShader);

            spriteBatch.Draw(avatar, new Rectangle((int)dimensions.X, (int)dimensions.Y, 40, 40), Color.White);

            spriteBatch.DisableScissor();
        }
示例#12
0
        // Draw axis? ticks?
        public override void Draw(SpriteBatch spriteBatch)
        {
            base.Draw(spriteBatch);

            CalculatedStyle dimensions = base.GetInnerDimensions();
            Rectangle       rectangle  = dimensions.ToRectangle();

            rectangle = new Rectangle(rectangle.Right - 30, rectangle.Y, 30, 30);
            spriteBatch.Draw(TextureAssets.MagicPixel.Value, rectangle, Color.AliceBlue);

            float x = (c.X - min) / (max - min);
            float y = (c.Y - min) / (max - min);

            var position = rectangle.TopLeft();

            position.X += x * rectangle.Width;
            position.Y += y * rectangle.Height;
            var blipRectangle = new Rectangle((int)position.X - 2, (int)position.Y - 2, 4, 4);

            if (x >= 0 && x <= 1 && y >= 0 && y <= 1)
            {
                spriteBatch.Draw(TextureAssets.MagicPixel.Value, blipRectangle, Color.Black);
            }

            if (IsMouseHovering && rectangle.Contains((Main.MouseScreen).ToPoint()) && Main.mouseLeft)
            {
                float newPerc = (Main.mouseX - rectangle.X) / (float)rectangle.Width;
                newPerc = Utils.Clamp <float>(newPerc, 0f, 1f);
                c.X     = (float)Math.Round((newPerc * (max - min) + min) * (1 / increment)) * increment;

                newPerc = (Main.mouseY - rectangle.Y) / (float)rectangle.Height;
                newPerc = Utils.Clamp <float>(newPerc, 0f, 1f);
                c.Y     = (float)Math.Round((newPerc * (max - min) + min) * (1 / increment)) * increment;
            }
        }
示例#13
0
        // TODO, choose Y direction, up negative or positive?
        // draw Axis, make circular option, make rotation option(ouside values only.)
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = base.GetInnerDimensions();
            Rectangle       rectangle  = dimensions.ToRectangle();

            spriteBatch.Draw(Main.magicPixel, rectangle, Color.Red);

            float x = dataX.GetProportion();
            float y = dataY.GetProportion();

            var position = dimensions.Position();

            position.X += x * dimensions.Width;
            position.Y += y * dimensions.Height;
            var blipRectangle = new Rectangle((int)position.X - 2, (int)position.Y - 2, 4, 4);

            spriteBatch.Draw(Main.magicPixel, blipRectangle, Color.Black);

            if (IsMouseHovering && Main.mouseLeft)
            {
                float newPerc = (Main.mouseX - rectangle.X) / (float)rectangle.Width;
                newPerc = Utils.Clamp <float>(newPerc, 0f, 1f);
                dataX.SetProportion(newPerc);

                newPerc = (Main.mouseY - rectangle.Y) / (float)rectangle.Height;
                newPerc = Utils.Clamp <float>(newPerc, 0f, 1f);
                dataY.SetProportion(newPerc);
            }
        }
示例#14
0
        ////////////////

        public override void Draw(SpriteBatch sb)
        {
            base.Draw(sb);

            //

            float perc = this.Objective.PercentComplete.HasValue
                                ? this.Objective.PercentComplete.Value
                                : 0f;

            CalculatedStyle style = this.GetDimensions();
            Rectangle       rect  = style.ToRectangle();

            if (perc > 0f && perc < 1f)
            {
                rect.X      += 8;
                rect.Y      += 56;
                rect.Width  -= 16;
                rect.Height -= 64;

                Rectangle percRect = rect;
                percRect.Width = (int)((float)percRect.Width * perc);

                DrawLibraries.DrawBorderedRect(
                    sb: sb,
                    bgColor: Color.Lime,
                    borderColor: null,
                    rect: percRect,
                    borderWidth: 2
                    );
                DrawLibraries.DrawBorderedRect(
                    sb: sb,
                    bgColor: null,
                    borderColor: Color.White,
                    rect: rect,
                    borderWidth: 2
                    );
            }

            if (perc >= 1f)
            {
                Vector2 dim = Main.fontDeathText.MeasureString("Complete");

                sb.DrawString(
                    spriteFont: Main.fontDeathText,
                    text: "Complete",
                    position: new Vector2(
                        rect.X + (rect.Width / 2),
                        rect.Y + (rect.Height / 2)
                        ),
                    color: Color.Lime * 0.5f,
                    rotation: 0f,
                    origin: dim * 0.5f,
                    scale: 1.25f,
                    effects: SpriteEffects.None,
                    layerDepth: 0f
                    );
            }
        }
示例#15
0
        private void DragStart(UIMouseEvent evt)
        {
            CalculatedStyle dimensions2 = GetDimensions();
            Rectangle       dimensions  = dimensions2.ToRectangle();

            offset   = new Vector2(evt.MousePosition.X - dimensions.Left, evt.MousePosition.Y - dimensions.Top);
            dragging = true;
        }
示例#16
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            if (texture == null)
            {
                return;
            }

            CalculatedStyle dimensions = base.GetInnerDimensions();
            Rectangle       rectangle  = dimensions.ToRectangle();

            spriteBatch.Draw(backgroundTexture, dimensions.Position(), null, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);

            if (selected)
            {
                spriteBatch.Draw(selectedTexture, dimensions.Position(), null, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);
            }

            int   height         = texture.Height;
            int   width          = texture.Width;
            float drawScale      = 1f;        // larger, uncomment below
            float availableWidth = (float)backgroundTexture.Width * scale;

            if (width /** drawScale*/ > availableWidth || height /** drawScale*/ > availableWidth)
            {
                if (width > height)
                {
                    drawScale = availableWidth / width;
                }
                else
                {
                    drawScale = availableWidth / height;
                }
            }
            drawScale *= scale;
            Vector2 vector    = backgroundTexture.Size() * scale;
            Vector2 position2 = dimensions.Position() + vector / 2f - texture.Size() * drawScale / 2f;

            //Vector2 origin = texture.Size() * (1f / 2f - 0.5f);
            spriteBatch.Draw(texture, position2, null, Color.White, 0f, Vector2.Zero, drawScale, SpriteEffects.None, 0f);

            if (IsMouseHovering)
            {
                string tileName = Lang.GetMapObjectName(MapHelper.TileToLookup(tile, 0));
                if (tileName == "")
                {
                    if (tile < TileID.Count)
                    {
                        tileName = $"Tile {tile}";
                    }
                    else
                    {
                        tileName = Terraria.ModLoader.TileLoader.GetTile(tile).Name + " (err no entry)";
                    }
                }
                Main.hoverItemName = tileName;
            }
        }
示例#17
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            if (item != null)
            {
                CalculatedStyle dimensions = base.GetInnerDimensions();
                Rectangle       rectangle  = dimensions.ToRectangle();
                spriteBatch.Draw(backgroundTexture, dimensions.Position(), null, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);
                Texture2D itemTexture = Main.itemTexture[this.item.type];


                Rectangle rectangle2;
                if (Main.itemAnimations[item.type] != null)
                {
                    rectangle2 = Main.itemAnimations[item.type].GetFrame(itemTexture);
                }
                else
                {
                    rectangle2 = itemTexture.Frame(1, 1, 0, 0);
                }
                int   height         = rectangle2.Height;
                int   width          = rectangle2.Width;
                float drawScale      = 2f;
                float availableWidth = (float)backgroundTexture.Width * scale;
                if (width * drawScale > availableWidth || height * drawScale > availableWidth)
                {
                    if (width > height)
                    {
                        drawScale = availableWidth / width;
                    }
                    else
                    {
                        drawScale = availableWidth / height;
                    }
                }
                Vector2 drawPosition = dimensions.Position();
                drawPosition.X += backgroundTexture.Width * scale / 2f - (float)width * drawScale / 2f;
                drawPosition.Y += backgroundTexture.Height * scale / 2f - (float)height * drawScale / 2f;

                this.item.GetColor(Color.White);
                spriteBatch.Draw(itemTexture, drawPosition, rectangle2, this.item.GetAlpha(Color.White), 0f, Vector2.Zero, drawScale, SpriteEffects.None, 0f);
                if (this.item.color != default(Color))
                {
                    spriteBatch.Draw(itemTexture, drawPosition, new Rectangle?(rectangle2), this.item.GetColor(Color.White), 0f, Vector2.Zero, drawScale, SpriteEffects.None, 0f);
                }
                if (this.item.stack > 1)
                {
                    spriteBatch.DrawString(Main.fontItemStack, this.item.stack.ToString(), new Vector2(drawPosition.X + 10f * scale, drawPosition.Y + 26f * scale), Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);
                }

                if (IsMouseHovering)
                {
                    Main.HoverItem = item.Clone();
                    Main.HoverItem.SetNameOverride(Main.HoverItem.Name + (Main.HoverItem.modItem != null ? " [" + Main.HoverItem.modItem.mod.Name + "]" : ""));
                }
            }
        }
示例#18
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            Main.instance.LoadNPC(npcType);
            Texture2D npcTexture = Main.npcTexture[npcType];

            if (++frameTimer > frameDelay)
            {
                frameCounter = frameCounter + 1;
                frameTimer   = 0;
                if (frameCounter > Main.npcFrameCount[npcType] - 1)
                {
                    frameCounter = 0;
                }
            }

            Rectangle npcDrawRectangle = new Rectangle(0, (Main.npcTexture[npcType].Height / Main.npcFrameCount[npcType]) * frameCounter, Main.npcTexture[npcType].Width, Main.npcTexture[npcType].Height / Main.npcFrameCount[npcType]);

            CalculatedStyle dimensions = base.GetInnerDimensions();

            spriteBatch.Draw(backgroundTexture, dimensions.Position(), null, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);
            DrawAdditionalOverlays(spriteBatch, dimensions.Position(), scale);
            Rectangle rectangle = dimensions.ToRectangle();

            int height = npcTexture.Height / Main.npcFrameCount[npcType];
            int width  = npcTexture.Width;

            float drawScale      = 2f;
            float availableWidth = (float)backgroundTexture.Width * scale - 6;

            if (width * drawScale > availableWidth || height * drawScale > availableWidth)
            {
                if (width > height)
                {
                    drawScale = availableWidth / width;
                }
                else
                {
                    drawScale = availableWidth / height;
                }
            }
            Vector2 drawPosition = dimensions.Position();

            drawPosition.X += backgroundTexture.Width * scale / 2f - (float)width * drawScale / 2f;
            drawPosition.Y += backgroundTexture.Height * scale / 2f - (float)height * drawScale / 2f;

            Color color = (npc.color != new Color(byte.MinValue, byte.MinValue, byte.MinValue, byte.MinValue)) ? new Color(npc.color.R, npc.color.G, npc.color.B, 255f) : new Color(1f, 1f, 1f);

            Main.spriteBatch.Draw(npcTexture, drawPosition, npcDrawRectangle, color, 0, Vector2.Zero, drawScale, SpriteEffects.None, 0);

            if (IsMouseHovering)
            {
                Main.hoverItemName = Lang.GetNPCNameValue(npc.type) + (npc.modNPC != null ? " [" + npc.modNPC.mod.Name + "]" : "");
            }
        }
示例#19
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);
            CalculatedStyle dimensions = GetDimensions();
            Vector2         drawOrigin = _itemTexture.Size() * .5f;

            spriteBatch.Draw(_slotTexture, dimensions.ToRectangle(), null, Color.White);
            if (_hasItem())
            {
                spriteBatch.Draw(_itemTexture, dimensions.Center() - _itemTexture.Size() * .5f, null, Color.White);
            }
        }
示例#20
0
 protected override void DrawSelf(SpriteBatch spriteBatch)
 {
     base.DrawSelf(spriteBatch);
     if (drawX)
     {
         CalculatedStyle dimensions = base.GetDimensions();
         //ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, "X", dimensions.Position() + new Vector2(14f, 10f), Color.LightSalmon, 0f, Vector2.Zero, new Vector2(0.7f));
         var r = dimensions.ToRectangle();
         r.Inflate(-2, -2);
         spriteBatch.Draw(Main.cdTexture, r, null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 0);
     }
 }
示例#21
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = base.GetInnerDimensions();
            Rectangle       rectangle  = dimensions.ToRectangle();

            spriteBatch.Draw(Main.colorBarTexture, rectangle, Color.White);
            if (IsMouseHovering)
            {
                spriteBatch.Draw(Main.colorHighlightTexture, rectangle, Main.OurFavoriteColor);
            }

            rectangle.Inflate(-paddingX, -paddingY);
            //int num = 167;
            float scale = 1f;
            float x     = rectangle.X + (5f * scale);
            float y     = rectangle.Y + (4f * scale);

            x = rectangle.X;
            y = rectangle.Y;
            for (float i = 0f; i < rectangle.Width; i += 1f)
            {
                float amount = i / rectangle.Width;
                Color color  = colorRange ? Main.hslToRgb(amount, 1f, 0.5f) : Color.Lerp(Color.Black, Color.White, amount);
                spriteBatch.Draw(Main.colorBlipTexture, new Vector2(x + i * scale, y),
                                 null, color, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);
            }

            float percent = _GetStatusFunction();

            percent = Utils.Clamp(percent, 0f, 1f);

            spriteBatch.Draw(Main.colorSliderTexture,
                             new Vector2(x + rectangle.Width * scale * percent, y + 4f * scale),
                             null, Color.White, 0f,
                             new Vector2(0.5f * Main.colorSliderTexture.Width, 0.5f * Main.colorSliderTexture.Height),
                             scale, SpriteEffects.None, 0f);

            // LOGIC
            if (IsMouseHovering && Main.mouseLeft)
            {
                float newPerc = (Main.mouseX - rectangle.X) / (float)rectangle.Width;
                newPerc = Utils.Clamp(newPerc, 0f, 1f);
                _SlideKeyboardAction(newPerc);
                Main.LocalPlayer.mouseInterface = true;
                slidin = true;
            }
            if (ContainsPoint(Main.MouseScreen)) // so you can't use items while on the slider
            {
                Main.LocalPlayer.mouseInterface = true;
            }
            return;
        }
示例#22
0
 protected override void DrawSelf(SpriteBatch spriteBatch)
 {
     try
     {
         CalculatedStyle dimensions = base.GetInnerDimensions();
         Rectangle       rectangle  = dimensions.ToRectangle();
         spriteBatch.Draw(backTexture, dimensions.Position(), null, Color.White);
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.Write(ex.Message);
     }
 }
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            //base.DrawSelf(spriteBatch);

            if (drawPlayer == null)
            {
                return;
            }

            Item head = set.Item1;
            Item body = set.Item2;
            Item leg  = set.Item3;

            drawPlayer.head = head?.headSlot ?? -1;
            drawPlayer.body = body?.bodySlot ?? -1;
            drawPlayer.legs = leg?.legSlot ?? -1;

            CalculatedStyle dimensions = base.GetInnerDimensions();
            Rectangle       rectangle  = dimensions.ToRectangle();

            spriteBatch.Draw(backgroundTexture, dimensions.Position(), null, Color.White, 0f, Vector2.Zero, new Vector2(scale, scale * 1.5f), SpriteEffects.None, 0f);
            if (drawError)
            {
                return;
            }

            var center = new Vector2(rectangle.Center().X, rectangle.Y + 38);

            drawPlayer.direction = 1;
            drawPlayer.Bottom    = Main.screenPosition + center + new Vector2(0, 15);

            //Main.gameMenu = true;
            try {
                Main.instance.DrawPlayer(drawPlayer, drawPlayer.position, drawPlayer.fullRotation, drawPlayer.fullRotationOrigin, 0f);
                _useImmediateMode = true;
            }
            catch (Exception) {
                drawError = true;
            }
            //Main.gameMenu = false;

            if (IsMouseHovering)
            {
                //Main.HoverItem = item.Clone();
                Main.hoverItemName = set.Item4 + "\nTotal Set Defense: " + set.Item5;

                //Main.HoverItem.SetNameOverride(Main.HoverItem.Name + (Main.HoverItem.modItem != null && ModContent.GetInstance<RecipeBrowserClientConfig>().ShowItemModSource ? " [" + Main.HoverItem.modItem.mod.Name + "]" : ""));
            }
        }
示例#24
0
 protected override void DrawSelf(SpriteBatch spriteBatch)
 {
     base.DrawSelf(spriteBatch);
     if (item != null)
     {
         CalculatedStyle dimensions = base.GetInnerDimensions();
         Rectangle       rectangle  = dimensions.ToRectangle();
         if (!item.IsAir)
         {
             int    count         = CountItemGroups(Main.player[owner], recipe, item.type, targetStack > 999 ? targetStack : 999);           // stopping at item.maxStack means you can't see if you can make multiple.
             string progress      = count + "/" + targetStack;
             Color  progressColor = count >= targetStack ? Color.LightGreen : Color.LightSalmon;
             ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, progress, dimensions.Position() + new Vector2(10f, 26f) * scale + new Vector2(-4f, 0f), progressColor, 0f, Vector2.Zero, new Vector2(scale), -1f, /*scale*/ 1);
         }
     }
 }
 protected override void DrawSelf(SpriteBatch spriteBatch)
 {
     base.DrawSelf(spriteBatch);
     if (item != null)
     {
         CalculatedStyle dimensions = base.GetInnerDimensions();
         Rectangle       rectangle  = dimensions.ToRectangle();
         if (!item.IsAir)
         {
             int    count         = Main.LocalPlayer.CountItem(item.type, item.maxStack);
             string progress      = count + "/" + targetStack;
             Color  progressColor = count >= targetStack ? Color.LightGreen : Color.LightSalmon;
             ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, progress, dimensions.Position() + new Vector2(10f, 26f) * scale + new Vector2(-4f, 0f), progressColor, 0f, Vector2.Zero, new Vector2(scale), -1f, /*scale*/ 1);
         }
     }
 }
示例#26
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = base.GetOuterDimensions();

            if (ContainsPoint(Main.MouseScreen))
            {
                Main.LocalPlayer.mouseInterface = true;
                Main.LocalPlayer.showItemIcon   = false;
                Main.ItemIconCacheUpdate(0);
            }
            if (dragging)
            {
                Left.Set(Main.MouseScreen.X - offset.X, 0f);
                Top.Set(Main.MouseScreen.Y - offset.Y, 0f);
                Recalculate();
            }
            else
            {
                if (Parent != null && !dimensions.ToRectangle().Intersects(Parent.GetDimensions().ToRectangle()))
                {
                    var parentSpace = Parent.GetDimensions().ToRectangle();
                    Left.Pixels = Utils.Clamp(Left.Pixels, 0, parentSpace.Right - Width.Pixels);
                    Top.Pixels  = Utils.Clamp(Top.Pixels, 0, parentSpace.Bottom - Height.Pixels);
                    Recalculate();
                }
            }
            if (resizeing)
            {
                if (resizeableX)
                {
                    //Width.Pixels = Utils.Clamp(Main.MouseScreen.X - dimensions.X - offset.X, minX, maxX);
                    Width.Pixels = Main.MouseScreen.X - dimensions.X - offset.X;
                }
                if (resizeableY)
                {
                    //Height.Pixels = Utils.Clamp(Main.MouseScreen.Y - dimensions.Y - offset.Y, minY, maxY);
                    Height.Pixels = Main.MouseScreen.Y - dimensions.Y - offset.Y;
                }
                Recalculate();
            }
            base.DrawSelf(spriteBatch);
            if (resizeable)
            {
                DrawDragAnchor(spriteBatch, dragTexture, this.BorderColor);
            }
        }
示例#27
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            if (texture == null)
            {
                return;
            }

            CalculatedStyle dimensions = base.GetInnerDimensions();
            Rectangle       rectangle  = dimensions.ToRectangle();

            spriteBatch.Draw(backgroundTexture, dimensions.Position(), null, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);

            if (selected)
            {
                spriteBatch.Draw(selectedTexture, dimensions.Position(), null, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, 0f);
            }

            int   height         = texture.Height;
            int   width          = texture.Width;
            float drawScale      = 1f;        // larger, uncomment below
            float availableWidth = (float)backgroundTexture.Width * scale;

            if (width /** drawScale*/ > availableWidth || height /** drawScale*/ > availableWidth)
            {
                if (width > height)
                {
                    drawScale = availableWidth / width;
                }
                else
                {
                    drawScale = availableWidth / height;
                }
            }
            drawScale *= scale;
            Vector2 vector    = backgroundTexture.Size() * scale;
            Vector2 position2 = dimensions.Position() + vector / 2f - texture.Size() * drawScale / 2f;

            //Vector2 origin = texture.Size() * (1f / 2f - 0.5f);
            spriteBatch.Draw(texture, position2, null, Color.White, 0f, Vector2.Zero, drawScale, SpriteEffects.None, 0f);

            if (IsMouseHovering)
            {
                Main.hoverItemName = Utilities.GetTileName(tile);
            }
        }
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            timer++;
            if (timer % timePerFrame == 0)
            {
                frame++;
                if (frame > frameCount)
                {
                    frame = 1;
                }
            }

            Texture2D       currentFrame = ModContent.GetTexture(filePath + "" + frame);
            CalculatedStyle dimensions   = base.GetInnerDimensions();
            Rectangle       rectangle    = dimensions.ToRectangle();

            spriteBatch.Draw(currentFrame, rectangle, Color.White);
        }
示例#29
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = GetDimensions();

            if (ScaleToFit)
            {
                spriteBatch.Draw(_texture.get_Value(), dimensions.ToRectangle(), Color);
                return;
            }
            Vector2 vector  = _texture.get_Value().Size();
            Vector2 vector2 = dimensions.Position() + vector * (1f - ImageScale) / 2f + vector * NormalizedOrigin;

            if (RemoveFloatingPointsFromDrawPosition)
            {
                vector2 = vector2.Floor();
            }
            spriteBatch.Draw(_texture.get_Value(), vector2, null, Color, Rotation, vector * NormalizedOrigin, ImageScale, SpriteEffects.None, 0f);
        }
示例#30
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            CalculatedStyle dimensions = this.GetDimensions();

            if (this.ScaleToFit)
            {
                spriteBatch.Draw(this._texture.Value, dimensions.ToRectangle(), this.Color);
            }
            else
            {
                Vector2 vector2_1 = this._texture.Value.Size();
                Vector2 vector2_2 = dimensions.Position() + vector2_1 * (1f - this.ImageScale) / 2f + vector2_1 * this.NormalizedOrigin;
                if (this.RemoveFloatingPointsFromDrawPosition)
                {
                    vector2_2 = vector2_2.Floor();
                }
                spriteBatch.Draw(this._texture.Value, vector2_2, new Rectangle?(), this.Color, this.Rotation, vector2_1 * this.NormalizedOrigin, this.ImageScale, SpriteEffects.None, 0.0f);
            }
        }