public UIEndlessBuffGrid(IEndlessBuffGridHolder uiState) { Width.Set(0, 1f); Height.Set(0, 1f); SetPadding(0f); ParentEndlessBuffGridHolder = uiState; }
protected override void DrawSelf(SpriteBatch spriteBatch) { // Drawing is being really weird, todo base.DrawSelf(spriteBatch); Texture2D texture = Main.buffTexture[Buff]; Vector2 position = GetDimensions().Position() + texture.Size() * (1f - 1f) / 2f; // Straight outta UIImage spriteBatch.Draw(texture, new Rectangle((int)position.X, (int)position.Y, texture.Width, texture.Height), new Rectangle(0, 0, texture.Width, texture.Height), Disabled ? Color.DarkGray : Color.White, 0f, Vector2.Zero, SpriteEffects.None, 0f ); IEndlessBuffGridHolder parent = Parent as IEndlessBuffGridHolder; bool alwaysHighlight = (parent != null && parent.GetSelectedBuffHolder().Buff == Buff); if (ContainsPoint(Main.MouseScreen) || alwaysHighlight) { if (Main.mouseLeft && Main.mouseLeftRelease) { if (Parent is IEndlessBuffGridHolder grid) { grid.HandleBuffEntryClick(this); } } if (Main.mouseRight && Main.mouseRightRelease) { if (Parent is UIEndlessBuffGrid grid) { if (grid.GetSelectedBuffHolder().Buff == Buff) { Disabled = !Disabled; EndlessPotionPlayer player = Main.LocalPlayer.GetModPlayer <EndlessPotionPlayer>(); if (Disabled) { player.DisabledBuffs.Add(Buff); } else { player.DisabledBuffs.Remove(Buff); } } } } texture = PboneUtils.Textures.UI.BuffTogglerInventoryButton_MouseOver; position -= new Vector2(2); spriteBatch.Draw(texture, new Rectangle((int)position.X, (int)position.Y, texture.Width, texture.Height), new Rectangle(0, 0, texture.Width, texture.Height), alwaysHighlight ? Color.White : Color.White * 0.33f, 0f, Vector2.Zero, SpriteEffects.None, 0f ); } }