Updated BuyBackCollectables to 1.1 and fixed some glitches with it! =D
This commit is contained in:
parent
3e4e68f40c
commit
e8147a7b5b
|
@ -0,0 +1,63 @@
|
|||
###############################################################################
|
||||
# Set default behavior to automatically normalize line endings.
|
||||
###############################################################################
|
||||
* text=auto
|
||||
|
||||
###############################################################################
|
||||
# Set default behavior for command prompt diff.
|
||||
#
|
||||
# This is need for earlier builds of msysgit that does not have it on by
|
||||
# default for csharp files.
|
||||
# Note: This is only used by command line
|
||||
###############################################################################
|
||||
#*.cs diff=csharp
|
||||
|
||||
###############################################################################
|
||||
# Set the merge driver for project and solution files
|
||||
#
|
||||
# Merging from the command prompt will add diff markers to the files if there
|
||||
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||
# the diff markers are never inserted). Diff markers may cause the following
|
||||
# file extensions to fail to load in VS. An alternative would be to treat
|
||||
# these files as binary and thus will always conflict and require user
|
||||
# intervention with every merge. To do so, just uncomment the entries below
|
||||
###############################################################################
|
||||
#*.sln merge=binary
|
||||
#*.csproj merge=binary
|
||||
#*.vbproj merge=binary
|
||||
#*.vcxproj merge=binary
|
||||
#*.vcproj merge=binary
|
||||
#*.dbproj merge=binary
|
||||
#*.fsproj merge=binary
|
||||
#*.lsproj merge=binary
|
||||
#*.wixproj merge=binary
|
||||
#*.modelproj merge=binary
|
||||
#*.sqlproj merge=binary
|
||||
#*.wwaproj merge=binary
|
||||
|
||||
###############################################################################
|
||||
# behavior for image files
|
||||
#
|
||||
# image files are treated as binary by default.
|
||||
###############################################################################
|
||||
#*.jpg binary
|
||||
#*.png binary
|
||||
#*.gif binary
|
||||
|
||||
###############################################################################
|
||||
# diff behavior for common document formats
|
||||
#
|
||||
# Convert binary document formats to text before diffing them. This feature
|
||||
# is only available from the command line. Turn it on by uncommenting the
|
||||
# entries below.
|
||||
###############################################################################
|
||||
#*.doc diff=astextplain
|
||||
#*.DOC diff=astextplain
|
||||
#*.docx diff=astextplain
|
||||
#*.DOCX diff=astextplain
|
||||
#*.dot diff=astextplain
|
||||
#*.DOT diff=astextplain
|
||||
#*.pdf diff=astextplain
|
||||
#*.PDF diff=astextplain
|
||||
#*.rtf diff=astextplain
|
||||
#*.RTF diff=astextplain
|
|
@ -0,0 +1,212 @@
|
|||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
*.sln.docstates
|
||||
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
[Rr]elease/
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
build/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
|
||||
# Visual Studio 2015 cache/options directory
|
||||
.vs/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUNIT
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# DNX
|
||||
project.lock.json
|
||||
artifacts/
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.svclog
|
||||
*.scc
|
||||
|
||||
# Chutzpah Test files
|
||||
_Chutzpah*
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding add-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
|
||||
# MightyMoose
|
||||
*.mm.*
|
||||
AutoTest.Net/
|
||||
|
||||
# Web workbench (sass)
|
||||
.sass-cache/
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
## TODO: Comment the next line if you want to checkin your
|
||||
## web deploy settings but do note that will include unencrypted
|
||||
## passwords
|
||||
#*.pubxml
|
||||
|
||||
*.publishproj
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/packages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/packages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/packages/repositories.config
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx/
|
||||
*.build.csdef
|
||||
|
||||
# Windows Store app package directory
|
||||
AppPackages/
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.dbproj.schemaview
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
orleans.codegen.cs
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file
|
||||
# to a newer Visual Studio version. Backup files are not needed,
|
||||
# because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# LightSwitch generated files
|
||||
GeneratedArtifacts/
|
||||
_Pvt_Extensions/
|
||||
ModelManifest.xml
|
Binary file not shown.
|
@ -37,10 +37,11 @@
|
|||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Graphics.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Stardew Valley">
|
||||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Stardew Valley.exe</HintPath>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Stardew Valley.exe</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="StardewModdingAPI">
|
||||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\StardewModdingAPI.exe</HintPath>
|
||||
<Reference Include="StardewModdingAPI, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\StardewModdingAPI.exe</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
|
@ -58,6 +59,7 @@
|
|||
<Compile Include="Class1.cs" />
|
||||
<Compile Include="Collections_Buy_Back.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="UpdatedCollections.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace Buy_Back_Collectables
|
|||
if (Game1.activeClickableMenu != null) return;
|
||||
else
|
||||
{
|
||||
Game1.activeClickableMenu = new Collections_Buy_Back(Game1.viewport.Width / 2 - (800 + IClickableMenu.borderWidth * 2) / 2, Game1.viewport.Height / 2 - (600 + IClickableMenu.borderWidth * 2) / 2, 800 + IClickableMenu.borderWidth * 2, 600 + IClickableMenu.borderWidth * 2);
|
||||
Game1.activeClickableMenu = new StardewValley.Menus.UpdatedCollectionsPage(Game1.viewport.Width / 2 - (800 + IClickableMenu.borderWidth * 2) / 2, Game1.viewport.Height / 2 - (600 + IClickableMenu.borderWidth * 2) / 2, 800 + IClickableMenu.borderWidth * 2, 600 + IClickableMenu.borderWidth * 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,21 +46,21 @@ namespace StardewValley.Menus
|
|||
|
||||
public Collections_Buy_Back(int x, int y, int width, int height) : base(x, y, width, height, false)
|
||||
{
|
||||
this.sideTabs.Add(new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4 + CollectionsPage.widthToMoveActiveTab, this.yPositionOnScreen + Game1.tileSize * 2, Game1.tileSize, Game1.tileSize), "", "Items Shipped (Farm & Forage)", Game1.mouseCursors, new Rectangle(640, 80, 16, 16), (float)Game1.pixelZoom));
|
||||
this.sideTabs.Add(new ClickableTextureComponent("",new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4 + CollectionsPage.widthToMoveActiveTab, this.yPositionOnScreen + Game1.tileSize * 2, Game1.tileSize, Game1.tileSize), "", "Items Shipped (Farm & Forage)", Game1.mouseCursors, new Rectangle(640, 80, 16, 16), (float)Game1.pixelZoom));
|
||||
this.collections.Add(0, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 3, Game1.tileSize, Game1.tileSize), "", "Fish", Game1.mouseCursors, new Rectangle(640, 64, 16, 16), (float)Game1.pixelZoom));
|
||||
this.sideTabs.Add(new ClickableTextureComponent("",new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 3, Game1.tileSize, Game1.tileSize), "", "Fish", Game1.mouseCursors, new Rectangle(640, 64, 16, 16), (float)Game1.pixelZoom));
|
||||
this.collections.Add(1, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 4, Game1.tileSize, Game1.tileSize), "", "Artifacts", Game1.mouseCursors, new Rectangle(656, 64, 16, 16), (float)Game1.pixelZoom));
|
||||
this.sideTabs.Add(new ClickableTextureComponent("",new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 4, Game1.tileSize, Game1.tileSize), "", "Artifacts", Game1.mouseCursors, new Rectangle(656, 64, 16, 16), (float)Game1.pixelZoom));
|
||||
this.collections.Add(2, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 5, Game1.tileSize, Game1.tileSize), "", "Minerals", Game1.mouseCursors, new Rectangle(672, 64, 16, 16), (float)Game1.pixelZoom));
|
||||
this.sideTabs.Add(new ClickableTextureComponent("",new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 5, Game1.tileSize, Game1.tileSize), "", "Minerals", Game1.mouseCursors, new Rectangle(672, 64, 16, 16), (float)Game1.pixelZoom));
|
||||
this.collections.Add(3, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 6, Game1.tileSize, Game1.tileSize), "", "Cooking", Game1.mouseCursors, new Rectangle(688, 64, 16, 16), (float)Game1.pixelZoom));
|
||||
this.sideTabs.Add(new ClickableTextureComponent("",new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 6, Game1.tileSize, Game1.tileSize), "", "Cooking", Game1.mouseCursors, new Rectangle(688, 64, 16, 16), (float)Game1.pixelZoom));
|
||||
this.collections.Add(4, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 7, Game1.tileSize, Game1.tileSize), "", "Achievements", Game1.mouseCursors, new Rectangle(656, 80, 16, 16), (float)Game1.pixelZoom));
|
||||
this.sideTabs.Add(new ClickableTextureComponent("",new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 7, Game1.tileSize, Game1.tileSize), "", "Achievements", Game1.mouseCursors, new Rectangle(656, 80, 16, 16), (float)Game1.pixelZoom));
|
||||
this.collections.Add(5, new List<List<ClickableTextureComponent>>());
|
||||
Collections_Buy_Back.widthToMoveActiveTab = Game1.tileSize / 8;
|
||||
this.backButton = new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen + Game1.tileSize * 3 / 4, this.yPositionOnScreen + height - 20 * Game1.pixelZoom, 12 * Game1.pixelZoom, 11 * Game1.pixelZoom), "", "", Game1.mouseCursors, new Rectangle(352, 495, 12, 11), (float)Game1.pixelZoom, false, false);
|
||||
this.forwardButton = new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen + width - Game1.tileSize / 2 - 15 * Game1.pixelZoom, this.yPositionOnScreen + height - 20 * Game1.pixelZoom, 12 * Game1.pixelZoom, 11 * Game1.pixelZoom), "", "", Game1.mouseCursors, new Rectangle(365, 495, 12, 11), (float)Game1.pixelZoom, false, false);
|
||||
this.backButton = new ClickableTextureComponent("",new Rectangle(this.xPositionOnScreen + Game1.tileSize * 3 / 4, this.yPositionOnScreen + height - 20 * Game1.pixelZoom, 12 * Game1.pixelZoom, 11 * Game1.pixelZoom), "", "", Game1.mouseCursors, new Rectangle(352, 495, 12, 11), (float)Game1.pixelZoom, false);
|
||||
this.forwardButton = new ClickableTextureComponent("",new Rectangle(this.xPositionOnScreen + width - Game1.tileSize / 2 - 15 * Game1.pixelZoom, this.yPositionOnScreen + height - 20 * Game1.pixelZoom, 12 * Game1.pixelZoom, 11 * Game1.pixelZoom), "", "", Game1.mouseCursors, new Rectangle(365, 495, 12, 11), (float)Game1.pixelZoom, false);
|
||||
int[] array = new int[this.sideTabs.Count<ClickableTextureComponent>()];
|
||||
int num = this.xPositionOnScreen + IClickableMenu.borderWidth + IClickableMenu.spaceToClearSideBorder;
|
||||
int num2 = this.yPositionOnScreen + IClickableMenu.borderWidth + IClickableMenu.spaceToClearTopBorder - Game1.tileSize / 4;
|
||||
|
@ -142,7 +142,7 @@ namespace StardewValley.Menus
|
|||
{
|
||||
this.collections[num4].Add(new List<ClickableTextureComponent>());
|
||||
}
|
||||
this.collections[num4].Last<List<ClickableTextureComponent>>().Add(new ClickableTextureComponent(new Rectangle(x2, num5, Game1.tileSize, Game1.tileSize), current.Key + " " + flag, "", Game1.objectSpriteSheet, Game1.getSourceRectForStandardTileSheet(Game1.objectSpriteSheet, current.Key, 16, 16), (float)Game1.pixelZoom, false, flag));
|
||||
this.collections[num4].Last<List<ClickableTextureComponent>>().Add(new ClickableTextureComponent("",new Rectangle(x2, num5, Game1.tileSize, Game1.tileSize), current.Key + " " + flag, "", Game1.objectSpriteSheet, Game1.getSourceRectForStandardTileSheet(Game1.objectSpriteSheet, current.Key, 16, 16), (float)Game1.pixelZoom, false));
|
||||
array[num4]++;
|
||||
}
|
||||
if (this.collections[5].Count<List<ClickableTextureComponent>>() == 0)
|
||||
|
@ -160,7 +160,7 @@ namespace StardewValley.Menus
|
|||
{
|
||||
int x3 = num + array[5] % num3 * (Game1.tileSize + 4);
|
||||
int y2 = num2 + array[5] / num3 * (Game1.tileSize + 4);
|
||||
this.collections[5][0].Add(new ClickableTextureComponent(new Rectangle(x3, y2, Game1.tileSize, Game1.tileSize), current2.Key + " " + flag2, "", Game1.mouseCursors, Game1.getSourceRectForStandardTileSheet(Game1.mouseCursors, 25, -1, -1), 1f, false, false));
|
||||
this.collections[5][0].Add(new ClickableTextureComponent("",new Rectangle(x3, y2, Game1.tileSize, Game1.tileSize), current2.Key + " " + flag2, "", Game1.mouseCursors, Game1.getSourceRectForStandardTileSheet(Game1.mouseCursors, 25, -1, -1), 1f, false));
|
||||
array[5]++;
|
||||
}
|
||||
}
|
||||
|
@ -254,39 +254,55 @@ namespace StardewValley.Menus
|
|||
this.descriptionText = "";
|
||||
this.hoverText = "";
|
||||
this.value = -1;
|
||||
foreach (ClickableTextureComponent current in this.sideTabs)
|
||||
{
|
||||
if (current.containsPoint(x, y))
|
||||
|
||||
try {
|
||||
foreach (ClickableTextureComponent current in this.sideTabs)
|
||||
{
|
||||
this.hoverText = current.hoverText;
|
||||
return;
|
||||
if (current.containsPoint(x, y))
|
||||
{
|
||||
this.hoverText = current.hoverText;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (ClickableTextureComponent current2 in this.collections[this.currentTab][this.currentPage])
|
||||
catch (Exception e)
|
||||
{
|
||||
if (current2.containsPoint(x, y))
|
||||
Log.AsyncG(e);
|
||||
|
||||
}
|
||||
try {
|
||||
foreach (ClickableTextureComponent current2 in this.collections[this.currentTab][this.currentPage])
|
||||
{
|
||||
current2.scale = Math.Min(current2.scale + 0.02f, current2.baseScale + 0.1f);
|
||||
if (Convert.ToBoolean(current2.name.Split(new char[]
|
||||
if (current2.containsPoint(x, y))
|
||||
{
|
||||
' '
|
||||
})[1]) || this.currentTab == 5)
|
||||
{
|
||||
this.hoverText = this.createDescription(Convert.ToInt32(current2.name.Split(new char[]
|
||||
current2.scale = Math.Min(current2.scale + 0.02f, current2.baseScale + 0.1f);
|
||||
if (Convert.ToBoolean(current2.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[1]) || this.currentTab == 5)
|
||||
{
|
||||
this.hoverText = this.createDescription(Convert.ToInt32(current2.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[0]));
|
||||
})[0]));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.hoverText = "???";
|
||||
this.new_item = null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.hoverText = "???";
|
||||
this.new_item = null;
|
||||
current2.scale = Math.Max(current2.scale - 0.02f, current2.baseScale);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
current2.scale = Math.Max(current2.scale - 0.02f, current2.baseScale);
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
Log.AsyncM(this.currentTab);
|
||||
Log.AsyncM(this.currentPage);
|
||||
Log.AsyncM(e);
|
||||
}
|
||||
this.forwardButton.tryHover(x, y, 0.5f);
|
||||
this.backButton.tryHover(x, y, 0.5f);
|
||||
|
@ -375,43 +391,51 @@ namespace StardewValley.Menus
|
|||
|
||||
public override void draw(SpriteBatch b)
|
||||
{
|
||||
foreach (ClickableTextureComponent current in this.sideTabs)
|
||||
{
|
||||
current.draw(b);
|
||||
}
|
||||
if (this.currentPage > 0)
|
||||
{
|
||||
this.backButton.draw(b);
|
||||
}
|
||||
if (this.currentPage < this.collections[this.currentTab].Count<List<ClickableTextureComponent>>() - 1)
|
||||
{
|
||||
this.forwardButton.draw(b);
|
||||
}
|
||||
b.End();
|
||||
b.Begin(SpriteSortMode.FrontToBack, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null);
|
||||
foreach (ClickableTextureComponent current2 in this.collections[this.currentTab][this.currentPage])
|
||||
{
|
||||
bool flag = Convert.ToBoolean(current2.name.Split(new char[]
|
||||
|
||||
foreach (ClickableTextureComponent current in this.sideTabs)
|
||||
{
|
||||
' '
|
||||
})[1]);
|
||||
current2.draw(b, flag ? Color.White : (Color.Black * 0.2f), 0.86f);
|
||||
if (this.currentTab == 5 && flag)
|
||||
{
|
||||
int num = new Random(Convert.ToInt32(current2.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[0])).Next(12);
|
||||
b.Draw(Game1.mouseCursors, new Vector2((float)(current2.bounds.X + 16 + Game1.tileSize / 4), (float)(current2.bounds.Y + 20 + Game1.tileSize / 4)), new Rectangle?(new Rectangle(256 + num % 6 * Game1.tileSize / 2, 128 + num / 6 * Game1.tileSize / 2, Game1.tileSize / 2, Game1.tileSize / 2)), Color.White, 0f, new Vector2((float)(Game1.tileSize / 4), (float)(Game1.tileSize / 4)), current2.scale, SpriteEffects.None, 0.88f);
|
||||
current.draw(b);
|
||||
}
|
||||
}
|
||||
b.End();
|
||||
b.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
|
||||
if (!this.hoverText.Equals(""))
|
||||
if (this.currentPage > 0)
|
||||
{
|
||||
this.backButton.draw(b);
|
||||
}
|
||||
if (this.currentPage < this.collections[this.currentTab].Count<List<ClickableTextureComponent>>() - 1)
|
||||
{
|
||||
this.forwardButton.draw(b);
|
||||
}
|
||||
b.End();
|
||||
b.Begin(SpriteSortMode.FrontToBack, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null);
|
||||
try
|
||||
{
|
||||
IClickableMenu.drawHoverText(b, this.hoverText, Game1.smallFont, 0, 0, this.value, null, -1, null, null, 0, -1, -1, -1, -1, 1f, null);
|
||||
foreach (ClickableTextureComponent current2 in this.collections[1][0])
|
||||
{
|
||||
bool flag = Convert.ToBoolean(current2.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[1]);
|
||||
current2.draw(b, flag ? Color.White : (Color.Black * 0.2f), 0.86f);
|
||||
if (this.currentTab == 5 && flag)
|
||||
{
|
||||
int num = new Random(Convert.ToInt32(current2.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[0])).Next(12);
|
||||
b.Draw(Game1.mouseCursors, new Vector2((float)(current2.bounds.X + 16 + Game1.tileSize / 4), (float)(current2.bounds.Y + 20 + Game1.tileSize / 4)), new Rectangle?(new Rectangle(256 + num % 6 * Game1.tileSize / 2, 128 + num / 6 * Game1.tileSize / 2, Game1.tileSize / 2, Game1.tileSize / 2)), Color.White, 0f, new Vector2((float)(Game1.tileSize / 4), (float)(Game1.tileSize / 4)), current2.scale, SpriteEffects.None, 0.88f);
|
||||
}
|
||||
}
|
||||
b.End();
|
||||
b.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
|
||||
if (!this.hoverText.Equals(""))
|
||||
{
|
||||
IClickableMenu.drawHoverText(b, this.hoverText, Game1.smallFont, 0, 0, this.value, null, -1, null, null, 0, -1, -1, -1, -1, 1f, null);
|
||||
}
|
||||
b.Draw(Game1.mouseCursors, new Vector2((float)Game1.getOldMouseX(), (float)Game1.getOldMouseY()), new Rectangle?(Game1.getSourceRectForStandardTileSheet(Game1.mouseCursors, Game1.options.gamepadControls ? 44 : 0, 16, 16)), Color.White, 0f, Vector2.Zero, (float)Game1.pixelZoom + Game1.dialogueButtonScale / 150f, SpriteEffects.None, 1f);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
Log.AsyncY(e);
|
||||
}
|
||||
}
|
||||
b.Draw(Game1.mouseCursors, new Vector2((float)Game1.getOldMouseX(), (float)Game1.getOldMouseY()), new Rectangle?(Game1.getSourceRectForStandardTileSheet(Game1.mouseCursors, Game1.options.gamepadControls ? 44 : 0, 16, 16)), Color.White, 0f, Vector2.Zero, (float)Game1.pixelZoom + Game1.dialogueButtonScale / 150f, SpriteEffects.None, 1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,424 @@
|
|||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace StardewValley.Menus
|
||||
{
|
||||
public class UpdatedCollectionsPage : IClickableMenu
|
||||
{
|
||||
public static int widthToMoveActiveTab = Game1.tileSize / 8;
|
||||
|
||||
public const int organicsTab = 0;
|
||||
|
||||
public const int fishTab = 1;
|
||||
|
||||
public const int archaeologyTab = 2;
|
||||
|
||||
public const int mineralsTab = 3;
|
||||
|
||||
public const int cookingTab = 4;
|
||||
|
||||
public const int achievementsTab = 5;
|
||||
|
||||
public const int distanceFromMenuBottomBeforeNewPage = 128;
|
||||
|
||||
private string descriptionText = "";
|
||||
|
||||
private string hoverText = "";
|
||||
|
||||
private ClickableTextureComponent backButton;
|
||||
|
||||
private ClickableTextureComponent forwardButton;
|
||||
|
||||
private List<ClickableTextureComponent> sideTabs = new List<ClickableTextureComponent>();
|
||||
|
||||
private int currentTab;
|
||||
|
||||
private int currentPage;
|
||||
|
||||
private Dictionary<int, List<List<ClickableTextureComponent>>> collections = new Dictionary<int, List<List<ClickableTextureComponent>>>();
|
||||
|
||||
private int value;
|
||||
|
||||
public Item new_item;
|
||||
public int newItemValue;
|
||||
|
||||
public UpdatedCollectionsPage(int x, int y, int width, int height) : base(x, y, width, height, false)
|
||||
{
|
||||
this.sideTabs.Add(new ClickableTextureComponent("", new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4 + UpdatedCollectionsPage.widthToMoveActiveTab, this.yPositionOnScreen + Game1.tileSize * 2, Game1.tileSize, Game1.tileSize), "", Game1.content.LoadString("Strings\\UI:Collections_Shipped", new object[0]), Game1.mouseCursors, new Rectangle(640, 80, 16, 16), (float)Game1.pixelZoom, false));
|
||||
this.collections.Add(0, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent("", new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 3, Game1.tileSize, Game1.tileSize), "", Game1.content.LoadString("Strings\\UI:Collections_Fish", new object[0]), Game1.mouseCursors, new Rectangle(640, 64, 16, 16), (float)Game1.pixelZoom, false));
|
||||
this.collections.Add(1, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent("", new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 4, Game1.tileSize, Game1.tileSize), "", Game1.content.LoadString("Strings\\UI:Collections_Artifacts", new object[0]), Game1.mouseCursors, new Rectangle(656, 64, 16, 16), (float)Game1.pixelZoom, false));
|
||||
this.collections.Add(2, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent("", new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 5, Game1.tileSize, Game1.tileSize), "", Game1.content.LoadString("Strings\\UI:Collections_Minerals", new object[0]), Game1.mouseCursors, new Rectangle(672, 64, 16, 16), (float)Game1.pixelZoom, false));
|
||||
this.collections.Add(3, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent("", new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 6, Game1.tileSize, Game1.tileSize), "", Game1.content.LoadString("Strings\\UI:Collections_Cooking", new object[0]), Game1.mouseCursors, new Rectangle(688, 64, 16, 16), (float)Game1.pixelZoom, false));
|
||||
this.collections.Add(4, new List<List<ClickableTextureComponent>>());
|
||||
this.sideTabs.Add(new ClickableTextureComponent("", new Rectangle(this.xPositionOnScreen - Game1.tileSize * 3 / 4, this.yPositionOnScreen + Game1.tileSize * 7, Game1.tileSize, Game1.tileSize), "", Game1.content.LoadString("Strings\\UI:Collections_Achievements", new object[0]), Game1.mouseCursors, new Rectangle(656, 80, 16, 16), (float)Game1.pixelZoom, false));
|
||||
this.collections.Add(5, new List<List<ClickableTextureComponent>>());
|
||||
UpdatedCollectionsPage.widthToMoveActiveTab = Game1.tileSize / 8;
|
||||
this.backButton = new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen + Game1.tileSize * 3 / 4, this.yPositionOnScreen + height - 20 * Game1.pixelZoom, 12 * Game1.pixelZoom, 11 * Game1.pixelZoom), Game1.mouseCursors, new Rectangle(352, 495, 12, 11), (float)Game1.pixelZoom, false);
|
||||
this.forwardButton = new ClickableTextureComponent(new Rectangle(this.xPositionOnScreen + width - Game1.tileSize / 2 - 15 * Game1.pixelZoom, this.yPositionOnScreen + height - 20 * Game1.pixelZoom, 12 * Game1.pixelZoom, 11 * Game1.pixelZoom), Game1.mouseCursors, new Rectangle(365, 495, 12, 11), (float)Game1.pixelZoom, false);
|
||||
int[] array = new int[this.sideTabs.Count];
|
||||
int num = this.xPositionOnScreen + IClickableMenu.borderWidth + IClickableMenu.spaceToClearSideBorder;
|
||||
int num2 = this.yPositionOnScreen + IClickableMenu.borderWidth + IClickableMenu.spaceToClearTopBorder - Game1.tileSize / 4;
|
||||
int num3 = 10;
|
||||
foreach (KeyValuePair<int, string> current in Game1.objectInformation)
|
||||
{
|
||||
string text = current.Value.Split(new char[]
|
||||
{
|
||||
'/'
|
||||
})[3];
|
||||
bool drawShadow = false;
|
||||
int num4;
|
||||
if (text.Contains("Arch"))
|
||||
{
|
||||
num4 = 2;
|
||||
if (Game1.player.archaeologyFound.ContainsKey(current.Key))
|
||||
{
|
||||
drawShadow = true;
|
||||
}
|
||||
}
|
||||
else if (text.Contains("Fish"))
|
||||
{
|
||||
if (current.Key >= 167 && current.Key < 173)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
num4 = 1;
|
||||
if (Game1.player.fishCaught.ContainsKey(current.Key))
|
||||
{
|
||||
drawShadow = true;
|
||||
}
|
||||
}
|
||||
else if (text.Contains("Mineral") || text.Substring(text.Length - 3).Equals("-2"))
|
||||
{
|
||||
num4 = 3;
|
||||
if (Game1.player.mineralsFound.ContainsKey(current.Key))
|
||||
{
|
||||
drawShadow = true;
|
||||
}
|
||||
}
|
||||
else if (text.Contains("Cooking") || text.Substring(text.Length - 3).Equals("-7"))
|
||||
{
|
||||
num4 = 4;
|
||||
if (Game1.player.recipesCooked.ContainsKey(current.Key))
|
||||
{
|
||||
drawShadow = true;
|
||||
}
|
||||
if (current.Key == 217 || current.Key == 772)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (current.Key == 773)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!StardewValley.Object.isPotentialBasicShippedCategory(current.Key, text.Substring(text.Length - 3)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
num4 = 0;
|
||||
if (Game1.player.basicShipped.ContainsKey(current.Key))
|
||||
{
|
||||
drawShadow = true;
|
||||
}
|
||||
}
|
||||
int x2 = num + array[num4] % num3 * (Game1.tileSize + 4);
|
||||
int num5 = num2 + array[num4] / num3 * (Game1.tileSize + 4);
|
||||
if (num5 > this.yPositionOnScreen + height - 128)
|
||||
{
|
||||
this.collections[num4].Add(new List<ClickableTextureComponent>());
|
||||
array[num4] = 0;
|
||||
x2 = num;
|
||||
num5 = num2;
|
||||
}
|
||||
if (this.collections[num4].Count == 0)
|
||||
{
|
||||
this.collections[num4].Add(new List<ClickableTextureComponent>());
|
||||
}
|
||||
this.collections[num4].Last<List<ClickableTextureComponent>>().Add(new ClickableTextureComponent(current.Key + " " + drawShadow.ToString(), new Rectangle(x2, num5, Game1.tileSize, Game1.tileSize), null, "", Game1.objectSpriteSheet, Game1.getSourceRectForStandardTileSheet(Game1.objectSpriteSheet, current.Key, 16, 16), (float)Game1.pixelZoom, drawShadow));
|
||||
array[num4]++;
|
||||
}
|
||||
if (this.collections[5].Count == 0)
|
||||
{
|
||||
this.collections[5].Add(new List<ClickableTextureComponent>());
|
||||
}
|
||||
foreach (KeyValuePair<int, string> current2 in Game1.achievements)
|
||||
{
|
||||
bool flag = Game1.player.achievements.Contains(current2.Key);
|
||||
string[] array2 = current2.Value.Split(new char[]
|
||||
{
|
||||
'^'
|
||||
});
|
||||
if (flag || (array2[2].Equals("true") && (array2[3].Equals("-1") || this.farmerHasAchievements(array2[3]))))
|
||||
{
|
||||
int x3 = num + array[5] % num3 * (Game1.tileSize + 4);
|
||||
int y2 = num2 + array[5] / num3 * (Game1.tileSize + 4);
|
||||
this.collections[5][0].Add(new ClickableTextureComponent(current2.Key + " " + flag.ToString(), new Rectangle(x3, y2, Game1.tileSize, Game1.tileSize), null, "", Game1.mouseCursors, Game1.getSourceRectForStandardTileSheet(Game1.mouseCursors, 25, -1, -1), 1f, false));
|
||||
array[5]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool farmerHasAchievements(string listOfAchievementNumbers)
|
||||
{
|
||||
string[] array = listOfAchievementNumbers.Split(new char[]
|
||||
{
|
||||
' '
|
||||
});
|
||||
for (int i = 0; i < array.Length; i++)
|
||||
{
|
||||
string text = array[i];
|
||||
if (!Game1.player.achievements.Contains(Convert.ToInt32(text)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void receiveLeftClick(int x, int y, bool playSound = true)
|
||||
{
|
||||
for (int i = 0; i < this.sideTabs.Count; i++)
|
||||
{
|
||||
if (this.sideTabs[i].containsPoint(x, y) && this.currentTab != i)
|
||||
{
|
||||
Game1.playSound("smallSelect");
|
||||
ClickableTextureComponent expr_47_cp_0_cp_0 = this.sideTabs[this.currentTab];
|
||||
expr_47_cp_0_cp_0.bounds.X = expr_47_cp_0_cp_0.bounds.X - UpdatedCollectionsPage.widthToMoveActiveTab;
|
||||
this.currentTab = i;
|
||||
this.currentPage = 0;
|
||||
ClickableTextureComponent expr_74_cp_0_cp_0 = this.sideTabs[i];
|
||||
expr_74_cp_0_cp_0.bounds.X = expr_74_cp_0_cp_0.bounds.X + UpdatedCollectionsPage.widthToMoveActiveTab;
|
||||
}
|
||||
}
|
||||
if (this.currentPage > 0 && this.backButton.containsPoint(x, y))
|
||||
{
|
||||
this.currentPage--;
|
||||
Game1.playSound("shwip");
|
||||
this.backButton.scale = this.backButton.baseScale;
|
||||
}
|
||||
if (this.currentPage < this.collections[this.currentTab].Count - 1 && this.forwardButton.containsPoint(x, y))
|
||||
{
|
||||
this.currentPage++;
|
||||
Game1.playSound("shwip");
|
||||
this.forwardButton.scale = this.forwardButton.baseScale;
|
||||
}
|
||||
foreach (ClickableTextureComponent current2 in this.collections[this.currentTab][this.currentPage])
|
||||
{
|
||||
if (current2.containsPoint(x, y))
|
||||
{
|
||||
if (new_item != null)
|
||||
{
|
||||
if (Game1.player.money >= value)
|
||||
{
|
||||
Game1.player.money -= value;
|
||||
Game1.player.addItemByMenuIfNecessary(new_item);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void receiveRightClick(int x, int y, bool playSound = true)
|
||||
{
|
||||
if (new_item != null)
|
||||
{
|
||||
if (Game1.player.money >= value)
|
||||
{
|
||||
|
||||
Game1.player.money -= value;
|
||||
Game1.player.addItemByMenuIfNecessary(new_item);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public override void performHoverAction(int x, int y)
|
||||
{
|
||||
this.descriptionText = "";
|
||||
this.hoverText = "";
|
||||
this.value = -1;
|
||||
foreach (ClickableTextureComponent current in this.sideTabs)
|
||||
{
|
||||
if (current.containsPoint(x, y))
|
||||
{
|
||||
this.hoverText = current.hoverText;
|
||||
return;
|
||||
}
|
||||
}
|
||||
foreach (ClickableTextureComponent current2 in this.collections[this.currentTab][this.currentPage])
|
||||
{
|
||||
if (current2.containsPoint(x, y))
|
||||
{
|
||||
current2.scale = Math.Min(current2.scale + 0.02f, current2.baseScale + 0.1f);
|
||||
if (Convert.ToBoolean(current2.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[1]) || this.currentTab == 5)
|
||||
{
|
||||
this.hoverText = this.createDescription(Convert.ToInt32(current2.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[0]));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.hoverText = "???";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
current2.scale = Math.Max(current2.scale - 0.02f, current2.baseScale);
|
||||
}
|
||||
}
|
||||
this.forwardButton.tryHover(x, y, 0.5f);
|
||||
this.backButton.tryHover(x, y, 0.5f);
|
||||
}
|
||||
|
||||
public string createDescription(int index)
|
||||
{
|
||||
string text = "";
|
||||
if (this.currentTab == 5)
|
||||
{
|
||||
string[] array = Game1.achievements[index].Split(new char[]
|
||||
{
|
||||
'^'
|
||||
});
|
||||
text = text + array[0] + Environment.NewLine + Environment.NewLine;
|
||||
text += array[1];
|
||||
new_item = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
string[] array2 = Game1.objectInformation[index].Split(new char[]
|
||||
{
|
||||
'/'
|
||||
});
|
||||
foreach (KeyValuePair<int, string> meh in Game1.objectInformation)
|
||||
{
|
||||
string[] array3 = meh.Value.Split(new char[]
|
||||
{
|
||||
'/'
|
||||
});
|
||||
if (array3[0] == array2[0])
|
||||
{
|
||||
new_item = (Item)new Object(Convert.ToInt32(meh.Key), 1, false, -1, 0);
|
||||
if (new_item.Name == "Stone" || new_item.Name == "stone") new_item = (Item)new Object(390, 1, false, -1, 0);
|
||||
}
|
||||
}
|
||||
text = string.Concat(new string[]
|
||||
{
|
||||
text,
|
||||
array2[0],
|
||||
Environment.NewLine,
|
||||
Environment.NewLine,
|
||||
Game1.parseText(array2[4], Game1.smallFont, Game1.tileSize * 4),
|
||||
Environment.NewLine,
|
||||
Environment.NewLine
|
||||
});
|
||||
if (array2[3].Contains("Arch"))
|
||||
{
|
||||
text += (Game1.player.archaeologyFound.ContainsKey(index) ? Game1.content.LoadString("Strings\\UI:Collections_Description_ArtifactsFound", new object[]
|
||||
{
|
||||
Game1.player.archaeologyFound[index][0]
|
||||
}) : "");
|
||||
}
|
||||
else if (array2[3].Contains("Cooking"))
|
||||
{
|
||||
text += (Game1.player.recipesCooked.ContainsKey(index) ? Game1.content.LoadString("Strings\\UI:Collections_Description_RecipesCooked", new object[]
|
||||
{
|
||||
Game1.player.recipesCooked[index]
|
||||
}) : "");
|
||||
}
|
||||
else if (array2[3].Contains("Fish"))
|
||||
{
|
||||
text += Game1.content.LoadString("Strings\\UI:Collections_Description_FishCaught", new object[]
|
||||
{
|
||||
Game1.player.fishCaught.ContainsKey(index) ? Game1.player.fishCaught[index][0] : 0
|
||||
});
|
||||
if (Game1.player.fishCaught.ContainsKey(index) && Game1.player.fishCaught[index][1] > 0)
|
||||
{
|
||||
text = text + Environment.NewLine + Game1.content.LoadString("Strings\\UI:Collections_Description_BiggestCatch", new object[]
|
||||
{
|
||||
Game1.player.fishCaught[index][1]
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (array2[3].Contains("Minerals") || array2[3].Substring(array2[3].Length - 3).Equals("-2"))
|
||||
{
|
||||
text += Game1.content.LoadString("Strings\\UI:Collections_Description_MineralsFound", new object[]
|
||||
{
|
||||
Game1.player.mineralsFound.ContainsKey(index) ? Game1.player.mineralsFound[index] : 0
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
text += Game1.content.LoadString("Strings\\UI:Collections_Description_NumberShipped", new object[]
|
||||
{
|
||||
Game1.player.basicShipped.ContainsKey(index) ? Game1.player.basicShipped[index] : 0
|
||||
});
|
||||
}
|
||||
this.value = Convert.ToInt32(array2[1]);
|
||||
this.value = (int)(this.value * Buy_Back_Collectables.Class1.cost);
|
||||
newItemValue = this.value;
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
public override void draw(SpriteBatch b)
|
||||
{
|
||||
using (List<ClickableTextureComponent>.Enumerator enumerator = this.sideTabs.GetEnumerator())
|
||||
{
|
||||
while (enumerator.MoveNext())
|
||||
{
|
||||
enumerator.Current.draw(b);
|
||||
}
|
||||
}
|
||||
if (this.currentPage > 0)
|
||||
{
|
||||
this.backButton.draw(b);
|
||||
}
|
||||
if (this.currentPage < this.collections[this.currentTab].Count - 1)
|
||||
{
|
||||
this.forwardButton.draw(b);
|
||||
}
|
||||
b.End();
|
||||
b.Begin(SpriteSortMode.FrontToBack, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null);
|
||||
foreach (ClickableTextureComponent current in this.collections[this.currentTab][this.currentPage])
|
||||
{
|
||||
bool flag = Convert.ToBoolean(current.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[1]);
|
||||
current.draw(b, flag ? Color.White : (Color.Black * 0.2f), 0.86f);
|
||||
if (this.currentTab == 5 & flag)
|
||||
{
|
||||
int num = new Random(Convert.ToInt32(current.name.Split(new char[]
|
||||
{
|
||||
' '
|
||||
})[0])).Next(12);
|
||||
b.Draw(Game1.mouseCursors, new Vector2((float)(current.bounds.X + 16 + Game1.tileSize / 4), (float)(current.bounds.Y + 20 + Game1.tileSize / 4)), new Rectangle?(new Rectangle(256 + num % 6 * Game1.tileSize / 2, 128 + num / 6 * Game1.tileSize / 2, Game1.tileSize / 2, Game1.tileSize / 2)), Color.White, 0f, new Vector2((float)(Game1.tileSize / 4), (float)(Game1.tileSize / 4)), current.scale, SpriteEffects.None, 0.88f);
|
||||
}
|
||||
}
|
||||
b.End();
|
||||
b.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
|
||||
if (!this.hoverText.Equals(""))
|
||||
{
|
||||
IClickableMenu.drawHoverText(b, this.hoverText, Game1.smallFont, 0, 0, this.value, null, -1, null, null, 0, -1, -1, -1, -1, 1f, null);
|
||||
}
|
||||
if (!Game1.options.hardwareCursor)
|
||||
{
|
||||
b.Draw(Game1.mouseCursors, new Vector2((float)Game1.getMouseX(), (float)Game1.getMouseY()), new Rectangle?(Game1.getSourceRectForStandardTileSheet(Game1.mouseCursors, 0, 16, 16)), Color.White * Game1.mouseCursorTransparency, 0f, Vector2.Zero, (float)Game1.pixelZoom + Game1.dialogueButtonScale / 150f, SpriteEffects.None, 1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -39,3 +39,25 @@ C:\Users\owner\Documents\Visual Studio 2015\Projects\Stardew_Valley_Mod_Folder\B
|
|||
C:\Users\owner\Documents\Visual Studio 2015\Projects\Stardew_Valley_Mod_Folder\BuyBackCollectables\BuyBackCollectables\obj\Debug\BuyBackCollectables.csprojResolveAssemblyReference.cache
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\Stardew_Valley_Mod_Folder\BuyBackCollectables\BuyBackCollectables\obj\Debug\BuyBackCollectables.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\Stardew_Valley_Mod_Folder\BuyBackCollectables\BuyBackCollectables\obj\Debug\BuyBackCollectables.pdb
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\obj\Debug\BuyBackCollectables.csprojResolveAssemblyReference.cache
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\obj\Debug\BuyBackCollectables.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\obj\Debug\BuyBackCollectables.pdb
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\BuyBackCollectables.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\BuyBackCollectables.pdb
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.Game.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.Graphics.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Stardew Valley.exe
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\StardewModdingAPI.exe
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.GamerServices.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.Input.Touch.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Lidgren.Network.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.Xact.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Steamworks.NET.dll
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.xml
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.Game.xml
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.Graphics.xml
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\StardewModdingAPI.pdb
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.GamerServices.xml
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.Input.Touch.xml
|
||||
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\BuyBackCollectables\BuyBackCollectables-Source\bin\Debug\Microsoft.Xna.Framework.Xact.xml
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,7 +1,7 @@
|
|||
Config: Buy Back Collections. Feel free to mess with these settings.
|
||||
====================================================================================
|
||||
Key binding
|
||||
B
|
||||
Y
|
||||
Collectables Multiplier Cost: Sell Value * value listed below
|
||||
3
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
BuyBackCollectables
|
||||
|
||||
Version:1.0.2
|
||||
Version:1.1.0
|
||||
|
||||
Published: 8/2/16 12:39 AM
|
||||
|
||||
Updated: 8/14/16 12:41 PM
|
||||
Updated: 10/32/16 10:38 PM
|
||||
|
||||
Compatability:
|
||||
|
||||
Stardew Valley 1.0.7 Windows
|
||||
Stardew Valley 1.1.0 Windows
|
||||
|
||||
SMAPI 0.40.0
|
||||
SMAPI 0.40.0 1.1-3
|
||||
|
||||
Description:
|
||||
|
||||
|
@ -19,6 +19,11 @@ A simple mod that allows you to buy back any collectable that you have already s
|
|||
Usage: Press B to open up the buy back menu.
|
||||
|
||||
Update Info:
|
||||
1.1.0
|
||||
-Updated to SDV 1.1
|
||||
-Fixed glitch where mouse would not show up on menu draw.
|
||||
-Fixed glitch where I used a bad math algorithm and you wouldn't be able to buy an item if you had enough money.
|
||||
|
||||
1.0.2
|
||||
|
||||
-Fixed some bugs where you would accidentally purchase some items when not intending to.
|
||||
|
|
Loading…
Reference in New Issue