Changed Item hover information to just add its own window instead of trying to redraw everything the game already draws for you.
This commit is contained in:
parent
f64b7c6982
commit
2ebade76be
|
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||||
// You can specify all the values or you can default the Build and Revision Numbers
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
// by using the '*' as shown below:
|
// by using the '*' as shown below:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.2.6.0")]
|
[assembly: AssemblyVersion("1.2.7.0")]
|
||||||
[assembly: AssemblyFileVersion("1.2.6.0")]
|
[assembly: AssemblyFileVersion("1.2.7.0")]
|
||||||
|
|
|
@ -3,6 +3,7 @@ using StardewValley.Menus;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
@ -63,5 +64,43 @@ namespace UIInfoSuite
|
||||||
|
|
||||||
return truePrice;
|
return truePrice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Item GetHoveredItem()
|
||||||
|
{
|
||||||
|
Item hoverItem = null;
|
||||||
|
|
||||||
|
for (int i = 0; i < Game1.onScreenMenus.Count; ++i)
|
||||||
|
{
|
||||||
|
Toolbar onScreenMenu = Game1.onScreenMenus[i] as Toolbar;
|
||||||
|
if (onScreenMenu != null)
|
||||||
|
{
|
||||||
|
FieldInfo hoverItemField = typeof(Toolbar).GetField("hoverItem", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||||
|
hoverItem = hoverItemField.GetValue(onScreenMenu) as Item;
|
||||||
|
//hoverItemField.SetValue(onScreenMenu, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Game1.activeClickableMenu is GameMenu)
|
||||||
|
{
|
||||||
|
List<IClickableMenu> menuList = typeof(GameMenu).GetField("pages", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(Game1.activeClickableMenu) as List<IClickableMenu>;
|
||||||
|
foreach (var menu in menuList)
|
||||||
|
{
|
||||||
|
if (menu is InventoryPage)
|
||||||
|
{
|
||||||
|
FieldInfo hoveredItemField = typeof(InventoryPage).GetField("hoveredItem", BindingFlags.Instance | BindingFlags.NonPublic);
|
||||||
|
hoverItem = hoveredItemField.GetValue(menu) as Item;
|
||||||
|
//typeof(InventoryPage).GetField("hoverText", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(menu, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Game1.activeClickableMenu is ItemGrabMenu)
|
||||||
|
{
|
||||||
|
hoverItem = (Game1.activeClickableMenu as MenuWithInventory).hoveredItem;
|
||||||
|
//(Game1.activeClickableMenu as MenuWithInventory).hoveredItem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return hoverItem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,11 +200,11 @@
|
||||||
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll.mdb" DestinationFolder="$(ModPath)" Condition="Exists('$(TargetDir)\$(TargetName).dll.mdb')" />
|
<Copy SourceFiles="$(TargetDir)\$(TargetName).dll.mdb" DestinationFolder="$(ModPath)" Condition="Exists('$(TargetDir)\$(TargetName).dll.mdb')" />
|
||||||
<Copy SourceFiles="$(ProjectDir)manifest.json" DestinationFolder="$(ModPath)" />
|
<Copy SourceFiles="$(ProjectDir)manifest.json" DestinationFolder="$(ModPath)" />
|
||||||
</Target>
|
</Target>
|
||||||
<Import Project="..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.0\build\Pathoschild.Stardew.ModBuildConfig.targets" Condition="Exists('..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.0\build\Pathoschild.Stardew.ModBuildConfig.targets')" />
|
<Import Project="..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.2\build\Pathoschild.Stardew.ModBuildConfig.targets" Condition="Exists('..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.2\build\Pathoschild.Stardew.ModBuildConfig.targets')" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.0\build\Pathoschild.Stardew.ModBuildConfig.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.0\build\Pathoschild.Stardew.ModBuildConfig.targets'))" />
|
<Error Condition="!Exists('..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.2\build\Pathoschild.Stardew.ModBuildConfig.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Pathoschild.Stardew.ModBuildConfig.1.6.2\build\Pathoschild.Stardew.ModBuildConfig.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
|
@ -29,6 +29,8 @@ namespace UIInfoSuite.UIElements
|
||||||
private readonly IDictionary<String, String> _options;
|
private readonly IDictionary<String, String> _options;
|
||||||
private readonly IModHelper _helper;
|
private readonly IModHelper _helper;
|
||||||
|
|
||||||
|
private Item _hoverItem = null;
|
||||||
|
|
||||||
public ShowCalendarAndBillboardOnGameMenuButton(IDictionary<String, String> options,
|
public ShowCalendarAndBillboardOnGameMenuButton(IDictionary<String, String> options,
|
||||||
IModHelper helper)
|
IModHelper helper)
|
||||||
{
|
{
|
||||||
|
@ -42,6 +44,7 @@ namespace UIInfoSuite.UIElements
|
||||||
GraphicsEvents.OnPreRenderGuiEvent -= RemoveDefaultTooltips;
|
GraphicsEvents.OnPreRenderGuiEvent -= RemoveDefaultTooltips;
|
||||||
ControlEvents.MouseChanged -= OnBillboardIconClick;
|
ControlEvents.MouseChanged -= OnBillboardIconClick;
|
||||||
ControlEvents.ControllerButtonPressed -= OnBillboardIconPressed;
|
ControlEvents.ControllerButtonPressed -= OnBillboardIconPressed;
|
||||||
|
GraphicsEvents.OnPreRenderEvent -= GetHoverItem;
|
||||||
|
|
||||||
if (showCalendarAndBillboard)
|
if (showCalendarAndBillboard)
|
||||||
{
|
{
|
||||||
|
@ -49,9 +52,15 @@ namespace UIInfoSuite.UIElements
|
||||||
GraphicsEvents.OnPreRenderGuiEvent += RemoveDefaultTooltips;
|
GraphicsEvents.OnPreRenderGuiEvent += RemoveDefaultTooltips;
|
||||||
ControlEvents.MouseChanged += OnBillboardIconClick;
|
ControlEvents.MouseChanged += OnBillboardIconClick;
|
||||||
ControlEvents.ControllerButtonPressed += OnBillboardIconPressed;
|
ControlEvents.ControllerButtonPressed += OnBillboardIconPressed;
|
||||||
|
GraphicsEvents.OnPreRenderEvent += GetHoverItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void GetHoverItem(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_hoverItem = Tools.GetHoveredItem();
|
||||||
|
}
|
||||||
|
|
||||||
private void OnBillboardIconPressed(object sender, EventArgsControllerButtonPressed e)
|
private void OnBillboardIconPressed(object sender, EventArgsControllerButtonPressed e)
|
||||||
{
|
{
|
||||||
if (e.ButtonPressed == Buttons.A)
|
if (e.ButtonPressed == Buttons.A)
|
||||||
|
@ -96,7 +105,8 @@ namespace UIInfoSuite.UIElements
|
||||||
|
|
||||||
private void RenderButtons(object sender, EventArgs e)
|
private void RenderButtons(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (Game1.activeClickableMenu is GameMenu &&
|
if (_hoverItem == null &&
|
||||||
|
Game1.activeClickableMenu is GameMenu &&
|
||||||
(Game1.activeClickableMenu as GameMenu).currentTab == 0)
|
(Game1.activeClickableMenu as GameMenu).currentTab == 0)
|
||||||
{
|
{
|
||||||
_showBillboardButton.bounds.X = Game1.activeClickableMenu.xPositionOnScreen + Game1.activeClickableMenu.width - 160;
|
_showBillboardButton.bounds.X = Game1.activeClickableMenu.xPositionOnScreen + Game1.activeClickableMenu.width - 160;
|
||||||
|
|
|
@ -59,36 +59,7 @@ namespace UIInfoSuite.UIElements
|
||||||
|
|
||||||
private void GetHoverItem(object sender, EventArgs e)
|
private void GetHoverItem(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < Game1.onScreenMenus.Count; ++i)
|
_hoverItem = Tools.GetHoveredItem();
|
||||||
{
|
|
||||||
Toolbar onScreenMenu = Game1.onScreenMenus[i] as Toolbar;
|
|
||||||
if (onScreenMenu != null)
|
|
||||||
{
|
|
||||||
FieldInfo hoverItemField = typeof(Toolbar).GetField("hoverItem", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
||||||
_hoverItem = hoverItemField.GetValue(onScreenMenu) as Item;
|
|
||||||
hoverItemField.SetValue(onScreenMenu, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Game1.activeClickableMenu is GameMenu)
|
|
||||||
{
|
|
||||||
List<IClickableMenu> menuList = typeof(GameMenu).GetField("pages", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(Game1.activeClickableMenu) as List<IClickableMenu>;
|
|
||||||
foreach (var menu in menuList)
|
|
||||||
{
|
|
||||||
if (menu is InventoryPage)
|
|
||||||
{
|
|
||||||
FieldInfo hoveredItemField = typeof(InventoryPage).GetField("hoveredItem", BindingFlags.Instance | BindingFlags.NonPublic);
|
|
||||||
_hoverItem = hoveredItemField.GetValue(menu) as Item;
|
|
||||||
typeof(InventoryPage).GetField("hoverText", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(menu, "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Game1.activeClickableMenu is ItemGrabMenu)
|
|
||||||
{
|
|
||||||
_hoverItem = (Game1.activeClickableMenu as MenuWithInventory).hoveredItem;
|
|
||||||
(Game1.activeClickableMenu as MenuWithInventory).hoveredItem = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawAdvancedTooltipForToolbar(object sender, EventArgs e)
|
private void DrawAdvancedTooltipForToolbar(object sender, EventArgs e)
|
||||||
|
@ -155,69 +126,99 @@ namespace UIInfoSuite.UIElements
|
||||||
{
|
{
|
||||||
if (_hoverItem != null)
|
if (_hoverItem != null)
|
||||||
{
|
{
|
||||||
String text = string.Empty;
|
//String text = string.Empty;
|
||||||
String extra = string.Empty;
|
//String extra = string.Empty;
|
||||||
int truePrice = Tools.GetTruePrice(_hoverItem);
|
int truePrice = Tools.GetTruePrice(_hoverItem);
|
||||||
int itemPrice = truePrice / 2;
|
int itemPrice = 0;
|
||||||
int stackPrice = 0;
|
int stackPrice = 0;
|
||||||
|
|
||||||
if (truePrice > 0 &&
|
if (truePrice > 0 &&
|
||||||
_hoverItem.Name != "Scythe")
|
_hoverItem.Name != "Scythe")
|
||||||
{
|
{
|
||||||
int width = (int)Game1.smallFont.MeasureString(" ").Length();
|
itemPrice = truePrice / 2;
|
||||||
int numberOfSpaces = 46 / ((int)Game1.smallFont.MeasureString(" ").Length()) + 1;
|
//int width = (int)Game1.smallFont.MeasureString(" ").Length();
|
||||||
StringBuilder spaces = new StringBuilder();
|
//int numberOfSpaces = 46 / ((int)Game1.smallFont.MeasureString(" ").Length()) + 1;
|
||||||
for (int i = 0; i < numberOfSpaces; ++i)
|
//StringBuilder spaces = new StringBuilder();
|
||||||
{
|
//for (int i = 0; i < numberOfSpaces; ++i)
|
||||||
spaces.Append(" ");
|
//{
|
||||||
}
|
// spaces.Append(" ");
|
||||||
text = "\n" + spaces.ToString() + (truePrice / 2);
|
//}
|
||||||
|
//text = "\n" + spaces.ToString() + (truePrice / 2);
|
||||||
if (_hoverItem.getStack() > 1)
|
if (_hoverItem.getStack() > 1)
|
||||||
{
|
{
|
||||||
stackPrice = (truePrice / 2 * _hoverItem.getStack());
|
stackPrice = (itemPrice * _hoverItem.getStack());
|
||||||
text += " (" + (truePrice / 2 * _hoverItem.getStack()) + ")";
|
//text += " (" + (truePrice / 2 * _hoverItem.getStack()) + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int cropPrice = 0;
|
int cropPrice = 0;
|
||||||
|
|
||||||
bool flag = false;
|
//bool flag = false;
|
||||||
if (_hoverItem is StardewValley.Object &&
|
if (_hoverItem is StardewValley.Object &&
|
||||||
(_hoverItem as StardewValley.Object).type == "Seeds" &&
|
(_hoverItem as StardewValley.Object).type == "Seeds" &&
|
||||||
text != string.Empty &&
|
itemPrice > 0 &&
|
||||||
(_hoverItem.Name != "Mixed Seeds" ||
|
(_hoverItem.Name != "Mixed Seeds" ||
|
||||||
_hoverItem.Name != "Winter Seeds"))
|
_hoverItem.Name != "Winter Seeds"))
|
||||||
{
|
{
|
||||||
StardewValley.Object itemObject = new StardewValley.Object(new Debris(new Crop(_hoverItem.parentSheetIndex, 0, 0).indexOfHarvest, Game1.player.position, Game1.player.position).chunkType, 1);
|
StardewValley.Object itemObject = new StardewValley.Object(new Debris(new Crop(_hoverItem.parentSheetIndex, 0, 0).indexOfHarvest, Game1.player.position, Game1.player.position).chunkType, 1);
|
||||||
extra += " " + itemObject.Price;
|
//extra += " " + itemObject.Price;
|
||||||
cropPrice = itemObject.Price;
|
cropPrice = itemObject.Price;
|
||||||
flag = true;
|
//flag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String hoverTile = _hoverItem.DisplayName + text + extra;
|
//String hoverTile = _hoverItem.DisplayName + text + extra;
|
||||||
String description = _hoverItem.getDescription();
|
//String description = _hoverItem.getDescription();
|
||||||
Vector2 vector2 = DrawTooltip(Game1.spriteBatch, _hoverItem.getDescription(), hoverTile, _hoverItem);
|
//Vector2 vector2 = DrawTooltip(Game1.spriteBatch, _hoverItem.getDescription(), hoverTile, _hoverItem);
|
||||||
vector2.X += 30;
|
//vector2.X += 30;
|
||||||
vector2.Y -= 10;
|
//vector2.Y -= 10;
|
||||||
|
|
||||||
|
String requiredBundleName = null;
|
||||||
|
|
||||||
|
foreach (var requiredBundle in _prunedRequiredBundles)
|
||||||
if (text != "")
|
|
||||||
{
|
{
|
||||||
int largestTextWidth = 0;
|
if (requiredBundle.Value.Contains(_hoverItem.parentSheetIndex) &&
|
||||||
int stackTextWidth = (int)(Game1.smallFont.MeasureString(stackPrice.ToString()).Length());
|
!_hoverItem.Name.Contains("arecrow"))
|
||||||
int itemTextWidth = (int)(Game1.smallFont.MeasureString(itemPrice.ToString()).Length());
|
{
|
||||||
largestTextWidth = (stackTextWidth > itemTextWidth) ? stackTextWidth : itemTextWidth;
|
requiredBundleName = requiredBundle.Key;
|
||||||
int windowWidth = largestTextWidth + 90;
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Vector2 windowPos = new Vector2(Game1.getMouseX() - windowWidth - 25, Game1.getMouseY() + 20);
|
int largestTextWidth = 0;
|
||||||
|
int stackTextWidth = (int)(Game1.smallFont.MeasureString(stackPrice.ToString()).Length());
|
||||||
|
int itemTextWidth = (int)(Game1.smallFont.MeasureString(itemPrice.ToString()).Length());
|
||||||
|
largestTextWidth = (stackTextWidth > itemTextWidth) ? stackTextWidth : itemTextWidth;
|
||||||
|
int windowWidth = Math.Max(largestTextWidth + 90, String.IsNullOrEmpty(requiredBundleName) ? 100 : 300);
|
||||||
|
|
||||||
int windowHeight = 65;
|
int windowHeight = 75;
|
||||||
|
|
||||||
if (stackPrice > 0)
|
if (stackPrice > 0)
|
||||||
windowHeight += 60;
|
windowHeight += 40;
|
||||||
|
|
||||||
|
if (cropPrice > 0)
|
||||||
|
windowHeight += 40;
|
||||||
|
|
||||||
|
int windowY = Game1.getMouseY() + 20;
|
||||||
|
|
||||||
|
windowY = Game1.viewport.Height - windowHeight - windowY < 0 ? Game1.viewport.Height - windowHeight : windowY;
|
||||||
|
|
||||||
|
int windowX = Game1.getMouseX() - windowWidth - 25;
|
||||||
|
|
||||||
|
if (Game1.getMouseX() > Game1.viewport.Width - 300)
|
||||||
|
{
|
||||||
|
windowX = Game1.viewport.Width - windowWidth - 350;
|
||||||
|
}
|
||||||
|
else if (windowX < 0)
|
||||||
|
{
|
||||||
|
windowX = Game1.getMouseX() + 350;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2 windowPos = new Vector2(windowX, windowY);
|
||||||
|
Vector2 currentDrawPos = new Vector2(windowPos.X + 30, windowPos.Y + 40);
|
||||||
|
|
||||||
|
|
||||||
|
if (itemPrice > 0)
|
||||||
|
{
|
||||||
|
|
||||||
if (cropPrice > 0)
|
|
||||||
windowHeight += 60;
|
|
||||||
|
|
||||||
IClickableMenu.drawTextureBox(
|
IClickableMenu.drawTextureBox(
|
||||||
Game1.spriteBatch,
|
Game1.spriteBatch,
|
||||||
|
@ -229,12 +230,9 @@ namespace UIInfoSuite.UIElements
|
||||||
windowHeight,
|
windowHeight,
|
||||||
Color.White);
|
Color.White);
|
||||||
|
|
||||||
windowPos.X += 30;
|
|
||||||
windowPos.Y += 30;
|
|
||||||
|
|
||||||
Game1.spriteBatch.Draw(
|
Game1.spriteBatch.Draw(
|
||||||
Game1.debrisSpriteSheet,
|
Game1.debrisSpriteSheet,
|
||||||
new Vector2(windowPos.X, windowPos.Y + 4),
|
new Vector2(currentDrawPos.X, currentDrawPos.Y + 4),
|
||||||
Game1.getSourceRectForStandardTileSheet(Game1.debrisSpriteSheet, 8, 16, 16),
|
Game1.getSourceRectForStandardTileSheet(Game1.debrisSpriteSheet, 8, 16, 16),
|
||||||
Color.White,
|
Color.White,
|
||||||
0,
|
0,
|
||||||
|
@ -243,37 +241,25 @@ namespace UIInfoSuite.UIElements
|
||||||
SpriteEffects.None,
|
SpriteEffects.None,
|
||||||
0.95f);
|
0.95f);
|
||||||
|
|
||||||
//batch.DrawString(
|
|
||||||
// Game1.dialogueFont,
|
|
||||||
// boldTitleText,
|
|
||||||
// new Vector2(xPos + Game1.tileSize / 4, yPos + Game1.tileSize / 4 + 4) + new Vector2(0, 2),
|
|
||||||
// Game1.textShadowColor);
|
|
||||||
|
|
||||||
//batch.DrawString(
|
|
||||||
// Game1.dialogueFont,
|
|
||||||
// boldTitleText,
|
|
||||||
// new Vector2(xPos + Game1.tileSize / 4, yPos + Game1.tileSize / 4 + 4),
|
|
||||||
// Game1.textColor);
|
|
||||||
|
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
Game1.dialogueFont,
|
Game1.smallFont,
|
||||||
itemPrice.ToString(),
|
itemPrice.ToString(),
|
||||||
new Vector2(windowPos.X + 20, windowPos.Y - 20 + 2),
|
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10 + 2),
|
||||||
Game1.textShadowColor);
|
Game1.textShadowColor);
|
||||||
|
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
Game1.dialogueFont,
|
Game1.smallFont,
|
||||||
itemPrice.ToString(),
|
itemPrice.ToString(),
|
||||||
new Vector2(windowPos.X + 20, windowPos.Y - 20),
|
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10),
|
||||||
Game1.textColor);
|
Game1.textColor);
|
||||||
|
|
||||||
windowPos.Y += 50;
|
currentDrawPos.Y += 40;
|
||||||
|
|
||||||
if (stackPrice > 0)
|
if (stackPrice > 0)
|
||||||
{
|
{
|
||||||
Game1.spriteBatch.Draw(
|
Game1.spriteBatch.Draw(
|
||||||
Game1.debrisSpriteSheet,
|
Game1.debrisSpriteSheet,
|
||||||
new Vector2(windowPos.X, windowPos.Y),
|
new Vector2(currentDrawPos.X, currentDrawPos.Y),
|
||||||
Game1.getSourceRectForStandardTileSheet(Game1.debrisSpriteSheet, 8, 16, 16),
|
Game1.getSourceRectForStandardTileSheet(Game1.debrisSpriteSheet, 8, 16, 16),
|
||||||
Color.White,
|
Color.White,
|
||||||
0,
|
0,
|
||||||
|
@ -284,7 +270,7 @@ namespace UIInfoSuite.UIElements
|
||||||
|
|
||||||
Game1.spriteBatch.Draw(
|
Game1.spriteBatch.Draw(
|
||||||
Game1.debrisSpriteSheet,
|
Game1.debrisSpriteSheet,
|
||||||
new Vector2(windowPos.X, windowPos.Y + 10),
|
new Vector2(currentDrawPos.X, currentDrawPos.Y + 10),
|
||||||
Game1.getSourceRectForStandardTileSheet(Game1.debrisSpriteSheet, 8, 16, 16),
|
Game1.getSourceRectForStandardTileSheet(Game1.debrisSpriteSheet, 8, 16, 16),
|
||||||
Color.White,
|
Color.White,
|
||||||
0,
|
0,
|
||||||
|
@ -294,18 +280,18 @@ namespace UIInfoSuite.UIElements
|
||||||
0.95f);
|
0.95f);
|
||||||
|
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
Game1.dialogueFont,
|
Game1.smallFont,
|
||||||
stackPrice.ToString(),
|
stackPrice.ToString(),
|
||||||
new Vector2(windowPos.X + 20, windowPos.Y - 20 + 2),
|
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10 + 2),
|
||||||
Game1.textShadowColor);
|
Game1.textShadowColor);
|
||||||
|
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
Game1.dialogueFont,
|
Game1.smallFont,
|
||||||
stackPrice.ToString(),
|
stackPrice.ToString(),
|
||||||
new Vector2(windowPos.X + 20, windowPos.Y - 20),
|
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10),
|
||||||
Game1.textColor);
|
Game1.textColor);
|
||||||
|
|
||||||
windowPos.Y += 50;
|
currentDrawPos.Y += 40;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Game1.spriteBatch.Draw(
|
//Game1.spriteBatch.Draw(
|
||||||
|
@ -319,69 +305,76 @@ namespace UIInfoSuite.UIElements
|
||||||
// SpriteEffects.None,
|
// SpriteEffects.None,
|
||||||
// 0.95f);
|
// 0.95f);
|
||||||
|
|
||||||
if (flag)
|
if (cropPrice > 0)
|
||||||
{
|
{
|
||||||
|
//Game1.spriteBatch.Draw(
|
||||||
|
// Game1.mouseCursors, new Vector2(vector2.X + Game1.dialogueFont.MeasureString(text).X - 10.0f, vector2.Y - 20f),
|
||||||
|
// new Rectangle(60, 428, 10, 10),
|
||||||
|
// Color.White,
|
||||||
|
// 0.0f,
|
||||||
|
// Vector2.Zero,
|
||||||
|
// Game1.pixelZoom,
|
||||||
|
// SpriteEffects.None,
|
||||||
|
// 0.85f);
|
||||||
|
|
||||||
Game1.spriteBatch.Draw(
|
Game1.spriteBatch.Draw(
|
||||||
Game1.mouseCursors, new Vector2(vector2.X + Game1.dialogueFont.MeasureString(text).X - 10.0f, vector2.Y - 20f),
|
Game1.mouseCursors,
|
||||||
|
new Vector2(currentDrawPos.X - 15, currentDrawPos.Y - 10),
|
||||||
new Rectangle(60, 428, 10, 10),
|
new Rectangle(60, 428, 10, 10),
|
||||||
Color.White,
|
Color.White,
|
||||||
0.0f,
|
0.0f,
|
||||||
Vector2.Zero,
|
Vector2.Zero,
|
||||||
Game1.pixelZoom,
|
Game1.pixelZoom * 0.75f,
|
||||||
SpriteEffects.None,
|
SpriteEffects.None,
|
||||||
0.85f);
|
0.85f);
|
||||||
|
|
||||||
Game1.spriteBatch.Draw(
|
|
||||||
Game1.mouseCursors,
|
|
||||||
new Vector2(windowPos.X, windowPos.Y),
|
|
||||||
new Rectangle(60, 428, 10, 10),
|
|
||||||
Color.White,
|
|
||||||
0.0f,
|
|
||||||
new Vector2(8, 8),
|
|
||||||
Game1.pixelZoom,
|
|
||||||
SpriteEffects.None,
|
|
||||||
0.85f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var requiredBundle in _prunedRequiredBundles)
|
|
||||||
{
|
|
||||||
if (requiredBundle.Value.Contains(_hoverItem.parentSheetIndex) &&
|
|
||||||
!_hoverItem.Name.Contains("arecrow"))
|
|
||||||
{
|
|
||||||
int num1 = (int)vector2.X - 64;
|
|
||||||
int num2 = (int)vector2.Y - 110;
|
|
||||||
int num3 = num1 + 52;
|
|
||||||
int y3 = num2 - 2;
|
|
||||||
int num4 = 288;
|
|
||||||
int height = 36;
|
|
||||||
int num5 = 36;
|
|
||||||
int width = num4 / num5;
|
|
||||||
int num6 = 6;
|
|
||||||
|
|
||||||
for (int i = 0; i < 36; ++i)
|
|
||||||
{
|
|
||||||
float num7 = (float)(i >= num6 ? 0.92 - (i - num6) * (1.0 / (num5 - num6)) : 0.92f);
|
|
||||||
Game1.spriteBatch.Draw(
|
|
||||||
Game1.staminaRect,
|
|
||||||
new Rectangle(num3 + width * i, y3, width, height),
|
|
||||||
Color.Crimson * num7);
|
|
||||||
}
|
|
||||||
|
|
||||||
Game1.spriteBatch.DrawString(
|
Game1.spriteBatch.DrawString(
|
||||||
Game1.dialogueFont,
|
Game1.smallFont,
|
||||||
requiredBundle.Key,
|
cropPrice.ToString(),
|
||||||
new Vector2(num1 + 72, num2),
|
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10 + 2),
|
||||||
Color.White);
|
Game1.textShadowColor);
|
||||||
|
|
||||||
_bundleIcon.bounds.X = num1 + 16;
|
Game1.spriteBatch.DrawString(
|
||||||
_bundleIcon.bounds.Y = num2;
|
Game1.smallFont,
|
||||||
_bundleIcon.scale = 3;
|
cropPrice.ToString(),
|
||||||
_bundleIcon.draw(Game1.spriteBatch);
|
new Vector2(currentDrawPos.X + 20, currentDrawPos.Y - 10),
|
||||||
break;
|
Game1.textColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RestoreMenuState();
|
|
||||||
|
if (!String.IsNullOrEmpty(requiredBundleName))
|
||||||
|
{
|
||||||
|
int num1 = (int)windowPos.X - 30;
|
||||||
|
int num2 = (int)windowPos.Y - 10;
|
||||||
|
int num3 = num1 + 52;
|
||||||
|
int y3 = num2 - 2;
|
||||||
|
int num4 = 288;
|
||||||
|
int height = 36;
|
||||||
|
int num5 = 36;
|
||||||
|
int width = num4 / num5;
|
||||||
|
int num6 = 6;
|
||||||
|
|
||||||
|
for (int i = 0; i < 36; ++i)
|
||||||
|
{
|
||||||
|
float num7 = (float)(i >= num6 ? 0.92 - (i - num6) * (1.0 / (num5 - num6)) : 0.92f);
|
||||||
|
Game1.spriteBatch.Draw(
|
||||||
|
Game1.staminaRect,
|
||||||
|
new Rectangle(num3 + width * i, y3, width, height),
|
||||||
|
Color.Crimson * num7);
|
||||||
|
}
|
||||||
|
|
||||||
|
Game1.spriteBatch.DrawString(
|
||||||
|
Game1.dialogueFont,
|
||||||
|
requiredBundleName,
|
||||||
|
new Vector2(num1 + 72, num2),
|
||||||
|
Color.White);
|
||||||
|
|
||||||
|
_bundleIcon.bounds.X = num1 + 16;
|
||||||
|
_bundleIcon.bounds.Y = num2;
|
||||||
|
_bundleIcon.scale = 3;
|
||||||
|
_bundleIcon.draw(Game1.spriteBatch);
|
||||||
|
}
|
||||||
|
//RestoreMenuState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
"Version": {
|
"Version": {
|
||||||
"MajorVersion": 1,
|
"MajorVersion": 1,
|
||||||
"MinorVersion": 2,
|
"MinorVersion": 2,
|
||||||
"PatchVersion": 6,
|
"PatchVersion": 7,
|
||||||
"Build": null
|
"Build": null
|
||||||
},
|
},
|
||||||
"Description": "Adds a host of useful information to the user interface. This is based on Demiacle's excellent UIModSuite.",
|
"Description": "Adds a lot of useful information to the user interface. This is based on Demiacle's excellent UIModSuite.",
|
||||||
"UniqueID": "Cdaragorn.UiInfoSuite",
|
"UniqueID": "Cdaragorn.UiInfoSuite",
|
||||||
"EntryDll": "UIInfoSuite.dll"
|
"EntryDll": "UIInfoSuite.dll"
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Pathoschild.Stardew.ModBuildConfig" version="1.6.0" targetFramework="net452" />
|
<package id="Pathoschild.Stardew.ModBuildConfig" version="1.6.2" targetFramework="net452" />
|
||||||
</packages>
|
</packages>
|
Loading…
Reference in New Issue